]> git.decadent.org.uk Git - dak.git/blobdiff - dak/new_security_install.py
Local security-master changes
[dak.git] / dak / new_security_install.py
index a6469e27f4dfdd8f90fb1c245851867259ef4e1e..1bb325b0d5ec7efc34ca1e256a829f9bbfdce4df 100755 (executable)
@@ -1,6 +1,6 @@
 #!/usr/bin/env python
 
 #!/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
 # Copyright (C) 2006  Anthony Towns <ajt@debian.org>
 
 # This program is free software; you can redistribute it and/or modify
 
 ################################################################################
 
 
 ################################################################################
 
+import apt_pkg, os, sys, pwd, time, commands
+
 from daklib import queue
 from daklib import logging
 from daklib import utils
 from daklib import database
 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
 
 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(":")
     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"])
 
     if not Options["No-Action"]:
         filename = "%s/testing-processed" % (Cnf["Dir::Log"])
@@ -290,6 +295,17 @@ def actually_upload(changes_files):
                 file.write(" ".join([source, version])+'\n')
         file.close()
 
                 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
 
 def generate_advisory(template):
     global changes, advisory
 
@@ -370,7 +386,7 @@ def generate_advisory(template):
                                        ver, suite)
         adv += "%s\n%s\n\n" % (suite_header, "-"*len(suite_header))
 
                                        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:
         if "source" in arches:
             arches.remove("source")
         if "all" in arches:
@@ -439,7 +455,7 @@ def sudo(arg, fn, exit):
 def do_Approve(): sudo("A", _do_Approve, True)
 def _do_Approve():
     # 1. dump advisory in drafts
 def do_Approve(): sudo("A", _do_Approve, True)
 def _do_Approve():
     # 1. dump advisory in drafts
-    draft = "/org/security.debian.org/advisories/drafts/%s" % (advisory)
+    draft = "/org/security-master.debian.org/advisories/drafts/%s" % (advisory)
     print "Advisory in %s" % (draft)
     if not Options["No-Action"]:
         adv_file = "./advisory.%s" % (advisory)
     print "Advisory in %s" % (draft)
     if not Options["No-Action"]:
         adv_file = "./advisory.%s" % (advisory)
@@ -458,11 +474,13 @@ def _do_Approve():
     print "Updating file lists for apt-ftparchive..."
     spawn("dak make-suite-file-list")
     print "Updating Packages and Sources files..."
     print "Updating file lists for apt-ftparchive..."
     spawn("dak make-suite-file-list")
     print "Updating Packages and Sources files..."
+    spawn("/org/security-master.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("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("/org/security-master.debian.org/dak/config/debian-security/make-mirror.sh")
+    spawn("sudo -u archvsync -H /home/archvsync/signal_security")
 
     # 4. chdir to done - do upload
     if not Options["No-Action"]:
 
     # 4. chdir to done - do upload
     if not Options["No-Action"]:
@@ -542,10 +560,14 @@ def _do_Reject():
             for f in files:
                 Upload.projectB.query(
                     "DELETE FROM queue_build WHERE filename = '%s'" % (f))
             for f in files:
                 Upload.projectB.query(
                     "DELETE FROM queue_build WHERE filename = '%s'" % (f))
-                os.unlink(f)
+                try:
+                    os.unlink(f)
+                except OSError, e:
+                    # Make it nicer if you want, for now its pass
+                    pass
 
     print "Updating buildd information..."
 
     print "Updating buildd information..."
-    spawn("/org/security.debian.org/dak/config/debian-security/cron.buildd")
+    spawn("/org/security-master.debian.org/dak/config/debian-security/cron.buildd")
 
     adv_file = "./advisory.%s" % (advisory)
     if os.path.exists(adv_file):
 
     adv_file = "./advisory.%s" % (advisory)
     if os.path.exists(adv_file):