1 |
Hello, everyone. |
2 |
|
3 |
TL;DR: we're nearing the total annihilation of Python 2 software |
4 |
in Gentoo. Most users could safely disable py2 USE flags today. |
5 |
Python 2 vulns have been patched recently, the interpreter and a few |
6 |
packages using Python at build time (with no deps) will stay. Should we |
7 |
change PYTHON_TARGETS now, or wait some more and just annihilate |
8 |
the py2 flag from all packages? |
9 |
|
10 |
|
11 |
Long version: |
12 |
|
13 |
We're reached the point where the majority of packages relying on py2 |
14 |
have either been ported to py3, removed or masked for removal. |
15 |
As a result, I've been able to eliminate python2_7 target from the vast |
16 |
majority of dev-python/* packages. On their next system upgrade, our |
17 |
users are going to notice most of Python 2.7 modules gone from their |
18 |
systems. |
19 |
|
20 |
However, because of their reverse dependencies a few packages can't lose |
21 |
their py2.7-iness, and therefore are going to block depcleaning Python |
22 |
2.7 for now. These include old versions of setuptools, numpy, pillow, |
23 |
as well as all versions of cython, nose, pykerberos, pyyaml and their |
24 |
dependencies. The major blockers for them are: |
25 |
|
26 |
- dev-lang/gdl (py entirely optional but the package itself is seriously |
27 |
broken) |
28 |
|
29 |
- dev-db/mongodb (py3 version was just stabilized, need to decide how to |
30 |
clean old versions up) |
31 |
|
32 |
- games-engines/renpy (no py3 version yet) |
33 |
|
34 |
- media-tv/kodi (py3 version in alpha) |
35 |
|
36 |
We plan to have these packages fixed or removed by the deadline. |
37 |
|
38 |
|
39 |
However, we already know that there are some packages that use Python 2 |
40 |
at build time and that will keep requiring it past the deadline. |
41 |
The initial list includes: |
42 |
|
43 |
- dev-python/pypy* (TODO: need to figure bootstrap out) |
44 |
|
45 |
- dev-lang/spidermonkey, www-client/seamonkey, www-client/firefox... |
46 |
(thank you, Mozilla) |
47 |
|
48 |
- www-client/chromium, dev-qt/qtwebengine... (thank you, Google) |
49 |
|
50 |
Sadly, the big corps are too busy improving their spying functionality |
51 |
and creating NIH programming languages to take care of such minor |
52 |
matters as cleaning up. |
53 |
|
54 |
The general rule is that py2.7 may remain in packages that use it |
55 |
at build time only (i.e. don't install anything depending on Python) |
56 |
and have no dependencies on Python packages (i.e. don't require any |
57 |
other packages to install py2.7 modules). Or to put it otherwise, |
58 |
python-r1 and python-single-r1 will lose py2.7 support entirely, while |
59 |
python-any-r1 will retain minimal support without dependencies. |
60 |
|
61 |
|
62 |
This also implies that we're going to keep Python 2.7 itself for as long |
63 |
as necessary, and patch it if possible. I should take this opportunity |
64 |
to remind you that it's quite possible that the interpreter itself has |
65 |
unknown vulnerabilities. Only recently I've backported two sec fixes |
66 |
from Python 3 which no other distribution (including the one promising |
67 |
paid support for Python 2 for next years) or upstream (including all |
68 |
these boasting that they're going to maintain Python 2 themselves) has |
69 |
even noticed (to the best of my knowledge). |
70 |
|
71 |
|
72 |
An open question is whether we should remove python2_7 from |
73 |
PYTHON_TARGETS now. If we do that, it will permit the vast majority of |
74 |
Gentoo users to depclean Python 2.7 today, independently of how long |
75 |
the maintainer of renpy is going to block it, with only a few users |
76 |
having to enable the flag manually. However, doing this makes sense |
77 |
only if we're really going to delay the impeding doom long. |
78 |
|
79 |
I will probably prepare an updated news item for Python 2.7 removal, |
80 |
to replace the one from February with the updated plan, current |
81 |
information and helpful tips. |
82 |
|
83 |
|
84 |
Finally, I would like to thank all the helpful package maintainers, arch |
85 |
teams and other developers who have made this possible. |
86 |
|
87 |
-- |
88 |
Best regards, |
89 |
Michał Górny |