Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(118)

Issue 2959006: Update parallel_emerge to support --workon. (Closed)

Created:
10 years, 5 months ago by davidjames
Modified:
9 years, 4 months ago
Reviewers:
Nick Sanders
CC:
chromium-os-reviews_chromium.org, Mandeep Singh Baines, anush, sosa
Base URL:
ssh://git@chromiumos-git/crosutils.git
Visibility:
Public.

Description

Update parallel_emerge to support --workon. Packages specified as workon packages are always built from source. Dependencies of workon packages are also built from source. Dependencies are calculated with --selective=n so that workon packages will be included in the install list. Packages that are not being worked on and are being unnecessarily replaced because of --selective=n are filtered out later. This patch also fixes a bug with world file updating -- previously the world file was never updated because the packages were getting removed by RemoveInstalledPackages. We now keep the appropriate world file updates, and instead update SanitizeTree to handle world file updates without trouble. I also optimized the cycle cracking algorithm so that it only visits each node once. This seems to improve run time significantly on graphs that have cycles. TEST=Ran ./parallel_emerge -uDNvpg --board=x86-generic chromeos --workon=chromeos-chrome && ./parallel_emerge -uDNvpg --board=x86-generic chromeos --workon=libcros && ./parallel_emerge -uDNvpg world --workon=libxml2 && ./parallel_emerge -uDNv -p world hard-host-depends --workon='bcel' BUG=none

Patch Set 1 #

Patch Set 2 : Cleanup #

Patch Set 3 : Minor tweaks #

Patch Set 4 : More simplification #

Patch Set 5 : Cleanup #

Patch Set 6 : Ensure that extra packages aren't unnecessarily installed. Also fix world file handling. #

Patch Set 7 : 80 chars #

Patch Set 8 : pylint #

Patch Set 9 : Make the traditional way of adding packages to world work again. #

Patch Set 10 : Use --selective=n so workon packages are actually reinstalled #

Total comments: 18

Patch Set 11 : Address review comments #

Patch Set 12 : pylint #

Patch Set 13 : Remove unnecessary sys.path.append #

Patch Set 14 : Remove debug print #

Patch Set 15 : Typo fix #

Unified diffs Side-by-side diffs Delta from patch set Stats (+218 lines, -107 lines) Patch
M parallel_emerge View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 21 chunks +218 lines, -107 lines 0 comments Download

Messages

Total messages: 5 (0 generated)
davidjames
10 years, 5 months ago (2010-07-10 04:07:53 UTC) #1
Nick Sanders
I'm not sure that what this is doing is always the right thing. I wonder ...
10 years, 5 months ago (2010-07-10 23:09:00 UTC) #2
Nick Sanders
http://codereview.chromium.org/2959006/diff/17001/18001 File parallel_emerge (right): http://codereview.chromium.org/2959006/diff/17001/18001#newcode576 parallel_emerge:576: cmdline = (EmergeCommand() + " --nodeps --selective --noreplace " ...
10 years, 5 months ago (2010-07-10 23:31:55 UTC) #3
davidjames
Updated. I also fixed parallel_emerge to parse regular emerge arguments correctly, so we're able to ...
10 years, 5 months ago (2010-07-11 03:09:41 UTC) #4
Nick Sanders
10 years, 5 months ago (2010-07-13 06:17:46 UTC) #5
lgtm, looks great!

Powered by Google App Engine
This is Rietveld 408576698