Gentoo Archives: gentoo-dev

From: Ian Stakenvicius <axs@g.o>
To: gentoo-dev@l.g.o
Subject: Re: [gentoo-dev] Re: example conversion of gentoo-x86 current deps to unified dependencies
Date: Tue, 02 Oct 2012 17:48:22
Message-Id: 506B28AB.4050301@gentoo.org
In Reply to: Re: [gentoo-dev] Re: example conversion of gentoo-x86 current deps to unified dependencies by Brian Harring
1 -----BEGIN PGP SIGNED MESSAGE-----
2 Hash: SHA256
3
4 On 30/09/12 06:15 PM, Brian Harring wrote:
5 >
6 > Pardon the belated response; responding to emails that are quick
7 > where possible, but lagging on -dev. Missed this one however...
8 >
9
10 No worries, there's a lot going on.. :D
11
12
13
14 >>>> yngwin has a point that I've not seen addressed.
15 >>>>
16 >>>> What /is/ wrong with the whole CDEPEND intermediate var idea?
17 >>>>
18 >>>
19 >>> The problem appears as we introduce more DEPEND variables
20 >>> (which is what prompted the proposal, IIRC). If we have
21 >>> ADEPEND, BDEPEND, CDEPEND, and DDEPEND, and there's only some
22 >>> (i.e. not total) sharing going on then the COMMON_DEPEND
23 >>> pattern starts to fall apart. You potentially need,
24 >>>
25 >>> AB_DEPEND AC_DEPEND AD_DEPEND BC_DEPEND BD_DEPEND CD_DEPEND
26 >>> ABC_DEPEND ABD_DEPEND ACD_DEPEND BCD_DEPEND ABCD_DEPEND
27 >>> (COMMON_DEPEND)
28 >>>
29 >>> This obviously gets worse as more DEPEND vars are introduced.
30 >>>
31 >>
32 >> Well not really, no -- the additional *DEPENDs that are being
33 >> proposed (or at least mentioned) for new EAPI will either remove
34 >> atoms from COMMON_DEPEND/DEPEND/RDEPEND or will be used so
35 >> tersely that a COMMON_DEPEND or other intermediate variable won't
36 >> really be necessary for them.
37 >
38 > It depends on the dep type actually, and how we're viewing those
39 > deps- if they must be complete or not. [ .. Snip! .. ]
40 >
41 > The point I'm trying to make here is that each dep phase should be
42 > authorative; in doing so, you start getting a lot of potential
43 > subsets (DEPEND is a subset of TDEPEND, TDEPEND isn't completely,
44 > but mostly a subset of RDEPEND as RDEPEND is a likely a superset of
45 > DEPEND; PDEPEND is a superset of RDEPEND).
46 >
47 > So... you could do COMMON_DEPEND, COMMON_TDEPEND, COMMON_RDEPEND in
48 > the ebuild. Or you could just use a syntax form that allows you
49 > to directly inline that up front, rather than having to muck around
50 > w/ intermediate vars.
51 >
52
53 ... I think what you've just described here might be where the primary
54 difference in thinking is for most of us, between moving to
55 DEPENDENCIES and keeping the current *DEPENDs -- to me, from an ebuild
56 writer's perspective, the *DEPENDS -shouldn't- be authoritative. IE,
57 instead of thinking of PDEPEND as a superset of RDEPEND I consider
58 they are two separate sets, which should not intersect, and are
59 unioned together to form the full set of runtime dependencies. IE:
60 FULL_RUNTIME_DEPEND="$RDEPEND $PDEPEND" somewhere inside portage, if
61 portage actually needed it this way.
62
63 And I see this as how many of the other proposed new *DEPENDs would
64 work too, ie, they are a refined subset of the bigger sets and should
65 not intersect with the 'parent' *DEPEND that was used instead on older
66 EAPIs.
67
68 So if this were to change, it might make sense (as Duncan i think
69 pointed out in his response to this message), to a debate on whether
70 or not ebuilds must specify an authoritative list for each dep phase.
71 (I haven't read through PMS but I'm going to assume that it doesn't
72 specify this anywhere yet--and if it does, i'm sure Ciaran or someone
73 will quote it in response :)
74 -----BEGIN PGP SIGNATURE-----
75 Version: GnuPG v2.0.19 (GNU/Linux)
76
77 iF4EAREIAAYFAlBrKKsACgkQ2ugaI38ACPBA9wD/a+XVf2g9s6dcpW1513aXQpYV
78 tK94QdLkax0Hs6tKFqcA/0+v6oFON2Bd3hedv9DHg7N42NNvtTKK6sOw18OpL0aO
79 =frmC
80 -----END PGP SIGNATURE-----

Replies