- # Make sure we recognise the format of the Files: field
- format = changes.get("format", "0.0").split(".",1)
- if len(format) == 2:
- format = int(format[0]), int(format[1])
- else:
- format = int(float(format[0])), 0
-
- check_hash(".changes", files, "md5sum", apt_pkg.md5sum)
- check_hash(".dsc", dsc_files, "md5sum", apt_pkg.md5sum)
-
- if format >= (1,8):
- hashes = [("sha1", apt_pkg.sha1sum),
- ("sha256", apt_pkg.sha256sum)]
- else:
- hashes = []
-
- 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)
-
- 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)
-
-################################################################################
-
-def check_hash (where, files, key, testfn, basedict = None):
- if basedict:
- for file in basedict.keys():
- if file not in files:
- reject("%s: no %s checksum" % (file, key))
-
- for file in files.keys():
- if basedict and file not in basedict:
- reject("%s: extraneous entry in %s checksums" % (file, key))
-
- try:
- file_handle = daklib.utils.open_file(file)
- except daklib.utils.cant_open_exc:
- continue
+ utils.check_hash(".changes", files, "md5", apt_pkg.md5sum)
+ utils.check_size(".changes", files)
+ utils.check_hash(".dsc", dsc_files, "md5", apt_pkg.md5sum)
+ utils.check_size(".dsc", dsc_files)