From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from lists.gentoo.org (pigeon.gentoo.org [208.92.234.80]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by finch.gentoo.org (Postfix) with ESMTPS id C923C13835A for ; Mon, 18 Jan 2021 03:38:53 +0000 (UTC) Received: from pigeon.gentoo.org (localhost [127.0.0.1]) by pigeon.gentoo.org (Postfix) with SMTP id DC316E084E; Mon, 18 Jan 2021 03:38:52 +0000 (UTC) Received: from smtp.gentoo.org (smtp.gentoo.org [IPv6:2001:470:ea4a:1:5054:ff:fec7:86e4]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by pigeon.gentoo.org (Postfix) with ESMTPS id C249CE084E for ; Mon, 18 Jan 2021 03:38:52 +0000 (UTC) Received: from oystercatcher.gentoo.org (oystercatcher.gentoo.org [148.251.78.52]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.gentoo.org (Postfix) with ESMTPS id DC609340D20 for ; Mon, 18 Jan 2021 03:38:51 +0000 (UTC) Received: from localhost.localdomain (localhost [IPv6:::1]) by oystercatcher.gentoo.org (Postfix) with ESMTP id 7355749F for ; Mon, 18 Jan 2021 03:38:50 +0000 (UTC) From: "Matt Turner" To: gentoo-commits@lists.gentoo.org Content-Transfer-Encoding: 8bit Content-type: text/plain; charset=UTF-8 Reply-To: gentoo-dev@lists.gentoo.org, "Matt Turner" Message-ID: <1610940461.70386eefc69376babaeb965395ec43e6f6996399.mattst88@gentoo> Subject: [gentoo-commits] proj/catalyst:wip/mattst88 commit in: targets/stage1/ X-VCS-Repository: proj/catalyst X-VCS-Files: targets/stage1/chroot.sh X-VCS-Directories: targets/stage1/ X-VCS-Committer: mattst88 X-VCS-Committer-Name: Matt Turner X-VCS-Revision: 70386eefc69376babaeb965395ec43e6f6996399 X-VCS-Branch: wip/mattst88 Date: Mon, 18 Jan 2021 03:38:50 +0000 (UTC) Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-Id: Gentoo Linux mail X-BeenThere: gentoo-commits@lists.gentoo.org X-Auto-Response-Suppress: DR, RN, NRN, OOF, AutoReply X-Archives-Salt: de7135b9-5d91-4b71-9f1d-02b2e8f73968 X-Archives-Hash: 36516ff3e623be7e8f164955c8b54a04 commit: 70386eefc69376babaeb965395ec43e6f6996399 Author: Matt Turner gentoo org> AuthorDate: Sun Jan 17 23:29:05 2021 +0000 Commit: Matt Turner gentoo org> CommitDate: Mon Jan 18 03:27:41 2021 +0000 URL: https://gitweb.gentoo.org/proj/catalyst.git/commit/?id=70386eef targets: Update the @changed-subslot set by default 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 gentoo.org> targets/stage1/chroot.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/targets/stage1/chroot.sh b/targets/stage1/chroot.sh index 50afef4a..f5002d75 100755 --- a/targets/stage1/chroot.sh +++ b/targets/stage1/chroot.sh @@ -35,7 +35,7 @@ if [ -n "${clst_update_seed}" ]; then if [ -n "${clst_update_seed_command}" ]; then ROOT=/ run_merge --buildpkg=n "${clst_update_seed_command}" else - ROOT=/ run_merge --update --deep --newuse --complete-graph --rebuild-if-new-ver gcc + ROOT=/ run_merge --buildpkg=n --ignore-built-slot-operator-deps y @changed-subslot fi elif [ "${clst_update_seed}" != "no" ]; then echo "Invalid setting for update_seed: ${clst_update_seed}"