Gentoo Archives: gentoo-dev

From: Jason Stubbs <jstubbs@g.o>
To: gentoo-dev@l.g.o
Subject: Re: [gentoo-dev] Virtuals - required?
Date: Sun, 27 Jun 2004 00:50:05
Message-Id: 200406270947.32352.jstubbs@gentoo.org
In Reply to: Re: [gentoo-dev] Virtuals - required? by Thomas de Grenier de Latour
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

Replies

Subject Author
Re: [gentoo-dev] Virtuals - required? Thomas de Grenier de Latour <degrenier@×××××××××××.fr>