Zac Medico [Thu, 16 Sep 2010 02:41:14 +0000 (19:41 -0700)]
Add tests for DependencyArg __str__ and __unicode__ methods.
Zac Medico [Thu, 16 Sep 2010 02:39:00 +0000 (19:39 -0700)]
Implement DependencyArg __equals__, __hash__, and __unicode__ methods.
Arfrever Frehtes Taifersar Arahesis [Wed, 15 Sep 2010 15:24:18 +0000 (17:24 +0200)]
Fix typo in comment.
Zac Medico [Wed, 15 Sep 2010 11:01:22 +0000 (04:01 -0700)]
Bug #337465 - Disable EbuildIpcDaemon on FreeBSD since it doesn't
work yet.
Zac Medico [Wed, 15 Sep 2010 08:21:21 +0000 (01:21 -0700)]
Tweak stack_lists() strict_warn_for_unmatched_removal logic.
Zac Medico [Wed, 15 Sep 2010 07:27:09 +0000 (00:27 -0700)]
Bug #337180 - Add a --unmatched-removal option for stricter checking
of package.mask and package.unmask files for unmatched removal atoms.
Zac Medico [Wed, 15 Sep 2010 06:52:16 +0000 (23:52 -0700)]
Bug #337180 - Add a strict_warn_for_unmatched_removal parameter for
stack_lists() that will be useful for repoman, and disable it by default.
Sebastian Luther [Wed, 15 Sep 2010 06:29:10 +0000 (08:29 +0200)]
Limit the spam caused by unmatched removal atoms
Zac Medico [Wed, 15 Sep 2010 06:32:43 +0000 (23:32 -0700)]
In Package._validate_deps(), force unicode format string in
check_required_use() exception handling (for python-2.x safety).
Zac Medico [Wed, 15 Sep 2010 05:22:15 +0000 (22:22 -0700)]
Make Package._metadata_exception() use unicode format strings in order
to avoid UnicodeDecodeError in python-2.x.
This issue was reported in forum thread
http://forums.gentoo.org/viewtopic-t-844623.html where the following
traceback was posted:
File "/usr/lib/portage/pym/_emerge/FakeVartree.py", line 195, in _pkg
type_name="installed")
File "/usr/lib/portage/pym/_emerge/Package.py", line 64, in __init__
self._validate_deps()
File "/usr/lib/portage/pym/_emerge/Package.py", line 93, in _validate_deps
self._metadata_exception(k, e)
File "/usr/lib/portage/pym/_emerge/Package.py", line 242, in _metadata_exception
"%s: %s in '%s'" % (k, e, path))
UnicodeDecodeError: 'ascii' codec can't decode byte 0xef in position 22: ordinal not in range(128)
Zac Medico [Wed, 15 Sep 2010 03:38:38 +0000 (20:38 -0700)]
Bug #336692 - When stack_lists() detects unmatched removal atoms,
account for cases in which the same profile is inherited multiple times
in the same stack.
Sebastian Luther [Tue, 14 Sep 2010 18:57:37 +0000 (20:57 +0200)]
Tests: test isvalidatom ::repo syntax support
Sebastian Luther [Tue, 14 Sep 2010 18:45:55 +0000 (20:45 +0200)]
ResolverPlayground: Add multi repo support
Sebastian Luther [Tue, 14 Sep 2010 18:34:10 +0000 (20:34 +0200)]
Add :.repo syntax support for portage.util.{grabfile_package,grabdict_package}
Sebastian Luther [Tue, 14 Sep 2010 18:26:17 +0000 (20:26 +0200)]
portage.dep: Add support for ::repo syntax to all functions and classes
This also adds the dep_getrepo() function
Zac Medico [Wed, 15 Sep 2010 00:20:08 +0000 (17:20 -0700)]
In doebuild(), skip PORTAGE_BUILDDIR locking if it's already locked
or returnpid is True.
Zac Medico [Tue, 14 Sep 2010 23:40:13 +0000 (16:40 -0700)]
Make IpcDaemonTestCase use a finally block to unlock PORTAGE_BUILDDIR.
Zac Medico [Tue, 14 Sep 2010 22:53:39 +0000 (15:53 -0700)]
Make ebuild-ipc.py close the output_file before trying to re-open it
after it has timed out.
Zac Medico [Tue, 14 Sep 2010 22:20:48 +0000 (15:20 -0700)]
Bug #336433 - Don't filter the DCCC_PATH variable from environment since
that breaks distcc ebuilds.
Zac Medico [Tue, 14 Sep 2010 21:25:49 +0000 (14:25 -0700)]
Only initialize Package.inherited to an empty set when it is None.
Zac Medico [Tue, 14 Sep 2010 16:36:45 +0000 (09:36 -0700)]
Ensure that Package.inherited is always initialized, even if there is no
INHERITED metadata available (like for binary packages).
Ulrich Mueller [Tue, 14 Sep 2010 16:27:52 +0000 (18:27 +0200)]
Add option -s to docompress command.
Zac Medico [Tue, 14 Sep 2010 16:00:42 +0000 (09:00 -0700)]
Make EbuildBuildDir.unlock() use an asynchronous lock when locking the
category directory for removal.
Zac Medico [Tue, 14 Sep 2010 15:08:51 +0000 (08:08 -0700)]
Revert "Remove ebuild-helpers/preplib (bug 102297)"
This reverts commit
811689f349a91b44448bc8e294903abf990eac45. The preplib
helper is still used by at least by stable sys-libs/lib-compat ebuilds.
Zac Medico [Tue, 14 Sep 2010 14:49:30 +0000 (07:49 -0700)]
Make EbuildBuildDir use the PORTAGE_BUILDDIR variable instead of the
dir_path attribute.
Zac Medico [Tue, 14 Sep 2010 14:37:11 +0000 (07:37 -0700)]
Make Binpkg call doebuild_environment() before constructing
EbuildBuildDir, so PORTAGE_BUILDDIR is initialized first.
Arfrever Frehtes Taifersar Arahesis [Tue, 14 Sep 2010 13:09:08 +0000 (15:09 +0200)]
Fix some typos.
Zac Medico [Tue, 14 Sep 2010 09:37:02 +0000 (02:37 -0700)]
Don't export PORTAGE_BUILDIR_LOCKED to the ebuild environment.
Zac Medico [Tue, 14 Sep 2010 09:14:48 +0000 (02:14 -0700)]
Add a config.pkeywordsdict property for backward compatibility.
Zac Medico [Tue, 14 Sep 2010 09:09:51 +0000 (02:09 -0700)]
In KeywordsManager.pkeywordsdict save values as tuples instead of lists.
Sebastian Luther [Tue, 14 Sep 2010 08:41:33 +0000 (10:41 +0200)]
config: Add KeywordsManager
Zac Medico [Tue, 14 Sep 2010 08:22:55 +0000 (01:22 -0700)]
Make ebuild-ipc timeout messages show which operation timed out.
Zac Medico [Tue, 14 Sep 2010 08:08:41 +0000 (01:08 -0700)]
Bug #336142 - Make ebuild-ipc.py keep trying to communicate indefinitely,
as long as $PORTAGE_BUILDDIR is locked.
Zac Medico [Tue, 14 Sep 2010 07:32:43 +0000 (00:32 -0700)]
Make IpcDaemonTestCase use EbuildBuildDir for lock creation.
Zac Medico [Tue, 14 Sep 2010 05:49:03 +0000 (22:49 -0700)]
Make AbstractEbuildProcess lock PORTAGE_BUILDIR if it's not already
locked.
Zac Medico [Tue, 14 Sep 2010 05:17:48 +0000 (22:17 -0700)]
Bug #336142 - Use EbuildBuildDir for threaded locking of PORTAGE_BUILDDIR
inside dblink.unmerge(), so that the scheduler can concurrently service
ipc calls in the main thread.
Zac Medico [Tue, 14 Sep 2010 05:02:57 +0000 (22:02 -0700)]
Use EbuildBuildDir for PORTAGE_BUILDDIR locking inside doebuild().
Zac Medico [Tue, 14 Sep 2010 04:53:29 +0000 (21:53 -0700)]
Make EbuildBuild call doebuild_environment() so that EbuildBuildDir
doesn't need to.
Zac Medico [Tue, 14 Sep 2010 03:01:16 +0000 (20:01 -0700)]
Bug #336142 - Add support for using a thread to wait for locks inside
EbuildBuildDir.lock() so that the scheduler can concurrently service ipc
calls in the main thread.
Zac Medico [Tue, 14 Sep 2010 02:48:18 +0000 (19:48 -0700)]
Make dblink.lockdb() use AsynchronousLock.
Zac Medico [Tue, 14 Sep 2010 02:25:58 +0000 (19:25 -0700)]
Add a new AsynchronousLock class that uses the portage.locks module to
acquire a lock asynchronously, using a background thread.
Zac Medico [Tue, 14 Sep 2010 00:05:16 +0000 (17:05 -0700)]
Make config.setinst() and get_virts_p() call getvirtuals() in order
to ensure that we don't trigger the _treeVirtuals assertion in
VirtualsManager._compile_virtuals().
Zac Medico [Mon, 13 Sep 2010 23:43:39 +0000 (16:43 -0700)]
In depgraph._load_vdb(), after calling FakeVartree.sync(), update
self._frozen_config.pkgsettings so that it has populated virtuals.
This solves allows us to avoid triggering an AssertionError reported
at http://forums.gentoo.org/viewtopic-t-844519.html with the following
traceback:
Calculating dependencies... done!
Traceback (most recent call last):
File "/usr/bin/emerge", line 43, in <module>
retval = emerge_main()
File "/usr/lib/portage/pym/_emerge/main.py", line 1683, in emerge_main
myopts, myaction, myfiles, spinner)
File "/usr/lib/portage/pym/_emerge/actions.py", line 204, in action_build
settings, trees, mtimedb, myopts, myparams, spinner)
File "/usr/lib/portage/pym/_emerge/depgraph.py", line 6047, in resume_depgraph
myparams, spinner)
File "/usr/lib/portage/pym/_emerge/depgraph.py", line 6070, in _resume_depgraph
skip_masked=skip_masked)
File "/usr/lib/portage/pym/_emerge/depgraph.py", line 5617, in _loadResumeCommand
if not self._add_pkg(task, None):
File "/usr/lib/portage/pym/_emerge/depgraph.py", line 893, in _add_pkg
pkgsettings.setinst(pkg.cpv, pkg.metadata)
File "/usr/lib/portage/pym/portage/package/ebuild/config.py", line 1757, in setinst
self._virtuals_manager.add_depgraph_virtuals(mycpv, virts)
File "/usr/lib/portage/pym/portage/package/ebuild/_config/VirtualsManager.py", line 199, in add_depgraph_virtuals
self.getvirtuals()
File "/usr/lib/portage/pym/portage/package/ebuild/_config/VirtualsManager.py", line 156, in getvirtuals
self._compile_virtuals()
File "/usr/lib/portage/pym/portage/package/ebuild/_config/VirtualsManager.py", line 131, in _compile_virtuals
"any query about virtuals"
AssertionError: _populate_treeVirtuals() must be called before any query about virtuals
Sebastian Luther [Mon, 13 Sep 2010 17:06:27 +0000 (19:06 +0200)]
Tests: Add use_reduce test case for bug 120374
Sebastian Luther [Mon, 13 Sep 2010 16:46:32 +0000 (18:46 +0200)]
Remove ebuild-helpers/preplib (bug 102297)
Sebastian Luther [Mon, 13 Sep 2010 14:52:57 +0000 (16:52 +0200)]
Tests: Add resolver/test_missing_iuse_and_evaluated_atoms to make sure we don't miss a "missing IUSE"
Sebastian Luther [Mon, 13 Sep 2010 13:25:57 +0000 (15:25 +0200)]
Don't miss a "missing IUSE" because of [foo?] -> [] evaluations.
This patch also drops flags with EAPI 4 use dep defaults from use.required.
Zac Medico [Mon, 13 Sep 2010 08:33:54 +0000 (01:33 -0700)]
Bug #336142 - When looking of packages that own files for file collisions
inside dblink.treewalk(), periodically yield to the scheduler so that
it can service ipc calls.
Sebastian Luther [Mon, 13 Sep 2010 07:25:55 +0000 (09:25 +0200)]
Make sure atoms in profiles follow the profiles EAPI
Zac Medico [Mon, 13 Sep 2010 07:36:20 +0000 (00:36 -0700)]
Bug #336873 - Add a leading comma when matching --hash-style=gnu
in LDFLAGS, in order to try and filter out invalid settings.
Zac Medico [Mon, 13 Sep 2010 07:23:34 +0000 (00:23 -0700)]
Bug #336142 - Add support for using a thread to wait for locks inside
dblink.lockdb() so that the scheduler can concurrently service ipc
calls in the main thread.
Zac Medico [Mon, 13 Sep 2010 07:16:07 +0000 (00:16 -0700)]
Add a 'condition' keyword argument to PollScheduler._schedule_wait()
which is a callable that should return True when it is desirable for
the _schedule_wait() method to return.
Zac Medico [Mon, 13 Sep 2010 02:49:29 +0000 (19:49 -0700)]
Bug #337031 - Don't make "always overflow destination buffers" gcc
warnings fatal for now.
Zac Medico [Mon, 13 Sep 2010 02:25:06 +0000 (19:25 -0700)]
Bug #336142 - Use a longer timeout for ebuild-ipc, in case the system is
heavily loaded.
Zac Medico [Sun, 12 Sep 2010 21:37:14 +0000 (14:37 -0700)]
Bug #336875 - Don't reference errno.ETIME since it's undefined on FreeBSD.
Zac Medico [Sat, 11 Sep 2010 19:48:44 +0000 (12:48 -0700)]
When fetching distfiles inside digestgen(), ignore conditional parts
of RESTRICT since they don't apply unconditionally. Assume such
conditionals only apply on the client side where digestgen() does not
need to be called.
Zac Medico [Sat, 11 Sep 2010 19:45:20 +0000 (12:45 -0700)]
For digestgen(), add a matchnone parameter to use_reduce() that is the
opposite of matchall.
Zac Medico [Sat, 11 Sep 2010 19:18:03 +0000 (12:18 -0700)]
Fix digestgen() to respect RESTRICT=fetch.
Zac Medico [Sat, 11 Sep 2010 18:06:32 +0000 (11:06 -0700)]
Make spawn_nofetch() call elog_process().
Zac Medico [Sat, 11 Sep 2010 17:53:43 +0000 (10:53 -0700)]
Make the mail_summary elog module copy needed variables from the config
instance, since we don't need to hold a reference for the whole thing.
This also makes it possible to rely on per-package variable settings that
may have come from /etc/portage/package.env, since we'll be isolated from
any future mutations of mysettings.
Zac Medico [Sat, 11 Sep 2010 04:36:23 +0000 (21:36 -0700)]
Fix typo in comment.
Zac Medico [Sat, 11 Sep 2010 04:23:56 +0000 (21:23 -0700)]
Make digestgen() use spawn_nofetch() when necessary, since fetch()
no longer does it.
Zac Medico [Sat, 11 Sep 2010 04:06:42 +0000 (21:06 -0700)]
Fix typo in comment.
Zac Medico [Sat, 11 Sep 2010 03:48:49 +0000 (20:48 -0700)]
Since pkg_nofetch is no longer called from fetch(), add a new
spawn_nofetch() support for doebuild() and other fetch() callers
to use.
Zac Medico [Sat, 11 Sep 2010 01:52:56 +0000 (18:52 -0700)]
In doebuild(), don't trigger prepare_build_dirs() for the fetch phase
with RESTRICT=fetch since fetch() doesn't call pkg_nofetch anymore.
Zac Medico [Sat, 11 Sep 2010 01:39:42 +0000 (18:39 -0700)]
Remove pkg_nofetch code from the fetch() function since it's currently broken (doebuild_environment raises TypeError due to missing mydbapi parameter) and this is a poor place to spawn pkg_nofetch anyway, especially given that the caller does not even pass in a portdbapi instance. For now, relocate the pkg_nofetch execution to EbuildBuild so that it works for emerge. TODO: Add pkg_nofetch support to fetch() callers where appropriate.
Arfrever Frehtes Taifersar Arahesis [Fri, 10 Sep 2010 23:22:59 +0000 (01:22 +0200)]
Fix typos in comments.
Sebastian Luther [Fri, 10 Sep 2010 20:23:33 +0000 (22:23 +0200)]
config: Handle -atoms properly
Before this change -atoms could leak out of the place where they were defined.
Different repos could influence their profile/package.mask.
Profiles could influence profile/package.mask.
Note that the latter is not desirable because other than normal atoms, -atoms
have to exactly match the atom they remove. Because of this, the place specifying
the -atom has to now which atoms exists, which can only be the case if it (or in case
of a profiles, a parent profile) defines it.
Sebastian Luther [Fri, 10 Sep 2010 20:20:25 +0000 (22:20 +0200)]
portage.util: Add optional remember_source_file parameter to some functions to make them return (token, file) pairs
This is useful to name the token's source file in error messages.
stack_lists has another new optional parameter: warn_for_unmatched_removal, which
warns for -atoms that don't remove anything.
Sebastian Luther [Fri, 10 Sep 2010 20:19:02 +0000 (22:19 +0200)]
config/p.mask: config from other repos than PORTDIR comes before profiles (like PORTDIR)
Sebastian Luther [Fri, 10 Sep 2010 20:18:21 +0000 (22:18 +0200)]
Tests: ebuild/test_config: Make sure -atoms in package.mask work as PMS wants it
Sebastian Luther [Fri, 10 Sep 2010 20:14:59 +0000 (22:14 +0200)]
ResolverPlayground: Add ability to create a basic profile and repo config
Zac Medico [Fri, 10 Sep 2010 19:08:50 +0000 (12:08 -0700)]
Bug #273282 - Make install_qa_check() eqawarn about installation into
these deprecated directories:
etc/app-defaults usr/man usr/info usr/X11R6 usr/doc usr/locale
Zac Medico [Fri, 10 Sep 2010 18:25:03 +0000 (11:25 -0700)]
Remove redundant elog_process() call in EbuildBuild._fetch_exit().
Zac Medico [Fri, 10 Sep 2010 18:11:35 +0000 (11:11 -0700)]
Fix the "alway overflow" eerror message to not use the message
intended for "implicit pointer".
Zac Medico [Fri, 10 Sep 2010 18:02:13 +0000 (11:02 -0700)]
Make the "always overflow" gcc warning code use a separate variable
from the "implicit pointer" code in install_qa_check(), so they
don't interfere.
Zac Medico [Fri, 10 Sep 2010 17:47:47 +0000 (10:47 -0700)]
Remove redundant local retval declaration in has_version().
Zac Medico [Fri, 10 Sep 2010 17:32:04 +0000 (10:32 -0700)]
Ensure that depgraph._show_unsatisfied_dep() doesn't suggest changes
to masked or forced USE flags.
Zac Medico [Fri, 10 Sep 2010 16:22:44 +0000 (09:22 -0700)]
In depgraph._show_unsatisfied_dep(), if the child package is masked then a
change to parent USE is not a valid solution (a normal mask message should
be displayed instead).
Zac Medico [Fri, 10 Sep 2010 14:51:22 +0000 (07:51 -0700)]
Bug #336595 - Make dbapi.update_ents() calls quiet when appropriate in
_global_updates().
Sebastian Luther [Fri, 10 Sep 2010 10:18:53 +0000 (12:18 +0200)]
global updates: Honor -q and don't repeat the legend
Zac Medico [Fri, 10 Sep 2010 07:26:25 +0000 (00:26 -0700)]
Make ebuild-ipc.py suppress IOError just like it does for EOFError
when the buffer is non-empty.
Zac Medico [Fri, 10 Sep 2010 07:14:03 +0000 (00:14 -0700)]
Make ebuild-ipc.py handle exceptions from pickle.loads().
Zac Medico [Fri, 10 Sep 2010 07:08:39 +0000 (00:08 -0700)]
Make ebuild-ipc.py display EOFError if no data is read from the
pipe.
Zac Medico [Fri, 10 Sep 2010 06:57:29 +0000 (23:57 -0700)]
Eliminate redunant elog_process() call in EbuildBuild._fetch_exit()
which fetch has failed, since _unlock_builddir() will handle it
later.
Zac Medico [Fri, 10 Sep 2010 06:09:34 +0000 (23:09 -0700)]
Add missing comma in tuple.
Zac Medico [Fri, 10 Sep 2010 05:47:56 +0000 (22:47 -0700)]
Bug #267103 - In action_build(), check for config file updates in
/etc/portage and warn if necessary.
Zac Medico [Fri, 10 Sep 2010 05:34:34 +0000 (22:34 -0700)]
Make the "warning: call to .* will always overflow destination buffer"
gcc warning fatal. Thanks to Diego Pettenò <flameeyes@g.o> for the
suggestion.
Zac Medico [Fri, 10 Sep 2010 04:51:37 +0000 (21:51 -0700)]
Bug #336644 - Make ebuild-ipc.py use array.fromfile() to read pickles
in single atomic non-blocking read() calls, similar to how
AbstractPollTask._read_buf() does it. If the read fails, exit with
status 2 so that best_version() and has_version() can detect the
error and die when necessary.
Zac Medico [Fri, 10 Sep 2010 03:49:50 +0000 (20:49 -0700)]
Bug #336644 - Make EbuildIpcDaemon use AbstractPollTask._read_buf(),
for better handling of errors like "IOError: [Errno 11] Resource
temporarily unavailable". TODO: Apply a similar fix to ebuild-ipc.py.
Zac Medico [Fri, 10 Sep 2010 03:05:19 +0000 (20:05 -0700)]
Split out a AbstractPollTask._read_buf() helper method.
Zac Medico [Fri, 10 Sep 2010 01:02:41 +0000 (18:02 -0700)]
Use EROOT in chk_updated_cfg_files() calls.
Zac Medico [Thu, 9 Sep 2010 23:47:45 +0000 (16:47 -0700)]
Bug #336499 - If RESTRICT=fetch is not set but pkg_nofetch is defined,
go ahead and run pkg_nofetch upon fetch failure. This allows specialized
messages to be displayed for problematic packages.
Zac Medico [Thu, 9 Sep 2010 23:41:01 +0000 (16:41 -0700)]
Make Package.metadata.defined_phases return all possible phases when
DEFINED_PHASES is undefined. This makes it easy to do containment
checks to see if it's safe to skip execution of a given phase.
Zac Medico [Thu, 9 Sep 2010 23:24:29 +0000 (16:24 -0700)]
In EbuildBuild._pre_clean_exit() is _default_exit instead of
_final_exit where appropriate.
Zac Medico [Thu, 9 Sep 2010 22:49:59 +0000 (15:49 -0700)]
Bug #336651 - Fix Scheduler._restart_if_necessary() to correctly
handle arguments like --exclude that are stored as a list since
they use the 'append' action.
Zac Medico [Thu, 9 Sep 2010 17:13:23 +0000 (10:13 -0700)]
Combine prefetch conditionals in EbuildFetcher.
Zac Medico [Thu, 9 Sep 2010 17:09:39 +0000 (10:09 -0700)]
Make EbuildFetcher always disable color in prefetch mode, since
prefetch output always goes to a log.
Zac Medico [Thu, 9 Sep 2010 16:34:49 +0000 (09:34 -0700)]
In update_config_files(), add a comment line showing a package move
that has been applied. This is intended to reduce the risk given
that /etc/portage is in CONFIG_PROTECT_MASK, as discussed in bug
Zac Medico [Thu, 9 Sep 2010 14:21:58 +0000 (07:21 -0700)]
Update --autounmask docs to note that it generates package.use settings.