diff --git a/build_image b/build_image index 2fad0fed00..e33749d55e 100755 --- a/build_image +++ b/build_image @@ -69,6 +69,14 @@ if [ "$FLAGS_rootfs_size" -gt "$FLAGS_rootfs_partition_size" ] ; then exit 1 fi +EMERGE_CMD="emerge" +EMERGE_BOARD_CMD="emerge-${FLAGS_board}" +TOP_SCRIPTS_DIR="$(dirname $0)" +if [ -e "${TOP_SCRIPTS_DIR}/.emerge" ]; then + echo "Using alternate emerge" + . "${TOP_SCRIPTS_DIR}/.emerge" +fi + # Determine build version. . "${SCRIPTS_DIR}/chromeos_version.sh" @@ -233,12 +241,12 @@ create_mod_image() { root_dev_dir="$root_fs_dir/usr/local" # Install developer packages described in chromeos-dev. - sudo INSTALL_MASK="$INSTALL_MASK" emerge-${BOARD} \ + sudo INSTALL_MASK="$INSTALL_MASK" ${EMERGE_BOARD_CMD} \ --root="$root_dev_dir" --root-deps=rdeps \ --usepkgonly chromeos-dev $EMERGE_JOBS elif [ "$image_type" == "recovery" ]; then # Install recovery installer - sudo emerge-${BOARD} --root=$root_fs_dir --usepkgonly \ + sudo ${EMERGE_BOARD_CMD} --root=$root_fs_dir --usepkgonly \ --root-deps=rdeps --nodeps chromeos-recovery fi @@ -406,12 +414,13 @@ sudo mkdir -p "${ROOT_FS_DIR}/usr/local" sudo mount --bind "${DEV_IMAGE_ROOT}" "${ROOT_FS_DIR}/usr/local" sudo mkdir -p "${ROOT_FS_DIR}/var" sudo mount --bind "${STATEFUL_DIR}/var" "${ROOT_FS_DIR}/var" +sudo mkdir -p "${ROOT_FS_DIR}/dev" # We "emerge --root=$ROOT_FS_DIR --root-deps=rdeps --usepkgonly" all of the # runtime packages for chrome os. This builds up a chrome os image from binary # packages with runtime dependencies only. We use INSTALL_MASK to trim the # image size as much as possible. -sudo INSTALL_MASK="$INSTALL_MASK" emerge-${BOARD} \ +sudo INSTALL_MASK="$INSTALL_MASK" ${EMERGE_BOARD_CMD} \ --root="$ROOT_FS_DIR" --root-deps=rdeps \ --usepkgonly chromeos $EMERGE_JOBS @@ -567,6 +576,7 @@ fi if [ "$FLAGS_withdev" -eq "$FLAGS_TRUE" ]; then echo "Developer image created as $DEVELOPER_IMAGE_NAME" fi + echo "To copy to USB keyfob, OUTSIDE the chroot, do something like:" echo " ./image_to_usb.sh --from=${OUTSIDE_OUTPUT_DIR} --to=/dev/sdX" echo "To convert to VMWare image, OUTSIDE the chroot, do something like:" diff --git a/mod_image_for_test.sh b/mod_image_for_test.sh index a157e59393..a334769909 100755 --- a/mod_image_for_test.sh +++ b/mod_image_for_test.sh @@ -39,6 +39,12 @@ DEFINE_string build_root "/build" \ FLAGS "$@" || exit 1 eval set -- "${FLAGS_ARGV}" +EMERGE_CMD="emerge" +EMERGE_BOARD_CMD="emerge-${FLAGS_board}" +if [ -e "${TOP_SCRIPTS_DIR}/.emerge" ]; then + . "${TOP_SCRIPTS_DIR}/.emerge" +fi + # No board, no default and no image set then we can't find the image if [ -z $FLAGS_image ] && [ -z $FLAGS_board ] ; then setup_board_warning @@ -89,7 +95,7 @@ emerge_chromeos_test() { # Determine the root dir for test packages. ROOT_DEV_DIR="$ROOT_FS_DIR/usr/local" - INSTALL_MASK="$INSTALL_MASK" emerge-${FLAGS_board} \ + INSTALL_MASK="$INSTALL_MASK" $EMERGE_BOARD_CMD \ --root="$ROOT_DEV_DIR" --root-deps=rdeps \ --usepkgonly chromeos-test $EMERGE_JOBS } @@ -156,7 +162,7 @@ if [ ${FLAGS_factory_install} -eq ${FLAGS_TRUE} ]; then # out of space. # Run factory setup script to modify the image. - sudo emerge-${FLAGS_board} --root=$ROOT_FS_DIR --usepkgonly \ + sudo $EMERGE_BOARD_CMD --root=$ROOT_FS_DIR --usepkgonly \ --root-deps=rdeps --nodeps chromeos-factoryinstall # Set factory server if necessary.