X-Git-Url: https://git.decadent.org.uk/gitweb/?a=blobdiff_plain;f=config%2Fdebian%2Fextensions.py;h=1e7ea43321dca1816a4a20fc8f6d009ec69e2c15;hb=d9822f04453a1b62ca0aa66e2efeea35f654778f;hp=851360ff553f5f54c1a9a32de9c532423165a614;hpb=ae6668e84b33470fd2d80f4cb177e3df2df7c23c;p=dak.git diff --git a/config/debian/extensions.py b/config/debian/extensions.py index 851360ff..1e7ea433 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,15 +15,17 @@ 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 + # Also only check if there is a file defined (and existant) with # checks. transpath = Cnf.get("Dinstall::Reject::ReleaseTransitions", "") if transpath == "" or not os.path.exists(transpath): return - + # Parse the yaml file sourcefile = file(transpath, 'r') sourcecontent = sourcefile.read() @@ -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 @@ -93,23 +90,11 @@ def check_signed_by_key(): if fpr == "5906F687BD03ACAD0D8E602EFCF37657" or uid == "iwj": 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 - # blocked until Debian's dpkg has revved past those version - # numbers + # NB: 1.15.0, 1.15.2 signed by this key targetted at unstable + # 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 -