1 |
On Sun, 2021-01-24 at 10:16 -0500, Aisha Tammy wrote: |
2 |
> On 1/24/21 7:59 AM, Michał Górny wrote: |
3 |
> > Here's v2 with extra 'tl;dr' instructions in first para: |
4 |
> > |
5 |
> > ``` |
6 |
> > Title: Python preference to follow PYTHON_TARGETS |
7 |
> > Author: Michał Górny <mgorny@g.o> |
8 |
> > Posted: 2021-01-24 |
9 |
> > Revision: 1 |
10 |
> > News-Item-Format: 2.0 |
11 |
> > |
12 |
> > On 2021-02-01 stable users will switch to a new method of updating |
13 |
> > the preferred Python versions that employs the configuration update |
14 |
> > mechanism in order to follow PYTHON_TARGETS. We will also deprecate |
15 |
> > and stop installing app-eselect/eselect-python by default. If you wish |
16 |
> > to use the newest Python version present in your PYTHON_TARGETS, you |
17 |
> > only have to accept configuration changes. If you wish need |
18 |
> > to customize the behavior, read on. |
19 |
> > |
20 |
> > Since 2017, /usr/bin/python and the related non-versioned symlinks |
21 |
> > are wrapped through dev-lang/python-exec. The list of preferred Python |
22 |
> > implementations is stored in /etc/python-exec/python-exec.conf and/or |
23 |
> > per-program /etc/python-exec/<basename>.conf configuration files. |
24 |
> > To preserve backwards compatibility, app-eselect/eselect-python remained |
25 |
> > a wrapper that updated this file. |
26 |
> > |
27 |
> > However, this mechanism alone has proven inconvenient to end users who |
28 |
> > had to update python-exec.conf whenever the default PYTHON_TARGETS |
29 |
> > changed. Thanks to the fallback logic, this was not a major problem |
30 |
> > for software installed via Gentoo packages that always ensure that |
31 |
> > a supported implementation is used. However, users have reported that |
32 |
> > whenever the preference for /usr/bin/python mismatched their |
33 |
> > PYTHON_TARGETS, their custom scripts would break due to unsatisfied |
34 |
> > dependencies. This does not follow the principle of least surprise. |
35 |
> > |
36 |
> > For this reason, we have decided to change the default python-exec |
37 |
> > configuration to match PYTHON_TARGETS by default, in the eclass |
38 |
> > preference order, that is from the newest CPython version to oldest, |
39 |
> > with alternative Python implementations coming afterwards. This change |
40 |
> > will be propagated via the configuration protection mechanism whenever |
41 |
> > dev-lang/python-exec-conf is installed or rebuilt due to PYTHON_TARGETS |
42 |
> > changes. This will permit the users to interactively confirm |
43 |
> > the updates. |
44 |
> > |
45 |
> > If the new default is not correct for you, please use your preferred |
46 |
> > configuration update tool to discard or edit the new configuration file. |
47 |
> > |
48 |
> > Furthermore, dev-lang/python will no longer attempt to automatically |
49 |
> > update the Python interpreter preference, or pull in eselect-python |
50 |
> > automatically. If you wish to continue using it, please install it |
51 |
> > manually to ensure that it is not unmerged. |
52 |
> > |
53 |
> > ``` |
54 |
> > |
55 |
> |
56 |
> Has this change already been pushed for unstable? I am running an unstable |
57 |
> system but I still have eselect-python, so I assume not (unless due to my side |
58 |
> error). |
59 |
|
60 |
dev-lang/python-exec-conf is available in ~arch already but app- |
61 |
eselect/eselect-python is still pulled in unconditionally. |
62 |
|
63 |
|
64 |
-- |
65 |
Best regards, |
66 |
Michał Górny |