diff options
author | Zac Medico <zmedico@gentoo.org> | 2008-05-28 22:16:22 +0000 |
---|---|---|
committer | Zac Medico <zmedico@gentoo.org> | 2008-05-28 22:16:22 +0000 |
commit | a1712e2f5ff423c53d20a887cd3e326d944b6286 (patch) | |
tree | 0c03cd51cf0f87f40f41da249f4807fc6d06fcce /bin | |
parent | fc4967f92ddfea639d1a09c28a61508267ee271c (diff) | |
download | portage-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
Diffstat (limited to 'bin')
-rwxr-xr-x | bin/emerge | 18 |
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 |