diff options
author | Peter Scheibel <scheibel1@llnl.gov> | 2020-02-20 13:45:58 -0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-02-20 13:45:58 -0800 |
commit | 2e387ef5855d533f685478cc15e3d9bea799bf30 (patch) | |
tree | 25fc1e5cdfc3298de513144bd714345130e32398 /var | |
parent | 01bda126924564a399c7d529eb1e94df71ba9e8e (diff) | |
download | spack-2e387ef5855d533f685478cc15e3d9bea799bf30.tar.gz spack-2e387ef5855d533f685478cc15e3d9bea799bf30.tar.bz2 spack-2e387ef5855d533f685478cc15e3d9bea799bf30.tar.xz spack-2e387ef5855d533f685478cc15e3d9bea799bf30.zip |
Package hashing: fix detection of directives (#14763)
The hashing logic looks for function calls that are Spack directives.
It expects that when a Spack directive is used that it is referenced
directly by name, and that the directive function is not itself
retrieved by calling another function. When the hashing logic
encountered a function call where the function was determined
dynamically, it would fail (attempting to access a name attribute
that does not happen to exist in this case).
This updates the hashing logic to filter out function calls where the
function is determined dynamically when looking for uses of Spack
directives.
Diffstat (limited to 'var')
-rw-r--r-- | var/spack/repos/builtin.mock/packages/hash-test4/package.py | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/var/spack/repos/builtin.mock/packages/hash-test4/package.py b/var/spack/repos/builtin.mock/packages/hash-test4/package.py new file mode 100644 index 0000000000..4b7f4d40c0 --- /dev/null +++ b/var/spack/repos/builtin.mock/packages/hash-test4/package.py @@ -0,0 +1,27 @@ +# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack import * + + +class HashTest4(Package): + """This package isn't compared with others, but it contains constructs + that package hashing logic has tripped over in the past. + """ + + homepage = "http://www.hashtest4.org" + url = "http://www.hashtest1.org/downloads/hashtest4-1.1.tar.bz2" + + version('1.1', 'a' * 32) + + def install(self, spec, prefix): + pass + + @staticmethod + def examine_prefix(pkg): + pass + + run_after('install')( + examine_prefix) |