Zac Medico [Sun, 27 Mar 2011 20:57:35 +0000 (13:57 -0700)]
unmerge: fix lock/UnsupportedAPIException logic
Zac Medico [Sun, 27 Mar 2011 20:55:11 +0000 (13:55 -0700)]
UnsupportedAPIException: handle unicode in EAPI
Normally EAPI doesn't contain unicode, but as in bug #359675, it can
contain practically anything if files in /var/db/pkg are corrupt.
Zac Medico [Sun, 27 Mar 2011 20:01:10 +0000 (13:01 -0700)]
emerge-webrsync: drop lzma support
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
Zac Medico [Sat, 26 Mar 2011 19:36:37 +0000 (12:36 -0700)]
Update header timestamps for modified files.
Zac Medico [Sat, 26 Mar 2011 17:10:24 +0000 (10:10 -0700)]
Scheduler: pkg_to_replace beware old-style virt
Zac Medico [Sat, 26 Mar 2011 16:12:38 +0000 (09:12 -0700)]
BlockerDB: add SLOT match in discardBlocker
Zac Medico [Sat, 26 Mar 2011 08:52:49 +0000 (01:52 -0700)]
MergeListItem: inherit _poll and _wait
Zac Medico [Sat, 26 Mar 2011 07:38:23 +0000 (00:38 -0700)]
unmerge: fix PORTAGE_BACKGROUND logic
Zac Medico [Sat, 26 Mar 2011 01:44:46 +0000 (18:44 -0700)]
config: blacklist PORTAGE_BACKGROUND* vars
David James [Fri, 25 Mar 2011 17:10:54 +0000 (10:10 -0700)]
env_update: remove sleep_for_mtime_granularity
Instead of sleeping, use os.utime to avoid mtime ambiguity.
Change-Id: I359ececca19b6be9f5997ac5c8fe6fea6ea49dd5
Review URL: http://codereview.chromium.org/
6676150
Zac Medico [Fri, 25 Mar 2011 16:52:40 +0000 (09:52 -0700)]
PollScheduler: tweak _unregister event cleanup
Zac Medico [Fri, 25 Mar 2011 15:57:10 +0000 (08:57 -0700)]
PollScheduler: handle missing log directory
This can be triggered by AbstractPollTask._log_poll_exception(), as
reported by Michael Haubenwallner <haubi@gentoo.org> for AIX.
David James [Fri, 25 Mar 2011 01:14:45 +0000 (18:14 -0700)]
Update Portage to sync BlockerDB at init.
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
Zac Medico [Thu, 24 Mar 2011 18:15:47 +0000 (11:15 -0700)]
emerge: support [ y | n ] for --ask
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.
David James [Thu, 24 Mar 2011 05:05:15 +0000 (22:05 -0700)]
Optimize ebuild.sh to cache preprocessing output.
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
Zac Medico [Thu, 24 Mar 2011 04:08:35 +0000 (21:08 -0700)]
get_dep_chain: handle InvalidDependString
Zac Medico [Mon, 21 Mar 2011 00:11:14 +0000 (17:11 -0700)]
chk_updated_cfg_files: fix whitespace in message
Thanks to Dennis Schridde in bug #359681.
Zac Medico [Sun, 20 Mar 2011 17:41:24 +0000 (10:41 -0700)]
portageq owners: list orphans via stderr
Zac Medico [Sun, 20 Mar 2011 15:57:42 +0000 (08:57 -0700)]
emerge_main: add "args" parameter (sys.argv[1:])
Also, fix local portage.debug import so that "global portage" is
not necessary.
Zac Medico [Fri, 18 Mar 2011 23:45:47 +0000 (16:45 -0700)]
TaskSequence: also call CompositeTask._cancel()
This is a regression from commit
363a7478a100495d2e8597bc6c6d2fdac94339e0 but it's usually not
noticeable with Ctrl-C since SIGINT is propagated to nested processes.
Zac Medico [Fri, 18 Mar 2011 21:44:05 +0000 (14:44 -0700)]
Update timestamps in headers of modified files.
Zac Medico [Fri, 18 Mar 2011 21:05:07 +0000 (14:05 -0700)]
CompositeTask: fix _wait for TASK_QUEUED
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.
Zac Medico [Thu, 17 Mar 2011 21:52:41 +0000 (14:52 -0700)]
ebuild-ipc: import errno
Zac Medico [Thu, 17 Mar 2011 21:39:53 +0000 (14:39 -0700)]
EbuildIpcDaemon: use non-blocking write
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.
Zac Medico [Thu, 17 Mar 2011 21:12:13 +0000 (14:12 -0700)]
ebuild-ipc: use non-blocking read
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).
Zac Medico [Thu, 17 Mar 2011 20:08:35 +0000 (13:08 -0700)]
AsynchronousLock: implement _cancel
Zac Medico [Thu, 17 Mar 2011 19:01:57 +0000 (12:01 -0700)]
make.conf.5: fix "direcory" spelling
Thanks to Francesco Turco in bug #359273.
Zac Medico [Thu, 17 Mar 2011 18:39:28 +0000 (11:39 -0700)]
dep_check: return errors as unicode
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)
Zac Medico [Thu, 17 Mar 2011 05:36:33 +0000 (22:36 -0700)]
AsynchronousTask: add _cancel template method
David James [Thu, 17 Mar 2011 04:54:37 +0000 (21:54 -0700)]
Update Scheduler to protect against infinite loop
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.
Zac Medico [Thu, 17 Mar 2011 04:50:36 +0000 (21:50 -0700)]
Scheduler: tweak prefetcher cancellation logic
This should prevent "TypeError: an integer is required" raised from
waitpid when trying to cancel a prefetcher that never started.
Zac Medico [Thu, 17 Mar 2011 03:44:55 +0000 (20:44 -0700)]
CompositeTask: handle unstarted terminated tasks
Zac Medico [Thu, 17 Mar 2011 01:42:59 +0000 (18:42 -0700)]
CompositeTask: fix assertion in _wait
Zac Medico [Thu, 17 Mar 2011 01:19:02 +0000 (18:19 -0700)]
AsynchronousTask: always call wait() if cancelled
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.
Zac Medico [Thu, 17 Mar 2011 00:36:36 +0000 (17:36 -0700)]
Scheduler: terminate _merge_wait_queue
Zac Medico [Wed, 16 Mar 2011 20:58:17 +0000 (13:58 -0700)]
iter_owners: try the hashed approach in any case
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.
Zac Medico [Tue, 15 Mar 2011 22:58:02 +0000 (15:58 -0700)]
slot_conflict: tweak message and fix grammar
Zac Medico [Mon, 14 Mar 2011 17:52:17 +0000 (10:52 -0700)]
emerge: support [ y | n ] for --quiet
This allows --quiet and --quiet-build to be enabled via
EMERGE_DEFAULT_OPTS, and then temporarily disabled via the command-
line.
Zac Medico [Mon, 14 Mar 2011 16:40:40 +0000 (09:40 -0700)]
Update timestamps in headers of modified files.
Zac Medico [Sat, 12 Mar 2011 18:35:23 +0000 (10:35 -0800)]
Scheduler: fix AttributeError in _terminate_tasks
Thanks to David James <davidjames@google.com> for reporting this error:
AttributeError: 'EbuildPhase' object has no attribute 'merge'
Zac Medico [Fri, 11 Mar 2011 21:02:31 +0000 (13:02 -0800)]
Make all temp dirs under $PORTAGE_TMPDIR/portage.
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.
Zac Medico [Fri, 11 Mar 2011 06:02:19 +0000 (22:02 -0800)]
PollScheduler: tweek termination logic
* 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.
Zac Medico [Fri, 11 Mar 2011 05:21:19 +0000 (21:21 -0800)]
PollScheduler: call _terminate_tasks in _schedule
This prevents it from being called while the _schedule_tasks()
implementation is running, in order to avoid potential interference.
Zac Medico [Fri, 11 Mar 2011 03:29:57 +0000 (19:29 -0800)]
Scheduler: avoid infinite loop after CTRL-C
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.
Zac Medico [Thu, 10 Mar 2011 22:49:47 +0000 (14:49 -0800)]
ebuild-ipc: use plain file read instead of array
Array.fromfile() seems to be more error prone. For example, see
bug 337465.
Zac Medico [Thu, 10 Mar 2011 05:46:17 +0000 (21:46 -0800)]
AbstractPollTask: log exceptional events
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
Zac Medico [Wed, 9 Mar 2011 03:28:21 +0000 (19:28 -0800)]
unmerge: use vardbapi._dblink() to simplify
The dblink constructor is complex and best avoided.
Arfrever Frehtes Taifersar Arahesis [Wed, 9 Mar 2011 02:57:23 +0000 (03:57 +0100)]
Bug #357009: Disallow uninstallation of currently used Python interpreter.
Zac Medico [Mon, 7 Mar 2011 17:34:02 +0000 (09:34 -0800)]
portdbapi: source ebuilds when eclass dir missing
This will fix bug #357581.
Zac Medico [Sun, 6 Mar 2011 00:41:00 +0000 (16:41 -0800)]
eclass_cache: remove deprecated methods
Zac Medico [Fri, 4 Mar 2011 16:39:53 +0000 (08:39 -0800)]
config: quote overlays containing spaces
This will fix bug #357297.
Zac Medico [Wed, 2 Mar 2011 19:46:57 +0000 (11:46 -0800)]
Remove redundant CONTENTS parent dir generation.
This code is redunant now, since similar code has been added to
dblink.getcontents() in commit
e0b4048274b2cfc1617f2eff379cbe8435e13ed4.
Zac Medico [Wed, 2 Mar 2011 18:51:41 +0000 (10:51 -0800)]
dblink.getcontents(): generate parent directories
We can't necessarily assume that they are explicitly listed in
CONTENTS, and they are crucial for callers such as dblink.isowner().
Zac Medico [Wed, 2 Mar 2011 17:59:11 +0000 (09:59 -0800)]
grablines: allow inline comments
Theo Chatzimichos [Wed, 2 Mar 2011 17:39:56 +0000 (09:39 -0800)]
grabdict: allow inline comments
Zac Medico [Wed, 2 Mar 2011 16:39:14 +0000 (08:39 -0800)]
depgraph: don't output \b to non-tty
This will fix bug #357093.
Zac Medico [Wed, 2 Mar 2011 04:52:28 +0000 (20:52 -0800)]
dodoc: update copyright date
Zac Medico [Wed, 2 Mar 2011 00:53:25 +0000 (16:53 -0800)]
ebuild(1): fix ebuild modification check
This has been broken since the setcpv call (triggering metadata
generation) was added before it in commit
0b39d24bb8270e5c89eaddfd1f5a4181cf9e31d3.
Zac Medico [Tue, 1 Mar 2011 21:52:04 +0000 (13:52 -0800)]
action_deselect: expand cat against world atoms
Zac Medico [Tue, 1 Mar 2011 21:20:59 +0000 (13:20 -0800)]
unmerge: log pre/postrm FAILED messages
Zac Medico [Tue, 1 Mar 2011 21:04:41 +0000 (13:04 -0800)]
owners_cache: fix EPREFIX miscalculation
This reverts commit
43e0b3ea4289aab9b4258d29d06afac40abd6c01 and
renames the root_len variable to eroot_len (for clarity).
Zac Medico [Tue, 1 Mar 2011 20:42:56 +0000 (12:42 -0800)]
owners_cache: add parent dirs deeper than EPREFIX
Zac Medico [Tue, 1 Mar 2011 20:07:53 +0000 (12:07 -0800)]
unmerge: implicitly unmerge parent directories
We can't necessarily assume that they are explicitly listed in
CONTENTS.
Zac Medico [Tue, 1 Mar 2011 18:06:01 +0000 (10:06 -0800)]
owners_cache: implicitly add parent directories
We can't necessarily assume that they are explicitly listed in
CONTENTS.
Zac Medico [Mon, 28 Feb 2011 20:37:22 +0000 (12:37 -0800)]
repoman: variable.usedwithhelpers ignore quoted
Zac Medico [Mon, 28 Feb 2011 18:57:53 +0000 (10:57 -0800)]
ebuild(1): apply package.env earlier
This makes it possible to override PORTAGE_TMPDIR.
Zac Medico [Mon, 28 Feb 2011 17:58:27 +0000 (09:58 -0800)]
depgraph: case insensitive search for unsatisfied
This will fix bug #356555.
Zac Medico [Mon, 28 Feb 2011 05:27:02 +0000 (21:27 -0800)]
repoman: warn about calls to prepall and preplib
Arfrever Frehtes Taifersar Arahesis [Sat, 26 Feb 2011 20:15:50 +0000 (21:15 +0100)]
Run tests with Python 3.3.
Zac Medico [Sat, 26 Feb 2011 00:19:01 +0000 (16:19 -0800)]
repoman: add back portage.internal check
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).
Zac Medico [Fri, 25 Feb 2011 20:32:21 +0000 (12:32 -0800)]
doins: fix dodoc directory error handling
Zac Medico [Fri, 25 Feb 2011 20:11:34 +0000 (12:11 -0800)]
doins: avoid die when called as dodoc with no arg
Zac Medico [Fri, 25 Feb 2011 19:50:52 +0000 (11:50 -0800)]
dodoc: call doins, to reuse recursion code
This will fix broken recursion logic for bug #356461.
Zac Medico [Fri, 25 Feb 2011 18:18:38 +0000 (10:18 -0800)]
dodoc: quote ${0}
Ulrich Mueller [Fri, 25 Feb 2011 07:43:17 +0000 (08:43 +0100)]
dodoc: Honour exit status of install, bug 356389.
Zac Medico [Fri, 25 Feb 2011 06:29:31 +0000 (22:29 -0800)]
action_sync: handle IPv6 [ip] in SYNC some more
This will fix bug #356375 some more.
Zac Medico [Fri, 25 Feb 2011 05:58:44 +0000 (21:58 -0800)]
action_sync: handle IPv6 [ip] in SYNC
This will fix bug #356375.
Zac Medico [Tue, 22 Feb 2011 17:31:50 +0000 (09:31 -0800)]
emerge: mention revdep-rebuild in depclean help
Zac Medico [Tue, 22 Feb 2011 03:04:10 +0000 (19:04 -0800)]
show_depclean_suggestion: use ewarn, not einfo
Zac Medico [Tue, 22 Feb 2011 02:59:24 +0000 (18:59 -0800)]
chk_updated_cfg_files: don't display ._cfg0000_
Zac Medico [Tue, 22 Feb 2011 02:50:33 +0000 (18:50 -0800)]
Update date headers in modified files.
Zac Medico [Tue, 22 Feb 2011 02:38:45 +0000 (18:38 -0800)]
chk_updated_cfg_files: fix plurality of message
This will fix bug #355803.
Zac Medico [Tue, 22 Feb 2011 02:19:45 +0000 (18:19 -0800)]
emerge.1: fix arg description more for bug 354137
Zac Medico [Tue, 22 Feb 2011 02:07:07 +0000 (18:07 -0800)]
post_emerge: suggest depclean after world update
This is part of bug #354787.
Zac Medico [Tue, 22 Feb 2011 00:35:14 +0000 (16:35 -0800)]
post_emerge: pass in more info
This makes it possible to do things like give special suggestions after
world updates.
Zac Medico [Mon, 21 Feb 2011 16:17:09 +0000 (08:17 -0800)]
ebuild.sh: remove unused PWORKDIR variable
Zac Medico [Sun, 20 Feb 2011 09:42:14 +0000 (01:42 -0800)]
SubProcess: notify exit listeners in _poll
Zac Medico [Sun, 20 Feb 2011 09:40:37 +0000 (01:40 -0800)]
Scheduler: ensure _prefetchers is cleared
Zac Medico [Sun, 20 Feb 2011 00:00:16 +0000 (16:00 -0800)]
Update date headers in modified files.
Zac Medico [Sat, 19 Feb 2011 23:49:13 +0000 (15:49 -0800)]
repoman: variable.usedwithhelpers tighten regex
This will fix bug #355621.
Zac Medico [Sat, 19 Feb 2011 23:27:32 +0000 (15:27 -0800)]
_eapi4_src_install: handle empty DOCS like PMS
This will fix bug #355635.
Zac Medico [Sat, 19 Feb 2011 22:53:45 +0000 (14:53 -0800)]
check_required_use: improve missing IUSE error
This will fix bug #355629.
Ulrich Mueller [Fri, 18 Feb 2011 23:42:36 +0000 (00:42 +0100)]
docompress, prepcompress: Add missing quotes.
Zac Medico [Fri, 18 Feb 2011 16:44:31 +0000 (08:44 -0800)]
emerge: fix --sync cvs error message
Zac Medico [Fri, 18 Feb 2011 16:16:31 +0000 (08:16 -0800)]
emerge: warn to stderr if post_* hooks fail
Gokdeniz Karadag [Fri, 18 Feb 2011 15:57:25 +0000 (07:57 -0800)]
emerge: support post_emerge hook like post_sync
This will fix bug #355447.
Zac Medico [Fri, 18 Feb 2011 15:37:25 +0000 (07:37 -0800)]
egencache: fix cmp_func for python3
Zac Medico [Fri, 18 Feb 2011 15:15:15 +0000 (07:15 -0800)]
unmerge: don't show null/ cat in unmatched atoms
This will fix bug #269534.
Zac Medico [Fri, 18 Feb 2011 12:05:16 +0000 (04:05 -0800)]
BinpkgVerifier: disable color in background mode
Zac Medico [Fri, 18 Feb 2011 08:32:27 +0000 (00:32 -0800)]
mail: handle unicode in subject more for python3