]> git.decadent.org.uk Git - dak.git/commitdiff
daklib/archive.py: allow source to be in enhanced suite
authorAnsgar Burchardt <ansgar@debian.org>
Wed, 26 Sep 2012 20:05:55 +0000 (22:05 +0200)
committerAnsgar Burchardt <ansgar@debian.org>
Wed, 26 Sep 2012 20:31:04 +0000 (22:31 +0200)
This allows binNMUs for which the source is in stable to be accepted
into proposed-updates.

A better fix would be to handle this in _install_to_suite which already
does the right thing when source_suites is None.

daklib/archive.py

index 6aeeac4b1c5764bac3582576668994989e633aee..7dcc1af035c015c3d8c84a61bc518ac1980bb1d3 100644 (file)
@@ -1151,7 +1151,14 @@ class ArchiveUpload(object):
             if policy_queue is not None:
                 redirected_suite = policy_queue.suite
 
-            source_suites = self.session.query(Suite).filter(Suite.suite_id.in_([suite.suite_id, redirected_suite.suite_id])).subquery()
+            # source can be in the suite we install to or any suite we enhance
+            source_suite_ids = set([suite.suite_id, redirected_suite.suite_id])
+            for enhanced_suite_id, in self.session.query(VersionCheck.reference_id) \
+                    .filter(VersionCheck.suite_id.in_(source_suite_ids)) \
+                    .filter(VersionCheck.check == 'Enhances'):
+                source_suite_ids.add(enhanced_suite_id)
+
+            source_suites = self.session.query(Suite).filter(Suite.suite_id.in_(source_suite_ids)).subquery()
 
             source_component_func = lambda source: self._source_override(overridesuite, source).component
             binary_component_func = lambda binary: self._binary_component(overridesuite, binary)