| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
pipe and assert that the data written to the pipe is identical to the data
read from the pipe. In order to implement this test, several useful classes
have been added:
* PipeReader
Reads output from one or more files and saves it in memory,
for retrieval via the getvalue() method. This is driven by
the scheduler's poll() loop, so it runs entirely within the
current process.
* QueueScheduler
Add instances of SequentialTaskQueue and then call run().
The run() method returns when no tasks remain.
* TaskScheduler
A simple way to handle scheduling of AsynchrousTask instances. Simply
add tasks and call run(). The run() method returns when no tasks remain.
svn path=/main/trunk/; revision=11022
|
|
|
|
|
|
|
|
| |
Scheduler._pkg().
* Define digraph.__contains__ for containment tests via the "in" operator.
svn path=/main/trunk/; revision=11021
|
|
|
|
|
|
| |
compatibility with python-2.6_beta. Thanks to Arfrever for reporting.
svn path=/main/trunk/; revision=11020
|
|
|
|
|
|
| |
spawn call fails.
svn path=/main/trunk/; revision=11019
|
|
|
|
| |
svn path=/main/trunk/; revision=11018
|
|
|
|
|
|
|
| |
portdbapi.aux_get() since it's still needed there or else aux_get won't
properly return INHERITED.
svn path=/main/trunk/; revision=11016
|
|
|
|
|
|
|
|
| |
portdbapi does too before generating metadata, and without it, a previous
CATEGORY can leak into the ebuild env and corrupt it (breaks lots of packages
that reference $CATEGORY).
svn path=/main/trunk/; revision=11015
|
|
|
|
| |
svn path=/main/trunk/; revision=11014
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* Make output handlers unregister themselves and call wait() to notify
exit listeners immediately. This makes the exit listeners more useful
for scheduling tasks. This makes the poll loop nice an clean because
it just calls the handlers and then the handlers can do the scheduling
when necessary.
* Make SequentialTaskQueue.add() and addFront() trigger scheduling
internally, so that it's more of a chain reaction than something that has
to be done explicitly.
svn path=/main/trunk/; revision=11013
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
options:
* Split out a PollLoop base class from Scheduler and derive a MetadataRegen
class to handle parallel scheduling for --regen.
* Add pordbapi._metadata_process() and _metadata_callback() methods to
implement asynchronous metadata generation. One method returns an
EbuildMetadataPhase instance to encapsulate the async task. The other
method is called to save the metadata when the process completes
successfully. These methods share code with aux_get to avoid duplicate
code.
svn path=/main/trunk/; revision=11012
|
|
|
|
|
|
|
| |
for the replaced package to Scheduler._completed_tasks so that it's properly
accounted for in _dependent_on_scheduled_merges().
svn path=/main/trunk/; revision=11011
|
|
|
|
|
|
|
| |
write a message to stderr showing the exact call that failed, including the
path of the file, in order to aid in debugging.
svn path=/main/trunk/; revision=11010
|
|
|
|
|
|
| |
the background.
svn path=/main/trunk/; revision=11009
|
|
|
|
|
|
|
|
|
|
|
| |
triggered when calling exit listeners.
* Make SequentialTaskQueue use exit listeners to trigger scheduling as
soon as a task exits. This makes it possible for the queues to
automatically schedule new tasks while scheduler remains in it's
poll() loop.
svn path=/main/trunk/; revision=11008
|
|
|
|
|
|
|
|
|
| |
errors commonly occur when ^C is used to kill emerge.
* Remove spawned pids from portage.process.spawned_pids immediately in order
to avoid a race condition for removing it.
svn path=/main/trunk/; revision=11007
|
|
|
|
|
|
|
| |
version of portage is the same exact version as the currently running
instance.
svn path=/main/trunk/; revision=11006
|
|
|
|
| |
svn path=/main/trunk/; revision=11005
|
|
|
|
|
|
| |
getmaskingstatus() that's triggered by a conditional in LICENSE.
svn path=/main/trunk/; revision=11004
|
|
|
|
|
|
| |
constructor.
svn path=/main/trunk/; revision=11003
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
"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
|
|
|
|
| |
svn path=/main/trunk/; revision=10998
|
|
|
|
|
|
| |
blockers) in the correct order when building in parallel.
svn path=/main/trunk/; revision=10996
|
|
|
|
|
|
| |
"uninstall" nodes.
svn path=/main/trunk/; revision=10995
|
|
|
|
|
|
|
|
|
| |
* 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
|
|
|
|
|
|
| |
detected for a given _schedule_main() call.
svn path=/main/trunk/; revision=10993
|
|
|
|
|
|
| |
change if it results in a handler being unregistered.
svn path=/main/trunk/; revision=10992
|
|
|
|
|
|
| |
"nomerge" nodes from "uninstall" nodes.
svn path=/main/trunk/; revision=10991
|
|
|
|
| |
svn path=/main/trunk/; revision=10990
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
| |
CompositeTask is designed for self._current_task to be set.
svn path=/main/trunk/; revision=10988
|
|
|
|
|
|
|
| |
self._current_task hasn't been properly updated after calling wait on
it.
svn path=/main/trunk/; revision=10987
|
|
|
|
| |
svn path=/main/trunk/; revision=10986
|
|
|
|
|
|
| |
and returns None.
svn path=/main/trunk/; revision=10985
|
|
|
|
|
|
| |
doesn't have a remove() method until python-2.5.
svn path=/main/trunk/; revision=10984
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
| |
* Make Binpkg pass the current background setting into subtasks.
svn path=/main/trunk/; revision=10982
|
|
|
|
|
|
| |
EbuildPhase class.
svn path=/main/trunk/; revision=10981
|
|
|
|
| |
svn path=/main/trunk/; revision=10980
|
|
|
|
|
|
| |
when max_jobs > 1.
svn path=/main/trunk/; revision=10979
|
|
|
|
|
|
| |
isn't exceeded.
svn path=/main/trunk/; revision=10978
|
|
|
|
| |
svn path=/main/trunk/; revision=10976
|
|
|
|
| |
svn path=/main/trunk/; revision=10975
|
|
|
|
|
|
|
|
| |
generic task exit callback.
* Remove erroneous self.wait() calls inside MergeListItem.start().
svn path=/main/trunk/; revision=10974
|
|
|
|
| |
svn path=/main/trunk/; revision=10971
|
|
|
|
|
|
| |
encapsulated and callers don't have to know about it.
svn path=/main/trunk/; revision=10970
|
|
|
|
|
|
|
|
|
| |
* 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
|
|
|
|
| |
svn path=/main/trunk/; revision=10965
|
|
|
|
|
|
| |
attrbute instead of just a local variable.
svn path=/main/trunk/; revision=10964
|
|
|
|
|
|
| |
from working properly in some cases.
svn path=/main/trunk/; revision=10963
|