DescriptionUpdate 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 #Messages
Total messages: 5 (0 generated)
|