Index: parallel_emerge |
diff --git a/parallel_emerge b/parallel_emerge |
index c912a115ac000207582caa693c4997e429764990..ce40be4b07a49a22ce31fd1bfe266f29ff102305 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 |