Gentoo Archives: gentoo-dev

From: Rich Freeman <rich0@g.o>
To: gentoo-dev <gentoo-dev@l.g.o>
Subject: Re: [gentoo-dev] Re: Implicit system dependency
Date: Fri, 14 Nov 2014 04:01:52
Message-Id: CAGfcS_myVLEDrdXdu=8MQ9DqFVa4HUYEpKOaXD_FZ655z6BvkA@mail.gmail.com
In Reply to: [gentoo-dev] Re: Implicit system dependency by Michael Palimaka
1 On Thu, Nov 13, 2014 at 9:38 PM, Michael Palimaka <kensington@g.o> wrote:
2 > On 14/11/14 11:06, Rich Freeman wrote:
3 >>
4 >> Well, the idea would be to maintain the virtual INSTEAD of @system, or
5 >> have @system just pull in the virtual and make some arch-specific
6 >> additions.
7 >
8 > Will that work? Some profiles remove packages from the base @system and
9 > replace it with their own implementations (eg. BSD).
10
11 Maybe. The thing is that a package either depends on something or it
12 doesn't. If it really does depend on something, then the fact that it
13 isn't available on BSD/etc isn't going to magically make the package
14 work. We just loosely define system dependencies in a way that makes
15 them work 98% of the time, basically accepting that things are going
16 to break and we get away with it because few of our users actually run
17 on BSD/etc.
18
19 If it is just a matter of preference then a profile could install an
20 alternative package that is in a virtual. However, this won't work if
21 everybody still uses some convenience virtual that pulls in bash/etc
22 and the BSD folks don't want to install bash unnecessarily.
23
24 The only perfect solution is explicit dependencies across the board.
25 If we want to be lazy and not have to list 50 deps for hello world,
26 then the package manager isn't going to know whether hello world
27 actually works on every arch/profile/etc.
28
29 Maybe the better solution is some kind of automation around (R)DEPEND.
30 In any case, I agree that it is a bit beyond the original scope of
31 this.
32
33 > Maybe some dependencies (within reason) should always be listed, for
34 > example when there's linkage eg. to libbzip2 or liblzma. That would make
35 > it easy to find consumers eg. if an alternate implementation appeared,
36 > and already appears to be a common practice.
37
38 The problem is that if it isn't 100% then it isn't all that great a
39 solution. It also isn't really necessary unless you want to remove a
40 package from the system set. If an alternative implementation
41 appears, then you create a virtual, place that virtual in the system
42 set, and all the packages in the tree remain happy to use whatever
43 implementation the user has installed without the risk of it getting
44 depcleaned.
45
46 In the past when we've considered removing a package from @system
47 there is usually a thread on -dev, and if there is a general sense
48 that we want to move forward then the announcement goes out for
49 everybody to check their packages and add an explicit dependency if
50 needed (often with tinderbox runs and the like). Then after a delay
51 the package is removed from @system and maintainers get to deal with
52 anything they missed.
53
54 I don't have a problem with devs listing dependencies anytime they're
55 real and they feel it makes sense to do so. I wouldn't make a push to
56 have them go out of their way to do it for any particular package
57 unless we are actively looking to remove it from @system, or there is
58 some other driver. Slot operator deps would be the one case where I
59 would try to push on maintainers to list deps.
60
61 And I do apologize for piling on a bit - trying to get rid of @system
62 has been one of my soap box issues for a while. It really seems like
63 an ugly, if practical, solution.
64
65 --
66 Rich

Replies

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