From a4c8e945c730d9028f90bb941eec98352fe6504e Mon Sep 17 00:00:00 2001 From: Todd Gamblin Date: Tue, 16 Sep 2014 21:52:39 -0700 Subject: [PATCH] Some fixups for Adam's callpath and adept-utils packages. - Make spack packages RPATH *ALL* dependencies (i.e. the whole tree) - prevents callpath link from finding wrong libelf -- always uses the one dyninst used. --- lib/spack/spack/build_environment.py | 2 +- lib/spack/spack/package.py | 2 +- lib/spack/spack/util/executable.py | 2 +- .../packages/{adeptutils => adept-utils}/package.py | 7 ++++--- var/spack/packages/callpath/package.py | 9 +++++---- 5 files changed, 12 insertions(+), 10 deletions(-) rename var/spack/packages/{adeptutils => adept-utils}/package.py (91%) diff --git a/lib/spack/spack/build_environment.py b/lib/spack/spack/build_environment.py index ec946cd2d73..182a5629fa7 100644 --- a/lib/spack/spack/build_environment.py +++ b/lib/spack/spack/build_environment.py @@ -122,7 +122,7 @@ def set_build_environment_variables(pkg): # Prefixes of all of the package's dependencies go in # SPACK_DEPENDENCIES - dep_prefixes = [d.package.prefix for d in pkg.spec.dependencies.values()] + dep_prefixes = [d.prefix for d in pkg.spec.traverse(root=False)] path_set(SPACK_DEPENDENCIES, dep_prefixes) # Install prefix diff --git a/lib/spack/spack/package.py b/lib/spack/spack/package.py index b0a9dd76b97..3e253286e88 100644 --- a/lib/spack/spack/package.py +++ b/lib/spack/spack/package.py @@ -773,7 +773,7 @@ def do_uninstall(self, **kwargs): ' '.join(formatted_deps)) self.remove_prefix() - tty.msg("Successfully uninstalled %s." % self.spec) + tty.msg("Successfully uninstalled %s." % self.spec.short_spec) # Once everything else is done, run post install hooks spack.hooks.post_uninstall(self) diff --git a/lib/spack/spack/util/executable.py b/lib/spack/spack/util/executable.py index bc27b258895..923c7c19a5b 100644 --- a/lib/spack/spack/util/executable.py +++ b/lib/spack/spack/util/executable.py @@ -121,7 +121,7 @@ def which(name, **kwargs): for dir in path: exe = os.path.join(dir, name) - if os.access(exe, os.X_OK): + if os.path.isfile(exe) and os.access(exe, os.X_OK): return Executable(exe) if required: diff --git a/var/spack/packages/adeptutils/package.py b/var/spack/packages/adept-utils/package.py similarity index 91% rename from var/spack/packages/adeptutils/package.py rename to var/spack/packages/adept-utils/package.py index 41bf7882dbe..2515322ec22 100644 --- a/var/spack/packages/adeptutils/package.py +++ b/var/spack/packages/adept-utils/package.py @@ -24,17 +24,18 @@ ############################################################################## from spack import * -class Adeptutils(Package): - """LLNL Utility Libraries""" +class AdeptUtils(Package): + """Utility libraries for LLNL performance tools.""" homepage = "https://github.com/scalability-llnl/adept-utils" url = "https://github.com/scalability-llnl/adept-utils/archive/v1.0.tar.gz" version('1.0', '5c6cd9badce56c945ac8551e34804397') + depends_on("boost") depends_on("mpi") def install(self, spec, prefix): - cmake("-DCMAKE_INSTALL_PREFIX=" + prefix) + cmake(*std_cmake_args) make() make("install") diff --git a/var/spack/packages/callpath/package.py b/var/spack/packages/callpath/package.py index 3cbfc26060f..84170d9c9ea 100644 --- a/var/spack/packages/callpath/package.py +++ b/var/spack/packages/callpath/package.py @@ -25,7 +25,8 @@ from spack import * class Callpath(Package): - """Library for representing callpaths consistently in distributed-memory performance tools.""" + """Library for representing callpaths consistently in + distributed-memory performance tools.""" homepage = "https://github.com/scalability-llnl/callpath" url = "https://github.com/scalability-llnl/callpath/archive/v1.0.1.tar.gz" @@ -33,11 +34,11 @@ class Callpath(Package): version('1.0.1', '0047983d2a52c5c335f8ba7f5bab2325') depends_on("dyninst") - depends_on("adeptutils") + depends_on("adept-utils") depends_on("mpi") def install(self, spec, prefix): - cmake("-DCMAKE_INSTALL_PREFIX=" + prefix, - "-DCALLPATH_WALKER=dyninst") + # TODO: offer options for the walker used. + cmake('.', "-DCALLPATH_WALKER=dyninst", *std_cmake_args) make() make("install")