]> git.decadent.org.uk Git - dak.git/blobdiff - dak/security_install.py
Merge branch 'master' into security
[dak.git] / dak / security_install.py
old mode 100755 (executable)
new mode 100644 (file)
index 2cea730..3aebedc
@@ -32,7 +32,7 @@
 
 import commands, os, pwd, re, sys, time
 import apt_pkg
-import daklib.queue 
+from daklib import queue
 import daklib.utils
 
 ################################################################################
@@ -73,7 +73,7 @@ def do_upload(changes_files):
         components = {}
         upload_uris = {}
         file_list = []
-       Upload.init_vars()
+        Upload.init_vars()
         # Parse the .dak file for the .changes file
         Upload.pkg.changes_file = changes_file
         Upload.update_vars()
@@ -84,16 +84,13 @@ def do_upload(changes_files):
         if changes["architecture"].has_key("amd64"):
             print "Not uploading amd64 part to ftp-master\n"
             continue
-        if changes["distribution"].has_key("oldstable"):
-            print "Not uploading oldstable-security changes to ftp-master\n"
-            continue
         # Build the file list for this .changes file
-        for file in files.keys():
+        for f in files.keys():
             poolname = os.path.join(Cnf["Dir::Root"], Cnf["Dir::PoolRoot"],
-                                    daklib.utils.poolify(changes["source"], files[file]["component"]),
-                                    file)
+                                    daklib.utils.poolify(changes["source"], files[f]["component"]),
+                                    f)
             file_list.append(poolname)
-            orig_component = files[file].get("original component", files[file]["component"])
+            orig_component = files[f].get("original component", files[f]["component"])
             components[orig_component] = ""
         # Determine the upload uri for this .changes file
         for component in components.keys():
@@ -114,7 +111,7 @@ def do_upload(changes_files):
             uploads[upload_uri] = []
         uploads[upload_uri].extend(file_list)
         # Update the changes list for the upload uri
-        if not changes.has_key(upload_uri):
+        if not changesfiles.has_key(upload_uri):
             changesfiles[upload_uri] = []
         changesfiles[upload_uri].append(changes_file)
         # Remember the suites and source name/version
@@ -141,11 +138,11 @@ def do_upload(changes_files):
 
     if not Options["No-Action"]:
         filename = "%s/testing-processed" % (Cnf["Dir::Log"])
-        file = daklib.utils.open_file(filename, 'a')
+        f = daklib.utils.open_file(filename, 'a')
         for source in package_list.keys():
             for version in package_list[source].keys():
-                file.write(" ".join([source, version])+'\n')
-        file.close()
+                f.write(" ".join([source, version])+'\n')
+        f.close()
 
 ######################################################################
 # This function was originally written by aj and NIHishly merged into
@@ -157,49 +154,49 @@ def make_advisory(advisory_nr, changes_files):
 
     for arg in changes_files:
         arg = daklib.utils.validate_changes_file_arg(arg)
-       Upload.pkg.changes_file = arg
-       Upload.init_vars()
-       Upload.update_vars()
+        Upload.pkg.changes_file = arg
+        Upload.init_vars()
+        Upload.update_vars()
 
-       src = Upload.pkg.changes["source"]
-       if src not in adv_packages:
-           adv_packages += [src]
+        src = Upload.pkg.changes["source"]
+        if src not in adv_packages:
+            adv_packages += [src]
 
-       suites = Upload.pkg.changes["distribution"].keys()
-       for suite in suites:
-           if not updated_pkgs.has_key(suite):
+        suites = Upload.pkg.changes["distribution"].keys()
+        for suite in suites:
+            if not updated_pkgs.has_key(suite):
                 updated_pkgs[suite] = {}
 
