Gentoo Archives: gentoo-dev

From: Alexis Ballier <aballier@g.o>
To: gentoo-dev@l.g.o
Subject: Re: [gentoo-dev] Re: Remember to specify SLOT when adding subslot operator to dependencies
Date: Mon, 05 Aug 2013 17:59:07
Message-Id: 20130805135849.0bc24602@gentoo.org
In Reply to: Re: [gentoo-dev] Re: Remember to specify SLOT when adding subslot operator to dependencies by Ciaran McCreesh
1 On Mon, 5 Aug 2013 18:28:54 +0100
2 Ciaran McCreesh <ciaran.mccreesh@××××××××××.com> wrote:
3
4 > On Mon, 5 Aug 2013 12:51:48 -0400
5 > Alexis Ballier <aballier@g.o> wrote:
6 > > > Not really. There's a tradeoff between dependencies that are
7 > > > occasionally too strict, and dependencies that are horribly
8 > > > complicated (see "subslot dictionaries").
9 > >
10 > > having a way to express 'my subslot is the one of my provider'
11 > > doesnt seem overly complicated
12 >
13 > Unfortunately things that "don't seem" to be complicated sometimes are
14 > complicated. We haven't established whether that's the case here. In
15 > particular, we don't have any notion of "providers" currently,
16
17 s/currently/anymore/
18
19 > and
20 > it's not clear such a concept makes sense as-is. We haven't worked
21 > out what happens in a || ( a b !c ) case where a, b and c are all
22 > installed, for example.
23
24 subslot = concatenation of the subslots of all (positive? if it makes
25 sense) dependencies; updated when said dependencies get their subslot
26 changed.
27
28 this seems to fit well for a virtual and should be in line with what
29 one would get with old style virtuals in mind.
30
31 > > > So all this fuss over "unnecessary compiles" is misplaced. Gentoo
32 > > > simply isn't the right distribution to use if minimising compile
33 > > > time is a goal.
34 > >
35 > > two wrongs do not make one right... esp. when the 'wrong' at hand
36 > > can be easily avoided...
37 >
38 > We've not established that it's "easy".
39
40 you don't believe it is; and the first part still applies, meaning we
41 should avoid to do the wrong thing just because there are other areas
42 where we got it wrong.
43
44 > > > > 'horrible breakage' is mitigated by preserve-libs and running
45 > > > > @preserved-rebuild as soon as possible has the same end result
46 > > > > avoiding useless rebuilds.
47 > > >
48 > > > But preserve-libs introduces breakages and security holes. The
49 > > > point of slot operator dependencies is to replace that with a
50 > > > reliable feature that doesn't rely upon guesswork and voodoo.
51 > >
52 > > not more than subslots, per pms:
53 > > The sub-slot is used to represent cases in which an upgrade to a
54 > > new version of a package with a different sub-slot may require
55 > > dependent packages to be rebuilt.
56 > >
57 > > so, per spec, it isnt reliable either since the spec does not
58 > > enforce rebuilds as soon as possible, heck, it doesnt even enforces
59 > > rebuilds... (may vs must + when)
60 >
61 > You are misreading that statement. The "may" is there because even in
62 > cases where there is an ABI break, some dependent packages may not
63 > require recompiling because they may not be using the full ABI. The
64 > "may" means developers are not prohibited from changing subslots in
65 > the case where there exists a package which will not break.
66
67 how can one know if that 'may' applies ?
68
69 > Also, "as soon as possible" doesn't come into it anywhere. It's not
70 > even a well defined requirement.
71
72 read it differently then: foo has := dependencies that changed their
73 subslot after foo has been installed. Is a DEPEND on foo considered
74 satisfied or should foo be rebuilt before ?
75
76 > Also also, the spec generally avoids wordings that prohibit the
77 > package manager from breaking things (partly because Portage doesn't
78 > properly enforce dependencies, partly because prohibiting the user
79 > from breaking things if they really want to is not the Gentoo way).
80 > The spec prefers to state things in terms of what can be relied upon
81 > to work.
82
83 Supposing we are dealing with shared libraries only, how is that an
84 improvement over preserve-libs ?

Replies