diff --git a/common.sh b/common.sh index b7d428dab5..20a473cff8 100644 --- a/common.sh +++ b/common.sh @@ -113,11 +113,8 @@ ALL_BOARDS=$(echo $ALL_BOARDS) #DEFAULT_BOARD=x86-generic # or... DEFAULT_BOARD=$(echo $ALL_BOARDS | awk '{print $NF}') -# Enable --fast by default on non-official builds +# Enable --fast by default. DEFAULT_FAST="${FLAGS_TRUE}" -if [ "${CHROMEOS_OFFICIAL:-0}" = "1" ]; then - DEFAULT_FAST="${FLAGS_FALSE}" -fi # Detect whether we're inside a chroot or not if [ -e /etc/debian_chroot ] diff --git a/parallel_emerge b/parallel_emerge index c912a115ac..ce40be4b07 100755 --- a/parallel_emerge +++ b/parallel_emerge @@ -310,13 +310,6 @@ class DepGraphGenerator(object): # will be going away soon as we migrate to CROS_WORKON_SRCROOT. os.environ.setdefault("CHROMEOS_ROOT", os.environ["HOME"] + "/trunk") - # Modify the environment to disable locking by default. - # TODO(davidjames): This option can cause problems if packages muck - # with each other during the post-install step. There are a few host - # packages that do this, so we only do this environment modification for - # board builds. - os.environ.setdefault("PORTAGE_LOCKS", "false") - # Turn off interactive delays os.environ["EBEEP_IGNORE"] = "1" os.environ["EPAUSE_IGNORE"] = "1" @@ -357,11 +350,17 @@ class DepGraphGenerator(object): # TODO(davidjames): Look for a better solution. features = os.environ.get("FEATURES", "") + " -collision-protect" - # If we're cross-compiling, updating the environment every time we install - # a package isn't necessary, and leads to race conditions when - # PORTAGE_LOCKS is false. In this case, do environment updates at the end, - # instead. - if self.board and os.environ.get("PORTAGE_LOCKS") == "false": + # If we're installing packages to the board, and we're not using the + # official flag, we can enable the following optimizations: + # 1) Don't lock during install step. This allows multiple packages to be + # installed at once. This is safe because our board packages do not + # muck with each other during the post-install step. + # 2) Don't update the environment until the end of the build. This is + # safe because board packages don't need to run during the build -- + # they're cross-compiled, so our CPU architecture doesn't support them + # anyway. + if self.board and os.environ.get("CHROMEOS_OFFICIAL") != "1": + os.environ.setdefault("PORTAGE_LOCKS", "false") features = features + " no-env-update" os.environ["FEATURES"] = features