summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorZac Medico <zmedico@gentoo.org>2008-05-28 22:16:22 +0000
committerZac Medico <zmedico@gentoo.org>2008-05-28 22:16:22 +0000
commita1712e2f5ff423c53d20a887cd3e326d944b6286 (patch)
tree0c03cd51cf0f87f40f41da249f4807fc6d06fcce
parentfc4967f92ddfea639d1a09c28a61508267ee271c (diff)
downloadportage-a1712e2f5ff423c53d20a887cd3e326d944b6286.tar.gz
portage-a1712e2f5ff423c53d20a887cd3e326d944b6286.tar.bz2
portage-a1712e2f5ff423c53d20a887cd3e326d944b6286.zip
* Update the fix from bug #220341 to protect USE deps from being neglected.
* Skip redundant Atom construction in select_package(). (trunk r10466:10468) svn path=/main/branches/2.1.2/; revision=10469
-rwxr-xr-xbin/emerge18
1 files changed, 13 insertions, 5 deletions
diff --git a/bin/emerge b/bin/emerge
index c43a9f0e6..eec4fa15e 100755
--- a/bin/emerge
+++ b/bin/emerge
@@ -3102,7 +3102,8 @@ class depgraph(object):
# List of acceptable packages, ordered by type preference.
matched_packages = []
highest_version = None
- atom = portage_dep.Atom(atom)
+ if not isinstance(atom, portage_dep.Atom):
+ atom = portage_dep.Atom(atom)
atom_cp = atom.cp
existing_node = None
myeb = None
@@ -3145,12 +3146,19 @@ class depgraph(object):
# the newly built package still won't have the expected slot.
# Therefore, assume that such SLOT dependencies are already
# satisfied rather than forcing a rebuild.
- if installed and not cpv_list and matched_packages \
- and portage_dep.dep_getslot(atom):
+ if installed and not cpv_list and \
+ matched_packages and atom.slot:
for pkg in matched_packages:
- if vardb.cpv_exists(pkg.cpv):
+ if not vardb.cpv_exists(pkg.cpv):
+ continue
+ # Remove the slot from the atom and verify that
+ # the package matches the resulting atom.
+ atom_without_slot = portage_dep.remove_slot(atom)
+ atom_without_slot = portage_dep.Atom(atom_without_slot)
+ if portage.match_from_list(
+ atom_without_slot, [pkg]):
cpv_list = [pkg.cpv]
- break
+ break
if not cpv_list:
continue