]> git.decadent.org.uk Git - dak.git/commitdiff
Allow packages not ending in -dbgsym in the debug section
authorAnsgar Burchardt <ansgar@debian.org>
Sun, 16 Aug 2015 18:34:48 +0000 (20:34 +0200)
committerAnsgar Burchardt <ansgar@debian.org>
Sun, 16 Aug 2015 18:44:30 +0000 (20:44 +0200)
daklib/checks.py

index 86040268ac7d3bc0d5ac458cd84952621ffda40a..5a167ef6f2d1565015eb0c6817707b474aca5b18 100644 (file)
@@ -287,7 +287,6 @@ class BinaryCheck(Check):
     """Check binary packages for syntax errors."""
     def check(self, upload):
         debug_deb_name_postfix = "-dbgsym"
-        debug_deb_section = "debug"
         # XXX: Handle dynamic debug section name here
 
         for binary in upload.changes.binaries:
@@ -297,14 +296,17 @@ class BinaryCheck(Check):
                         for binary in upload.changes.binaries}
 
         for name, binary in binaries.items():
-            if binary.section == debug_deb_section:
-                # If we have a Binary package in the Debug section, we
+            if name in upload.changes.binary_names:
+                # Package is listed in Binary field. Everything is good.
+                pass
+            elif daklib.utils.is_in_debug_section(binary.control):
+                # If we have a binary package in the debug section, we
                 # can allow it to not be present in the Binary field
                 # in the .changes file, so long as its name (without
                 # -dbgsym) is present in the Binary list.
                 if not name.endswith(debug_deb_name_postfix):
-                    raise Reject('Package {0} is in the Debug section, but '
-                                 'does not end in -dbgsym.'.format(name))
+                    raise Reject('Package {0} is in the debug section, but '
+                                 'does not end in {1}.'.format(name, debug_deb_name_postfix))
 
                 # Right, so, it's named properly, let's check that
                 # the corresponding package is in the Binary list
@@ -314,15 +316,10 @@ class BinaryCheck(Check):
                         "Debug package {debug}'s corresponding binary package "
                         "{origin} is not present in the Binary field.".format(
                             debug=name, origin=origin_package_name))
-
-                # So, now we're sure the package is named correctly, and
-                # we have the other package. Lets let this slide through.
-                continue
-
-            if name not in upload.changes.binary_names:
+            else:
                 # Someone was a nasty little hacker and put a package
                 # into the .changes that isn't in debian/control. Bad,
-                # Bad hacker.
+                # bad person.
                 raise Reject('Package {0} is not mentioned in Binary field in changes'.format(name))
 
         return True