Gentoo Archives: gentoo-dev

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

Replies

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