-       files = Upload.pkg.files
-       for file in files.keys():
-           arch = files[file]["architecture"]
-           md5 = files[file]["md5sum"]
-           size = files[file]["size"]
-           poolname = Cnf["Dir::PoolRoot"] + \
-               daklib.utils.poolify(src, files[file]["component"])
-           if arch == "source" and file.endswith(".dsc"):
-               dscpoolname = poolname
-           for suite in suites:
-               if not updated_pkgs[suite].has_key(arch):
-                   updated_pkgs[suite][arch] = {}
-               updated_pkgs[suite][arch][file] = {
+        files = Upload.pkg.files
+        for f in files.keys():
+            arch = files[f]["architecture"]
+            md5 = files[f]["md5sum"]
+            size = files[f]["size"]
+            poolname = Cnf["Dir::PoolRoot"] + \
+                daklib.utils.poolify(src, files[f]["component"])
+            if arch == "source" and f.endswith(".dsc"):
+                dscpoolname = poolname
+            for suite in suites:
+                if not updated_pkgs[suite].has_key(arch):
+                    updated_pkgs[suite][arch] = {}
+                updated_pkgs[suite][arch][f] = {
                     "md5": md5, "size": size,
                     "poolname": poolname }
 
-       dsc_files = Upload.pkg.dsc_files
-       for file in dsc_files.keys():
-           arch = "source"
-           if not dsc_files[file].has_key("files id"):
+        dsc_files = Upload.pkg.dsc_files
+        for f in dsc_files.keys():
+            arch = "source"
+            if not dsc_files[f].has_key("files id"):
                 continue
 
-           # otherwise, it's already in the pool and needs to be
-           # listed specially
-           md5 = dsc_files[file]["md5sum"]
-           size = dsc_files[file]["size"]
-           for suite in suites:
-               if not updated_pkgs[suite].has_key(arch):
-                   updated_pkgs[suite][arch] = {}
-               updated_pkgs[suite][arch][file] = {
+            # otherwise, it's already in the pool and needs to be
+            # listed specially
+            md5 = dsc_files[f]["md5sum"]
+            size = dsc_files[f]["size"]
+            for suite in suites:
+                if not updated_pkgs[suite].has_key(arch):
+                    updated_pkgs[suite][arch] = {}
+                updated_pkgs[suite][arch][f] = {
                     "md5": md5, "size": size,
                     "poolname": dscpoolname }
 
@@ -211,10 +208,10 @@ def make_advisory(advisory_nr, changes_files):
     username = whoamifull[4].split(",")[0]
 
     Subst = {
-       "__ADVISORY__": advisory_nr,
-       "__WHOAMI__": username,
-       "__DATE__": time.strftime("%B %d, %Y", time.gmtime(time.time())),
-       "__PACKAGE__": ", ".join(adv_packages),
+        "__ADVISORY__": advisory_nr,
+        "__WHOAMI__": username,
+        "__DATE__": time.strftime("%B %d, %Y", time.gmtime(time.time())),
+        "__PACKAGE__": ", ".join(adv_packages),
         "__DAK_ADDRESS__": Cnf["Dinstall::MyEmailAddress"]
         }
 
@@ -228,35 +225,35 @@ def make_advisory(advisory_nr, changes_files):
                                        Cnf["Suite::%s::Version" % suite], suite)
         adv += "%s\n%s\n\n" % (suite_header, "-"*len(suite_header))
 
-       arches = Cnf.ValueList("Suite::%s::Architectures" % suite)
-       if "source" in arches:
+        arches = Cnf.ValueList("Suite::%s::Architectures" % suite)
+        if "source" in arches:
             arches.remove("source")
-       if "all" in arches:
+        if "all" in arches:
             arches.remove("all")
-       arches.sort()
+        arches.sort()
 
-       adv += "  %s was released for %s.\n\n" % (
-               suite.capitalize(), daklib.utils.join_with_commas_and(arches))
+        adv += "  %s was released for %s.\n\n" % (
+                suite.capitalize(), daklib.utils.join_with_commas_and(arches))
 
-       for a in ["source", "all"] + arches:
-           if not updated_pkgs[suite].has_key(a):
+        for a in ["source", "all"] + arches:
+            if not updated_pkgs[suite].has_key(a):
                 continue
 
-           if a == "source":
-               adv += "  Source archives:\n\n"
-           elif a == "all":
-               adv += "  Architecture independent packages:\n\n"
-           else:
-               adv += "  %s architecture (%s)\n\n" % (a,
-                       Cnf["Architectures::%s" % a])
-
-           for file in updated_pkgs[suite][a].keys():
-               adv += "    http://%s/%s%s\n" % (
-                               archive, updated_pkgs[suite][a][file]["poolname"], file)
-               adv += "      Size/MD5 checksum: %8s %s\n" % (
-                       updated_pkgs[suite][a][file]["size"],
-                       updated_pkgs[suite][a][file]["md5"])
-           adv += "\n"
+            if a == "source":
+                adv += "  Source archives:\n\n"
+            elif a == "all":
+                adv += "  Architecture independent packages:\n\n"
+            else:
+                adv += "  %s architecture (%s)\n\n" % (a,
+                        Cnf["Architectures::%s" % a])
+
+            for f in updated_pkgs[suite][a].keys():
+                adv += "    http://%s/%s%s\n" % (
+                                archive, updated_pkgs[suite][a][f]["poolname"], f)
+                adv += "      Size/MD5 checksum: %8s %s\n" % (
+                        updated_pkgs[suite][a][f]["size"],
+                        updated_pkgs[suite][a][f]["md5"])
+            adv += "\n"
     adv = adv.rstrip()
 
     Subst["__ADVISORY_TEXT__"] = adv
@@ -283,7 +280,7 @@ def init():
 
     arguments = apt_pkg.ParseCommandLine(Cnf,Arguments,sys.argv)
     Options = Cnf.SubTree("Security-Install::Options")
-    Upload = daklib.queue.Upload(Cnf)
+    Upload = queue.Upload(Cnf)
 
     if Options["Help"]:
         usage(0)
@@ -296,8 +293,8 @@ def init():
     if advisory_number.endswith(".changes"):
         daklib.utils.warn("first argument must be the advisory number.")
         usage(1)
-    for file in changes_files:
-        file = daklib.utils.validate_changes_file_arg(file)
+    for f in changes_files:
+        f = daklib.utils.validate_changes_file_arg(f)
     return (advisory_number, changes_files)
 
 ######################################################################
@@ -328,19 +325,22 @@ def spawn(command):
 
 
 def main():
+    print "Disabled. See your team@security email, and/or contact aj on OFTC."
+    sys.exit(1)
+
     (advisory_number, changes_files) = init()
 
     if not Options["No-Action"]:
         print "About to install the following files: "
-        for file in changes_files:
-            print "  %s" % (file)
+        for f in changes_files:
+            print "  %s" % (f)
         answer = yes_no("Continue (Y/n)?")
         if answer == "n":
             sys.exit(0)
 
     os.chdir(Cnf["Dir::Queue::Accepted"])
     print "Installing packages into the archive..."
-    spawn("dak process-accepted -pa %s" % (Cnf["Dir::Dak"], " ".join(changes_files)))
+    spawn("dak process-accepted -pa %s" % (" ".join(changes_files)))
     os.chdir(Cnf["Dir::Dak"])
     print "Updating file lists for apt-ftparchive..."
     spawn("dak make-suite-file-list")