diff options
8 files changed, 689 insertions, 211 deletions
diff --git a/var/spack/repos/builtin/packages/cbtf-argonavis-gui/package.py b/var/spack/repos/builtin/packages/cbtf-argonavis-gui/package.py index c4154592fa..8ba4e23267 100644 --- a/var/spack/repos/builtin/packages/cbtf-argonavis-gui/package.py +++ b/var/spack/repos/builtin/packages/cbtf-argonavis-gui/package.py @@ -49,20 +49,55 @@ class CbtfArgonavisGui(QMakePackage): """ homepage = "http://sourceforge.net/p/cbtf/wiki/Home/" + version('1.3.0.0', branch='1.3.0.0', + git='https://github.com/OpenSpeedShop/cbtf-argonavis-gui.git') + version('1.3.0', branch='master', git='https://github.com/OpenSpeedShop/cbtf-argonavis-gui.git') - depends_on("cmake@3.0.2:", type='build') - depends_on("openspeedshop+cuda gui='qt4'") - depends_on('qt@4.8.6:') - depends_on("boost@1.50.0:") - depends_on("cbtf") - depends_on("cbtf-krell") - depends_on("cbtf-argonavis") + version('develop', branch='master', + git='https://github.com/OpenSpeedShop/cbtf-argonavis-gui.git') + + depends_on("cmake@3.0.2:", when='@develop', type='build') + depends_on("cmake@3.11.1", when='@1.3.0.0', type='build') + + # To specify ^elfutils@0.170 on the command line spack + # apparently needs/wants this dependency explicity here + # even though it is referenced downstream + depends_on("elf", type="link") + + depends_on('qt@4.8.6:', when='@develop') + depends_on('qt@5.10.0', when='@1.3.0.0') + + depends_on("boost@1.50.0:", when='@develop') + depends_on("boost@1.66.0", when='@1.3.0.0') + + # For MRNet + depends_on("mrnet@5.0.1-3:+lwthreads", when='@develop') + depends_on("mrnet@5.0.1-3+lwthreads", when='@1.3.0.0') + + # Dependencies for the openspeedshop cbtf packages. + depends_on("cbtf@develop", when='@develop') + depends_on("cbtf@1.9.1.0", when='@1.3.0.0') + + depends_on("cbtf-krell@develop", when='@develop') + depends_on("cbtf-krell@1.9.1.0", when='@1.3.0.0') + + depends_on("cbtf-argonavis@develop", when='@develop') + depends_on("cbtf-argonavis@1.9.1.0", when='@1.3.0.0') + depends_on("cuda") - depends_on("mrnet@5.0.1:+lwthreads") - depends_on("xerces-c@3.1.1:") - depends_on("graphviz") + + depends_on("openspeedshop-utils+cuda@develop", when='@develop') + depends_on("openspeedshop-utils@2.3.1.3+cuda", when='@1.3.0.0') + + # For Xerces-C + depends_on("xerces-c@3.1.1:", when='@develop') + depends_on("xerces-c@3.1.4", when='@1.3.0.0') + + depends_on("graphviz@2.40.1:", when='@develop') + depends_on("graphviz@2.40.1", when='@1.3.0.0') + depends_on("qtgraph") parallel = False @@ -74,7 +109,7 @@ class CbtfArgonavisGui(QMakePackage): spack_env.set('CBTF_KRELL_ROOT', self.spec['cbtf-krell'].prefix) spack_env.set('CBTF_ARGONAVIS_ROOT', self.spec['cbtf-argonavis'].prefix) - spack_env.set('OSS_CBTF_ROOT', self.spec['openspeedshop'].prefix) + spack_env.set('OSS_CBTF_ROOT', self.spec['openspeedshop-utils'].prefix) spack_env.set('GRAPHVIZ_ROOT', self.spec['graphviz'].prefix) spack_env.set('QTGRAPHLIB_ROOT', self.spec['qtgraph'].prefix) spack_env.set('KRELL_ROOT_MRNET', self.spec['mrnet'].prefix) @@ -90,7 +125,7 @@ class CbtfArgonavisGui(QMakePackage): # The openspeedshop libraries are needed to actually load the # performance information into the GUI. run_env.prepend_path( - 'LD_LIBRARY_PATH', self.spec['openspeedshop'].prefix.lib64) + 'LD_LIBRARY_PATH', self.spec['openspeedshop-utils'].prefix.lib64) def qmake_args(self): options = ['-o', 'Makefile', 'openss-gui.pro'] diff --git a/var/spack/repos/builtin/packages/cbtf-argonavis/package.py b/var/spack/repos/builtin/packages/cbtf-argonavis/package.py index de65bca6de..0bffad266c 100644 --- a/var/spack/repos/builtin/packages/cbtf-argonavis/package.py +++ b/var/spack/repos/builtin/packages/cbtf-argonavis/package.py @@ -41,7 +41,6 @@ ########################################################################## from spack import * -import os class CbtfArgonavis(CMakePackage): @@ -51,9 +50,15 @@ class CbtfArgonavis(CMakePackage): """ homepage = "http://sourceforge.net/p/cbtf/wiki/Home/" + version('1.9.1.0', branch='1.9.1.0', + git='https://github.com/OpenSpeedShop/cbtf-argonavis.git') + version('1.9.1', branch='master', git='https://github.com/OpenSpeedShop/cbtf-argonavis.git') + version('develop', branch='master', + git='https://github.com/OpenSpeedShop/cbtf-argonavis.git') + variant('cti', default=False, description="Build MRNet with the CTI startup option") variant('crayfe', default=False, @@ -65,17 +70,52 @@ class CbtfArgonavis(CMakePackage): description='CMake build type') depends_on("cmake@3.0.2:", type='build') - depends_on("boost@1.50.0:") - depends_on("papi") - depends_on("libmonitor") - depends_on("mrnet@5.0.1:+lwthreads") - depends_on("mrnet@5.0.1:+cti", when='+cti') - depends_on("cbtf") - depends_on("cbtf+cti", when='+cti') - depends_on("cbtf+runtime", when='+runtime') - depends_on("cbtf-krell") - depends_on("cbtf-krell+cti", when="+cti") - depends_on("cbtf-krell+runtime", when="+runtime") + + # To specify ^elfutils@0.170 on the command line spack + # apparently needs/wants this dependency explicity here + # even though it is referenced downstream + depends_on("elf", type="link") + + # For boost + depends_on("boost@1.50.0:", when='@develop') + depends_on("boost@1.66.0", when='@1.9.1.0') + + # For MRNet + depends_on("mrnet@5.0.1-3:+cti", when='@develop+cti') + depends_on("mrnet@5.0.1-3:+lwthreads", when='@develop~cti') + depends_on("mrnet@5.0.1-3+cti", when='@1.9.1.0+cti') + depends_on("mrnet@5.0.1-3+lwthreads", when='@1.9.1.0~cti') + + # For CBTF + depends_on("cbtf@develop", when='@develop') + depends_on("cbtf@1.9.1.0", when='@1.9.1.0') + + # For CBTF with cti + depends_on("cbtf@develop+cti", when='@develop+cti') + depends_on("cbtf@1.9.1.0+cti", when='@1.9.1.0+cti') + + # For CBTF with runtime + depends_on("cbtf@develop+runtime", when='@develop+runtime') + depends_on("cbtf@1.9.1.0+runtime", when='@1.9.1.0+runtime') + + # For libmonitor + depends_on("libmonitor+krellpatch") + + # For PAPI + depends_on("papi", when='@develop') + depends_on("papi@5.5.1", when='@1.9.1.0') + + # For CBTF-KRELL + depends_on("cbtf-krell@develop", when='@develop') + depends_on("cbtf-krell@1.9.1.0", when='@1.9.1.0') + + depends_on('cbtf-krell@develop+cti', when='@develop+cti') + depends_on('cbtf-krell@1.9.1.0+cti', when='@1.9.1.0+cti') + + depends_on('cbtf-krell@develop+runtime', when='@develop+runtime') + depends_on('cbtf-krell@1.9.1.0+runtime', when='@1.9.1.0+runtime') + + # For CUDA depends_on("cuda") parallel = False @@ -109,12 +149,6 @@ class CbtfArgonavis(CMakePackage): def setup_environment(self, spack_env, run_env): """Set up the compile and runtime environments for a package.""" - if os.environ.get('LD_LIBRARY_PATH'): - cupti_path = self.spec['cuda'].prefix + '/extras/CUPTI/lib64' - os.environ['LD_LIBRARY_PATH'] += cupti_path - else: - os.environ['LD_LIBRARY_PATH'] = cupti_path - run_env.prepend_path( 'LD_LIBRARY_PATH', self.spec['cuda'].prefix + '/extras/CUPTI/lib64') diff --git a/var/spack/repos/builtin/packages/cbtf-krell/package.py b/var/spack/repos/builtin/packages/cbtf-krell/package.py index 862250e002..7e7facc93a 100644 --- a/var/spack/repos/builtin/packages/cbtf-krell/package.py +++ b/var/spack/repos/builtin/packages/cbtf-krell/package.py @@ -54,9 +54,15 @@ class CbtfKrell(CMakePackage): """ homepage = "http://sourceforge.net/p/cbtf/wiki/Home/" + version('1.9.1.0', branch='1.9.1.0', + git='https://github.com/OpenSpeedShop/cbtf-krell.git') + version('1.9.1', branch='master', git='https://github.com/OpenSpeedShop/cbtf-krell.git') + version('develop', branch='master', + git='https://github.com/OpenSpeedShop/cbtf-krell.git') + # MPI variants variant('openmpi', default=False, description="Build mpi experiment collector for openmpi MPI..") @@ -83,29 +89,53 @@ class CbtfKrell(CMakePackage): # Dependencies for cbtf-krell depends_on("cmake@3.0.2:", type='build') - # For binutils service - depends_on("binutils") + # For binutils + depends_on("binutils", when='@develop') + depends_on("binutils@2.29.1", when='@1.9.1.0') + + # For boost + depends_on("boost@1.50.0:", when='@develop') + depends_on("boost@1.66.0", when='@1.9.1.0') + + # For Dyninst + depends_on("dyninst@9.3.2:", when='@develop') + depends_on("dyninst@9.3.2", when='@1.9.1.0') + + # For MRNet + depends_on("mrnet@5.0.1-3:+cti", when='@develop+cti') + depends_on("mrnet@5.0.1-3:+lwthreads", when='@develop') - # collectionTool - depends_on("boost@1.50.0:") - depends_on("dyninst@9.3.2:") - depends_on("mrnet@5.0.1:+cti", when='+cti') - depends_on("mrnet@5.0.1:+lwthreads") + depends_on("mrnet@5.0.1-3+cti", when='@1.9.1.0+cti') + depends_on("mrnet@5.0.1-3+lwthreads", when='@1.9.1.0') - depends_on("xerces-c@3.1.1:") - depends_on("cbtf") - depends_on("cbtf+cti", when='+cti') - depends_on("cbtf+runtime", when='+runtime') + # For Xerces-C + depends_on("xerces-c@3.1.1:", when='@develop') + depends_on("xerces-c@3.1.4", when='@1.9.1.0') + + # For CBTF + depends_on("cbtf@develop", when='@develop') + depends_on("cbtf@1.9.1.0", when='@1.9.1.0') + + # For CBTF with cti + depends_on("cbtf@develop+cti", when='@develop+cti') + depends_on("cbtf@1.9.1.0+cti", when='@1.9.1.0+cti') + + # For CBTF with runtime + depends_on("cbtf@develop+runtime", when='@develop+runtime') + depends_on("cbtf@1.9.1.0+runtime", when='@1.9.1.0+runtime') # for services and collectors depends_on("libmonitor+krellpatch") - depends_on("libunwind") - depends_on("papi") + + depends_on("libunwind", when='@develop') + depends_on("libunwind@1.1", when='@1.9.1.0') + + depends_on("papi", when='@develop') + depends_on("papi@5.5.1", when='@1.9.1.0') + depends_on("llvm-openmp-ompt@tr6_forwards+standalone") # MPI Installations - # These have not worked either for build or execution, commenting out for - # now depends_on("openmpi", when='+openmpi') depends_on("mpich", when='+mpich') depends_on("mpich2", when='+mpich2') diff --git a/var/spack/repos/builtin/packages/cbtf-lanl/package.py b/var/spack/repos/builtin/packages/cbtf-lanl/package.py index 0c6bf54b4c..d327537cc3 100644 --- a/var/spack/repos/builtin/packages/cbtf-lanl/package.py +++ b/var/spack/repos/builtin/packages/cbtf-lanl/package.py @@ -48,26 +48,57 @@ class CbtfLanl(CMakePackage): command monitoring tool.""" homepage = "http://sourceforge.net/p/cbtf/wiki/Home/" + version('1.9.1.0', branch='1.9.1.0', + git='https://github.com/OpenSpeedShop/cbtf-lanl.git') + version('1.9.1', branch='master', - git='http://git.code.sf.net/p/cbtf-lanl/cbtf-lanl') + git='https://github.com/OpenSpeedShop/cbtf-lanl.git') + + version('develop', branch='master', + git='https://github.com/OpenSpeedShop/cbtf-lanl.git') variant('build_type', default='None', values=('None'), description='CMake build type') + variant('runtime', default=False, description="build only the runtime libraries and collectors.") + variant('cti', default=False, description="Build MRNet with the CTI startup option") depends_on("cmake@3.0.2:", type='build') - # Dependencies for cbtf-krell - depends_on("mrnet@5.0.1:+lwthreads") - depends_on("xerces-c@3.1.1:") - depends_on("cbtf") - depends_on("cbtf+cti", when='+cti') - depends_on("cbtf+runtime", when='+runtime') - depends_on("cbtf-krell") - depends_on("cbtf-krell+cti", when='+cti') - depends_on("cbtf-krell+runtime", when='+runtime') + + # For MRNet + depends_on("mrnet@5.0.1-3:+cti", when='@develop+cti') + depends_on("mrnet@5.0.1-3:+lwthreads", when='@develop') + depends_on("mrnet@5.0.1-3+cti", when='@1.9.1.0+cti') + depends_on("mrnet@5.0.1-3+lwthreads", when='@1.9.1.0') + + # For Xerces-C + depends_on("xerces-c@3.1.1:", when='@develop') + depends_on("xerces-c@3.1.4", when='@1.9.1.0') + + # For CBTF + depends_on("cbtf@develop", when='@develop') + depends_on("cbtf@1.9.1.0", when='@1.9.1.0') + + # For CBTF with cti + depends_on("cbtf@develop+cti", when='@develop+cti') + depends_on("cbtf@1.9.1.0+cti", when='@1.9.1.0+cti') + + # For CBTF with runtime + depends_on("cbtf@develop+runtime", when='@develop+runtime') + depends_on("cbtf@1.9.1.0+runtime", when='@1.9.1.0+runtime') + + # For CBTF-KRELL + depends_on("cbtf-krell@develop", when='@develop') + depends_on("cbtf-krell@1.9.1.0", when='@1.9.1.0') + + depends_on('cbtf-krell@develop+cti', when='@develop+cti') + depends_on('cbtf-krell@1.9.1.0+cti', when='@1.9.1.0+cti') + + depends_on('cbtf-krell@develop+runtime', when='@develop+runtime') + depends_on('cbtf-krell@1.9.1.0+runtime', when='@1.9.1.0+runtime') parallel = False diff --git a/var/spack/repos/builtin/packages/cbtf/package.py b/var/spack/repos/builtin/packages/cbtf/package.py index 97d94ff20e..73e7227aba 100644 --- a/var/spack/repos/builtin/packages/cbtf/package.py +++ b/var/spack/repos/builtin/packages/cbtf/package.py @@ -53,23 +53,44 @@ class Cbtf(CMakePackage): homepage = "http://sourceforge.net/p/cbtf/wiki/Home" # Use when the git repository is available + + version('1.9.1.0', branch='1.9.1.0', + git='https://github.com/OpenSpeedShop/cbtf.git') + version('1.9.1', branch='master', git='https://github.com/OpenSpeedShop/cbtf.git') + version('develop', branch='master', + git='https://github.com/OpenSpeedShop/cbtf.git') + variant('cti', default=False, description="Build MRNet with the CTI startup option") + variant('runtime', default=False, description="build only the runtime libraries and collectors.") + variant('build_type', default='None', values=('None'), description='CMake build type') - depends_on("cmake@3.0.2:", type='build') - depends_on("boost@1.50.0:") - depends_on("mrnet@5.0.1:+lwthreads") - depends_on("mrnet@5.0.1:+cti", when='+cti') - depends_on("xerces-c@3.1.1:") - # Work around for spack libxml2 package bug, take off python when fixed - depends_on("libxml2+python") + depends_on("cmake@3.11.1", when='@1.9.1.0:', type='build') + depends_on("cmake@3.0.2:", when='@develop', type='build') + + depends_on("boost@1.66.0", when='@1.9.1.0:') + depends_on("boost@1.50.0:", when='@develop') + + # For MRNet + depends_on("mrnet@5.0.1-3:+cti", when='@develop+cti') + depends_on("mrnet@5.0.1-3:+lwthreads", when='@develop') + depends_on("mrnet@5.0.1-3+cti", when='@1.9.1.0:+cti') + depends_on("mrnet@5.0.1-3+lwthreads", when='@1.9.1.0:') + + # For Xerces-C + depends_on("xerces-c@3.1.1:", when='@develop') + depends_on("xerces-c@3.1.4", when='@1.9.1.0:') + + # For XML2 + depends_on("libxml2", when='@develop') + depends_on("libxml2@2.9.4", when='@1.9.1.0:') parallel = False diff --git a/var/spack/repos/builtin/packages/openspeedshop-utils/package.py b/var/spack/repos/builtin/packages/openspeedshop-utils/package.py new file mode 100644 index 0000000000..12eee7c8b1 --- /dev/null +++ b/var/spack/repos/builtin/packages/openspeedshop-utils/package.py @@ -0,0 +1,344 @@ +############################################################################## +# Copyright (c) 2013-2018, Lawrence Livermore National Security, LLC. +# Produced at the Lawrence Livermore National Laboratory. +# +# This file is part of Spack. +# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved. +# LLNL-CODE-647188 +# +# For details, see https://github.com/spack/spack +# Please also see the NOTICE and LICENSE files for our notice and the LGPL. +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License (as +# published by the Free Software Foundation) version 2.1, February 1999. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and +# conditions of the GNU Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +############################################################################## +############################################################################## +# Copyright (c) 2015-2018 Krell Institute. All Rights Reserved. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License as published by the Free +# Software Foundation; either version 2 of the License, or (at your option) +# any later version. +# +# This program is distributed in the hope that it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for +# more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place, Suite 330, Boston, MA 02111-1307 USA +############################################################################## + +from spack import * + +import spack +import spack.store + +import os +import os.path + + +class OpenspeedshopUtils(CMakePackage): + """OpenSpeedShop is a community effort by The Krell Institute with + current direct funding from DOEs NNSA. It builds on top of a + broad list of community infrastructures, most notably Dyninst + and MRNet from UW, libmonitor from Rice, and PAPI from UTK. + OpenSpeedShop is an open source multi platform Linux performance + tool which is targeted to support performance analysis of + applications running on both single node and large scale IA64, + IA32, EM64T, AMD64, PPC, ARM, Power8, Intel Phi, Blue Gene and + Cray platforms. OpenSpeedShop development is hosted by the Krell + Institute. The infrastructure and base components of OpenSpeedShop + are released as open source code primarily under LGPL. + openspeedshop-utils is a package that does not have the + qt3 gui. It was created to avoid a conflict between + openspeedshop and cbtf-argonavis-gui based on the fact + that spack will not allow a qt3 and qt4/qt5 dependency in a packages + dependency tree. + """ + + homepage = "http://www.openspeedshop.org" + url = "https://github.com/OpenSpeedShop/openspeedshop.git" + + # Use when the git repository is available + version('2.3.1.3', git='https://github.com/OpenSpeedShop/openspeedshop.git', tag='2.3.1.3') + + version('develop', branch='master', + git='https://github.com/OpenSpeedShop/openspeedshop.git') + + variant('runtime', default=False, + description="build only the runtime libraries and collectors.") + variant('cti', default=False, + description="Build MRNet with the CTI startup option") + variant('crayfe', default=False, + description="build only the FE tool using the runtime_dir \ + to point to target build.") + variant('cuda', default=False, + description="build with cuda packages included.") + + variant('build_type', default='None', values=('None'), + description='CMake build type') + + # MPI variants + variant('openmpi', default=False, + description="Build mpi collector for openmpi \ + MPI when variant is enabled.") + variant('mpt', default=False, + description="Build mpi collector for SGI \ + MPT MPI when variant is enabled.") + variant('mvapich2', default=False, + description="Build mpi collector for mvapich2\ + MPI when variant is enabled.") + variant('mvapich', default=False, + description="Build mpi collector for mvapich\ + MPI when variant is enabled.") + variant('mpich2', default=False, + description="Build mpi collector for mpich2\ + MPI when variant is enabled.") + variant('mpich', default=False, + description="Build mpi collector for mpich\ + MPI when variant is enabled.") + + depends_on("cmake@3.0.2:", type='build') + + # Dependencies for openspeedshop that are common to all + # the variants of the OpenSpeedShop build + depends_on("libtool", type='build') + depends_on("bison", type='build') + depends_on("flex", type='build') + + # For binutils + depends_on("binutils", when='@develop', type='build') + depends_on("binutils@2.29.1", when='@2.3.1.3', type='build') + + depends_on("elf", type="link") + depends_on("libdwarf") + + depends_on("sqlite") + + # For boost + depends_on("boost@1.50.0:", when='@develop') + depends_on("boost@1.66.0", when='@2.3.1.3') + + depends_on("dyninst@9.3.2:", when='@develop') + depends_on("dyninst@9.3.2", when='@2.3.1.3') + + depends_on("python", when='@develop') + depends_on("python@2.7.14", when='@2.3.1.3') + + depends_on("libxml2", when='@develop') + depends_on("libxml2@2.9.4", when='@2.3.1.3') + + # Dependencies for the openspeedshop cbtf packages. + depends_on("cbtf@develop", when='@develop') + depends_on("cbtf@1.9.1.0", when='@2.3.1.3') + + depends_on("cbtf-krell@develop", when='@develop') + depends_on("cbtf-krell@1.9.1.0", when='@2.3.1.3') + + depends_on('cbtf-krell@develop+crayfe', when='@develop+crayfe') + depends_on('cbtf-krell@1.9.1.0+crayfe', when='@2.3.1.3+crayfe') + + depends_on('cbtf-krell@develop+cti', when='@develop+cti') + depends_on('cbtf-krell@1.9.1.0+cti', when='@2.3.1.3+cti') + + depends_on('cbtf-krell@develop+mpich', when='@develop+mpich') + depends_on('cbtf-krell@1.9.1.0+mpich', when='@2.3.1.3+mpich') + + depends_on('cbtf-krell@develop+mpich2', when='@develop+mpich2') + depends_on('cbtf-krell@1.9.1.0+mpich2', when='@2.3.1.3+mpich2') + + depends_on('cbtf-krell@develop+mpt', when='@develop+mpt') + depends_on('cbtf-krell@1.9.1.0+mpt', when='@2.3.1.3+mpt') + + depends_on('cbtf-krell@develop+mvapich', when='@develop+mvapich') + depends_on('cbtf-krell@1.9.1.0+mvapich', when='@2.3.1.3+mvapich') + + depends_on('cbtf-krell@develop+mvapich2', when='@develop+mvapich2') + depends_on('cbtf-krell@1.9.1.0+mvapich2', when='@2.3.1.3+mvapich2') + + depends_on('cbtf-krell@develop+openmpi', when='@develop+openmpi') + depends_on('cbtf-krell@1.9.1.0+openmpi', when='@2.3.1.3+openmpi') + + depends_on("cbtf-argonavis@develop", when='@develop+cuda') + depends_on("cbtf-argonavis@1.9.1.0", when='@2.3.1.3+cuda') + + # For MRNet + depends_on("mrnet@5.0.1-3:+cti", when='@develop+cti') + depends_on("mrnet@5.0.1-3:+lwthreads", when='@develop') + + depends_on("mrnet@5.0.1-3:+cti", when='@2.3.1.3+cti') + depends_on("mrnet@5.0.1-3:+lwthreads", when='@2.3.1.3') + + parallel = False + + build_directory = 'build_openspeedshop' + + def set_CrayLoginNode_cmakeOptions(self, spec, cmakeOptions): + # Appends to cmakeOptions the options that will enable the appropriate + # Cray login node libraries + + CrayLoginNodeOptions = [] + rt_platform = "cray" + + # How do we get the compute node (CNL) cbtf package install + # directory path? + # spec['cbtf'].prefix is the login node value for this build, as + # we only get here when building the login node components and + # that is all that is known to spack. + be_ck = spack.store.db.query_one('cbtf-krell arch=cray-CNL-haswell') + + # Equivalent to install-tool cmake arg: + # '-DCBTF_KRELL_CN_RUNTIME_DIR=%s' + # % <base dir>/cbtf_v2.3.1.release/compute) + CrayLoginNodeOptions.append('-DCBTF_KRELL_CN_RUNTIME_DIR=%s' + % be_ck.prefix) + CrayLoginNodeOptions.append('-DRUNTIME_PLATFORM=%s' + % rt_platform) + + cmakeOptions.extend(CrayLoginNodeOptions) + + def cmake_args(self): + # Appends base options to cmake_args + spec = self.spec + + compile_flags = "-O2 -g" + + cmake_args = [] + + # Indicate building cbtf vers (transfer rawdata files) + instrumentor_setting = "cbtf" + + if spec.satisfies('+runtime'): + self.set_defaultbase_cmakeOptions(spec, cmake_args) + + cmake_args.extend( + ['-DCMAKE_CXX_FLAGS=%s' % compile_flags, + '-DCMAKE_C_FLAGS=%s' % compile_flags, + '-DINSTRUMENTOR=%s' % instrumentor_setting, + '-DCBTF_DIR=%s' % spec['cbtf'].prefix, + '-DCBTF_KRELL_DIR=%s' % spec['cbtf-krell'].prefix, + '-DMRNET_DIR=%s' % spec['mrnet'].prefix]) + + else: + + # Appends base options to cmake_args + self.set_defaultbase_cmakeOptions(spec, cmake_args) + cmake_args.extend( + ['-DCMAKE_CXX_FLAGS=%s' % compile_flags, + '-DCMAKE_C_FLAGS=%s' % compile_flags, + '-DINSTRUMENTOR=%s' % instrumentor_setting, + '-DSQLITE3_DIR=%s' % spec['sqlite'].prefix, + '-DCBTF_DIR=%s' % spec['cbtf'].prefix, + '-DCBTF_KRELL_DIR=%s' % spec['cbtf-krell'].prefix, + '-DMRNET_DIR=%s' % spec['mrnet'].prefix]) + + if spec.satisfies('+crayfe'): + # We need to build target/compute node + # components/libraries first then pass + # those libraries to the openspeedshop + # login node build + self.set_CrayLoginNode_cmakeOptions(spec, cmake_args) + + cmake_args.extend(['-DBUILD_QT3_GUI=FALSE']) + + return cmake_args + + def set_defaultbase_cmakeOptions(self, spec, cmakeOptions): + # Appends to cmakeOptions the options that will enable + # the appropriate base level options to the openspeedshop + # cmake build. + python_exe = spec['python'].command.path + python_library = spec['python'].libs[0] + python_include = spec['python'].headers.directories[0] + + BaseOptions = [] + + BaseOptions.append('-DBINUTILS_DIR=%s' % spec['binutils'].prefix) + BaseOptions.append('-DLIBELF_DIR=%s' % spec['elf'].prefix) + BaseOptions.append('-DLIBDWARF_DIR=%s' % spec['libdwarf'].prefix) + BaseOptions.append('-DPYTHON_EXECUTABLE=%s' % python_exe) + BaseOptions.append('-DPYTHON_INCLUDE_DIR=%s' % python_include) + BaseOptions.append('-DPYTHON_LIBRARY=%s' % python_library) + BaseOptions.append('-DBoost_NO_SYSTEM_PATHS=TRUE') + BaseOptions.append('-DBoost_NO_BOOST_CMAKE=TRUE') + BaseOptions.append('-DBOOST_ROOT=%s' % spec['boost'].prefix) + BaseOptions.append('-DBoost_DIR=%s' % spec['boost'].prefix) + BaseOptions.append('-DBOOST_LIBRARYDIR=%s' % spec['boost'].prefix.lib) + BaseOptions.append('-DDYNINST_DIR=%s' % spec['dyninst'].prefix) + + cmakeOptions.extend(BaseOptions) + + def set_mpi_cmakeOptions(self, spec, cmakeOptions): + # Appends to cmakeOptions the options that will enable + # the appropriate MPI implementations + + MPIOptions = [] + + # openmpi + if spec.satisfies('+openmpi'): + MPIOptions.append('-DOPENMPI_DIR=%s' % spec['openmpi'].prefix) + # mpich + if spec.satisfies('+mpich'): + MPIOptions.append('-DMPICH_DIR=%s' % spec['mpich'].prefix) + # mpich2 + if spec.satisfies('+mpich2'): + MPIOptions.append('-DMPICH2_DIR=%s' % spec['mpich2'].prefix) + # mvapich + if spec.satisfies('+mvapich'): + MPIOptions.append('-DMVAPICH_DIR=%s' % spec['mvapich'].prefix) + # mvapich2 + if spec.satisfies('+mvapich2'): + MPIOptions.append('-DMVAPICH2_DIR=%s' % spec['mvapich2'].prefix) + # mpt + if spec.satisfies('+mpt'): + MPIOptions.append('-DMPT_DIR=%s' % spec['mpt'].prefix) + + cmakeOptions.extend(MPIOptions) + + def setup_environment(self, spack_env, run_env): + """Set up the compile and runtime environments for a package.""" + + # Find Dyninst library path, this is needed to + # set the DYNINSTAPI_RT_LIB library which is + # required for OpenSpeedShop to find loop level + # performance information + dyninst_libdir = find_libraries('libdyninstAPI_RT', + root=self.spec['dyninst'].prefix, + shared=True, recursive=True) + + # Set Dyninst RT library path to support OSS loop resolution code + run_env.set('DYNINSTAPI_RT_LIB', dyninst_libdir) + + # Find openspeedshop library path + oss_libdir = find_libraries( + 'libopenss-framework', + root=self.spec['openspeedshop-utils'].prefix, + shared=True, recursive=True) + run_env.prepend_path('LD_LIBRARY_PATH', + os.path.dirname(oss_libdir.joined())) + + run_env.set('OPENSS_RAWDATA_DIR', '.') + + cbtf_mc = '/sbin/cbtf_mrnet_commnode' + cbtf_lmb = '/sbin/cbtf_libcbtf_mrnet_backend' + run_env.set('XPLAT_RSH', 'ssh') + run_env.set('MRNET_COMM_PATH', + join_path(self.spec['cbtf-krell'].prefix + cbtf_mc)) + run_env.set('CBTF_MRNET_BACKEND_PATH', + join_path(self.spec['cbtf-krell'].prefix + cbtf_lmb)) + run_env.prepend_path('PATH', self.spec['mrnet'].prefix.bin) + run_env.prepend_path('PATH', self.spec['cbtf-krell'].prefix.bin) + run_env.prepend_path('PATH', self.spec['cbtf-krell'].prefix.sbin) + run_env.prepend_path('PATH', self.spec['python'].prefix.bin) diff --git a/var/spack/repos/builtin/packages/openspeedshop/package.py b/var/spack/repos/builtin/packages/openspeedshop/package.py index d848df1073..7347280159 100644 --- a/var/spack/repos/builtin/packages/openspeedshop/package.py +++ b/var/spack/repos/builtin/packages/openspeedshop/package.py @@ -64,16 +64,14 @@ class Openspeedshop(CMakePackage): """ homepage = "http://www.openspeedshop.org" - url = "https://github.com/OpenSpeedShop" + url = "https://github.com/OpenSpeedShop/openspeedshop.git" # Use when the git repository is available - version('2.3.1', branch='master', + version('2.3.1.3', git='https://github.com/OpenSpeedShop/openspeedshop.git', tag='2.3.1.3') + + version('develop', branch='master', git='https://github.com/OpenSpeedShop/openspeedshop.git') - variant('offline', default=False, - description="build with offline instrumentor enabled.") - variant('cbtf', default=True, - description="build with cbtf instrumentor enabled.") variant('runtime', default=False, description="build only the runtime libraries and collectors.") variant('cti', default=False, @@ -112,48 +110,77 @@ class Openspeedshop(CMakePackage): MPI when variant is enabled.") depends_on("cmake@3.0.2:", type='build') + # Dependencies for openspeedshop that are common to all # the variants of the OpenSpeedShop build depends_on("libtool", type='build') depends_on("bison", type='build') depends_on("flex", type='build') - depends_on("binutils", type='build') + + # For binutils + depends_on("binutils", when='@develop', type='build') + depends_on("binutils@2.29.1", when='@2.3.1.3', type='build') + depends_on("elf", type="link") depends_on("libdwarf") + depends_on("sqlite") - depends_on("boost@1.50.0:") - depends_on("dyninst@9.3.2:") - depends_on("python") - depends_on("libxml2+python") + + # For boost + depends_on("boost@1.50.0:", when='@develop') + depends_on("boost@1.66.0", when='@2.3.1.3') + + depends_on("dyninst@9.3.2:", when='@develop') + depends_on("dyninst@9.3.2", when='@2.3.1.3') + + depends_on("python", when='@develop') + depends_on("python@2.7.14", when='@2.3.1.3') + + depends_on("libxml2", when='@develop') + depends_on("libxml2@2.9.4", when='@2.3.1.3') + depends_on("qt@3.3.8b+krellpatch", when='gui=qt3') - # Actively working on adding this gui package - # depends_on("cbtf-argonavis-gui", when='gui=qt4') - - # Dependencies only for the openspeedshop offline package. - depends_on("libunwind", when='+offline') - depends_on("papi", when='+offline') - depends_on("libmonitor+krellpatch", when='+offline') - depends_on("openmpi", when='+offline+openmpi') - depends_on("mpich", when='+offline+mpich') - depends_on("mpich2", when='+offline+mpich2') - depends_on("mvapich2", when='+offline+mvapich2') - depends_on("mvapich", when='+offline+mvapich') - depends_on("mpt", when='+offline+mpt') - - # Dependencies only for the openspeedshop cbtf package. - depends_on("cbtf", when='+cbtf') - depends_on('cbtf-krell', when='+cbtf') - depends_on('cbtf-krell+crayfe', when='+crayfe') - depends_on('cbtf-krell+cti', when='+cti') - depends_on('cbtf-krell+mpich', when='+cbtf+mpich') - depends_on('cbtf-krell+mpich2', when='+cbtf+mpich2') - depends_on('cbtf-krell+mpt', when='+cbtf+mpt') - depends_on('cbtf-krell+mvapich', when='+cbtf+mvapich') - depends_on('cbtf-krell+mvapich2', when='+cbtf+mvapich2') - depends_on('cbtf-krell+openmpi', when='+cbtf+openmpi') - depends_on("cbtf-argonavis", when='+cbtf+cuda') - depends_on("mrnet@5.0.1:+lwthreads", when='+cbtf') - depends_on("mrnet@5.0.1:+cti", when='+cti+cbtf') + + # Dependencies for the openspeedshop cbtf packages. + depends_on("cbtf@develop", when='@develop') + depends_on("cbtf@1.9.1.0", when='@2.3.1.3') + + depends_on("cbtf-krell@develop", when='@develop') + depends_on("cbtf-krell@1.9.1.0", when='@2.3.1.3') + + depends_on('cbtf-krell@develop+crayfe', when='@develop+crayfe') + depends_on('cbtf-krell@1.9.1.0+crayfe', when='@2.3.1.3+crayfe') + + depends_on('cbtf-krell@develop+cti', when='@develop+cti') + depends_on('cbtf-krell@1.9.1.0+cti', when='@2.3.1.3+cti') + + depends_on('cbtf-krell@develop+mpich', when='@develop+mpich') + depends_on('cbtf-krell@1.9.1.0+mpich', when='@2.3.1.3+mpich') + + depends_on('cbtf-krell@develop+mpich2', when='@develop+mpich2') + depends_on('cbtf-krell@1.9.1.0+mpich2', when='@2.3.1.3+mpich2') + + depends_on('cbtf-krell@develop+mpt', when='@develop+mpt') + depends_on('cbtf-krell@1.9.1.0+mpt', when='@2.3.1.3+mpt') + + depends_on('cbtf-krell@develop+mvapich', when='@develop+mvapich') + depends_on('cbtf-krell@1.9.1.0+mvapich', when='@2.3.1.3+mvapich') + + depends_on('cbtf-krell@develop+mvapich2', when='@develop+mvapich2') + depends_on('cbtf-krell@1.9.1.0+mvapich2', when='@2.3.1.3+mvapich2') + + depends_on('cbtf-krell@develop+openmpi', when='@develop+openmpi') + depends_on('cbtf-krell@1.9.1.0+openmpi', when='@2.3.1.3+openmpi') + + depends_on("cbtf-argonavis@develop", when='@develop+cuda') + depends_on("cbtf-argonavis@1.9.1.0", when='@2.3.1.3+cuda') + + # For MRNet + depends_on("mrnet@5.0.1-3:+cti", when='@develop+cti') + depends_on("mrnet@5.0.1-3:+lwthreads", when='@develop') + + depends_on("mrnet@5.0.1-3:+cti", when='@2.3.1.3+cti') + depends_on("mrnet@5.0.1-3:+lwthreads", when='@2.3.1.3') parallel = False @@ -165,6 +192,7 @@ class Openspeedshop(CMakePackage): CrayLoginNodeOptions = [] rt_platform = "cray" + # How do we get the compute node (CNL) cbtf package install # directory path? # spec['cbtf'].prefix is the login node value for this build, as @@ -188,89 +216,54 @@ class Openspeedshop(CMakePackage): compile_flags = "-O2 -g" - if spec.satisfies('+offline'): - # Indicate building offline vers (writes rawdata files) - instrumentor_setting = "offline" - if spec.satisfies('+runtime'): - cmake_args = [ - '-DCMAKE_CXX_FLAGS=%s' % compile_flags, - '-DCMAKE_C_FLAGS=%s' % compile_flags, - '-DINSTRUMENTOR=%s' % instrumentor_setting, - '-DLIBMONITOR_DIR=%s' % spec['libmonitor'].prefix, - '-DLIBUNWIND_DIR=%s' % spec['libunwind'].prefix, - '-DPAPI_DIR=%s' % spec['papi'].prefix] - - # Add any MPI implementations coming from variant settings - self.set_mpi_cmakeOptions(spec, cmake_args) - - else: - cmake_args = [] - - # Appends base options to cmake_args - self.set_defaultbase_cmakeOptions(spec, cmake_args) - cmake_args.extend( - ['-DCMAKE_CXX_FLAGS=%s' % compile_flags, - '-DCMAKE_C_FLAGS=%s' % compile_flags, - '-DINSTRUMENTOR=%s' % instrumentor_setting, - '-DLIBMONITOR_DIR=%s' % spec['libmonitor'].prefix, - '-DLIBUNWIND_DIR=%s' % spec['libunwind'].prefix, - '-DPAPI_DIR=%s' % spec['papi'].prefix, - '-DSQLITE3_DIR=%s' % spec['sqlite'].prefix, - '-DQTLIB_DIR=%s' % spec['qt'].prefix]) - - # Add any MPI implementations coming from variant settings - self.set_mpi_cmakeOptions(spec, cmake_args) + cmake_args = [] - elif spec.satisfies('+cbtf'): + # Indicate building cbtf vers (transfer rawdata files) + instrumentor_setting = "cbtf" - cmake_args = [] + if spec.satisfies('+runtime'): + # Appends base options to cmake_args + self.set_defaultbase_cmakeOptions(spec, cmake_args) - # Indicate building cbtf vers (transfer rawdata files) - instrumentor_setting = "cbtf" + cmake_args.extend( + ['-DCMAKE_CXX_FLAGS=%s' % compile_flags, + '-DCMAKE_C_FLAGS=%s' % compile_flags, + '-DINSTRUMENTOR=%s' % instrumentor_setting, + '-DCBTF_DIR=%s' % spec['cbtf'].prefix, + '-DCBTF_KRELL_DIR=%s' % spec['cbtf-krell'].prefix, + '-DMRNET_DIR=%s' % spec['mrnet'].prefix]) - if spec.satisfies('+runtime'): - # Appends base options to cmake_args - self.set_defaultbase_cmakeOptions(spec, cmake_args) + else: + # Appends base options to cmake_args + self.set_defaultbase_cmakeOptions(spec, cmake_args) + guitype = self.spec.variants['gui'].value + cmake_args.extend( + ['-DCMAKE_CXX_FLAGS=%s' % compile_flags, + '-DCMAKE_C_FLAGS=%s' % compile_flags, + '-DINSTRUMENTOR=%s' % instrumentor_setting, + '-DSQLITE3_DIR=%s' % spec['sqlite'].prefix, + '-DCBTF_DIR=%s' % spec['cbtf'].prefix, + '-DCBTF_KRELL_DIR=%s' % spec['cbtf-krell'].prefix, + '-DMRNET_DIR=%s' % spec['mrnet'].prefix]) + + if guitype == 'none': + cmake_args.extend( + ['-DBUILD_QT3_GUI=FALSE']) + elif guitype == 'qt4': cmake_args.extend( - ['-DCMAKE_CXX_FLAGS=%s' % compile_flags, - '-DCMAKE_C_FLAGS=%s' % compile_flags, - '-DINSTRUMENTOR=%s' % instrumentor_setting, - '-DCBTF_DIR=%s' % spec['cbtf'].prefix, - '-DCBTF_KRELL_DIR=%s' % spec['cbtf-krell'].prefix, - '-DMRNET_DIR=%s' % spec['mrnet'].prefix]) - - else: - - # Appends base options to cmake_args - self.set_defaultbase_cmakeOptions(spec, cmake_args) - guitype = self.spec.variants['gui'].value + ['-DBUILD_QT3_GUI=FALSE']) + elif guitype == 'qt3': cmake_args.extend( - ['-DCMAKE_CXX_FLAGS=%s' % compile_flags, - '-DCMAKE_C_FLAGS=%s' % compile_flags, - '-DINSTRUMENTOR=%s' % instrumentor_setting, - '-DSQLITE3_DIR=%s' % spec['sqlite'].prefix, - '-DCBTF_DIR=%s' % spec['cbtf'].prefix, - '-DCBTF_KRELL_DIR=%s' % spec['cbtf-krell'].prefix, - '-DMRNET_DIR=%s' % spec['mrnet'].prefix]) - - if guitype == 'none': - cmake_args.extend( - ['-DBUILD_QT3_GUI=FALSE']) - elif guitype == 'qt4': - cmake_args.extend( - ['-DBUILD_QT3_GUI=FALSE']) - elif guitype == 'qt3': - cmake_args.extend( - ['-DQTLIB_DIR=%s' - % spec['qt'].prefix]) - - if spec.satisfies('+crayfe'): - # We need to build target/compute node - # components/libraries first then pass - # those libraries to the openspeedshop - # login node build - self.set_CrayLoginNode_cmakeOptions(spec, cmake_args) + ['-DQTLIB_DIR=%s' + % spec['qt'].prefix]) + + if spec.satisfies('+crayfe'): + # We need to build target/compute node + # components/libraries first then pass + # those libraries to the openspeedshop + # login node build + self.set_CrayLoginNode_cmakeOptions(spec, cmake_args) return cmake_args @@ -352,35 +345,15 @@ class Openspeedshop(CMakePackage): os.path.dirname(oss_libdir.joined())) run_env.set('OPENSS_RAWDATA_DIR', '.') - # Settings specific to the version, checking here - # for the offline instrumentor, otherwise use cbtf instrumentor - # settings. MPI for the cbtf instrumentor is setup in cbtf-krell - if '+offline' in self.spec: - # Had to use this form of syntax self.prefix.lib and - # self.prefix.lib64 returned None all the time - run_env.set('OPENSS_PLUGIN_PATH', - join_path(oss_libdir + '/openspeedshop')) - run_env.prepend_path('PATH', self.spec['papi'].prefix.bin) - run_env.prepend_path('PATH', self.spec['libdwarf'].prefix.bin) - run_env.prepend_path('PATH', self.spec['python'].prefix.bin) - - if '+mpich' in self.spec: - run_env.set('OPENSS_MPI_IMPLEMENTATION', 'mpich') - if '+mpich2' in self.spec: - run_env.set('OPENSS_MPI_IMPLEMENTATION', 'mpich2') - if '+mvapich2' in self.spec: - run_env.set('OPENSS_MPI_IMPLEMENTATION', 'mvapich2') - if '+openmpi' in self.spec: - run_env.set('OPENSS_MPI_IMPLEMENTATION', 'openmpi') - else: - cbtf_mc = '/sbin/cbtf_mrnet_commnode' - cbtf_lmb = '/sbin/cbtf_libcbtf_mrnet_backend' - run_env.set('XPLAT_RSH', 'ssh') - run_env.set('MRNET_COMM_PATH', - join_path(self.spec['cbtf-krell'].prefix + cbtf_mc)) - run_env.set('CBTF_MRNET_BACKEND_PATH', - join_path(self.spec['cbtf-krell'].prefix + cbtf_lmb)) - run_env.prepend_path('PATH', self.spec['mrnet'].prefix.bin) - run_env.prepend_path('PATH', self.spec['cbtf-krell'].prefix.bin) - run_env.prepend_path('PATH', self.spec['cbtf-krell'].prefix.sbin) - run_env.prepend_path('PATH', self.spec['python'].prefix.bin) + + cbtf_mc = '/sbin/cbtf_mrnet_commnode' + cbtf_lmb = '/sbin/cbtf_libcbtf_mrnet_backend' + run_env.set('XPLAT_RSH', 'ssh') + run_env.set('MRNET_COMM_PATH', + join_path(self.spec['cbtf-krell'].prefix + cbtf_mc)) + run_env.set('CBTF_MRNET_BACKEND_PATH', + join_path(self.spec['cbtf-krell'].prefix + cbtf_lmb)) + run_env.prepend_path('PATH', self.spec['mrnet'].prefix.bin) + run_env.prepend_path('PATH', self.spec['cbtf-krell'].prefix.bin) + run_env.prepend_path('PATH', self.spec['cbtf-krell'].prefix.sbin) + run_env.prepend_path('PATH', self.spec['python'].prefix.bin) diff --git a/var/spack/repos/builtin/packages/qtgraph/package.py b/var/spack/repos/builtin/packages/qtgraph/package.py index 30e0e40829..f4ffbaefcf 100644 --- a/var/spack/repos/builtin/packages/qtgraph/package.py +++ b/var/spack/repos/builtin/packages/qtgraph/package.py @@ -51,12 +51,22 @@ class Qtgraph(QMakePackage): homepage = "https://github.com/OpenSpeedShop/QtGraph" url = "https://github.com/OpenSpeedShop/QtGraph.git" + + version('1.0.0.0', branch='1.0.0.0', + git='https://github.com/OpenSpeedShop/QtGraph.git') + version('1.0.0', branch='master', git='https://github.com/OpenSpeedShop/QtGraph.git') + version('develop', branch='master', + git='https://github.com/OpenSpeedShop/QtGraph.git') + # qtgraph depends on these packages - depends_on('qt@4.8.6:') - depends_on('graphviz') + depends_on('qt@4.8.6:', when='@develop') + depends_on('qt@5.10.0', when='@1.0.0.0') + + depends_on("graphviz@2.40.1:", when='@develop') + depends_on("graphviz@2.40.1", when='@1.0.0.0') def setup_environment(self, spack_env, run_env): """Set up the compile and runtime environments for a package.""" |