Merge pull request #271 from marineam/profiles

Profile and config updates
This commit is contained in:
Michael Marineau 2014-06-10 13:10:16 -07:00
commit 0992af818b
5 changed files with 54 additions and 21 deletions

View File

@ -153,10 +153,9 @@ start_image() {
mount "${disk_img}" "${root_fs_dir}" mount "${disk_img}" "${root_fs_dir}"
trap "cleanup_mounts '${root_fs_dir}' && delete_prompt" EXIT trap "cleanup_mounts '${root_fs_dir}' && delete_prompt" EXIT
# First thing first, install baselayout with USE=build to create a # First thing first, install baselayout to create a working filesystem.
# working directory tree. Don't use binpkgs due to the use flag change. emerge-${BOARD} --root="${root_fs_dir}" \
sudo -E USE=build "emerge-${BOARD}" --root="${root_fs_dir}" \ --usepkgonly --oneshot --quiet --nodeps sys-apps/baselayout
--usepkg=n --buildpkg=n --oneshot --quiet --nodeps sys-apps/baselayout
# FIXME(marineam): Work around glibc setting EROOT=$ROOT # FIXME(marineam): Work around glibc setting EROOT=$ROOT
# https://bugs.gentoo.org/show_bug.cgi?id=473728#c12 # https://bugs.gentoo.org/show_bug.cgi?id=473728#c12

View File

@ -5,14 +5,15 @@
# common.sh should be sourced first # common.sh should be sourced first
[[ -n "${DEFAULT_BUILD_ROOT}" ]] || exit 1 [[ -n "${DEFAULT_BUILD_ROOT}" ]] || exit 1
. "${SCRIPTS_DIR}/sdk_lib/sdk_util.sh" . "${SCRIPTS_DIR}/sdk_lib/sdk_util.sh" || exit 1
. "${BUILD_LIBRARY_DIR}/toolchain_util.sh" || exit 1
# Default option values, may be provided before including this file # Default option values, may be provided before including this file
: ${TYPE:="coreos-sdk"} : ${TYPE:="coreos-sdk"}
: ${ARCH:=$(portageq envvar ARCH)} : ${ARCH:=$(get_sdk_arch)}
: ${DEFAULT_CATALYST_ROOT:="${DEFAULT_BUILD_ROOT}/catalyst"} : ${DEFAULT_CATALYST_ROOT:="${DEFAULT_BUILD_ROOT}/catalyst"}
: ${DEFAULT_SEED:=${COREOS_SDK_TARBALL_PATH}} : ${DEFAULT_SEED:=${COREOS_SDK_TARBALL_PATH}}
: ${DEFAULT_PROFILE:="coreos:default/linux/${ARCH}/10.0"} : ${DEFAULT_PROFILE:=$(get_sdk_profile)}
# Set to something like "stage4" to restrict what to build # Set to something like "stage4" to restrict what to build
# FORCE_STAGES= # FORCE_STAGES=

View File

@ -21,7 +21,7 @@ CROSS_PROFILES["x86_64-cros-linux-gnu"]="coreos:coreos/amd64/generic"
# guesses or hard-code these. All that should migrate to this list. # guesses or hard-code these. All that should migrate to this list.
declare -A BOARD_CHOSTS BOARD_PROFILES declare -A BOARD_CHOSTS BOARD_PROFILES
BOARD_CHOSTS["amd64-usr"]="x86_64-cros-linux-gnu" BOARD_CHOSTS["amd64-usr"]="x86_64-cros-linux-gnu"
BOARD_PROFILES["amd64-usr"]="coreos:coreos/amd64/usr" BOARD_PROFILES["amd64-usr"]="coreos:coreos/amd64/generic"
BOARD_NAMES=( "${!BOARD_CHOSTS[@]}" ) BOARD_NAMES=( "${!BOARD_CHOSTS[@]}" )
# Declare the above globals as read-only to avoid accidental conflicts. # Declare the above globals as read-only to avoid accidental conflicts.

View File

@ -11,7 +11,6 @@ TYPE="coreos-toolchains"
FORCE_STAGES="stage4" FORCE_STAGES="stage4"
. "${BUILD_LIBRARY_DIR}/catalyst.sh" || exit 1 . "${BUILD_LIBRARY_DIR}/catalyst.sh" || exit 1
. "${BUILD_LIBRARY_DIR}/toolchain_util.sh" || exit 1
# include upload options # include upload options
. "${BUILD_LIBRARY_DIR}/release_util.sh" || exit 1 . "${BUILD_LIBRARY_DIR}/release_util.sh" || exit 1

View File

@ -214,6 +214,23 @@ else
FLAGS_regen_configs=${FLAGS_FALSE} FLAGS_regen_configs=${FLAGS_FALSE}
fi fi
# Migrate board roots that were created before the package location
# was standardized to /var/lib/portage/pkgs, build_image will fail if we
# simply forget about the old location and start writing to the new.
# Keep /packages as a compatibility symlink until everyone is updated.
if [[ ! -L "${BOARD_ROOT}/packages" ]]; then
if [[ ! -d "${BOARD_ROOT}/var/lib/portage/pkgs" ]]; then
if [[ -d "${BOARD_ROOT}/packages" ]]; then
warn "Moving board package directory to ${BOARD_ROOT}/var/lib/portage/pkgs"
sudo mkdir -p "${BOARD_ROOT}/var/lib/portage"
sudo mv "${BOARD_ROOT}/packages" "${BOARD_ROOT}/var/lib/portage/pkgs"
fi
else
sudo mkdir -p "${BOARD_ROOT}/var/lib/portage/pkgs"
fi
sudo ln -sfT "var/lib/portage/pkgs" "${BOARD_ROOT}/packages"
fi
info "Configuring portage in ${BOARD_ROOT}" info "Configuring portage in ${BOARD_ROOT}"
cmds=( cmds=(
"mkdir -p '${BOARD_ROOT}' '${BOARD_PROFILE}'" "mkdir -p '${BOARD_ROOT}' '${BOARD_PROFILE}'"
@ -235,25 +252,38 @@ sudo_multi "${cmds[@]}"
sudo_clobber "${BOARD_SETUP}" <<EOF sudo_clobber "${BOARD_SETUP}" <<EOF
# Created by setup_board # Created by setup_board
# Settings derived from the host environment
CBUILD="$(portageq envvar CHOST)"
HOSTCC="$(portageq envvar CHOST)-gcc"
PORTDIR="$(portageq envvar PORTDIR)"
PORTDIR_OVERLAY="$(portageq envvar PORTDIR_OVERLAY)"
DISTDIR="$(portageq envvar DISTDIR)"
MAKEOPTS="$(portageq envvar MAKEOPTS)"
# Board specific settings
CHOST="${BOARD_CHOST}" CHOST="${BOARD_CHOST}"
ROOT="${BOARD_ROOT}/" ROOT="${BOARD_ROOT}/"
MAKEOPTS="--jobs=${NUM_JOBS} --load-average=$((NUM_JOBS * 2))"
PKG_CONFIG="pkg-config-${BOARD_VARIANT}"
BOARD_USE="${BOARD_VARIANT}" BOARD_USE="${BOARD_VARIANT}"
PKGDIR="${BOARD_ROOT}/var/lib/portage/pkgs"
PORT_LOGDIR="${BOARD_ROOT}/var/log/portage"
PORTAGE_TMPDIR="${BOARD_ROOT}/var/tmp"
PORTAGE_BINHOST="${BOARD_BINHOST}" PORTAGE_BINHOST="${BOARD_BINHOST}"
# TODO(marineam): Unsure if we need to specify both the pkg-config
# env variables and a pkg-config wrapper that does the same thing...
PKG_CONFIG="pkg-config-${BOARD_VARIANT}"
PKG_CONFIG_PATH="${BOARD_ROOT}/usr/lib/pkgconfig:${BOARD_ROOT}/usr/share/pkgconfig"
PKG_CONFIG_SYSROOT_DIR="${BOARD_ROOT}"
# Generally there isn't any need to add packages to @world by default.
# You can use --select to override this.
EMERGE_DEFAULT_OPTS="--oneshot"
EOF EOF
generate_all_wrappers generate_all_wrappers
if [[ ${FLAGS_regen_configs} -eq ${FLAGS_FALSE} ]]; then if [[ ${FLAGS_regen_configs} -eq ${FLAGS_FALSE} ]]; then
info "Installing baselayout"
# 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
EMERGE_FLAGS="--select --quiet --root-deps=rdeps" EMERGE_FLAGS="--select --quiet --root-deps=rdeps"
if [[ "${FLAGS_jobs}" -ne -1 ]]; then if [[ "${FLAGS_jobs}" -ne -1 ]]; then
EMERGE_FLAGS+=" --jobs=${FLAGS_jobs}" EMERGE_FLAGS+=" --jobs=${FLAGS_jobs}"
@ -262,7 +292,8 @@ if [[ ${FLAGS_regen_configs} -eq ${FLAGS_FALSE} ]]; then
if [[ "${FLAGS_usepkg}" -eq "${FLAGS_TRUE}" && \ if [[ "${FLAGS_usepkg}" -eq "${FLAGS_TRUE}" && \
"${FLAGS_getbinpkg}" -eq "${FLAGS_TRUE}" ]] "${FLAGS_getbinpkg}" -eq "${FLAGS_TRUE}" ]]
then then
EMERGE_FLAGS+=" --usepkgonly --getbinpkg" EMERGE_FLAGS+=" --usepkg --getbinpkg"
EMERGE_TOOLCHAIN_FLAGS="${EMERGE_FLAGS} --usepkgonly"
else else
# When binary packages are disabled we need to make sure the cross # When binary packages are disabled we need to make sure the cross
# sysroot includes any build dependencies for the toolchain. # sysroot includes any build dependencies for the toolchain.
@ -270,9 +301,12 @@ if [[ ${FLAGS_regen_configs} -eq ${FLAGS_FALSE} ]]; then
install_cross_libs "${BOARD_CHOST}" ${EMERGE_FLAGS} --buildpkg=n install_cross_libs "${BOARD_CHOST}" ${EMERGE_FLAGS} --buildpkg=n
fi fi
info "Installing baselayout"
"${EMERGE_WRAPPER}" ${EMERGE_FLAGS} --nodeps sys-apps/baselayout
info "Installing toolchain" info "Installing toolchain"
SYSROOT="/usr/${BOARD_CHOST}" "${EMERGE_WRAPPER}" \ SYSROOT="/usr/${BOARD_CHOST}" "${EMERGE_WRAPPER}" \
${EMERGE_FLAGS} "${TOOLCHAIN_PKGS[@]}" ${EMERGE_TOOLCHAIN_FLAGS} "${TOOLCHAIN_PKGS[@]}"
fi fi
if [ $FLAGS_default -eq $FLAGS_TRUE ] ; then if [ $FLAGS_default -eq $FLAGS_TRUE ] ; then