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 |