diff options
author | Patrick Gartung <gartung@fnal.gov> | 2017-08-16 21:03:14 -0500 |
---|---|---|
committer | scheibelp <scheibel1@llnl.gov> | 2017-08-16 19:03:14 -0700 |
commit | 1c8bdd7e24375510a20d7cb617c213bc8b01cbd1 (patch) | |
tree | 7935d56a1e5364874cf533b10bd3ad4c1a203cc1 | |
parent | dd790fdaaeebbf9e1d0c3a888abad3b7d49903e5 (diff) | |
download | spack-1c8bdd7e24375510a20d7cb617c213bc8b01cbd1.tar.gz spack-1c8bdd7e24375510a20d7cb617c213bc8b01cbd1.tar.bz2 spack-1c8bdd7e24375510a20d7cb617c213bc8b01cbd1.tar.xz spack-1c8bdd7e24375510a20d7cb617c213bc8b01cbd1.zip |
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.
-rw-r--r-- | lib/spack/spack/binary_distribution.py | 41 |
1 files changed, 21 insertions, 20 deletions
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 = """<html> -<head></head> -<list>""" - footer = "</list></html>" + header = """<html>\n +<head>\n</head>\n +<list>\n""" + footer = "</list>\n</html>\n" paths = os.listdir(outdir + '/build_cache') f.write(header) for path in paths: rel = os.path.basename(path) - f.write('<li><a href="%s" %s</a>' % (rel, rel)) + f.write('<li><a href="%s"> %s</a>\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, '..')) |