From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from lists.gentoo.org (pigeon.gentoo.org [208.92.234.80]) by finch.gentoo.org (Postfix) with ESMTP id B70B6198005 for ; Wed, 27 Feb 2013 21:58:14 +0000 (UTC) Received: from pigeon.gentoo.org (localhost [127.0.0.1]) by pigeon.gentoo.org (Postfix) with SMTP id 3EA18E0ADC; Wed, 27 Feb 2013 21:58:14 +0000 (UTC) Received: from smtp.gentoo.org (smtp.gentoo.org [140.211.166.183]) (using TLSv1 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by pigeon.gentoo.org (Postfix) with ESMTPS id BABCBE0ADC for ; Wed, 27 Feb 2013 21:58:13 +0000 (UTC) Received: from big_daddy.dol-sen.ca (unknown [24.86.176.233]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) (Authenticated sender: dolsen) by smtp.gentoo.org (Postfix) with ESMTPSA id 7F6DD33DF38; Wed, 27 Feb 2013 21:58:12 +0000 (UTC) From: Brian Dolbec To: brian.dolbec@gmail.com, gentoo-catalyst@lists.gentoo.org Cc: Brian Dolbec Subject: [gentoo-catalyst] [PATCH] Fix broken seed stage update... Date: Wed, 27 Feb 2013 13:56:49 -0800 Message-Id: <1362002209-24825-1-git-send-email-dolsen@gentoo.org> X-Mailer: git-send-email 1.8.1.2 Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-Id: Gentoo Linux mail X-BeenThere: gentoo-catalyst@lists.gentoo.org Reply-to: gentoo-catalyst@lists.gentoo.org X-Archives-Salt: 6ccbb987-4267-4eaf-a2e8-e1736901d973 X-Archives-Hash: fa8c3aec933defeced61d2caaffd8224 Strip --usepkg and --buildpkg from emerge options for user defined update_seed_command. Add a check for the update_seed option to set the correct update options. Fix default seed stage update command to properly update gcc and it's deps. Add a seed stage update system command and option. Add --binpkg-respect-use=y for all cases --usepkg is enabled. Signed-off-by: Brian Dolbec --- catalyst/targets/stage1.py | 3 ++- doc/catalyst-spec.5.txt | 12 +++++++++++- targets/stage1/stage1-chroot.sh | 17 ++++++++++++++--- targets/support/chroot-functions.sh | 11 ++++++++++- 4 files changed, 37 insertions(+), 6 deletions(-) diff --git a/catalyst/targets/stage1.py b/catalyst/targets/stage1.py index e936929..e067c8c 100644 --- a/catalyst/targets/stage1.py +++ b/catalyst/targets/stage1.py @@ -18,7 +18,8 @@ class stage1(StageBase): def __init__(self,spec,addlargs): self.required_values=[] self.valid_values=["chost"] - self.valid_values.extend(["update_seed","update_seed_command"]) + self.valid_values.extend(["update_seed","update_seed_command", + "update_seed_system"]) StageBase.__init__(self,spec,addlargs) def set_stage_path(self): diff --git a/doc/catalyst-spec.5.txt b/doc/catalyst-spec.5.txt index 4a6e06c..196bdc3 100644 --- a/doc/catalyst-spec.5.txt +++ b/doc/catalyst-spec.5.txt @@ -138,9 +138,19 @@ it should update the seed stage or not (valid values: `yes no`). *update_seed_command*:: This is an optional command to pass to emerge for updating the seed stage (example: `--update dev-libs/mpfr dev-libs/mpc dev-libs/gmp`) -If not specified, catalyst will update gcc deps. +If not specified, catalyst will update gcc's deps, and rebuild gcc if any of +it's deps are updated with a new version. Even if it itself is not updated. +This prevents gcc breakage when it's dependency lib sonames have changed. This setting requires enabling update_seed. +*update_seed_system*:: +This is an optional setting supported by stage1 to tell catalyst if +it should update the seed's system packages or not (valid values: `yes no`). +This is run after any update_seed_command, updating any remaining upgradable +system packages. +This setting requires enabling update_seed. + + Compilation ~~~~~~~~~~~ diff --git a/targets/stage1/stage1-chroot.sh b/targets/stage1/stage1-chroot.sh index 97aef7f..65c2d81 100755 --- a/targets/stage1/stage1-chroot.sh +++ b/targets/stage1/stage1-chroot.sh @@ -26,12 +26,23 @@ clst_root_path=/ setup_pkgmgr # Update stage3 if [ -n "${clst_update_seed}" ]; then if [ "${clst_update_seed}" == "yes" ]; then - echo "Updating seed stage..." if [ -n "${clst_update_seed_command}" ]; then - clst_root_path=/ run_merge "--buildpkg=n ${clst_update_seed_command}" + echo "--- Updating seed stage with USER defined update_seed_command" + update_cmd=${clst_update_seed_command/--usepkg /} + update_cmd=${clst_update_seed_command/--buildpkg /} + clst_root_path=/ run_merge "${update_cmd}" else - clst_root_path=/ run_merge "--buildpkg=n --update --deep --newuse --onlydeps gcc" + echo "--- Updating seed stage with DEFAULT update_seed_command" + update_cmd="--update --deep --complete-graph --rebuild-if-new-ver gcc" + clst_root_path=/ run_merge ${update_cmd} fi + if [ "${clst_update_seed_system}" == "yes" ]; then + echo "--- Updating seed stage system packages" + update_cmd="--update --deep --complete-graph @system" + clst_root_path=/ run_merge ${update_cmd} + fi + # now reset the emerge options for the target + clst_update_seed=no setup_myemergeopts elif [ "${clst_update_seed}" != "no" ]; then echo "Invalid setting for update_seed: ${clst_update_seed}" exit 1 diff --git a/targets/support/chroot-functions.sh b/targets/support/chroot-functions.sh index 2524b4f..69d2923 100755 --- a/targets/support/chroot-functions.sh +++ b/targets/support/chroot-functions.sh @@ -133,9 +133,18 @@ setup_myemergeopts(){ then export bootstrap_opts="${bootstrap_opts} -f" export clst_myemergeopts="${clst_myemergeopts} -f" + # now intercept normal target options if we're updating the seed + # to update the seed we do not want binpkgs that may have links to + # sonames no longer installed, due to dependency updates. + # this function will be re-run later with clst_update_seed=no + elif [ "${clst_update_seed}" == "yes" ] + then + export clst_myemergeopts="${clst_myemergeopts} --newuse" + export bootstrap_opts="${bootstrap_opts} -r" elif [ -n "${clst_PKGCACHE}" ] then - export clst_myemergeopts="${clst_myemergeopts} --usepkg --buildpkg --newuse" + # if you add --usepkg, then also add --binpkg-respect-use=y + export clst_myemergeopts="${clst_myemergeopts} --usepkg --binpkg-respect-use=y --buildpkg --newuse" export bootstrap_opts="${bootstrap_opts} -r" fi } -- 1.8.1.2