X-Git-Url: https://git.decadent.org.uk/gitweb/?a=blobdiff_plain;f=daklib%2Farchive.py;h=6b4d0dce853b92188b483fe4b18115641f9a61db;hb=d9e994b6ff8a8d57062aaed322396614112c83ac;hp=1887b784a29c2f7d1b32b19a59049ac8f65956db;hpb=0e1cb5368fd8bb1d42aee4e12b77794893417abf;p=dak.git diff --git a/daklib/archive.py b/daklib/archive.py index 1887b784..6b4d0dce 100644 --- a/daklib/archive.py +++ b/daklib/archive.py @@ -125,11 +125,10 @@ class ArchiveTransaction(object): @type fingerprint: L{daklib.dbconn.Fingerprint} @param fingerprint: optional fingerprint - @type source_suites: list of L{daklib.dbconn.Suite} or C{True} + @type source_suites: SQLAlchemy subquery for C{daklib.dbconn.Suite} or C{True} @param source_suites: suites to copy the source from if they are not in C{suite} or C{True} to allow copying from any suite. - This can also be a SQLAlchemy (sub)query object. @type extra_source_archives: list of L{daklib.dbconn.Archive} @param extra_source_archives: extra archives to copy Built-Using sources from @@ -625,6 +624,8 @@ class ArchiveUpload(object): for f in self.changes.files.itervalues(): src = os.path.join(self.original_directory, f.filename) dst = os.path.join(self.directory, f.filename) + if not os.path.exists(src): + continue fs.copy(src, dst) source = self.changes.source @@ -632,7 +633,7 @@ class ArchiveUpload(object): for f in source.files.itervalues(): src = os.path.join(self.original_directory, f.filename) dst = os.path.join(self.directory, f.filename) - if f.filename not in self.changes.files: + if not os.path.exists(dst): try: db_file = self.transaction.get_file(f, source.dsc['Source']) db_archive_file = session.query(ArchiveFile).filter_by(file=db_file).first() @@ -911,7 +912,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.check == 'Enhances').filter(VersionCheck.suite == suite).subquery() source = self.changes.source if source is not None: