Gentoo Archives: gentoo-dev

From: Michael Palimaka <kensington@g.o>
To: gentoo-dev@l.g.o
Subject: [gentoo-dev] Re: Implicit system dependency
Date: Fri, 14 Nov 2014 02:38:41
Message-Id: m43pue$ph5$1@ger.gmane.org
In Reply to: Re: [gentoo-dev] Re: Implicit system dependency by Rich Freeman
1 On 14/11/14 11:06, Rich Freeman wrote:
2 > On Thu, Nov 13, 2014 at 10:07 AM, Michael Palimaka
3 > <kensington@g.o> wrote:
4 >>
5 >> Ditching implicit dependencies is an interesting idea but not practical.
6 >> Nobody wants to the laundry list, and there's little benefit in
7 >> maintaining a virtual/system clone of @system.
8 >>
9 >
10 > Well, the idea would be to maintain the virtual INSTEAD of @system, or
11 > have @system just pull in the virtual and make some arch-specific
12 > additions.
13
14 Will that work? Some profiles remove packages from the base @system and
15 replace it with their own implementations (eg. BSD).
16
17 >
18 > As far as benefits go, they include:
19 > 1. No need to have multiple ways of grouping packages.
20 > 2. You can more than one virtual, so that you could just pull in the
21 > super-lazy equivalent to @system, or maybe you just pull in POSIX+bash
22 > and C++ or something like that.
23 > 3. You can split up that virtual so that convenience packages like
24 > ssh aren't in the same virtual as widespread dependencies like
25 > bash/zlib/glibc/gcc/etc. There is no reason that you can't build
26 > openssh in parallel, but right now you can't because we lump it in
27 > with glibc.
28 > 4. You can choose when to use the virtual at all, versus explicitly
29 > naming all dependencies.
30 >
31 > For 99% of packages it would be the same. We could even have that
32 > dependency added automatically if something isn't done in the ebuild
33 > to disable it, which would make ebuilds work the same as they do now.
34 > However, for the packages that are actually in @system we could list
35 > explicit dependencies and then portage would actually be able to
36 > handle some things automatically. Also, by using virtuals that are
37 > the same across all archs, we have a bit more consistency.
38
39 Definitely interesting ideas, but I think it's beyond the scope of
40 what's trying to be addressed here. Solving bug #393445 would also go a
41 long way to sorting out core-system vs. want-to-have packages.
42
43 > Policy-wise, though, the status quo isn't that bad. You never have to
44 > list dependencies that are in @system, full stop. You can list a
45 > dependency that is in @system anytime you want to, full stop.
46 >
47 > That is, it is never right or wrong to list an unversioned dependency
48 > that is in @system. Sometimes doing one or the other is advantageous
49 > (such as when you have a versioned dependency, or a virtual is in
50 > @system but you need a specific implementation, or you want to use a
51 > slot-op dep). I'm fine with examples, but they shouldn't be firm
52 > rules, just helpful guidelines.
53
54 Maybe some dependencies (within reason) should always be listed, for
55 example when there's linkage eg. to libbzip2 or liblzma. That would make
56 it easy to find consumers eg. if an alternate implementation appeared,
57 and already appears to be a common practice.
58
59 Perhaps instead of creating a whitelist, we could just update the text a
60 bit:
61
62 All packages have an implicit compile-time and runtime dependency upon
63 the entire system target. For toolchain packages part of the system
64 target (such as gcc, libc, binutils and so on) it is not necessary, nor
65 advisable, to specify dependencies, except where specific versions or
66 packages (for example, glibc over uclibc) are required.
67
68 For other non-toolchain packages part of the system target (such as
69 bzip2 or wget) it is optional to specify a dependency. Consideration
70 should be given to packages that don't appear in system targets in other
71 profiles or might be removed in the future. Where package links to
72 package in the system target (such as libbz2) it is recommended to
73 specify a dependency.

Replies

Subject Author
Re: [gentoo-dev] Re: Implicit system dependency Rich Freeman <rich0@g.o>
Re: [gentoo-dev] Re: Implicit system dependency "Anthony G. Basile" <blueness@g.o>