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 --binpkg-respect-use=y for all cases --usepkg is enabled.
Apply patch to fix broken if logic in the setup_emergeoptions() by Douglas Freed <dwfreed@mtu.edu> and rebase
*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.
Compilation
# 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"
+ clst_root_path=/ run_merge "${clst_update_seed_command}"
else
- clst_root_path=/ run_merge "--update --deep --newuse --complete-graph --rebuild-if-new-ver 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
+
+ # 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
then
export bootstrap_opts="${bootstrap_opts} -f"
export clst_myemergeopts="${clst_myemergeopts} -f"
- # if we have PKGCACHE, and either update_seed is empty or 'no', make and use binpkgs
elif [ -n "${clst_PKGCACHE}" ] && [ -z "${clst_update_seed}" -o "${clst_update_seed}" = "no" ]
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
}