]> git.decadent.org.uk Git - dak.git/blobdiff - daklib/queue.py
Move lintian parsing to daklib.lintian and add tests.
[dak.git] / daklib / queue.py
index 66424d86eb6a5e30424026bb3f851ae49ef5819c..da7f5a2148acfd52c27a5fd79215833d5a6be541 100755 (executable)
@@ -54,6 +54,7 @@ from summarystats import SummaryStats
 from utils import parse_changes, check_dsc_files
 from textutils import fix_maintainer
 from binary import Binary
+from lintian import parse_lintian_output
 
 ###############################################################################
 
@@ -1317,18 +1318,7 @@ class Upload(object):
             if self.logger:
                 self.logger.log([self.pkg.changes_file, "check_lintian"] + list(txt))
 
-        # We have output of lintian, this package isn't clean. Lets parse it and see if we
-        # are having a victim for a reject.
-        # W: tzdata: binary-without-manpage usr/sbin/tzconfig
-        for line in output.split('\n'):
-            m = re_parse_lintian.match(line)
-            if m is None:
-                continue
-
-            etype = m.group(1)
-            epackage = m.group(2)
-            etag = m.group(3)
-            etext = m.group(4)
+        for etype, epackage, etag, etext in parse_lintian_output(output):
 
             # So lets check if we know the tag at all.
             if etag not in tags:
@@ -1336,11 +1326,11 @@ class Upload(object):
 
             if etype == 'O':
                 # We know it and it is overriden. Check that override is allowed.
-                if etag in lintiantags['warning']:
+                if etag in lintiantags['nonfatal']:
                     # The tag is overriden, and it is allowed to be overriden.
                     # Don't add a reject message.
                     pass
-                elif etag in lintiantags['error']:
+                elif etag in lintiantags['fatal']:
                     # The tag is overriden - but is not allowed to be
                     self.rejects.append("%s: Overriden tag %s found, but this tag may not be overwritten." % (epackage, etag))
                     log("ftpmaster does not allow tag to be overridable", etag)
@@ -1348,7 +1338,7 @@ class Upload(object):
                 # Tag is known, it is not overriden, direct reject.
                 self.rejects.append("%s: Found lintian output: '%s %s', automatically rejected package." % (epackage, etag, etext))
                 # Now tell if they *might* override it.
-                if etag in lintiantags['warning']:
+                if etag in lintiantags['nonfatal']:
                     log("auto rejecting", "overridable", etag)
                     self.rejects.append("%s: If you have a good reason, you may override this lintian tag." % (epackage))
                 else:
@@ -1969,7 +1959,7 @@ distribution."""
         # Set up our copy queues (e.g. buildd queues)
         for suite_name in self.pkg.changes["distribution"].keys():
             suite = get_suite(suite_name, session)
-            for q in suite.copyqueues:
+            for q in suite.copy_queues:
                 for f in poolfiles:
                     q.add_file_from_pool(f)
 
@@ -2039,9 +2029,9 @@ distribution."""
         """
         h = Holding()
         utils.move(os.path.join(h.holding_dir, self.pkg.changes_file),
-                   dest, perms=int(queue.changesperms, 8))
+                   queue.path, perms=int(queue.change_perms, 8))
         for f in self.pkg.files.keys():
-            utils.move(os.path.join(h.holding_dir, f), dest, perms=int(queue.perms, 8))
+            utils.move(os.path.join(h.holding_dir, f), queue.path, perms=int(queue.perms, 8))
 
     ###########################################################################