]> git.decadent.org.uk Git - dak.git/blobdiff - daklib/checks.py
daklib/checks.py: give a nice error for sources with invalid versions
[dak.git] / daklib / checks.py
index bfc8a17297d1f80b7c757ee74d4523e481d7b300..f210d186e43318be8859e2f39658055d52506d12 100644 (file)
@@ -147,7 +147,7 @@ class SignatureAndHashesCheck(Check):
                              .format(filename, os.path.basename(e.filename)))
             raise
         except InvalidHashException as e:
-            raise Reject('{0}: {1}'.format(what, unicode(e)))
+            raise Reject('{0}: {1}'.format(filename, unicode(e)))
 
 class ChangesCheck(Check):
     """Check changes file for syntax errors."""
@@ -375,7 +375,10 @@ class SourceCheck(Check):
 
         version = control['Version']
         if is_orig:
-            version = re_field_version_upstream.match(version).group('upstream')
+            upstream_match = re_field_version_upstream.match(version)
+            if not upstream_match:
+                raise Reject('{0}: Source package includes upstream tarball, but {0} has no Debian revision.'.format(filename, version))
+            version = upstream_match.group('upstream')
         version_match =  re_field_version.match(version)
         version_without_epoch = version_match.group('without_epoch')
         if match.group('version') != version_without_epoch:
@@ -638,11 +641,14 @@ class LintianCheck(Check):
 
         changespath = os.path.join(upload.directory, changes.filename)
         try:
-            if cnf.unprivgroup:
-                cmd = "sudo -H -u {0} -- /usr/bin/lintian --show-overrides --tags-from-file {1} {2}".format(cnf.unprivgroup, temp_filename, changespath)
-            else:
-                cmd = "/usr/bin/lintian --show-overrides --tags-from-file {0} {1}".format(temp_filename, changespath)
-            result, output = commands.getstatusoutput(cmd)
+            cmd = []
+
+            user = cnf.get('Dinstall::UnprivUser') or None
+            if user is not None:
+                cmd.extend(['sudo', '-H', '-u', user])
+
+            cmd.extend(['LINTIAN_COLL_UNPACKED_SKIP_SIG=1', '/usr/bin/lintian', '--show-overrides', '--tags-from-file', temp_filename, changespath])
+            result, output = commands.getstatusoutput(" ".join(cmd))
         finally:
             os.unlink(temp_filename)