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
signature.asc
Description: OpenPGP digital signature