Zac Medico [Wed, 17 Oct 2012 03:36:49 +0000 (20:36 -0700)]
Scheduler: tweak job_delay calc for bug #438650
* Max delay is reduced to 5 seconds (was 10).
* Calculated delay is now proportional to current/desired load ratio.
* When a delay is triggered, an event loop timeout is used to ensure
that scheduling occurs as soon as the delay expires (rather than
waiting for the _loadavg_latency timeout to expire).
Zac Medico [Wed, 17 Oct 2012 02:01:35 +0000 (19:01 -0700)]
ManifestTask: improve gpg key parsing
This fixes it to correctly parse longer key IDs, which do not fit on
the first line of gpg output. Without this fix, failure to parse the
key results in manifest being re-signed even though they already have
a signature with the correct key.
Zac Medico [Tue, 16 Oct 2012 23:31:48 +0000 (16:31 -0700)]
Move portage.dep._internal_warnings to portage.
Zac Medico [Tue, 16 Oct 2012 23:15:46 +0000 (16:15 -0700)]
emerge: optimize --moo, remove deprecated moo
The --moo action is fast like --help now. The "moo" argument has been
deprecated since bug #389609, and is now removed.
Zac Medico [Tue, 16 Oct 2012 22:45:17 +0000 (15:45 -0700)]
ManifestTask: remove unneeded _proc attribute
It's enough to reference the PopenProcess instance as
self._current_task while it's alive (CompositeTask._cancel() can kill
it via this).
Zac Medico [Tue, 16 Oct 2012 22:35:03 +0000 (15:35 -0700)]
repoman: allow 40 digit gpg key
Zac Medico [Tue, 16 Oct 2012 22:16:22 +0000 (15:16 -0700)]
emerge_main: use parse_opts for --help
Zac Medico [Tue, 16 Oct 2012 21:46:44 +0000 (14:46 -0700)]
repoman: validate PORTAGE_GPG_KEY
Zac Medico [Tue, 16 Oct 2012 19:41:00 +0000 (12:41 -0700)]
Test PopenProcess.
Zac Medico [Tue, 16 Oct 2012 19:27:46 +0000 (12:27 -0700)]
CompositeTask._start_task: propagate scheduler
Zac Medico [Tue, 16 Oct 2012 18:56:13 +0000 (11:56 -0700)]
Handle missing mkfifo for Jython.
Zac Medico [Tue, 16 Oct 2012 17:31:34 +0000 (10:31 -0700)]
PopenProcess: integrate PipeReader support
Zac Medico [Tue, 16 Oct 2012 15:55:22 +0000 (08:55 -0700)]
run_action: gc locals of calling func
Zac Medico [Tue, 16 Oct 2012 08:33:54 +0000 (01:33 -0700)]
emerge_main: split out run_action
Also move post_emerge and chk_updated_cfg_files to separate files.
Zac Medico [Tue, 16 Oct 2012 06:51:35 +0000 (23:51 -0700)]
Add missing PopenProcess class from last commit.
Zac Medico [Tue, 16 Oct 2012 06:46:41 +0000 (23:46 -0700)]
egencache --update-manifests: re-sign when needed
If the Manifest is signed with a different key from the one specified
by --gpg-key or PORTAGE_GPG_KEY, strip the existing signature and
re-sign the Manifest.
Arfrever Frehtes Taifersar Arahesis [Mon, 15 Oct 2012 17:16:22 +0000 (19:16 +0200)]
Add Display._append_repository() to avoid duplication of some code.
Zac Medico [Mon, 15 Oct 2012 15:42:04 +0000 (08:42 -0700)]
emerge_main: move imports to top
Zac Medico [Mon, 15 Oct 2012 15:02:20 +0000 (08:02 -0700)]
emerge_main: disable color earlier
Since commit
2ca487f929962154488999a125a7387eeb44be88, --help has not
respected --color=n and related options, since it's been optimized to
bypass options and config parsing. Now it's fixed to show without
colors in this optimized case (help with colors may be shown in some
other cases, like when emerge is called with zero arguments).
Arfrever Frehtes Taifersar Arahesis [Mon, 15 Oct 2012 04:04:58 +0000 (06:04 +0200)]
Display slots and subslots in output of `emerge -pv ${package}`.
Zac Medico [Mon, 15 Oct 2012 02:59:37 +0000 (19:59 -0700)]
MergeListItem: don't color "binary"
Zac Medico [Mon, 15 Oct 2012 00:11:23 +0000 (17:11 -0700)]
repoman: fix commit_footer NameError
Zac Medico [Sun, 14 Oct 2012 23:49:59 +0000 (16:49 -0700)]
emerge: lazy imports, optimize --help
Zac Medico [Sun, 14 Oct 2012 22:57:12 +0000 (15:57 -0700)]
chk_updated_info_files: move to separate file
Zac Medico [Sun, 14 Oct 2012 22:36:37 +0000 (15:36 -0700)]
display_preserved_libs: move to separate file
Zac Medico [Sun, 14 Oct 2012 21:59:33 +0000 (14:59 -0700)]
emerge: handle KeyboardInterrupt, not SIGINT
We handle KeyboardInterrupt instead of installing a SIGINT handler,
since exiting from signal handlers intermittently causes python to
ignore the SystemExit exception with a message like this:
Exception SystemExit: 130 in <function remove at 0x7fd2146c1320> ignored
Zac Medico [Sun, 14 Oct 2012 21:38:16 +0000 (14:38 -0700)]
emerge.1: broaden description of "r" merge attr
This attribute actually applies to anything matched by the internal
@__auto_* sets, which can mean a number of different things (see
depgraph._gen_reinstall_sets).
Zac Medico [Sun, 14 Oct 2012 20:31:46 +0000 (13:31 -0700)]
repoman: initial caps for git commit msg footers
Zac Medico [Sun, 14 Oct 2012 20:16:21 +0000 (13:16 -0700)]
repoman: special git commit footer, bug #438364
Arfrever Frehtes Taifersar Arahesis [Sun, 14 Oct 2012 20:00:19 +0000 (22:00 +0200)]
Invert order of arguments in Display._set_non_root_columns() and
Display._set_root_columns() for consistency with Display._set_no_columns().
Arfrever Frehtes Taifersar Arahesis [Sun, 14 Oct 2012 19:53:40 +0000 (21:53 +0200)]
Display.set_pkg_info(): Set cp and ver attributes.
Zac Medico [Sun, 14 Oct 2012 19:48:35 +0000 (12:48 -0700)]
repoman: identical Manifest commit message
Include the signed/unsigned part it the initial commit message,
so that it's identical to the Manifest commit message. See
bug #437546, comment #3.
Zac Medico [Sun, 14 Oct 2012 19:25:40 +0000 (12:25 -0700)]
Revert "repoman: identical Manifest commit message"
This reverts commit
b91eefc82e995ba3463d212f95fa9228c5cf53ae.
See bug #437546, comment #3.
Zac Medico [Sun, 14 Oct 2012 19:20:56 +0000 (12:20 -0700)]
match_from_list: rm redundant catpkgsplit(mycpv)
Zac Medico [Sun, 14 Oct 2012 02:53:09 +0000 (19:53 -0700)]
simplify Display.convert_myoldbest().
Zac Medico [Sun, 14 Oct 2012 02:44:18 +0000 (19:44 -0700)]
Simplify Display.get_ver_str().
Arfrever Frehtes Taifersar Arahesis [Sun, 14 Oct 2012 01:33:38 +0000 (03:33 +0200)]
Bug #434970: Disable some warnings during `emerge --sync`.
Arfrever Frehtes Taifersar Arahesis [Sat, 13 Oct 2012 23:57:06 +0000 (01:57 +0200)]
EAPI="5-progress": Add master_repositories(), repository_path(),
available_eclasses(), eclass_path() and license_path() functions.
Zac Medico [Sat, 13 Oct 2012 20:06:05 +0000 (13:06 -0700)]
MergeListItem: color binary display, bug #438254
Zac Medico [Thu, 11 Oct 2012 03:07:01 +0000 (20:07 -0700)]
Add QA_MULTILIB_PATHS for bug #437910.
Zac Medico [Wed, 10 Oct 2012 21:12:40 +0000 (14:12 -0700)]
PollScheduler: fix _schedule() to return True
This fixes a regression like bug #403895, introduced in commit
b696337bf20fdc539ce7721df7a4b42b35999705, since functions have to
return True in order to be continuously scheduled.
Zac Medico [Wed, 10 Oct 2012 19:12:18 +0000 (12:12 -0700)]
Atom: support *_beta* wildcard, bug #437872
Zac Medico [Tue, 9 Oct 2012 02:01:45 +0000 (19:01 -0700)]
_parse_uri_map: preserve order of URIs
Returns a dict of tuples instead of a dict of sets.
Zac Medico [Mon, 8 Oct 2012 22:07:34 +0000 (15:07 -0700)]
fetch: preserve SRC_URI order for primaryuri
Zac Medico [Mon, 8 Oct 2012 20:44:22 +0000 (13:44 -0700)]
PollScheduler: disable default _loadavg_latency
Move the 30 second default to the Scheduler class, since that's the
only place that it's currently needed (all other schedulers have
relatively short-running jobs).
Zac Medico [Mon, 8 Oct 2012 20:30:08 +0000 (13:30 -0700)]
emerge: handle --load-average with no arg
With no argument, removes a previous load limit (same behavior as
make).
Tim Boudreau [Mon, 8 Oct 2012 16:25:36 +0000 (09:25 -0700)]
dyn_spec: s/Copyright/License/, bug #437588
Fixes 'Unknown tag' error with rpm 4.10.0.
Zac Medico [Mon, 8 Oct 2012 16:07:08 +0000 (09:07 -0700)]
Revert "test_ipc_daemon: handle fork/finally race"
This reverts commit
56fbe3fe63adf4e7c5b47400182cd857d145d5b0.
The race is now handled internally by spawn and ForkProcess.
Zac Medico [Mon, 8 Oct 2012 16:03:24 +0000 (09:03 -0700)]
ForkProcess: set _exit finally block before fork
This is the most reliable way to handle the race condition.
Zac Medico [Mon, 8 Oct 2012 15:43:21 +0000 (08:43 -0700)]
spawn: setup _exit finally block before fork
This is the most reliable way to handle the race condition.
Zac Medico [Mon, 8 Oct 2012 15:08:51 +0000 (08:08 -0700)]
test_ipc_daemon: handle fork/finally race
Zac Medico [Mon, 8 Oct 2012 14:54:14 +0000 (07:54 -0700)]
spawn: use finally block for failure os._exit()
Also, use writemsg for unicode safety.
Zac Medico [Mon, 8 Oct 2012 14:34:09 +0000 (07:34 -0700)]
repoman: check EXTRA_ECONF/EMAKE, bug #437348
Zac Medico [Mon, 8 Oct 2012 14:17:20 +0000 (07:17 -0700)]
repoman: simplify EbuildAssignment check
The line continuation code is no longer needed since commit
a1578c654f26cab07309bc9cbddd3c95c0c205b5, because wrapped lines are
automatically joined before they are passed to the check. Also, inherit
ignore_comment = True from LineCheck.
Zac Medico [Mon, 8 Oct 2012 13:48:55 +0000 (06:48 -0700)]
ForkProcess: increase scope of try/finally/_exit
This minimizes the probability of triggering irrelevant finally blocks
from earlier in the call stack (bug #345289).
Zac Medico [Mon, 8 Oct 2012 02:30:51 +0000 (19:30 -0700)]
PollScheduler: rename sched_iface to _sched_iface
It isn't used externally anymore, since SchedulerInterface is used
directly in those places now. Many of the self.sched_iface references
updated here, it's more appropriate to use self._event_loop.
Zac Medico [Sun, 7 Oct 2012 22:02:35 +0000 (15:02 -0700)]
Show slot + repo for colliding packages.
See bug #437516 for example.
Zac Medico [Sun, 7 Oct 2012 21:31:39 +0000 (14:31 -0700)]
repoman: identical Manifest commit message
This will fix bug #437546.
Zac Medico [Sun, 7 Oct 2012 19:12:52 +0000 (12:12 -0700)]
Substitute SchedulerInterface for PollScheduler.
SchedulerInterface suffices for all of these cases.
EventLoop(main=False) is used for thread safety where
API consumers may be using threads.
Zac Medico [Sun, 7 Oct 2012 18:17:35 +0000 (11:17 -0700)]
PollScheduler: split out SchedulerInterface
Zac Medico [Sun, 7 Oct 2012 16:59:41 +0000 (09:59 -0700)]
action_uninstall: use PollScheduler not Scheduler
The PollScheduler class suffices here, if we just add a small amount of
logic to calculate the _background attribute from the emerge opts.
Arfrever Frehtes Taifersar Arahesis [Sun, 7 Oct 2012 05:32:28 +0000 (07:32 +0200)]
best_version() and has_version(): Improve die() messages.
- Print different die() message for invalid atoms.
- Mention ebuild-ipc instead of portageq in other die() messages when
ebuild-ipc is actually used.
Arfrever Frehtes Taifersar Arahesis [Sun, 7 Oct 2012 04:51:12 +0000 (06:51 +0200)]
Run tests with Python 3.4.
Zac Medico [Sat, 6 Oct 2012 22:00:53 +0000 (15:00 -0700)]
PollScheduler: move _main_loop to Scheduler
Zac Medico [Sat, 6 Oct 2012 18:05:37 +0000 (11:05 -0700)]
MetadataRegen: inherit AsyncScheduler
Zac Medico [Sat, 6 Oct 2012 17:26:26 +0000 (10:26 -0700)]
ManifestScheduler: tweak _task_exit output order
This ensures that errors are logged before new jobs are scheduled.
Zac Medico [Sat, 6 Oct 2012 05:20:07 +0000 (22:20 -0700)]
Substitute EventLoop for PollScheduler.
EventLoop suffices for all of these cases. EventLoop(main=False) is
used for thread safety where API consumers may be using threads.
Zac Medico [Sat, 6 Oct 2012 04:31:56 +0000 (21:31 -0700)]
PollScheduler: remove register/unregister methods
These methods were aliases for the EventLoop io_add_watch and
source_remove methods. Migrating to the EventLoop method names allows
an EventLoop instance to substitute for a PollScheduler inside
subclasses of AbstractPollTask.
Zac Medico [Sat, 6 Oct 2012 04:00:19 +0000 (21:00 -0700)]
PollScheduler: remove self._jobs
This is variable is only needed by the Scheduler class.
Zac Medico [Sat, 6 Oct 2012 01:54:16 +0000 (18:54 -0700)]
AsyncScheduler: remove useless __slots__
It's not allowed for AsyncScheduler to inherit from two classes that
define __slots__, so it useless to define __slots__ for AsyncScheduler
and subclasses.
Zac Medico [Fri, 5 Oct 2012 20:48:53 +0000 (13:48 -0700)]
TaskScheduler: inherit AsyncScheduler
This allows the QueueScheduler class to be eliminated.
Zac Medico [Fri, 5 Oct 2012 04:08:01 +0000 (21:08 -0700)]
test_ipc_daemon: implement internal SleepProcess
Emulate the sleep command, in order to ensure a consistent return code
when it is killed by SIGTERM (see bug #437180).
Zac Medico [Thu, 4 Oct 2012 22:17:57 +0000 (15:17 -0700)]
ebuild.sh: comment on noauto behavior
Zac Medico [Wed, 3 Oct 2012 23:53:10 +0000 (16:53 -0700)]
repoman: avoid Manifest double signature
Zac Medico [Wed, 3 Oct 2012 23:29:15 +0000 (16:29 -0700)]
ManifestScheduler: handle InvalidDependString
Zac Medico [Wed, 3 Oct 2012 20:16:06 +0000 (13:16 -0700)]
ManifestTask: add missing signatures
If the existing Manifest already has the correct content, but it is
not signed, then sign it if appropriate.
Zac Medico [Wed, 3 Oct 2012 18:55:50 +0000 (11:55 -0700)]
AsyncScheduler: poll in _schedule_tasks
Triggers cleanup and exit listeners if there's nothing left to do.
Zac Medico [Wed, 3 Oct 2012 18:39:11 +0000 (11:39 -0700)]
AsyncScheduler: implement _poll
Zac Medico [Wed, 3 Oct 2012 17:38:45 +0000 (10:38 -0700)]
AsyncScheduler: use _termination_check
The _terminate_tasks method is always supposed to be called via
_termination_check.
Zac Medico [Wed, 3 Oct 2012 10:18:46 +0000 (03:18 -0700)]
AsyncScheduler: source_remove in _wait
Zac Medico [Wed, 3 Oct 2012 10:00:23 +0000 (03:00 -0700)]
EbuildFetcher/MergeProcess: inherit ForkProcess
Also add missing __slots__ to ForkProcess. TODO: Share code
between ForkProcess and MergeProcess.
Zac Medico [Wed, 3 Oct 2012 09:31:41 +0000 (02:31 -0700)]
egencache: add --update-manifests, bug #436918
Update manifest files, and sign them if signing is enabled. This
supports parallelization if enabled via the --jobs option. The
--thin-manifests and --sign-manifests options may be used to manually
override layout.conf settings. There's also a new --strict-manifests
option that may be used to manually override the "strict" FEATURES
setting, a --gpg-key option to override PORTAGE_GPG_KEY, and a
--gpg-dir option to override PORTAGE_GPG_DIR.
Zac Medico [Wed, 3 Oct 2012 02:43:12 +0000 (19:43 -0700)]
Fix emerge <tbz2> for python3.
Zac Medico [Tue, 2 Oct 2012 20:22:57 +0000 (13:22 -0700)]
OrderedDict: fix setitem bug #436974
This fixes some strange behavior triggered during fetch, which is only
observable with Python 2.6 since it doesn't have
collections.OrderedDict.
Zac Medico [Sun, 30 Sep 2012 17:30:47 +0000 (10:30 -0700)]
debug-print: chgrp ${PORTAGE_GRPNAME:-portage}
This fixes warnings for prefix users (see commits
1c3c3b802014ac6356af09d149aaaffce6c14dc3 and
6983b1a1dd21f931ba751b727bd1a3c460383840).
Zac Medico [Sun, 30 Sep 2012 17:23:01 +0000 (10:23 -0700)]
phase-functions.sh: chgrp $T/environment
This partially reverts commit
314791e319e3ac7ce75f3a6f9ae9cc5c2b837df6,
in order to cover possible cases where it may not actually be
redundant, like if ebuild(1) is used to call pkg_setup as root, and
then a different user calls src_unpack. We use PORTAGE_GRPNAME if set,
in order to avoid triggering irrelevant warnings for unprivileged
prefix users (see chown and chgrp wrappers in commit
45bedf9cdc10fafd94858f67d62b36d35dd99544). This mirrors the approach
taken in commit
1c3c3b802014ac6356af09d149aaaffce6c14dc3 of the prefix
branch.
Zac Medico [Sun, 30 Sep 2012 08:40:36 +0000 (01:40 -0700)]
phase-functions.sh: remove redundant chown/chmod
These calls trigger warnings in prefix mode, since commit
45bedf9cdc10fafd94858f67d62b36d35dd99544. They are redundant, since the
permissions are handled the _post_phase_userpriv_perms function.
Zac Medico [Sun, 30 Sep 2012 08:18:45 +0000 (01:18 -0700)]
Add chown and chgrp wrappers for prefix.
For prefix, there is typically only a single unprivileged user who owns
everthing that is built and installed, and in this case it's desirable
to ignore chown and chrgrp failures. So, move the logic from fowners
into chown and chgrp wrappers, as discussed in bug #433453.
Zac Medico [Sat, 29 Sep 2012 02:36:17 +0000 (19:36 -0700)]
Handle KeyError when loading pickles.
See http://forums.gentoo.org/viewtopic-t-938022.html for example.
Zac Medico [Thu, 27 Sep 2012 19:12:03 +0000 (12:12 -0700)]
Fix indent from last commit.
Zac Medico [Thu, 27 Sep 2012 17:38:37 +0000 (10:38 -0700)]
ebuild.sh: EAPI conditional usex dummy
This probably makes no difference in practice, since it only affects
the "depend" phase. Note that we're allowed to use EAPI conditionals
here, since we parse the EAPI on the python side and pass it to bash.
Zac Medico [Thu, 27 Sep 2012 16:58:35 +0000 (09:58 -0700)]
_slot_operator: EAPI 5-hdepend DEPEND target only
Zac Medico [Thu, 27 Sep 2012 02:04:59 +0000 (19:04 -0700)]
prepalldocs: fix inverted eapi_has_docompress
This broke in commit
ab46499322311c1faa710c63d0a5339e49a9061a.
Zac Medico [Wed, 26 Sep 2012 21:43:13 +0000 (14:43 -0700)]
dodoc: source isolated-functions.sh earlier
This is needed since commit
ab46499322311c1faa710c63d0a5339e49a9061a.
Zac Medico [Wed, 26 Sep 2012 20:55:00 +0000 (13:55 -0700)]
UseManager: /etc/portage/profile extended syntax
If /etc/portage/profile/eapi does not exist, then support extended atom
syntax. This will fix bug #436330.
Arfrever Frehtes Taifersar Arahesis [Wed, 26 Sep 2012 20:31:20 +0000 (22:31 +0200)]
Add eapi.sh with ___eapi_*() functions and use these functions in other files.
Zac Medico [Wed, 26 Sep 2012 18:22:15 +0000 (11:22 -0700)]
test_ipc_daemon: increase sleep for bug #436334
Zac Medico [Wed, 26 Sep 2012 04:11:31 +0000 (21:11 -0700)]
Use constants for more hardcoded *DEPEND lists.
Zac Medico [Wed, 26 Sep 2012 03:47:39 +0000 (20:47 -0700)]
update_ents: use Package._dep_keys
Zac Medico [Wed, 26 Sep 2012 03:31:01 +0000 (20:31 -0700)]
evaluate_slot_operator_equal_deps: do HDEPEND