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 |