Gentoo Archives: gentoo-project

From: Zac Medico <zmedico@g.o>
To: gentoo-project@l.g.o
Cc: Fabian Groffen <grobian@g.o>
Subject: Re: [gentoo-project] [sub-slot] List of features proposed for EAPI 5
Date: Thu, 06 Sep 2012 06:02:58
Message-Id: 504828CA.6040607@gentoo.org
In Reply to: [gentoo-project] [sub-slot] List of features proposed for EAPI 5 by Fabian Groffen
1 On 09/05/2012 12:59 PM, Fabian Groffen wrote:
2 > Seems I was to quick with the previous mail.
3 >
4 > On 04-09-2012 12:37:17 +0200, Ulrich Mueller wrote:
5 >> * Sub-slots
6 >> PMS wording: <http://git.overlays.gentoo.org/gitweb/?p=proj/pms.git;a=commit;h=5d6749ac9e5ddc5b1daaad7737b65fa81c6ece47>
7 >> Portage patch: <http://git.overlays.gentoo.org/gitweb/?p=proj/portage.git;a=commit;h=e4ba8f36e6a4624f4fec61c7ce8bed0e3bd2fa01>
8 >> Bug: <https://bugs.gentoo.org/424429>
9 >
10 > Any pointers where we can find the argumentation what this is useful
11 > for?
12
13 It was discussed in the "About forcing rebuilds of other packages issue"
14 [1] thread on the gentoo-dev mailing list.
15
16 > PMS is very terse when it writes:
17 >
18 > The sub-slot is used to represent cases in which an upgrade to a new
19 > version of a package with a different sub-slot may require dependent
20 > packages to be rebuilt. When the sub-slot part is omitted from the
21 > SLOT definition, the package is considered to have an implicit
22 > sub-slot which is equal to the regular slot.
23 >
24 > While this is an inconsistency, as pointed out in previous email, it is
25 > unclear to me how this feature distinguishes from the general slot
26 > operator dependencies, which appears to achieve the same.
27
28 The difference is that it's possible for the sub-slot to change while
29 the regular slot remains constant. I'm sure that you're familiar with
30 FEATURES=preserve-libs, and sub-slots can be used to trigger automatic
31 rebuilds in every case that triggers preserve-libs. I gave some examples
32 of how automatic rebuilds behave in my blog post about EAPI 4-slot-abi
33 [2]. In the comments of that post, I also mentioned that automatic
34 rebuilds are preferable to using @preserved-rebuild, since then help to
35 avoid the possibility of symbol collisions [3].
36
37 Another issue with @preserved-rebuild is that it pulls in possibly
38 irrelevant packages that are eligible for removal by --depclean.
39 Automatic rebuilds triggered by sub-slot changes to do not suffer from
40 this problem.
41
42 > My impression here is that this tries to work around a problem where
43 > SLOT != ABI. If (and that is what I assume here) the sub-slot is used
44 > to have a major/minor-like matching criteria, it would've been more
45 > native to use dev-libs/glib:2.* and a sole slot of "2.30".
46 > In the end, it seems to be necessary to identify the various cases of
47 > breakage using versioned ELF objects, based on libtool's versioning
48 > rules, and use those as starting point to backup this feature. (Taking
49 > special care for downgrading.)
50
51 We already discussed various kinds of syntax in the "About forcing
52 rebuilds of other packages issue" thread, and everyone seemed to be
53 happy with the sub-slot syntax that Ciaran suggested [4]. It's been
54 tested in the axs overlay for things like perl and icu sub-slot ABI
55 changes, and seems to work well.
56
57 [1] http://thread.gmane.org/gmane.linux.gentoo.devel/77601
58 [2]
59 http://blogs.gentoo.org/zmedico/2012/06/23/automatic-rebuilds-with-experimental-eapi-4-slot-abi/
60 [3]
61 http://blog.flameeyes.eu/2008/06/a-few-risks-i-see-related-to-the-new-portage-2-2-preserve-libs-behaviour
62 [4]
63 http://archives.gentoo.org/gentoo-dev/msg_f0e171be0f12abac2a10069e05e43c73.xml
64 [5] https://bugs.gentoo.org/424429
65 --
66 Thanks,
67 Zac