From: Zac Medico Date: Sun, 5 Oct 2008 18:47:57 +0000 (-0000) Subject: Bug #240022 - Avoid duplicate output for the same library (due to symlinks) X-Git-Tag: v2.2_rc12~25 X-Git-Url: http://git.tremily.us/gitweb.cgi?a=commitdiff_plain;h=5d0860aa4e55c73e55bd487bb562202cd183e467;p=portage.git Bug #240022 - Avoid duplicate output for the same library (due to symlinks) in display_preserved_libs() by using os.path.realpath() to group duplicate references together. Thanks to Fabian Groffen for the initial patch. svn path=/main/trunk/; revision=11636 --- diff --git a/pym/_emerge/__init__.py b/pym/_emerge/__init__.py index e103951fe..1add5ed5d 100644 --- a/pym/_emerge/__init__.py +++ b/pym/_emerge/__init__.py @@ -10958,8 +10958,18 @@ def display_preserved_libs(vardbapi): for cpv in plibdata: print colorize("WARN", ">>>") + " package: %s" % cpv + samefile_map = {} for f in plibdata[cpv]: - print colorize("WARN", " * ") + " - %s" % f + real_path = os.path.realpath(f) + alt_paths = samefile_map.get(real_path) + if alt_paths is None: + alt_paths = set() + samefile_map[real_path] = alt_paths + alt_paths.add(f) + + for f, alt_paths in samefile_map.iteritems(): + for p in sorted(alt_paths): + print colorize("WARN", " * ") + " - %s" % (p,) consumers = consumer_map[f] for c in consumers[:MAX_DISPLAY]: print colorize("WARN", " * ") + " used by %s (%s)" % \