]> git.decadent.org.uk Git - dak.git/blobdiff - dak/process_accepted.py
[??] sync with ftp-master/dak master
[dak.git] / dak / process_accepted.py
index e03f798459b163d0b0b04c36f85a098e57b08a1e..20aab49515e5af6be63497c7578cd749a0465705 100755 (executable)
@@ -309,6 +309,19 @@ 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))
+                for u in uploader_ids:
+                    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":
@@ -476,34 +489,19 @@ def stable_install (summary, short_summary):
     # Add the binaries to stable (and remove it/them from proposed-updates)
     for file in files.keys():
         if files[file]["type"] == "deb":
-           binNMU = 0
             package = files[file]["package"]
             version = files[file]["version"]
             architecture = files[file]["architecture"]
             q = projectB.query("SELECT b.id FROM binaries b, architecture a WHERE b.package = '%s' AND b.version = '%s' AND (a.arch_string = '%s' OR a.arch_string = 'all') AND b.architecture = a.id" % (package, version, architecture))
             ql = q.getresult()
             if not ql:
-               suite_id = daklib.database.get_suite_id('proposed-updates')
-               que = "SELECT b.version FROM binaries b JOIN bin_associations ba ON (b.id = ba.bin) JOIN suite su ON (ba.suite = su.id) WHERE b.package = '%s' AND (ba.suite = '%s')" % (package, suite_id)
-               q = projectB.query(que)
-
-               # Reduce the query results to a list of version numbers
-               ql = [ i[0] for i in q.getresult() ]
-               if not ql:
-                   daklib.utils.fubar("[INTERNAL ERROR] couldn't find '%s' (%s for %s architecture) in binaries table." % (package, version, architecture))
-               else:
-                   for x in ql:
-                       if re.match(re.compile(r"%s((\.0)?\.)|(\+b)\d+$" % re.escape(version)),x):
-                           binNMU = 1
-                           break
-           if not binNMU:
-               binary_id = ql[0][0]
-               suite_id = daklib.database.get_suite_id('proposed-updates')
-               projectB.query("DELETE FROM bin_associations WHERE suite = '%s' AND bin = '%s'" % (suite_id, binary_id))
-               suite_id = daklib.database.get_suite_id('stable')
-               projectB.query("INSERT INTO bin_associations (suite, bin) VALUES ('%s', '%s')" % (suite_id, binary_id))
-           else:
-                del files[file]
+                daklib.utils.fubar("[INTERNAL ERROR] couldn't find '%s' (%s for %s architecture) in binaries table." % (package, version, architecture))
+
+            binary_id = ql[0][0]
+            suite_id = daklib.database.get_suite_id('proposed-updates')
+            projectB.query("DELETE FROM bin_associations WHERE suite = '%s' AND bin = '%s'" % (suite_id, binary_id))
+            suite_id = daklib.database.get_suite_id('stable')
+            projectB.query("INSERT INTO bin_associations (suite, bin) VALUES ('%s', '%s')" % (suite_id, binary_id))
 
     projectB.query("COMMIT WORK")
 
@@ -538,7 +536,7 @@ def stable_install (summary, short_summary):
     if not Options["No-Mail"] and changes["architecture"].has_key("source"):
         Subst["__SUITE__"] = " into stable"
         Subst["__SUMMARY__"] = summary
-        mail_message = daklib.utils.TemplateSubst(Subst,Cnf["Dir::Templates"]+"/process-accepted.installed")
+        mail_message = daklib.utils.TemplateSubst(Subst,Cnf["Dir::Templates"]+"/process-accepted.install")
         daklib.utils.send_mail(mail_message)
         Upload.announce(short_summary, 1)