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 |