X-Git-Url: https://git.decadent.org.uk/gitweb/?a=blobdiff_plain;f=dak%2Fcruft_report.py;h=4541bf6eb6477c8c09cc91022b8c41636d031ebc;hb=6021a91078574c97968d076c0320182a20c33649;hp=538311496dd1b297efeeaf3abf801f0f58357429;hpb=1c35448b880358d020e81339657e3435fdda9434;p=dak.git diff --git a/dak/cruft_report.py b/dak/cruft_report.py index 53831149..4541bf6e 100755 --- a/dak/cruft_report.py +++ b/dak/cruft_report.py @@ -29,7 +29,7 @@ ################################################################################ -import commands, os, sys, time, re +import commands, os, sys, re import apt_pkg from daklib.config import Config @@ -65,7 +65,8 @@ def add_nbs(nbs_d, source, version, package, suite_id, session): else: q = session.execute("""SELECT b.id FROM binaries b, bin_associations ba WHERE ba.bin = b.id AND ba.suite = :suite_id - AND b.package = suite_id LIMIT 1""" % (suite_id, package)) + AND b.package = :package LIMIT 1""", {'suite_id': suite_id, + 'package': package}) if not q.fetchall(): no_longer_in_suite[package] = "" return @@ -91,8 +92,9 @@ def do_anais(architecture, binaries_list, source, session): WHERE ba.suite = :suiteid AND ba.bin = b.id AND b.architecture = a.id AND b.package = :package""", {'suiteid': suite_id, 'package': binary}) + ql = q.fetchall() versions = [] - for i in q.fetchall(): + for i in ql: arch = i[0] version = i[1] if architectures.has_key(arch): @@ -194,7 +196,7 @@ SELECT s.source, s.version AS lower, s2.version AS higher FROM src_associations sa, source s, source s2, src_associations sa2 WHERE sa.suite = :highersuite_id AND sa2.suite = :lowersuite_id AND sa.source = s.id AND sa2.source = s2.id AND s.source = s2.source - AND s.version < s2.version""" % {'lowersuite_id': lowersuite.suite_id, + AND s.version < s2.version""", {'lowersuite_id': lowersuite.suite_id, 'highersuite_id': highersuite.suite_id}) ql = q.fetchall() if ql: @@ -236,7 +238,7 @@ def do_nbs(real_nbs): output += " o %s: %s\n" % (version, ", ".join(packages)) if all_packages: all_packages.sort() - cmd_output += " dak rm -m \"[auto-cruft] NBS (was built by %s)\" -s %s -b %s\n\n" % (source, suite, " ".join(all_packages)) + cmd_output += " dak rm -m \"[auto-cruft] NBS (was built by %s)\" -s %s -b %s\n\n" % (source, suite.suite_name, " ".join(all_packages)) output += "\n" @@ -356,9 +358,9 @@ def main (): # Set up checks based on mode if Options["Mode"] == "daily": - checks = [ "nbs", "nviu", "obsolete source" ] + checks = [ "nbs", "nviu", "nvit", "obsolete source" ] elif Options["Mode"] == "full": - checks = [ "nbs", "nviu", "obsolete source", "nfu", "dubious nbs", "bnb", "bms", "anais" ] + checks = [ "nbs", "nviu", "nvit", "obsolete source", "nfu", "dubious nbs", "bnb", "bms", "anais" ] else: utils.warn("%s is not a recognised mode - only 'full' or 'daily' are understood." % (Options["Mode"])) usage(1) @@ -379,16 +381,17 @@ def main (): suite = get_suite(Options["Suite"].lower(), session) suite_id = suite.suite_id + suite_name = suite.suite_name.lower() bin_not_built = {} if "bnb" in checks: - bins_in_suite = get_suite_binaries(suite) + bins_in_suite = get_suite_binaries(suite_name, session) # Checks based on the Sources files - components = cnf.ValueList("Suite::%s::Components" % (suite)) + components = cnf.ValueList("Suite::%s::Components" % (suite_name)) for component in components: - filename = "%s/dists/%s/%s/source/Sources.gz" % (cnf["Dir::Root"], suite.suite_name, component) + filename = "%s/dists/%s/%s/source/Sources.gz" % (cnf["Dir::Root"], suite_name, component) # apt_pkg.ParseTagFile needs a real file handle and can't handle a GzipFile instance... (fd, temp_filename) = utils.temp_filename() (result, output) = commands.getstatusoutput("gunzip -c %s > %s" % (filename, temp_filename)) @@ -435,17 +438,17 @@ def main (): # Checks based on the Packages files check_components = components[:] - if suite.suite_name != "experimental": + if suite_name != "experimental": check_components.append('main/debian-installer'); for component in check_components: - architectures = [ a.arch_string for a in get_suite_architectures(suite.suite_name, + architectures = [ a.arch_string for a in get_suite_architectures(suite_name, skipsrc=True, skipall=True, session=session) ] for architecture in architectures: if component == 'main/debian-installer' and re.match("kfreebsd", architecture): continue - filename = "%s/dists/%s/%s/binary-%s/Packages.gz" % (cnf["Dir::Root"], suite.suite_name, component, architecture) + filename = "%s/dists/%s/%s/binary-%s/Packages.gz" % (cnf["Dir::Root"], suite_name, component, architecture) # apt_pkg.ParseTagFile needs a real file handle (fd, temp_filename) = utils.temp_filename() (result, output) = commands.getstatusoutput("gunzip -c %s > %s" % (filename, temp_filename)) @@ -518,6 +521,9 @@ def main (): if "nviu" in checks: do_newer_version('unstable', 'experimental', 'NVIU', session) + if "nvit" in checks: + do_newer_version('testing', 'testing-proposed-updates', 'NVIT', session) + if "nbs" in checks: do_nbs(real_nbs)