Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

install: use packages from OS rather than pip #18

Merged
merged 3 commits into from
Mar 9, 2024
Merged

install: use packages from OS rather than pip #18

merged 3 commits into from
Mar 9, 2024

Conversation

em92
Copy link
Owner

@em92 em92 commented Feb 21, 2024

No description provided.

@em92 em92 force-pushed the install-mod branch 2 times, most recently from 7b5d730 to 3f85db8 Compare February 25, 2024 06:46
em92 added 2 commits March 9, 2024 15:34
Several reasons:

1. I am tired of GitHub's notifications, that some package is
vulnerable, please bump version. Last days I don't have much time
to find out, what exactly problem is and should I consider to bump.

For example GitHub suggested me to bump starlette to 0.36.2,
The "patch" only forces to use non-vulnerable 'python-multipart'
package [1].

In any case I did not have to bump starlette, since I don't use
any `request.form()` method in QLLR.

2. Let's imagine, that yet another vulnerability affects QLLR.
I bump some dependency. So server admin, that installed QLLR on
his VPS should also bump that dependency. But before that admin
needs to know about it. At the moment of writing I don't have
any newsletter to notify "PLEASE UPDATE ASAP". Also, if I had
that newsletter, admin is free not to subscribe.

3. Some pip packages may require to upgrade OS package or OS itself.
For example python3 -m pip install urllib3 won't work on debian stretch.
For details in [2].

4. There is an incident, when some scumbag intentionally embeded malware
code in his package [3], where targets were users from Russia and Belarus.
This incident and other politic-related events made a trend in Russia
to use dependencies or applications with Russian vendors, if available.

All things above and reading [4] and [5] lead me to conclusion,
that I need to depend on OS-distros packages if avaiable.
As result:

1. unppined versions in requirements.txt

2. rewrote install instructions.
Briefly: "install packages from OS if available, others from requirements.txt"

3. running tests on different OS-distros. At the time of writing:
- Debian 10 Buster
- Debian 11 Bullseye
- Debian 12 Bookworm
- Debian 13 Trixie
- Ubuntu 20.04 Focal Fossa
- Ubuntu 22.04 Jammy Jellyfish
- Ubuntu 24.04 Noble Numbat
- ALT Linux p10
- ALT Linux Sisyphus

4. applied patches to QLLR to pass tests

[1] encode/starlette@13e5c26
[2] urllib3/urllib3#2168
[3] GHSA-97m3-w2cp-4xx6
[4] https://drewdevault.com/2022/05/12/Supply-chain-when-will-we-learn.html
[5] https://drewdevault.com/2021/09/27/Let-distros-do-their-job.html
Using nginx is more flexible way to set, which clients
can submit match reports.
@em92 em92 force-pushed the install-mod branch 6 times, most recently from 7dd4c20 to d2e0ec9 Compare March 9, 2024 14:19
@em92 em92 marked this pull request as ready for review March 9, 2024 14:27
@em92 em92 merged commit 975cd52 into master Mar 9, 2024
16 checks passed
@em92 em92 deleted the install-mod branch March 9, 2024 14:27
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant