Only create implicit libc deps when the version changes.
authorZac Medico <zmedico@gentoo.org>
Tue, 9 Mar 2010 21:23:33 +0000 (21:23 -0000)
committerZac Medico <zmedico@gentoo.org>
Tue, 9 Mar 2010 21:23:33 +0000 (21:23 -0000)
svn path=/main/trunk/; revision=15810

pym/_emerge/Scheduler.py
pym/_emerge/depgraph.py

index 46767e47bdd90b4dee70d9bde7733b7dd43481a9..404a4483b93c4d87697d4ffe94011d55e164d96e 100644 (file)
@@ -451,6 +451,16 @@ class Scheduler(PollScheduler):
                # Prefer new-style virtuals over old-style PROVIDE virtuals.
                libc_pkg_map = norm_libc_pkgs.copy()
                libc_pkg_map.update(virt_libc_pkgs)
+
+               # Only add a dep when the version changes.
+               for libc_pkg in list(libc_pkg_map.values()):
+                       if libc_pkg.root_config.trees['vartree'].dbapi.cpv_exists(
+                               libc_pkg.cpv):
+                               del libc_pkg_map[pkg.root]
+
+               if not libc_pkg_map:
+                       return
+
                libc_pkgs = set(libc_pkg_map.values())
                earlier_libc_pkgs = set()
 
index d096c43589213e37bd0404a7c88548217c42d365..aa737b3b55f34487bc7bff970048f563cf37340e 100644 (file)
@@ -3369,7 +3369,10 @@ class depgraph(object):
                        if libc_pkg:
                                libc_pkg = libc_pkg[0]
                                if libc_pkg.operation == 'merge':
-                                       asap_nodes.append(libc_pkg)
+                                       # Only add a dep when the version changes.
+                                       if not libc_pkg.root_config.trees[
+                                               'vartree'].dbapi.cpv_exists(libc_pkg.cpv):
+                                               asap_nodes.append(libc_pkg)
 
                def gather_deps(ignore_priority, mergeable_nodes,
                        selected_nodes, node):