X-Git-Url: https://git.decadent.org.uk/gitweb/?a=blobdiff_plain;f=daklib%2Fchecks.py;h=9916cc755fab492a35e7763692f1ccc6cdde416d;hb=391f5ec09a119131dc846b796ca791f4cecc69e4;hp=5a167ef6f2d1565015eb0c6817707b474aca5b18;hpb=c4e707cdaa0e3b9faa96253d869440bf6e9d61da;p=dak.git diff --git a/daklib/checks.py b/daklib/checks.py index 5a167ef6..9916cc75 100644 --- a/daklib/checks.py +++ b/daklib/checks.py @@ -718,11 +718,23 @@ class NoSourceOnlyCheck(Check): if not allow_no_arch_indep_uploads \ and 'all' not in changes.architectures \ and 'experimental' not in changes.distributions \ + and 'unstable' not in changes.distributions \ + and 'sid' not in changes.distributions \ and changes.source.package_list.has_arch_indep_packages(): raise Reject('Uploads not including architecture-independent packages are not allowed.') return True +class ArchAllBinNMUCheck(Check): + """Check for arch:all binNMUs""" + def check(self, upload): + changes = upload.changes + + if 'all' in changes.architectures and changes.changes.get('Binary-Only') == 'yes': + raise Reject('arch:all binNMUs are not allowed.') + + return True + class LintianCheck(Check): """Check package using lintian""" def check(self, upload): @@ -797,6 +809,14 @@ class SourceFormatCheck(Check): if query.first() is None: raise Reject('source format {0} is not allowed in suite {1}'.format(source_format, suite.suite_name)) +class SuiteCheck(Check): + def per_suite_check(self, upload, suite): + if not suite.accept_source_uploads and upload.changes.source is not None: + raise Reject('The suite "{0}" does not accept source uploads.'.format(suite.suite_name)) + if not suite.accept_binary_uploads and len(upload.changes.binaries) != 0: + raise Reject('The suite "{0}" does not accept binary uploads.'.format(suite.suite_name)) + return True + class SuiteArchitectureCheck(Check): def per_suite_check(self, upload, suite): session = upload.session