* dak/process_unchecked.py: check_md5sum becomes check_hashes
and check_hash. If changes format is 1.8 or later, also check
- checksums-sha1 and checksums-sha256 for both .changes and .dsc.
+ checksums-sha1 and checksums-sha256 for both .changes and .dsc,
+ and reject on presence/absence of un/expected checksums-* fields.
2008-04-07 Joerg Jaspert <joerg@debian.org>
else:
hashes = []
+ for x in changes:
+ if x.startswith("checksum-"):
+ h = x.split("-",1)[1]
+ if h not in dict(hashes):
+ reject("Unsupported checksum field in .changes" % (h))
+
+ for x in dsc:
+ if x.startswith("checksum-"):
+ h = x.split("-",1)[1]
+ if h not in dict(hashes):
+ reject("Unsupported checksum field in .dsc" % (h))
+
for h,f in hashes:
- fs = daklib.utils.build_file_list(changes, 0, "checksums-%s" % h, h)
- check_hash( ".changes %s" % (h), fs, h, f, files)
+ try:
+ fs = daklib.utils.build_file_list(changes, 0, "checksums-%s" % h, h)
+ check_hash(".changes %s" % (h), fs, h, f, files)
+ except daklib.utils.no_files_exc:
+ reject("No Checksums-%s: field in .changes file" % (h))
if "source" not in changes["architecture"]: continue
- fs = daklib.utils.build_file_list(dsc, 1, "checksums-%s" % h, h)
- check_hash( ".dsc %s" % (h), fs, h, f, dsc_files)
+ try:
+ fs = daklib.utils.build_file_list(dsc, 1, "checksums-%s" % h, h)
+ check_hash(".dsc %s" % (h), fs, h, f, dsc_files)
+ except daklib.utils.no_files_exc:
+ reject("No Checksums-%s: field in .changes file" % (h))
################################################################################