summaryrefslogtreecommitdiff
path: root/var
diff options
context:
space:
mode:
authorMark W. Krentel <krentel@rice.edu>2019-03-15 15:47:22 -0500
committerAdam J. Stewart <ajstewart426@gmail.com>2019-03-15 15:47:22 -0500
commite811e23f2ec1369915bdc0d2761d6988522a68ea (patch)
tree4e2a34d59cd76ea3cfbb25e9d47ed686f8e691ef /var
parent6de6d5396c72b38fb12cfed11f1143a95ee559d9 (diff)
downloadspack-e811e23f2ec1369915bdc0d2761d6988522a68ea.tar.gz
spack-e811e23f2ec1369915bdc0d2761d6988522a68ea.tar.bz2
spack-e811e23f2ec1369915bdc0d2761d6988522a68ea.tar.xz
spack-e811e23f2ec1369915bdc0d2761d6988522a68ea.zip
hpcviewer: new package (#10878)
* hpcviewer: new package Add binary package for hpcviewer and hpctraceviewer for the Rice hpctoolkit on Linux x86_64, ppc64 and ppc64le. * ibm-java: add property 'home' so that spec['java'].home will work. * Flake * More flake. * Test that the version, machine type pair exists before using it in the sha dictionaries so that 'spack info' doesn't crash on unsupported configurations.
Diffstat (limited to 'var')
-rw-r--r--var/spack/repos/builtin/packages/hpcviewer/package.py70
-rw-r--r--var/spack/repos/builtin/packages/ibm-java/package.py16
2 files changed, 85 insertions, 1 deletions
diff --git a/var/spack/repos/builtin/packages/hpcviewer/package.py b/var/spack/repos/builtin/packages/hpcviewer/package.py
new file mode 100644
index 0000000000..d28b39a359
--- /dev/null
+++ b/var/spack/repos/builtin/packages/hpcviewer/package.py
@@ -0,0 +1,70 @@
+# Copyright 2013-2019 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 *
+import platform
+
+
+# The viewer and trace viewer tar files and sha256sum depend on the
+# version and machine type.
+def viewer_url(ver, mach):
+ return (
+ 'http://hpctoolkit.org/download/hpcviewer/{0}/'
+ 'hpcviewer-linux.gtk.{1}.tgz'
+ ).format(ver, mach)
+
+
+def trace_url(ver, mach):
+ return (
+ 'http://hpctoolkit.org/download/hpcviewer/{0}/'
+ 'hpctraceviewer-linux.gtk.{1}.tgz'
+ ).format(ver, mach)
+
+
+class Hpcviewer(Package):
+ """Binary distribution of hpcviewer and hpctraceviewer for the Rice
+ HPCToolkit (Linux x86_64, ppc64 and ppc64le). Note: hpctoolkit
+ databases are platform independent, so you don't need to install
+ hpctoolkit to run the viewers and it's common to run hpcrun and
+ hpcviewer on different machines."""
+
+ homepage = "http://hpctoolkit.org"
+
+ viewer_sha = {
+ ('2019.02', 'x86_64'): 'e24368a3ec27b82736a781971a8371abfe7744b2a4f68b7b41d76f84af306b83',
+ ('2019.02', 'ppc64'): '72c1ef1a5682c3273e900bb248f126428a02dfe728af0c49c7ee8381938d1e18',
+ ('2019.02', 'ppc64le'): '02aaf27bb5b0f72d5b5738289bce60f6ef0ef7327ca96a890892509a09adc946',
+ }
+
+ trace_sha = {
+ ('2019.02', 'x86_64'): '5ff11317a638318295821204ffcb1276e9da1684cd5f298410ae2bf78ce88b6b',
+ ('2019.02', 'ppc64'): '95b2a7d848ecb924591c248f5e47c641646ef90a071db48237ddb96c4b71a8fb',
+ ('2019.02', 'ppc64le'): '01a159306e7810efe07157ec823ac6ca7570ec2014c95db599a3f90eee33355c',
+ }
+
+ for ver in ['2019.02']:
+ key = (ver, platform.machine())
+ if key in viewer_sha and key in trace_sha:
+ version(ver, url=viewer_url(*key), sha256=viewer_sha[key])
+
+ resource(name='hpctraceviewer', url=trace_url(*key),
+ sha256=trace_sha[key], destination='TRACE')
+
+ depends_on('java@8', type=('build', 'run'))
+
+ # Both hpcviewer and trace viewer have an install script.
+ def install(self, spec, prefix):
+ args = [
+ '--java', spec['java'].home,
+ prefix
+ ]
+
+ inst = Executable(join_path('.', 'install'))
+ inst(*args)
+
+ cd(join_path('TRACE', 'hpctraceviewer'))
+
+ inst = Executable(join_path('.', 'install'))
+ inst(*args)
diff --git a/var/spack/repos/builtin/packages/ibm-java/package.py b/var/spack/repos/builtin/packages/ibm-java/package.py
index ec3bd34442..c18574cdd9 100644
--- a/var/spack/repos/builtin/packages/ibm-java/package.py
+++ b/var/spack/repos/builtin/packages/ibm-java/package.py
@@ -40,8 +40,22 @@ class IbmJava(Package):
return url
+ @property
+ def home(self):
+ return self.prefix
+
+ @property
+ def libs(self):
+ return find_libraries(['libjvm'], root=self.home, recursive=True)
+
def setup_environment(self, spack_env, run_env):
- run_env.set('JAVA_HOME', self.prefix)
+ run_env.set('JAVA_HOME', self.home)
+
+ def setup_dependent_environment(self, spack_env, run_env, dependent_spec):
+ spack_env.set('JAVA_HOME', self.home)
+
+ def setup_dependent_package(self, module, dependent_spec):
+ self.spec.home = self.home
def install(self, spec, prefix):
archive = os.path.basename(self.stage.archive_file)