Gentoo Archives: gentoo-dev

From: Ian Stakenvicius <axs@g.o>
To: gentoo-dev@l.g.o
Subject: Re: [gentoo-dev] Dynamic dependencies
Date: Thu, 01 Oct 2015 19:08:15
Message-Id: 560D8490.9050202@gentoo.org
In Reply to: Re: [gentoo-dev] Dynamic dependencies by Rich Freeman
1 -----BEGIN PGP SIGNED MESSAGE-----
2 Hash: SHA256
3
4 On 01/10/15 02:34 PM, Rich Freeman wrote:
5 > On Wed, Sep 16, 2015 at 1:09 PM, Rich Freeman <rich0@g.o>
6 > wrote:
7 >>
8 >> I'll go ahead and start a tangent on this thread right here.
9 >> As a first step can we separately consider the proposal to
10 >> require a revbump anytime a package's RDEPENDS changes? I'm
11 >> referring here to directly-specified RDEPENDS, not those
12 >> inherited from an eclass or virtual.
13 >
14 > Ok, for the purpose of the upcoming council meeting, I'd like to
15 > make a few separate proposals around dynamic dependencies. There
16 > are three categories of policies: 1. RDEPEND changes directly in
17 > ebuilds. 2. RDEPEND changes directly in virtuals. 3. RDEPEND
18 > changes in eclasses.
19 >
20 > Honestly, I'm not really convinced virtuals need special
21 > treatment, but I split them off in case it is useful in
22 > discussion.
23 >
24 > RDEPEND changes directly in ebuilds Proposal 1: Anytime an
25 > RDEPEND in a non-virtual ebuild is changed, the ebuild must be
26 > revisioned. This includes adding/removing inherited eclasses
27 > which set RDEPENDs.
28 >
29
30 Seconded, with the exclusion of package renames, as those can be
31 handled in-place with 'pkgmove' VDB updates.
32
33 Slotmove VDB updates *should* be allow slotmove-related changes to
34 be excluded here too, but unfortunately with portage not doing
35 updates to rdeps properly, at this time all rdeps will need to be
36 revbumped when their RDEPEND changes.
37
38
39
40 > RDEPEND changes directly in virtuals Proposal 2: Anytime an
41 > RDEPEND in a virtual ebuild is changed, the ebuild must be
42 > revisioned. This includes adding/removing inherited eclasses
43 > which set RDEPENDs.
44
45
46 Seconded; virtuals are empty so its not a big deal here
47
48
49 >
50 > RDEPEND changes in eclasses Proposal 3: Anytime an RDEPEND in an
51 > eclass is changed, the eclass must be revisioned. Proposal 4:
52 > Anytime an RDEPEND in an eclass is changed, all ebuilds that
53 > inherit the eclass in the gentoo repository must be revisioned.
54
55 This one is trickier to deal with. For starters, after thread
56 between yourself and mgorny and I, I think we figured out that there
57 wouldn't be an end-user breakage from people that have emerged a
58 package eclass-rdepend'ing on one depset, when that depset is
59 changed; it just ends up with everyone after the time of the change
60 needing the new depset.
61
62 There are specific cases where the revbump to rdeps will be
63 necessary (and the eclass itself too, *if* keeping the old eclass
64 around or differentiating which eclass version is inherited actually
65 matters):
66
67 - - slotmove operations on a dep in *DEPEND
68 - - the addition of blocker atoms due to the introduction of
69 conflicting packages
70 - - the addition of atoms to address implicit dependencies that were
71 missed before (and weren't in the ebuilds)
72 - - adjustments to atoms based on changes made to the dependent
73 package, with the changes now necessary to prevent breakage. (IE:
74 useflags changed in-place on a dep and the packages inheriting the
75 eclass now need to ensure that the new useflag is set)
76
77 ...there are likely other cases but I can't think of any right now.
78
79 At any rate, the point here being that a simple minimum-version-bump
80 in an eclass RDEPEND does indicate a divergence will occur between
81 end-user VDB and the repo, but that doesn't necessarily mean it's
82 something we need to avoid, or rather, we don't necessarily -need-
83 to enforce convergence between the repo and end-user VDB.
84
85
86 Once we get a bit more hashing out of the above I can try writing up
87 the complicated proposal(5?,6?) wording...
88
89 -----BEGIN PGP SIGNATURE-----
90 Version: GnuPG v2
91
92 iF0EAREIAAYFAlYNhJAACgkQAJxUfCtlWe2oXQD2ILHhFlsTJ8FYXbzSROA4hsnE
93 FGV17l9WmWr31NlrpQD+Iw5tbN/qzeDSZZXXv8/YbXu82IhgB5qK3FZjmxdEEkU=
94 =hYNh
95 -----END PGP SIGNATURE-----

Replies

Subject Author
Re: [gentoo-dev] Dynamic dependencies Ciaran McCreesh <ciaran.mccreesh@××××××××××.com>
Re: [gentoo-dev] Dynamic dependencies Rich Freeman <rich0@g.o>