X-Git-Url: https://git.decadent.org.uk/gitweb/?a=blobdiff_plain;f=daklib%2Farchive.py;h=3892ae11fc16ebf281ccc197fee90b78dd08bfff;hb=2bf549a8b6e6bb374d52ae0ea9bf329b91ab41a8;hp=049838ed8d50fb2d08c2d8d59eb5669c3b2f253f;hpb=49c85ab8a723a425cc6539dd138dcd9e0913ab9f;p=dak.git diff --git a/daklib/archive.py b/daklib/archive.py index 049838ed..3892ae11 100644 --- a/daklib/archive.py +++ b/daklib/archive.py @@ -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)