X-Git-Url: https://git.decadent.org.uk/gitweb/?a=blobdiff_plain;ds=sidebyside;f=daklib%2Fqueue.py;h=3ab87246d1601f1fc5dd52912293deb155f95b38;hb=bed91400f8f58d0d44577984ac4360068b95a5b2;hp=519899fb44e6f0f45d5690bb2e14244d7cf4a892;hpb=076d0a9a0f88c8e86fc206b491f73ea6e8c71fa0;p=dak.git diff --git a/daklib/queue.py b/daklib/queue.py index 519899fb..3ab87246 100755 --- a/daklib/queue.py +++ b/daklib/queue.py @@ -454,7 +454,7 @@ class Upload(object): # Check the .changes is non-empty if not self.pkg.files: - self.rejects.append("%s: nothing to do (Files field is empty)." % (base_filename)) + self.rejects.append("%s: nothing to do (Files field is empty)." % (os.path.basename(self.pkg.changes_file))) return False # Changes was syntactically valid even if we'll reject @@ -1899,8 +1899,8 @@ distribution.""" # Make sure that our source object is up-to-date session.expire(source) - # Add changelog information to the database - self.store_changelog() + # Add changelog information to the database + self.store_changelog() # Install the files into the pool for newfile, entry in self.pkg.files.items(): @@ -2677,16 +2677,33 @@ distribution.""" return too_new def store_changelog(self): + + # Skip binary-only upload if it is not a bin-NMU + if not self.pkg.changes['architecture'].has_key('source'): + from daklib.regexes import re_bin_only_nmu + if not re_bin_only_nmu.search(self.pkg.changes['version']): + return + session = DBConn().session() + # Check if upload already has a changelog entry + query = """SELECT changelog_id FROM changes WHERE source = :source + AND version = :version AND architecture = :architecture AND changelog_id != 0""" + if session.execute(query, {'source': self.pkg.changes['source'], \ + 'version': self.pkg.changes['version'], \ + 'architecture': " ".join(self.pkg.changes['architecture'].keys())}).rowcount: + session.commit() + return + # Add current changelog text into changelogs_text table, return created ID query = "INSERT INTO changelogs_text (changelog) VALUES (:changelog) RETURNING id" ID = session.execute(query, {'changelog': self.pkg.changes['changes']}).fetchone()[0] # Link ID to the upload available in changes table query = """UPDATE changes SET changelog_id = :id WHERE source = :source - AND version = :version AND architecture LIKE '%source%'""" + AND version = :version AND architecture = :architecture""" session.execute(query, {'id': ID, 'source': self.pkg.changes['source'], \ - 'version': self.pkg.changes['version']}) + 'version': self.pkg.changes['version'], \ + 'architecture': " ".join(self.pkg.changes['architecture'].keys())}) session.commit()