From 1c8bdd7e24375510a20d7cb617c213bc8b01cbd1 Mon Sep 17 00:00:00 2001 From: Patrick Gartung Date: Wed, 16 Aug 2017 21:03:14 -0500 Subject: buildcache fixes: index.html & unsigned installs This fixes a syntax error in the index.html file generated by the "spack buildcache" command when creating build caches. This also fixes support for installing unsigned binaries. --- lib/spack/spack/binary_distribution.py | 41 +++++++++++++++++----------------- 1 file changed, 21 insertions(+), 20 deletions(-) (limited to 'lib') diff --git a/lib/spack/spack/binary_distribution.py b/lib/spack/spack/binary_distribution.py index e2ae89ac19..2de14938a4 100644 --- a/lib/spack/spack/binary_distribution.py +++ b/lib/spack/spack/binary_distribution.py @@ -194,15 +194,15 @@ def sign_tarball(yes_to_all, key, force, specfile_path): def generate_index(outdir, indexfile_path): f = open(indexfile_path, 'w') - header = """ - -""" - footer = "" + header = """\n +\n\n +\n""" + footer = "\n\n" paths = os.listdir(outdir + '/build_cache') f.write(header) for path in paths: rel = os.path.basename(path) - f.write('
  • ' % (rel, rel)) + f.write('
  • %s\n' % (rel, rel)) f.write(footer) f.close() @@ -381,26 +381,27 @@ def extract_tarball(spec, filename, yes_to_all=False, force=False): with closing(tarfile.open(spackfile_path, 'r')) as tar: tar.extractall(stagepath) - if os.path.exists('%s.asc' % specfile_path): - Gpg.verify('%s.asc' % specfile_path, specfile_path) - os.remove(specfile_path + '.asc') - else: - if not yes_to_all: + if not yes_to_all: + if os.path.exists('%s.asc' % specfile_path): + Gpg.verify('%s.asc' % specfile_path, specfile_path) + os.remove(specfile_path + '.asc') + else: raise NoVerifyException() # get the sha256 checksum of the tarball checksum = checksum_tarball(tarfile_path) - # get the sha256 checksum recorded at creation - spec_dict = {} - with open(specfile_path, 'r') as inputfile: - content = inputfile.read() - spec_dict = yaml.load(content) - bchecksum = spec_dict['binary_cache_checksum'] - - # if the checksums don't match don't install - if bchecksum['hash'] != checksum: - raise NoChecksumException() + if not yes_to_all: + # get the sha256 checksum recorded at creation + spec_dict = {} + with open(specfile_path, 'r') as inputfile: + content = inputfile.read() + spec_dict = yaml.load(content) + bchecksum = spec_dict['binary_cache_checksum'] + + # if the checksums don't match don't install + if bchecksum['hash'] != checksum: + raise NoChecksumException() with closing(tarfile.open(tarfile_path, 'r')) as tar: tar.extractall(path=join_path(installpath, '..')) -- cgit v1.2.3-60-g2f50