1 |
-----BEGIN PGP SIGNED MESSAGE----- |
2 |
Hash: SHA1 |
3 |
|
4 |
On Sunday 27 June 2004 02:32, Thomas de Grenier de Latour wrote: |
5 |
> With your solution at the contrary, everything depends on the |
6 |
> order in which packages get installed. If user prefers Xorg, then |
7 |
> he must do an "emerge (--oneshot) xorg-x11" before emerging gnome. |
8 |
> Also, if he wants to clone his system, he has to instanciate |
9 |
> virtuals (all his non-default choices at least) before emerging |
10 |
> world. |
11 |
|
12 |
It would be possible to keep /etc/portage/virtuals. Moreso, it would become |
13 |
possible to restrict it to virtuals. Try putting "sys-devel/gcc |
14 |
sys-libs/glibc" into it and then emerge -p gcc. It will show glibc. |
15 |
|
16 |
> - it would allow to inject virtuals. That could be a good thing. |
17 |
> (I remember that being able to "emerge inject |
18 |
> virtual/linux-sources" had been a request i've seen in the past |
19 |
> on this list.) I don't know how that would play with the |
20 |
> RESTRICT=metaebuild idea tho (depends how you implement it). |
21 |
|
22 |
I haven't given this any thought, but I guess it could be done. |
23 |
|
24 |
> - it would be very handy to have a user tool to list |
25 |
> candidates for a given virtual. Something like "equery |
26 |
> instanciates virtual-pkg-spec". It is straightforward to implement |
27 |
> with current system (now that the information is available in |
28 |
> aux_get), but seems harder in the context of your proposal. |
29 |
|
30 |
Personally, I think it is easier with my proposal. Presently, it requires |
31 |
scanning for PROVIDE in every ebuild in the tree. With my proposal, it would |
32 |
only require checking the RDEPEND of the metaebuild. |
33 |
|
34 |
> - it may make packages cleaning a bit harder: With the old |
35 |
> edb/virtuals system, it was easy to delete a few obsolete |
36 |
> duplicates in the virtuals file, and then ask depclean to finish |
37 |
> the cleanup a safe way. At the contrary, with your system, assume |
38 |
> "virtual/foo" depends on "|| ( bar/pkgA bar/pkgB )", then install |
39 |
> something that depends on virtual/foo (here, pkgA gets installed), |
40 |
> and then install pkgB. Do an "emerge -p depclean", and see |
41 |
> "bar/pkgA" is not listed despite it is not in world nor really |
42 |
> needed anymore. Maybe that can be fixed in depclean code tho, i |
43 |
> don't know. |
44 |
|
45 |
That is a difficult problem to get around, but exists regardless of how |
46 |
virtuals are implemented. It seems like the first argument I've heard for a |
47 |
breadth-first rather than depth-first dependency resolver. This issue also |
48 |
exists (in a different form) in 2.0.51 but is easy to overcome by explicitly |
49 |
stating the desired virtual in /etc/portage/virtuals. The only way to fix it |
50 |
with my scheme would be to fix depclean (which is broken in many other ways |
51 |
as well...) |
52 |
|
53 |
Actually, this problem is worse than you've described. app/fooA depends on "|| |
54 |
( bar/pkgA bar/pkgB )" and bar/pkgB is installed as a dep from app/fooB when |
55 |
app/fooA is emerged. Afterward, bar/pkgA is installed and app/fooB is |
56 |
uninstalled. depclean removes bar/pkgB and app/fooA more than likely breaks. |
57 |
|
58 |
> - also, i don't know exactly what would be the behavior of |
59 |
> RESTRICT=metaebuild, but if the point is that the package |
60 |
> don't appear at all in /var/db/pkg, then there is an issue: |
61 |
> it makes impossible to track backward dependencies. |
62 |
> We would then have packages that are: |
63 |
> * not in world |
64 |
> * not depended on by anything according to "qpkg -q" |
65 |
> * not candidate for cleaning according to "emerge depclean" |
66 |
|
67 |
The main point of RESTRICT="metaebuild" is that it does not show up in emerge |
68 |
- -p and that only its RDEPEND is checked. Whether it be installed into the var |
69 |
db or not was undecided and something I hadn't given much thought to. I have |
70 |
no issue with copying it to the the var db. |
71 |
|
72 |
Regards, |
73 |
Jason Stubbs |
74 |
-----BEGIN PGP SIGNATURE----- |
75 |
Version: GnuPG v1.2.4 (GNU/Linux) |
76 |
|
77 |
iQCVAwUBQN4ZI1oikN4/5jfsAQLQ2gP/aQiK+D7cHU4Oyaa/+ISWUgUcVuZKQdhq |
78 |
vXfte3DSbWdqsPvC1vH1JVth6OT4w/OZhk2Tx/B11UN+J4hXvy4JGN7BzGRBJw23 |
79 |
uRm6g7eaJTuFoXJTopRQIpE3Y7SAlpi2E+MYpguk2gaVfU8jsBH7rRwkgoI60u+O |
80 |
BreYL9ay8qk= |
81 |
=v7xi |
82 |
-----END PGP SIGNATURE----- |
83 |
|
84 |
-- |
85 |
gentoo-dev@g.o mailing list |