Gentoo Archives: gentoo-dev

From: Brian Harring <ferringb@×××××.com>
To: ciaran.mccreesh@××××××××××.com
Cc: gentoo-dev@l.g.o
Subject: Re: [gentoo-dev] pkg_pretend USE validation and VALID_USE alternative
Date: Thu, 01 Apr 2010 07:33:47
Message-Id: 20100401073109.GI11663@hrair
In Reply to: Re: [gentoo-dev] pkg_pretend USE validation and VALID_USE alternative by Ciaran McCreesh
1 On Wed, Mar 31, 2010 at 08:56:28PM +0100, Ciaran McCreesh wrote:
2 > On Wed, 31 Mar 2010 12:46:26 -0700
3 > Brian Harring <ferringb@×××××.com> wrote:
4 > > Actual name I don't hugely care about, I'm more interested in
5 > > ensuring we don't rule out doing use cycle breaking via a bad design
6 > > decision.
7 >
8 > Cycle breaking requires explicit instructions from the ebuilds in
9 > question (many of which are system things, which further complicates it)
10 > along with support from Portage, so it's a distant future, lot of work
11 > thing.
12
13 Nonsense. Note I said 'use cycle', not the generic 'cycle breaking'.
14 USE induced cycles don't require explicit instructions from the
15 ebuild at all- the PM itself can search the solution space (toggling
16 flags as needed) to search out a way around the cycle.
17
18 Consider user configuration w/ USE=X, pkg_a w/ DEPEND "X? ( pkg_b )",
19 pkg_b w/ DEPEND "pkg_a". To be clear, you're claiming that the
20 ebuild itself (and only the ebuild) is the the one able to state-
21
22 emerge pkg_a[-X]
23 emerge pkg_a[X]
24
25 As demonstrated, that cycle is easily broken. A lot of the cycles
26 users run into originate that way also.
27
28 Reiterating a point you're missing also, any use cycle a user hits is
29 currently requires the *user* to sort it out anyways- what VALID_USE
30 adds is the ability for the package manager to do it itself.
31
32 As for the "portage is developmentally slow" contribute frankly- per
33 the norm w/ open source, you want something, ultimately you're the one
34 responsible for the work.
35
36 Less contentious answer, I've already gotten an estimate of 2 weeks
37 out of Luther (the person who has been knocking out EAPI4 features in
38 the last month or so)- I'm not that concerned about it. Actual work
39 is a few days, motivation per the norm is the main time sink.
40
41
42 > Since we need pkg_pretend to cover all the things that aren't use flag
43 > related anyway, it makes sense to just go with that rather than
44 > delaying things even further.
45
46 And as I've already laid out in the bug, pkg_pretend has it's own set
47 of issues when compared to pkg_setup due to it being non temporal,
48 thus having high false positive potentials.
49
50 The main council push for pkg_pretend was to move use constraint
51 checking to pre build. VALID_USE does that cleaner and enabling use
52 cycle breaking to be built; as such I'm pushing it up to them unless
53 someone can find significant *real* flaws.
54
55 Soo... as I've described on the bug and here (repeatedly), exempting
56 5-10 cases from the tree, what pkg_pretend enables can either be done
57 better via VALID_USE, or is a degradation due to temporal concerns
58 when you move the code out of pkg_setup.
59
60 Short version: it's a step backwards.
61
62
63 > When in the distant future Portage
64 > becomes able to deal with cycle breaking, ebuilds can be converted to
65 > use something like VALID_USE when they're also updated to export
66 > information on which of their flags can safely be toggled.
67
68 You're being short sighted. VALID_USE is useful now for representing
69 use states that are allowed; that data itself is useful for use cycle
70 breaking. Added bonus of enabling better functionality via a superior
71 solutions, basically.
72
73
74 ~harring

Replies

Subject Author
Re: [gentoo-dev] pkg_pretend USE validation and VALID_USE alternative Ciaran McCreesh <ciaran.mccreesh@××××××××××.com>