]> git.decadent.org.uk Git - dak.git/blobdiff - dak/process_accepted.py
Fix all the whitespace / tab breakage, so its now all the same
[dak.git] / dak / process_accepted.py
old mode 100755 (executable)
new mode 100644 (file)
index 18b5b05..bb75d5e
@@ -33,7 +33,7 @@ import errno, fcntl, os, sys, time, re
 import apt_pkg
 import daklib.database
 import daklib.logging
-import daklib.queue 
+import daklib.queue
 import daklib.utils
 
 ###############################################################################
@@ -71,9 +71,9 @@ class Urgency_Log:
         self.timestamp = time.strftime("%Y%m%d%H%M%S")
         # Create the log directory if it doesn't exist
         self.log_dir = Cnf["Dir::UrgencyLog"]
-        if not os.path.exists(self.log_dir):
-            umask = os.umask(00000)
-            os.makedirs(self.log_dir, 02775)
+        if not os.path.exists(self.log_dir) or not os.access(self.log_dir, os.W_OK):
+            daklib.utils.warn("UrgencyLog directory %s does not exist or is not writeable, using /srv/ftp.debian.org/tmp/ instead" % (self.log_dir))
+            self.log_dir = '/srv/ftp.debian.org/tmp/'
         # Open the logfile
         self.log_filename = "%s/.install-urgencies-%s.new" % (self.log_dir, self.timestamp)
         self.log_file = daklib.utils.open_file(self.log_filename, 'w')
@@ -133,15 +133,15 @@ def check():
         # propogate in the case it is in the override tables:
         if changes.has_key("propdistribution"):
             for suite in changes["propdistribution"].keys():
-               if Upload.in_override_p(files[file]["package"], files[file]["component"], suite, files[file].get("dbtype",""), file):
-                   propogate[suite] = 1
-               else:
-                   nopropogate[suite] = 1
+                if Upload.in_override_p(files[file]["package"], files[file]["component"], suite, files[file].get("dbtype",""), file):
+                    propogate[suite] = 1
+                else:
+                    nopropogate[suite] = 1
 
     for suite in propogate.keys():
-       if suite in nopropogate:
-           continue
-       changes["distribution"][suite] = 1
+        if suite in nopropogate:
+            continue
+        changes["distribution"][suite] = 1
 
     for file in files.keys():
         # Check the package is still in the override tables
@@ -163,8 +163,8 @@ def init():
                  ('s',"no-mail", "Dinstall::Options::No-Mail")]
 
     for i in ["automatic", "help", "no-action", "no-lock", "no-mail", "version"]:
-       if not Cnf.has_key("Dinstall::Options::%s" % (i)):
-           Cnf["Dinstall::Options::%s" % (i)] = ""
+        if not Cnf.has_key("Dinstall::Options::%s" % (i)):
+            Cnf["Dinstall::Options::%s" % (i)] = ""
 
     changes_files = apt_pkg.ParseCommandLine(Cnf,Arguments,sys.argv)
     Options = Cnf.SubTree("Dinstall::Options")
@@ -211,8 +211,8 @@ def action ():
         if Options["Automatic"]:
             answer = 'R'
     else:
-        print "INSTALL to " + ", ".join(changes["distribution"].keys()) 
-       print reject_message + summary,
+        print "INSTALL to " + ", ".join(changes["distribution"].keys())
+        print reject_message + summary,
         prompt = "[I]nstall, Skip, Quit ?"
         if Options["Automatic"]:
             answer = 'I'
@@ -281,6 +281,9 @@ def install ():
             maintainer = dsc["maintainer"]
             maintainer = maintainer.replace("'", "\\'")
             maintainer_id = daklib.database.get_or_set_maintainer_id(maintainer)
+            changedby = changes["changed-by"]
+            changedby = changedby.replace("'", "\\'")
+            changedby_id = daklib.database.get_or_set_maintainer_id(changedby)
             fingerprint_id = daklib.database.get_or_set_fingerprint_id(dsc["fingerprint"])
             install_date = time.strftime("%Y-%m-%d")
             filename = files[file]["pool name"] + file
@@ -288,8 +291,8 @@ def install ():
             dsc_location_id = files[file]["location id"]
             if not files[file].has_key("files id") or not files[file]["files id"]:
                 files[file]["files id"] = daklib.database.set_files_id (filename, files[file]["size"], files[file]["md5sum"], dsc_location_id)
-            projectB.query("INSERT INTO source (source, version, maintainer, file, install_date, sig_fpr) VALUES ('%s', '%s', %d, %d, '%s', %s)"
-                           % (package, version, maintainer_id, files[file]["files id"], install_date, fingerprint_id))
+            projectB.query("INSERT INTO source (source, version, maintainer, changedby, file, install_date, sig_fpr) VALUES ('%s', '%s', %d, %d, %d, '%s', %s)"
+                           % (package, version, maintainer_id, changedby_id, files[file]["files id"], install_date, fingerprint_id))
 
             for suite in changes["distribution"].keys():
                 suite_id = daklib.database.get_suite_id(suite)
@@ -309,6 +312,24 @@ def install ():
                     files_id = daklib.database.set_files_id (filename, dsc_files[dsc_file]["size"], dsc_files[dsc_file]["md5sum"], dsc_location_id)
                 projectB.query("INSERT INTO dsc_files (source, file) VALUES (currval('source_id_seq'), %d)" % (files_id))
 
+            # Add the src_uploaders to the DB
+            if dsc.get("dm-upload-allowed", "no") == "yes":
+                uploader_ids = [maintainer_id]
+                if dsc.has_key("uploaders"):
+                    for u in dsc["uploaders"].split(","):
+                        u = u.replace("'", "\\'")
+                        u = u.strip()
+                        uploader_ids.append(
+                            daklib.database.get_or_set_maintainer_id(u))
+                added_ids = {}
+                for u in uploader_ids:
+                    if added_ids.has_key(u):
+                        daklib.utils.warn("Already saw uploader %s for source %s" % (u, package))
+                        continue
+                    added_ids[u]=1
+                    projectB.query("INSERT INTO src_uploaders (source, maintainer) VALUES (currval('source_id_seq'), %d)" % (u))
+
+
     # Add the .deb files to the DB
     for file in files.keys():
         if files[file]["type"] == "deb":
@@ -324,8 +345,8 @@ def install ():
             source = files[file]["source package"]
             source_version = files[file]["source version"]
             filename = files[file]["pool name"] + file
-           if not files[file].has_key("location id") or not files[file]["location id"]:
-               files[file]["location id"] = daklib.database.get_location_id(Cnf["Dir::Pool"],files[file]["component"],daklib.utils.where_am_i())
+            if not files[file].has_key("location id") or not files[file]["location id"]:
+                files[file]["location id"] = daklib.database.get_location_id(Cnf["Dir::Pool"],files[file]["component"],daklib.utils.where_am_i())
             if not files[file].has_key("files id") or not files[file]["files id"]:
                 files[file]["files id"] = daklib.database.set_files_id (filename, files[file]["size"], files[file]["md5sum"], files[file]["location id"])
             source_id = daklib.database.get_source_id (source, source_version)