| Index: src/scripts/build_image
|
| diff --git a/src/scripts/build_image b/src/scripts/build_image
|
| index 722a8ef62b9ca0f604bb8b62f403e47984917011..25dde2686bfd695981b69db95315164afb943db7 100755
|
| --- a/src/scripts/build_image
|
| +++ b/src/scripts/build_image
|
| @@ -35,6 +35,8 @@ DEFINE_boolean installmask $FLAGS_TRUE \
|
| "Use INSTALL_MASK to shrink the resulting image."
|
| DEFINE_integer jobs -1 \
|
| "How many packages to build in parallel at maximum."
|
| +DEFINE_integer retries -1 \
|
| + "On image mastering failure, the number of times to retry"
|
| DEFINE_boolean statefuldev $FLAGS_FALSE \
|
| "Install development packages on stateful partition rather than the rootfs"
|
| DEFINE_string to "" \
|
| @@ -283,6 +285,11 @@ fi
|
|
|
| if [[ $FLAGS_jobs -ne -1 ]]; then
|
| EMERGE_JOBS="--jobs=$FLAGS_jobs"
|
| + if [[ $FLAGS_retries -eq -1 ]]; then
|
| + # The jobs flag can be flaky. Retry once by default,
|
| + # without the jobs flag.
|
| + FLAGS_retries=1
|
| + fi
|
| fi
|
|
|
| # Prepare stateful partition with some pre-created directories
|
| @@ -305,7 +312,7 @@ sudo mount --bind "${STATEFUL_DIR}/var" "${ROOT_FS_DIR}/var"
|
| # 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} \
|
| +eretry sudo INSTALL_MASK="$INSTALL_MASK" emerge-${BOARD} \
|
| --root="$ROOT_FS_DIR" --root-deps=rdeps \
|
| --usepkgonly chromeos $EMERGE_JOBS
|
|
|
| @@ -315,7 +322,7 @@ ROOT_DEV_DIR="$ROOT_FS_DIR"
|
|
|
| # Install development packages.
|
| if [[ $FLAGS_withdev -eq $FLAGS_TRUE ]] ; then
|
| - sudo INSTALL_MASK="$INSTALL_MASK" emerge-${BOARD} \
|
| + eretry sudo INSTALL_MASK="$INSTALL_MASK" emerge-${BOARD} \
|
| --root="$ROOT_DEV_DIR" --root-deps=rdeps \
|
| --usepkgonly chromeos-dev $EMERGE_JOBS
|
|
|
| @@ -324,14 +331,14 @@ if [[ $FLAGS_withdev -eq $FLAGS_TRUE ]] ; then
|
| fi
|
|
|
| if [ -n "$FLAGS_factory_server" ]; then
|
| - sudo INSTALL_MASK="$INSTALL_MASK" emerge-${BOARD} \
|
| + eretry sudo INSTALL_MASK="$INSTALL_MASK" emerge-${BOARD} \
|
| --root="$ROOT_DEV_DIR" --root-deps=rdeps \
|
| --usepkgonly chromeos-factoryinstall $EMERGE_JOBS
|
| fi
|
|
|
| # Install packages required for testing.
|
| if [[ $FLAGS_withtest -eq $FLAGS_TRUE ]] ; then
|
| - sudo INSTALL_MASK="$INSTALL_MASK" emerge-${BOARD} \
|
| + eretry sudo INSTALL_MASK="$INSTALL_MASK" emerge-${BOARD} \
|
| --root="$ROOT_DEV_DIR" --root-deps=rdeps \
|
| --usepkgonly chromeos-test $EMERGE_JOBS
|
| fi
|
|
|