Gentoo Archives: gentoo-portage-dev

From: Gentoo <solar@g.o>
To: gentoo-portage-dev@l.g.o
Subject: Re: [gentoo-portage-dev] [RFC] Store [,R,P]DEPEND with unevaluated use conditionals in vdb
Date: Sat, 24 Apr 2010 20:39:08
Message-Id: 1272141506.5925.10.camel@here
In Reply to: Re: [gentoo-portage-dev] [RFC] Store [,R,P]DEPEND with unevaluated use conditionals in vdb by Sebastian Luther
1 On Sat, 2010-04-24 at 20:00 +0200, Sebastian Luther wrote:
2 > Am 24.04.2010 13:32, schrieb Gentoo:
3 > > On Fri, 2010-04-23 at 22:31 -0700, Zac Medico wrote:
4 > >> On 04/23/2010 05:43 AM, Sebastian Luther wrote:
5 > >>> Someone might come up with some logic to detect new use flags in
6 > >>> *DEPEND, but this looks like a hack to me.
7 > >>
8 > >> It doesn't seem too bad to me.
9 >
10 > It doesn't work, because it's not guaranteed, that only use flag from
11 > IUSE are used in use conditionals. That means you can't do it reliably
12 > without the unevaluated value.
13 >
14 > >>
15 > >>> The clean solution is to
16 > >>> store the unevaluated string.
17 > >>
18 > >> Do you want to do this for $PKGDIR/Packages as well? We've always
19 > >> evaluated USE conditionals in there since we were copying the
20 > >> behavior of the older genpkgindex tool and that's how it behaved.
21 > >>
22 >
23 > We should do it there too for the same reason as for storing it in the
24 > vdb. Never heard of that tool, but anyone handling portage's binpkgs
25 > should use the portage api which provides an easy way to evaluate the
26 > use conditionals.
27 >
28 > >> Also note that if we want to rely on having unevaluated strings then
29 > >> we'll probably want to try to get alternative package managers to
30 > >> behave the same way (maybe specify it in PMS).
31 >
32 > The vdb isn't covered by PMS. Paludis stores the unevaluated value,
33 > pkgcore stores the evaluated value.
34 >
35 > >>
36 > >>> Question is: Does anyone have a good argument to not use the old
37 > >>> behavior again?
38 > >
39 > > space and ease of parsing for minimal pkg mergers.
40 > >
41 > >
42 >
43 > Minimal mergers have to handle it anyway, since this has been the old
44 > behavior until some weeks ago.
45
46 We actually had flattened R/DEP's before for a while. Then they got
47 removed then noew added back.
48
49 > For portage API users, the difference is
50 > a (rather long) one liner.
51
52
53 > What do you mean with space?
54
55 The vdb is getting rather bloated. Anything that cuts down excess waste
56 there for the masses I tend to be in favor of.
57
58 > >>>
59 > >>> Sebastian
60 > >>>
61 > >>> [1] commit e6be6590e99522f9be69e2af8eff87919d9bf31f on 2010-02-14
62 > >>
63 > >> I think we'll have to handle the evaluated strings anyway since this
64 > >> code has already been released and stabilized in portage-2.1.8.x,
65 > >> and USE conditionals have been evaluate in $PKGDIR/Packages for even
66 > >> longer. Because of this, I see little or no benefit in changing it
67 > >> back to unevaluated strings at this point.
68 > >
69 > > Good. Thanks for not reverting back to those old behaviors.
70 >
71 > And the new use case isn't of any relevance?
72 >
73 > As a compromise: What about storing both values?
74
75 That just add bloat back. I think the real problem here in the example
76 you listed in the first email, is that ebuild authors should be bumping
77 a package when adding/removing functionaliy provided by IUSE. Infact
78 it's even a policy & part of our own ebuild quizzes that they should
79 bump the pkg (eclasses excluded).
80
81 --
82 Gentoo <solar@g.o>
83 Gentoo Linux