Merge pull request #140 from marineam/fixpkgmixups

Fix building w/ --nogetbinpkg
This commit is contained in:
Michael Marineau 2013-12-06 16:25:11 -08:00
commit 8454976f2d
2 changed files with 10 additions and 3 deletions

View File

@ -174,6 +174,11 @@ install_cross_toolchain() {
local cross_cfg="/usr/${cross_chost}/etc/portage/${cross_chost}-crossdev"
local cross_cfg_data=$(_crossdev_info "${cross_chost}" stable)
# Forcing binary packages for toolchain packages breaks crossdev since it
# prevents it from rebuilding with different use flags during bootstrap.
local safe_flags=( "${@/#--useoldpkg-atoms=*/}" )
safe_flags=( "${safe_flags[@]/#--rebuild-exclude=*/}" )
# may be called from either catalyst (root) or upgrade_chroot (user)
local sudo=
if [[ $(id -u) -ne 0 ]]; then
@ -183,7 +188,7 @@ install_cross_toolchain() {
# Only call crossdev to regenerate configs if something has changed
if ! cmp --quiet - "${cross_cfg}" <<<"${cross_cfg_data}"
then
$sudo crossdev --stable --portage "$*" \
$sudo crossdev --stable --portage "${safe_flags[*]}" \
--init-target --target "${cross_chost}"
$sudo tee "${cross_cfg}" <<<"${cross_cfg_data}" >/dev/null
fi
@ -193,7 +198,7 @@ install_cross_toolchain() {
if emerge "$@" --binpkg-respect-use=y --update --newuse \
--pretend "${cross_pkgs[@]}" | grep -q '^\[ebuild'
then
$sudo crossdev --stable --portage "$*" \
$sudo crossdev --stable --portage "${safe_flags[*]}" \
--stage4 --target "${cross_chost}"
else
$sudo emerge "$@" --binpkg-respect-use=y --update --newuse \

View File

@ -258,7 +258,9 @@ if [[ ${FLAGS_regen_configs} -eq ${FLAGS_FALSE} ]]; then
EMERGE_FLAGS+=" --jobs=${FLAGS_jobs}"
fi
if [[ "${FLAGS_usepkg}" -eq "${FLAGS_TRUE}" ]]; then
if [[ "${FLAGS_usepkg}" -eq "${FLAGS_TRUE}" && \
"${FLAGS_getbinpkg}" -eq "${FLAGS_TRUE}" ]]
then
EMERGE_FLAGS+=" --usepkgonly --getbinpkg"
else
# When binary packages are disabled we need to make sure the cross