public inbox for gentoo-catalyst@lists.gentoo.org
 help / color / mirror / Atom feed
From: Matt Turner <mattst88@gentoo.org>
To: gentoo-catalyst@lists.gentoo.org
Cc: Matt Turner <mattst88@gentoo.org>
Subject: [gentoo-catalyst] [PATCH 05/11] targets: Update the @changed-subslot set by default
Date: Mon, 18 Jan 2021 15:21:46 -0500	[thread overview]
Message-ID: <20210118202152.374078-5-mattst88@gentoo.org> (raw)
In-Reply-To: <20210118202152.374078-1-mattst88@gentoo.org>

In portage commit 1789fdf2ee81 (Add @changed-subslot package set) I
added this: the set of upgradable packages for which the highest visible
version has a different subslot than the currently installed version.

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.

Bug: https://bugs.gentoo.org/739004
Signed-off-by: Matt Turner <mattst88@gentoo.org>
---
 targets/stage1/chroot.sh | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/targets/stage1/chroot.sh b/targets/stage1/chroot.sh
index e5a3e0b0..a1818425 100755
--- a/targets/stage1/chroot.sh
+++ b/targets/stage1/chroot.sh
@@ -40,6 +40,8 @@ if [ -n "${clst_update_seed}" ]; then
 
 		if [ -n "${clst_update_seed_command}" ]; then
 			ROOT=/ run_merge --buildpkg=n "${clst_update_seed_command}"
+		elif grep -q '^\[changed-subslot\]' /usr/share/portage/config/sets/portage.conf; then
+			ROOT=/ run_merge --ignore-built-slot-operator-deps y @changed-subslot
 		else
 			ROOT=/ run_merge --update --deep --newuse --complete-graph --rebuild-if-new-ver gcc
 		fi
-- 
2.26.2



  parent reply	other threads:[~2021-01-18 20:22 UTC|newest]

Thread overview: 19+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-01-18 20:21 [gentoo-catalyst] [PATCH 01/11] targets: Remove unused 'enter' command Matt Turner
2021-01-18 20:21 ` [gentoo-catalyst] [PATCH 02/11] targets: Remove some obvious comments Matt Turner
2021-01-18 20:21 ` [gentoo-catalyst] [PATCH 03/11] targets: Update seed stage's sys-apps/portage Matt Turner
2021-01-18 20:21 ` [gentoo-catalyst] [PATCH 04/11] targets: Update BINPKG_COMPRESS to new zstd default Matt Turner
2021-01-18 20:21 ` Matt Turner [this message]
2021-01-18 20:21 ` [gentoo-catalyst] [PATCH 06/11] catalyst: Store references to functions Matt Turner
2021-01-18 20:21 ` [gentoo-catalyst] [PATCH 07/11] catalyst: Call config_profile_link for all targets Matt Turner
2021-02-25 13:09   ` [gentoo-catalyst] [PATCH] Fix specifying target_profiles in repo_name:path format Daniel Cordero
2021-02-27 18:52     ` [gentoo-catalyst] " Matt Turner
2021-02-27 23:31       ` Felix Bier
2021-01-18 20:21 ` [gentoo-catalyst] [PATCH 08/11] catalyst: Deduplicate prepare_sequence assignments Matt Turner
2021-01-18 20:21 ` [gentoo-catalyst] [PATCH 09/11] catalyst: Deduplicate the common build_sequence steps Matt Turner
2021-01-18 20:21 ` [gentoo-catalyst] [PATCH 10/11] catalyst: Add option to enter the chroot before building Matt Turner
2021-01-18 20:21 ` [gentoo-catalyst] [PATCH 11/11] catalyst: Remove update_seed spec option Matt Turner
2021-01-19 11:02   ` Daniel Cordero
2021-01-19 14:58     ` Matt Turner
2021-01-21  5:12       ` Matt Turner
2021-01-21 10:20       ` Daniel Cordero
2021-01-22  0:04         ` Matt Turner

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20210118202152.374078-5-mattst88@gentoo.org \
    --to=mattst88@gentoo.org \
    --cc=gentoo-catalyst@lists.gentoo.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox