X-Git-Url: https://git.decadent.org.uk/gitweb/?a=blobdiff_plain;f=dak%2Fprocess_accepted.py;h=90edaf55d2e73f1ad3f53a5452b9461e7f1fc44e;hb=330833cdf958e43962e208f8021e0e44f1fc100c;hp=7f42d405753382ef7f7e6c51e43a5e7c50f56db5;hpb=641dd7dc1f8cef7ccd6059a0240c768ace373608;p=dak.git diff --git a/dak/process_accepted.py b/dak/process_accepted.py index 7f42d405..90edaf55 100755 --- a/dak/process_accepted.py +++ b/dak/process_accepted.py @@ -309,6 +309,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": @@ -476,34 +494,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")