summaryrefslogtreecommitdiffstats
path: root/pym/_emerge/resolver
diff options
context:
space:
mode:
authorZac Medico <zmedico@gentoo.org>2011-11-07 07:27:23 -0800
committerZac Medico <zmedico@gentoo.org>2011-11-07 07:27:23 -0800
commita0961708ced50c90497811058eda6f4513d2986d (patch)
treecd361391a487292dbcd2c7f31d314f7bc698ad66 /pym/_emerge/resolver
parentc17d8dabe4c64fc4ed87ac9a0637f8ccc9341823 (diff)
downloadportage-a0961708ced50c90497811058eda6f4513d2986d.tar.gz
portage-a0961708ced50c90497811058eda6f4513d2986d.tar.bz2
portage-a0961708ced50c90497811058eda6f4513d2986d.zip
REQUIRED_USE: don't save in built packages
It should be safe to assume that REQUIRED_USE is satisfied if the package is built, so it's a waste to save it. Also, fix code which assumes that built Package instances have a REQUIRED_USE key in their metadata.
Diffstat (limited to 'pym/_emerge/resolver')
-rw-r--r--pym/_emerge/resolver/circular_dependency.py5
-rw-r--r--pym/_emerge/resolver/slot_collision.py2
2 files changed, 4 insertions, 3 deletions
diff --git a/pym/_emerge/resolver/circular_dependency.py b/pym/_emerge/resolver/circular_dependency.py
index d113c5e8b..62d555634 100644
--- a/pym/_emerge/resolver/circular_dependency.py
+++ b/pym/_emerge/resolver/circular_dependency.py
@@ -143,7 +143,8 @@ class circular_dependency_handler(object):
#If any of the flags we're going to touch is in REQUIRED_USE, add all
#other flags in REQUIRED_USE to affecting_use, to not lose any solution.
- required_use_flags = get_required_use_flags(parent.metadata["REQUIRED_USE"])
+ required_use_flags = get_required_use_flags(
+ parent.metadata.get("REQUIRED_USE", ""))
if affecting_use.intersection(required_use_flags):
# TODO: Find out exactly which REQUIRED_USE flags are
@@ -185,7 +186,7 @@ class circular_dependency_handler(object):
parent_atom not in reduced_dep:
#We found an assignment that removes the atom from 'dep'.
#Make sure it doesn't conflict with REQUIRED_USE.
- required_use = parent.metadata["REQUIRED_USE"]
+ required_use = parent.metadata.get("REQUIRED_USE", "")]
if check_required_use(required_use, current_use, parent.iuse.is_valid_flag):
use = self.depgraph._pkg_use_enabled(parent)
diff --git a/pym/_emerge/resolver/slot_collision.py b/pym/_emerge/resolver/slot_collision.py
index 0df8f20a2..320713882 100644
--- a/pym/_emerge/resolver/slot_collision.py
+++ b/pym/_emerge/resolver/slot_collision.py
@@ -843,7 +843,7 @@ class slot_conflict_handler(object):
#Make sure the changes don't violate REQUIRED_USE
for pkg in required_changes:
- required_use = pkg.metadata["REQUIRED_USE"]
+ required_use = pkg.metadata.get("REQUIRED_USE")
if not required_use:
continue