1 |
On 21 August 2011 08:10, Matt Turner <mattst88@g.o> wrote: |
2 |
|
3 |
> |
4 |
> See https://bugs.gentoo.org/372513 |
5 |
> |
6 |
|
7 |
^ tldr version for everyone else. |
8 |
|
9 |
This is due to the || condition in virtual/fortran |
10 |
|
11 |
|| ( sys-devel/gcc[fortran,openmp?] sys-devel/gcc-apple[fortran,openmp?] |
12 |
dev-lang/ifc dev-lang/ekopath-bin ) |
13 |
|
14 |
Where gcc[fortran] takes precedence over ifc. |
15 |
|
16 |
|
17 |
> I wonder if there's some way we can manage this kind of situation? |
18 |
> Perhaps portage could print alternative dependencies for virtuals, |
19 |
> similar to the very helpful recent "The following keyword changes are |
20 |
> necessary to proceed:" addition. |
21 |
> |
22 |
> |
23 |
This usecases specifics aside, I'd welcome some sort of way to show that an |
24 |
"or" condition is occurring somewhere in the tree, but it'd have to be |
25 |
opt-in, instead of opt-out, as the potential for being very noisy is great ( |
26 |
you'll get a lot of noise if you hit virtual/perl-* for instance ). |
27 |
|
28 |
And likewise, I'd love to have "some way" to produce some sort of graph for |
29 |
alternative merge trees that may work if you toggle some variable, but the |
30 |
amount of complexity to do this I'd imagine is quite large, and could easily |
31 |
be computationally expensive. |
32 |
|
33 |
It would very likely need some limiting factor for how deep it did |
34 |
permutations at. |
35 |
|
36 |
|
37 |
[ebuild N ] sys-libs/libstdc++-v3-3.3.6 USE="(multilib) nls" 23,459 kB |
38 |
[ebuild N ] app-shells/tcsh-6.16 USE="perl -catalogs" 869 kB |
39 |
# app-shells/tcsh-6.16 => |
40 |
# perl? ( |
41 |
# dev-lang/perl |
42 |
# ) |
43 |
[ebuild N ] app-emulation/emul-linux-x86- |
44 |
compat-20100611 |
45 |
USE="(multilib)" 930 kB |
46 |
[ebuild N ] virtual/libstdc++-3.3 0 kB |
47 |
# virtual/libstdc++-3.3 => |
48 |
# || ( |
49 |
# =sys-libs/libstdc++-v3-bin-3.3* |
50 |
# =sys-libs/libstdc++-v3-3.3* |
51 |
# ) |
52 |
[ebuild N ] dev-lang/ifc-10.0.026-r1 40,378 kB |
53 |
# virtual/fortran-0 -openmp => |
54 |
# || ( |
55 |
# sys-devel/gcc +fortran |
56 |
# sys-devel/gcc-apple +fortran |
57 |
# dev-lang/ifc |
58 |
# dev-lang/ekopath-bin |
59 |
# ) |
60 |
# virtual/fortran-0 +openmp => |
61 |
# || ( |
62 |
# sys-devel/gcc +fortran |
63 |
# sys-devel/gcc-apple +fortran |
64 |
# dev-lang/ifc |
65 |
# dev-lang/ekopath-bin |
66 |
# ) |
67 |
# || ( |
68 |
# sys-devel/gcc +fortran +openmp |
69 |
# sys-devel/gcc-apple +fortran +openmp |
70 |
# dev-lang/ifc |
71 |
# dev-lang/ekopath-bin |
72 |
# ) |
73 |
[ebuild N ] virtual/fortran-0 USE="openmp" 0 kB |
74 |
[ebuild N F ] sci-chemistry/cns-1.2.1 USE="openmp" 31,981 kB |
75 |
|
76 |
Would be a sample output for depthlimit = 1 |
77 |
|
78 |
Note that in this example I have made a few omissions, some because I |
79 |
couldn't be bothered working out all the other ACCEPT_KEYWORDS stuff to |
80 |
mentally compute which of the above targets were actually possible to |
81 |
install and what ACCEPT_KEYWORDS permuations could be done, and others |
82 |
because they are for whatever reason "fixed dependencies", thus, showing |
83 |
only dependencies that user choices can impact. |
84 |
|
85 |
ie: app-emulation/emul-linux-x86-compat-20100611 has different dependencies |
86 |
depending on the multilib USE flag, but that useflag is profile mandated so |
87 |
its pointless to show to a user. |
88 |
|
89 |
Alternatively, you could let the user dictate what type of permutations to |
90 |
display/compute, ie: |
91 |
|
92 |
use-flag based permutations, keyword based permutations, mask-based |
93 |
permutations, ||() conditional OR based permutations, package-version/slot |
94 |
permutations etc. |
95 |
|
96 |
For "package version/slot" permutations, it would display every variation on |
97 |
package/slot ( ie: slots/versions that are not the "current" version ) that |
98 |
were installable, or installable with some permutation ( if the depth of |
99 |
permutation is large enough ), so that a user could see a path of |
100 |
installation they wanted and twist user masks to make it happen. |
101 |
|
102 |
Of course, this is all looking like harder and harder stuff to do ( |
103 |
programming is the gateway-drug for feature creep ) , but it would still be |
104 |
something nice to have on a theoretical magic computer that can do all |
105 |
computations in zero time. |
106 |
|
107 |
¢¢ |
108 |
-- |
109 |
Kent |
110 |
|
111 |
perl -e "print substr( \"edrgmaM SPA NOcomil.ic\\@tfrken\", \$_ * 3, 3 ) |
112 |
for ( 9,8,0,7,1,6,5,4,3,2 );" |
113 |
|
114 |
http://kent-fredric.fox.geek.nz |