From b7ccfda9dc85dafbe2a970f03c922d6289922d12 Mon Sep 17 00:00:00 2001 From: Fabio Erculiani Date: Tue, 6 Aug 2013 15:31:51 +0200 Subject: [PATCH] [bin] get_preserved_libs: extend output, group by package --- bin/get_preserved_libs | 22 ++++++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) diff --git a/bin/get_preserved_libs b/bin/get_preserved_libs index 34727e8a..b5c230f1 100755 --- a/bin/get_preserved_libs +++ b/bin/get_preserved_libs @@ -17,7 +17,7 @@ try: sys.stderr.write(" %s\n" % (path,)) if plibdata: - sys.stdout.write("\n--\n") + sys.stdout.write("# list of inverse deps:\n") # taken from display_preserved_libs.py, Portage linkmap.rebuild() # can raise CommandNotFound @@ -51,6 +51,7 @@ try: all_preserved = set() all_preserved.update(*plibdata.values()) + owners_map = {} for cpv in plibdata: sys.stdout.write("%s\n" % (cpv,)) @@ -78,16 +79,33 @@ try: consumers = consumers_non_preserved for c in consumers: + owner_pkgs = [] if c in all_preserved: # The owner is displayed elsewhere due to having # its libs preserved, so distinguish this special # case (see bug #461908). owners_desc = "preserved" else: - owners_desc = ", ".join(x.mycpv for x in owners.get(c, [])) + owner_cpvs = [x.mycpv for x in owners.get(c, [])] + owner_pkgs.extend(owner_cpvs) + owners_desc = ", ".join(owner_cpvs) sys.stderr.write(" used by %s (%s)\n" % (c, owners_desc)) + for owner_pkg in owner_pkgs: + obj = owners_map.setdefault(owner_pkg, set()) + obj.add(c) + + sys.stdout.flush() + sys.stderr.flush() + + if owners_map: + sys.stdout.write("# grouped list of rebuilds:\n") + + for owner_pkg in sorted(owners_map.keys()): + owner_files = sorted(owners_map[owner_pkg]) + sys.stderr.write("%s (files: %s)\n" % (owner_pkg, owner_files)) + sys.stdout.flush() sys.stderr.flush()