summaryrefslogtreecommitdiff
path: root/doc
diff options
context:
space:
mode:
authorMatt Turner <mattst88@gentoo.org>2021-01-15 21:47:09 -0500
committerZac Medico <zmedico@gentoo.org>2021-01-17 02:35:03 -0800
commit6c70596d6d6382160490bb16ef559ccfdd982fae (patch)
treee985d5bd8f70b2dd87d3b2f4190b273c0979fb1a /doc
parentbindbapi.move_ent: remove redundant self._pkg_str calls (diff)
downloadportage-6c70596d6d6382160490bb16ef559ccfdd982fae.tar.gz
portage-6c70596d6d6382160490bb16ef559ccfdd982fae.tar.bz2
portage-6c70596d6d6382160490bb16ef559ccfdd982fae.zip
Add @changed-subslot package set
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 <mattst88@gentoo.org> Signed-off-by: Zac Medico <zmedico@gentoo.org>
Diffstat (limited to 'doc')
-rw-r--r--doc/config/sets.docbook8
1 files changed, 8 insertions, 0 deletions
diff --git a/doc/config/sets.docbook b/doc/config/sets.docbook
index 0fe50f252..eba98f468 100644
--- a/doc/config/sets.docbook
+++ b/doc/config/sets.docbook
@@ -574,6 +574,14 @@
to check.</para></listitem>
</itemizedlist>
</sect2>
+ <sect2 id='config-set-classes-SubslotChangedSet'>
+ <title>portage.sets.dbapi.SubslotChangedSet</title>
+ <para>
+ Package set which contains all packages for which the subslot of the highest
+ visible ebuild is different than the currently installed version.
+ This class doesn't support any extra options.
+ </para>
+ </sect2>
<sect2 id='config-set-classes-DowngradeSet'>
<title>portage.sets.dbapi.DowngradeSet</title>
<para>