]> git.decadent.org.uk Git - dak.git/blobdiff - dak/rm.py
Now it works :)
[dak.git] / dak / rm.py
index 865a3544e17e3aca0a6117ae1e065840b89b5e39..f0d18c1d12da2acf615de39cc690b0b6f45c60e9 100755 (executable)
--- a/dak/rm.py
+++ b/dak/rm.py
@@ -2,6 +2,7 @@
 
 """ General purpose package removal tool for ftpmaster """
 # Copyright (C) 2000, 2001, 2002, 2003, 2004, 2006  James Troup <james@nocrew.org>
+# Copyright (C) 2010 Alexander Reichle-Schmehl <tolimar@debian.org>
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
@@ -478,6 +479,7 @@ def main ():
     summary = ""
     removals = d.keys()
     removals.sort()
+    versions = []
     for package in removals:
         versions = d[package].keys()
         versions.sort(apt_pkg.VersionCompare)
@@ -621,16 +623,27 @@ def main ():
             utils.send_mail(mail_message)
 
     # close associated bug reports
+    # FIXME:  We should also close possible WNPP bugs for that package, but
+    # currently there's no sane way to determine them
     if Options["Do-Close"]:
+        if len(versions) == 1:
+            Subst["__VERSION__"] = versions[0]
+        else:
+            utils.fubar("Closing bugs with multiple package versions is not supported.  Do it yourself.")
         whereami = utils.where_am_i()
         Archive = cnf.SubTree("Archive::%s" % (whereami))
         # at this point, I just assume, that the first closed bug gives
         # some usefull information on why the package got removed
         Subst["__BUG_NUMBER__"] = utils.split_args(Options["Done"])[0]
-        for bug in bts.get_bugs('src', package, 'status', 'open'):
-            Subst["__BUG_NUMBER_ALSO__"] += bug + "-done@" + cnf["Dinstall::BugServer"] + ","
+        if len(sources) > 1:
+            utils.fubar("Closing bugs for multiple source pakcages is not supported.  Do it yourself.")
+        Subst["__BUG_NUMBER_ALSO__"] = ""
+        Subst["__SOURCE__"] = source.split("_", 1)[0]
+        for bug in bts.get_bugs('src', source.split("_", 1)[0], 'status', 'open'):
+            Subst["__BUG_NUMBER_ALSO__"] += str(bug) + "-done@" + cnf["Dinstall::BugServer"] + ","
         mail_message = utils.TemplateSubst(Subst,cnf["Dir::Templates"]+"/rm.bug-close-related")
-        utils.send_mail(mail_message)
+        if Subst["__BUG_NUMBER_ALSO__"]:
+            utils.send_mail(mail_message)
 
 #######################################################################################