mirror of
https://github.com/flatcar/scripts.git
synced 2026-05-04 11:51:14 +02:00
commit
b4066aaf01
@ -37,7 +37,7 @@ TYPE="coreos-sdk"
|
||||
ARCH=$(portageq envvar ARCH)
|
||||
DEFAULT_PROFILE="coreos:default/linux/${ARCH}/10.0"
|
||||
|
||||
. "${SCRIPT_ROOT}/lib/catalyst.sh" || exit 1
|
||||
. "${BUILD_LIBRARY_DIR}/catalyst.sh" || exit 1
|
||||
|
||||
# include upload options
|
||||
. "${BUILD_LIBRARY_DIR}/release_util.sh" || exit 1
|
||||
@ -48,7 +48,7 @@ cat <<EOF
|
||||
target: stage4
|
||||
pkgcache_path: $BINPKGS
|
||||
stage4/packages: coreos-devel/sdk-depends
|
||||
stage4/fsscript: ${SCRIPT_ROOT}/lib/catalyst_sdk_stage4.sh
|
||||
stage4/fsscript: ${BUILD_LIBRARY_DIR}/catalyst_sdk_stage4.sh
|
||||
stage4/root_overlay: ${TEMPDIR}/stage4_overlay
|
||||
EOF
|
||||
catalyst_stage_default
|
||||
|
||||
@ -13,7 +13,7 @@ DEFAULT_SEED="builds/coreos-sdk/stage4-${ARCH}-latest.tar.bz2"
|
||||
DEFAULT_PROFILE="coreos:default/linux/${ARCH}/10.0"
|
||||
FORCE_STAGES="stage4"
|
||||
|
||||
. "${SCRIPT_ROOT}/lib/catalyst.sh" || exit 1
|
||||
. "${BUILD_LIBRARY_DIR}/catalyst.sh" || exit 1
|
||||
|
||||
# include upload options
|
||||
. "${BUILD_LIBRARY_DIR}/release_util.sh" || exit 1
|
||||
@ -24,7 +24,7 @@ cat <<EOF
|
||||
target: stage4
|
||||
pkgcache_path: $BINPKGS
|
||||
stage4/packages: coreos-devel/buildhost-depends
|
||||
stage4/fsscript: ${SCRIPT_ROOT}/lib/catalyst_buildbot_stage4.sh
|
||||
stage4/fsscript: ${BUILD_LIBRARY_DIR}/catalyst_buildbot_stage4.sh
|
||||
EOF
|
||||
catalyst_stage_default
|
||||
}
|
||||
|
||||
144
setup_board
144
setup_board
@ -202,13 +202,8 @@ ARCH=$(get_board_arch "${BOARD}") || exit 1
|
||||
|
||||
case "$BOARD" in
|
||||
*-host)
|
||||
if [[ $FLAGS_usepkg -eq $FLAGS_TRUE ]]; then
|
||||
die_notrace "host boards only support --nousepkg"
|
||||
fi
|
||||
HOST_BOARD=true
|
||||
die_notrace "host boards not supported by setup_board"
|
||||
;;
|
||||
*)
|
||||
HOST_BOARD=false
|
||||
esac
|
||||
# Locations we will need
|
||||
BOARD_ROOT="/build/${BOARD_VARIANT}"
|
||||
@ -253,36 +248,24 @@ fi
|
||||
|
||||
cmds=(
|
||||
"mkdir -p '${BOARD_ROOT}' '${BOARD_ETC}' '${BOARD_PROFILE}' /usr/local/bin"
|
||||
"mkdir -p '${BOARD_ETC}/portage/hooks'"
|
||||
)
|
||||
|
||||
# Setup the make.confs. We use the following:
|
||||
# make.conf <- Overall target make.conf [arm, x86, etc. version]
|
||||
# make.conf.board_setup <- Declares CHOST, ROOT, etc.
|
||||
# make.conf.common <- Common settings across all targets
|
||||
# make.conf.board <- Optional board-supplied make.conf
|
||||
if ${HOST_BOARD}; then
|
||||
cmds+=(
|
||||
"ln -sf '${CHROMIUMOS_CONFIG}/make.conf.${BOARD}' \
|
||||
'${BOARD_ETC}/make.conf'"
|
||||
"cp -f '/etc/portage/make.conf.host_setup' '${BOARD_ETC}/'"
|
||||
|
||||
# Setting up symlinks for bootstrapping multilib.
|
||||
# See http://crosbug.com/14498
|
||||
"mkdir -p '${BOARD_ROOT}'{/usr,}/lib64"
|
||||
"ln -sfT lib64 '${BOARD_ROOT}/lib'"
|
||||
"ln -sfT lib64 '${BOARD_ROOT}/usr/lib'"
|
||||
|
||||
# Copying some files for bootstrapping empty chroot.
|
||||
# See http://crosbug.com/14499
|
||||
"mkdir -p '${BOARD_ETC}'/{init.d,xml}"
|
||||
"cp /etc/xml/catalog '${BOARD_ETC}'/xml/"
|
||||
"cp /etc/init.d/functions.sh '${BOARD_ETC}'/init.d/"
|
||||
)
|
||||
fi
|
||||
cmds+=(
|
||||
"ln -sf '${CHROMIUMOS_CONFIG}/make.conf.${ARCH}-target' \
|
||||
'${BOARD_ETC}/make.conf'"
|
||||
"ln -sf '${CHROMIUMOS_CONFIG}/make.conf.common-target' \
|
||||
'${BOARD_ETC}/make.conf.common'"
|
||||
"touch /etc/portage/make.conf.user"
|
||||
"ln -sf /etc/portage/make.conf.user '${BOARD_ROOT}/etc/make.conf.user'"
|
||||
)
|
||||
for d in "${SCRIPTS_DIR}"/hooks/*; do
|
||||
cmds+=( "ln -sfT '${d}' '${BOARD_ROOT}/etc/portage/hooks/${d##*/}'" )
|
||||
done
|
||||
sudo_multi "${cmds[@]}"
|
||||
|
||||
SAVED_VERSION=
|
||||
@ -307,21 +290,6 @@ ${SAVED_VERSION}
|
||||
${ACCEPT_LICENSE}
|
||||
EOF
|
||||
|
||||
if ! ${HOST_BOARD}; then
|
||||
sudo ln -sf "${CHROMIUMOS_CONFIG}/make.conf.${ARCH}-target" \
|
||||
"${BOARD_ETC}/make.conf"
|
||||
fi
|
||||
# Setup make.globals and the profile.
|
||||
cmds=(
|
||||
"touch /etc/portage/make.conf.user"
|
||||
"ln -sf /etc/portage/make.conf.user '${BOARD_ROOT}/etc/make.conf.user'"
|
||||
"mkdir -p '${BOARD_ROOT}/etc/portage/hooks'"
|
||||
)
|
||||
for d in "${SCRIPTS_DIR}"/hooks/*; do
|
||||
cmds+=( "ln -sfT '${d}' '${BOARD_ROOT}/etc/portage/hooks/${d##*/}'" )
|
||||
done
|
||||
sudo_multi "${cmds[@]}"
|
||||
|
||||
# Select the profile to build based on the board and profile passed to
|
||||
# setup_board. The developer can later change profiles by running
|
||||
# cros_choose_profile manually.
|
||||
@ -337,85 +305,29 @@ fi
|
||||
|
||||
generate_all_wrappers
|
||||
|
||||
if ${HOST_BOARD}; then
|
||||
EMERGE_CMD="emerge"
|
||||
if [[ $FLAGS_fast -eq $FLAGS_TRUE ]]; then
|
||||
EMERGE_CMD="${GCLIENT_ROOT}/chromite/bin/parallel_emerge"
|
||||
fi
|
||||
PACKAGES="system coreos-devel/sdk-depends world"
|
||||
if [[ ${FLAGS_regen_configs} -eq ${FLAGS_FALSE} ]]; then
|
||||
# First thing first, install baselayout with USE=build to create a
|
||||
# working directory tree. Don't use binpkgs due to the use flag change.
|
||||
sudo -E USE=build "${EMERGE_WRAPPER}" --usepkg=n --buildpkg=n \
|
||||
--oneshot --quiet --nodeps sys-apps/baselayout
|
||||
|
||||
# First, rebuild all packages from scratch. This is needed to make sure
|
||||
# we rebuild all chroot packages.
|
||||
sudo -E $EMERGE_CMD --emptytree --with-bdeps=y $PACKAGES
|
||||
sudo eclean -d packages
|
||||
# Now time for tool chain happy fun time
|
||||
install_toolchain
|
||||
|
||||
# Next, install our rebuilt packages into our separate root.
|
||||
HOST_FLAGS="--root=$BOARD_ROOT --update --verbose --deep --root-deps"
|
||||
HOST_FLAGS+=" --with-bdeps=y --newuse --jobs=$NUM_JOBS --usepkgonly"
|
||||
sudo -E $EMERGE_CMD $HOST_FLAGS --select=y $PACKAGES
|
||||
sudo cp -a "${PKGDIR}" $BOARD_ROOT/packages
|
||||
|
||||
# Install cross-compilers.
|
||||
COMPILERS=$(equery l cross-*/* --format='=$cpv')
|
||||
sudo -E $EMERGE_CMD $HOST_FLAGS --select=n $COMPILERS
|
||||
|
||||
# Setup needed symlinks for cross-compilers.
|
||||
sudo mkdir -p $BOARD_ROOT/usr/local/portage
|
||||
sudo cp -a ${CROSSDEV_OVERLAY} $BOARD_ROOT/usr/local/portage
|
||||
|
||||
# Setup crossdev configuration for categories.
|
||||
sudo cp -a /etc/portage/* $BOARD_ROOT/etc/portage
|
||||
|
||||
# The new chroot should have gcc for each target. Make sure that
|
||||
# the latest one is correctly selected. Ignore cat errors as not
|
||||
# all overlays will have a toolchain.conf.
|
||||
ALL_TARGETS=$(cros_setup_toolchains --show-board-cfg=sdk)
|
||||
for target in ${ALL_TARGETS//,/ }; do
|
||||
libc=$(eval $(crossdev --show-target-cfg "${target}"); echo ${libc_pn})
|
||||
if [[ ${libc} == "glibc" ]] ; then
|
||||
# Install needed glibc tarball.
|
||||
cross_target_path=/var/lib/portage/pkgs/cross-${target}
|
||||
if [[ -e "$cross_target_path" ]] ; then
|
||||
sudo mkdir -p ${BOARD_ROOT}${cross_target_path}
|
||||
sudo cp -a ${cross_target_path}/glibc-* \
|
||||
${BOARD_ROOT}${cross_target_path}
|
||||
fi
|
||||
# Emerge the kernel headers into the board build root. Use rdeps to
|
||||
# avoid pulling any spurious DEPEND things in that we don't care about.
|
||||
KERNEL_EMERGE_FLAGS="--select --quiet --root-deps=rdeps"
|
||||
if [[ "${FLAGS_usepkg}" -eq "${FLAGS_TRUE}" ]]; then
|
||||
KERNEL_EMERGE_FLAGS+=" --usepkg"
|
||||
if [[ "${FLAGS_getbinpkg}" -eq "${FLAGS_TRUE}" ]]; then
|
||||
KERNEL_EMERGE_FLAGS+=" --getbinpkg "
|
||||
fi
|
||||
|
||||
CURRENT_GCC="$(gcc-config -c ${target})"
|
||||
sudo ROOT=${BOARD_ROOT} gcc-config ${CURRENT_GCC}
|
||||
CURRENT_BINUTILS="$(binutils-config -c ${target})"
|
||||
sudo ROOT=${BOARD_ROOT} binutils-config ${CURRENT_BINUTILS}
|
||||
done
|
||||
|
||||
# Now cleanup paths referencing the ROOT from the *.la files.
|
||||
sudo find $BOARD_ROOT -type f -name '*.la' | xargs sudo \
|
||||
sed -i -e "s|$BOARD_ROOT/|/|g"
|
||||
else
|
||||
if [[ ${FLAGS_regen_configs} -eq ${FLAGS_FALSE} ]]; then
|
||||
# First thing first, install baselayout with USE=build to create a
|
||||
# working directory tree. Don't use binpkgs due to the use flag change.
|
||||
sudo -E USE=build "${EMERGE_WRAPPER}" --usepkg=n --buildpkg=n \
|
||||
--oneshot --quiet --nodeps sys-apps/baselayout
|
||||
|
||||
# Now time for tool chain happy fun time
|
||||
install_toolchain
|
||||
|
||||
# Emerge the kernel headers into the board build root. Use rdeps to
|
||||
# avoid pulling any spurious DEPEND things in that we don't care about.
|
||||
KERNEL_EMERGE_FLAGS="--select --quiet --root-deps=rdeps"
|
||||
if [[ "${FLAGS_usepkg}" -eq "${FLAGS_TRUE}" ]]; then
|
||||
KERNEL_EMERGE_FLAGS+=" --usepkg"
|
||||
if [[ "${FLAGS_getbinpkg}" -eq "${FLAGS_TRUE}" ]]; then
|
||||
KERNEL_EMERGE_FLAGS+=" --getbinpkg "
|
||||
fi
|
||||
fi
|
||||
|
||||
sudo -E "${EMERGE_WRAPPER}" ${KERNEL_EMERGE_FLAGS} \
|
||||
sys-kernel/linux-headers
|
||||
|
||||
unset KERNEL_EMERGE_FLAGS
|
||||
fi
|
||||
|
||||
sudo -E "${EMERGE_WRAPPER}" ${KERNEL_EMERGE_FLAGS} \
|
||||
sys-kernel/linux-headers
|
||||
|
||||
unset KERNEL_EMERGE_FLAGS
|
||||
fi
|
||||
|
||||
if [ $FLAGS_default -eq $FLAGS_TRUE ] ; then
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user