]> git.decadent.org.uk Git - dak.git/blobdiff - daklib/checks.py
Add process-commands program and activate new DM implementation.
[dak.git] / daklib / checks.py
index 7298026208a82a8f231812b253a581f7c9b5d2f0..cae801e489f341c370d22ad982313ff0553fe4b6 100644 (file)
@@ -30,6 +30,7 @@ from daklib.regexes import *
 from daklib.textutils import fix_maintainer, ParseMaintError
 import daklib.lintian as lintian
 import daklib.utils as utils
+from daklib.upload import InvalidHashException
 
 import apt_inst
 import apt_pkg
@@ -173,8 +174,8 @@ class HashesCheck(Check):
             for f in changes.files.itervalues():
                 f.check(upload.directory)
             source = changes.source
-            what = source.filename
             if source is not None:
+                what = source.filename
                 for f in source.files.itervalues():
                     f.check(upload.directory)
         except IOError as e:
@@ -183,6 +184,8 @@ class HashesCheck(Check):
                              'Perhaps you need to include it in your upload?'
                              .format(what, os.path.basename(e.filename)))
             raise
+        except InvalidHashException as e:
+            raise Reject('{0}: {1}'.format(what, unicode(e)))
 
 class ExternalHashesCheck(Check):
     """Checks hashes in .changes and .dsc against an external database."""
@@ -461,8 +464,11 @@ class ACLCheck(Check):
             # XXX: Drop DMUA part here and switch to new implementation.
             # XXX: Send warning mail once users can set the new DMUA flag
             dmua_status, dmua_reason = self._check_dmua(upload)
-            if not dmua_status:
-                return False, dmua_reason
+            if acl_per_source is None:
+                if not dmua_status:
+                    return False, dmua_reason
+                else:
+                    upload.warn('DM flag not set, but accepted as DMUA was set.')
             #if acl_per_source is None:
             #    return False, "not allowed to upload source package '{0}'".format(source_name)
         if acl.deny_per_source and acl_per_source is not None: