| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
This will fix bug #361257.
|
| |
|
| |
|
|
|
|
| |
Avoid name collision with built-in 'buffer' function.
|
| |
|
|
|
|
|
| |
Normally EAPI doesn't contain unicode, but as in bug #359675, it can
contain practically anything if files in /var/db/pkg are corrupt.
|
|
|
|
|
|
|
|
| |
The lzma snapshots have been replaced by xz snapshots, as discussed in
the "RFC: Remove .lzma in favor of .xz portage snapshots" thread on the
gentoo-dev ml:
http://archives.gentoo.org/gentoo-dev/msg_7de1b57ce531fdf33d33b5b070006436.xml
|
|
|
|
|
|
|
| |
It's important that this metadata access happens in the parent process,
since closing of file descriptors in the subprocess can prevent access
to open database connections such as that used by the sqlite metadata
cache module.
|
|
|
|
|
| |
Metadata cache queries may not work for some databases from within a
subprocess. For example, sqlite is known to misbehave.
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
| |
This code goes inside _start since it needs to execute in the parent
process.
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
| |
Instead of sleeping, use os.utime to avoid mtime ambiguity.
Change-Id: I359ececca19b6be9f5997ac5c8fe6fea6ea49dd5
Review URL: http://codereview.chromium.org/6676150
|
| |
|
|
|
|
|
| |
This can be triggered by AbstractPollTask._log_poll_exception(), as
reported by Michael Haubenwallner <haubi@gentoo.org> for AIX.
|
| |
|
| |
|
|
|
|
|
| |
Since all the merge code runs inside MergeProcess now, there's no
reason to yield to the scheduler.
|
|
|
|
|
|
|
| |
The unmerge output has been mixed together with the merge output since
commit 7535cabdf2fab76fc55df83643157613dfd66be9 because
dblink._scheduler was set to None. Now it's fixed to produce separate
logs like it used to.
|
|
|
|
|
|
|
|
|
|
| |
File "pym/portage/dbapi/vartree.py", line 4043, in merge
merge_task.start()
File "pym/_emerge/AsynchronousTask.py", line 23, in start
self._start()
File "pym/_emerge/SpawnProcess.py", line 118, in _start
self._reg_id = self.scheduler.register(files.process.fileno(),
AttributeError: 'NoneType' object has no attribute 'register'
|
| |
|
|
|
|
|
|
|
|
| |
In this subprocess we don't want PORTAGE_BACKGROUND to suppress
stdout/stderr output since they are pipes. We also don't want to open
PORTAGE_LOG_FILE, since it will already be opened by the parent
process, so we set the PORTAGE_BACKGROUND="subprocess" value for use
in conditional logging code involving PORTAGE_LOG_FILE.
|
|
|
|
|
|
| |
This integrates the fix from commit
8209aeab647b1ab80a64d5931069b3533776ef75 with the asynchronous merge
changes from commit 7535cabdf2fab76fc55df83643157613dfd66be9.
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Right now ebuild.sh runs preprocessing steps multiple times during the
same build. It processes the same environment and produces the same
output every time. This slows down the build unnecessarily.
This optimization cuts build time for 50 binary packages with 16 jobs
from 3m22 to 2m33 (33%).
Change-Id: I72ac84cce2eb60d17736cc5f5343d4a858ec86f4
Review URL: http://codereview.chromium.org/6733008
|
| |
|
|
|
|
| |
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 makes it possible for the daemon to send a reply without blocking,
thereby improving performance and also making it possible for the
daemon to do a non-blocking write without a race condition.
This reverts part of commit 81fc303212b8379219cf5d463c8717359b972dba,
which probably didn't help portability anyway. Now, ebuild-ipc is using
non-blocking read with os.read and EAGAIN handling, just like
EbuildIpcDaemon since commit 7e5b81da12dd7bd59f6620840dc0d824e3f4d69a
(known compatible with FreeBSD).
|
| |
|