X-Git-Url: https://git.decadent.org.uk/gitweb/?a=blobdiff_plain;f=dak%2Fprocess_unchecked.py;h=5463f1a6521a7219332614396359719b13aca514;hb=fb11aec0c46bae0797a4e32b1d19eb6fcbc07c49;hp=cae48a7ee0c54647be58048d3d142ef8dc5b898e;hpb=934b2b1d73a2333c80a205f206c1b5edd2f719fb;p=dak.git diff --git a/dak/process_unchecked.py b/dak/process_unchecked.py index cae48a7e..5463f1a6 100755 --- a/dak/process_unchecked.py +++ b/dak/process_unchecked.py @@ -34,23 +34,14 @@ Checks Debian packages from Incoming ################################################################################ -import commands import errno import fcntl import os -import re -import shutil -import stat import sys -import time import traceback -import tarfile -import apt_inst import apt_pkg -from debian_bundle import deb822 from daklib.dbconn import * -from daklib.binary import Binary from daklib import daklog from daklib.queue import * from daklib import utils @@ -124,6 +115,7 @@ def usage (exit_code=0): def action(u): cnf = Config() + # changes["distribution"] may not exist in corner cases # (e.g. unreadable changes files) if not u.pkg.changes.has_key("distribution") or not isinstance(u.pkg.changes["distribution"], DictType): @@ -223,7 +215,10 @@ def package_to_suite(u, suite): q = q.join(DBSource).filter_by(source=u.pkg.changes['source']) q = q.filter_by(version=u.pkg.changes['version']).limit(1) - if q.count() < 1: + # NB: Careful, this logic isn't what you would think it is + # Source is already in {old-,}proposed-updates so no need to hold + # Instead, we don't move to the holding area, we just do an ACCEPT + if q.count() > 0: ret = False s.close() @@ -240,7 +235,7 @@ def package_to_queue(u, summary, short_summary, queue, perms=0660, build=True, a u.pkg.write_dot_dak(dir) u.move_to_dir(dir, perms=perms) if build: - get_queue(queue.lower()).autobuild_upload(u.pkg, dir) + get_or_set_queue(queue.lower()).autobuild_upload(u.pkg, dir) # Check for override disparities u.check_override() @@ -426,6 +421,7 @@ def acknowledge_new(u, summary, short_summary): if not Options["No-Mail"]: print "Sending new ack." template = os.path.join(cnf["Dir::Templates"], 'process-unchecked.new') + u.update_subst() u.Subst["__SUMMARY__"] = summary new_ack_message = utils.TemplateSubst(u.Subst, template) utils.send_mail(new_ack_message) @@ -459,7 +455,7 @@ def process_it(changes_file): u.pkg.changes["changedby2047"] = cnf["Dinstall::MyEmailAddress"] # debian-{devel-,}-changes@lists.debian.org toggles writes access based on this header - bcc = "X-DAK: dak process-unchecked\nX-Katie: $Revision: 1.65 $" + bcc = "X-DAK: dak process-unchecked" if cnf.has_key("Dinstall::Bcc"): u.Subst["__BCC__"] = bcc + "\nBcc: %s" % (cnf["Dinstall::Bcc"]) else: @@ -494,15 +490,16 @@ def process_it(changes_file): valid_changes_p = u.load_changes(changespath) else: valid_changes_p = False - u.rejects.extend(rejects) + u.rejects.extend(rejects) if valid_changes_p: while u.reprocess: u.check_distributions() u.check_files(not Options["No-Action"]) valid_dsc_p = u.check_dsc(not Options["No-Action"]) - if valid_dsc_p: + if valid_dsc_p and not Options["No-Action"]: u.check_source() + u.check_lintian() u.check_hashes() u.check_urgency() u.check_timestamps()