""" 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
for i in [ "architecture", "binary-only", "carbon-copy", "component",
"done", "help", "no-action", "partial", "rdep-check", "reason",
- "source-only" ]:
+ "source-only", "Do-Close" ]:
if not cnf.has_key("Rm::Options::%s" % (i)):
cnf["Rm::Options::%s" % (i)] = ""
if not cnf.has_key("Rm::Options::Suite"):
summary = ""
removals = d.keys()
removals.sort()
+ versions = []
for package in removals:
versions = d[package].keys()
versions.sort(apt_pkg.VersionCompare)
# close associated bug reports
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]
+ print "Package:", package
+ print "Bugs found:", bts.get_bugs('src', package, 'status', 'open')
for bug in bts.get_bugs('src', package, 'status', 'open'):
Subst["__BUG_NUMBER_ALSO__"] += bug + "-done@" + cnf["Dinstall::BugServer"] + ","
+ print "Resulting to:", Subst["__BUG_NUMBER_ALSO__"]
mail_message = utils.TemplateSubst(Subst,cnf["Dir::Templates"]+"/rm.bug-close-related")
utils.send_mail(mail_message)