1 |
On Thu, 26 Mar 2020 21:11:11 +0100 |
2 |
Michał Górny <mgorny@g.o> wrote: |
3 |
|
4 |
> On Thu, 2020-03-26 at 14:13 -0500, William Hubbs wrote: |
5 |
> > There are situations in which downstream overlays need to have versions |
6 |
> > of python which Gentoo no longer supports in the tree. |
7 |
> > |
8 |
> > Currently, the only way to do this is for the overlay author to fork |
9 |
> > python-utils-r1.eclass. This is highly undesirable since it creates a |
10 |
> > very significant maintenance burden for the overlay author. |
11 |
> |
12 |
> Is it preferable to create the maintenance burden on Gentoo developers |
13 |
> instead? Is it fair that paid company developers shift the burden |
14 |
> on people who work on Gentoo in their free time, and already have their |
15 |
> plate full? |
16 |
|
17 |
We have no intention of shifting maintenance burdens anywhere, we want |
18 |
to make minor changes to make it easier for us to keep up. It's the |
19 |
same as a Gentoo developer asking an upstream project to make minor |
20 |
changes to their build system to support DESTDIR or a sandbox fix. |
21 |
|
22 |
> |
23 |
> > The simplest way would be to apply the following patch. |
24 |
> > In this situation, all the overlay author |
25 |
> > would have to do is adjust the PYTHON_COMPAT_ALLOW_EXTRA_IMPLS variable. |
26 |
> |
27 |
> ...which solves exactly zero problems because the eclass still doesn't |
28 |
> support the implementation in question. The best it could do is sweep |
29 |
> part of the problem under the carpet. |
30 |
|
31 |
We don't care if it *actually* supports it, the ebuilds in question |
32 |
aren't going to be installed on modern machines. We just want it to not |
33 |
blow up in the global scope. |
34 |
|
35 |
> Even if it miraculously works right now at all, it will probably fail or |
36 |
> misbehave randomly. Any eclass change might break it. Then one cheap |
37 |
> hack will serve as an excuse to add one more, and another.\ |
38 |
> |
39 |
> > The other option would be to move _PYTHON_ALL_IMPLS and the |
40 |
> > implementation of _python_impl_supported to a separate eclass, e.g. |
41 |
> > python-impls-r1.eclass. This eclass could be forked freely downstream |
42 |
> > without worrying about the other python eclasses. |
43 |
> |
44 |
> Again, this doesn't solve the problem. It just moves the problem |
45 |
> elsewhere. |
46 |
> |
47 |
|
48 |
How does this not solve the problem? Overlays could trivially support |
49 |
different implementations, without maintaining a lot of forks. We are |
50 |
quite happy to do the work to split it out to a separate eclass. |
51 |
|
52 |
> > Thoughts? |
53 |
> |
54 |
> I've already told you that if you want to fork, fork all eclasses. Then |
55 |
> you wouldn't have to worry about internal API going out of sync. |
56 |
> |
57 |
> Or don't autoupdate ::gentoo when eclasses change. |
58 |
> |