package_hash: add code to generate a hash for a package file

This will be included in the full hash of packages.
This commit is contained in:
Peter Scheibel
2018-02-06 10:48:58 -05:00
committed by Todd Gamblin
parent db81d19ddd
commit 2379ed54b9
7 changed files with 301 additions and 0 deletions

View File

@@ -0,0 +1,34 @@
from spack import *
import os
class HashTest1(Package):
"""Used to test package hashing
"""
homepage = "http://www.hashtest1.org"
url = "http://www.hashtest1.org/downloads/hashtest1-1.1.tar.bz2"
version('1.1', 'a' * 32)
version('1.2', 'b' * 32)
version('1.3', 'c' * 32)
version('1.4', 'd' * 32)
patch('patch1.patch', when="@1.1")
patch('patch2.patch', when="@1.4")
variant('variantx', default=False, description='Test variant X')
variant('varianty', default=False, description='Test variant Y')
def setup_dependent_environment(self, spack_env, run_env, dependent_spec):
pass
@when('@:1.4')
def install(self, spec, prefix):
print("install 1")
os.listdir(os.getcwd())
@when('@1.5')
def install(self, spec, prefix):
os.listdir(os.getcwd())

View File

@@ -0,0 +1 @@
the contents of patch 1 (not a valid diff, but sufficient for testing)

View File

@@ -0,0 +1 @@
the contents of patch 2 (not a valid diff, but sufficient for testing)

View File

@@ -0,0 +1,28 @@
from spack import *
import os
class HashTest2(Package):
"""Used to test package hashing
"""
homepage = "http://www.hashtest2.org"
url = "http://www.hashtest1.org/downloads/hashtest2-1.1.tar.bz2"
version('1.1', 'a' * 32)
version('1.2', 'b' * 32)
version('1.3', 'c' * 31 + 'x') # Source hash differs from hash-test1@1.3
version('1.4', 'd' * 32)
patch('patch1.patch', when="@1.1")
variant('variantx', default=False, description='Test variant X')
variant('varianty', default=False, description='Test variant Y')
def setup_dependent_environment(self, spack_env, run_env, dependent_spec):
pass
def install(self, spec, prefix):
print("install 1")
os.listdir(os.getcwd())

View File

@@ -0,0 +1,2 @@
the different contents of patch 1 (not a valid diff, but sufficient for testing,
and different from patch 1 of hash-test1)