]> git.decadent.org.uk Git - dak.git/blobdiff - dak/new_security_install.py
security_install
[dak.git] / dak / new_security_install.py
index ca119c8111613228d20b4b57ffe313c877b8b28b..12bef381796e5526a8b5873d118ff12f8cc96c84 100755 (executable)
@@ -1,6 +1,6 @@
 #!/usr/bin/env python
 
-# Wrapper for Debian Security team
+""" Wrapper for Debian Security team """
 # Copyright (C) 2006  Anthony Towns <ajt@debian.org>
 
 # This program is free software; you can redistribute it and/or modify
 
 ################################################################################
 
-import daklib.queue as queue
-import daklib.logging as logging
-import daklib.utils as utils
-import daklib.database as database
-import apt_pkg, os, sys, pwd, time, re, commands
+import apt_pkg, os, sys, pwd, time, commands
 
-re_taint_free = re.compile(r"^['/;\-\+\.~\s\w]+$");
+from daklib import queue
+from daklib import logging
+from daklib import utils
+from daklib import database
+from daklib.regexes import re_taint_free
 
 Cnf = None
 Options = None
@@ -235,10 +235,6 @@ def actually_upload(changes_files):
         files = Upload.pkg.files
         changes = Upload.pkg.changes
         dsc = Upload.pkg.dsc
-        # We have the changes, now return if its amd64, to not upload them to ftp-master
-        if changes["distribution"].has_key("oldstable-security") and changes["architecture"].has_key("amd64"):
-            print "Not uploading amd64 oldstable-security changes to ftp-master\n"
-            continue
         # Build the file list for this .changes file
         for file in files.keys():
             poolname = os.path.join(Cnf["Dir::Root"], Cnf["Dir::PoolRoot"],
@@ -282,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"])
@@ -294,6 +295,17 @@ 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:
+            utils.warn("Problem removing %s from buildd queue %s [%s]" % (filebase, s, str(e)))
+
+
 def generate_advisory(template):
     global changes, advisory
 
@@ -462,11 +474,12 @@ def _do_Approve():
     print "Updating file lists for apt-ftparchive..."
     spawn("dak make-suite-file-list")
     print "Updating Packages and Sources files..."
+    spawn("dak make-pkg-file-mapping | bzip2 -9 > /org/security.debian.org/ftp/indices/package-file.map.bz2")
     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"]: