Re: [PATCH] Add @changed-subslot package set

Zac Medico <[email protected]> Sun, 17 Jan 2021 02:54:07 -0800
Newsgroups gmane.linux.gentoo.portage.devel
Message-ID <[email protected]>
On 1/15/21 6:47 PM, Matt Turner wrote:
> This set is the upgradable packages for which the highest visible
> version has a different subslot than the currently installed version.
> 
> The primary purpose of this feature is for use in catalyst builds. We
> update the "seed" stage3 before using it to build a new stage1.
> 
> Updating the entire stage is expensive and unnecessary (since we're
> going to build the latest packages in stage1 and then rebuild everything
> in stage3).
> 
> What we definitely do need to update in the original stage3 however, is
> any package that would trigger a subslot rebuild.
> 
> For example: gcc links with libmpfr.so from dev-libs/mpfr. mpfr's SONAME
> changes from libmpfr.so.4 (SLOT="0/4") to libmpfr.so.6 (SLOT="0/6"). If
> the seed stage's dev-libs/mpfr is not updated before emerging gcc, gcc
> will link with libmpfr.so.4, but the latest version of dev-libs/mpfr
> will be built and libmpfr.so.6 included into the stage1. Since the old
> libmpfr.so.4 is not included in the stage1, gcc will not work, breaking
> subsequent stage builds.
> 
> Our current options to update the seed are too large a hammer (e.g.,
> "--update --deep --newuse @world" or "--update --deep --newuse
> --complete-graph --rebuild-if-new-ver gcc") and spend too much time
> updating seed stages for no gain beyond updating only packages for whom
> the subslot has changed.
> 
> With this set, catalyst will likely use
> 
> 	emerge @changed-subslot --ignore-built-slot-operator-deps y
> 
> to update the seed stage.
> 
> Thank you to Zac Medico for showing me how to do this.
> 
> Bug: https://bugs.gentoo.org/739004
> Signed-off-by: Matt Turner <[email protected]>
> ---
>  cnf/sets/portage.conf      |  5 +++++
>  lib/portage/_sets/dbapi.py | 39 +++++++++++++++++++++++++++++++++++++-
>  2 files changed, 43 insertions(+), 1 deletion(-)

Look good. Thanks! Merged:

https://gitweb.gentoo.org/proj/portage.git/commit/?id=6c70596d6d6382160490bb16ef559ccfdd982fae
-- 
Thanks,
Zac
signature.asc (application/pgp-signature, 981 B)
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2

iQKTBAEBCgB9FiEE8OgXaltWzqgSupCu0HX7jBBKPSAFAmAEF1BfFIAAAAAALgAo
aXNzdWVyLWZwckBub3RhdGlvbnMub3BlbnBncC5maWZ0aGhvcnNlbWFuLm5ldEYw
RTgxNzZBNUI1NkNFQTgxMkJBOTBBRUQwNzVGQjhDMTA0QTNEMjAACgkQ0HX7jBBK
PSBfkg//Yrof8WVBq/RTEOx4Kspp+XUXW1TaNzfFFmQoMOuh5qQRx8IFztaxN3xW
FtdBw8wmKL8f/tlqan3n14j2N1O+S3y613QLK/v21uz8+J7QXsyA+8KLcZhStXb6
g9xGx+dWSpIZm2+y8gduuAXljlfgUp1z/1PdjVt9t2CcnY7LrfzmEDsHkcFc7Crx
n0O89WNrWYeLESqOBoQgSuDm5/eT/Ou78aKQolUXw2AKJ4ttsrEo7kMs+RMZZZTd
MM+2BBzN00SaWsV8CnwxldTYCmibX1txDEflnziEFEfZxOyqpQqzf/nEQWThndFJ
JOpLFXM+8YNbV8ODsdTKjVyY4qq05bkzOZpCrkKen0yFtM+fWWw+S99jvQyIv1In
CiOHEMxGRYpxYqxnNM1c0Q6s5tR8VC9XmtXzOKswI0NWon+8DxhZZvyNFFNHqyaf
lN+3sAv7z1sx0ImoDyYNJrJ2XCJwTs5uSTrAlNE8Mo8drfDzvyHYVk5F9yYAmqMP
EmSdL/+G6D9SOaJ020dDaGLgxAISRsDzU/AFzrUtgJwwO/ACRHB4fKSIroa7oWKc
nvxlKkIp1uWUoqrz9ygCA5C2icuApiW7dziAfSHxNTK0s4N3RaX7Gg0y30gZzRv4
lomBVGSkIEuyYNWd6MwhElbdrCVhcKq/cGQ7IEeNYWXFGmhE13Y=
=S7h7
-----END PGP SIGNATURE-----