| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
| |
This allows for the scheduler to continue to run while packages are
being merged and installed, allowing for additional parallelism and
making better use of the CPUs.
Review URL: http://codereview.chromium.org/6713043
|
|
|
|
|
|
|
|
|
|
|
|
| |
Currently, Portage syncs the BlockerDB before every merge. This slows
down merges considerably because it requires reading the entire vardb
from disk. Since Portage doesn't merge conflicting packages anyway, we
can optimize this by just reading the vardb at initialization and
caching that.
Change-Id: I6701926f022ef3aa2da10482fc8b09573ae24610
Review URL: http://codereview.chromium.org/6688037
|
|
|
|
|
|
| |
This allows --ask to be enabled via EMERGE_DEFAULT_OPTS, and then
temporarily disabled via the command-line. This may be useful for
programs that call emerge non-interactively, as in bug #360233.
|
| |
|
|
|
|
| |
Thanks to Dennis Schridde in bug #359681.
|
|
|
|
|
| |
Also, fix local portage.debug import so that "global portage" is
not necessary.
|
|
|
|
|
|
| |
This is a regression from commit
363a7478a100495d2e8597bc6c6d2fdac94339e0 but it's usually not
noticeable with Ctrl-C since SIGINT is propagated to nested processes.
|
| |
|
| |
|
|
|
|
|
|
|
| |
Though this case might never have been triggered, the logic was broken
for cases in which self.cancelled was false and a task was queued. In
this case we need to call back into the scheduler until the queued task
is started or we are cancelled, whichever comes first.
|
|
|
|
|
|
|
|
|
|
|
| |
This prevents the Scheduler from hanging if the client is killed before
we can send the reply, as reported by David James:
http://codereview.chromium.org/6713003
This commit depends on ebuild-ipc (the client) opening the other side
of this fifo before it sends its request, which has already been added
in commit eff879ff0ce7dcc1ce68d5f16de1ec73051f8c18.
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
This should prevent the following error due to returning raw bytes,
reported in forum thread #869281:
File "pym/_emerge/BlockerDB.py", line 72, in findInstalledBlockers
portage.writemsg("!!! %s/*DEPEND: %s\n" % \
(pkg_location, atoms), noiselevel=-1)
UnicodeDecodeError: 'ascii' codec can't decode byte 0xef in
position 23: ordinal not in range(128)
|
| |
|
|
|
|
|
| |
If we have running tasks, but we're not listening to these tasks,
we're going to loop forever. So throw an exception in this case.
|
|
|
|
|
| |
This should prevent "TypeError: an integer is required" raised from
waitpid when trying to cancel a prefetcher that never started.
|
| |
|
| |
|
|
|
|
|
|
| |
This is needed in order to ensure that exit listeners are called.
Subclasses call the base class cancel() method in order to inherit the
wait() call.
|
| |
|
|
|
|
|
|
| |
Previously, the slow approach was used whenever more than 10 files were
given as input. However, large numbers of files don't necessarily
mean the hashed approach is a bad choice, so try it in any case.
|
| |
|
|
|
|
|
|
| |
This allows --quiet and --quiet-build to be enabled via
EMERGE_DEFAULT_OPTS, and then temporarily disabled via the command-
line.
|
| |
|
|
|
|
|
| |
Thanks to David James <davidjames@google.com> for reporting this error:
AttributeError: 'EbuildPhase' object has no attribute 'merge'
|
|
|
|
|
|
|
|
|
|
|
| |
Before, some temporary directories would be created directly in
$PORTAGE_TMPDIR. Now, all are subdirectories of $PORTAGE_TMPDIR/portage
since it's common for people to assume that this is the case anyway.
With the default PORTAGE_TMPDIR setting of /var/tmp, this allows
/var/tmp to be mounted with the "noexec" option, as long as the
/var/tmp/portage subdirectory is a separate mount (people have already
tended to assume that they can do this, so we're making it a reality
in order to avoid any more bug reports). This will fix bug #346899.
|
|
|
|
|
|
|
|
|
| |
* PollScheduler and all subclasses now use the _terminated_tasks
variable to check whether or not _terminate_tasks() has been called,
and behave appropriately in that case.
* The _schedule_tasks() method now has documentation about the
relationship with _terminate_tasks() and _terminated_tasks.
|
|
|
|
|
| |
This prevents it from being called while the _schedule_tasks()
implementation is running, in order to avoid potential interference.
|
|
|
|
|
|
|
|
| |
If CTRL-C was received at certain times, it was possible for discarded
tasks to be erroneously left in Scheduler._running_tasks, which would
cause the main loop to run infinitely. Thanks to David James
<davidjames@google.com> for reporting this issue and helping to devise
a solution.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Previously, when AbstractPollTask receives a POLLERR or POLLNVAL event,
it would silently cancel the task. Now it will generate a message like
this:
!!! SpawnProcess received strange poll event: 8
The message is displayed via a new _log_poll_exception method, which
is overridden by AbstractEbuildProcess to log the message via elog.
This might help diagnose reported cases of SIGTERM signals killing
ebuild processes for no apparent reason:
http://code.google.com/p/chromium-os/issues/detail?id=12968
|
|
|
|
| |
The dblink constructor is complex and best avoided.
|
| |
|
|
|
|
| |
This will fix bug #357581.
|
| |
|
|
|
|
| |
This will fix bug #357297.
|
|
|
|
|
|
| |
This code is redunant now, since similar code has been added to
dblink.getcontents() in commit
e0b4048274b2cfc1617f2eff379cbe8435e13ed4.
|
|
|
|
|
| |
We can't necessarily assume that they are explicitly listed in
CONTENTS, and they are crucial for callers such as dblink.isowner().
|
| |
|
| |
|
|
|
|
| |
This will fix bug #357093.
|
| |
|
| |
|
|
|
|
|
| |
This reverts commit 43e0b3ea4289aab9b4258d29d06afac40abd6c01 and
renames the root_len variable to eroot_len (for clarity).
|
| |
|
|
|
|
|
| |
We can't necessarily assume that they are explicitly listed in
CONTENTS.
|
|
|
|
|
| |
We can't necessarily assume that they are explicitly listed in
CONTENTS.
|
| |
|
|
|
|
| |
This will fix bug #356555.
|
| |
|
|
|
|
|
|
| |
This check got removed for bug #262365, but now that EAPI 4 is released
we can add it back. Now it checks for ecompress/ecompressdir too (for
bug #218347).
|