summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Bug #231358 - Fix 'NameError: global name 'p' is not defined' inZac Medico2008-07-091-1/+1
| | | | | | getmaskingstatus() that's triggered by a conditional in LICENSE. svn path=/main/trunk/; revision=11004
* For parallel-fetch prefetchers, pass fetchonly=1 into the EbuildFetcherZac Medico2008-07-091-1/+2
| | | | | | constructor. svn path=/main/trunk/; revision=11003
* Use the EbuildFetcher class to implement async fetch for the EbuildBuildZac Medico2008-07-092-32/+48
| | | | | | | | | | | class. When in background mode, fetch output is logged to emerge-fetch.log. This solves a problem with calling doebuild(returnpid=1) and then doebuild calling fetch() synchronously. In that case, doebuild would return an int if fetch() failed (including when running pkg_nofetch), which would lead to a TypeError since doebuild(returnpid=1) is supposed to return a list containing a spawned pid. svn path=/main/trunk/; revision=11002
* * Unify the scheduler's "build" and "extract" queues into a singleZac Medico2008-07-091-11/+34
| | | | | | | | | | | | | | | "jobs" queue. * Add support for logging fetches to /var/log/emerge-fetch.log when --jobs is enabled. Previously this log was only used for the parallel-fetch feature but now it's also used for --jobs. The scheduler's "prefetch" queue has been renamed to "fetch" since it's not exclusively used for parallel-fetch anymore. * Pass the "background" parameter from Binpkg in to the BinpkgFetcher instance, to send output to emerge-fetch.log instead of stdout. svn path=/main/trunk/; revision=10999
* Fix SubProcess._poll to handle a missing pid gracefully.Zac Medico2008-07-091-0/+2
| | | | svn path=/main/trunk/; revision=10998
* Fix Scheduler._choose_pkg() to perform uninstallation actions (due toZac Medico2008-07-091-5/+25
| | | | | | blockers) in the correct order when building in parallel. svn path=/main/trunk/; revision=10996
* Fix _prune_digraph() to correctly distinguish "nomerge" nodes fromZac Medico2008-07-091-1/+2
| | | | | | "uninstall" nodes. svn path=/main/trunk/; revision=10995
* * Fix _choose_pkg() to pop the first node if there are no other jobs running.Zac Medico2008-07-081-2/+6
| | | | | | | | | * Allow _choose_pkg() to choose an uninstall node when it reaches the front of the queue. TODO: fix order for uninstall operations. * Fix _dependent_on_scheduled_merges() to handle direct circular deps correctly. svn path=/main/trunk/; revision=10994
* Make the "tight loop" assertion trigger whenever there is no state changeZac Medico2008-07-081-1/+1
| | | | | | detected for a given _schedule_main() call. svn path=/main/trunk/; revision=10993
* In scheduler._schedule_main(), only consider a poll() event to be a stateZac Medico2008-07-081-1/+1
| | | | | | change if it results in a handler being unregistered. svn path=/main/trunk/; revision=10992
* Fix Scheduler._dependent_on_scheduled_merges() to properly distinguishZac Medico2008-07-081-1/+1
| | | | | | "nomerge" nodes from "uninstall" nodes. svn path=/main/trunk/; revision=10991
* Remove redundant call to _schedule_main().Zac Medico2008-07-081-2/+0
| | | | svn path=/main/trunk/; revision=10990
* * Call self._wait() when unregistering output handlers, in order to avoidZac Medico2008-07-081-8/+24
| | | | | | | | | | | | triggering a tight loop. Also fix Subprocess._wait() to only schedule when self.registered is True. * Add an assertion inside Scheduler._schedule_main() to try and detect tight loops like the one above. * Fix typo in Scheduler._merge_exit(). svn path=/main/trunk/; revision=10989
* Derive PackageMerge from AsynchronousTask instead of CompositeTask sinceZac Medico2008-07-081-1/+1
| | | | | | CompositeTask is designed for self._current_task to be set. svn path=/main/trunk/; revision=10988
* Raise an AssertionError in CompositeTask._wait() if it's detected thatZac Medico2008-07-081-1/+7
| | | | | | | self._current_task hasn't been properly updated after calling wait on it. svn path=/main/trunk/; revision=10987
* Fix infinite loop in CompositeTask._wait().Zac Medico2008-07-081-1/+4
| | | | svn path=/main/trunk/; revision=10986
* Fix ValueError triggered when Scheduler._choose_pkg() doesn't find a packageZac Medico2008-07-081-1/+2
| | | | | | and returns None. svn path=/main/trunk/; revision=10985
* Use a normal list instead of a deque for Scheduler._pkg_queue since dequeZac Medico2008-07-081-3/+3
| | | | | | doesn't have a remove() method until python-2.5. svn path=/main/trunk/; revision=10984
* Implement parallel build support by adding new --jobs and --load-averageZac Medico2008-07-081-18/+238
| | | | | | | | options that are analogous to the corresponding `make` options. Input and output handling still need work to make it look better and act more friendly for things like interactive ebuilds that require input. svn path=/main/trunk/; revision=10983
* * Add background support to the SpawProcess class.Zac Medico2008-07-081-5/+10
| | | | | | * Make Binpkg pass the current background setting into subtasks. svn path=/main/trunk/; revision=10982
* Add AsynchronousTask.background attribute and add support for it to theZac Medico2008-07-081-15/+21
| | | | | | EbuildPhase class. svn path=/main/trunk/; revision=10981
* Also add "background" attributes to the EbuildBuild and Binpkg classes.Zac Medico2008-07-081-3/+5
| | | | svn path=/main/trunk/; revision=10980
* Add a MergeListItem.background attribute for putting a task in the backgroundZac Medico2008-07-081-4/+6
| | | | | | when max_jobs > 1. svn path=/main/trunk/; revision=10979
* Add a missing check in Scheduler._main_loop() to ensure that max_jobsZac Medico2008-07-081-0/+5
| | | | | | isn't exceeded. svn path=/main/trunk/; revision=10978
* Use plain sequential search for the SRC_URI.mirror check since the regexZac Medico2008-07-081-5/+8
| | | | | | approach is actually much slower. svn path=/main/trunk/; revision=10977
* Add a Scheduler._digraph attribute for use in parallel build scheduling.Zac Medico2008-07-071-0/+10
| | | | svn path=/main/trunk/; revision=10976
* Rename SubProcess.reg_id to _reg_id since it no longer needs to be exposed.Zac Medico2008-07-071-4/+5
| | | | svn path=/main/trunk/; revision=10975
* * Add new CompositeTask._default_final_exit() method and use it as the newZac Medico2008-07-071-7/+12
| | | | | | | | generic task exit callback. * Remove erroneous self.wait() calls inside MergeListItem.start(). svn path=/main/trunk/; revision=10974
* Add a new "SRC_URI.mirror" check which checks to if a uri listed inZac Medico2008-07-072-0/+22
| | | | | | | profiles/thirdpartymirrors is found in SRC_URI. Thanks to Betelgeuse for the initial patch which has now been optimized with a regex. svn path=/main/trunk/; revision=10973
* Move the "registered" attribute to the SubProcess class too.Zac Medico2008-07-071-3/+3
| | | | svn path=/main/trunk/; revision=10971
* Make SubProcess._wait() call scheduler.schedule(self.reg_id) so it'sZac Medico2008-07-071-6/+5
| | | | | | encapsulated and callers don't have to know about it. svn path=/main/trunk/; revision=10970
* remove TODO list as it's not maintained anywayMarius Mauch2008-07-071-10/+0
| | | | svn path=/main/trunk/; revision=10969
* * Implement CompositeTask._poll().Zac Medico2008-07-071-40/+147
| | | | | | | | | * Make AsynchronousTask classes call self.wait() to notify exit listeners. * Rewrite Scheduler._main_loop() to bring it closer to allowing parallel build scheduling. svn path=/main/trunk/; revision=10966
* Fix broken code in AsynchronousTask.poll().Zac Medico2008-07-071-2/+2
| | | | svn path=/main/trunk/; revision=10965
* Fix EbuildPhase._set_returncode() so that it correctly updates the returncodeZac Medico2008-07-071-3/+2
| | | | | | attrbute instead of just a local variable. svn path=/main/trunk/; revision=10964
* Fix typo in Binpkg.start() which prevents --genbinpkg prefetcher syncZac Medico2008-07-071-1/+1
| | | | | | from working properly in some cases. svn path=/main/trunk/; revision=10963
* * Implement MergeListItem._poll() and _wait().Zac Medico2008-07-061-0/+9
| | | | | | * Fix BinpkgVerifier.start() to call wait() since it's not asynchronous. svn path=/main/trunk/; revision=10962
* Add a PackageMerge class to serve as an asynchronous interface to packageZac Medico2008-07-061-1/+15
| | | | | | merges. For now it executes synchronously inside the start() method. svn path=/main/trunk/; revision=10961
* Add async support to MergeListItem.Zac Medico2008-07-061-61/+72
| | | | svn path=/main/trunk/; revision=10960
* Add async support to the Binpkg class.Zac Medico2008-07-061-153/+189
| | | | svn path=/main/trunk/; revision=10959
* Make BinpkgFetcher send output directly to stdout when appropriate,Zac Medico2008-07-061-29/+66
| | | | | | so that wget's progress bar works normally. svn path=/main/trunk/; revision=10958
* Fix parent class constructor call in the BinpkgFetcher constructor.Zac Medico2008-07-061-1/+1
| | | | svn path=/main/trunk/; revision=10957
* Make AsynchronousTask subclasses override _wait() and _poll() so that callsZac Medico2008-07-061-10/+21
| | | | | | | to public methods can be wrapped for implementing hooks such as exit listener notification. svn path=/main/trunk/; revision=10956
* Fix --getbinpkg to inject downloaded packages into the local bintree.Zac Medico2008-07-061-0/+1
| | | | svn path=/main/trunk/; revision=10955
* * Fix broke return code handling from previous commit, inZac Medico2008-07-061-2/+6
| | | | | | | | | MergeListItem.execute(). * Fix TaskSequence._task_exit_handler() so it won't call final_exit() if _default_exit() has already set self._current_task to None. svn path=/main/trunk/; revision=10954
* Add async support to EbuildBuild, and an synchronous install() method.Zac Medico2008-07-061-89/+132
| | | | svn path=/main/trunk/; revision=10953
* Split out a CompositeTask._start_task() for subclasses to use as a genericZac Medico2008-07-061-10/+17
| | | | | | way to start a task. svn path=/main/trunk/; revision=10952
* Add CompositeTask._final_exit() method and use it to fix breakage from theZac Medico2008-07-061-1/+16
| | | | | | previous commit. svn path=/main/trunk/; revision=10951
* Split out a reusable CompositeTask._default_exit() method that subclassesZac Medico2008-07-061-19/+20
| | | | | | can use as a generic task exit callback. svn path=/main/trunk/; revision=10950
* Add a CompositeTask._assert_current() method that asynchronous callbacksZac Medico2008-07-061-2/+13
| | | | | | can use detect possible bugs. svn path=/main/trunk/; revision=10949