Gentoo Archives: gentoo-dev

From: Andrew Savchenko <bircoph@g.o>
To: gentoo-dev@l.g.o
Subject: Re: [gentoo-dev] Re: Implicit system dependency
Date: Fri, 14 Nov 2014 14:15:15
Message-Id: 20141114171447.d280e413cf4902a592dc2049@gentoo.org
In Reply to: Re: [gentoo-dev] Re: Implicit system dependency by "Anthony G. Basile"
1 Hi,
2
3 On Fri, 14 Nov 2014 07:20:50 -0500 Anthony G. Basile wrote:
4 > On 11/13/14 23:15, Zac Medico wrote:
5 > > On 11/13/2014 08:01 PM, Rich Freeman wrote:
6 > >> On Thu, Nov 13, 2014 at 9:38 PM, Michael Palimaka <kensington@g.o> wrote:
7 > >>> On 14/11/14 11:06, Rich Freeman wrote:
8 > >>>> Well, the idea would be to maintain the virtual INSTEAD of @system, or
9 > >>>> have @system just pull in the virtual and make some arch-specific
10 > >>>> additions.
11 > >>> Will that work? Some profiles remove packages from the base @system and
12 > >>> replace it with their own implementations (eg. BSD).
13 > >> Maybe. The thing is that a package either depends on something or it
14 > >> doesn't. If it really does depend on something, then the fact that it
15 > >> isn't available on BSD/etc isn't going to magically make the package
16 > >> work. We just loosely define system dependencies in a way that makes
17 > >> them work 98% of the time, basically accepting that things are going
18 > >> to break and we get away with it because few of our users actually run
19 > >> on BSD/etc.
20 > >>
21 > >> If it is just a matter of preference then a profile could install an
22 > >> alternative package that is in a virtual. However, this won't work if
23 > >> everybody still uses some convenience virtual that pulls in bash/etc
24 > >> and the BSD folks don't want to install bash unnecessarily.
25 > > Maybe I'm missing something, but if you are using virtuals, then you can
26 > > make the deps conditional on profile forced/masked flags like
27 > > userland_BSD and userland_GNU if necessary. These behave like normal USE
28 > > flags, aside from the fact the they are forced or masked by profiles.
29 >
30 > Sorry Zac, I posted my reply before I read this. This is essentially
31 > the point I was making. However, I think this will be cumbersome. With
32 > the current way we do things, its easy to delete packages from @system
33 > by just doing '-*sys-apps/man-pages' (for example) in a profile's
34 > packages file. It is not so easy to delete from a DEPEND string, so I
35 > foresee some tricky if logic here.
36
37 There is another drawback of using virtuals instead of @system set.
38 For old systems (in practical terms they are systems not updated
39 @world for more than several month) it is wise to update kernel,
40 @system and only afterwards whole @world.
41
42 Virtuals will not catch updates in underlying packages if --deep is
43 not used and it can't be used, because some packages from @system
44 may indirectly depend on packages from @world (e.g. cairo, qt or
45 xorg) which will trigger half of the @world update with -D @system
46 which makes it impossible and impractical to use -D @system before
47 full @world update on old setups.
48
49 We already have this problem with virtua/libc: it is not updated at
50 all, so when I run emerge -uav @system for the purposes described
51 above I have to manually add sys-devel/glibc to the list.
52
53 If @system will be removed at all, it will be much harder to
54 perform deep and large @world updates. Practically users willing to
55 update old systems will have to write and manage @system set on
56 their own.
57
58 Best regards,
59 Andrew Savchenko

Replies

Subject Author
Re: [gentoo-dev] Re: Implicit system dependency Zac Medico <zmedico@g.o>