]> git.decadent.org.uk Git - dak.git/blobdiff - daklib/archive.py
Add BinaryTimestampCheck.
[dak.git] / daklib / archive.py
index 049838ed8d50fb2d08c2d8d59eb5669c3b2f253f..3892ae11fc16ebf281ccc197fee90b78dd08bfff 100644 (file)
@@ -25,7 +25,7 @@ from daklib.config import Config
 import daklib.upload as upload
 import daklib.utils as utils
 from .fstransactions import FilesystemTransaction
-from .regexes import re_changelog_versions
+from .regexes import re_changelog_versions, re_bin_only_nmu
 
 import apt_pkg
 from datetime import datetime
@@ -136,7 +136,8 @@ class ArchiveTransaction(object):
         source = source_query.filter(DBSource.suites.contains(suite)).first()
         if source is None:
             if source_suites != True:
-                source_query = source_query.filter(DBSource.suites.any(source_suites))
+                source_query = source_query.join(DBSource.suites) \
+                    .filter(Suite.suite_id == source_suites.c.id)
             source = source_query.first()
             if source is None:
                 raise ArchiveException('{0}: trying to install to {1}, but could not find source'.format(binary.hashed_file.filename, suite.suite_name))
@@ -692,7 +693,7 @@ class ArchiveUpload(object):
            daklib.dbconn.Override or None
         """
         if suite.overridesuite is not None:
-            suite = session.query(Suite).filter_by(suite_name=suite.overridesuite).one()
+            suite = self.session.query(Suite).filter_by(suite_name=suite.overridesuite).one()
 
         query = self.session.query(Override).filter_by(suite=suite, package=binary.control['Package']) \
                 .join(Component).filter(Component.component_name == binary.component) \
@@ -714,7 +715,7 @@ class ArchiveUpload(object):
            daklib.dbconn.Override or None
         """
         if suite.overridesuite is not None:
-            suite = session.query(Suite).filter_by(suite_name=suite.overridesuite).one()
+            suite = self.session.query(Suite).filter_by(suite_name=suite.overridesuite).one()
 
         # XXX: component for source?
         query = self.session.query(Override).filter_by(suite=suite, package=source.dsc['Source']) \
@@ -744,6 +745,7 @@ class ArchiveUpload(object):
                     checks.HashesCheck,
                     checks.SourceCheck,
                     checks.BinaryCheck,
+                    checks.BinaryTimestampCheck,
                     checks.ACLCheck,
                     checks.SingleDistributionCheck,
                     checks.NoSourceOnlyCheck,
@@ -802,7 +804,7 @@ class ArchiveUpload(object):
         changed_by = get_or_set_maintainer(control.get('Changed-By', control['Maintainer']), self.session)
 
         if source_suites is None:
-            source_suites = self.session.query(Suite).join(VersionCheck, VersionCheck.reference_id == Suite.suite_id).filter(VersionCheck.suite == suite).subquery()
+            source_suites = self.session.query(Suite).join((VersionCheck, VersionCheck.reference_id == Suite.suite_id)).filter(VersionCheck.suite == suite).subquery()
 
         source = self.changes.source
         if source is not None:
@@ -898,7 +900,13 @@ class ArchiveUpload(object):
 
         remaining = []
         for f in byhand:
-            package, version, archext = f.filename.split('_', 2)
+            parts = f.filename.split('_', 2)
+            if len(parts) != 3:
+                print "W: unexpected byhand filename {0}. No automatic processing.".format(f.filename)
+                remaining.append(f)
+                continue
+
+            package, version, archext = parts
             arch, ext = archext.split('.', 1)
 
             rule = automatic_byhand_packages.get(package)