-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

On 03/08/2013 12:27 PM, W. Trevor King wrote:
> From: "W. Trevor King" <[email protected]>
> 
> When using `update_seed` to get a 20121213 stage3 from
> libmpc.so.2 to libmpc.so.3, stage2 failed with:
> 
>   /usr/libexec/gcc/i686-pc-linux-gnu/4.6.3/cc1:
>     error while loading shared libraries: libmpc.so.2:
>     cannot open shared object file: No such file or directory
> 
> This was due to an mpc version bump in the Portage tree that was not
> present in the stage3 I used to seed stage1.  Stage1 wasn't
> recompiling GCC against the new mpc, so it ended up with GCC linking
> against the old mpc.  Heading into stage2, the old mpc (from the seed
> stage3) was no longer present, so compilation crashed and burned.
> 
> To fix this, we should be extra agressive about rebuilding packages
> when their dependencies change in stage1.  The earlier update_seed
> command was not catching the bumped mpc, so add:
> 
>   --complete-graph --with-bdeps=y --rebuild-if-new-ver
> 
> to toughen things up.
> 
> This is a general dependency problem (not GCC specific), so I also
> replaced the gcc target with:
> 
>   @world @system
> 
> This leads to a lot of rebuilding, but it should be a stable and
> general fix.  With a general fix there's no more need to allow
> user-specific overrides with update_seed_command, and that option was
> removed.
> 
> Based-on-patch-by: Brian Dolbec <[email protected]>
> ---
> I wrote this trimmed-down version up after talking to Brian and Rick
> on IRC this morning.  The test run is still running, but I'll post
> if/when I get through stage3.
> 
>  doc/catalyst-spec.5.txt         | 6 ------
>  modules/stage1_target.py        | 2 +-
>  targets/stage1/stage1-chroot.sh | 9 +++------
>  3 files changed, 4 insertions(+), 13 deletions(-)
> 
> diff --git a/doc/catalyst-spec.5.txt b/doc/catalyst-spec.5.txt
> index 4a6e06c..a928557 100644
> --- a/doc/catalyst-spec.5.txt
> +++ b/doc/catalyst-spec.5.txt
> @@ -135,12 +135,6 @@ one CD, this defines the layout for the directories under
>  This is an optional setting supported by stage1 to tell catalyst if
>  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.
> -This setting requires enabling update_seed.
> -
>  Compilation
>  ~~~~~~~~~~~
>  
> diff --git a/modules/stage1_target.py b/modules/stage1_target.py
> index aa43926..7a6c860 100644
> --- a/modules/stage1_target.py
> +++ b/modules/stage1_target.py
> @@ -13,7 +13,7 @@ class stage1_target(generic_stage_target):
>       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"])
>               generic_stage_target.__init__(self,spec,addlargs)
>  
>       def set_stage_path(self):
> diff --git a/targets/stage1/stage1-chroot.sh b/targets/stage1/stage1-chroot.sh
> index 3f628c2..3dad53d 100644
> --- a/targets/stage1/stage1-chroot.sh
> +++ b/targets/stage1/stage1-chroot.sh
> @@ -26,12 +26,9 @@ 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}"
NACK: we will not be removing update_seed_command. Different people want
different things, gentoo is about choice, if you break it you get to
keep the pieces.

You are more than welcome to add a warning about using
update_seed_command, but it stays.

- -Zero
> -             else
> -                     clst_root_path=/ run_merge "--buildpkg=n --update 
> --deep --newuse --onlydeps gcc"
> -             fi
> +             update_cmd="--update --deep --complete-graph --with-bdeps=y 
> --rebuild-if-new-ver @world @system"
> +             echo "--- Updating seed stage with: ${update_cmd}"
> +             clst_root_path=/ run_merge "${update_cmd}"
>       elif [ "${clst_update_seed}" != "no" ]; then
>               echo "Invalid setting for update_seed: ${clst_update_seed}"
>               exit 1
> 

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.19 (GNU/Linux)
Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/

iQIcBAEBAgAGBQJROi8ZAAoJEKXdFCfdEflKmDAQALSBVFh6hR4FGR+dQfN3T1Uv
4YLQFk26boO3MdG8/L5J7n9aNh4SGo2NmAzpXPmZnJYFXdbDz5vNtnMb+fOZ2QTU
oSoNRxW6laSY7J5kGXgtIYV4G5m2fYaik87LUuu16bz1GomCsndRuS7fcJZrLMfB
hU3ClOB6BdVeCenvpmxIyg75pZsI2CbSqNXL4MNBocuG/eD6ZfOL17tyvRL1PGdC
X6lv1veu6W6y/UnwuKng3EPqUtUbEh9CNAJZ1vkyyz1FMKtuDoMMrMW2OS/oT5YZ
WELlw/R3XYjyKBM2Ar1bd6jHrTXbUy6buEWY4KFmhx5qY+BRCTeebrz872v4D85C
JAWYJvlinqsyEUnJGtcitgSRx/+A/hweN8s4M+RHHPHDUXQwOedXGnNZU60ZH3o+
Pl9/B/7qBwRCGs0uTXq+GMWFEh4fZP3vMl60xp4GnA9uaxzfN7w0KJ2q1ZxWwGJk
GJYKwTBt5fCA3TDQHHxNaLgAilu7JzMrRIkvaYf6DiXFP9mDUuQOJ8cd/ysUaDa5
QZipSfOw/eQRwzWlirbzHTic8pN5m8GVbYzmdtBVkUGHl8MchytXOwbDEJBW8PJu
4TXtn6KKKFKDDHgPtMHeSzMGQij2n8ivK6QOYT2sPfauNRqHvuW+WgTZi+2EQsK0
UO1kM4BYa2TxuSIkLATT
=lBAs
-----END PGP SIGNATURE-----

Reply via email to