@ -110,6 +110,7 @@ def get_assertions(temp_dir, unpack_dir, file_names):
out_manifest = False
error = False
optionals = None
for file_name in file_names:
if file_name.startswith("gitian"):
@ -130,24 +131,29 @@ def get_assertions(temp_dir, unpack_dir, file_names):
f.close()
if assertion['out_manifest']:
if out_manifest:
if out_manifest != assertion['out_manifest'] or release != assertion['release'] or name != assertion['name']:
print>>sys.stderr, 'not all out manifests/releases/names are identical'
if out_manifest != assertion['out_manifest'] or release != assertion['release'] or name != assertion['name'] or optionals != assertion.get('optionals', []) :
print>>sys.stderr, 'not all out manifests/releases/names/optionals are identical'
error = True
continue
else:
out_manifest = assertion['out_manifest']
release = assertion['release']
name = assertion['name']
optionals = assertion.get('optionals', [])
if out_manifest:
for line in out_manifest.split("\n"):
if line != "":
shasum = line[0:64]
summed_file = line[66:]
if sums[summed_file] != shasum:
if not sums.has_key(summed_file):
if not summed_file in optionals:
print>>sys.stderr, "missing file %s" %(summed_file)
error = True
elif sums[summed_file] != shasum:
print>>sys.stderr, "sha256sum mismatch on %s" %(summed_file)
error = True
del to_check[summed_file]
del to_check[summed_file]
if len(to_check) > 0 and quiet == 0:
print>>sys.stderr, "Some of the files were not checksummed:"
for key in to_check:
@ -156,7 +162,7 @@ def get_assertions(temp_dir, unpack_dir, file_names):
print>>sys.stderr, 'No build assertions found'
error = True
manifest = { 'sums' : sums, 'release' : release, 'name': name }
manifest = { 'sums' : sums, 'release' : release, 'name': name, 'optionals': optionals }
return (not error, assertions, manifest)
def import_keys(temp_dir, config):