setup_myfeatures(){
setup_myemergeopts
+ export FEATURES="-news"
if [ -n "${clst_CCACHE}" ]
then
export clst_myfeatures="${clst_myfeatures} ccache"
export DISTCC_HOSTS="${clst_distcc_hosts}"
[ -e /etc/make.conf ] && \
echo 'USE="${USE} -avahi -gtk -gnome"' >> /etc/make.conf
- clst_root_path=/ run_merge --oneshot --nodeps --noreplace sys-devel/distcc || exit 1
+ # We install distcc to / on stage1, then use --noreplace, so we need to
+ # have some way to check if we need to reinstall distcc without being
+ # able to rely on USE, so we check for the distcc user and force a
+ # reinstall if it isn't found.
+ if [ "$(getent passwd distcc | cut -d: -f1)" != "distcc" ]
+ then
+ clst_root_path=/ run_merge --oneshot --nodeps sys-devel/distcc || exit 1
+ else
+ clst_root_path=/ run_merge --oneshot --nodeps --noreplace sys-devel/distcc || exit 1
+ fi
sed -i '/USE="${USE} -avahi -gtk -gnome"/d' /etc/make.conf
mkdir -p /etc/distcc
echo "${clst_distcc_hosts}" > /etc/distcc/hosts
# This sets up automatic cross-distcc-fu according to
# http://www.gentoo.org/doc/en/cross-compiling-distcc.xml
CHOST=$(portageq envvar CHOST)
- # TODO: change to use get_libdir
- cd /usr/lib/distcc/bin
+ LIBDIR=$(get_libdir)
+ cd /usr/${LIBDIR}/distcc/bin
rm cc gcc g++ c++ 2>/dev/null
- echo -e '#!/bin/bash\nexec /usr/lib/distcc/bin/'${CHOST}'-g${0:$[-2]} "$@"' > ${CHOST}-wrapper
- chmod a+x /usr/lib/distcc/bin/${CHOST}-wrapper
+ echo -e '#!/bin/bash\nexec /usr/'${LIBDIR}'/distcc/bin/'${CHOST}'-g${0:$[-2]} "$@"' > ${CHOST}-wrapper
+ chmod a+x /usr/${LIBDIR}/distcc/bin/${CHOST}-wrapper
for i in cc gcc g++ c++; do ln -s ${CHOST}-wrapper ${i}; done
fi
export PATH="/usr/lib/icecc/bin:${PATH}"
export PREROOTPATH="/usr/lib/icecc/bin"
fi
- export FEATURES="${clst_myfeatures}"
+ export FEATURES="${clst_myfeatures} -news"
}
setup_myemergeopts(){
clst_myemergeopts="--verbose"
else
clst_myemergeopts="--quiet"
+ bootstrap_opts="${bootstrap_opts} -q"
fi
if [ -n "${clst_FETCH}" ]
then
- export bootstrap_opts="-f"
+ export bootstrap_opts="${bootstrap_opts} -f"
export clst_myemergeopts="${clst_myemergeopts} -f"
elif [ -n "${clst_PKGCACHE}" ]
then
export clst_myemergeopts="${clst_myemergeopts} --usepkg --buildpkg --newuse"
- export bootstrap_opts="-r"
+ export bootstrap_opts="${bootstrap_opts} -r"
fi
}
# portage to avoid frying our /etc/make.conf file. Otherwise, we could
# just let emerge system could merge it.
[ -e /etc/make.conf ] && echo 'USE="${USE} build"' >> /etc/make.conf
- run_merge --oneshot --nodeps virtual/portage
+ run_merge --oneshot --nodeps sys-apps/portage
sed -i '/USE="${USE} build"/d' /etc/make.conf
}
cleanup_distcc() {
+ LIBDIR=$(get_libdir)
rm -rf /etc/distcc/hosts
for i in cc gcc c++ g++; do
- # TODO: change to use get_libdir
- rm -f /usr/lib/distcc/bin/${i}
- ln -s /usr/bin/distcc /usr/lib/distcc/bin/${i}
+ rm -f /usr/${LIBDIR}/distcc/bin/${i}
+ ln -s /usr/bin/distcc /usr/${LIBDIR}/distcc/bin/${i}
done
- rm -f /usr/lib/distcc/bin/*-wrapper
+ rm -f /usr/${LIBDIR}/distcc/bin/*-wrapper
}
cleanup_icecream() {
cleanup_icecream
fi
case ${clst_target} in
- stage1|stage2|stage3)
+ stage3|system)
+ run_merge --depclean --with-bdeps=n
+ ;;
+ *)
+ echo "Skipping depclean operation for ${clst_target}"
+ ;;
+ esac
+ case ${clst_target} in
+ stage1|stage2|stage3|system)
rm -f /var/lib/portage/world
touch /var/lib/portage/world
;;
esac
rm -f /var/log/emerge.log /var/log/portage/elog/*
- rm -rf /var/tmp/*
}
update_env_settings(){
echo "STAGE1_USE: $(portageq envvar STAGE1_USE)"
echo
echo "USE (profile): $(portageq envvar USE)"
- echo "USE (stage1): ${USE}"
echo "FEATURES (profile): $(portageq envvar FEATURES)"
- echo "FEATURES (stage1): ${FEATURES}"
echo
echo "ARCH: $(portageq envvar ARCH)"
echo "CHOST: $(portageq envvar CHOST)"
echo "CFLAGS: $(portageq envvar CFLAGS)"
echo
- echo "PROFILE_ARCH: $(portageq envvar PROFILE_ARCH)"
- echo
+ echo "These should be blank on non-multilib profiles."
echo "ABI: $(portageq envvar ABI)"
echo "DEFAULT_ABI: $(portageq envvar DEFAULT_ABI)"
echo "KERNEL_ABI: $(portageq envvar KERNEL_ABI)"
- echo "MULTILIB_ABIS: $(portageq envvar MULTILIB_ABIS)"
- echo
echo "LIBDIR: $(get_libdir)"
+ echo "MULTILIB_ABIS: $(portageq envvar MULTILIB_ABIS)"
+ echo "PROFILE_ARCH: $(portageq envvar PROFILE_ARCH)"
echo
fi
- [ -z "$(get_libdir)" ] && \
- echo "Your profile is broken! LIBDIR is empty!" && exit 1
}
run_default_funcs() {