Remove update_seed_command and strengthen update_seed rebuild
authorW. Trevor King <wking@tremily.us>
Fri, 8 Mar 2013 17:00:23 +0000 (12:00 -0500)
committerW. Trevor King <wking@tremily.us>
Fri, 8 Mar 2013 17:22:43 +0000 (12:22 -0500)
commitd768d7f7da2a671dd518ed0f1dd787cb255a7ecb
tree4f8b8fb8d7b87b33910dae5da316ab2660434ebb
parentd1c2ba9bdaf1a69078fcbcd6ec4210e829f99f0a
Remove update_seed_command and strengthen update_seed

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 <dolsen@gentoo.org>
doc/catalyst-spec.5.txt
modules/stage1_target.py
targets/stage1/stage1-chroot.sh