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 <matts...@gentoo.org>
> ---
>  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

Attachment: signature.asc
Description: OpenPGP digital signature

Reply via email to