Zac Medico [Fri, 10 Feb 2012 19:47:38 +0000 (11:47 -0800)]
EbuildMerge: add exit_hook to unlock build dir
This is needed since commit
7a6c34cc6bd6eb20a97e05347f87a0157f4ae58a in
order to ensure that the build dir is unlocked before exit listeners
are called. It fixes failures in catalyst stage 1 builds where two
instances of the same package, built sequentially for separate roots,
interfere with eachother's build dir lock.
Zac Medico [Fri, 10 Feb 2012 01:27:13 +0000 (17:27 -0800)]
Use IO_* constants where appropriate.
Zac Medico [Fri, 10 Feb 2012 00:41:14 +0000 (16:41 -0800)]
EventLoop: name poll constants like glib's
It's conceivable the constants could be implementation dependent, so
use glib's generic IO_* names rather than the POLL* names which are
associated specifically with python's select.poll object.
Zac Medico [Fri, 10 Feb 2012 00:20:31 +0000 (16:20 -0800)]
EventLoop: inherit PollConstants
Zac Medico [Thu, 9 Feb 2012 20:04:42 +0000 (12:04 -0800)]
Add global_event_loop() and GlibEventLoop.
This causes all PollScheduler instances within a given process to share
a singleton EventLoop instance, and also makes it possible to swap in
glib's main loop for all portage event loops in the main process.
Zac Medico [Thu, 9 Feb 2012 09:12:40 +0000 (01:12 -0800)]
AsynchronousTask: exit listeners reverse order
This should fix a Scheduler hang which is triggered when that merge
queue, a SequentialTaskQueue, doesn't decrement its merge count until
after other exit listeners have already run.
Zac Medico [Thu, 9 Feb 2012 08:21:24 +0000 (00:21 -0800)]
QueueScheduler: fix for IpcDaemonTestCase
Use a StopIteration exception to jump out of EventLoop.iterate()
before the poll loop.
Zac Medico [Thu, 9 Feb 2012 07:25:09 +0000 (23:25 -0800)]
EventLoop: fix inverted may_block logic
This caused emerge to consume 100% cpu.
Zac Medico [Thu, 9 Feb 2012 06:45:14 +0000 (22:45 -0800)]
Move EventLoop to a separate file.
Zac Medico [Thu, 9 Feb 2012 06:23:32 +0000 (22:23 -0800)]
Use AbstractPollTask._wait_loop() more.
Zac Medico [Thu, 9 Feb 2012 05:17:18 +0000 (21:17 -0800)]
MergeProcess: handle POLLHUP from elog pipe
Zac Medico [Thu, 9 Feb 2012 04:04:09 +0000 (20:04 -0800)]
PollScheduler: remove _poll_loop
We can use iteration() instead, and _poll_loop's exit behavior doesn't
seem practical to emulate with glib.MainLoop.
Zac Medico [Thu, 9 Feb 2012 03:51:24 +0000 (19:51 -0800)]
test_poll: use TaskScheduler
Zac Medico [Thu, 9 Feb 2012 02:10:38 +0000 (18:10 -0800)]
PollScheduler: remove EventLoop._schedule hook
PollScheduler and subclasses be should already be calling
self._schedule() when necessary.
Zac Medico [Thu, 9 Feb 2012 01:58:28 +0000 (17:58 -0800)]
Scheduler: tweak _add_prefetchers
Since commit
4620d6aba1c5c10344e311585516ee43819b703c, the first
prefetcher is started as soon as it's added to the task queue.
Zac Medico [Thu, 9 Feb 2012 01:49:56 +0000 (17:49 -0800)]
SequentialTaskQueue: use finally for _scheduling
Also, remove unecessary _dirty flag.
Zac Medico [Thu, 9 Feb 2012 00:46:02 +0000 (16:46 -0800)]
IpcDaemonTestCase: init start_time earlier
Since commit
4620d6aba1c5c10344e311585516ee43819b703c, the
SequentialTaskQueue.add() method starts the task immediately, so
initialize start_time before that happens.
Zac Medico [Thu, 9 Feb 2012 00:33:14 +0000 (16:33 -0800)]
SequentialTaskQueue: schedule automatically
This is needed to compensate for the removal of _idle_schedule in
commit
8c1fcf5a9ba9fa4d406a4d0cc284fe73a84f5a63, so that the
Scheduler's task queues operate without needing their schedule methods
called inside Scheduler._schedule_tasks().
Zac Medico [Wed, 8 Feb 2012 23:43:50 +0000 (15:43 -0800)]
Scheduler: remove _idle_schedule
This shouldn't be needed, since _schedule() should already be called
automatically when there are any relevant state changes.
Zac Medico [Wed, 8 Feb 2012 21:20:06 +0000 (13:20 -0800)]
EventLoop: use same method names as glib
Zac Medico [Wed, 8 Feb 2012 21:04:33 +0000 (13:04 -0800)]
PollScheduler: don't inherit EventLoop
Zac Medico [Wed, 8 Feb 2012 20:24:22 +0000 (12:24 -0800)]
PollScheduler: split out EventLoop base class
Zac Medico [Wed, 8 Feb 2012 16:38:27 +0000 (08:38 -0800)]
repoman: make SRC_URI.mirror fatal
Thanks to Christian Ruppert <idl0r@gentoo.org> for the suggestion.
Zac Medico [Wed, 8 Feb 2012 16:35:50 +0000 (08:35 -0800)]
repoman: normalize thirdpartymirrors trailing /
Zac Medico [Wed, 8 Feb 2012 05:16:51 +0000 (21:16 -0800)]
AbstractPollTask: use timeout_add
Zac Medico [Wed, 8 Feb 2012 05:03:32 +0000 (21:03 -0800)]
QueueScheduler: tweak timeout handling
Zac Medico [Wed, 8 Feb 2012 04:35:36 +0000 (20:35 -0800)]
PollScheduler: remove _schedule_wait
Zac Medico [Wed, 8 Feb 2012 04:24:47 +0000 (20:24 -0800)]
QueueScheduler: use timeout_add
Zac Medico [Wed, 8 Feb 2012 03:58:48 +0000 (19:58 -0800)]
AbstractPollTask: add _wait_loop method
Zac Medico [Wed, 8 Feb 2012 03:26:21 +0000 (19:26 -0800)]
Use PollScheduler iteration method.
Zac Medico [Wed, 8 Feb 2012 03:21:58 +0000 (19:21 -0800)]
PollScheduler: add iteration method
Zac Medico [Wed, 8 Feb 2012 02:00:52 +0000 (18:00 -0800)]
Scheduler: use idle_add, not _poll override
Zac Medico [Wed, 8 Feb 2012 01:59:12 +0000 (17:59 -0800)]
PollScheduler: implement idle_add
Zac Medico [Wed, 8 Feb 2012 00:36:32 +0000 (16:36 -0800)]
PollScheduler: glib.io_add_watch() compatibility
Zac Medico [Tue, 7 Feb 2012 19:40:55 +0000 (11:40 -0800)]
PollScheduler: timeouts regardless of IO events
Now PollScheduler will execute timeouts predictably, even when there
no IO events being generated. This allows the Scheduler's display
updates to be handled via timeout_add.
Zac Medico [Tue, 7 Feb 2012 02:58:51 +0000 (18:58 -0800)]
Use timeout_add to avoid recursion, bug #402335.
Zac Medico [Tue, 7 Feb 2012 02:52:32 +0000 (18:52 -0800)]
AsynchronousTask: merge _waiting from subclass
Zac Medico [Tue, 7 Feb 2012 19:11:50 +0000 (11:11 -0800)]
PollScheduler: add timeout_add like glib's
This will be useful as a substitute for recursion, in order to avoid
hitting the recursion limit for bug #402335.
Zac Medico [Mon, 6 Feb 2012 17:20:05 +0000 (09:20 -0800)]
spawn: assert that fork returns int type
Zac Medico [Sat, 4 Feb 2012 14:47:48 +0000 (06:47 -0800)]
Remove portage.const._ENABLE_XATTR.
Zac Medico [Sat, 4 Feb 2012 14:26:12 +0000 (06:26 -0800)]
repoman: support git commit --gpg-sign
In order to sign commits with git, you will need Git >=1.7.9 and your
key will have to be configured by `git config user.signingkey key_id`.
Also, the repository will need to have "sign-commits = true" in
metadata/layout.conf. This will fix bug #333687.
Daniel Hornung [Fri, 3 Feb 2012 22:33:35 +0000 (14:33 -0800)]
Honor repos.conf for overlay priority, bug 402099
Signed-off-by: Zac Medico <zmedico@gentoo.org>
Zac Medico [Wed, 1 Feb 2012 18:52:11 +0000 (10:52 -0800)]
install_qa_check: handle info dir rm failure
This will fix bug #400679.
Zac Medico [Wed, 1 Feb 2012 02:04:11 +0000 (18:04 -0800)]
LinkageMapELF: handle null bytes in NEEDED.ELF.2
This avoids an error from os.stat:
TypeError: must be encoded string without NULL bytes, not str
Arfrever Frehtes Taifersar Arahesis [Sat, 28 Jan 2012 02:20:25 +0000 (03:20 +0100)]
Use consistent indentation in output of `emerge -p --columns ${package}`
regardless of ROOT.
Arfrever Frehtes Taifersar Arahesis [Sat, 28 Jan 2012 01:50:11 +0000 (02:50 +0100)]
Delete needless parentheses.
Arfrever Frehtes Taifersar Arahesis [Sat, 28 Jan 2012 01:38:24 +0000 (02:38 +0100)]
Don't print ::${repository} for main repository in output of
`emerge -pv ${package}` by default. Add --verbose-main-repo-display
option, which enables printing ::${repository} for main repository.
Brian Harring [Fri, 27 Jan 2012 18:23:02 +0000 (10:23 -0800)]
Apply INSTALL_MASK prior to reading the tree
If this isn't done, collision-protect uses the old cached filelist,
leading to it complaining about things that INSTALL_MASK sorted already.
BUGS=chromium-os:25060
TEST=emerge sudo && emerge chromeos-base
Zac Medico [Wed, 25 Jan 2012 05:34:27 +0000 (21:34 -0800)]
phase-helpers.sh: set -x when emulating yes
This avoids displaying a bunch of garbage in debug mode.
Arfrever Frehtes Taifersar Arahesis [Mon, 23 Jan 2012 17:07:40 +0000 (18:07 +0100)]
Fix display of installed version for packages, which have multiple slots
installed. Follow-up to commit
8118be36842a2db2eb72538e21a3b343773b3365.
Arfrever Frehtes Taifersar Arahesis [Sun, 22 Jan 2012 03:53:59 +0000 (04:53 +0100)]
Make the second part of_emerge.resolver.output.Display.verbose_size()
conditional on self.quiet_repo_display instead of earlier returning
if self.quiet_repo_display is False. No functional changes.
Arfrever Frehtes Taifersar Arahesis [Sun, 22 Jan 2012 03:43:03 +0000 (04:43 +0100)]
Print [${old_version}::${old_repository}] in output of `emerge -pv ${package}`
when ${old_version} is the same as ${new_version}, but ${old_repository} is
different than ${new_repository}.
Zac Medico [Sat, 21 Jan 2012 21:32:59 +0000 (13:32 -0800)]
ecompress: don't rename dir symlink, bug #399595
Zac Medico [Sat, 21 Jan 2012 04:00:55 +0000 (20:00 -0800)]
document --quiet-repo-display
Arfrever Frehtes Taifersar Arahesis [Fri, 20 Jan 2012 23:40:52 +0000 (00:40 +0100)]
Print ::${repository} in output of `emerge -pv ${package}` by default.
Add --quiet-repo-display option, which enables previous, more quiet output.
Zac Medico [Fri, 20 Jan 2012 20:29:31 +0000 (12:29 -0800)]
Fix --changed-use interaction with bug 297549.
The automatic --binpkg-respect-use code (from bug #297549) was
inappropriately overriding --changed-use and triggering behavior like
--newuse, as reported here:
http://archives.gentoo.org/gentoo-dev/msg_6070ab87737d7e16a5cec2a72c9111fd.xml
Zac Medico [Fri, 20 Jan 2012 04:46:37 +0000 (20:46 -0800)]
man/emerge.1: reference --exclude from --newuse
Zac Medico [Tue, 17 Jan 2012 21:40:28 +0000 (13:40 -0800)]
fix comment garbage from last commit
Zac Medico [Tue, 17 Jan 2012 21:13:00 +0000 (13:13 -0800)]
xml/metadata.py: handle ExpatError
Zac Medico [Tue, 17 Jan 2012 20:39:00 +0000 (12:39 -0800)]
remove stray 'fi' from last commit
Zac Medico [Tue, 17 Jan 2012 15:30:11 +0000 (07:30 -0800)]
_eapi0_src_test: remove redundant FEATURES checks
Arfrever Frehtes Taifersar Arahesis [Sun, 15 Jan 2012 23:53:04 +0000 (00:53 +0100)]
Support repository dependencies in EAPI="4-python".
Arfrever Frehtes Taifersar Arahesis [Sun, 15 Jan 2012 21:44:17 +0000 (22:44 +0100)]
portageq metadata: Support repository dependencies.
Zac Medico [Sun, 15 Jan 2012 17:59:37 +0000 (09:59 -0800)]
create_world_atom: multi-repo portdbapi aux_get
This handles a KeyError raised from portdbapi.aux_get() when one of the
repositories has a corrupt ebuild.
Mike Frysinger [Fri, 13 Jan 2012 19:34:58 +0000 (14:34 -0500)]
add support for compressing debug sections to save space
Since binutils/gdb can compress the .debug* sections with zlib into
.zdebug*, we should be able to save quite a bit of space -- on my
system, I saw /usr/lib/debug/ go from ~20GB to ~7.5GB.
This requires binutils/gdb to be built with USE=zlib which is why
this defaults to off.
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
Mike Frysinger [Fri, 13 Jan 2012 19:29:06 +0000 (14:29 -0500)]
prepstrip: add writable workaround for everyone
The writable issue shows up when using `ebuild` as non-root users
in non-prefix setups. So always do it.
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
Zac Medico [Sat, 14 Jan 2012 17:10:10 +0000 (09:10 -0800)]
egencache: escape newline instead of lstrip
Zac Medico [Sat, 14 Jan 2012 17:01:38 +0000 (09:01 -0800)]
egencache: use textwrap.dedent
Zac Medico [Sat, 14 Jan 2012 15:29:08 +0000 (07:29 -0800)]
Apply INSTALL_MASK prior to collision-protect.
It may be useful to avoid collisions in some scenarios.
Zac Medico [Fri, 13 Jan 2012 16:21:31 +0000 (08:21 -0800)]
dyn_install: skip copy if possible
Also, fix EPREFIX breakage since commit
5d5364e982820fda56db5a40884e1c5f8e784b96.
Zac Medico [Fri, 13 Jan 2012 16:06:20 +0000 (08:06 -0800)]
dyn_package: portable cp args by Mike Frysinger
Zac Medico [Fri, 13 Jan 2012 14:14:12 +0000 (06:14 -0800)]
dyn_package: remove stale PROOT if necessary
Brian Harring [Fri, 13 Jan 2012 12:18:48 +0000 (04:18 -0800)]
Modify PKG_INSTALL_MASK to apply only to binpkg creation.
Primarily useful for certain cases where cros needs to suppress debug
symbols being included for specific pkgs, and/or suppressing binpkgs
from carrying sensitive configuration data, but we still wish for it
to be installed.
BUG=chromium-os:25060
TEST=set PKG_INSTALL_MASK, check ${D} vs what's in the binpkg
Change-Id: I0f81a9e394b7b0b64dbbcbe8d189876cb8421dfa
Zac Medico [Fri, 13 Jan 2012 02:46:24 +0000 (18:46 -0800)]
test_config: fix AttributeError: 'str'
Zac Medico [Thu, 12 Jan 2012 16:59:40 +0000 (08:59 -0800)]
depgraph: account for unevaluated_atom in cache
Zac Medico [Thu, 12 Jan 2012 16:32:53 +0000 (08:32 -0800)]
depgraph: unevaluated parent atom in debug output
Zac Medico [Thu, 12 Jan 2012 11:26:13 +0000 (03:26 -0800)]
Add --human-readable to rsync opts for bug 269410
Zac Medico [Thu, 12 Jan 2012 01:34:49 +0000 (17:34 -0800)]
read_corresponding_eapi_file: unicode, bug 398587
Zac Medico [Wed, 11 Jan 2012 16:02:26 +0000 (08:02 -0800)]
quickpkg: add leading ./ to names for bug 398543
Zac Medico [Wed, 11 Jan 2012 12:38:07 +0000 (04:38 -0800)]
DEVELOPING: add "Dependencies" section
Zac Medico [Wed, 11 Jan 2012 12:28:56 +0000 (04:28 -0800)]
DEVELOPING: add "Python Version" section
Zac Medico [Wed, 11 Jan 2012 12:18:20 +0000 (04:18 -0800)]
DEVELOPING: remove section about string module
The module no longer exists since Python 2.7, so by now it should be
obvious that it's obsolete.
Arfrever Frehtes Taifersar Arahesis [Wed, 11 Jan 2012 03:57:23 +0000 (04:57 +0100)]
portage.debug.trace_handler.__init__(): Fix compatibility with Python 3.
Zac Medico [Tue, 10 Jan 2012 18:41:29 +0000 (10:41 -0800)]
ExtendedAtomDict: fix for python-trace
Zac Medico [Tue, 10 Jan 2012 00:37:28 +0000 (16:37 -0800)]
env_update: ldsoconf_update flag not reliable
The ldsoconf_update flag was not a reliable indicator of whether
or not ldconfig needs to be called, since ld.so.conf can have lines
like "include ld.so.conf.d/*.conf" that pull in outside content which
may have changed without being detected.
Arfrever Frehtes Taifersar Arahesis [Sun, 8 Jan 2012 06:43:06 +0000 (07:43 +0100)]
Update documentation of EAPI="4-python".
Arfrever Frehtes Taifersar Arahesis [Sun, 8 Jan 2012 06:19:06 +0000 (07:19 +0100)]
Set REPOSITORY variable in ebuild environment in EAPI="4-python".
Arfrever Frehtes Taifersar Arahesis [Sun, 8 Jan 2012 06:06:33 +0000 (07:06 +0100)]
Fix location of a comment.
Arfrever Frehtes Taifersar Arahesis [Sun, 8 Jan 2012 03:06:31 +0000 (04:06 +0100)]
Set portage-1 as default profile format for repositories using EAPI="4-python".
Arfrever Frehtes Taifersar Arahesis [Sun, 8 Jan 2012 03:00:07 +0000 (04:00 +0100)]
Set eapi attribute on portage.repository.config.RepoConfig objects.
Zac Medico [Tue, 3 Jan 2012 21:59:25 +0000 (13:59 -0800)]
getlibpaths: regex for include
Michał Górny [Tue, 3 Jan 2012 21:28:47 +0000 (22:28 +0100)]
Support include directives in ld.so.conf.
Gavin Pryke [Mon, 2 Jan 2012 23:01:30 +0000 (15:01 -0800)]
ebuild.5: fix REQUIRED_USE sample for bug #397415
Zac Medico [Mon, 2 Jan 2012 07:48:07 +0000 (23:48 -0800)]
repoman: remove ebuild.allmasked check
This check it pretty useless, since there packages don't necessarily
need to have any stable keywords, and nobody relies on this check to
decide when to keyword something. Also, remove references to the
ebuild.nostable which doesn't seem to exist anymore.
Zac Medico [Mon, 2 Jan 2012 07:34:30 +0000 (23:34 -0800)]
repoman: discard xmatch caches from previous pkgs
This should help prevent repoman from consuming too much memory when
checking multiple packages or the whole tree.
Zac Medico [Wed, 28 Dec 2011 08:15:58 +0000 (00:15 -0800)]
RepoConfigLoader: don't mix duplicate repo config
RepoConfig.update() was being used to copy attributes from one instance
to another, possibly leading to inappropriate mixing of layout.conf
attributes from separate copies of the same repo. This is common with
repoman, for example, when temporarily overriding an rsync repo with
another copy of the same repo from CVS.
Zac Medico [Wed, 28 Dec 2011 07:13:41 +0000 (23:13 -0800)]
RepoConfig.update(): copy more attributes
This fixes a regression since commit
10246cd535f909dda8bd05de617c32d2b8a56b4a which caused layout.conf
settings such as thin-manifests to be ignored for repositories that
had repos.conf settings that did not specify the repository location.
In order to trigger this case, ResolverPlayground has been modified to
omit the location of each repository in the repos.conf file that it
generates.
Zac Medico [Sun, 25 Dec 2011 20:05:08 +0000 (12:05 -0800)]
repoman: later --ask prompt for bug #395995
Arfrever Frehtes Taifersar Arahesis [Sun, 25 Dec 2011 19:40:40 +0000 (20:40 +0100)]
portage.repository.config.RepoConfigLoader: Rename _add_overlays() to
_add_repositories().
Zac Medico [Sat, 24 Dec 2011 11:52:56 +0000 (03:52 -0800)]
Tweak CFLAGS scanelf loop.