]> git.decadent.org.uk Git - dak.git/commitdiff
Check for debug suite for upload suite, not override suite
authorAnsgar Burchardt <ansgar@debian.org>
Sat, 16 Jan 2016 14:07:47 +0000 (15:07 +0100)
committerAnsgar Burchardt <ansgar@debian.org>
Sat, 16 Jan 2016 14:07:47 +0000 (15:07 +0100)
Debug packages are exempt from NEW if the target suite has a seperate
debug suite.  However the code checked if the target's override suite
had a debug suite...  For the Debian archive this went unnoticed as
experimental's override suite is unstable and both suites have a
seperate debug suite.

Reported-by: Matthias Klumpp <mak@debian.org>
daklib/archive.py

index 0174bea9f815cd7d70bf2f2114b19bf759be5e67..e4140a1266d403138cd0ff9de5a454682474d484 100644 (file)
@@ -778,7 +778,7 @@ class ArchiveUpload(object):
         suites = session.query(Suite).filter(Suite.suite_name.in_(suite_names))
         return suites
 
         suites = session.query(Suite).filter(Suite.suite_name.in_(suite_names))
         return suites
 
-    def _check_new_binary_overrides(self, suite):
+    def _check_new_binary_overrides(self, suite, overridesuite):
         new = False
         source = self.changes.source
 
         new = False
         source = self.changes.source
 
@@ -786,7 +786,7 @@ class ArchiveUpload(object):
             packages = source.package_list.packages_for_suite(suite)
             binaries = [ entry for entry in packages ]
             for b in binaries:
             packages = source.package_list.packages_for_suite(suite)
             binaries = [ entry for entry in packages ]
             for b in binaries:
-                override = self._binary_override(suite, b)
+                override = self._binary_override(overridesuite, b)
                 if override is None:
                     self.warnings.append('binary:{0} is NEW.'.format(b.name))
                     new = True
                 if override is None:
                     self.warnings.append('binary:{0} is NEW.'.format(b.name))
                     new = True
@@ -795,19 +795,22 @@ class ArchiveUpload(object):
             for b in binaries:
                 if utils.is_in_debug_section(b.control) and suite.debug_suite is not None:
                     continue
             for b in binaries:
                 if utils.is_in_debug_section(b.control) and suite.debug_suite is not None:
                     continue
-                override = self._binary_override(suite, b)
+                override = self._binary_override(overridesuite, b)
                 if override is None:
                     self.warnings.append('binary:{0} is NEW.'.format(b.name))
                     new = True
 
         return new
 
                 if override is None:
                     self.warnings.append('binary:{0} is NEW.'.format(b.name))
                     new = True
 
         return new
 
-    def _check_new(self, suite):
+    def _check_new(self, suite, overridesuite):
         """Check if upload is NEW
 
         An upload is NEW if it has binary or source packages that do not have
         """Check if upload is NEW
 
         An upload is NEW if it has binary or source packages that do not have
-        an override in C{suite} OR if it references files ONLY in a tainted
-        archive (eg. when it references files in NEW).
+        an override in C{overridesuite} OR if it references files ONLY in a
+        tainted archive (eg. when it references files in NEW).
+
+        Debug packages (*-dbgsym in Section: debug) are not considered as NEW
+        if C{suite} has a seperate debug suite.
 
         @rtype:  bool
         @return: C{True} if the upload is NEW, C{False} otherwise
 
         @rtype:  bool
         @return: C{True} if the upload is NEW, C{False} otherwise
@@ -816,10 +819,10 @@ class ArchiveUpload(object):
         new = False
 
         # Check for missing overrides
         new = False
 
         # Check for missing overrides
-        if self._check_new_binary_overrides(suite):
+        if self._check_new_binary_overrides(suite, overridesuite):
             new = True
         if self.changes.source is not None:
             new = True
         if self.changes.source is not None:
-            override = self._source_override(suite, self.changes.source)
+            override = self._source_override(overridesuite, self.changes.source)
             if override is None:
                 self.warnings.append('source:{0} is NEW.'.format(self.changes.source.dsc['Source']))
                 new = True
             if override is None:
                 self.warnings.append('source:{0} is NEW.'.format(self.changes.source.dsc['Source']))
                 new = True
@@ -851,7 +854,7 @@ class ArchiveUpload(object):
             overridesuite = suite
             if suite.overridesuite is not None:
                 overridesuite = session.query(Suite).filter_by(suite_name=suite.overridesuite).one()
             overridesuite = suite
             if suite.overridesuite is not None:
                 overridesuite = session.query(Suite).filter_by(suite_name=suite.overridesuite).one()
-            if self._check_new(overridesuite):
+            if self._check_new(suite, overridesuite):
                 self.new = True
             final_suites.add(suite)
 
                 self.new = True
             final_suites.add(suite)