"""exception raised by failing checks"""
pass
-class RejectStupidMaintainerException(Exception):
+class RejectExternalFilesMismatch(Reject):
"""exception raised by failing the external hashes check"""
def __str__(self):
return
if ext_size != f.size:
- raise RejectStupidMaintainerException(f.filename, 'size', f.size, ext_size)
+ raise RejectExternalFilesMismatch(f.filename, 'size', f.size, ext_size)
if ext_md5sum != f.md5sum:
- raise RejectStupidMaintainerException(f.filename, 'md5sum', f.md5sum, ext_md5sum)
+ raise RejectExternalFilesMismatch(f.filename, 'md5sum', f.md5sum, ext_md5sum)
if ext_sha1sum != f.sha1sum:
- raise RejectStupidMaintainerException(f.filename, 'sha1sum', f.sha1sum, ext_sha1sum)
+ raise RejectExternalFilesMismatch(f.filename, 'sha1sum', f.sha1sum, ext_sha1sum)
if ext_sha256sum != f.sha256sum:
- raise RejectStupidMaintainerException(f.filename, 'sha256sum', f.sha256sum, ext_sha256sum)
+ raise RejectExternalFilesMismatch(f.filename, 'sha256sum', f.sha256sum, ext_sha256sum)
def check(self, upload):
cnf = Config()
fn = binary.hashed_file.filename
control = binary.control
- for field in ('Package', 'Architecture', 'Version', 'Description'):
+ for field in ('Package', 'Architecture', 'Version', 'Description', 'Section'):
if field not in control:
raise Reject('{0}: Missing mandatory field {0}.'.format(fn, field))
except:
raise Reject('{0}: APT could not parse {1} field'.format(fn, field))
+ # "Multi-Arch: no" breaks wanna-build, #768353
+ multi_arch = control.get("Multi-Arch")
+ if multi_arch == 'no':
+ raise Reject('{0}: Multi-Arch: no support in Debian is broken (#768353)'.format(fn))
+
class BinaryTimestampCheck(Check):
"""check timestamps of files in binary packages
if not allow_no_arch_indep_uploads \
and 'all' not in changes.architectures \
+ and 'experimental' not in changes.distributions \
and changes.source.package_list.has_arch_indep_packages():
raise Reject('Uploads not including architecture-independent packages are not allowed.')