Index: src/scripts/enter_chroot.sh |
diff --git a/src/scripts/enter_chroot.sh b/src/scripts/enter_chroot.sh |
index 940e47a2b7e16574239ee4acd5677d9f18ab224c..31734a9aed6d9d6a42ab246dd9b0a60c23a7c5f6 100755 |
--- a/src/scripts/enter_chroot.sh |
+++ b/src/scripts/enter_chroot.sh |
@@ -23,6 +23,7 @@ DEFINE_string trunk "$GCLIENT_ROOT" \ |
DEFINE_string build_number "" \ |
"The build-bot build number (when called by buildbot only)." "b" |
+DEFINE_boolean official_build $FLAGS_FALSE "Set CHROMEOS_OFFICIAL=1 for release builds." |
DEFINE_boolean mount $FLAGS_FALSE "Only set up mounts." |
DEFINE_boolean unmount $FLAGS_FALSE "Only tear down mounts." |
@@ -48,6 +49,11 @@ Otherwise, provides an interactive shell. |
FLAGS "$@" || exit 1 |
eval set -- "${FLAGS_ARGV}" |
+if [ $FLAGS_official_build -eq $FLAGS_TRUE ] |
+then |
+ CHROMEOS_OFFICIAL=1 |
+fi |
+ |
# Only now can we die on error. shflags functions leak non-zero error codes, |
# so will die prematurely if 'set -e' is specified before now. |
# TODO: replace shflags with something less error-prone, or contribute a fix. |
@@ -111,25 +117,29 @@ setup_env |
# Note that this fixes $CHROMEOS_REVISION at the time the chroot is |
# entered. That's ok for the main use case of automated builds, |
# which pass each command line into a separate call to enter_chroot |
-# so always have up-to-date info. For developer builds, there isn't |
-# really a single revision anyway, since the developer may have |
+# so always have up-to-date info. For developer builds, there may not |
+# be a single revision, since the developer may have |
# hand-sync'd some subdirs and edited files in others. |
+# In that case, check against origin/HEAD and mark** revision. |
# Use git:8 chars of sha1 |
REVISION=$(git rev-parse HEAD) |
ORIGIN_REVISION=$(git rev-parse origin/HEAD) |
-if [ "$REVISION" != "$ORIGIN_REVISION" ] |
+# Do not check for clean revision on official builds. They are coming directly |
+# from a branch rev and cannot compare to origin/HEAD. |
+if [ $FLAGS_official_build != $FLAGS_TRUE ] && \ |
+ [ "$REVISION" != "$ORIGIN_REVISION" ] |
then |
# Mark dirty tree with "**" |
- REVISION="${REVISION:0:8}**" |
+ REVISION="${REVISION:0:8}**" |
else |
REVISION="${REVISION:0:8}" |
fi |
-REVISION="CHROMEOS_REVISION=$REVISION BUILDBOT_BUILD=$FLAGS_build_number" |
+CHROOT_PASSTHRU="CHROMEOS_REVISION=$REVISION BUILDBOT_BUILD=$FLAGS_build_number CHROMEOS_OFFICIAL=$CHROMEOS_OFFICIAL" |
# Run command or interactive shell. Also include the non-chrooted path to |
# the source trunk for scripts that may need to print it (e.g. |
# build_image.sh). |
-sudo chroot "$FLAGS_chroot" sudo -i -u $USER $REVISION \ |
+sudo chroot "$FLAGS_chroot" sudo -i -u $USER $CHROOT_PASSTHRU \ |
EXTERNAL_TRUNK_PATH="${FLAGS_trunk}" "$@" |
# Remove trap and explicitly unmount |