Bug #240022 - Avoid duplicate output for the same library (due to symlinks)
authorZac Medico <zmedico@gentoo.org>
Sun, 5 Oct 2008 18:47:57 +0000 (18:47 -0000)
committerZac Medico <zmedico@gentoo.org>
Sun, 5 Oct 2008 18:47:57 +0000 (18:47 -0000)
in display_preserved_libs() by using os.path.realpath() to group duplicate
references together. Thanks to Fabian Groffen <grobian@g.o> for the initial
patch.

svn path=/main/trunk/; revision=11636

pym/_emerge/__init__.py

index e103951fe94b00f216bc8d8c1cf0973055dcce9c..1add5ed5d9f34f8055668cc881eaf188acf78f76 100644 (file)
@@ -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)" % \