# 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
# 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():
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()