Ryan Hill [Tue, 26 Apr 2011 21:16:20 +0000 (14:16 -0700)]
Bug #364467 - handle gcc-4.6-style QA warnings
Arfrever Frehtes Taifersar Arahesis [Tue, 26 Apr 2011 20:50:03 +0000 (22:50 +0200)]
Fix a typo.
Zac Medico [Tue, 26 Apr 2011 20:19:34 +0000 (13:19 -0700)]
emerge --info: support new-style virtuals
This will fix bug #364673.
Zac Medico [Sat, 23 Apr 2011 15:41:07 +0000 (08:41 -0700)]
ebuild(1): fix env FEATURES overrides bug #364035
Tomas Chvatal [Wed, 20 Apr 2011 23:56:06 +0000 (16:56 -0700)]
repoman: deprecate more eclasses
Zac Medico [Thu, 14 Apr 2011 01:54:30 +0000 (18:54 -0700)]
repoman: cleanup gpgsign
Zac Medico [Wed, 13 Apr 2011 07:59:38 +0000 (00:59 -0700)]
Update timestamps in headers of modified files.
Zac Medico [Tue, 12 Apr 2011 01:09:20 +0000 (18:09 -0700)]
doins: tweak $DISTDIR symlink handling
Only match stuff inside $PORTAGE_ACTUAL_DISTDIR/ so that we don't
stray from PMS.
Zac Medico [Mon, 11 Apr 2011 23:23:54 +0000 (16:23 -0700)]
doins: dereference abs symlinks to files
Our fake $DISTDIR contains symlinks that should not be reproduced
inside $D. In order to ensure that things like dodoc
"$DISTDIR"/foo.pdf work as expected, we dereference symlinked files
that are referenced by absolute paths. Thanks to James Cloos
<cloos@jhcloos.com> for reporting this issue which he observed with
the sci-mathematics/minisat ebuild.
Zac Medico [Mon, 11 Apr 2011 23:00:02 +0000 (16:00 -0700)]
extract_affecting_use: test bug #363073
Zac Medico [Mon, 11 Apr 2011 22:30:13 +0000 (15:30 -0700)]
extract_affecting_use: allow parens in atoms
This fixes bug #363073 in which an InvalidDependString exception is
erroneously triggered by atoms containing EAPI 4 USE dependency
defaults. This case is very similar to bug #354003 which was fixed in
commit
8735222b77e66850213e2aa6a7ea48e744ba0d4f.
David James [Mon, 11 Apr 2011 19:00:39 +0000 (12:00 -0700)]
Remove unnecessary sync in Scheduler.py.
If we are passed a fakevartree object, it should already be sync'd, so
there is no need to sync it again here. This sync is only needed when
we create a new FakeVartree, so I moved the sync to the right place to
fix this.
BUG=chromium-os:14035
TEST=Build a bunch of packages with this patch.
Change-Id: I89d79cf946f4c0c27ad585ad7c88a41985260342
Review URL: http://codereview.chromium.org/
6813084
Zac Medico [Sun, 10 Apr 2011 20:05:45 +0000 (13:05 -0700)]
Fix a typo in a comment.
Zac Medico [Sun, 10 Apr 2011 20:03:11 +0000 (13:03 -0700)]
Scheduler: add more info in docstring comments
This clarifies the purposes of _system_merge_started and _choose_pkg.
David James [Thu, 7 Apr 2011 23:49:58 +0000 (16:49 -0700)]
Add force-mirror FEATURE.
force-mirror: Only fetch files from configured mirrors, ignoring
SRC_URI, except when mirror is in the ebuild(5) RESTRICT variable.
BUG=chromium-os:13221
TEST=Test that ebuilds now fail with FEATURES=force-mirror if files are
not in the configured mirror.
Change-Id: I8484d5af8dff97b431398030b33c024ff1295ba0
Review URL: http://codereview.chromium.org/
6677171
Zac Medico [Mon, 4 Apr 2011 22:03:01 +0000 (15:03 -0700)]
filter PORTAGE_GPG_SIGNING_COMMAND for ebuild env
Arfrever Frehtes Taifersar Arahesis [Sun, 3 Apr 2011 17:28:58 +0000 (19:28 +0200)]
Support PORTAGE_GPG_SIGNING_COMMAND variable.
Zac Medico [Sun, 3 Apr 2011 15:54:10 +0000 (08:54 -0700)]
repoman: fix profiles.desc overlay path
Thanks to Alexey Shvetsov <alexxy@gentoo.org> for reporting this issue
and testing the fix.
Zac Medico [Thu, 31 Mar 2011 15:41:52 +0000 (08:41 -0700)]
Display: fix fetch restrict msg for RO_DISTDIRS
This will fix bug #361463.
Arfrever Frehtes Taifersar Arahesis [Wed, 30 Mar 2011 22:19:54 +0000 (00:19 +0200)]
Minor improvements in gpgsign().
repoman_settings["PORTAGE_GPG_DIR"] is always set.
Arfrever Frehtes Taifersar Arahesis [Wed, 30 Mar 2011 20:32:45 +0000 (22:32 +0200)]
Simplify calculation of repoman_settings["PORTAGE_GPG_DIR"] in gpgsign().
os.path.expanduser() works even when HOME environment variable is not set.
Zac Medico [Wed, 30 Mar 2011 18:36:35 +0000 (11:36 -0700)]
chk_updated_info_files: handle --quiet
This will fix bug #361257.
Arfrever Frehtes Taifersar Arahesis [Wed, 30 Mar 2011 15:03:22 +0000 (17:03 +0200)]
Use os.path.expanduser() to simplify code.
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.