Zac Medico [Fri, 27 Aug 2010 03:40:15 +0000 (20:40 -0700)]
Bug #334365 - Selectively ignore invalid metadata of installed packages
in cases when it's irrelevant (should re-evaluate these when new EAPIs
are deployed):
* EAPI.incompatible IUSE defaults
* EAPI.incompatible *DEPEND
* *DEPEND conditionals missing from IUSE
* SRC_URI.syntax
Zac Medico [Fri, 27 Aug 2010 03:21:02 +0000 (20:21 -0700)]
Bug #334365 - When depgraph.display_problems() shows the message
about masked installed packages, customize the InvalidDependString
display to show the path of the *DEPEND file that contains the
invalid dependency.
Zac Medico [Fri, 27 Aug 2010 03:01:37 +0000 (20:01 -0700)]
Do not include the whole input string in the use_reduce()
InvalidDependString messages since the string is often extremely
long which makes it flood the terminal when displayed. Instead
we'll have to rely on the caller to display react appropriately
to the exception (perhaps displaying the whole input if
appropriate).
Zac Medico [Fri, 27 Aug 2010 02:28:45 +0000 (19:28 -0700)]
Fix breakage from previous commit.
Zac Medico [Fri, 27 Aug 2010 02:07:09 +0000 (19:07 -0700)]
Use Package.visible to simplify visibility checks for installed
packages, no that it accounts for invalid metadata.
Zac Medico [Fri, 27 Aug 2010 01:53:20 +0000 (18:53 -0700)]
Fix Package._visible() to mask installed packages with invalid metadata.
Zac Medico [Fri, 27 Aug 2010 01:46:38 +0000 (18:46 -0700)]
Use dict.__iter__() instead of keys().
Zac Medico [Fri, 27 Aug 2010 01:22:06 +0000 (18:22 -0700)]
Use shallow copy for more immutable config attributes.
Zac Medico [Fri, 27 Aug 2010 01:04:14 +0000 (18:04 -0700)]
Make LicenseManager.__deepcopy__() do a shallow copy of _license_groups
since internal policy ensures lack of mutation, and fix memo usage
for the other immutable attributes.
Zac Medico [Fri, 27 Aug 2010 00:46:11 +0000 (17:46 -0700)]
Implement LicenseManager.__deepcopy__(), using shallow copy for
immutable attributes.
Zac Medico [Fri, 27 Aug 2010 00:15:20 +0000 (17:15 -0700)]
Disable autouse support and add a deprecation warning to the autouse()
function.
Zac Medico [Fri, 27 Aug 2010 00:07:38 +0000 (17:07 -0700)]
Use frozenset for config.usemask and useforce attributes, so there's
no need to copy them during clone operations. Also, there's no need
to copy config.puse since its an immutable string.
Zac Medico [Thu, 26 Aug 2010 23:49:20 +0000 (16:49 -0700)]
Bug #334365 - Make dep_check() less strict with respect to EAPI
constraints for installed packages since previous validation will
have already marked them as invalid when necessary and now we're
more interested in evaluating dependencies so that things like
--depclean work as well as possible in spite of partial
invalidity. Also, remove obsolete EAPI atom validation code from
_expand_new_virtuals() since it's handled by use_reduce() and
the Atom constructor now.
Zac Medico [Thu, 26 Aug 2010 23:08:15 +0000 (16:08 -0700)]
Various parse_metadata_use() fixes:
* Allow empty descriptions (backward compatibility).
* Support multiple 'use' elements.
* If multiple 'flag' elements have the same name attribute, use
the first occurance.
Zac Medico [Thu, 26 Aug 2010 22:54:44 +0000 (15:54 -0700)]
Make parse_metadata_use() tolerate empty flag descriptions.
Zac Medico [Thu, 26 Aug 2010 22:21:09 +0000 (15:21 -0700)]
Make repoman ignore FEATURES=digest when in manifest-check mode.
Zac Medico [Thu, 26 Aug 2010 21:49:34 +0000 (14:49 -0700)]
Ensure SystemExit is never caught.
Zac Medico [Thu, 26 Aug 2010 21:29:34 +0000 (14:29 -0700)]
Make the Atom class add 'EAPI.incompatible' category attributes to
InvalidAtom exceptions, make use_reduce() raise InvalidDependString
exceptions that encapsulate InvalidAtom exceptions, and make
Package._validate_deps() use the InvalidAtom categories when
recording the invalid metadata for use by repoman. Also, remove
the EAPI.incompatible code from repoman that's no longer used.
Zac Medico [Thu, 26 Aug 2010 20:29:13 +0000 (13:29 -0700)]
Make parse_metadata_use() emulate the Element.itertext() method from
python-2.7, so egencache --update-use-local-desc gets all of the inner
text.
Zac Medico [Thu, 26 Aug 2010 19:54:17 +0000 (12:54 -0700)]
Make egencache only show a warning about FEATURES=metata-transfer if the
--update option is given.
Zac Medico [Thu, 26 Aug 2010 19:46:35 +0000 (12:46 -0700)]
Fix up error handling for egencache --update-use-local-desc.
Michał Górny [Thu, 26 Aug 2010 19:25:43 +0000 (21:25 +0200)]
egencache: Introduce the --update-use-local-desc action.
Zac Medico [Thu, 26 Aug 2010 18:56:06 +0000 (11:56 -0700)]
Fix repoman's allvalid variable to account for more possibly invalid
ebuilds.
Zac Medico [Thu, 26 Aug 2010 18:29:37 +0000 (11:29 -0700)]
Fix breakage in use_reduce() calls where token_class=Atom is incorrect.
Zac Medico [Thu, 26 Aug 2010 18:17:56 +0000 (11:17 -0700)]
Remove unused max_parents variable.
Zac Medico [Thu, 26 Aug 2010 18:16:00 +0000 (11:16 -0700)]
Fix slot_conflict_handler breakage when calling
Atom.unevaluated_atom.violated_conditionals() since in this case
the parent_use argument is required.
Michał Górny [Thu, 26 Aug 2010 17:13:16 +0000 (19:13 +0200)]
egencache: introduce the preliminary support for multiple actions.
Regroup the options, splitting them into 'Actions', 'Common' and
action-specific options. Always check whether the 'update' action was
chosen. Support catching multiple return codes.
Michał Górny [Thu, 26 Aug 2010 16:51:14 +0000 (18:51 +0200)]
Parse flag descriptions in repoman.utilities.parse_metadata_use().
Grab the USE descriptions from metadata.xml within parse_metadata_use().
Instead of a plain flag list, return a dict containing both the flag
names and their descriptions.
Zac Medico [Thu, 26 Aug 2010 17:12:25 +0000 (10:12 -0700)]
Make use_reduce() call Atom.evaluate_conditionals() when matchall is False,
and pass token_class=Atom in use_reduce() calls so that external
Atom.evaluate_conditionals() calls can be eliminated.
Michał Górny [Thu, 26 Aug 2010 16:38:52 +0000 (18:38 +0200)]
Disable 'unused local USE-description' check if there are any invalids.
If any of the ebuilds is considered invalid, the used_useflags list may
not be complete. Thus, performing the test could cause a lot of useless
noise.
Zac Medico [Thu, 26 Aug 2010 16:18:12 +0000 (09:18 -0700)]
Remove unused myiuse variable in repoman.
Zac Medico [Thu, 26 Aug 2010 16:00:33 +0000 (09:00 -0700)]
In slot_conflict_handler(), never pass parent_use to
Atom.violated_conditionals since the USE conditionals should have been
evaluated in dep_check() and we don't want to accidentally pass a
DependencyArg instance into _pkg_use_enabled().
Zac Medico [Thu, 26 Aug 2010 15:42:28 +0000 (08:42 -0700)]
In slot_conflict_handler._prepare_conflict_msg_and_check_for_specificity()
don't pass parent_use to Atom.violated_conditionals() since these atoms
already have already been through use_reduce() with the parent's USE.
Zac Medico [Thu, 26 Aug 2010 15:35:25 +0000 (08:35 -0700)]
Fix slot_conflict_handler._prepare_conflict_msg_and_check_for_specificity()
so that it only passes Package instances (not DependencyArg instances) into
_pkg_use_enabled().
Zac Medico [Thu, 26 Aug 2010 15:26:28 +0000 (08:26 -0700)]
Add PORTAGE_SIGPIPE_STATUS to config._environ_whitelist.
Zac Medico [Thu, 26 Aug 2010 15:06:37 +0000 (08:06 -0700)]
Add code to dep_check(), borrowed from _expand_new_virtuals(), to pass
eapi to use_reduce() when available.
Sebastian Luther [Thu, 26 Aug 2010 07:53:10 +0000 (09:53 +0200)]
Let use_reduce and Atom do EAPI checks
Zac Medico [Thu, 26 Aug 2010 14:34:12 +0000 (07:34 -0700)]
Fix UnboundLocalError for y on line 177 in _expand_new_virtuals()
Zac Medico [Thu, 26 Aug 2010 06:47:18 +0000 (23:47 -0700)]
Remove obsolete TODO comment.
Zac Medico [Thu, 26 Aug 2010 06:16:37 +0000 (23:16 -0700)]
Tweak grammar for unknown-features-warn message.
Zac Medico [Thu, 26 Aug 2010 05:47:15 +0000 (22:47 -0700)]
Use EAPI.incompatible repoman category for REQUIRED_USE setting in
EAPI that does not support it.
Zac Medico [Thu, 26 Aug 2010 05:44:05 +0000 (22:44 -0700)]
Make Package._validate_deps() use check_required_use() to validate
REQUIRED_USE.
Zac Medico [Thu, 26 Aug 2010 05:20:43 +0000 (22:20 -0700)]
Just raise InvalidDependString in cases when it shouldn't happen since
the package is not installed and it should have been validated and masked
already if necessary.
Zac Medico [Thu, 26 Aug 2010 05:05:42 +0000 (22:05 -0700)]
Make _get_masking_status() return masking reasons for installed packages
with invalid metadata, and remove show_invalid_depstring_notice()
calls for installed packages since depgraph.display_problems() will
now show the invalid metadata masking reasons when it displays installed
packages that are masked.
Zac Medico [Thu, 26 Aug 2010 04:50:51 +0000 (21:50 -0700)]
Bug #334365 - Fix depgraph._wrapped_select_pkg_highest_available_imp()
to avoid invalid or masked installed packages when necessary. This is
especially important for invalid packages since they need be replaced
so that their dependencies can be parsed for --depclean operations.
Zac Medico [Thu, 26 Aug 2010 03:56:45 +0000 (20:56 -0700)]
Make Package._validate_deps() check USE conditionals in SRC_URI.
Zac Medico [Thu, 26 Aug 2010 03:12:13 +0000 (20:12 -0700)]
Bug #334365 - Mask packages with invalid metadata as early as possible,
so that the depgraph won't select them unless they are already installed
and there is no other choice. This should trigger automatic reinstallation
of installed packages that have invalid metadata.
Zac Medico [Thu, 26 Aug 2010 01:49:33 +0000 (18:49 -0700)]
Add ebuild(1) support for FEATURES=digest.
Zac Medico [Thu, 26 Aug 2010 01:26:15 +0000 (18:26 -0700)]
Use a PORTAGE_SIGPIPE_STATUS variable to export 128 + SIGPIPE to the
ebuild environment. SIGPIPE is typically 13, but its better not to
assume that.
Zac Medico [Thu, 26 Aug 2010 00:59:05 +0000 (17:59 -0700)]
Make save_ebuild_env() filter assert_sigpipe_ok().
Zac Medico [Thu, 26 Aug 2010 00:05:01 +0000 (17:05 -0700)]
Bug #334365 - When parsing dependencies of installed packages in
depgraph._add_pkg_deps(), ignore invalid USE conditionals, since
these are a common problem and it's practical to ignore them for
installed packages.
TODO: For installed package, save any InvalidDependString info in
dynamic_config and wait until display_problems() to show it. For
packages that aren't installed, we should validate and mask them
before they are selected.
Sebastian Luther [Wed, 25 Aug 2010 16:36:48 +0000 (18:36 +0200)]
show_invalid_depstring_notice: Don't repeat the dep string
Zac Medico [Wed, 25 Aug 2010 18:27:16 +0000 (11:27 -0700)]
Fix repoman to support FEATURES=digest (reportedly it used to work
but has stopped working since recent changes).
Zac Medico [Wed, 25 Aug 2010 18:21:07 +0000 (11:21 -0700)]
Mention repoman support in the FEATURES=digest docs.
Zac Medico [Wed, 25 Aug 2010 09:05:14 +0000 (02:05 -0700)]
Remove portage.usedefaults since it's broken by the previous commit.
Sebastian Luther [Wed, 25 Aug 2010 08:46:03 +0000 (10:46 +0200)]
config: Move handling of USE related config files into UseManager
Zac Medico [Wed, 25 Aug 2010 08:22:31 +0000 (01:22 -0700)]
Fix fragile sets config file path handling for for ResolverPlayground
and remove unecessary setconfig_fallback() usage.
Zac Medico [Wed, 25 Aug 2010 08:04:16 +0000 (01:04 -0700)]
Fix WorldSelectedSet.singleBuilder() to use EROOT.
Zac Medico [Wed, 25 Aug 2010 08:01:28 +0000 (01:01 -0700)]
Add EROOT support to setconfig_fallback().
Zac Medico [Wed, 25 Aug 2010 07:55:06 +0000 (00:55 -0700)]
Add EROOT support to the @module-rebuild package set.
Zac Medico [Wed, 25 Aug 2010 07:46:29 +0000 (00:46 -0700)]
Add EROOT support to regenworld.
Zac Medico [Wed, 25 Aug 2010 07:35:47 +0000 (00:35 -0700)]
Make regenworld write changes to a temporary file, and tell the user
to update the file manually if desired.
Zac Medico [Wed, 25 Aug 2010 06:31:57 +0000 (23:31 -0700)]
When parsing package.env, pass the same tolerant and allow_sourcing
arguments to getconfig() that are used when parsing make.conf.
Zac Medico [Tue, 24 Aug 2010 18:42:59 +0000 (11:42 -0700)]
Use deepcopy for LicenseManger, since I remove clone support from the
constructor.
Zac Medico [Tue, 24 Aug 2010 18:42:30 +0000 (11:42 -0700)]
Use open() instead of file(), for python3.
Sebastian Luther [Tue, 24 Aug 2010 18:31:15 +0000 (20:31 +0200)]
Tests: Add LicenseManager tests
Sebastian Luther [Tue, 24 Aug 2010 18:30:12 +0000 (20:30 +0200)]
ExtendedAtomDict: Add __eq__
Sebastian Luther [Tue, 24 Aug 2010 14:42:33 +0000 (16:42 +0200)]
ResolverPlayground: Add ability to create config files and sets
Zac Medico [Tue, 24 Aug 2010 18:24:28 +0000 (11:24 -0700)]
Remove LicenseManager.__deepcopy__() since the default implementation
seems to work fine.
Zac Medico [Tue, 24 Aug 2010 18:18:36 +0000 (11:18 -0700)]
Implement LicenseManager.__deepcopy__().
Zac Medico [Tue, 24 Aug 2010 18:05:59 +0000 (11:05 -0700)]
Fix imports in _config submodules.
Zac Medico [Tue, 24 Aug 2010 17:35:22 +0000 (10:35 -0700)]
Bug #334319 - Don't call config.backup_changes("FEATURES") because it's
no longer needed and it causes problems with environment overrides
of FEATURES.
Zac Medico [Tue, 24 Aug 2010 17:10:36 +0000 (10:10 -0700)]
* Make dblink instantiate the ConfigProtect object on demand instead of
in the constructor, since it triggers lots of stat calls and it's
wasteful for iter_owners.
* Fix dblink ConfigProtect construction to use EROOT.
Zac Medico [Tue, 24 Aug 2010 15:15:00 +0000 (08:15 -0700)]
Bug #334265 - Fix AttributeError triggered by empty herd element in
check_metadata_herds().
Sebastian Luther [Tue, 24 Aug 2010 12:14:43 +0000 (14:14 +0200)]
More _pkg_use_enabled fixes
Sebastian Luther [Tue, 24 Aug 2010 10:00:22 +0000 (12:00 +0200)]
Atom.violated_conditionals: Always treat deps as violated if the flag is not in IUSE
Zac Medico [Tue, 24 Aug 2010 13:37:40 +0000 (06:37 -0700)]
Bug #334253 - Fix breakage in FEATURES=test-fail-continue logic.
Sebastian Luther [Tue, 24 Aug 2010 08:49:48 +0000 (10:49 +0200)]
config: Move _prune_incremental to helper
Sebastian Luther [Tue, 24 Aug 2010 08:26:54 +0000 (10:26 +0200)]
config: Move features_set into its own file
Sebastian Luther [Tue, 24 Aug 2010 08:21:07 +0000 (10:21 +0200)]
config: Split out LicenseManager and helper
Sebastian Luther [Tue, 24 Aug 2010 08:19:17 +0000 (10:19 +0200)]
ExtendedAtomDict: Add __delitem__
Zac Medico [Tue, 24 Aug 2010 13:09:41 +0000 (06:09 -0700)]
Use Package.iuse.is_valid_flag() to account for implicit IUSE.
Sebastian Luther [Tue, 24 Aug 2010 09:04:25 +0000 (11:04 +0200)]
repoman: Let repoman check for flags missing from IUSE
Zac Medico [Tue, 24 Aug 2010 01:37:59 +0000 (18:37 -0700)]
Make config.setcpv() trigger regenerate() if the package from the
previous setcpv call had package.env settings which modified
FEATURES. This ensures that self.features is accurate (hopefully
solving the issue in bug #44796, comment #77).
Zac Medico [Tue, 24 Aug 2010 00:57:48 +0000 (17:57 -0700)]
Handle SIGPIPE when unpack() extracts tar files through a pipe (bug #309001).
When checking ${PIPESTATUS[@]} for extraction of tar files in unpack(),
use a new assert_sigpipe_ok() function which behaves the same as the
existing assert() function except that it tolerates pipe writers being
killed by SIGPIPE.
Zac Medico [Mon, 23 Aug 2010 18:34:46 +0000 (11:34 -0700)]
* Use iterators instead of keys() when possible.
* Use iterators instead of sets for set.intersection() calls.
* Use digraph.__iter__ and __contains__ as shortcuts to digraph.nodes
access.
Zac Medico [Mon, 23 Aug 2010 18:22:03 +0000 (11:22 -0700)]
In depgraph._select_pkg_highest_available_imp(), make sure
allow_unstable_keywords is True before adding a package to
_needed_unstable_keywords.
Zac Medico [Mon, 23 Aug 2010 17:38:49 +0000 (10:38 -0700)]
Pass a keyword hint from getmaskingstatus() to the autounmask code.
Sebastian Luther [Mon, 23 Aug 2010 16:24:10 +0000 (18:24 +0200)]
use_reduce: Give a hint to IUSE in the 'use flag '%s' is not referencable in conditional' error
Zac Medico [Mon, 23 Aug 2010 14:46:07 +0000 (07:46 -0700)]
Add 'candy' to SUPPORTED_FEATURES.
Zac Medico [Mon, 23 Aug 2010 07:23:15 +0000 (00:23 -0700)]
Make recursive grablines() ignore the same directories as
portage.listdir(), and do the same for update_config_files().
Zac Medico [Mon, 23 Aug 2010 04:51:49 +0000 (21:51 -0700)]
Bug #318241 - Include LICENSE file in release tarballs.
Zac Medico [Mon, 23 Aug 2010 04:36:10 +0000 (21:36 -0700)]
Bug #309907 - Update more config files for package moves:
package.accept_keywords, package.env, and package.properties.
Zac Medico [Mon, 23 Aug 2010 01:41:47 +0000 (18:41 -0700)]
Fix spelling in zlib.error message.
Zac Medico [Mon, 23 Aug 2010 01:28:08 +0000 (18:28 -0700)]
Handle zlib.error when reading compressed build logs via GzipFile.
Zac Medico [Mon, 23 Aug 2010 00:52:50 +0000 (17:52 -0700)]
Allow more time for natural exit of the ebuild process after it has
called the exit command via IPC.
Zac Medico [Sun, 22 Aug 2010 23:58:27 +0000 (16:58 -0700)]
Don't copy the src directory because it doesn't exist anymore.
Zac Medico [Sun, 22 Aug 2010 23:56:24 +0000 (16:56 -0700)]
Remove the python-missingos module since apparently nobody has needed
it for a long time.
Zac Medico [Sun, 22 Aug 2010 23:54:31 +0000 (16:54 -0700)]
Remove support for the missingos module since apparently nobody has needed
it for a long time.
Zac Medico [Sun, 22 Aug 2010 23:46:10 +0000 (16:46 -0700)]
Remove the bsd-chflags module since it hasn't been used for some time
(python as read support and we spawn binaries for any necessary
modifications).