Gentoo Archives: gentoo-portage-dev

From: Zac Medico <zmedico@g.o>
To: gentoo-portage-dev@l.g.o, Matt Turner <mattst88@g.o>
Subject: Re: [gentoo-portage-dev] [PATCH] Add @changed-subslot package set
Date: Sun, 17 Jan 2021 10:54:14
Message-Id: a7837abd-a8c7-3867-7be7-bfa6b55879f3@gentoo.org
In Reply to: [gentoo-portage-dev] [PATCH] Add @changed-subslot package set by Matt Turner
1 On 1/15/21 6:47 PM, Matt Turner wrote:
2 > This set is the upgradable packages for which the highest visible
3 > version has a different subslot than the currently installed version.
4 >
5 > The primary purpose of this feature is for use in catalyst builds. We
6 > update the "seed" stage3 before using it to build a new stage1.
7 >
8 > Updating the entire stage is expensive and unnecessary (since we're
9 > going to build the latest packages in stage1 and then rebuild everything
10 > in stage3).
11 >
12 > What we definitely do need to update in the original stage3 however, is
13 > any package that would trigger a subslot rebuild.
14 >
15 > For example: gcc links with libmpfr.so from dev-libs/mpfr. mpfr's SONAME
16 > changes from libmpfr.so.4 (SLOT="0/4") to libmpfr.so.6 (SLOT="0/6"). If
17 > the seed stage's dev-libs/mpfr is not updated before emerging gcc, gcc
18 > will link with libmpfr.so.4, but the latest version of dev-libs/mpfr
19 > will be built and libmpfr.so.6 included into the stage1. Since the old
20 > libmpfr.so.4 is not included in the stage1, gcc will not work, breaking
21 > subsequent stage builds.
22 >
23 > Our current options to update the seed are too large a hammer (e.g.,
24 > "--update --deep --newuse @world" or "--update --deep --newuse
25 > --complete-graph --rebuild-if-new-ver gcc") and spend too much time
26 > updating seed stages for no gain beyond updating only packages for whom
27 > the subslot has changed.
28 >
29 > With this set, catalyst will likely use
30 >
31 > emerge @changed-subslot --ignore-built-slot-operator-deps y
32 >
33 > to update the seed stage.
34 >
35 > Thank you to Zac Medico for showing me how to do this.
36 >
37 > Bug: https://bugs.gentoo.org/739004
38 > Signed-off-by: Matt Turner <mattst88@g.o>
39 > ---
40 > cnf/sets/portage.conf | 5 +++++
41 > lib/portage/_sets/dbapi.py | 39 +++++++++++++++++++++++++++++++++++++-
42 > 2 files changed, 43 insertions(+), 1 deletion(-)
43
44 Look good. Thanks! Merged:
45
46 https://gitweb.gentoo.org/proj/portage.git/commit/?id=6c70596d6d6382160490bb16ef559ccfdd982fae
47 --
48 Thanks,
49 Zac

Attachments

File name MIME type
signature.asc application/pgp-signature