Gentoo Archives: gentoo-dev

From: Alec Warner <antarus@g.o>
To: Patrick McLean <chutzpah@g.o>, Zac Medico <zmedico@g.o>
Cc: Gentoo Dev <gentoo-dev@l.g.o>, Matt Turner <mattst88@g.o>
Subject: Re: [gentoo-dev] [PATCH] Split python implementations definition to separate eclass
Date: Fri, 27 Mar 2020 23:12:30
Message-Id: CAAr7Pr9kQs7k4Pazqvr27sNLob3EQNxN07RjHFZH1-wxhpR=QQ@mail.gmail.com
In Reply to: Re: [gentoo-dev] [PATCH] Split python implementations definition to separate eclass by Patrick McLean
1 On Fri, Mar 27, 2020 at 3:54 PM Patrick McLean <chutzpah@g.o> wrote:
2
3 > On Fri, 27 Mar 2020 15:51:35 -0700
4 > Alec Warner <antarus@g.o> wrote:
5 >
6 > > On Fri, Mar 27, 2020 at 3:11 PM Patrick McLean <chutzpah@g.o>
7 > wrote:
8 > >
9 > > > On Fri, 27 Mar 2020 14:48:53 -0700
10 > > > Matt Turner <mattst88@g.o> wrote:
11 > > >
12 > > > > On Thu, Mar 26, 2020 at 2:03 PM Patrick McLean <chutzpah@g.o>
13 >
14 > > > wrote:
15 > > > > >
16 > > > > > This patch splits the definition of _PYTHON_ALL_IMPLS and
17 > > > > > _python_impl_supported to a separate eclass, this allows overlays
18 > > > > > to easily support a different set of python implementations than
19 > > > > > ::gentoo without having to fork the entire suite of eclasses.
20 > > > >
21 > > > > (I think the issue is that you have some packages that still need
22 > > > > Python 3.4. Correct me if I'm wrong)
23 > > > >
24 > > > > How many packages do you need to work with Python 3.4? Presumably
25 > just
26 > > > > a couple and then a pile of dependencies in ::gentoo?
27 > > > >
28 > > >
29 > > > For our particular purpose, it's more complicated than that. We do not
30 > > > expect or want ::gentoo to try support Python 3.4 in any way. We have
31 > an
32 > > > overlay that is shared on a lot of machines, some of those machines are
33 > > > older than others. As such we still have ebuilds that only support
34 > > > python3_4 that still exist in the overlay. We would like it if the
35 > > > existence of these packages in the overlay, do not cause metadata
36 > > > generation or dependency calculation to explode on the more up-to-date
37 > > > machines.
38 > > >
39 > >
40 > > > We do not need Python 3.4 packages to be installable on the newer
41 > > > machines, we just need them not to explode.
42 > > >
43 > >
44 > > Couldn't you simply remove the ebuilds from the overlay entirely in this
45 > > case? It's my understanding that on the machines with the packages
46 > > installed, the merged package metadata is being used (which is why those
47 > > machines work) and since the newer machines don't have this merged
48 > package
49 > > metadata, they don't work properly.
50 > >
51 >
52 > Sometimes we have to fix the older machines, so we have to keep
53 > everything around until none of our machines are using it any more.
54 >
55
56 +Zac Medico <zmedico@g.o>
57
58 I'm not following something then. One of the proposals earlier was "do not
59 generate metadata for these ebuilds" which to me reads as "keep these
60 ebuilds in the repo, but the ebuilds themselves will not be usable[0]."
61 Then you go on to say that old machines need to be fixed occasionally, so
62 either you need to reinstall a package or update it. The reinstall might be
63 strictly possible from the vdb metadata, but the upgrade would require
64 working repository metadata, which we said earlier we didn't want to
65 generate.
66
67 (There is a different question of whether you could use a binpkg binhost to
68 basically build versions of these packages and use those for reinstalls,
69 because at least the binpkg metadata *is* nominally fixed in time and can
70 be re-used easily and doesn't require eclass magic in theory, as the
71 eclasses are bound in the environment.tar?) I suspect in essence it might
72 be easier to just do what Robin suggested and use a frozen ::gentoo on the
73 older machines.
74
75 -A
76
77 [0] Perhaps the earlier proposals were ..slightly off. With more
78 information it seems like what you want is to be able to easily maintain
79 some python-3.4 ebuilds in your overlay, even though Gentoo is on to 3.6
80 (and soon 3.7). I personally think the conversation would have gone much
81 better had you just come out and said "hey we have a bunch of internal
82 overlays with 3.4 and we need to keep the packages for another N months,
83 how can we do this easily?" Instead of whatever happened. I tend to agree
84 with mgorny that it's not simply carrying this single patch, but in reality
85 it's a stronger commitment to build some kind of method to let you continue
86 to support older python versions. Future changes might impact your ability
87 to support your ebuilds and we have no real way of knowing if we broke
88 you..so I can see why (irrespective of the tone of the conversation) he
89 would be reticent to pick that up.
90
91
92 >
93 > > >
94 > > > I am trying to come up with a solution that *any* overlay can use, I
95 > > > am happy to do work towards that end. Basically, it would be very
96 > > > nice if there was a minimal eclass that handles all the python
97 > > > version compatibility. Almost everything in the eclasses does not care
98 > > > about versions.
99 > > >
100 > > > This is not meant to be something just for our usage, we want this to
101 > > > be usable for *any* overlay, and are more than happy to make things as
102 > > > generic as possible. If some overlay wants to support Python 3.10
103 > alpha,
104 > > > resurrect jython support, or add Ironpython support, without forking
105 > > > all the eclasses, I would like to think that could be doable as well.
106 > > >
107 > > >
108 >
109 >

Replies