X-Git-Url: https://git.decadent.org.uk/gitweb/?a=blobdiff_plain;f=dak%2Fnew_security_install.py;h=f6a7354b9f4a3cac3ba9d47735210f0f0b2b225d;hb=ac248cc46170af4620aafd918cf3f7d593c4a9da;hp=a6469e27f4dfdd8f90fb1c245851867259ef4e1e;hpb=bdfbfa8343c53d8b1f95ceed117b8542ba5c42c6;p=dak.git diff --git a/dak/new_security_install.py b/dak/new_security_install.py index a6469e27..f6a7354b 100755 --- a/dak/new_security_install.py +++ b/dak/new_security_install.py @@ -1,6 +1,6 @@ #!/usr/bin/env python -# Wrapper for Debian Security team +""" Wrapper for Debian Security team """ # Copyright (C) 2006 Anthony Towns # This program is free software; you can redistribute it and/or modify @@ -20,13 +20,13 @@ ################################################################################ +import apt_pkg, os, sys, pwd, time, commands + from daklib import queue from daklib import logging from daklib import utils from daklib import database -import apt_pkg, os, sys, pwd, time, re, commands - -re_taint_free = re.compile(r"^['/;\-\+\.~\s\w]+$"); +from daklib.regexes import re_taint_free Cnf = None Options = None @@ -278,9 +278,14 @@ def actually_upload(changes_files): for uri in uploads.keys(): uploads[uri].extend(changesfiles[uri]) (host, path) = uri.split(":") - file_list = " ".join(uploads[uri]) - print "Uploading files to %s..." % (host) - spawn("lftp -c 'open %s; cd %s; put %s'" % (host, path, file_list)) + # file_list = " ".join(uploads[uri]) + print "Moving files to UploadQueue" + for filename in uploads[uri]: + utils.copy(filename, Cnf["Dir::Upload"]) + # .changes files have already been moved to queue/done by p-a + if not filename.endswith('.changes'): + remove_from_buildd(suites, filename) + #spawn("lftp -c 'open %s; cd %s; put %s'" % (host, path, file_list)) if not Options["No-Action"]: filename = "%s/testing-processed" % (Cnf["Dir::Log"]) @@ -290,6 +295,20 @@ def actually_upload(changes_files): file.write(" ".join([source, version])+'\n') file.close() +def remove_from_buildd(suites, filename): + """Check the buildd dir for each suite and remove the file if needed""" + builddbase = Cnf["Dir::QueueBuild"] + filebase = os.path.basename(filename) + for s in suites: + try: + os.unlink(os.path.join(builddbase, s, filebase)) + except OSError, e: + pass + # About no value printing this warning - it only confuses the security team, + # yet makes no difference otherwise. + #utils.warn("Problem removing %s from buildd queue %s [%s]" % (filebase, s, str(e))) + + def generate_advisory(template): global changes, advisory @@ -370,7 +389,7 @@ def generate_advisory(template): ver, suite) adv += "%s\n%s\n\n" % (suite_header, "-"*len(suite_header)) - arches = Cnf.ValueList("Suite::%s::Architectures" % suite) + arches = database.get_suite_architectures(suite) if "source" in arches: arches.remove("source") if "all" in arches: @@ -458,11 +477,12 @@ def _do_Approve(): print "Updating file lists for apt-ftparchive..." spawn("dak make-suite-file-list") print "Updating Packages and Sources files..." + spawn("/org/security.debian.org/dak/config/debian-security/map.sh") spawn("apt-ftparchive generate %s" % (utils.which_apt_conf_file())) print "Updating Release files..." spawn("dak generate-releases") print "Triggering security mirrors..." - spawn("sudo -u archvsync /home/archvsync/signal_security") + spawn("sudo -u archvsync -H /home/archvsync/signal_security") # 4. chdir to done - do upload if not Options["No-Action"]: