X-Git-Url: https://git.decadent.org.uk/gitweb/?a=blobdiff_plain;ds=sidebyside;f=config%2Fdebian%2Fextensions.py;h=e17e9af88b518983af39012202da5f830de88f7d;hb=330833cdf958e43962e208f8021e0e44f1fc100c;hp=851360ff553f5f54c1a9a32de9c532423165a614;hpb=ae6668e84b33470fd2d80f4cb177e3df2df7c23c;p=dak.git diff --git a/config/debian/extensions.py b/config/debian/extensions.py index 851360ff..e17e9af8 100644 --- a/config/debian/extensions.py +++ b/config/debian/extensions.py @@ -4,14 +4,8 @@ import apt_pkg import daklib.utils, daklib.database import syck -# This function and its data should move into daklib/extensions.py -# or something. -replaced_funcs = {} -replace_funcs = {} -def replace_dak_function(module,name): - def x(f): - replace_funcs["%s:%s" % (module,name)] = f - return x +import daklib.extensions +from daklib.extensions import replace_dak_function def check_transition(): changes = dak_module.changes @@ -21,7 +15,9 @@ def check_transition(): sourcepkg = changes["source"] # No sourceful upload -> no need to do anything else, direct return - if "source" not in changes["architecture"]: + # We also work with unstable uploads, not experimental or those going to some + # proposed-updates queue + if "source" not in changes["architecture"] or "unstable" not in changes["distribution"]: return # Also only check if there is a file defined (and existant) with @@ -38,7 +34,7 @@ def check_transition(): except syck.error, msg: # This shouldn't happen, there is a wrapper to edit the file which # checks it, but we prefer to be safe than ending up rejecting - # everything. + # everything. daklib.utils.warn("Not checking transitions, the transitions file is broken: %s." % (msg)) return @@ -61,29 +57,30 @@ def check_transition(): if sourcepkg in t['packages']: # The source is affected, lets reject it. - rejectmsg = "%s: part of the %s transition.\n\n" % ( - sourcepkg, trans) + rejectmsg = "%s: part of the %s transition.\n\n" % ( + sourcepkg, trans) - if current is not None: - currentlymsg = "at version %s" % (current) - else: - currentlymsg = "not present in testing" + if current is not None: + currentlymsg = "at version %s" % (current) + else: + currentlymsg = "not present in testing" - rejectmsg += "Transition description: %s\n\n" % (t["reason"]) + rejectmsg += "Transition description: %s\n\n" % (t["reason"]) - rejectmsg += "\n".join(textwrap.wrap("""Your package + rejectmsg += "\n".join(textwrap.wrap("""Your package is part of a testing transition designed to get %s migrated (it is currently %s, we need version %s). This transition is managed by the Release Team, and %s is the Release-Team member responsible for it. Please mail debian-release@lists.debian.org or contact %s directly if you -need further assistance.""" - % (source, currentlymsg, expected,t["rm"], t["rm"]))) +need further assistance. You might want to upload to experimental until this +transition is done.""" + % (source, currentlymsg, expected,t["rm"], t["rm"]))) reject(rejectmsg + "\n") return @replace_dak_function("process-unchecked", "check_signed_by_key") -def check_signed_by_key(): +def check_signed_by_key(oldfn): changes = dak_module.changes reject = dak_module.reject @@ -94,22 +91,10 @@ def check_signed_by_key(): reject("Upload blocked due to hijack attempt 2008/03/19") # NB: 1.15.0, 1.15.2 signed by this key targetted at unstable - # have been made available in the wild, and should not be + # have been made available in the wild, and should remain # blocked until Debian's dpkg has revved past those version # numbers - replaced_funcs["check_signed_by_key"]() + oldfn() check_transition() - -def init(name): - global replaced_funcs - - # This bit should be done automatically too - replaced_funcs = {} - for f,newfunc in replace_funcs.iteritems(): - m,f = f.split(":",1) - if len(f) > 0 and m == name: - replaced_funcs[f] = dak_module.__dict__[f] - dak_module.__dict__[f] = newfunc -