X-Git-Url: https://git.decadent.org.uk/gitweb/?a=blobdiff_plain;f=daklib%2Farchive.py;h=866ee891bf162ef2f21b2425672d1f18a8373625;hb=bf958a0d3fbb8dd9882ecedfccf4f0e57885b9ad;hp=463c3de246c3bd9b9df6ecbd3d67e11b24f0be61;hpb=61ad5250da03fd971a06ffbefce6e30454cd9482;p=dak.git diff --git a/daklib/archive.py b/daklib/archive.py index 463c3de2..866ee891 100644 --- a/daklib/archive.py +++ b/daklib/archive.py @@ -625,6 +625,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,10 +634,15 @@ 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: - db_file = self.transaction.get_file(f, source.dsc['Source']) - db_archive_file = session.query(ArchiveFile).filter_by(file=db_file).first() - fs.copy(db_archive_file.path, dst, symlink=True) + 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() + fs.copy(db_archive_file.path, dst, symlink=True) + except KeyError: + # Ignore if get_file could not find it. Upload will + # probably be rejected later. + pass def unpacked_source(self): """Path to unpacked source @@ -906,7 +913,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: