diff options
author | Zac Medico <zmedico@gentoo.org> | 2010-03-09 21:23:33 +0000 |
---|---|---|
committer | Zac Medico <zmedico@gentoo.org> | 2010-03-09 21:23:33 +0000 |
commit | e3ab573fa40ce847203545ba87b0ffea7f7d1a04 (patch) | |
tree | 43faffc3c760ce1804c6c094e800976a933d40bc | |
parent | b0070b9eef8ab713632c9341942082ee994af0a6 (diff) | |
download | portage-e3ab573fa40ce847203545ba87b0ffea7f7d1a04.tar.gz portage-e3ab573fa40ce847203545ba87b0ffea7f7d1a04.tar.bz2 portage-e3ab573fa40ce847203545ba87b0ffea7f7d1a04.zip |
Only create implicit libc deps when the version changes.
svn path=/main/trunk/; revision=15810
-rw-r--r-- | pym/_emerge/Scheduler.py | 10 | ||||
-rw-r--r-- | pym/_emerge/depgraph.py | 5 |
2 files changed, 14 insertions, 1 deletions
diff --git a/pym/_emerge/Scheduler.py b/pym/_emerge/Scheduler.py index 46767e47b..404a4483b 100644 --- a/pym/_emerge/Scheduler.py +++ b/pym/_emerge/Scheduler.py @@ -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() diff --git a/pym/_emerge/depgraph.py b/pym/_emerge/depgraph.py index d096c4358..aa737b3b5 100644 --- a/pym/_emerge/depgraph.py +++ b/pym/_emerge/depgraph.py @@ -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): |