X-Git-Url: https://git.decadent.org.uk/gitweb/?a=blobdiff_plain;ds=inline;f=dak%2Frm.py;h=8dff809ef30c5289368e22870ec831212803bae1;hb=91cd6acebec69854074c594bf917561001f57ef4;hp=1b6dfe1f4aaa4788993a23ca23283fe25210bcb4;hpb=a13bb1a6f59fe5f497b125da3764da72081a7ab2;p=dak.git diff --git a/dak/rm.py b/dak/rm.py index 1b6dfe1f..8dff809e 100755 --- a/dak/rm.py +++ b/dak/rm.py @@ -43,6 +43,7 @@ import commands import os import re import sys +import gzip import apt_pkg import apt_inst @@ -106,7 +107,7 @@ def reverse_depends_check(removals, suites, arches=None): if arches: all_arches = set(arches) else: - all_arches = set(get_suite_architectures(suites[0])) + all_arches = set([x.arch_string for x in get_suite_architectures(suites[0])]) all_arches -= set(["source", "all"]) for architecture in all_arches: deps = {} @@ -115,11 +116,7 @@ def reverse_depends_check(removals, suites, arches=None): for component in components: filename = "%s/dists/%s/%s/binary-%s/Packages.gz" % (cnf["Dir::Root"], suites[0], component, architecture) # 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)) - if (result != 0): - utils.fubar("Gunzip invocation failed!\n%s\n" % (output), result) - packages = utils.open_file(temp_filename) + packages = gzip.open(filename, 'rb') Packages = apt_pkg.ParseTagFile(packages) while Packages.Step(): package = Packages.Section.Find("Package") @@ -149,7 +146,6 @@ def reverse_depends_check(removals, suites, arches=None): virtual_packages[virtual_pkg] += 1 p2c[package] = component packages.close() - os.unlink(temp_filename) # If a virtual package is only provided by the to-be-removed # packages, treat the virtual package as to-be-removed too. @@ -200,12 +196,7 @@ def reverse_depends_check(removals, suites, arches=None): for component in components: filename = "%s/dists/%s/%s/source/Sources.gz" % (cnf["Dir::Root"], suites[0], 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)) - if result != 0: - sys.stderr.write("Gunzip invocation failed!\n%s\n" % (output)) - sys.exit(result) - sources = utils.open_file(temp_filename, "r") + sources = gzip.open(filename, 'rb') Sources = apt_pkg.ParseTagFile(sources) while Sources.Step(): source = Sources.Section.Find("Package") @@ -457,7 +448,7 @@ def main (): maintainer_list = [] for maintainer_id in maintainers.keys(): - maintainer_list.append(get_maintainer(maintainer_id)) + maintainer_list.append(get_maintainer(maintainer_id).name) summary = "" removals = d.keys() removals.sort()