Gentoo Archives: gentoo-dev

From: Michael Mol <mikemol@×××××.com>
To: gentoo-dev@l.g.o
Subject: Re: [gentoo-dev] GLEP: gentoo sync based unified deps proposal
Date: Mon, 17 Sep 2012 14:23:31
Message-Id: CA+czFiDbCzL5d+a=Lh6r7KxWfiMS_moDEQPeBRMiHi+cJyxZ-g@mail.gmail.com
In Reply to: Re: [gentoo-dev] GLEP: gentoo sync based unified deps proposal by Ben de Groot
1 On Mon, Sep 17, 2012 at 9:48 AM, Ben de Groot <yngwin@g.o> wrote:
2 > On 17 September 2012 20:41, Ciaran McCreesh
3 > <ciaran.mccreesh@××××××××××.com> wrote:
4 >> On Mon, 17 Sep 2012 19:49:12 +0800
5 >> Ben de Groot <yngwin@g.o> wrote:
6 >>> Or, even easier and more straightforward: just keep using *DEPEND. The
7 >>> case hasn't been made yet why we need to change that in the first
8 >>> place.
9 >>
10 >> We're looking at something like eight *DEPEND variables in EAPI 6, with
11 >> considerable overlap between them all.
12 >
13 > And like now, in the great majority of cases, only two or three will be used.
14 > The enormous cost of moving to a different system (or the folly of using
15 > two systems in parallel) is not worth the slight benefit of a more cosmetic
16 > handling of the few cases where a few more *DEPEND variables would be
17 > needed and/or there is some overlap to be dealt with.
18
19 As someone who's been reading these threads, but hasn't actually
20 written any ebuilds from scratch, I'd like to offer my perspective as
21 a well-intentioned beginner:
22
23 On labels: The labels, to me, appeared largely more readable (and less
24 formidable a syntax to read and write as a human) than the foo? (
25 bar/baz ) syntax...until someone demonstrated a distinction between
26 depends and dependency types. I hadn't even noticed a distinction
27 between the two, until that point was raised.
28
29 While I like the labels (to me, they feel similar to Makefiles or C
30 switch statements), a clearer distinction between dependencies and
31 dependency types would be nice.
32
33 On unified DEPENDS vs *DEPEND: It seems to me that at a code level,
34 there's no real semantic difference. Since they both parse out
35 losslessly to the same abstract thing, you could serialize that
36 abstract thing back out into either format. Given most cases will be
37 simple, you could even serialize it away into something not
38 bash-based, if desired. All this means, to me, that the behavior of
39 the two under the hood is essentially irrelevant, and any bugs in
40 complex implementation could be caught with automated testing.
41
42 I personally favor a singular 'DEPENDS', because
43
44 1) I feel it would lead to better-organized documentation (I'm looking
45 for details about one var, rather than two or three vars--oh and then
46 there's the other N *DEPENDS I may not even have heard of yet), and
47
48 2) I worry less about accidental namespace pollution in my make.conf
49 file. Why do I worry about namespace pollution? Rather than using
50 profiles, I have around 40-50 USE flags divided by category into
51 varnames like SYS_USE_COMPRESION, and then I have a line that says
52 USE="${SYS_USE_CPU} ${SYS_USE_COMPRESSION} ${SYS_USE_DONOTWANT} # etc"
53 which coalesces it all. When I ran into a strange problem some time
54 back, someone assisting me initially suspected that my SYS_USE_* vars
55 might be conflicting with something internal to portage.
56
57 Again, this isn't coming from a seasoned developer, this is coming
58 from a well-intentioned beginner with very little time on his hands.
59 --
60 :wq