diff options
Diffstat (limited to 'var')
708 files changed, 10967 insertions, 1884 deletions
diff --git a/var/spack/repos/builtin.mock/packages/autotools-conditional-variants-test/package.py b/var/spack/repos/builtin.mock/packages/autotools-conditional-variants-test/package.py new file mode 100644 index 0000000000..7a0174fd21 --- /dev/null +++ b/var/spack/repos/builtin.mock/packages/autotools-conditional-variants-test/package.py @@ -0,0 +1,11 @@ +# Copyright 2013-2021 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) + + +class AutotoolsConditionalVariantsTest(AutotoolsPackage): + homepage = "https://www.example.com" + has_code = False + version('1.0') + variant('example', default=True, description='nope', when='@2.0:') diff --git a/var/spack/repos/builtin.mock/packages/cmake-conditional-variants-test/package.py b/var/spack/repos/builtin.mock/packages/cmake-conditional-variants-test/package.py new file mode 100644 index 0000000000..53ecd1e287 --- /dev/null +++ b/var/spack/repos/builtin.mock/packages/cmake-conditional-variants-test/package.py @@ -0,0 +1,9 @@ +# Copyright 2013-2021 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) + +class CmakeConditionalVariantsTest(CMakePackage): + homepage = "https://dev.null" + version('1.0') + variant('example', default=True, description='nope', when='@2.0:') diff --git a/var/spack/repos/builtin.mock/packages/extends-spec/package.py b/var/spack/repos/builtin.mock/packages/extends-spec/package.py new file mode 100644 index 0000000000..56e887b772 --- /dev/null +++ b/var/spack/repos/builtin.mock/packages/extends-spec/package.py @@ -0,0 +1,17 @@ +# Copyright 2013-2021 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 ExtendsSpec(Package): + """Package that tests if the extends directive supports a spec.""" + + homepage = "http://www.example.com" + url = "http://www.example.com/example-1.0.tar.gz" + + version('1.0', '0123456789abcdef0123456789abcdef') + + extends('extendee@1:') diff --git a/var/spack/repos/builtin.mock/packages/preferred-test/package.py b/var/spack/repos/builtin.mock/packages/preferred-test/package.py index 41ee58aeb6..2ef586192a 100644 --- a/var/spack/repos/builtin.mock/packages/preferred-test/package.py +++ b/var/spack/repos/builtin.mock/packages/preferred-test/package.py @@ -7,11 +7,9 @@ from spack import * class PreferredTest(Package): - """Dummy package with develop version and preffered version""" - homepage = "http://www.openblas.net" - url = "http://github.com/xianyi/OpenBLAS/archive/v0.2.15.tar.gz" + """Dummy package with develop version and preferred version""" + homepage = "https://github.com/LLNL/mpileaks" + url = "https://github.com/LLNL/mpileaks/releases/download/v1.0/mpileaks-1.0.tar.gz" - version('develop', git='https://github.com/dummy/repo.git') - version('0.2.16', 'b1190f3d3471685f17cfd1ec1d252ac9') - version('0.2.15', 'b1190f3d3471685f17cfd1ec1d252ac9', preferred=True) - version('0.2.14', 'b1190f3d3471685f17cfd1ec1d252ac9') + version('develop', git='https://github.com/LLNL/mpileaks.git') + version('1.0', sha256='2e34cc4505556d1c1f085758e26f2f8eea0972db9382f051b2dcfb1d7d9e1825', preferred=True) diff --git a/var/spack/repos/builtin/packages/3dtk/package.py b/var/spack/repos/builtin/packages/3dtk/package.py index 3f64b12393..d578c3c6ca 100644 --- a/var/spack/repos/builtin/packages/3dtk/package.py +++ b/var/spack/repos/builtin/packages/3dtk/package.py @@ -37,7 +37,7 @@ class _3dtk(CMakePackage): depends_on('cmake@3.5:', when='@trunk', type='build') depends_on('cmake@2.6.1:2', when='@1.2', type='build') depends_on('ninja', type='build') - depends_on('boost+serialization+graph+regex+filesystem+system+thread+date_time+program_options') + depends_on('boost@:1.75+serialization+graph+regex+filesystem+system+thread+date_time+program_options') depends_on('suite-sparse') depends_on('zlib') depends_on('libpng') diff --git a/var/spack/repos/builtin/packages/abinit/package.py b/var/spack/repos/builtin/packages/abinit/package.py index db19c5af04..438d2e3e4a 100644 --- a/var/spack/repos/builtin/packages/abinit/package.py +++ b/var/spack/repos/builtin/packages/abinit/package.py @@ -55,6 +55,9 @@ class Abinit(AutotoolsPackage): values=('safe', 'standard', 'aggressive'), description='Select the optimization flavor to use.') + variant('install-tests', default=False, + description='Install test cases') + # Add dependencies depends_on('atompaw') depends_on('blas') @@ -276,3 +279,8 @@ class Abinit(AutotoolsPackage): # requires Python with numpy, pyyaml, pandas if '~mpi' in self.spec: make('tests_in') + + def install(self, spec, prefix): + make('install') + if '+install-tests' in spec: + install_tree('tests', spec.prefix.tests) diff --git a/var/spack/repos/builtin/packages/acts/package.py b/var/spack/repos/builtin/packages/acts/package.py index dedf13d4ef..8640c461b4 100644 --- a/var/spack/repos/builtin/packages/acts/package.py +++ b/var/spack/repos/builtin/packages/acts/package.py @@ -39,6 +39,8 @@ class Acts(CMakePackage, CudaPackage): # Supported Acts versions version('main', branch='main') version('master', branch='main', deprecated=True) # For compatibility + version('15.1.0', commit='a96e6db7de6075e85b6d5346bc89845eeb89b324', submodules=True) + version('15.0.0', commit='0fef9e0831a90e946745390882aac871b211eaac', submodules=True) version('14.1.0', commit='e883ab6acfe5033509ad1c27e8e2ba980dfa59f6', submodules=True) version('14.0.0', commit='f902bef81b60133994315c13f7d32d60048c79d8', submodules=True) version('13.0.0', commit='ad05672e48b693fd37156f1ad62ed57aa82f858c', submodules=True) @@ -110,43 +112,44 @@ class Acts(CMakePackage, CudaPackage): version('0.08.0', commit='99eedb38f305e3a1cd99d9b4473241b7cd641fa9') # Variants that affect the core Acts library - variant('benchmarks', default=False, description='Build the performance benchmarks') - variant('examples', default=False, description='Build the examples') + variant('benchmarks', default=False, description='Build the performance benchmarks', when='@0.16:') + variant('examples', default=False, description='Build the examples', when='@0.23: +digitization +fatras +identification +json +tgeo') variant('integration_tests', default=False, description='Build the integration tests') variant('unit_tests', default=False, description='Build the unit tests') variant('log_failure_threshold', default='MAX', description='Log level above which examples should auto-crash') # Variants that enable / disable Acts plugins - variant('autodiff', default=False, description='Build the auto-differentiation plugin') - variant('dd4hep', default=False, description='Build the DD4hep plugin') + variant('autodiff', default=False, description='Build the auto-differentiation plugin', when='@1.2:') + variant('dd4hep', default=False, description='Build the DD4hep plugin', when='+tgeo') variant('digitization', default=False, description='Build the geometric digitization plugin') - variant('fatras', default=False, description='Build the FAst TRAcking Simulation package') + variant('fatras', default=False, description='Build the FAst TRAcking Simulation package', when='@0.16:') variant('fatras_geant4', default=False, description='Build Geant4 Fatras package') variant('identification', default=False, description='Build the Identification plugin') variant('json', default=False, description='Build the Json plugin') variant('legacy', default=False, description='Build the Legacy package') # FIXME: Cannot build ONNX plugin as Spack doesn't have an ONNX runtime # FIXME: Cannot build SyCL plugin yet as Spack doesn't have SyCL support - variant('tgeo', default=False, description='Build the TGeo plugin') - variant('alignment', default=False, description='Build the alignment package') + variant('tgeo', default=False, description='Build the TGeo plugin', when='+identification') + variant('alignment', default=False, description='Build the alignment package', when='@13:') # Variants that only affect Acts examples for now - variant('geant4', default=False, description='Build the Geant4-based examples') - variant('hepmc3', default=False, description='Build the HepMC3-based examples') - variant('pythia8', default=False, description='Build the Pythia8-based examples') - variant('python', default=False, description='Build python bindings for the examples') + variant('geant4', default=False, description='Build the Geant4-based examples', when='@0.23: +examples') + variant('hepmc3', default=False, description='Build the HepMC3-based examples', when='@0.23: +examples') + variant('pythia8', default=False, description='Build the Pythia8-based examples', when='@0.23: +examples') + variant('python', default=False, description='Build python bindings for the examples', when='@14: +examples') variant('analysis', default=False, description='Build analysis applications in the examples') # Build dependencies - # FIXME: Use spack's autodiff package once there is one # FIXME: Use spack's vecmem package once there is one # (https://github.com/acts-project/acts/pull/998) + depends_on('autodiff @0.5.11:', when='@1.2: +autodiff') depends_on('boost @1.62:1.69 +program_options +test', when='@:0.10.3') depends_on('boost @1.71: +filesystem +program_options +test', when='@0.10.4:') depends_on('cmake @3.14:', type='build') - depends_on('dd4hep @1.11:', when='+dd4hep') - depends_on('dd4hep @1.11: +geant4', when='+dd4hep +geant4') - depends_on('eigen @3.3.7:') + depends_on('dd4hep @1.11: +dddetectors +ddrec', when='+dd4hep') + depends_on('dd4hep +ddg4', when='+dd4hep +geant4 +examples') + depends_on('eigen @3.3.7:', when='@15.1:') + depends_on('eigen @3.3.7:3.3.99', when='@:15.0') depends_on('geant4', when='+fatras_geant4') depends_on('geant4', when='+geant4') depends_on('hepmc3 @3.2.1:', when='+hepmc3') @@ -159,27 +162,7 @@ class Acts(CMakePackage, CudaPackage): depends_on('root @6.10: cxxstd=14', when='+tgeo @:0.8.0') depends_on('root @6.20: cxxstd=17', when='+tgeo @0.8.1:') - # Some variant combinations do not make sense - conflicts('+autodiff', when='@:1.01') - conflicts('+benchmarks', when='@:0.15') - conflicts('+dd4hep', when='-tgeo') - conflicts('+examples', when='@:0.22') - conflicts('+examples', when='-digitization') - conflicts('+examples', when='-fatras') - conflicts('+examples', when='-identification') - conflicts('+examples', when='-json') - conflicts('+examples', when='-tgeo') - conflicts('+fatras', when='@:0.15') - conflicts('+geant4', when='@:0.22') - conflicts('+geant4', when='-examples') - conflicts('+hepmc3', when='@:0.22') - conflicts('+hepmc3', when='-examples') - conflicts('+pythia8', when='@:0.22') - conflicts('+pythia8', when='-examples') - conflicts('+python', when='@:13') - conflicts('+python', when='-examples') - conflicts('+tgeo', when='-identification') - conflicts('+alignment', when='@:12') + # ACTS has been using C++17 for a while, which precludes use of old GCC conflicts('%gcc@:7', when='@0.23:') def cmake_args(self): @@ -238,16 +221,18 @@ class Acts(CMakePackage, CudaPackage): log_failure_threshold = spec.variants['log_failure_threshold'].value args.append("-DACTS_LOG_FAILURE_THRESHOLD={0}".format(log_failure_threshold)) - cuda_arch = spec.variants['cuda_arch'].value - if cuda_arch != 'none': - args.append('-DCUDA_FLAGS=-arch=sm_{0}'.format(cuda_arch[0])) + if '+cuda' in spec: + cuda_arch = spec.variants['cuda_arch'].value + if cuda_arch != 'none': + args.append('-DCUDA_FLAGS=-arch=sm_{0}'.format(cuda_arch[0])) if 'root' in spec: cxxstd = spec['root'].variants['cxxstd'].value args.append("-DCMAKE_CXX_STANDARD={0}".format(cxxstd)) - # FIXME: Once we can use spack's autodiff package, set - # ACTS_USE_SYSTEM_AUTODIFF too. + if spec.satisfies('+autodiff'): + args.append("-DACTS_USE_SYSTEM_AUTODIFF=ON") + if spec.satisfies('@0.33: +json'): args.append("-DACTS_USE_SYSTEM_NLOHMANN_JSON=ON") elif spec.satisfies('@0.14.0: +json'): diff --git a/var/spack/repos/builtin/packages/adol-c/package.py b/var/spack/repos/builtin/packages/adol-c/package.py index 404a511236..3c8442feda 100644 --- a/var/spack/repos/builtin/packages/adol-c/package.py +++ b/var/spack/repos/builtin/packages/adol-c/package.py @@ -30,6 +30,8 @@ class AdolC(AutotoolsPackage): description='Enable advanced branching to reduce retaping') variant('atrig_erf', default=True, description='Enable arc-trig and error functions') + variant('stdczero', default=True, + description='Enable default initialization for the adouble datatype') variant('doc', default=True, description='Install documentation') variant('openmp', default=False, description='Enable OpenMP support') variant('sparse', default=False, description='Enable sparse drivers') @@ -70,25 +72,17 @@ class AdolC(AutotoolsPackage): '--with-boost=no' ) - if '+advanced_branching' in spec: - configure_args.append( - '--enable-advanced-branching' - ) - - if '+atrig_erf' in spec: - configure_args.append( - '--enable-atrig-erf' - ) - if '+openmp' in spec: configure_args.append( '--with-openmp-flag={0}'.format(self.compiler.openmp_flag) ) - if '+sparse' in spec: - configure_args.append( - '--enable-sparse' - ) + configure_args.extend(self.enable_or_disable('advanced-branching', + variant='advanced_branching')) + + configure_args.extend(self.enable_or_disable('atrig-erf', variant='atrig_erf')) + configure_args.extend(self.enable_or_disable('sparse')) + configure_args.extend(self.enable_or_disable('stdczero')) # We can simply use the bundled examples to check # whether Adol-C works as expected diff --git a/var/spack/repos/builtin/packages/amdblis/package.py b/var/spack/repos/builtin/packages/amdblis/package.py index 22fa9165eb..7e3ebba99f 100644 --- a/var/spack/repos/builtin/packages/amdblis/package.py +++ b/var/spack/repos/builtin/packages/amdblis/package.py @@ -22,17 +22,50 @@ class Amdblis(BlisBase): maintainers = ['amd-toolchain-support'] + version('3.1', sha256='2891948925b9db99eec02a1917d9887a7bee9ad2afc5421c9ba58602a620f2bf') + version('3.0.1', sha256='dff643e6ef946846e91e8f81b75ff8fe21f1f2d227599aecd654d184d9beff3e') version('3.0', sha256='ac848c040cd6c3550fe49148dbdf109216cad72d3235763ee7ee8134e1528517') version('2.2', sha256='e1feb60ac919cf6d233c43c424f6a8a11eab2c62c2c6e3f2652c15ee9063c0c9') + variant( + 'ilp64', + default=False, + description='Build with ILP64 support') + + conflicts( + '+ilp64', + when='@:3.0.0', + msg='ilp64 is supported from amdblis 3.0.1 version onwards') + def configure_args(self): spec = self.spec args = super(Amdblis, self).configure_args() - if spec.satisfies('@3.0 %aocc'): - """ To enabled Fortran to C calling convention for - complex types when compiling with aocc flang""" + if spec.satisfies('+ilp64'): + args.append('--blas-int-size=64') + + """ To enable Fortran to C calling convention for + complex types when compiling with aocc flang""" + if self.spec.satisfies("@3.0 %aocc"): args.append('CFLAGS={0}'.format("-DAOCL_F2C")) args.append('CXXFLAGS={0}'.format("-DAOCL_F2C")) + elif self.spec.satisfies("@3.0.1: %aocc"): + args.append('--complex-return=intel') + + if self.spec.satisfies("@3.1:"): + args.append('--disable-aocl-dynamic') return args + + def configure(self, spec, prefix): + config_args = self.configure_args() + + # "amdzen" - A fat binary or multiarchitecture binary + # support for 3.1 release onwards + if self.spec.satisfies("@3.1:"): + config_args.append("amdzen") + else: + config_args.append("auto") + + configure("--prefix=" + prefix, + *config_args) diff --git a/var/spack/repos/builtin/packages/amdfftw/package.py b/var/spack/repos/builtin/packages/amdfftw/package.py index a43baa1094..8e77b17199 100644 --- a/var/spack/repos/builtin/packages/amdfftw/package.py +++ b/var/spack/repos/builtin/packages/amdfftw/package.py @@ -31,36 +31,150 @@ class Amdfftw(FftwBase): maintainers = ['amd-toolchain-support'] + version('3.1', sha256='3e777f3acef13fa1910db097e818b1d0d03a6a36ef41186247c6ab1ab0afc132') + version('3.0.1', sha256='87030c6bbb9c710f0a64f4f306ba6aa91dc4b182bb804c9022b35aef274d1a4c') version('3.0', sha256='a69deaf45478a59a69f77c4f7e9872967f1cfe996592dd12beb6318f18ea0bcd') version('2.2', sha256='de9d777236fb290c335860b458131678f75aa0799c641490c644c843f0e246f8') - variant('shared', default=True, description="Builds a shared version of the library") - variant('openmp', default=True, description="Enable OpenMP support") - variant('threads', default=False, description="Enable SMP threads support") - variant('debug', default=False, description="Builds a debug version of the library") + variant('shared', default=True, + description='Builds a shared version of the library') + variant('openmp', default=True, + description='Enable OpenMP support') + variant('threads', default=False, + description='Enable SMP threads support') + variant('debug', default=False, + description='Builds a debug version of the library') variant( 'amd-fast-planner', default=False, - description="Option to reduce the planning time without much" - "tradeoff in the performance. It is supported for" - "Float and double precisions only.") + description='Option to reduce the planning time without much' + 'tradeoff in the performance. It is supported for' + 'Float and double precisions only.') + variant( + 'amd-top-n-planner', + default=False, + description='Build with amd-top-n-planner support') + variant( + 'amd-mpi-vader-limit', + default=False, + description='Build with amd-mpi-vader-limit support') + variant( + 'static', + default=False, + description='Build with static suppport') + variant( + 'amd-trans', + default=False, + description='Build with amd-trans suppport') + variant( + 'amd-app-opt', + default=False, + description='Build with amd-app-opt suppport') depends_on('texinfo') provides('fftw-api@3', when='@2:') - conflicts('precision=quad', when='@2.2 %aocc', msg="AOCC clang doesn't support quad precision") - conflicts('+debug', when='@2.2 %aocc', msg="AOCC clang doesn't support debug") - conflicts('%gcc@:7.2', when="@2.2:", msg="Required GCC version above 7.2 for AMDFFTW") - conflicts('+amd-fast-planner', when="@2.2", msg="amd-fast-planner is supported from 3.0 onwards") + conflicts( + 'precision=quad', + when='@2.2 %aocc', + msg='Quad precision is not supported by AOCC clang version 2.2') + conflicts( + '+debug', + when='@2.2 %aocc', + msg='debug mode is not supported by AOCC clang version 2.2') + conflicts( + '%gcc@:7.2', + when='@2.2:', + msg='GCC version above 7.2 is required for AMDFFTW') + conflicts( + '+amd-fast-planner ', + when='+mpi', + msg='mpi thread is not supported with amd-fast-planner') + conflicts( + '+amd-fast-planner', + when='@2.2', + msg='amd-fast-planner is supported from 3.0 onwards') conflicts( '+amd-fast-planner', when='precision=quad', - msg="amd-fast-planner doesn't support quad precision") + msg='Quad precision is not supported with amd-fast-planner') conflicts( '+amd-fast-planner', when='precision=long_double', - msg="amd-fast-planner doesn't support long_double precision") + msg='long_double precision is not supported with amd-fast-planner') + conflicts( + '+amd-top-n-planner', + when='@:3.0.0', + msg='amd-top-n-planner is supported from 3.0.1 onwards') + conflicts( + '+amd-top-n-planner', + when='precision=long_double', + msg='long_double precision is not supported with amd-top-n-planner') + conflicts( + '+amd-top-n-planner', + when='precision=quad', + msg='Quad precision is not supported with amd-top-n-planner') + conflicts( + '+amd-top-n-planner', + when='+amd-fast-planner', + msg='amd-top-n-planner cannot be used with amd-fast-planner') + conflicts( + '+amd-top-n-planner', + when='+threads', + msg='amd-top-n-planner works only for single thread') + conflicts( + '+amd-top-n-planner', + when='+mpi', + msg='mpi thread is not supported with amd-top-n-planner') + conflicts( + '+amd-top-n-planner', + when='+openmp', + msg='openmp thread is not supported with amd-top-n-planner') + conflicts( + '+amd-mpi-vader-limit', + when='@:3.0.0', + msg='amd-mpi-vader-limit is supported from 3.0.1 onwards') + conflicts( + '+amd-mpi-vader-limit', + when='precision=quad', + msg='Quad precision is not supported with amd-mpi-vader-limit') + conflicts( + '+amd-trans', + when='+threads', + msg='amd-trans works only for single thread') + conflicts( + '+amd-trans', + when='+mpi', + msg='mpi thread is not supported with amd-trans') + conflicts( + '+amd-trans', + when='+openmp', + msg='openmp thread is not supported with amd-trans') + conflicts( + '+amd-trans', + when='precision=long_double', + msg='long_double precision is not supported with amd-trans') + conflicts( + '+amd-trans', + when='precision=quad', + msg='Quad precision is not supported with amd-trans') + conflicts( + '+amd-app-opt', + when='@:3.0.1', + msg='amd-app-opt is supported from 3.1 onwards') + conflicts( + '+amd-app-opt', + when='+mpi', + msg='mpi thread is not supported with amd-app-opt') + conflicts( + '+amd-app-opt', + when='precision=long_double', + msg='long_double precision is not supported with amd-app-opt') + conflicts( + '+amd-app-opt', + when='precision=quad', + msg='Quad precision is not supported with amd-app-opt') def configure(self, spec, prefix): """Configure function""" @@ -72,28 +186,13 @@ class Amdfftw(FftwBase): # Check if compiler is AOCC if '%aocc' in spec: - options.append("CC={0}".format(os.path.basename(spack_cc))) - options.append("FC={0}".format(os.path.basename(spack_fc))) - options.append("F77={0}".format(os.path.basename(spack_fc))) - - if '+shared' in spec: - options.append('--enable-shared') - else: - options.append('--disable-shared') + options.append('CC={0}'.format(os.path.basename(spack_cc))) + options.append('FC={0}'.format(os.path.basename(spack_fc))) + options.append('F77={0}'.format(os.path.basename(spack_fc))) if '+debug' in spec: options.append('--enable-debug') - if '+openmp' in spec: - options.append('--enable-openmp') - else: - options.append('--disable-openmp') - - if '+threads' in spec: - options.append('--enable-threads') - else: - options.append('--disable-threads') - if '+mpi' in spec: options.append('--enable-mpi') options.append('--enable-amd-mpifft') @@ -101,13 +200,18 @@ class Amdfftw(FftwBase): options.append('--disable-mpi') options.append('--disable-amd-mpifft') - if '+amd-fast-planner' in spec: - options.append('--enable-amd-fast-planner') - else: - options.append('--disable-amd-fast-planner') + options.extend(self.enable_or_disable('shared')) + options.extend(self.enable_or_disable('openmp')) + options.extend(self.enable_or_disable('threads')) + options.extend(self.enable_or_disable('amd-fast-planner')) + options.extend(self.enable_or_disable('amd-top-n-planner')) + options.extend(self.enable_or_disable('amd-mpi-vader-limit')) + options.extend(self.enable_or_disable('static')) + options.extend(self.enable_or_disable('amd-trans')) + options.extend(self.enable_or_disable('amd-app-opt')) if not self.compiler.f77 or not self.compiler.fc: - options.append("--disable-fortran") + options.append('--disable-fortran') # Cross compilation is supported in amd-fftw by making use of target # variable to set AMD_ARCH configure option. @@ -115,9 +219,9 @@ class Amdfftw(FftwBase): # use target variable to set appropriate -march option in AMD_ARCH. arch = spec.architecture options.append( - "AMD_ARCH={0}".format( + 'AMD_ARCH={0}'.format( arch.target.optimization_flags( - spec.compiler).split("=")[-1])) + spec.compiler).split('=')[-1])) # Specific SIMD support. # float and double precisions are supported diff --git a/var/spack/repos/builtin/packages/amdlibflame/package.py b/var/spack/repos/builtin/packages/amdlibflame/package.py index 56e97e5894..fc27de6d52 100644 --- a/var/spack/repos/builtin/packages/amdlibflame/package.py +++ b/var/spack/repos/builtin/packages/amdlibflame/package.py @@ -36,11 +36,22 @@ class Amdlibflame(LibflameBase): maintainers = ['amd-toolchain-support'] + version('3.1', sha256='97c74086306fa6dea9233a3730407c400c196b55f4461d4861364b1ac131ca42') + version('3.0.1', sha256='5859e7b39ffbe73115dd598b035f212d36310462cf3a45e555a5087301710776') version('3.0', sha256='d94e08b688539748571e6d4c1ec1ce42732eac18bd75de989234983c33f01ced') version('2.2', sha256='12b9c1f92d2c2fa637305aaa15cf706652406f210eaa5cbc17aaea9fcfa576dc') + variant('ilp64', default=False, description='Build with ILP64 support') + + conflicts('+ilp64', when="@:3.0.0", + msg="ILP64 is supported from 3.0.1 onwards") + conflicts('threads=pthreads', + msg='pthread is not supported') + conflicts('threads=openmp', + msg='openmp is not supported') + patch('aocc-2.2.0.patch', when="@:2", level=1) - patch('cray-compiler-wrapper.patch') + patch('cray-compiler-wrapper.patch', when="@:3.0.0", level=1) provides('flame@5.2', when='@2:') @@ -64,8 +75,29 @@ class Amdlibflame(LibflameBase): if "@3.0: %aocc" in self.spec: args.append("--enable-f2c-dotc") + if "@3.0.1: +ilp64" in self.spec: + args.append("--enable-ilp64") + + if "@3.1: %aocc" in self.spec: + args.append("--enable-void-return-complex") + + if "@3.1: " in self.spec: + args.append("--enable-blas-ext-gemmt") + return args + @run_after('build') + @on_package_attributes(run_tests=True) + def check(self): + """make check for single and multithread""" + blas_flags = self.spec['blas'].libs.ld_flags + if self.spec.variants['threads'].value != 'none': + make('check', + 'LIBBLAS = -fopenmp {0}'.format(blas_flags), parallel=False) + else: + make('check', + 'LIBBLAS = {0}'.format(blas_flags), parallel=False) + def install(self, spec, prefix): """make install function""" # make install in parallel fails with message 'File already exists' diff --git a/var/spack/repos/builtin/packages/amdlibm/0001-libm-ose-Scripts-cleanup-pyc-files.patch b/var/spack/repos/builtin/packages/amdlibm/0001-libm-ose-Scripts-cleanup-pyc-files.patch index fc084b7d4b..fc084b7d4b 100755..100644 --- a/var/spack/repos/builtin/packages/amdlibm/0001-libm-ose-Scripts-cleanup-pyc-files.patch +++ b/var/spack/repos/builtin/packages/amdlibm/0001-libm-ose-Scripts-cleanup-pyc-files.patch diff --git a/var/spack/repos/builtin/packages/amdlibm/0002-libm-ose-prevent-log-v3.c-from-building.patch b/var/spack/repos/builtin/packages/amdlibm/0002-libm-ose-prevent-log-v3.c-from-building.patch index b540f1cda3..b540f1cda3 100755..100644 --- a/var/spack/repos/builtin/packages/amdlibm/0002-libm-ose-prevent-log-v3.c-from-building.patch +++ b/var/spack/repos/builtin/packages/amdlibm/0002-libm-ose-prevent-log-v3.c-from-building.patch diff --git a/var/spack/repos/builtin/packages/amdlibm/package.py b/var/spack/repos/builtin/packages/amdlibm/package.py index c38c98fd1e..fa88f3bf56 100644 --- a/var/spack/repos/builtin/packages/amdlibm/package.py +++ b/var/spack/repos/builtin/packages/amdlibm/package.py @@ -25,6 +25,7 @@ class Amdlibm(SConsPackage): # of master branch. # To install amdlibm from latest master branch: # spack install amdlibm ^amdlibm@master + version("3.1", branch="aocl-3.1") version("3.0", branch="aocl-3.0") version("2.2", commit="4033e022da428125747e118ccd6fdd9cee21c470") @@ -32,6 +33,7 @@ class Amdlibm(SConsPackage): description="Building with verbosity") # Mandatory dependencies + depends_on("python@3.6.2", when="%aocc@3.2.0:", type=("build", "run")) depends_on("python@3.6.1:", type=("build", "run")) depends_on("scons@3.1.2:", type=("build")) depends_on("mpfr", type=("link")) @@ -39,25 +41,35 @@ class Amdlibm(SConsPackage): patch("0001-libm-ose-Scripts-cleanup-pyc-files.patch", when="@2.2") patch("0002-libm-ose-prevent-log-v3.c-from-building.patch", when="@2.2") - conflicts("%gcc@:9.1", msg="Minimum required GCC version is 9.2.0") + conflicts( + '%gcc@:9.1.0', + msg='Minimum required GCC version is 9.2.0') + conflicts( + '%gcc@11.2.0:', + msg='Maximum required GCC version is 11.1.0') + conflicts( + '%aocc@3.2.0', + when='@2.2:3.0', + msg='amdlibm 2.2 and 3.0 versions are not supported with AOCC 3.2.0') def build_args(self, spec, prefix): """Setting build arguments for amdlibm """ args = ["--prefix={0}".format(prefix)] - if "%aocc" in spec: - args.append("--compiler=aocc") - # we are circumventing the use of # Spacks compiler wrappers because # SCons wipes out all environment variables. - args.append("CC={0}".format(self.compiler.cc)) - args.append("CXX={0}".format(self.compiler.cxx)) + if spec.satisfies("@:3.0 %aocc"): + args.append("--compiler=aocc") + + var_prefix = '' if spec.satisfies("@:3.0") else 'ALM_' + args.append("{0}CC={1}".format(var_prefix, self.compiler.cc)) + args.append("{0}CXX={1}".format(var_prefix, self.compiler.cxx)) if "+verbose" in spec: - args.append("verbose=1") + args.append("--verbose=1") else: - args.append("verbose=0") + args.append("--verbose=0") return args diff --git a/var/spack/repos/builtin/packages/amdscalapack/package.py b/var/spack/repos/builtin/packages/amdscalapack/package.py index 23ccc2ccb3..d427760dcb 100644 --- a/var/spack/repos/builtin/packages/amdscalapack/package.py +++ b/var/spack/repos/builtin/packages/amdscalapack/package.py @@ -20,11 +20,11 @@ class Amdscalapack(ScalapackBase): _name = 'amdscalapack' homepage = "https://developer.amd.com/amd-aocl/scalapack/" - url = "https://github.com/amd/scalapack/archive/3.0.tar.gz" git = "https://github.com/amd/scalapack.git" maintainers = ['amd-toolchain-support'] + version('3.1', sha256='4c2ee2c44644a0feec0c6fc1b1a413fa9028f14d7035d43a398f5afcfdbacb98') version('3.0', sha256='6e6f3578f44a8e64518d276e7580530599ecfa8729f568303ed2590688e7096f') version('2.2', sha256='2d64926864fc6d12157b86e3f88eb1a5205e7fc157bf67e7577d0f18b9a7484c') @@ -33,6 +33,21 @@ class Amdscalapack(ScalapackBase): default='Release', description='CMake build type', values=('Release', 'RelWithDebInfo')) + variant( + 'ilp64', + default=False, + description='Build with ILP64 support') + + conflicts('+ilp64', when="@:3.0", + msg="ILP64 is supported from 3.1 onwards") + + def url_for_version(self, version): + if version == Version('3.1'): + return "https://github.com/amd/aocl-scalapack/archive/3.1.tar.gz" + elif version == Version('3.0'): + return "https://github.com/amd/scalapack/archive/3.0.tar.gz" + elif version == Version('2.2'): + return "https://github.com/amd/scalapack/archive/2.2.tar.gz" def cmake_args(self): """ cmake_args function""" @@ -47,8 +62,13 @@ class Amdscalapack(ScalapackBase): args.extend(['-DUSE_DOTC_WRAPPER:BOOL=%s' % ( 'ON' if spec.satisfies('%aocc ^amdblis') else 'OFF')]) + # -DENABLE_ILP64:BOOL=ON + args.extend([self.define_from_variant('ENABLE_ILP64', 'ilp64')]) + + # -DUSE_F2C:BOOL=ON + args.extend([self.define('USE_F2C', spec.satisfies('@:3.0'))]) + args.extend([ - '-DUSE_F2C=ON', '-DLAPACK_FOUND=true', '-DCMAKE_C_COMPILER=%s' % spec['mpi'].mpicc, '-DCMAKE_Fortran_COMPILER=%s' % spec['mpi'].mpifc, diff --git a/var/spack/repos/builtin/packages/amrex/package.py b/var/spack/repos/builtin/packages/amrex/package.py index 8a86bf97d3..a06369066c 100644 --- a/var/spack/repos/builtin/packages/amrex/package.py +++ b/var/spack/repos/builtin/packages/amrex/package.py @@ -12,7 +12,7 @@ class Amrex(CMakePackage, CudaPackage, ROCmPackage): mesh refinement (AMR) applications.""" homepage = "https://amrex-codes.github.io/amrex/" - url = "https://github.com/AMReX-Codes/amrex/releases/download/21.11/amrex-21.11.tar.gz" + url = "https://github.com/AMReX-Codes/amrex/releases/download/21.12/amrex-21.12.tar.gz" git = "https://github.com/AMReX-Codes/amrex.git" tags = ['ecp', 'e4s'] @@ -20,6 +20,7 @@ class Amrex(CMakePackage, CudaPackage, ROCmPackage): maintainers = ['WeiqunZhang', 'asalmgren'] version('develop', branch='development') + version('21.12', sha256='439f9ebf2b440fc739a7976f3ade188ec3e1de5f51a0b151e6b8dda36fa67278') version('21.11', sha256='2edb72d7cf7e86340fcaceb325368560957bcd952fd34cd501bfdf038e1338a4') version('21.10', sha256='a11954c03b1ec26c26b676460dc5de5195469e813b70fbcea6dfdefeafaf5407') version('21.09', sha256='983b41d93bf9417c032080fd2ec7c04d0d2b820e613a076bd07566aa5a8aa4bd') diff --git a/var/spack/repos/builtin/packages/ants/package.py b/var/spack/repos/builtin/packages/ants/package.py index 6c3c2232af..caf63d8f4b 100644 --- a/var/spack/repos/builtin/packages/ants/package.py +++ b/var/spack/repos/builtin/packages/ants/package.py @@ -27,6 +27,7 @@ class Ants(CMakePackage): def cmake_args(self): return [ + "-DBUILD_TESTING=OFF", # needed for <= 2.3.5 due to ANTs/#1236 self.define_from_variant('ITK_BUILD_MINC_SUPPORT', 'minc') ] diff --git a/var/spack/repos/builtin/packages/aocc/package.py b/var/spack/repos/builtin/packages/aocc/package.py index f54b173c7c..9ecd0fef91 100755..100644 --- a/var/spack/repos/builtin/packages/aocc/package.py +++ b/var/spack/repos/builtin/packages/aocc/package.py @@ -32,6 +32,8 @@ class Aocc(Package): maintainers = ['amd-toolchain-support'] + version(ver="3.2.0", sha256='8493525b3df77f48ee16f3395a68ad4c42e18233a44b4d9282b25dbb95b113ec', + url='https://developer.amd.com/wordpress/media/files/aocc-compiler-3.2.0.tar') version(ver="3.1.0", sha256='1948104a430506fe5e445c0c796d6956109e7cc9fc0a1e32c9f1285cfd566d0c', url='https://developer.amd.com/wordpress/media/files/aocc-compiler-3.1.0.tar') version(ver="3.0.0", sha256='4ff269b1693856b9920f57e3c85ce488c8b81123ddc88682a3ff283979362227', diff --git a/var/spack/repos/builtin/packages/aocl-sparse/package.py b/var/spack/repos/builtin/packages/aocl-sparse/package.py index f23ef06027..426e17faa3 100644 --- a/var/spack/repos/builtin/packages/aocl-sparse/package.py +++ b/var/spack/repos/builtin/packages/aocl-sparse/package.py @@ -20,6 +20,7 @@ class AoclSparse(CMakePackage): maintainers = ['amd-toolchain-support'] + version('3.1', sha256='8536f06095c95074d4297a3d2910654085dd91bce82e116c10368a9f87e9c7b9') version('3.0', sha256='1d04ba16e04c065051af916b1ed9afce50296edfa9b1513211a7378e1d6b952e') version('2.2', sha256='33c2ed6622cda61d2613ee63ff12c116a6cd209c62e54307b8fde986cd65f664') @@ -34,6 +35,7 @@ class AoclSparse(CMakePackage): description='Build with ILP64 support') depends_on('boost', when='@2.2') + depends_on('cmake@3.5:', type='build') @property def build_directory(self): diff --git a/var/spack/repos/builtin/packages/aoflagger/package.py b/var/spack/repos/builtin/packages/aoflagger/package.py index e44961bcfd..34daa97a9d 100644 --- a/var/spack/repos/builtin/packages/aoflagger/package.py +++ b/var/spack/repos/builtin/packages/aoflagger/package.py @@ -15,7 +15,7 @@ class Aoflagger(CMakePackage): version('2.10.0', sha256='3ec1188d37101acf2029575ebc09c50b19c158c88a12b55ac5d25a96bd8fc18d') - depends_on('casacore+python+fftw@1.10:') + depends_on('casacore+python~fftpack@1.10:') depends_on('fftw~mpi@3.0:') depends_on('boost+python@:1.66.99') depends_on('libxml2') diff --git a/var/spack/repos/builtin/packages/apktool/package.py b/var/spack/repos/builtin/packages/apktool/package.py new file mode 100644 index 0000000000..ba2041967f --- /dev/null +++ b/var/spack/repos/builtin/packages/apktool/package.py @@ -0,0 +1,42 @@ +# Copyright 2013-2021 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 Apktool(Package): + """A tool for reverse engineering 3rd party, closed, binary + Android apps.""" + + homepage = "https://ibotpeaches.github.io/Apktool/" + url = "https://github.com/iBotPeaches/Apktool/archive/refs/tags/v2.6.0.tar.gz" + + version('2.6.0', sha256='74739cdb1434ca35ec34e51ca7272ad3f378ae3ed0a2d5805d9a2fab5016037f') + + depends_on('java@8:', type=('build', 'run')) + + phases = ['build', 'install'] + + def setup_build_environment(self, env): + env.set('LC_ALL', 'en_US.UTF-8') + + def build(self, spec, prefix): + gradlew = Executable('./gradlew') + gradlew('--info', '--debug', 'build', 'shadowJar') + + def install(self, spec, prefix): + ln = which('ln') + mkdir(join_path(prefix, 'bin')) + install( + join_path('brut.apktool', 'apktool-cli', 'build', 'libs', + 'apktool-cli-all.jar'), + join_path(prefix, 'bin')) + install( + join_path('scripts', 'linux', 'apktool'), + join_path(prefix, 'bin')) + ln( + '-s', + join_path(prefix, 'bin', 'apktool-cli-all.jar'), + join_path(prefix, 'bin', 'apktool.jar')) diff --git a/var/spack/repos/builtin/packages/arborx/package.py b/var/spack/repos/builtin/packages/arborx/package.py index 5251d6191e..f95681bc00 100644 --- a/var/spack/repos/builtin/packages/arborx/package.py +++ b/var/spack/repos/builtin/packages/arborx/package.py @@ -20,7 +20,7 @@ class Arborx(CMakePackage): version('master', branch='master') version('1.1', sha256='2b5f2d2d5cec57c52f470c2bf4f42621b40271f870b4f80cb57e52df1acd90ce') version('1.0', sha256='9b5f45c8180622c907ef0b7cc27cb18ba272ac6558725d9e460c3f3e764f1075') - version('0.9-beta', sha256='b349b5708d1aa00e8c20c209ac75dc2d164ff9bf1b85adb5437346d194ba6c0d') + version('0.9-beta', sha256='b349b5708d1aa00e8c20c209ac75dc2d164ff9bf1b85adb5437346d194ba6c0d', deprecated=True) # ArborX relies on Kokkos to provide devices, providing one-to-one matching # variants. The only way to disable those devices is to make sure Kokkos diff --git a/var/spack/repos/builtin/packages/asciidoc/package.py b/var/spack/repos/builtin/packages/asciidoc/package.py index 72ab85c947..89aff06282 100644 --- a/var/spack/repos/builtin/packages/asciidoc/package.py +++ b/var/spack/repos/builtin/packages/asciidoc/package.py @@ -30,6 +30,9 @@ class Asciidoc(AutotoolsPackage): depends_on('docbook-xsl', type=('build', 'run')) depends_on('python@2.3.0:2.7', when='@:8.6.9', type=('build', 'run')) depends_on('python@3.5:', when='@9.0.2:', type=('build', 'run')) + depends_on('autoconf', type='build') + depends_on('automake', type='build') + depends_on('libtool', type='build') @when('@:8.6.9') def install(self, spec, prefix): diff --git a/var/spack/repos/builtin/packages/assimp/package.py b/var/spack/repos/builtin/packages/assimp/package.py index 58968fe271..9b694cf54f 100644 --- a/var/spack/repos/builtin/packages/assimp/package.py +++ b/var/spack/repos/builtin/packages/assimp/package.py @@ -14,7 +14,11 @@ class Assimp(CMakePackage): url = "https://github.com/assimp/assimp/archive/v4.0.1.tar.gz" git = "https://github.com/assimp/assimp.git" + maintainers = ['wdconinc'] + version('master', branch='master') + version('5.1.4', sha256='bd32cdc27e1f8b7ac09d914ab92dd81d799c97e9e47315c1f40dcb7c6f7938c6') + version('5.1.3', sha256='50a7bd2c8009945e1833c591d16f4f7c491a3c6190f69d9d007167aadb175c35') version('5.0.1', sha256='11310ec1f2ad2cd46b95ba88faca8f7aaa1efe9aa12605c55e3de2b977b3dbfc') version('4.0.1', sha256='60080d8ab4daaab309f65b3cffd99f19eb1af8d05623fff469b9b652818e286e') diff --git a/var/spack/repos/builtin/packages/autodiff/package.py b/var/spack/repos/builtin/packages/autodiff/package.py new file mode 100644 index 0000000000..013b011f85 --- /dev/null +++ b/var/spack/repos/builtin/packages/autodiff/package.py @@ -0,0 +1,35 @@ +# Copyright 2013-2021 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 Autodiff(CMakePackage): + """autodiff is automatic differentiation made easier for C++.""" + + homepage = "https://autodiff.github.io" + url = "https://github.com/autodiff/autodiff/archive/refs/tags/v0.6.4.tar.gz" + list_url = "https://github.com/autodiff/autodiff/releases" + git = "https://github.com/autodiff/autodiff.git" + + maintainers = ['wdconinc', 'HadrienG2'] + + version('0.6.4', sha256='cfe0bb7c0de10979caff9d9bfdad7e6267faea2b8d875027397486b47a7edd75') + version('0.5.13', sha256='a73dc571bcaad6b44f74865fed51af375f5a877db44321b5568d94a4358b77a1') + + variant('python', default='False', description='Enable the compilation of the python bindings.') + variant('examples', default='False', description='Enable the compilation of the example files.') + + depends_on('cmake@3.0:', type='build') + depends_on('eigen') + depends_on('py-pybind11', type=('build', 'run')) + + def cmake_args(self): + args = [ + self.define('AUTODIFF_BUILD_TESTS', self.run_tests), + self.define_from_variant('AUTODIFF_BUILD_PYTHON', 'python'), + self.define_from_variant('AUTODIFF_BUILD_EXAMPLES', 'examples',) + ] + return args diff --git a/var/spack/repos/builtin/packages/aws-parallelcluster/package.py b/var/spack/repos/builtin/packages/aws-parallelcluster/package.py index ac81dbb87e..f1f8df2269 100644 --- a/var/spack/repos/builtin/packages/aws-parallelcluster/package.py +++ b/var/spack/repos/builtin/packages/aws-parallelcluster/package.py @@ -13,12 +13,14 @@ class AwsParallelcluster(PythonPackage): tool to deploy and manage HPC clusters in the AWS cloud.""" homepage = "https://github.com/aws/aws-parallelcluster" - pypi = "aws-parallelcluster/aws-parallelcluster-2.11.2.tar.gz" + pypi = "aws-parallelcluster/aws-parallelcluster-2.11.4.tar.gz" maintainers = [ - 'demartinofra', 'enrico-usai', 'lukeseawalker', 'tilne' + 'demartinofra', 'enrico-usai', 'lukeseawalker', ] + version('2.11.4', sha256='449537ccda57f91f4ec6ae0c94a8e2b1a789f08f80245fadb28f44a4351d5da4') + version('2.11.3', sha256='7c1d74123f2f670846aed8fe1fcca5908bb46ec014e2dfc7d3ec8994447a37a0') version('2.11.2', sha256='60d96a5ea4dca4816ceffc4546549743abd1f6207c62f016c9c348adc64b2ec0') version('2.11.1', sha256='dc102eeb0db30fb183c1ee076e340223095fde7d9079004fde401b7ad658242d') version('2.11.0', sha256='ec2f54f752a355649ca065a41fa4ac19697f570a136e10e0a6548f5abad3ea8a') diff --git a/var/spack/repos/builtin/packages/axom/package.py b/var/spack/repos/builtin/packages/axom/package.py index 8f7e59ec2c..d644ac134a 100644 --- a/var/spack/repos/builtin/packages/axom/package.py +++ b/var/spack/repos/builtin/packages/axom/package.py @@ -40,6 +40,8 @@ class Axom(CachedCMakePackage, CudaPackage): version('main', branch='main', submodules=True) version('develop', branch='develop', submodules=True) + version('0.6.1', tag='v0.6.1', submodules=True) + version('0.6.0', tag='v0.6.0', submodules=True) version('0.5.0', tag='v0.5.0', submodules=True) version('0.4.0', tag='v0.4.0', submodules=True) version('0.3.3', tag='v0.3.3', submodules=True) @@ -48,6 +50,8 @@ class Axom(CachedCMakePackage, CudaPackage): version('0.3.0', tag='v0.3.0', submodules=True) version('0.2.9', tag='v0.2.9', submodules=True) + patch('scr_examples_gtest.patch', when='@0.6.0:0.6.1') + root_cmakelists_dir = 'src' # ----------------------------------------------------------------------- @@ -100,18 +104,22 @@ class Axom(CachedCMakePackage, CudaPackage): depends_on("lua", when="+lua") depends_on("scr", when="+scr") - depends_on("kvtree@master", when="+scr") + depends_on("kvtree@main", when="+scr") depends_on("dtcmp", when="+scr") - depends_on("raja~openmp", when="+raja~openmp") - depends_on("raja+openmp", when="+raja+openmp") - depends_on("raja+cuda", when="+raja+cuda") - with when('+umpire'): - depends_on('umpire@5.0.1:5') + depends_on('umpire@6.0.0:', when='@0.6.0:') + depends_on('umpire@5:5.0.1', when='@:0.5.0') depends_on('umpire +openmp', when='+openmp') depends_on('umpire +cuda', when='+cuda') + with when('+raja'): + depends_on('raja@0.14.0:', when='@0.6.0:') + depends_on('raja@:0.13.0', when='@:0.5.0') + depends_on("raja~openmp", when="~openmp") + depends_on("raja+openmp", when="+openmp") + depends_on("raja+cuda", when="+cuda") + for sm_ in CudaPackage.cuda_arch_values: depends_on('raja cuda_arch={0}'.format(sm_), when='+raja cuda_arch={0}'.format(sm_)) diff --git a/var/spack/repos/builtin/packages/axom/scr_examples_gtest.patch b/var/spack/repos/builtin/packages/axom/scr_examples_gtest.patch new file mode 100644 index 0000000000..7fb7539e1d --- /dev/null +++ b/var/spack/repos/builtin/packages/axom/scr_examples_gtest.patch @@ -0,0 +1,50 @@ +diff --git a/src/axom/sidre/examples/spio/CMakeLists.txt b/src/axom/sidre/examples/spio/CMakeLists.txt +index b4013c7fd..8558b8e4a 100644 +--- a/src/axom/sidre/examples/spio/CMakeLists.txt ++++ b/src/axom/sidre/examples/spio/CMakeLists.txt +@@ -21,7 +21,7 @@ if (SCR_FOUND) + list(APPEND example_sources IO_SCR_Output.cpp) + endif() + +-set(spio_example_depends axom gtest ${EXTRA_LIBS}) ++set(spio_example_depends axom ${EXTRA_LIBS}) + blt_list_append(TO spio_example_depends ELEMENTS hdf5 IF HDF5_FOUND) + blt_list_append(TO spio_example_depends ELEMENTS scr IF SCR_FOUND) + +@@ -39,17 +39,23 @@ foreach(src ${example_sources}) + ) + endforeach() + +- if(AXOM_ENABLE_TESTS) +- if(SCR_FOUND) +- if(ENABLE_MPI) +- axom_add_test( +- NAME spio_IO_SCR_Checkpoint +- COMMAND spio_IO_SCR_Checkpoint_ex +- NUM_MPI_TASKS 4 ) +- else() +- axom_add_test( +- NAME spio_IO_SCR_Checkpoint +- COMMAND spio_IO_SCR_Checkpoint_ex ) +- endif() +- endif() ++if(SCR_FOUND AND AXOM_ENABLE_TESTS) ++ blt_add_executable( ++ NAME spio_scr_ex ++ SOURCES spio_scr.cpp ++ OUTPUT_DIR ${EXAMPLE_OUTPUT_DIRECTORY} ++ DEPENDS_ON ${spio_example_depends} scr gtest ++ FOLDER axom/sidre/examples ++ ) ++ ++ if(ENABLE_MPI) ++ axom_add_test( ++ NAME spio_IO_SCR_Checkpoint ++ COMMAND spio_IO_SCR_Checkpoint_ex ++ NUM_MPI_TASKS 4 ) ++ else() ++ axom_add_test( ++ NAME spio_IO_SCR_Checkpoint ++ COMMAND spio_IO_SCR_Checkpoint_ex ) + endif() ++endif() diff --git a/var/spack/repos/builtin/packages/bcftools/package.py b/var/spack/repos/builtin/packages/bcftools/package.py index 8f4f5bdad8..86341bb347 100644 --- a/var/spack/repos/builtin/packages/bcftools/package.py +++ b/var/spack/repos/builtin/packages/bcftools/package.py @@ -13,6 +13,8 @@ class Bcftools(AutotoolsPackage): homepage = "https://samtools.github.io/bcftools/" url = "https://github.com/samtools/bcftools/releases/download/1.3.1/bcftools-1.3.1.tar.bz2" + version('1.14', sha256='b7ef88ae89fcb55658c5bea2e8cb8e756b055e13860036d6be13756782aa19cb') + version('1.13', sha256='13bfa1da2a5edda8fa51196a47a0b4afb3fef17516451e4f0e78477f3dd30b90') version('1.12', sha256='7a0e6532b1495b9254e38c6698d955e5176c1ee08b760dfea2235ee161a024f5') version('1.10.2', sha256='f57301869d0055ce3b8e26d8ad880c0c1989bf25eaec8ea5db99b60e31354e2c') version('1.9', sha256='6f36d0e6f16ec4acf88649fb1565d443acf0ba40f25a9afd87f14d14d13070c8') @@ -38,6 +40,8 @@ class Bcftools(AutotoolsPackage): depends_on('perl', when='@1.8:~perl-filters', type='run') depends_on('perl', when='@1.8:+perl-filters', type=('build', 'run')) + depends_on('htslib@1.14', when='@1.14') + depends_on('htslib@1.13', when='@1.13') depends_on('htslib@1.12', when='@1.12') depends_on('htslib@1.10.2', when='@1.10.2') depends_on('htslib@1.9', when='@1.9') diff --git a/var/spack/repos/builtin/packages/berkeley-db/package.py b/var/spack/repos/builtin/packages/berkeley-db/package.py index 0e5fbdbbf1..a31e9f6dfd 100644 --- a/var/spack/repos/builtin/packages/berkeley-db/package.py +++ b/var/spack/repos/builtin/packages/berkeley-db/package.py @@ -2,6 +2,7 @@ # Spack Project Developers. See the top-level COPYRIGHT file for details. # # SPDX-License-Identifier: (Apache-2.0 OR MIT) +import re class BerkeleyDb(AutotoolsPackage): @@ -11,6 +12,8 @@ class BerkeleyDb(AutotoolsPackage): # URL must remain http:// so Spack can bootstrap curl url = "https://download.oracle.com/berkeley-db/db-18.1.40.tar.gz" + executables = [r'^db_load$'] # One should be sufficient + version("18.1.40", sha256="0cecb2ef0c67b166de93732769abdeba0555086d51de1090df325e18ee8da9c8") version('18.1.32', sha256='fa1fe7de9ba91ad472c25d026f931802597c29f28ae951960685cde487c8d654', deprecated=True) version('6.2.32', sha256='a9c5e2b004a5777aa03510cfe5cd766a4a3b777713406b02809c17c8e0e7a8fb') @@ -32,6 +35,18 @@ class BerkeleyDb(AutotoolsPackage): conflicts('+stl', when='~cxx', msg='+stl implies +cxx') + @classmethod + def determine_version(cls, exe): + """Return the version of the provided executable or ``None`` if + the version cannot be determined. + + Arguments: + exe (str): absolute path to the executable being examined + """ + output = Executable(exe)('-V', output=str, error=str) + match = re.search(r'Berkeley DB\s+([\d\.]+)', output) + return match.group(1) if match else None + def patch(self): # some of the docs are missing in 18.1.40 if self.spec.satisfies("@18.1.40"): diff --git a/var/spack/repos/builtin/packages/bohrium/package.py b/var/spack/repos/builtin/packages/bohrium/package.py index c2defe0b8a..3e5895fb2d 100644 --- a/var/spack/repos/builtin/packages/bohrium/package.py +++ b/var/spack/repos/builtin/packages/bohrium/package.py @@ -68,6 +68,8 @@ class Bohrium(CMakePackage, CudaPackage): conflicts('~node~proxy') conflicts('~openmp~opencl~cuda') + conflicts('+cbridge', when='~python') + # # Dependencies # @@ -94,9 +96,14 @@ class Bohrium(CMakePackage, CudaPackage): depends_on('py-numpy', type=("build", "test", "run"), when="+python") depends_on('swig', type="build", when="+python") depends_on('py-cython', type="build", when="+python") + depends_on('py-virtualenv', type="build", when="+python") + depends_on('py-pip', type="build", when="+python") + depends_on('py-wheel', type="build", when="+python") depends_on('zlib', when="+proxy") + depends_on('libsigsegv') + @property def config_file(self): """Return the path of the Bohrium system-wide configuration file""" @@ -108,14 +115,11 @@ class Bohrium(CMakePackage, CudaPackage): def cmake_args(self): spec = self.spec - # Sanity check - cuda_arch = spec.variants['cuda_arch'].value - if "+cuda" in spec and len(cuda_arch) >= 1 and cuda_arch[0]: - # TODO Add cuda_arch support to Bohrium once the basic setup - # via Spack works. - raise InstallError( - "Bohrium does not support setting the CUDA architecture yet." - ) + # TODO: Use cuda_arch to specify compute capabilities to build. + # This package detects the compute capability of the device on the + # build host and uses that to set a single compute capability. This is + # limiting for generic builds and the ability to run CUDA builds on + # different hosts. args = [ # Choose a particular python version @@ -136,7 +140,7 @@ class Bohrium(CMakePackage, CudaPackage): # # Bridges and interfaces "-DBRIDGE_BHXX=ON", - "-DBRIDGE_C=" + str("+cbridge" in spec or "+python" in spec), + "-DBRIDGE_C=" + str("+cbridge" in spec and "+python" in spec), "-DBRIDGE_NPBACKEND=" + str("+python" in spec), "-DNO_PYTHON3=ON", # Only build python version we provide ] diff --git a/var/spack/repos/builtin/packages/boost/package.py b/var/spack/repos/builtin/packages/boost/package.py index 360d72c585..933b9e2264 100644 --- a/var/spack/repos/builtin/packages/boost/package.py +++ b/var/spack/repos/builtin/packages/boost/package.py @@ -26,6 +26,7 @@ class Boost(Package): maintainers = ['hainest'] version('develop', branch='develop', submodules=True) + version('1.78.0', sha256='8681f175d4bdb26c52222665793eef08490d7758529330f98d3b29dd0735bccc') version('1.77.0', sha256='fc9f85fc030e233142908241af7a846e60630aa7388de9a5fafb1f3a26840854') version('1.76.0', sha256='f0397ba6e982c4450f27bf32a2a83292aba035b827a5623a14636ea583318c41') version('1.75.0', sha256='953db31e016db7bb207f11432bef7df100516eeb746843fa0486a222e3fd49cb') @@ -333,6 +334,7 @@ class Boost(Package): def determine_toolset(self, spec): toolsets = {'g++': 'gcc', 'icpc': 'intel', + 'icpx': 'intel', 'clang++': 'clang', 'armclang++': 'clang', 'xlc++': 'xlcpp', @@ -343,6 +345,8 @@ class Boost(Package): if spec.satisfies('@1.47:'): toolsets['icpc'] += '-linux' + toolsets['icpx'] += '-linux' + for cc, toolset in toolsets.items(): if cc in self.compiler.cxx_names: return toolset @@ -383,14 +387,8 @@ class Boost(Package): with open('user-config.jam', 'w') as f: # Boost may end up using gcc even though clang+gfortran is set in # compilers.yaml. Make sure this does not happen: - if not spec.satisfies('%intel'): - # using intel-linux : : spack_cxx in user-config.jam leads to - # error: at project-config.jam:12 - # error: duplicate initialization of intel-linux with the following parameters: # noqa - # error: version = <unspecified> - # error: previous initialization at ./user-config.jam:1 - f.write("using {0} : : {1} ;\n".format(boost_toolset_id, - spack_cxx)) + f.write("using {0} : : {1} ;\n".format(boost_toolset_id, + spack_cxx)) if '+mpi' in spec: # Use the correct mpi compiler. If the compiler options are @@ -572,6 +570,11 @@ class Boost(Package): bootstrap(*bootstrap_options) + # strip the toolchain to avoid double include errors (intel) or + # user-config being overwritten (again intel, but different boost version) + filter_file(r'^\s*using {0}.*'.format(self.determine_toolset(spec)), '', + os.path.join(self.stage.source_path, 'project-config.jam')) + # b2 used to be called bjam, before 1.47 (sigh) b2name = './b2' if spec.satisfies('@1.47:') else './bjam' diff --git a/var/spack/repos/builtin/packages/bridger/package.py b/var/spack/repos/builtin/packages/bridger/package.py index 769debf525..d9b676ef81 100644 --- a/var/spack/repos/builtin/packages/bridger/package.py +++ b/var/spack/repos/builtin/packages/bridger/package.py @@ -20,6 +20,14 @@ class Bridger(MakefilePackage, SourceforgePackage): depends_on('boost') depends_on('perl', type='run') + def flag_handler(self, name, flags): + if name == 'cflags': + # some of the plugins require gnu extensions + flags.append('-std=gnu99') + if name == 'cxxflags': + flags.append('-std=c++03') + return (flags, None, None) + def install(self, spec, prefix): # bridger depends very much on perl scripts/etc in the source tree install_path = join_path(prefix, 'usr/local/bridger') diff --git a/var/spack/repos/builtin/packages/bufr/package.py b/var/spack/repos/builtin/packages/bufr/package.py index 8550e5c4a2..9c665fa2bc 100644 --- a/var/spack/repos/builtin/packages/bufr/package.py +++ b/var/spack/repos/builtin/packages/bufr/package.py @@ -21,3 +21,25 @@ class Bufr(CMakePackage): 'jbathegit'] version('11.5.0', sha256='d154839e29ef1fe82e58cf20232e9f8a4f0610f0e8b6a394b7ca052e58f97f43') + + def _setup_bufr_environment(self, env, suffix): + libname = 'libufr_{0}'.format(suffix) + lib = find_libraries(libname, root=self.prefix, + shared=False, recursive=True) + lib_envname = 'BUFR_LIB{0}'.format(suffix) + inc_envname = 'BUFR_INC{0}'.format(suffix) + include_dir = 'include_{0}'.format(suffix) + + env.set(lib_envname, lib[0]) + env.set(inc_envname, include_dir) + + # Bufr has _DA (dynamic allocation) libs in versions <= 11.5.0 + if self.spec.satisfies('@:11.5.0'): + da_lib = find_libraries(libname + "_DA", root=self.prefix, + shared=False, recursive=True) + env.set(lib_envname + '_DA', da_lib[0]) + env.set(inc_envname + '_DA', include_dir) + + def setup_run_environment(self, env): + for suffix in ('4', '8', 'd'): + self._setup_bufr_environment(env, suffix) diff --git a/var/spack/repos/builtin/packages/c-blosc/gcc.patch b/var/spack/repos/builtin/packages/c-blosc/gcc.patch index 8390b01e3d..8390b01e3d 100755..100644 --- a/var/spack/repos/builtin/packages/c-blosc/gcc.patch +++ b/var/spack/repos/builtin/packages/c-blosc/gcc.patch diff --git a/var/spack/repos/builtin/packages/camellia/package.py b/var/spack/repos/builtin/packages/camellia/package.py index 241c0add79..714baff980 100644 --- a/var/spack/repos/builtin/packages/camellia/package.py +++ b/var/spack/repos/builtin/packages/camellia/package.py @@ -20,7 +20,7 @@ class Camellia(CMakePackage): variant('moab', default=True, description='Compile with MOAB to include support for reading standard mesh formats') - depends_on('trilinos+amesos+amesos2+belos+epetra+epetraext+exodus+ifpack+ifpack2+intrepid+intrepid2+kokkos+ml+muelu+sacado+shards+tpetra+zoltan+mumps+superlu-dist+hdf5+zlib+mpi@master,12.12.1:') + depends_on('trilinos+amesos+amesos2+belos+epetra+epetraext+exodus+ifpack+ifpack2+intrepid+intrepid2+kokkos+ml+muelu+sacado+shards+tpetra+zoltan+mumps+superlu-dist+hdf5+mpi@master,12.12.1:') depends_on('moab@:4', when='+moab') # Cameilla needs hdf5 but the description "hdf5@:1.8" is diff --git a/var/spack/repos/builtin/packages/cbtf-argonavis/package.py b/var/spack/repos/builtin/packages/cbtf-argonavis/package.py index 887322330a..dc692704de 100644 --- a/var/spack/repos/builtin/packages/cbtf-argonavis/package.py +++ b/var/spack/repos/builtin/packages/cbtf-argonavis/package.py @@ -18,8 +18,6 @@ class CbtfArgonavis(CMakePackage): version('1.9.4', branch='1.9.4') version('1.9.3', branch='1.9.3') - 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.") @@ -41,19 +39,13 @@ class CbtfArgonavis(CMakePackage): depends_on("boost@1.70.0:") # For MRNet - depends_on("mrnet@5.0.1-3:+cti", when='@develop+cti', type=('build', 'link', 'run')) - depends_on("mrnet@5.0.1-3:+lwthreads", when='@develop~cti', type=('build', 'link', 'run')) - depends_on("mrnet@5.0.1-3+cti", when='@1.9.3:9999+cti', type=('build', 'link', 'run')) - depends_on("mrnet@5.0.1-3+lwthreads", when='@1.9.3:9999~cti', type=('build', 'link', 'run')) + depends_on("mrnet@5.0.1-3:+lwthreads", when='@develop', type=('build', 'link', 'run')) + depends_on("mrnet@5.0.1-3+lwthreads", when='@1.9.3:9999', type=('build', 'link', 'run')) # For CBTF depends_on("cbtf@develop", when='@develop', type=('build', 'link', 'run')) depends_on("cbtf@1.9.3:9999", when='@1.9.3:9999', type=('build', 'link', 'run')) - # For CBTF with cti - depends_on("cbtf@develop+cti", when='@develop+cti', type=('build', 'link', 'run')) - depends_on("cbtf@1.9.3:9999+cti", when='@1.9.3:9999+cti', type=('build', 'link', 'run')) - # For CBTF with runtime depends_on("cbtf@develop+runtime", when='@develop+runtime', type=('build', 'link', 'run')) depends_on("cbtf@1.9.3:9999+runtime", when='@1.9.3:9999+runtime', type=('build', 'link', 'run')) @@ -68,9 +60,6 @@ class CbtfArgonavis(CMakePackage): depends_on("cbtf-krell@develop", when='@develop', type=('build', 'link', 'run')) depends_on("cbtf-krell@1.9.3:9999", when='@1.9.3:9999', type=('build', 'link', 'run')) - depends_on('cbtf-krell@develop+cti', when='@develop+cti', type=('build', 'link', 'run')) - depends_on('cbtf-krell@1.9.3:9999+cti', when='@1.9.3:9999+cti', type=('build', 'link', 'run')) - depends_on('cbtf-krell@develop+runtime', when='@develop+runtime', type=('build', 'link', 'run')) depends_on('cbtf-krell@1.9.3:9999+runtime', when='@1.9.3:9999+runtime', type=('build', 'link', 'run')) diff --git a/var/spack/repos/builtin/packages/cbtf-krell/package.py b/var/spack/repos/builtin/packages/cbtf-krell/package.py index 3f464d8953..98ff820300 100644 --- a/var/spack/repos/builtin/packages/cbtf-krell/package.py +++ b/var/spack/repos/builtin/packages/cbtf-krell/package.py @@ -40,8 +40,6 @@ class CbtfKrell(CMakePackage): variant('build_type', default='RelWithDebInfo', description='The build type to build', values=('Debug', 'Release', 'RelWithDebInfo')) - 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.") @@ -66,10 +64,7 @@ class CbtfKrell(CMakePackage): depends_on("dyninst@10.1.0", when='@1.9.3:9999') # For MRNet - depends_on("mrnet@5.0.1-3:+cti", when='@develop+cti', type=('build', 'link', 'run')) depends_on("mrnet@5.0.1-3:+lwthreads", when='@develop', type=('build', 'link', 'run')) - - depends_on("mrnet@5.0.1-3+cti", when='@1.9.3:9999+cti', type=('build', 'link', 'run')) depends_on("mrnet@5.0.1-3+lwthreads", when='@1.9.3:9999', type=('build', 'link', 'run')) # For Xerces-C @@ -79,10 +74,6 @@ class CbtfKrell(CMakePackage): depends_on("cbtf@develop", when='@develop', type=('build', 'link', 'run')) depends_on("cbtf@1.9.3:9999", when='@1.9.3:9999', type=('build', 'link', 'run')) - # For CBTF with cti - depends_on("cbtf@develop+cti", when='@develop+cti', type=('build', 'link', 'run')) - depends_on("cbtf@1.9.3:9999+cti", when='@1.9.3:9999+cti', type=('build', 'link', 'run')) - # For CBTF with runtime depends_on("cbtf@develop+runtime", when='@develop+runtime', type=('build', 'link', 'run')) depends_on("cbtf@1.9.3:9999+runtime", when='@1.9.3:9999+runtime', type=('build', 'link', 'run')) diff --git a/var/spack/repos/builtin/packages/cbtf-lanl/package.py b/var/spack/repos/builtin/packages/cbtf-lanl/package.py index 67ae6fe7c6..c260f86498 100644 --- a/var/spack/repos/builtin/packages/cbtf-lanl/package.py +++ b/var/spack/repos/builtin/packages/cbtf-lanl/package.py @@ -25,15 +25,10 @@ class CbtfLanl(CMakePackage): 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') # 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.3:9999+cti') depends_on("mrnet@5.0.1-3+lwthreads", when='@1.9.3:9999') # For Xerces-C @@ -43,10 +38,6 @@ class CbtfLanl(CMakePackage): depends_on("cbtf@develop", when='@develop') depends_on("cbtf@1.9.3:9999", when='@1.9.3:9999') - # For CBTF with cti - depends_on("cbtf@develop+cti", when='@develop+cti') - depends_on("cbtf@1.9.3:9999+cti", when='@1.9.3:9999+cti') - # For CBTF with runtime depends_on("cbtf@develop+runtime", when='@develop+runtime') depends_on("cbtf@1.9.3:9999+runtime", when='@1.9.3:9999+runtime') @@ -55,9 +46,6 @@ class CbtfLanl(CMakePackage): depends_on("cbtf-krell@develop", when='@develop') depends_on("cbtf-krell@1.9.3:9999", when='@1.9.3:9999') - depends_on('cbtf-krell@develop+cti', when='@develop+cti') - depends_on('cbtf-krell@1.9.3:9999+cti', when='@1.9.3:9999+cti') - depends_on('cbtf-krell@develop+runtime', when='@develop+runtime') depends_on('cbtf-krell@1.9.3:9999+runtime', when='@1.9.3:9999+runtime') diff --git a/var/spack/repos/builtin/packages/cbtf/package.py b/var/spack/repos/builtin/packages/cbtf/package.py index dea5d055d3..080b74ceba 100644 --- a/var/spack/repos/builtin/packages/cbtf/package.py +++ b/var/spack/repos/builtin/packages/cbtf/package.py @@ -21,9 +21,6 @@ class Cbtf(CMakePackage): version('1.9.4', branch='1.9.4') version('1.9.3', branch='1.9.3') - variant('cti', default=False, - description="Build MRNet with the CTI startup option") - variant('runtime', default=False, description="build only the runtime libraries and collectors.") @@ -42,9 +39,7 @@ class Cbtf(CMakePackage): depends_on("boost@1.70.0:") # 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.3:9999+cti') depends_on("mrnet@5.0.1-3+lwthreads", when='@1.9.3:9999') # For Xerces-C diff --git a/var/spack/repos/builtin/packages/ccache/package.py b/var/spack/repos/builtin/packages/ccache/package.py index 1278c73e2d..c99903b1f7 100644 --- a/var/spack/repos/builtin/packages/ccache/package.py +++ b/var/spack/repos/builtin/packages/ccache/package.py @@ -47,6 +47,9 @@ class Ccache(CMakePackage): conflicts('%gcc@:5', when='@4.4:') conflicts('%clang@:4', when='@4.4:') + def cmake_args(self): + return [self.define('ENABLE_TESTING', False)] + # Before 4.0 this was an Autotools package @when('@:3') def cmake(self, spec, prefix): diff --git a/var/spack/repos/builtin/packages/cctools/cctools_6.1.1.python.patch b/var/spack/repos/builtin/packages/cctools/cctools_6.1.1.python.patch index 726e216e59..726e216e59 100755..100644 --- a/var/spack/repos/builtin/packages/cctools/cctools_6.1.1.python.patch +++ b/var/spack/repos/builtin/packages/cctools/cctools_6.1.1.python.patch diff --git a/var/spack/repos/builtin/packages/cctools/cctools_7.0.18.python.patch b/var/spack/repos/builtin/packages/cctools/cctools_7.0.18.python.patch index 1c8dfc428e..1c8dfc428e 100755..100644 --- a/var/spack/repos/builtin/packages/cctools/cctools_7.0.18.python.patch +++ b/var/spack/repos/builtin/packages/cctools/cctools_7.0.18.python.patch diff --git a/var/spack/repos/builtin/packages/cdo/package.py b/var/spack/repos/builtin/packages/cdo/package.py index 8de2088d7e..f1fb3dede8 100644 --- a/var/spack/repos/builtin/packages/cdo/package.py +++ b/var/spack/repos/builtin/packages/cdo/package.py @@ -20,6 +20,9 @@ class Cdo(AutotoolsPackage): maintainers = ['skosukhin', 'Try2Code'] + version('2.0.2', sha256='34dfdd0d4126cfd35fc69e37e60901c8622d13ec5b3fa5f0fe6a1cc866cc5a70', url='https://code.mpimet.mpg.de/attachments/download/26654/cdo-2.0.2.tar.gz') + version('2.0.1', sha256='d0794d261e22efa0adac8e6d18de2b60d54de5e1a4df6127c65fc417feb8fdac', url='https://code.mpimet.mpg.de/attachments/download/26477/cdo-2.0.1.tar.gz') + version('2.0.0', sha256='6bca54e9d69d8c1f072f1996547b7347a65743d15ba751967e9bb16e0ff7a843', url='https://code.mpimet.mpg.de/attachments/download/26370/cdo-2.0.0.tar.gz') version('1.9.10', sha256='cc39c89bbb481d7b3945a06c56a8492047235f46ac363c4f0d980fccdde6677e', url='https://code.mpimet.mpg.de/attachments/download/24638/cdo-1.9.10.tar.gz') version('1.9.9', sha256='959b5b58f495d521a7fd1daa84644888ec87d6a0df43f22ad950d17aee5ba98d', url='https://code.mpimet.mpg.de/attachments/download/23323/cdo-1.9.9.tar.gz') version('1.9.8', sha256='f2660ac6f8bf3fa071cf2a3a196b3ec75ad007deb3a782455e80f28680c5252a', url='https://code.mpimet.mpg.de/attachments/download/20826/cdo-1.9.8.tar.gz') diff --git a/var/spack/repos/builtin/packages/cgdb/package.py b/var/spack/repos/builtin/packages/cgdb/package.py index 8c3c2e4ec1..d5d920d926 100644 --- a/var/spack/repos/builtin/packages/cgdb/package.py +++ b/var/spack/repos/builtin/packages/cgdb/package.py @@ -9,18 +9,32 @@ from spack import * class Cgdb(AutotoolsPackage): """A curses front-end to GDB""" - homepage = "https://cgdb.github.io" - url = "https://cgdb.me/files/cgdb-0.7.0.tar.gz" + maintainers = ['tuxfan'] + homepage = 'https://cgdb.github.io' + url = 'https://cgdb.me/files/cgdb-0.7.1.tar.gz' + git = 'https://github.com/cgdb/cgdb.git' + version('master', branch='master', submodule=False, preferred=True) + version('0.7.1', sha256='bb723be58ec68cb59a598b8e24a31d10ef31e0e9c277a4de07b2f457fe7de198') version('0.7.0', sha256='bf7a9264668db3f9342591b08b2cc3bbb08e235ba2372877b4650b70c6fb5423') # Required dependency + depends_on('gdb', type='run') depends_on('ncurses') depends_on('readline') + depends_on('autoconf', type='build', when='@master') + depends_on('automake', type='build', when='@master') + depends_on('libtool', type='build', when='@master') + depends_on('m4', type='build', when='@master') depends_on('flex', type='build') depends_on('bison', type='build') depends_on('texinfo', type='build') + @when('@master') + def autoreconf(self, spec, prefix): + sh = which('sh') + sh('autogen.sh') + def configure_args(self): spec = self.spec diff --git a/var/spack/repos/builtin/packages/charmpp/fj.patch b/var/spack/repos/builtin/packages/charmpp/fj.patch index d5df680c0c..d5df680c0c 100755..100644 --- a/var/spack/repos/builtin/packages/charmpp/fj.patch +++ b/var/spack/repos/builtin/packages/charmpp/fj.patch diff --git a/var/spack/repos/builtin/packages/clhep/package.py b/var/spack/repos/builtin/packages/clhep/package.py index 65b04a35c7..9717ca69f0 100644 --- a/var/spack/repos/builtin/packages/clhep/package.py +++ b/var/spack/repos/builtin/packages/clhep/package.py @@ -18,6 +18,7 @@ class Clhep(CMakePackage): maintainers = ['drbenmorgan'] + version('2.4.5.1', sha256='2517c9b344ad9f55974786ae6e7a0ef8b22f4abcbf506df91194ea2299ce3813') version('2.4.4.0', sha256='5df78c11733a091da9ae5a24ce31161d44034dd45f20455587db85f1ca1ba539') version('2.4.1.3', sha256='27c257934929f4cb1643aa60aeaad6519025d8f0a1c199bc3137ad7368245913') version('2.4.1.2', sha256='ff96e7282254164380460bc8cf2dff2b58944084eadcd872b5661eb5a33fa4b8') diff --git a/var/spack/repos/builtin/packages/clingo/package.py b/var/spack/repos/builtin/packages/clingo/package.py index 6832fd65cf..e4eb15c5e0 100644 --- a/var/spack/repos/builtin/packages/clingo/package.py +++ b/var/spack/repos/builtin/packages/clingo/package.py @@ -26,6 +26,7 @@ class Clingo(CMakePackage): version('master', branch='master', submodules=True) version('spack', commit='2a025667090d71b2c9dce60fe924feb6bde8f667', submodules=True) + version('5.5.1', sha256='b9cf2ba2001f8241b8b1d369b6f353e628582e2a00f13566e51c03c4dd61f67e') version('5.5.0', sha256='c9d7004a0caec61b636ad1c1960fbf339ef8fdee9719321fc1b6b210613a8499') version('5.4.1', sha256='ac6606388abfe2482167ce8fd4eb0737ef6abeeb35a9d3ac3016c6f715bfee02') version('5.4.0', sha256='e2de331ee0a6d254193aab5995338a621372517adcf91568092be8ac511c18f3') diff --git a/var/spack/repos/builtin/packages/cmake/package.py b/var/spack/repos/builtin/packages/cmake/package.py index d7fde8d65f..b4f052a4f8 100644 --- a/var/spack/repos/builtin/packages/cmake/package.py +++ b/var/spack/repos/builtin/packages/cmake/package.py @@ -22,6 +22,8 @@ class Cmake(Package): executables = ['^cmake$'] version('master', branch='master') + version('3.22.1', sha256='0e998229549d7b3f368703d20e248e7ee1f853910d42704aa87918c213ea82c0') + version('3.22.0', sha256='998c7ba34778d2dfdb3df8a695469e24b11e2bfa21fbe41b361a3f45e1c9345e') version('3.21.4', sha256='d9570a95c215f4c9886dd0f0564ca4ef8d18c30750f157238ea12669c2985978') version('3.21.3', sha256='d14d06df4265134ee42c4d50f5a60cb8b471b7b6a47da8e5d914d49dd783794f') version('3.21.2', sha256='94275e0b61c84bb42710f5320a23c6dcb2c6ee032ae7d2a616f53f68b3d21659') diff --git a/var/spack/repos/builtin/packages/cni-plugins/package.py b/var/spack/repos/builtin/packages/cni-plugins/package.py new file mode 100644 index 0000000000..f02cdae953 --- /dev/null +++ b/var/spack/repos/builtin/packages/cni-plugins/package.py @@ -0,0 +1,26 @@ +# Copyright 2013-2021 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 CniPlugins(Package): + """Standard networking plugins for container networking""" + + homepage = 'https://github.com/containernetworking/plugins' + url = 'https://github.com/containernetworking/plugins/archive/v1.0.1.tar.gz' + maintainers = ['bernhardkaindl'] + + version('1.0.1', sha256='2ba3cd9f341a7190885b60d363f6f23c6d20d975a7a0ab579dd516f8c6117619') + + depends_on('go', type='build') + + def install(self, spec, prefix): + utils = 'github.com/containernetworking/plugins/pkg/utils/buildversion' + which('./build_linux.sh')( + '-ldflags', + '-extldflags -static -X {0}.BuildVersion={1}'.format(utils, self.version), + ) + install_tree('bin', prefix.bin) diff --git a/var/spack/repos/builtin/packages/conmon/package.py b/var/spack/repos/builtin/packages/conmon/package.py new file mode 100644 index 0000000000..73589b3914 --- /dev/null +++ b/var/spack/repos/builtin/packages/conmon/package.py @@ -0,0 +1,25 @@ +# Copyright 2013-2021 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 Conmon(MakefilePackage): + """An OCI container runtime monitor""" + + homepage = 'https://github.com/containers/conmon' + url = 'https://github.com/containers/conmon/archive/v2.0.30.tar.gz' + maintainers = ['bernhardkaindl'] + + version('2.0.30', sha256='4b0a98fbe8a63c42f60edac25c19aa6606caa7b1e4fe7846fc7f7de0b566ba25') + + depends_on('go', type='build') + depends_on('go-md2man', type='build') + depends_on('pkgconfig', type='build') + depends_on('libseccomp') + depends_on('glib') + + def install(self, spec, prefix): + make('install', 'PREFIX=' + prefix) diff --git a/var/spack/repos/builtin/packages/cosign/package.py b/var/spack/repos/builtin/packages/cosign/package.py new file mode 100644 index 0000000000..2ebc71b5bc --- /dev/null +++ b/var/spack/repos/builtin/packages/cosign/package.py @@ -0,0 +1,34 @@ +# Copyright 2013-2021 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) + +import os + +from spack import * + + +class Cosign(Package): + """ + Cosign is a go package for container Signing, verification and storage + in an OCI registry. + """ + + homepage = "https://github.com/sigstore/cosign" + url = "https://github.com/sigstore/cosign/archive/refs/tags/v1.3.1.tar.gz" + git = "https://github.com/sigstore/cosign.git" + + version('main', branch='main') + version('1.3.1', sha256='7f7e0af52ee8d795440e66dcc1a7a25783e22d30935f4f957779628b348f38af') + + depends_on("go", type='build') + + def setup_build_environment(self, env): + # Point GOPATH at the top of the staging dir for the build step. + env.prepend_path('GOPATH', self.stage.path) + + def install(self, spec, prefix): + go = which("go") + go("build", "-o", "cosign", os.path.join("cmd", "cosign", "main.go")) + mkdirp(prefix.bin) + install("cosign", prefix.bin) diff --git a/var/spack/repos/builtin/packages/cp2k/package.py b/var/spack/repos/builtin/packages/cp2k/package.py index d1ac5b086e..18ec324a7e 100644 --- a/var/spack/repos/builtin/packages/cp2k/package.py +++ b/var/spack/repos/builtin/packages/cp2k/package.py @@ -53,14 +53,15 @@ class Cp2k(MakefilePackage, CudaPackage): ' and BQB compression')) variant('spglib', default=False, description='Enable support for spglib') - variant('cuda_arch_35_k20x', default=False, - description=('CP2K (resp. DBCSR) has specific parameter sets for' - ' different GPU models. Enable this when building' - ' with cuda_arch=35 for a K20x instead of a K40')) - variant('cuda_fft', default=False, - description=('Use CUDA also for FFTs in the PW part of CP2K')) - variant('cuda_blas', default=False, - description=('Use CUBLAS for general matrix operations in DBCSR')) + with when('+cuda'): + variant('cuda_arch_35_k20x', default=False, + description=('CP2K (resp. DBCSR) has specific parameter sets for' + ' different GPU models. Enable this when building' + ' with cuda_arch=35 for a K20x instead of a K40')) + variant('cuda_fft', default=False, + description=('Use CUDA also for FFTs in the PW part of CP2K')) + variant('cuda_blas', default=False, + description=('Use CUBLAS for general matrix operations in DBCSR')) HFX_LMAX_RANGE = range(4, 8) @@ -167,8 +168,6 @@ class Cp2k(MakefilePackage, CudaPackage): depends_on('python@3.6:', when='@7:+cuda', type='build') depends_on('spglib', when='+spglib') - conflicts('~cuda', '+cuda_fft') - conflicts('~cuda', '+cuda_blas') # Apparently cp2k@4.1 needs an "experimental" version of libwannier.a # which is only available contacting the developer directly. See INSTALL @@ -487,11 +486,11 @@ class Cp2k(MakefilePackage, CudaPackage): # Currently AOCC support only static libraries of ELPA if '%aocc' in spec: - libs.append(join_path(elpa.prefix.lib, + libs.append(join_path(elpa.libs.directories[0], ('libelpa{elpa_suffix}.a' .format(elpa_suffix=elpa_suffix)))) else: - libs.append(join_path(elpa.prefix.lib, + libs.append(join_path(elpa.libs.directories[0], ('libelpa{elpa_suffix}.{dso_suffix}' .format(elpa_suffix=elpa_suffix, dso_suffix=dso_suffix)))) @@ -662,7 +661,7 @@ class Cp2k(MakefilePackage, CudaPackage): ] def build(self, spec, prefix): - if len(spec.variants['cuda_arch'].value) > 1: + if '+cuda' in spec and len(spec.variants['cuda_arch'].value) > 1: raise InstallError("cp2k supports only one cuda_arch at a time") # Apparently the Makefile bases its paths on PWD diff --git a/var/spack/repos/builtin/packages/cpio/package.py b/var/spack/repos/builtin/packages/cpio/package.py index 90f195bc90..0134fb1b66 100644 --- a/var/spack/repos/builtin/packages/cpio/package.py +++ b/var/spack/repos/builtin/packages/cpio/package.py @@ -9,8 +9,8 @@ from spack import * class Cpio(AutotoolsPackage, GNUMirrorPackage): - """GNU cpio copies files into or out of a cpio or tar archive. The - archive can be another file on the disk, a magnetic tape, or a pipe. + """GNU cpio copies files into or out of a cpio or tar archive and the file system. + The archive can be another file on the disk, a magnetic tape, or a pipe. """ homepage = "https://www.gnu.org/software/cpio/" gnu_mirror_path = "cpio/cpio-2.13.tar.gz" @@ -19,10 +19,12 @@ class Cpio(AutotoolsPackage, GNUMirrorPackage): version('2.13', sha256='e87470d9c984317f658567c03bfefb6b0c829ff17dbf6b0de48d71a4c8f3db88') - patch('https://src.fedoraproject.org/rpms/cpio/raw/dfe64c466d3ea2c8dfbd99700d9006f610064167/f/cpio-2.13-mutiple-definition.patch', sha256='d22633c368b8aedf4c08b23b6fbaa81a52404c8943ab04926404083ac10f1a4b', when='%gcc@10:') - build_directory = 'spack-build' + def patch(self): + """Fix mutiple definition of char *program_name for gcc@10: and clang""" + filter_file(r'char \*program_name;', '', 'src/global.c') + @classmethod def determine_version(cls, exe): output = Executable(exe)('--version', output=str, error=str) diff --git a/var/spack/repos/builtin/packages/cray-libsci/package.py b/var/spack/repos/builtin/packages/cray-libsci/package.py index bb21ecdfef..b5e00e7071 100755..100644 --- a/var/spack/repos/builtin/packages/cray-libsci/package.py +++ b/var/spack/repos/builtin/packages/cray-libsci/package.py @@ -12,6 +12,7 @@ class CrayLibsci(Package): homepage = "https://docs.nersc.gov/development/libraries/libsci/" has_code = False # Skip attempts to fetch source that is not available + version("21.08.1.2") version("20.06.1") version("20.03.1") version("19.06.1") diff --git a/var/spack/repos/builtin/packages/cuda/package.py b/var/spack/repos/builtin/packages/cuda/package.py index 70f259df2a..d11547f506 100644 --- a/var/spack/repos/builtin/packages/cuda/package.py +++ b/var/spack/repos/builtin/packages/cuda/package.py @@ -25,6 +25,10 @@ from spack import * # format returned by platform.system() and 'arch' by platform.machine() _versions = { + '11.5.1': { + 'Linux-aarch64': ('73e1d0e97c7fa686efe7e00fb1e5f179372c4eec8e14d4f44ab58d5f6cf57f63', 'https://developer.download.nvidia.com/compute/cuda/11.5.1/local_installers/cuda_11.5.1_495.29.05_linux_sbsa.run'), + 'Linux-x86_64': ('60bea2fc0fac95574015f865355afbf599422ec2c85554f5f052b292711a4bca', 'https://developer.download.nvidia.com/compute/cuda/11.5.1/local_installers/cuda_11.5.1_495.29.05_linux.run'), + 'Linux-ppc64le': ('9e0e494d945634fe8ad3e12d7b91806aa4220ed27487bb211030d651b27c67a9', 'https://developer.download.nvidia.com/compute/cuda/11.5.1/local_installers/cuda_11.5.1_495.29.05_linux_ppc64le.run')}, '11.5.0': { 'Linux-aarch64': ('6ea9d520cc956cc751a5ac54f4acc39109627f4e614dd0b1a82cc86f2aa7d8c4', 'https://developer.download.nvidia.com/compute/cuda/11.5.0/local_installers/cuda_11.5.0_495.29.05_linux_sbsa.run'), 'Linux-x86_64': ('ae0a1693d9497cf3d81e6948943e3794636900db71c98d58eefdacaf7f1a1e4c', 'https://developer.download.nvidia.com/compute/cuda/11.5.0/local_installers/cuda_11.5.0_495.29.05_linux.run'), diff --git a/var/spack/repos/builtin/packages/curl/package.py b/var/spack/repos/builtin/packages/curl/package.py index 198d3b29ad..5f3f26d898 100644 --- a/var/spack/repos/builtin/packages/curl/package.py +++ b/var/spack/repos/builtin/packages/curl/package.py @@ -16,6 +16,8 @@ class Curl(AutotoolsPackage): # URL must remain http:// so Spack can bootstrap curl url = "http://curl.haxx.se/download/curl-7.78.0.tar.bz2" + version('7.80.0', sha256='dd0d150e49cd950aff35e16b628edf04927f0289df42883750cf952bb858189c') + version('7.79.1', sha256='de62c4ab9a9316393962e8b94777a570bb9f71feb580fb4475e412f2f9387851') version('7.79.0', sha256='d607a677f473f79f96c964100327125a6204a39d835dc00dab7fc0129b959f42') version('7.78.0', sha256='98530b317dc95ccb324bbe4f834f07bb642fbc393b794ddf3434f246a71ea44a') version('7.77.0', sha256='6c0c28868cb82593859fc43b9c8fdb769314c855c05cf1b56b023acf855df8ea') diff --git a/var/spack/repos/builtin/packages/cyrus-sasl/package.py b/var/spack/repos/builtin/packages/cyrus-sasl/package.py index 355180ab79..930de4aa7c 100644 --- a/var/spack/repos/builtin/packages/cyrus-sasl/package.py +++ b/var/spack/repos/builtin/packages/cyrus-sasl/package.py @@ -24,3 +24,4 @@ class CyrusSasl(AutotoolsPackage): depends_on('autoconf', type='build') depends_on('automake', type='build') depends_on('libtool', type='build') + depends_on('groff', type='build') diff --git a/var/spack/repos/builtin/packages/czmq/package.py b/var/spack/repos/builtin/packages/czmq/package.py index c09987df73..67a3b71c9b 100644 --- a/var/spack/repos/builtin/packages/czmq/package.py +++ b/var/spack/repos/builtin/packages/czmq/package.py @@ -19,6 +19,8 @@ class Czmq(AutotoolsPackage): depends_on('automake', type='build') depends_on('autoconf', type='build') depends_on('pkgconfig', type='build') + depends_on('docbook-xml', type='build') + depends_on('docbook-xsl', type='build') depends_on('uuid') depends_on('libzmq') diff --git a/var/spack/repos/builtin/packages/dbus/package.py b/var/spack/repos/builtin/packages/dbus/package.py index 4efbc8ddd5..0681b1cfa6 100644 --- a/var/spack/repos/builtin/packages/dbus/package.py +++ b/var/spack/repos/builtin/packages/dbus/package.py @@ -28,6 +28,8 @@ class Dbus(Package): version('1.8.2', sha256='5689f7411165adc953f37974e276a3028db94447c76e8dd92efe910c6d3bae08') depends_on('pkgconfig', type='build') + depends_on('docbook-xml@4.4', type='build') + depends_on('docbook-xsl', type='build') depends_on('expat') depends_on('glib') depends_on('libsm') diff --git a/var/spack/repos/builtin/packages/dd4hep/package.py b/var/spack/repos/builtin/packages/dd4hep/package.py index c85f936de7..7e6d940281 100644 --- a/var/spack/repos/builtin/packages/dd4hep/package.py +++ b/var/spack/repos/builtin/packages/dd4hep/package.py @@ -24,21 +24,25 @@ class Dd4hep(CMakePackage): tags = ['hep'] version('master', branch='master') + version('1.19', sha256='d2eccf5e8402ba7dab2e1d7236e12ee4db9b1c5e4253c40a140bf35580db1d9b') version('1.18', sha256='1e909a42b969dfd966224fa8ab1eca5aa05136baf3c00a140f2f6d812b497152') version('1.17', sha256='036a9908aaf1e13eaf5f2f43b6f5f4a8bdda8183ddc5befa77a4448dbb485826') version('1.16.1', sha256='c8b1312aa88283986f89cc008d317b3476027fd146fdb586f9f1fbbb47763f1a') - version('1.16', sha256='ea9755cd255cf1b058e0e3cd743101ca9ca5ff79f4c60be89f9ba72b1ae5ec69') - version('1.15', sha256='992a24bd4b3dfaffecec9d1c09e8cde2c7f89d38756879a47b23208242f4e352') - version('1.14.1', sha256='5b5742f1e23c2b36d3174cca95f810ce909c0eb66f3d6d7acb0ba657819e6717') - version('1.14', sha256='b603aa3c0db8dda392253aa71fa4a0f0c3c9715d47df0b895d45c1e8849f4895') - version('1.13.1', sha256='83fa70cd74ce93b2f52f098388dff58d179f05ace5b50aea3f408bb8abf7cb73') - version('1.13', sha256='0b1f9d902ebe21a9178c1e41204c066b29f68c8836fd1d03a9ce979811ddb295') - version('1.12.1', sha256='85e8c775ec03c499ce10911e228342e757c81ce9ef2a9195cb253b85175a2e93') - version('1.12', sha256='133a1fb8ce0466d2482f3ebb03e60b3bebb9b2d3e33d14ba15c8fbb91706b398') - version('1.11.2', sha256='96a53dd26cb8df11c6dae54669fbc9cc3c90dd47c67e07b24be9a1341c95abc4') - version('1.11.1', sha256='d7902dd7f6744bbda92f6e303ad5a3410eec4a0d2195cdc86f6c1167e72893f0') - version('1.11', sha256='25643296f15f9d11ad4ad550b7c3b92e8974fc56f1ee8e4455501010789ae7b6') - version('1.10', sha256='1d6b5d1c368dc8bcedd9c61b7c7e1a44bad427f8bd34932516aff47c88a31d95') + # versions older than 1.16.1 are no longer supported + # (they need several patches like https://github.com/AIDASoft/DD4hep/pull/796) + version('1.16', sha256='ea9755cd255cf1b058e0e3cd743101ca9ca5ff79f4c60be89f9ba72b1ae5ec69', deprecated=True) + version('1.15', sha256='992a24bd4b3dfaffecec9d1c09e8cde2c7f89d38756879a47b23208242f4e352', deprecated=True) + version('1.14.1', sha256='5b5742f1e23c2b36d3174cca95f810ce909c0eb66f3d6d7acb0ba657819e6717', deprecated=True) + version('1.14', sha256='b603aa3c0db8dda392253aa71fa4a0f0c3c9715d47df0b895d45c1e8849f4895', deprecated=True) + version('1.13.1', sha256='83fa70cd74ce93b2f52f098388dff58d179f05ace5b50aea3f408bb8abf7cb73', deprecated=True) + version('1.13', sha256='0b1f9d902ebe21a9178c1e41204c066b29f68c8836fd1d03a9ce979811ddb295', deprecated=True) + version('1.12.1', sha256='85e8c775ec03c499ce10911e228342e757c81ce9ef2a9195cb253b85175a2e93', deprecated=True) + # these version won't build with +ddcad as the subpackage doesn't exit yet + version('1.12', sha256='133a1fb8ce0466d2482f3ebb03e60b3bebb9b2d3e33d14ba15c8fbb91706b398', deprecated=True) + version('1.11.2', sha256='96a53dd26cb8df11c6dae54669fbc9cc3c90dd47c67e07b24be9a1341c95abc4', deprecated=True) + version('1.11.1', sha256='d7902dd7f6744bbda92f6e303ad5a3410eec4a0d2195cdc86f6c1167e72893f0', deprecated=True) + version('1.11', sha256='25643296f15f9d11ad4ad550b7c3b92e8974fc56f1ee8e4455501010789ae7b6', deprecated=True) + version('1.10', sha256='1d6b5d1c368dc8bcedd9c61b7c7e1a44bad427f8bd34932516aff47c88a31d95', deprecated=True) generator = 'Ninja' @@ -50,13 +54,24 @@ class Dd4hep(CMakePackage): # See https://github.com/spack/spack/issues/24232 patch('cmake_language.patch', when='@:1.17') + # variants for subpackages + variant('ddcad', default=True, description="Enable CAD interface based on Assimp") + variant('ddg4', default=True, description="Enable the simulation part based on Geant4") + variant('ddrec', default=True, description="Build DDRec subpackage.") + variant('dddetectors', default=True, description="Build DDDetectors subpackage.") + variant('ddcond', default=True, description="Build DDCond subpackage.") + variant('ddalign', default=True, description="Build DDAlign subpackage.") + variant('dddigi', default=True, description="Build DDDigi subpackage.") + variant('ddeve', default=True, description="Build DDEve subpackage.") + variant('utilityapps', default=True, description='Build UtilityApps subpackage.') + + # variants for other build options variant('xercesc', default=False, description="Enable 'Detector Builders' based on XercesC") - variant('geant4', default=False, description="Enable the simulation part based on Geant4") - variant('assimp', default=False, description="Enable CAD interface based on Assimp") variant('hepmc3', default=False, description="Enable build with hepmc3") variant('lcio', default=False, description="Enable build with lcio") variant('edm4hep', default=True, description="Enable build with edm4hep") variant('geant4units', default=False, description="Use geant4 units throughout") + variant('tbb', default=False, description="Enable build with tbb") variant('debug', default=False, description="Enable debug build flag - adds extra info in" " some places in addtion to the debug build type") @@ -64,12 +79,14 @@ class Dd4hep(CMakePackage): depends_on('cmake @3.12:', type='build') depends_on('ninja', type='build') depends_on('boost @1.49:') - depends_on('root @6.08: +gdml +math +opengl +python +x') + depends_on('root @6.08: +gdml +math +python') + depends_on('root @6.08: +gdml +math +python +x +opengl', when="+ddeve") extends('python') depends_on('xerces-c', when='+xercesc') - depends_on('geant4@10.2.2:', when='+geant4') - depends_on('assimp@5.0.2:', when='+assimp') + depends_on('geant4@10.2.2:', when='+ddg4') + depends_on('assimp@5.0.2:', when='+ddcad') depends_on('hepmc3', when="+hepmc3") + depends_on('intel-tbb', when='+tbb') depends_on('lcio', when="+lcio") depends_on('edm4hep', when="+edm4hep") depends_on('py-pytest', type="test") @@ -77,6 +94,7 @@ class Dd4hep(CMakePackage): # See https://github.com/AIDASoft/DD4hep/pull/771 conflicts('^cmake@3.16:3.17.0', when='@1.15', msg='cmake version with buggy FindPython breaks dd4hep cmake config') + conflicts('~ddrec+dddetectors', msg="Need to enable +ddrec to build +dddetectors.") def cmake_args(self): spec = self.spec @@ -87,7 +105,8 @@ class Dd4hep(CMakePackage): args = [ self.define_from_variant('DD4HEP_USE_EDM4HEP', 'edm4hep'), self.define_from_variant('DD4HEP_USE_XERCESC', 'xercesc'), - self.define_from_variant('DD4HEP_USE_GEANT4', 'geant4'), + self.define_from_variant('DD4HEP_USE_TBB', 'tbb'), + self.define_from_variant('DD4HEP_USE_GEANT4', 'ddg4'), self.define_from_variant('DD4HEP_USE_LCIO', 'lcio'), self.define_from_variant('DD4HEP_USE_HEPMC3', 'hepmc3'), self.define_from_variant('DD4HEP_USE_GEANT4_UNITS', 'geant4units'), @@ -102,6 +121,27 @@ class Dd4hep(CMakePackage): "-DBoost_NO_BOOST_CMAKE=ON", "-DPYTHON_EXECUTABLE={0}".format(spec['python'].command.path), ] + subpackages = [] + if spec.satisfies('+ddg4'): + subpackages += ['DDG4'] + if spec.satisfies('+ddcond'): + subpackages += ['DDCond'] + if spec.satisfies('+ddcad'): + subpackages += ['DDCAD'] + if spec.satisfies('+ddrec'): + subpackages += ['DDRec'] + if spec.satisfies('+dddetectors'): + subpackages += ['DDDetectors'] + if spec.satisfies('+ddalign'): + subpackages += ['DDAlign'] + if spec.satisfies('+dddigi'): + subpackages += ['DDDigi'] + if spec.satisfies('+ddeve'): + subpackages += ['DDEve'] + if spec.satisfies('+utilityapps'): + subpackages += ['UtilityApps'] + subpackages = ' '.join(subpackages) + args += [self.define('DD4HEP_BUILD_PACKAGES', subpackages)] return args def setup_run_environment(self, env): diff --git a/var/spack/repos/builtin/packages/dealii/package.py b/var/spack/repos/builtin/packages/dealii/package.py index 17f5cbd75b..9c288912e2 100644 --- a/var/spack/repos/builtin/packages/dealii/package.py +++ b/var/spack/repos/builtin/packages/dealii/package.py @@ -25,6 +25,7 @@ class Dealii(CMakePackage, CudaPackage): generator = 'Ninja' version('master', branch='master') + version('9.3.2', sha256='5341d76bfd75d3402fc6907a875513efb5fe8a8b99af688d94443c492d5713e8') version('9.3.1', sha256='a62f4676ab2dc029892251d141427fb75cbb83cddd606019f615d0dde9c61ab8') version('9.3.0', sha256='aef8c7a87510ce827dfae3bdd4ed7bff82004dc09f96fa7a65b2554f2839b931') version('9.2.0', sha256='d05a82fb40f1f1e24407451814b5a6004e39366a44c81208b1ae9d65f3efa43a') diff --git a/var/spack/repos/builtin/packages/delly2/package.py b/var/spack/repos/builtin/packages/delly2/package.py index a674d4e17d..3690a086b9 100644 --- a/var/spack/repos/builtin/packages/delly2/package.py +++ b/var/spack/repos/builtin/packages/delly2/package.py @@ -15,31 +15,43 @@ class Delly2(MakefilePackage): homepage = "https://github.com/dellytools/delly" git = "https://github.com/dellytools/delly.git" - version('2017-08-03', commit='e32a9cd55c7e3df5a6ae4a91f31a0deb354529fc') + version('0.9.1', tag='v0.9.1') + version('2017-08-03', commit='e32a9cd55c7e3df5a6ae4a91f31a0deb354529fc', deprecated=True) - depends_on('htslib') - depends_on('boost') - depends_on('bcftools') + variant('openmp', default=False, description='Build with openmp support') + + depends_on('htslib', type=('build', 'link')) + depends_on('boost', type=('build', 'link')) + depends_on('bcftools', type='run') def edit(self, spec, prefix): + if '+openmp' in self.spec: + env['PARALLEL'] = '1' # Only want to build delly source, not submodules. Build fails # using provided submodules, succeeds with existing spack recipes. - makefile = FileFilter('Makefile') - makefile.filter('HTSLIBSOURCES =', '#HTSLIBSOURCES') - makefile.filter('BOOSTSOURCES =', '#BOOSTSOURCES') - makefile.filter('SEQTK_ROOT ?=', '#SEQTK_ROOT') - makefile.filter('BOOST_ROOT ?=', '#BOOST_ROOT') - makefile.filter('cd src', '# cd src') - makefile.filter('.htslib ', '') - makefile.filter('.bcftools ', '') - makefile.filter('.boost ', '') - makefile.filter('.htslib:', '# .htslib:') - makefile.filter('.bcftools:', '# .bcftools:') - makefile.filter('.boost:', '# .boost:') + if self.spec.satisfies('@2017-08-03'): + makefile = FileFilter('Makefile') + makefile.filter('HTSLIBSOURCES =', '#HTSLIBSOURCES') + makefile.filter('BOOSTSOURCES =', '#BOOSTSOURCES') + makefile.filter('SEQTK_ROOT ?=', '#SEQTK_ROOT') + makefile.filter('BOOST_ROOT ?=', '#BOOST_ROOT') + makefile.filter('cd src', '# cd src') + makefile.filter('.htslib ', '') + makefile.filter('.bcftools ', '') + makefile.filter('.boost ', '') + makefile.filter('.htslib:', '# .htslib:') + makefile.filter('.bcftools:', '# .bcftools:') + makefile.filter('.boost:', '# .boost:') + else: + env['EBROOTHTSLIB'] = self.spec['htslib'].prefix + filter_file('BUILT_PROGRAMS =.*$', + 'BUILT_PROGRAMS = src/delly src/dpe', 'Makefile') + filter_file('${SUBMODULES}', '', 'Makefile', string=True) def install(self, spec, prefix): mkdirp(prefix.bin) with working_dir('src'): install('delly', prefix.bin) install('dpe', prefix.bin) - install('cov', prefix.bin) + if self.spec.satisfies('@2017-08-03'): + install('cov', prefix.bin) diff --git a/var/spack/repos/builtin/packages/dpcpp/package.py b/var/spack/repos/builtin/packages/dpcpp/package.py new file mode 100644 index 0000000000..6e67f4a390 --- /dev/null +++ b/var/spack/repos/builtin/packages/dpcpp/package.py @@ -0,0 +1,157 @@ +# Copyright 2013-2021 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) + + +import os + +from spack import * + + +class Dpcpp(CMakePackage): + """Data Parallel C++ compiler: Intel's implementation of SYCL programming model""" + + homepage = 'https://intel.github.io/llvm-docs/' + git = 'https://github.com/intel/llvm.git' + + version('develop', branch='sycl') + version('2021.09', commit='bd68232bb96386bf7649345c0557ba520e73c02d') + + maintainers = ['ravil-mobile'] + variant('cuda', default=False, description='switch from OpenCL to CUDA') + variant('rocm', default=False, description='switch from OpenCL to ROCm') + variant('rocm-platform', default='AMD', values=('AMD', 'NVIDIA'), multi=False, description='choose ROCm backend') + variant('openmp', default=False, description='build with OpenMP without target offloading') + variant('esimd-cpu', default=False, description='build with ESIMD_CPU support') + variant('assertions', default=False, description='build with assertions') + variant('docs', default=False, description='build Doxygen documentation') + variant('werror', default=False, description='treat warnings as errors') + variant('shared', default=False, description='build shared libraries') + variant('remangle_libclc', default=True, description='remangle libclc gen. variants') + variant('lld', default=False, description='use LLD linker for build') + + depends_on('cmake@3.16.2:', type='build') + depends_on('ninja@1.10.0:', type='build') + + depends_on('cuda@10.2.0:11.4.999', when='+cuda') + + # NOTE: AMD HIP needs to be tested; it will be done in the next update + # depends_on('cuda@10.2.0:10.2.999', when='rocm-platform=NVIDIA', type='build') + # depends_on('hip@4.0.0:', when='+rocm', type='build') + + root_cmakelists_dir = 'llvm' + + def cmake_args(self): + llvm_external_projects = 'sycl;llvm-spirv;opencl;libdevice;xpti;xptifw' + + if '+openmp' in self.spec: + llvm_external_projects += ';openmp' + + sycl_dir = os.path.join(self.stage.source_path, 'sycl') + spirv_dir = os.path.join(self.stage.source_path, 'llvm-spirv') + xpti_dir = os.path.join(self.stage.source_path, 'xpti') + xptifw_dir = os.path.join(self.stage.source_path, 'xptifw') + libdevice_dir = os.path.join(self.stage.source_path, 'libdevice') + llvm_enable_projects = 'clang;' + llvm_external_projects + libclc_targets_to_build = '' + sycl_build_pi_rocm_platform = self.spec.variants['rocm-platform'].value + + if self.spec.satisfies('target=x86_64:'): + llvm_targets_to_build = 'X86' + elif self.spec.satisfies('target=aarch64:'): + llvm_targets_to_build = 'ARM;AArch64' + else: + raise InstallError('target is not supported. ' + 'This package only works on x86_64 or aarch64') + + is_cuda = '+cuda' in self.spec + is_rocm = '+rocm' in self.spec + + if is_cuda or is_rocm: + llvm_enable_projects += ';libclc' + + if is_cuda: + llvm_targets_to_build += ';NVPTX' + libclc_targets_to_build = 'nvptx64--;nvptx64--nvidiacl' + + if is_rocm: + if sycl_build_pi_rocm_platform == 'AMD': + llvm_targets_to_build += ';AMDGPU' + libclc_targets_to_build += ';amdgcn--;amdgcn--amdhsa' + elif sycl_build_pi_rocm_platform and not is_cuda: + llvm_targets_to_build += ';NVPTX' + libclc_targets_to_build += ';nvptx64--;nvptx64--nvidiacl' + + args = [ + self.define_from_variant('LLVM_ENABLE_ASSERTIONS', 'assertions'), + self.define('LLVM_TARGETS_TO_BUILD', llvm_targets_to_build), + self.define('LLVM_EXTERNAL_PROJECTS', llvm_external_projects), + self.define('LLVM_EXTERNAL_SYCL_SOURCE_DIR', sycl_dir), + self.define('LLVM_EXTERNAL_LLVM_SPIRV_SOURCE_DIR', spirv_dir), + self.define('LLVM_EXTERNAL_XPTI_SOURCE_DIR', xpti_dir), + self.define('XPTI_SOURCE_DIR', xpti_dir), + self.define('LLVM_EXTERNAL_XPTIFW_SOURCE_DIR', xptifw_dir), + self.define('LLVM_EXTERNAL_LIBDEVICE_SOURCE_DIR', libdevice_dir), + self.define('LLVM_ENABLE_PROJECTS', llvm_enable_projects), + self.define('LIBCLC_TARGETS_TO_BUILD', libclc_targets_to_build), + self.define_from_variant('SYCL_BUILD_PI_CUDA', 'cuda'), + self.define_from_variant('SYCL_BUILD_PI_ROCM', 'rocm'), + self.define('SYCL_BUILD_PI_ROCM_PLATFORM', sycl_build_pi_rocm_platform), + self.define('LLVM_BUILD_TOOLS', True), + self.define_from_variant('SYCL_ENABLE_WERROR', 'werror'), + self.define('SYCL_INCLUDE_TESTS', True), + self.define_from_variant('LIBCLC_GENERATE_REMANGLED_VARIANTS', + 'remangle_libclc'), + self.define_from_variant('LLVM_ENABLE_DOXYGEN', 'docs'), + self.define_from_variant('LLVM_ENABLE_SPHINX', 'docs'), + self.define_from_variant('BUILD_SHARED_LIBS', 'shared'), + self.define('SYCL_ENABLE_XPTI_TRACING', 'ON'), + self.define_from_variant('LLVM_ENABLE_LLD', 'lld'), + self.define_from_variant('SYCL_BUILD_PI_ESIMD_CPU', 'esimd-cpu'), + ] + + if is_cuda or (is_rocm and sycl_build_pi_rocm_platform == 'NVIDIA'): + args.append( + self.define('CUDA_TOOLKIT_ROOT_DIR', self.spec['cuda'].prefix) + ) + + if '+openmp' in self.spec: + omp_dir = os.path.join(self.stage.source_path, 'openmp') + args.extend([ + self.define('LLVM_EXTERNAL_OPENMP_SOURCE_DIR', omp_dir), + self.define('OPENMP_ENABLE_LIBOMPTARGET', False), + ]) + + if self.compiler.name == 'gcc': + gcc_prefix = ancestor(self.compiler.cc, 2) + args.append(self.define('GCC_INSTALL_PREFIX', gcc_prefix)) + + return args + + def setup_build_environment(self, env): + if '+cuda' in self.spec: + env.set('CUDA_LIB_PATH', '{0}/lib64/stubs'.format(self.spec['cuda'].prefix)) + + @run_after("install") + def post_install(self): + clang_cpp_path = os.path.join(self.spec.prefix.bin, 'clang++') + dpcpp_path = os.path.join(self.spec.prefix.bin, 'dpcpp') + + real_clang_cpp_path = os.path.realpath(clang_cpp_path) + os.symlink(real_clang_cpp_path, dpcpp_path) + + def setup_run_environment(self, env): + bin_path = self.spec.prefix.bin + for env_var_name, compiler in zip(['CC', 'CXX'], ['clang', 'clang++']): + env.set(env_var_name, os.path.join(bin_path, compiler)) + + include_env_vars = ['C_INCLUDE_PATH', 'CPLUS_INCLUDE_PATH', 'INCLUDE'] + for var in include_env_vars: + env.prepend_path(var, self.prefix.include) + env.prepend_path(var, self.prefix.include.sycl) + + sycl_build_pi_rocm_platform = self.spec.variants['rocm-platform'].value + if '+cuda' in self.spec or sycl_build_pi_rocm_platform == 'NVIDIA': + env.prepend_path('PATH', self.spec['cuda'].prefix.bin) + env.set('CUDA_TOOLKIT_ROOT_DIR', self.spec['cuda'].prefix) diff --git a/var/spack/repos/builtin/packages/dsfmt/package.py b/var/spack/repos/builtin/packages/dsfmt/package.py new file mode 100644 index 0000000000..83a449d6a4 --- /dev/null +++ b/var/spack/repos/builtin/packages/dsfmt/package.py @@ -0,0 +1,32 @@ +# Copyright 2013-2021 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 Dsfmt(MakefilePackage): + """Double precision SIMD-oriented Fast Mersenne Twister""" + + homepage = "http://www.math.sci.hiroshima-u.ac.jp/m-mat/MT/SFMT/" + url = "https://github.com/MersenneTwister-Lab/dSFMT/archive/v2.2.4.tar.gz" + + maintainers = ['haampie'] + + # This package does not have a target to build a library nor a make install target, + # so we add it for them. + patch('targets.patch') + + version('2.2.5', sha256='b7bc498cd140b4808963b1ff9f33b42a491870f54775c1060ecad0e02bcaffb4') + version('2.2.4', sha256='39682961ecfba621a98dbb6610b6ae2b7d6add450d4f08d8d4edd0e10abd8174') + + @property + def libs(self): + return find_libraries('libdSFMT', root=self.prefix, recursive=True) + + def build(self, spec, prefix): + make('build-library') + + def install(self, spec, prefix): + make('PREFIX={0}'.format(prefix), 'install') diff --git a/var/spack/repos/builtin/packages/dsfmt/targets.patch b/var/spack/repos/builtin/packages/dsfmt/targets.patch new file mode 100644 index 0000000000..8d4664aa39 --- /dev/null +++ b/var/spack/repos/builtin/packages/dsfmt/targets.patch @@ -0,0 +1,25 @@ +diff --git a/Makefile b/Makefile +index 5cc4ed6..adc09c5 100644 +--- a/Makefile ++++ b/Makefile +@@ -196,3 +196,20 @@ test-sse2-M216091: test.c dSFMT.c dSFMT.h + + clean: + rm -f *.o *~ test-*-M* ++ ++ifeq ($(OS), WINNT) ++ SHLIB_EXT := dll ++else ifeq ($(OS), Darwin) ++ SHLIB_EXT := dylib ++else ++ SHLIB_EXT := so ++endif ++ ++build-library: dSFMT.c ++ $(CC) $(CCFLAGS) -shared -fPIC -DDSFMT_MEXP=19937 -DDSFMT_DO_NOT_USE_OLD_NAMES -DDSFMT_SHLIB $< -o libdSFMT.$(SHLIB_EXT) ++ echo 1 > $@ ++ ++install: build-library ++ install -d $(PREFIX)/lib/ ++ install -m 644 libdSFMT.so $(PREFIX)/lib/ ++ diff --git a/var/spack/repos/builtin/packages/dust/package.py b/var/spack/repos/builtin/packages/dust/package.py new file mode 100644 index 0000000000..6835d1917e --- /dev/null +++ b/var/spack/repos/builtin/packages/dust/package.py @@ -0,0 +1,51 @@ +# Copyright 2013-2021 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 Dust(Package): + """du + rust = dust. Like du but more intuitive.""" + + homepage = "https://github.com/bootandy/dust" + url = "https://github.com/bootandy/dust/archive/v0.7.5.tar.gz" + + maintainers = ["fangohr"] + + version( + "0.7.5", + sha256="f892aaf7a0a7852e12d01b2ced6c2484fb6dc5fe7562abdf0c44a2d08aa52618", + ) + + depends_on("rust") + + sanity_check_is_file = [join_path("bin", "dust")] + + def install(self, spec, prefix): + cargo = which("cargo") + cargo("install", "--root", prefix, "--path", ".") + + @run_after("install") + def check_install(self): + print("Attempt to call 'dust' with '--version'") + dust = Executable(join_path(self.spec["dust"].prefix.bin, "dust")) + output = dust( + "--version", + output=str.split, + ) + print("stdout received fromm dust is '{}".format(output)) + assert "Dust " in output + + def test(self): + """Run this smoke test when requested explicitly""" + + dustpath = join_path(self.spec["dust"].prefix.bin, "dust") + options = ["--version"] + purpose = "Check dust can execute (with option '--version')" + expected = ["Dust "] + + self.run_test( + dustpath, options=options, expected=expected, status=[0], purpose=purpose + ) diff --git a/var/spack/repos/builtin/packages/dyninst/package.py b/var/spack/repos/builtin/packages/dyninst/package.py index 3288a7df56..6bff2233ac 100644 --- a/var/spack/repos/builtin/packages/dyninst/package.py +++ b/var/spack/repos/builtin/packages/dyninst/package.py @@ -19,6 +19,8 @@ class Dyninst(CMakePackage): tags = ['e4s'] version('master', branch='master') + version('12.0.1', tag='v12.0.1') + version('12.0.0', tag='v12.0.0') version('11.0.1', tag='v11.0.1') version('11.0.0', tag='v11.0.0') version('10.2.1', tag='v10.2.1') @@ -53,6 +55,7 @@ class Dyninst(CMakePackage): # before that. # NB: Parallel DWARF parsing in Dyninst 10.2.0 requires a thread- # safe libdw + depends_on('elfutils@0.186:', type='link', when='@12.0.1:') depends_on('elfutils@0.178:', type='link', when='@10.2.0:') depends_on('elfutils', type='link', when='@9.3.0:10.1') depends_on('libelf', type='link', when='@:9.2') @@ -106,6 +109,7 @@ class Dyninst(CMakePackage): '-DElfUtils_ROOT_DIR=%s' % spec['elf'].prefix, '-DLibIberty_ROOT_DIR=%s' % spec['libiberty'].prefix, '-DTBB_ROOT_DIR=%s' % spec['tbb'].prefix, + self.define('LibIberty_LIBRARIES', spec['libiberty'].libs) ] if '+openmp' in spec: diff --git a/var/spack/repos/builtin/packages/ecp-data-vis-sdk/package.py b/var/spack/repos/builtin/packages/ecp-data-vis-sdk/package.py index 5b29673f28..ee6c7a6a28 100644 --- a/var/spack/repos/builtin/packages/ecp-data-vis-sdk/package.py +++ b/var/spack/repos/builtin/packages/ecp-data-vis-sdk/package.py @@ -30,6 +30,7 @@ class EcpDataVisSdk(BundlePackage, CudaPackage): variant('veloc', default=False, description="Enable VeloC") # Vis + variant('sensei', default=False, description="Enable Sensei") variant('ascent', default=False, description="Enable Ascent") variant('paraview', default=False, description="Enable ParaView") variant('sz', default=False, description="Enable SZ") @@ -40,8 +41,6 @@ class EcpDataVisSdk(BundlePackage, CudaPackage): variant('cinema', default=False, description="Enable Cinema") # Outstanding build issues - variant('catalyst', default=False, description="Enable Catalyst") - conflicts('+catalyst') variant('visit', default=False, description="Enable VisIt") conflicts('+visit') @@ -109,15 +108,19 @@ class EcpDataVisSdk(BundlePackage, CudaPackage): dav_sdk_depends_on('veloc', when='+veloc') + # Currenly only develop has necessary patches. Update this after SC21 release + propagate_to_sensei = [(v, v) for v in ['adios2', 'ascent', 'hdf5', 'vtkm']] + propagate_to_sensei.extend([('paraview', 'catalyst'), ('visit', 'libsim')]) + dav_sdk_depends_on('sensei@develop +vtkio +python ~miniapps', when='+sensei', + propagate=dict(propagate_to_sensei)) + dav_sdk_depends_on('ascent+shared+mpi+fortran+openmp+python+vtkh+dray', when='+ascent') - dav_sdk_depends_on('catalyst', when='+catalyst') - depends_on('py-cinemasci', when='+cinema') # +adios2 is not yet enabled in the paraview package - paraview_base_spec = 'paraview+mpi+python3+kits' + paraview_base_spec = 'paraview +mpi +python3 +kits' # Want +shared when not using cuda dav_sdk_depends_on(paraview_base_spec + '+shared ~cuda', when='+paraview ~cuda', diff --git a/var/spack/repos/builtin/packages/edm4hep/package.py b/var/spack/repos/builtin/packages/edm4hep/package.py index 879decf40b..cfa8c142bc 100644 --- a/var/spack/repos/builtin/packages/edm4hep/package.py +++ b/var/spack/repos/builtin/packages/edm4hep/package.py @@ -16,6 +16,7 @@ class Edm4hep(CMakePackage): tags = ["hep", "key4hep"] version('master', branch='master') + version('0.4', sha256='bcb729cd4a6f5917b8f073364fc950788111e178dd16b7e5218361f459c92a24') version('0.3.2', sha256='b6a28649a4ba9ec1c4423bd1397b0a810ca97374305c4856186b506e4c00f769') version('0.3.1', sha256='eeec38fe7d72d2a72f07a63dca0a34ca7203727f67869c0abf6bef014b8b319b') version('0.3', sha256='d0ad8a486c3ed1659ea97d47b268fe56718fdb389b5935f23ba93804e4d5fbc5') @@ -32,9 +33,11 @@ class Edm4hep(CMakePackage): depends_on('python', type='build') depends_on('root@6.08:') - depends_on('podio@0.13:') + depends_on('podio@0.14:', when='@0.4:') + depends_on('podio@0.13.0:0.13', when='@:0.3') - depends_on('hepmc@:2', type='test') + depends_on('hepmc@:2', type='test', when='@:0.4.0') + depends_on('hepmc3', type='test', when='@0.4.1:') depends_on('heppdt', type='test') depends_on('catch2@3.0.1:', type='test') diff --git a/var/spack/repos/builtin/packages/elpa/package.py b/var/spack/repos/builtin/packages/elpa/package.py index 001f9c21f4..70aa378f86 100644 --- a/var/spack/repos/builtin/packages/elpa/package.py +++ b/var/spack/repos/builtin/packages/elpa/package.py @@ -14,6 +14,7 @@ class Elpa(AutotoolsPackage, CudaPackage, ROCmPackage): homepage = 'https://elpa.mpcdf.mpg.de/' url = 'https://elpa.mpcdf.mpg.de/software/tarball-archive/Releases/2015.11.001/elpa-2015.11.001.tar.gz' + version('2021.05.002_bugfix', sha256='deabc48de5b9e4b2f073d749d335c8f354a7ce4245b643a23b7951cd6c90224b') version('2021.05.001', sha256='a4f1a4e3964f2473a5f8177f2091a9da5c6b5ef9280b8272dfefcbc3aad44d41') version('2020.05.001', sha256='66ff1cf332ce1c82075dc7b5587ae72511d2bcb3a45322c94af6b01996439ce5') version('2019.11.001', sha256='10374a8f042e23c7e1094230f7e2993b6f3580908a213dbdf089792d05aff357') @@ -66,10 +67,17 @@ class Elpa(AutotoolsPackage, CudaPackage, ROCmPackage): @property def headers(self): suffix = '_openmp' if self.spec.satisfies('+openmp') else '' + + # upstream sometimes adds tarball suffixes not part of the internal version + elpa_version = str(self.spec.version) + for vsuffix in ("_bugfix", ): + if elpa_version.endswith(vsuffix): # implementation of py3.9 removesuffix + elpa_version = elpa_version[:-len(vsuffix)] + incdir = os.path.join( self.spec.prefix.include, - 'elpa{suffix}-{version!s}'.format( - suffix=suffix, version=self.spec.version)) + 'elpa{suffix}-{version}'.format( + suffix=suffix, version=elpa_version)) hlist = find_all_headers(incdir) hlist.directories = [incdir] diff --git a/var/spack/repos/builtin/packages/esmf/package.py b/var/spack/repos/builtin/packages/esmf/package.py index 28ce836bec..e8f3d9ee67 100644 --- a/var/spack/repos/builtin/packages/esmf/package.py +++ b/var/spack/repos/builtin/packages/esmf/package.py @@ -18,6 +18,7 @@ class Esmf(MakefilePackage): homepage = "https://www.earthsystemcog.org/projects/esmf/" url = 'https://github.com/esmf-org/esmf/archive/ESMF_8_0_1.tar.gz' + version('8.2.0', sha256='3693987aba2c8ae8af67a0e222bea4099a48afe09b8d3d334106f9d7fc311485') version('8.1.1', sha256='58c2e739356f21a1b32673aa17a713d3c4af9d45d572f4ba9168c357d586dc75') version('8.0.1', sha256='9172fb73f3fe95c8188d889ee72fdadb4f978b1d969e1d8e401e8d106def1d84') version('8.0.0', sha256='051dca45f9803d7e415c0ea146df15ce487fb55f0fce18ca61d96d4dba0c8774') diff --git a/var/spack/repos/builtin/packages/exago/package.py b/var/spack/repos/builtin/packages/exago/package.py index 1ffe2d7cbe..599ff5f4d7 100755..100644 --- a/var/spack/repos/builtin/packages/exago/package.py +++ b/var/spack/repos/builtin/packages/exago/package.py @@ -13,10 +13,15 @@ class Exago(CMakePackage, CudaPackage): homepage = 'https://gitlab.pnnl.gov/exasgd/frameworks/exago' git = 'https://gitlab.pnnl.gov/exasgd/frameworks/exago.git' - - version('1.0.0', tag='v1.0.0') - version('0.99.2', tag='v0.99.2') - version('0.99.1', tag='v0.99.1') + maintainers = ['ashermancinelli', 'CameronRutherford'] + + version('1.2.0', commit='255a214e', submodules=True) + version('1.1.2', commit='db3bb16e', submodules=True) + version('1.1.1', commit='0e0a3f27', submodules=True) + version('1.1.0', commit='dc8dd855', submodules=True) + version('1.0.0', commit='230d7df2') + version('0.99.2', commit='56961641') + version('0.99.1', commit='0ae426c7') version('master', branch='master') version('develop', branch='develop') @@ -26,16 +31,19 @@ class Exago(CMakePackage, CudaPackage): # Solver options variant('hiop', default=False, description='Enable/Disable HiOp') - variant('petsc', default=True, description='Enable/Disable PETSc') variant('ipopt', default=False, description='Enable/Disable IPOPT') # Dependencides depends_on('mpi', when='+mpi') depends_on('blas') depends_on('cuda', when='+cuda') + depends_on('raja', when='+raja') depends_on('raja+cuda', when='+raja+cuda') + depends_on('raja@0.14.0:', when='@1.1.0: +raja') + depends_on('umpire', when='+raja') + depends_on('umpire@6.0.0:', when='@1.1.0: +raja') # Some allocator code in Umpire only works with static libs depends_on('umpire+cuda~shared', when='+raja+cuda') @@ -43,21 +51,22 @@ class Exago(CMakePackage, CudaPackage): # For some versions of RAJA package, camp cuda variant does not get set # correctly, so we must explicitly depend on it even though we don't use # camp - depends_on('camp+cuda', when='+cuda') + depends_on('camp+cuda', when='+raja+cuda') depends_on('cmake@3.18:', type='build') # HiOp dependency logic - depends_on('hiop+shared', when='+hiop') depends_on('hiop+raja', when='+hiop+raja') depends_on('hiop@0.3.99:', when='@0.99:+hiop') + depends_on('hiop@0.5.1:', when='@1.1.0:+hiop') depends_on('hiop+cuda', when='+hiop+cuda') depends_on('hiop~mpi', when='+hiop~mpi') depends_on('hiop+mpi', when='+hiop+mpi') # Require PETSc < 3.15 per ExaGO issue #199 - depends_on('petsc@3.13:3.14', when='+petsc') - depends_on('petsc~mpi', when='+petsc~mpi') + depends_on('petsc@3.13:3.14') + depends_on('petsc~mpi', when='~mpi') + depends_on('ipopt', when='+ipopt') flag_handler = build_system_flags @@ -71,10 +80,10 @@ class Exago(CMakePackage, CudaPackage): args.append(self.define_from_variant('EXAGO_ENABLE_MPI', 'mpi')) args.append(self.define_from_variant('EXAGO_ENABLE_RAJA', 'raja')) args.append(self.define_from_variant('EXAGO_ENABLE_HIOP', 'hiop')) - args.append(self.define_from_variant('EXAGO_ENABLE_PETSC', 'petsc')) args.append(self.define_from_variant('EXAGO_ENABLE_IPOPT', 'ipopt')) args.append(self.define_from_variant('EXAGO_ENABLE_GPU', 'cuda')) args.append(self.define_from_variant('EXAGO_ENABLE_CUDA', 'cuda')) + args.append("-DPETSC_DIR='{0}'".format(spec['petsc'].prefix)) if '+cuda' in spec: cuda_arch_list = spec.variants['cuda_arch'].value @@ -83,7 +92,4 @@ class Exago(CMakePackage, CudaPackage): args.append( "-DCMAKE_CUDA_ARCHITECTURES={0}".format(cuda_arch)) - if '+petsc' in spec: - args.append("-DPETSC_DIR='{0}'".format(spec['petsc'].prefix)) - return args diff --git a/var/spack/repos/builtin/packages/exaworks/package.py b/var/spack/repos/builtin/packages/exaworks/package.py index c017d0d04b..c017d0d04b 100755..100644 --- a/var/spack/repos/builtin/packages/exaworks/package.py +++ b/var/spack/repos/builtin/packages/exaworks/package.py diff --git a/var/spack/repos/builtin/packages/f3d/package.py b/var/spack/repos/builtin/packages/f3d/package.py new file mode 100644 index 0000000000..cc06d2cfbc --- /dev/null +++ b/var/spack/repos/builtin/packages/f3d/package.py @@ -0,0 +1,17 @@ +# Copyright 2013-2021 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 F3d(CMakePackage): + """A fast and minimalist scriptable 3D viewer.""" + + homepage = "https://f3d-app.github.io" + url = "https://github.com/f3d-app/f3d/archive/refs/tags/v1.1.1.tar.gz" + + version('1.1.1', sha256='68bdbe3a90f2cd553d5e090a95d3c847e2a2f06abbe225ffecd47d3d29978b0a') + + depends_on('vtk@9:', type='link') diff --git a/var/spack/repos/builtin/packages/fenics-dolfinx/package.py b/var/spack/repos/builtin/packages/fenics-dolfinx/package.py index 21e9cd9c16..78f1fee879 100644 --- a/var/spack/repos/builtin/packages/fenics-dolfinx/package.py +++ b/var/spack/repos/builtin/packages/fenics-dolfinx/package.py @@ -22,6 +22,7 @@ class FenicsDolfinx(CMakePackage): variant("kahip", default=False, description="kahip support") variant("parmetis", default=False, description="parmetis support") variant("slepc", default=False, description="slepc support") + variant("adios2", default=False, description="adios2 support") depends_on("cmake@3.18:", type="build") depends_on("pkgconfig", type="build") @@ -36,6 +37,7 @@ class FenicsDolfinx(CMakePackage): depends_on("kahip", when="+kahip") depends_on("parmetis", when="+parmetis") depends_on("slepc", when="+slepc") + depends_on("adios2", when="+adios2") depends_on("py-fenics-ffcx", type=("build", "run")) depends_on("py-fenics-ffcx@main", type=("build", "run"), when="@main") @@ -62,6 +64,8 @@ class FenicsDolfinx(CMakePackage): 'ON' if "+parmetis" in self.spec else 'OFF'), "-DDOLFINX_ENABLE_SLEPC=%s" % ( 'ON' if "+slepc" in self.spec else 'OFF'), + "-DDOLFINX_ENABLE_ADIOS2=%s" % ( + 'ON' if "+adios2" in self.spec else 'OFF'), "-DPython3_ROOT_DIR=%s" % self.spec['python'].home, "-DPython3_FIND_STRATEGY=LOCATION", ] diff --git a/var/spack/repos/builtin/packages/ffr/gfortran_format_30.patch b/var/spack/repos/builtin/packages/ffr/gfortran_format_30.patch index 1669ca5550..1669ca5550 100755..100644 --- a/var/spack/repos/builtin/packages/ffr/gfortran_format_30.patch +++ b/var/spack/repos/builtin/packages/ffr/gfortran_format_30.patch diff --git a/var/spack/repos/builtin/packages/ffr/gfortran_format_31.patch b/var/spack/repos/builtin/packages/ffr/gfortran_format_31.patch index 8ebd66c72c..8ebd66c72c 100755..100644 --- a/var/spack/repos/builtin/packages/ffr/gfortran_format_31.patch +++ b/var/spack/repos/builtin/packages/ffr/gfortran_format_31.patch diff --git a/var/spack/repos/builtin/packages/flecsale/package.py b/var/spack/repos/builtin/packages/flecsale/package.py index eb8166f263..0c91fa7254 100644 --- a/var/spack/repos/builtin/packages/flecsale/package.py +++ b/var/spack/repos/builtin/packages/flecsale/package.py @@ -20,8 +20,8 @@ class Flecsale(CMakePackage): depends_on("pkgconfig", type='build') depends_on("cmake@3.1:", type='build') - depends_on("flecsi~mpi", when='~mpi') - depends_on("flecsi+mpi", when='+mpi') + depends_on("flecsi backend=serial", when='~mpi') + conflicts("^flecsi backend=serial", when='+mpi') depends_on("python") depends_on("openssl") depends_on("boost~mpi", when='~mpi') diff --git a/var/spack/repos/builtin/packages/flecsi/package.py b/var/spack/repos/builtin/packages/flecsi/package.py index 6767c93331..fba678f846 100644 --- a/var/spack/repos/builtin/packages/flecsi/package.py +++ b/var/spack/repos/builtin/packages/flecsi/package.py @@ -110,6 +110,8 @@ class Flecsi(CMakePackage, CudaPackage): depends_on('mpich@3.4.1:', when='@2.0: ^mpich') depends_on('openmpi@4.1.0:', when='@2.0: ^openmpi') + conflicts('%gcc@:8', when='@2.1:') + conflicts('+tutorial', when='backend=hpx') # FleCSI@2: no longer supports serial or charmpp backends conflicts('backend=serial', when='@2.0:') @@ -136,7 +138,7 @@ class Flecsi(CMakePackage, CudaPackage): # Unit tests require flog support conflicts('+unit_tests', when='~flog') # Disallow conduit=none when using legion as a backend - conflicts('legion conduit=none', when='backend=legion') + conflicts('^legion conduit=none', when='backend=legion') # Due to overhauls of Legion and Gasnet spackages # flecsi@:1.9 can no longer be built with a usable legion conflicts('backend=legion', when='@:1.9') diff --git a/var/spack/repos/builtin/packages/flux-core/package.py b/var/spack/repos/builtin/packages/flux-core/package.py index ffff450594..5423bc0d2f 100644 --- a/var/spack/repos/builtin/packages/flux-core/package.py +++ b/var/spack/repos/builtin/packages/flux-core/package.py @@ -19,6 +19,8 @@ class FluxCore(AutotoolsPackage): maintainers = ['grondo'] version('master', branch='master') + + version('0.31.0', sha256='a18251de2ca3522484cacfa986df934ba8f98c54586e18940ce5d2c6147a8a7f') version('0.30.0', sha256='e51fde4464140367ae4bc1b44f960675ea0a6f58eede3a561cacd8a11ca3e776') version('0.29.0', sha256='c13b40e82d66356e75208a689a495ca01f0a013e2e45ac8ea202ed8224987323') version('0.28.0', sha256='9a784def7186b0036091bd8d6d8fe5bc3425ab2927e1465e1c9ad266631c285d') diff --git a/var/spack/repos/builtin/packages/flux-sched/no-valgrind.patch b/var/spack/repos/builtin/packages/flux-sched/no-valgrind.patch new file mode 100644 index 0000000000..3b828e431e --- /dev/null +++ b/var/spack/repos/builtin/packages/flux-sched/no-valgrind.patch @@ -0,0 +1,19 @@ +diff --git a/t/t5000-valgrind.t b/t/t5000-valgrind.t +index 08255348..aac546f6 100755 +--- a/t/t5000-valgrind.t ++++ b/t/t5000-valgrind.t +@@ -6,6 +6,14 @@ test_description='Run broker under valgrind with a small workload' + test -n "$FLUX_TESTS_LOGFILE" && set -- "$@" --logfile + . `dirname $0`/sharness.sh + ++# Do not run valgrind test by default unless FLUX_ENABLE_VALGRIND_TEST ++# is set in environment (e.g. by CI), or the test run run with -d, --debug ++# ++if test -z "$FLUX_ENABLE_VALGRIND_TEST" && test "$debug" = ""; then ++ skip_all='skipping valgrind tests since FLUX_ENABLE_VALGRIND_TEST not set' ++ test_done ++fi ++ + if ! which valgrind >/dev/null; then + skip_all='skipping valgrind tests since no valgrind executable found' + test_done diff --git a/var/spack/repos/builtin/packages/flux-sched/package.py b/var/spack/repos/builtin/packages/flux-sched/package.py index 20ad0d714c..de1b370258 100644 --- a/var/spack/repos/builtin/packages/flux-sched/package.py +++ b/var/spack/repos/builtin/packages/flux-sched/package.py @@ -19,6 +19,7 @@ class FluxSched(AutotoolsPackage): maintainers = ['grondo'] version('master', branch='master') + version('0.20.0', sha256='1d2074e1458ba1e7a1d4c33341b9f09769559cd1b8c68edc32097e220c4240b8') version('0.19.0', sha256='8dffa8eaec95a81286f621639ef851c52dc4c562d365971233bbd91100c31ed2') version('0.18.0', sha256='a4d8a6444fdb7b857b26f47fdea57992b486c9522f4ff92d5a6f547d95b586ae') version('0.17.0', sha256='5acfcb757e2294a92eaa91be58ba9b42736b88b42d2937de4a78f4642b1c4933') @@ -42,7 +43,9 @@ class FluxSched(AutotoolsPackage): depends_on("py-pyyaml") depends_on("libedit") depends_on("libxml2@2.9.1:") - depends_on("yaml-cpp") + # pin yaml-cpp to 0.6.3 due to issue #886 + # https://github.com/flux-framework/flux-sched/issues/886 + depends_on("yaml-cpp@0.6.3") depends_on("uuid") depends_on("pkgconfig") @@ -55,6 +58,7 @@ class FluxSched(AutotoolsPackage): depends_on("flux-core@0.28.0:", when='@0.17.0', type=('build', 'run', 'link')) depends_on("flux-core@0.29.0:", when='@0.18.0', type=('build', 'run', 'link')) depends_on("flux-core@0.30.0:", when='@0.19.0', type=('build', 'run', 'link')) + depends_on("flux-core@0.31.0:", when='@0.19.0', type=('build', 'run', 'link')) depends_on("flux-core@master", when='@master', type=('build', 'run', 'link')) # Need autotools when building on master: @@ -62,6 +66,10 @@ class FluxSched(AutotoolsPackage): depends_on("automake", type='build', when='@master') depends_on("libtool", type='build', when='@master') + # Disable t5000-valgrind.t by default due to false positives not yet + # in the suppressions file. (This patch will be in v0.21.0) + patch('no-valgrind.patch', when='@:0.20.0') + def url_for_version(self, version): ''' Flux uses a fork of ZeroMQ's Collective Code Construction Contract @@ -103,7 +111,7 @@ class FluxSched(AutotoolsPackage): bash = which('bash') bash('./autogen.sh') - @when('@:0.19') + @when('@:0.20') def patch(self): """Fix build with clang@13 and gcc@11""" filter_file('NULL', 'nullptr', 'resource/schema/sched_data.hpp') diff --git a/var/spack/repos/builtin/packages/fpm/package.py b/var/spack/repos/builtin/packages/fpm/package.py index 9401bf636c..f6acf27da9 100644 --- a/var/spack/repos/builtin/packages/fpm/package.py +++ b/var/spack/repos/builtin/packages/fpm/package.py @@ -21,6 +21,7 @@ class Fpm(Package): maintainers = ["awvwgk"] phases = ["install"] + version("0.5.0", "e4a06956d2300f9aa1d06bd3323670480e946549617582e32684ded6921a921e") version("0.4.0", "cd9b80b7f40d9cf357ca8d5d4fe289fd32dfccb729bad7d2a68f245e4cdd0045") version("0.3.0", "3368d1b17e2d1368559174c796ce0e184cb6bf79c939938c6d166fbd15959fa3") @@ -32,6 +33,9 @@ class Fpm(Package): if "@0.4.0" in self.spec: env.set("FPM_C_COMPILER", self.compiler.cc) + if "@0.5.0" in self.spec: + env.set("FPM_CC", self.compiler.cc) + fflags = "-O3" if "+openmp" in self.spec: fflags += " " + self.compiler.openmp_flag diff --git a/var/spack/repos/builtin/packages/fraggenescan/package.py b/var/spack/repos/builtin/packages/fraggenescan/package.py index 70bcd32e72..1f60362fb3 100644 --- a/var/spack/repos/builtin/packages/fraggenescan/package.py +++ b/var/spack/repos/builtin/packages/fraggenescan/package.py @@ -15,11 +15,14 @@ class Fraggenescan(MakefilePackage): url = "https://downloads.sourceforge.net/project/fraggenescan/FragGeneScan1.31.tar.gz" version('1.31', sha256='cd3212d0f148218eb3b17d24fcd1fc897fb9fee9b2c902682edde29f895f426c') - - build_targets = ['clean', 'hmm.obj'] + version('1.30', sha256='f2d7f0dfa4a5f4bbea295ed865dcbfedf16c954ea1534c2a879ebdcfb8650d95') def edit(self, spec, prefix): filter_file('gcc', spack_cc, 'Makefile', string=True) + def build(self, spec, prefic): + make('clean') + make('fgs') + def install(self, spec, prefix): install_tree('.', prefix.bin) diff --git a/var/spack/repos/builtin/packages/fuse-overlayfs/package.py b/var/spack/repos/builtin/packages/fuse-overlayfs/package.py index 81103c3103..5322527e6d 100644 --- a/var/spack/repos/builtin/packages/fuse-overlayfs/package.py +++ b/var/spack/repos/builtin/packages/fuse-overlayfs/package.py @@ -11,7 +11,11 @@ class FuseOverlayfs(AutotoolsPackage): homepage = "https://github.com/containers/fuse-overlayfs" url = "https://github.com/containers/fuse-overlayfs/archive/v1.1.2.tar.gz" + maintainers = ['haampie'] + version('1.7.1', sha256='fe2c076aed7b8669e7970301a99c0b197759b611035d8199de4c0add7d2fb2b4') + version('1.7', sha256='e4d9a794d270e237a38e7ced95af95ad15268e0584eab981ed7c7b3758b95995') + version('1.6', sha256='5606c5c1e4e0d7063f3f50a72c906f23b7a505784d20dc40fff9e4b2b802d5f4') version('1.5.0', sha256='6c81b65b71067b303aaa9871f512c2cabc23e2b793f19c6c854d01a492b5a923') version('1.4.0', sha256='7e5666aef4f2047e6a5202d6438b08c2d314dba5b40e431014e7dbb8168d9018') version('1.3.0', sha256='91e78a93aac7698c65083deea04952bc86af6abbb0830785ef1dd4a8707ad8bf') diff --git a/var/spack/repos/builtin/packages/fxdiv/package.py b/var/spack/repos/builtin/packages/fxdiv/package.py index daaaf2a211..ec9800fcae 100644 --- a/var/spack/repos/builtin/packages/fxdiv/package.py +++ b/var/spack/repos/builtin/packages/fxdiv/package.py @@ -23,25 +23,8 @@ class Fxdiv(CMakePackage): generator = 'Ninja' - resource( - name='googletest', - url='https://github.com/google/googletest/archive/release-1.10.0.zip', - sha256='94c634d499558a76fa649edb13721dce6e98fb1e7018dfaeba3cd7a083945e91', - destination='deps', - placement='googletest', - ) - resource( - name='googlebenchmark', - url='https://github.com/google/benchmark/archive/v1.5.0.zip', - sha256='2d22dd3758afee43842bb504af1a8385cccb3ee1f164824e4837c1c1b04d92a0', - destination='deps', - placement='googlebenchmark', - ) - def cmake_args(self): return [ - self.define('GOOGLETEST_SOURCE_DIR', - join_path(self.stage.source_path, 'deps', 'googletest')), - self.define('GOOGLEBENCHMARK_SOURCE_DIR', - join_path(self.stage.source_path, 'deps', 'googlebenchmark')), + self.define('FXDIV_BUILD_TESTS', False), + self.define('FXDIV_BUILD_BENCHMARKS', False) ] diff --git a/var/spack/repos/builtin/packages/g2/package.py b/var/spack/repos/builtin/packages/g2/package.py index 64b8da9dee..40cd8aa5f9 100644 --- a/var/spack/repos/builtin/packages/g2/package.py +++ b/var/spack/repos/builtin/packages/g2/package.py @@ -23,3 +23,10 @@ class G2(CMakePackage): depends_on('jasper') depends_on('libpng') + + def setup_run_environment(self, env): + for suffix in ('4', 'd'): + lib = find_libraries('libg2_' + suffix, root=self.prefix, + shared=False, recursive=True) + env.set('G2_LIB' + suffix, lib[0]) + env.set('G2_INC' + suffix, join_path(self.prefix, 'include_' + suffix)) diff --git a/var/spack/repos/builtin/packages/g2c/package.py b/var/spack/repos/builtin/packages/g2c/package.py index 14c5cabfc7..5496f75f16 100644 --- a/var/spack/repos/builtin/packages/g2c/package.py +++ b/var/spack/repos/builtin/packages/g2c/package.py @@ -26,3 +26,8 @@ class G2c(CMakePackage): depends_on('libpng', when='+png') depends_on('jasper', when='+jasper') depends_on('openjpeg', when='+openjpeg') + + def setup_run_environment(self, env): + lib = find_libraries('libg2c', root=self.prefix, shared=False, recursive=True) + env.set('G2C_LIB', lib[0]) + env.set('G2C_INC', join_path(self.prefix, 'include')) diff --git a/var/spack/repos/builtin/packages/g4emlow/package.py b/var/spack/repos/builtin/packages/g4emlow/package.py index 6d3aaa6f22..95a7c65b7a 100644 --- a/var/spack/repos/builtin/packages/g4emlow/package.py +++ b/var/spack/repos/builtin/packages/g4emlow/package.py @@ -17,6 +17,7 @@ class G4emlow(Package): maintainers = ['drbenmorgan'] # Only versions relevant to Geant4 releases built by spack are added + version('8.0', sha256='d919a8e5838688257b9248a613910eb2a7633059e030c8b50c0a2c2ad9fd2b3b') version('7.13', sha256='374896b649be776c6c10fea80abe6cf32f9136df0b6ab7c7236d571d49fb8c69') version('7.9.1', sha256='820c106e501c64c617df6c9e33a0f0a3822ffad059871930f74b8cc37f043ccb') version('7.9', sha256='4abf9aa6cda91e4612676ce4d2d8a73b91184533aa66f9aad19a53a8c4dc3aff') diff --git a/var/spack/repos/builtin/packages/g4particlexs/package.py b/var/spack/repos/builtin/packages/g4particlexs/package.py index 982d5fdba4..7ccacd8166 100644 --- a/var/spack/repos/builtin/packages/g4particlexs/package.py +++ b/var/spack/repos/builtin/packages/g4particlexs/package.py @@ -18,6 +18,7 @@ class G4particlexs(Package): maintainers = ['drbenmorgan'] # Only versions relevant to Geant4 releases built by spack are added + version('4.0', sha256='9381039703c3f2b0fd36ab4999362a2c8b4ff9080c322f90b4e319281133ca95') version('3.1.1', sha256='66c17edd6cb6967375d0497add84c2201907a25e33db782ebc26051d38f2afda') version('3.1', sha256='404da84ead165e5cccc0bb795222f6270c9bf491ef4a0fd65195128b27f0e9cd') version('2.1', sha256='094d103372bbf8780d63a11632397e72d1191dc5027f9adabaf6a43025520b41') diff --git a/var/spack/repos/builtin/packages/g4tendl/package.py b/var/spack/repos/builtin/packages/g4tendl/package.py index ff180c102f..2a27e3fa71 100644 --- a/var/spack/repos/builtin/packages/g4tendl/package.py +++ b/var/spack/repos/builtin/packages/g4tendl/package.py @@ -17,6 +17,7 @@ class G4tendl(Package): maintainers = ['drbenmorgan'] # Only versions relevant to Geant4 releases built by spack are added + version('1.4', sha256='4b7274020cc8b4ed569b892ef18c2e088edcdb6b66f39d25585ccee25d9721e0') version('1.3.2', sha256='3b2987c6e3bee74197e3bd39e25e1cc756bb866c26d21a70f647959fc7afb849') version('1.3', sha256='52ad77515033a5d6f995c699809b464725a0e62099b5e55bf07c8bdd02cd3bce') diff --git a/var/spack/repos/builtin/packages/gcc/package.py b/var/spack/repos/builtin/packages/gcc/package.py index 5520fb0f71..6a83354b89 100644 --- a/var/spack/repos/builtin/packages/gcc/package.py +++ b/var/spack/repos/builtin/packages/gcc/package.py @@ -261,7 +261,7 @@ class Gcc(AutotoolsPackage, GNUMirrorPackage): # Use -headerpad_max_install_names in the build, # otherwise updated load commands won't fit in the Mach-O header. # This is needed because `gcc` avoids the superenv shim. - patch('darwin/gcc-7.1.0-headerpad.patch', when='@5:') + patch('darwin/gcc-7.1.0-headerpad.patch', when='@5:11') patch('darwin/gcc-6.1.0-jit.patch', when='@5:7') patch('darwin/gcc-4.9.patch1', when='@4.9.0:4.9.3') patch('darwin/gcc-4.9.patch2', when='@4.9.0:4.9.3') diff --git a/var/spack/repos/builtin/packages/gchp/package.py b/var/spack/repos/builtin/packages/gchp/package.py index 6b5e723536..52e101121b 100644 --- a/var/spack/repos/builtin/packages/gchp/package.py +++ b/var/spack/repos/builtin/packages/gchp/package.py @@ -12,10 +12,11 @@ class Gchp(CMakePackage): """GEOS-Chem High Performance model of atmospheric chemistry""" homepage = "https://gchp.readthedocs.io/" - url = "https://github.com/geoschem/GCHP/archive/13.1.2.tar.gz" + url = "https://github.com/geoschem/GCHP/archive/13.2.1.tar.gz" git = "https://github.com/geoschem/GCHP.git" - maintainers = ['lizziel'] + maintainers = ['lizziel', 'laestrada'] + version('13.2.1', commit='9dc2340cac684971fa961559a4dc3d8818326ab8', submodules=True) version('13.1.2', commit='106b8f783cafabd699e53beec3a4dd8aee45234b', submodules=True) version('13.1.1', commit='a17361a78aceab947ca51aa1ecd3391beaa3fcb2', submodules=True) version('13.1.0', commit='4aca45370738e48623e61e38b26d981d3e20be76', submodules=True) diff --git a/var/spack/repos/builtin/packages/gdal/package.py b/var/spack/repos/builtin/packages/gdal/package.py index 6760125e00..bea77acf20 100644 --- a/var/spack/repos/builtin/packages/gdal/package.py +++ b/var/spack/repos/builtin/packages/gdal/package.py @@ -24,36 +24,36 @@ class Gdal(AutotoolsPackage): maintainers = ['adamjstewart'] - version('3.3.3', sha256='1e8fc8b19c77238c7f4c27857d04857b65d8b7e8050d3aac256d70fa48a21e76') - version('3.3.2', sha256='630e34141cf398c3078d7d8f08bb44e804c65bbf09807b3610dcbfbc37115cc3') - version('3.3.1', sha256='48ab00b77d49f08cf66c60ccce55abb6455c3079f545e60c90ee7ce857bccb70') - version('3.3.0', sha256='190c8f4b56afc767f43836b2a5cd53cc52ee7fdc25eb78c6079c5a244e28efa7') - version('3.2.3', sha256='d9ec8458fe97fd02bf36379e7f63eaafce1005eeb60e329ed25bb2d2a17a796f') - version('3.2.2', sha256='a7e1e414e5c405af48982bf4724a3da64a05770254f2ce8affb5f58a7604ca57') - version('3.2.1', sha256='6c588b58fcb63ff3f288eb9f02d76791c0955ba9210d98c3abd879c770ae28ea') - version('3.2.0', sha256='b051f852600ffdf07e337a7f15673da23f9201a9dbb482bd513756a3e5a196a6') - version('3.1.4', sha256='7b82486f71c71cec61f9b237116212ce18ef6b90f068cbbf9f7de4fc50b576a8') - version('3.1.3', sha256='161cf55371a143826f1d76ce566db1f0a666496eeb4371aed78b1642f219d51d') - version('3.1.2', sha256='767c8d0dfa20ba3283de05d23a1d1c03a7e805d0ce2936beaff0bb7d11450641') - version('3.1.1', sha256='97154a606339a6c1d87c80fb354d7456fe49828b2ef9a3bc9ed91771a03d2a04') - version('3.1.0', sha256='e754a22242ccbec731aacdb2333b567d4c95b9b02d3ba1ea12f70508d244fcda') - version('3.0.4', sha256='5569a4daa1abcbba47a9d535172fc335194d9214fdb96cd0f139bb57329ae277') - version('3.0.3', sha256='e20add5802265159366f197a8bb354899e1693eab8dbba2208de14a457566109') - version('3.0.2', sha256='c3765371ce391715c8f28bd6defbc70b57aa43341f6e94605f04fe3c92468983') - version('3.0.1', sha256='45b4ae25dbd87282d589eca76481c426f72132d7a599556470d5c38263b09266') - version('3.0.0', sha256='ad316fa052d94d9606e90b20a514b92b2dd64e3142dfdbd8f10981a5fcd5c43e') - version('2.4.4', sha256='a383bd3cf555d6e1169666b01b5b3025b2722ed39e834f1b65090f604405dcd8') - version('2.4.3', sha256='d52dc3e0cff3af3e898d887c4151442989f416e839948e73f0994f0224bbff60') - version('2.4.2', sha256='dcc132e469c5eb76fa4aaff238d32e45a5d947dc5b6c801a123b70045b618e0c') - version('2.4.1', sha256='fd51b4900b2fc49b98d8714f55fc8a78ebfd07218357f93fb796791115a5a1ad') - version('2.4.0', sha256='c3791dcc6d37e59f6efa86e2df2a55a4485237b0a48e330ae08949f0cdf00f27') - version('2.3.3', sha256='c3635e41766a648f945d235b922e3c5306e26a2ee5bbd730d2181e242f5f46fe') - version('2.3.2', sha256='3f6d78fe8807d1d6afb7bed27394f19467840a82bc36d65e66316fa0aa9d32a4') - version('2.3.1', sha256='9c4625c45a3ee7e49a604ef221778983dd9fd8104922a87f20b99d9bedb7725a') - version('2.3.0', sha256='6f75e49aa30de140525ccb58688667efe3a2d770576feb7fbc91023b7f552aa2') - version('2.1.2', sha256='b597f36bd29a2b4368998ddd32b28c8cdf3c8192237a81b99af83cc17d7fa374') - version('2.0.2', sha256='90f838853cc1c07e55893483faa7e923e4b4b1659c6bc9df3538366030a7e622') - version('1.11.5', sha256='d4fdc3e987b9926545f0a514b4328cd733f2208442f8d03bde630fe1f7eff042', deprecated=True) + version('3.4.0', sha256='ac7bd2bb9436f3fc38bc7309704672980f82d64b4d57627d27849259b8f71d5c') + version('3.3.3', sha256='1e8fc8b19c77238c7f4c27857d04857b65d8b7e8050d3aac256d70fa48a21e76') + version('3.3.2', sha256='630e34141cf398c3078d7d8f08bb44e804c65bbf09807b3610dcbfbc37115cc3') + version('3.3.1', sha256='48ab00b77d49f08cf66c60ccce55abb6455c3079f545e60c90ee7ce857bccb70') + version('3.3.0', sha256='190c8f4b56afc767f43836b2a5cd53cc52ee7fdc25eb78c6079c5a244e28efa7') + version('3.2.3', sha256='d9ec8458fe97fd02bf36379e7f63eaafce1005eeb60e329ed25bb2d2a17a796f') + version('3.2.2', sha256='a7e1e414e5c405af48982bf4724a3da64a05770254f2ce8affb5f58a7604ca57') + version('3.2.1', sha256='6c588b58fcb63ff3f288eb9f02d76791c0955ba9210d98c3abd879c770ae28ea') + version('3.2.0', sha256='b051f852600ffdf07e337a7f15673da23f9201a9dbb482bd513756a3e5a196a6') + version('3.1.4', sha256='7b82486f71c71cec61f9b237116212ce18ef6b90f068cbbf9f7de4fc50b576a8') + version('3.1.3', sha256='161cf55371a143826f1d76ce566db1f0a666496eeb4371aed78b1642f219d51d') + version('3.1.2', sha256='767c8d0dfa20ba3283de05d23a1d1c03a7e805d0ce2936beaff0bb7d11450641') + version('3.1.1', sha256='97154a606339a6c1d87c80fb354d7456fe49828b2ef9a3bc9ed91771a03d2a04') + version('3.1.0', sha256='e754a22242ccbec731aacdb2333b567d4c95b9b02d3ba1ea12f70508d244fcda') + version('3.0.4', sha256='5569a4daa1abcbba47a9d535172fc335194d9214fdb96cd0f139bb57329ae277') + version('3.0.3', sha256='e20add5802265159366f197a8bb354899e1693eab8dbba2208de14a457566109') + version('3.0.2', sha256='c3765371ce391715c8f28bd6defbc70b57aa43341f6e94605f04fe3c92468983') + version('3.0.1', sha256='45b4ae25dbd87282d589eca76481c426f72132d7a599556470d5c38263b09266') + version('3.0.0', sha256='ad316fa052d94d9606e90b20a514b92b2dd64e3142dfdbd8f10981a5fcd5c43e') + version('2.4.4', sha256='a383bd3cf555d6e1169666b01b5b3025b2722ed39e834f1b65090f604405dcd8') + version('2.4.3', sha256='d52dc3e0cff3af3e898d887c4151442989f416e839948e73f0994f0224bbff60') + version('2.4.2', sha256='dcc132e469c5eb76fa4aaff238d32e45a5d947dc5b6c801a123b70045b618e0c') + version('2.4.1', sha256='fd51b4900b2fc49b98d8714f55fc8a78ebfd07218357f93fb796791115a5a1ad') + version('2.4.0', sha256='c3791dcc6d37e59f6efa86e2df2a55a4485237b0a48e330ae08949f0cdf00f27') + version('2.3.3', sha256='c3635e41766a648f945d235b922e3c5306e26a2ee5bbd730d2181e242f5f46fe') + version('2.3.2', sha256='3f6d78fe8807d1d6afb7bed27394f19467840a82bc36d65e66316fa0aa9d32a4') + version('2.3.1', sha256='9c4625c45a3ee7e49a604ef221778983dd9fd8104922a87f20b99d9bedb7725a') + version('2.3.0', sha256='6f75e49aa30de140525ccb58688667efe3a2d770576feb7fbc91023b7f552aa2') + version('2.1.2', sha256='b597f36bd29a2b4368998ddd32b28c8cdf3c8192237a81b99af83cc17d7fa374') + version('2.0.2', sha256='90f838853cc1c07e55893483faa7e923e4b4b1659c6bc9df3538366030a7e622') variant('libtool', default=True, description='Use libtool to build the library') variant('libz', default=True, description='Include libz support') @@ -155,7 +155,8 @@ class Gdal(AutotoolsPackage): depends_on('python@2.0:', type=('build', 'link', 'run'), when='@3.2:+python') depends_on('python', type=('build', 'link', 'run'), when='+python') # swig/python/setup.py - depends_on('py-setuptools', type='build', when='+python') + depends_on('py-setuptools@:57', type='build', when='@:3.0+python') + depends_on('py-setuptools', type='build', when='@3.1:+python') depends_on('py-numpy@1.0.0:', type=('build', 'run'), when='+python') depends_on('java@7:', type=('build', 'link', 'run'), when='@3.2:+java') depends_on('java@6:', type=('build', 'link', 'run'), when='@2.4:+java') @@ -177,7 +178,7 @@ class Gdal(AutotoolsPackage): conflicts('%xl_r@:13.0', msg=msg) conflicts('+mdb', when='~java', msg='MDB driver requires Java') - + conflicts('+mdb', when='@3.5:', msg='MDB driver removed in GDAL 3.5, use ODBC instead') conflicts('+jasper', when='@3.5:', msg='JPEG2000 driver removed in GDAL 3.5') conflicts('+perl', when='@3.5:', msg='Perl bindings removed in GDAL 3.5') diff --git a/var/spack/repos/builtin/packages/gdk-pixbuf/package.py b/var/spack/repos/builtin/packages/gdk-pixbuf/package.py index e317d4d706..3015892ee0 100644 --- a/var/spack/repos/builtin/packages/gdk-pixbuf/package.py +++ b/var/spack/repos/builtin/packages/gdk-pixbuf/package.py @@ -18,13 +18,16 @@ class GdkPixbuf(Package): list_url = "https://ftp.acc.umu.se/pub/gnome/sources/gdk-pixbuf/" list_depth = 1 + version('2.42.6', sha256='c4a6b75b7ed8f58ca48da830b9fa00ed96d668d3ab4b1f723dcf902f78bde77f') version('2.42.2', sha256='83c66a1cfd591d7680c144d2922c5955d38b4db336d7cd3ee109f7bcf9afef15') - version('2.40.0', sha256='1582595099537ca8ff3b99c6804350b4c058bb8ad67411bbaae024ee7cead4e6') - version('2.38.2', sha256='73fa651ec0d89d73dd3070b129ce2203a66171dfc0bd2caa3570a9c93d2d0781') - version('2.38.0', sha256='dd50973c7757bcde15de6bcd3a6d462a445efd552604ae6435a0532fbbadae47') + # https://nvd.nist.gov/vuln/detail/CVE-2021-20240 + version('2.40.0', sha256='1582595099537ca8ff3b99c6804350b4c058bb8ad67411bbaae024ee7cead4e6', deprecated=True) + version('2.38.2', sha256='73fa651ec0d89d73dd3070b129ce2203a66171dfc0bd2caa3570a9c93d2d0781', deprecated=True) + version('2.38.0', sha256='dd50973c7757bcde15de6bcd3a6d462a445efd552604ae6435a0532fbbadae47', deprecated=True) version('2.31.2', sha256='9e467ed09894c802499fb2399cd9a89ed21c81700ce8f27f970a833efb1e47aa', deprecated=True) variant('x11', default=False, description="Enable X11 support") + variant('tiff', default=False, description="Enable TIFF support(partially broken)") # Man page creation was getting docbook errors, see issue #18853 variant('man', default=False, description="Enable man page creation") @@ -43,7 +46,7 @@ class GdkPixbuf(Package): depends_on('jpeg') depends_on('libpng') depends_on('zlib') - depends_on('libtiff') + depends_on('libtiff', when='+tiff') depends_on('gobject-introspection') depends_on('libx11', when='+x11') @@ -73,11 +76,13 @@ class GdkPixbuf(Package): def install(self, spec, prefix): with working_dir('spack-build', create=True): - meson_args = std_meson_args - meson_args += [ - '-Dx11={0}'.format('+x11' in spec), - '-Dman={0}'.format('+man' in spec), - ] + meson_args = std_meson_args + ['-Dman={0}'.format('+man' in spec)] + # Based on suggestion by luigi-calori and the fixup shown by lee218llnl: + # https://github.com/spack/spack/pull/27254#issuecomment-974464174 + if '+x11' in spec: + if self.version >= Version('2.42'): + raise InstallError('+x11 is not valid for {0}'.format(self.version)) + meson_args += ['-Dx11=true'] meson('..', *meson_args) ninja('-v') if self.run_tests: diff --git a/var/spack/repos/builtin/packages/geant4-data/package.py b/var/spack/repos/builtin/packages/geant4-data/package.py index c3c91f3b32..a40f78339f 100644 --- a/var/spack/repos/builtin/packages/geant4-data/package.py +++ b/var/spack/repos/builtin/packages/geant4-data/package.py @@ -18,6 +18,8 @@ class Geant4Data(BundlePackage): tags = ['hep'] + version('11.0.0') + version('10.7.3') version('10.7.2') version('10.7.1') version('10.7.0') @@ -36,6 +38,18 @@ class Geant4Data(BundlePackage): # For clarity, declare deps on a Major-Minor version basis as # they generally don't change on the patch level # Can move to declaring on a dataset basis if needed + # geant4@11.0.X + depends_on("g4ndl@4.6", when='@11.0.0:11.0') + depends_on("g4emlow@8.0", when='@11.0.0:11.0') + depends_on("g4photonevaporation@5.7", when='@11.0.0:11.0') + depends_on("g4radioactivedecay@5.6", when='@11.0.0:11.0') + depends_on("g4particlexs@4.0", when='@11.0.0:11.0') + depends_on("g4pii@1.3", when='@11.0.0:11.0') + depends_on("g4realsurface@2.2", when='@11.0.0:11.0') + depends_on("g4saiddata@2.0", when='@11.0.0:11.0') + depends_on("g4abla@3.1", when='@11.0.0:11.0') + depends_on("g4incl@1.0", when='@11.0.0:11.0') + # geant4@10.7.X depends_on("g4ndl@4.6", when='@10.7.0:10.7') depends_on("g4emlow@7.13", when='@10.7.0:10.7') diff --git a/var/spack/repos/builtin/packages/geant4/package.py b/var/spack/repos/builtin/packages/geant4/package.py index d01c78ec4e..a5eb13abab 100644 --- a/var/spack/repos/builtin/packages/geant4/package.py +++ b/var/spack/repos/builtin/packages/geant4/package.py @@ -19,6 +19,8 @@ class Geant4(CMakePackage): maintainers = ['drbenmorgan'] + version('11.0.0', sha256='dbfc6b5030a36936b46f56a0bede4b647d0160c178a5629d39ce392124e47936') + version('10.7.3', sha256='8615d93bd4178d34f31e19d67bc81720af67cdab1c8425af8523858dcddcf65b', preferred=True) version('10.7.2', sha256='593fc85883a361487b17548ba00553501f66a811b0a79039276bb75ad59528cf') version('10.7.1', sha256='2aa7cb4b231081e0a35d84c707be8f35e4edc4e97aad2b233943515476955293') version('10.7.0', sha256='c991a139210c7f194720c900b149405090058c00beb5a0d2fac5c40c42a262d4') @@ -37,6 +39,8 @@ class Geant4(CMakePackage): values=_cxxstd_values, multi=False, description='Use the specified C++ standard when building.') + conflicts('cxxstd=11', when='@11:', msg='geant4@11: only supports cxxstd=17') + conflicts('cxxstd=14', when='@11:', msg='geant4@11: only supports cxxstd=17') variant('threads', default=True, description='Build with multithreading') variant('vecgeom', default=False, description='Enable vecgeom support') @@ -45,10 +49,15 @@ class Geant4(CMakePackage): variant('motif', default=False, description='Optional motif support') variant('qt', default=False, description='Enable Qt support') variant('python', default=False, description='Enable Python bindings') + variant('tbb', default=False, description='Use TBB as a tasking backend', when='@11:') + variant('vtk', default=False, description='Enable VTK support', when='@11:') - depends_on('cmake@3.5:', type='build') + depends_on('cmake@3.16:', type='build', when='@11.0.0:') depends_on('cmake@3.8:', type='build', when='@10.6.0:') + depends_on('cmake@3.5:', type='build') + depends_on('geant4-data@11.0.0', when='@11.0.0') + depends_on('geant4-data@10.7.3', when='@10.7.3') depends_on('geant4-data@10.7.2', when='@10.7.2') depends_on('geant4-data@10.7.1', when='@10.7.1') depends_on('geant4-data@10.7.0', when='@10.7.0') @@ -64,6 +73,9 @@ class Geant4(CMakePackage): depends_on("expat") depends_on("zlib") + depends_on('tbb', when='+tbb') + depends_on('vtk@8.2:', when='+vtk') + # Python, with boost requirement dealt with in cxxstd section depends_on('python@3:', when='+python') extends('python', when='+python') @@ -72,6 +84,9 @@ class Geant4(CMakePackage): for std in _cxxstd_values: # CLHEP version requirements to be reviewed + depends_on('clhep@2.4.5.1: cxxstd=' + std, + when='@11.0.0: cxxstd=' + std) + depends_on('clhep@2.4.4.0: cxxstd=' + std, when='@10.7.0: cxxstd=' + std) @@ -79,9 +94,12 @@ class Geant4(CMakePackage): when='@10.3.3:10.6 cxxstd=' + std) # Spack only supports Xerces-c 3 and above, so no version req - depends_on('xerces-c netaccessor=curl cxxstd=' + std, when='cxxstd=' + std) + depends_on('xerces-c netaccessor=curl cxxstd=' + std, + when='cxxstd=' + std) # Vecgeom specific versions for each Geant4 version + depends_on('vecgeom@1.1.18:1.1 cxxstd=' + std, + when='@11.0.0: +vecgeom cxxstd=' + std) depends_on('vecgeom@1.1.8:1.1 cxxstd=' + std, when='@10.7.0: +vecgeom cxxstd=' + std) depends_on('vecgeom@1.1.5 cxxstd=' + std, @@ -120,7 +138,6 @@ class Geant4(CMakePackage): # Core options options = [ - self.define_from_variant('GEANT4_BUILD_CXXSTD', 'cxxstd'), '-DGEANT4_USE_SYSTEM_CLHEP=ON', '-DGEANT4_USE_SYSTEM_EXPAT=ON', '-DGEANT4_USE_SYSTEM_ZLIB=ON', @@ -129,6 +146,14 @@ class Geant4(CMakePackage): '-DXERCESC_ROOT_DIR={0}'.format(spec['xerces-c'].prefix) ] + # Use the correct C++ standard option for the requested version + if spec.version >= Version('11.0'): + options.append( + self.define_from_variant('CMAKE_CXX_STANDARD', 'cxxstd')) + else: + options.append( + self.define_from_variant('GEANT4_BUILD_CXXSTD', 'cxxstd')) + # Don't install the package cache file as Spack will set # up CMAKE_PREFIX_PATH etc for the dependencies if spec.version >= Version('10.6'): @@ -137,6 +162,8 @@ class Geant4(CMakePackage): # Multithreading options.append(self.define_from_variant('GEANT4_BUILD_MULTITHREADED', 'threads')) + options.append(self.define_from_variant('GEANT4_USE_TBB', 'tbb')) + if '+threads' in spec: # Locked at global-dynamic to allow use cases that load the # geant4 libs at application runtime @@ -170,6 +197,8 @@ class Geant4(CMakePackage): '-DQT_QMAKE_EXECUTABLE=%s' % spec['qt'].prefix.bin.qmake) + options.append(self.define_from_variant('GEANT4_USE_VTK', 'vtk')) + # Python if spec.version > Version('10.6.1'): options.append(self.define_from_variant('GEANT4_USE_PYTHON', diff --git a/var/spack/repos/builtin/packages/gfsio/package.py b/var/spack/repos/builtin/packages/gfsio/package.py index 430f1b1da7..205771d8fc 100644 --- a/var/spack/repos/builtin/packages/gfsio/package.py +++ b/var/spack/repos/builtin/packages/gfsio/package.py @@ -18,3 +18,10 @@ class Gfsio(CMakePackage): maintainers = ['t-brown', 'kgerheiser', 'Hang-Lei-NOAA', 'edwardhartnett'] version('1.4.1', sha256='eab106302f520600decc4f9665d7c6a55e7b4901fab6d9ef40f29702b89b69b1') + + def setup_run_environment(self, env): + lib = find_libraries('libgfsio', root=self.prefix, shared=False, recursive=True) + # Only one library version, but still need to set _4 to make NCO happy + for suffix in ('4', ''): + env.set('GFSIO_LIB' + suffix, lib[0]) + env.set('GFSIO_INC' + suffix, join_path(self.prefix, 'include')) diff --git a/var/spack/repos/builtin/packages/ginkgo/1.4.0_dpcpp_use_old_standard.patch b/var/spack/repos/builtin/packages/ginkgo/1.4.0_dpcpp_use_old_standard.patch new file mode 100644 index 0000000000..54ed07c22d --- /dev/null +++ b/var/spack/repos/builtin/packages/ginkgo/1.4.0_dpcpp_use_old_standard.patch @@ -0,0 +1,70 @@ +commit 83164570f0d3511d114114bcc2b02ad23b753ed0 +Author: Yuhsiang M. Tsai <yhmtsai@gmail.com> +Date: Wed Oct 6 16:33:16 2021 +0200 + + syclstd 1.2.1 in new release to propagate subgroup + remove 64 subgroup in dense to avoid conj_trans issue on cpu temporarily + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index ceb269b1cb..b47388a596 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -67,7 +67,8 @@ if(MSVC) + elseif(GINKGO_BUILD_DPCPP OR CMAKE_CXX_COMPILER MATCHES "dpcpp") + # For now always use `-ffp-model=precise` with DPC++. This can be removed when + # the floating point issues are fixed. +- set(GINKGO_COMPILER_FLAGS "-Wpedantic;-ffp-model=precise" CACHE STRING ++ # -sycl-std=1.2.1 (or -sycl-std=2017) is temporary workaround after 2021.4 to propagate subgroup setting correctly ++ set(GINKGO_COMPILER_FLAGS "-Wpedantic;-ffp-model=precise;-sycl-std=1.2.1" CACHE STRING + "Set the required CXX compiler flags, mainly used for warnings. Current default is `-Wpedantic;-ffp-model=precise`") + else() + set(GINKGO_COMPILER_FLAGS "-Wpedantic" CACHE STRING +diff --git a/cmake/create_test.cmake b/cmake/create_test.cmake +index 9d22406f9a..dcc452b293 100644 +--- a/cmake/create_test.cmake ++++ b/cmake/create_test.cmake +@@ -40,6 +40,7 @@ function(ginkgo_create_dpcpp_test test_name) + add_executable(${test_target_name} ${test_name}.dp.cpp) + target_compile_features(${test_target_name} PUBLIC cxx_std_17) + target_compile_options(${test_target_name} PRIVATE "${GINKGO_DPCPP_FLAGS}") ++ target_compile_options(${test_target_name} PRIVATE "${GINKGO_COMPILER_FLAGS}") + target_link_options(${test_target_name} PRIVATE -fsycl-device-code-split=per_kernel) + ginkgo_set_test_target_properties(${test_name} ${test_target_name}) + # Note: MKL_ENV is empty on linux. Maybe need to apply MKL_ENV to all test. +diff --git a/dpcpp/CMakeLists.txt b/dpcpp/CMakeLists.txt +index fee9ec3639..ce71fd5d3c 100644 +--- a/dpcpp/CMakeLists.txt ++++ b/dpcpp/CMakeLists.txt +@@ -68,6 +68,7 @@ target_compile_definitions(ginkgo_dpcpp PRIVATE GKO_COMPILING_DPCPP) + + set(GINKGO_DPCPP_FLAGS ${GINKGO_DPCPP_FLAGS} PARENT_SCOPE) + target_compile_options(ginkgo_dpcpp PRIVATE "${GINKGO_DPCPP_FLAGS}") ++target_compile_options(ginkgo_dpcpp PRIVATE "${GINKGO_COMPILER_FLAGS}") + # Note: add MKL as PRIVATE not PUBLIC (MKL example shows) to avoid propagating + # find_package(MKL) everywhere when linking ginkgo (see the MKL example + # https://software.intel.com/content/www/us/en/develop/documentation/onemkl-windows-developer-guide/top/getting-started/cmake-config-for-onemkl.html) +diff --git a/dpcpp/matrix/dense_kernels.dp.cpp b/dpcpp/matrix/dense_kernels.dp.cpp +index 0c89530d1d..9a86ab9cd1 100644 +--- a/dpcpp/matrix/dense_kernels.dp.cpp ++++ b/dpcpp/matrix/dense_kernels.dp.cpp +@@ -69,14 +69,14 @@ namespace dpcpp { + namespace dense { + + ++// Disable the 64 subgroup. CPU supports 64 now, but conj_transpose will ++// lead CL_OUT_OF_RESOURCES. TODO: investigate this issue. + using KCFG_1D = ConfigSet<11, 7>; + constexpr auto kcfg_1d_list = +- syn::value_list<std::uint32_t, KCFG_1D::encode(512, 64), +- KCFG_1D::encode(512, 32), KCFG_1D::encode(512, 16), +- KCFG_1D::encode(256, 32), KCFG_1D::encode(256, 16), +- KCFG_1D::encode(256, 8)>(); +-constexpr auto subgroup_list = +- syn::value_list<std::uint32_t, 64, 32, 16, 8, 4>(); ++ syn::value_list<std::uint32_t, KCFG_1D::encode(512, 32), ++ KCFG_1D::encode(512, 16), KCFG_1D::encode(256, 32), ++ KCFG_1D::encode(256, 16), KCFG_1D::encode(256, 8)>(); ++constexpr auto subgroup_list = syn::value_list<std::uint32_t, 32, 16, 8, 4>(); + constexpr auto kcfg_1d_array = syn::as_array(kcfg_1d_list); + constexpr int default_block_size = 256; + diff --git a/var/spack/repos/builtin/packages/ginkgo/package.py b/var/spack/repos/builtin/packages/ginkgo/package.py index 4518f3cce1..694ae2702e 100644 --- a/var/spack/repos/builtin/packages/ginkgo/package.py +++ b/var/spack/repos/builtin/packages/ginkgo/package.py @@ -3,6 +3,7 @@ # # SPDX-License-Identifier: (Apache-2.0 OR MIT) +import os import sys from spack import * @@ -31,6 +32,7 @@ class Ginkgo(CMakePackage, CudaPackage, ROCmPackage): variant('shared', default=True, description='Build shared libraries') variant('full_optimizations', default=False, description='Compile with all optimizations') variant('openmp', default=sys.platform != 'darwin', description='Build with OpenMP') + variant('oneapi', default=False, description='Build with oneAPI support') variant('develtools', default=False, description='Compile with develtools enabled') variant('hwloc', default=False, description='Enable HWLOC support') variant('build_type', default='Release', @@ -49,9 +51,13 @@ class Ginkgo(CMakePackage, CudaPackage, ROCmPackage): depends_on('googletest', type="test") depends_on('numactl', type="test", when="+hwloc") + depends_on('intel-oneapi-mkl', when="+oneapi") + depends_on('intel-oneapi-dpl', when="+oneapi") + conflicts('%gcc@:5.2.9') conflicts("+rocm", when="@:1.1.1") conflicts("+cuda", when="+rocm") + conflicts("+openmp", when="+oneapi") # ROCm 4.1.0 breaks platform settings which breaks Ginkgo's HIP support. conflicts("^hip@4.1.0:", when="@:1.3.0") @@ -63,18 +69,39 @@ class Ginkgo(CMakePackage, CudaPackage, ROCmPackage): patch('1.4.0_skip_invalid_smoke_tests.patch', when='@master') patch('1.4.0_skip_invalid_smoke_tests.patch', when='@1.4.0') + # Newer DPC++ compilers use the updated SYCL 2020 standard which change + # kernel attribute propagation rules. This doesn't work well with the + # initial Ginkgo oneAPI support. + patch('1.4.0_dpcpp_use_old_standard.patch', when='+oneapi @master') + patch('1.4.0_dpcpp_use_old_standard.patch', when='+oneapi @1.4.0') + + def setup_build_environment(self, env): + spec = self.spec + if '+oneapi' in spec: + env.set('MKLROOT', + join_path(spec['intel-oneapi-mkl'].prefix, + 'mkl', 'latest')) + env.set('DPL_ROOT', + join_path(spec['intel-oneapi-dpl'].prefix, + 'dpl', 'latest')) + def cmake_args(self): # Check that the have the correct C++ standard is available if self.spec.satisfies('@:1.2.0'): try: self.compiler.cxx11_flag except UnsupportedCompilerFlag: - InstallError('Ginkgo requires a C++11-compliant C++ compiler') + raise InstallError('Ginkgo requires a C++11-compliant C++ compiler') else: try: self.compiler.cxx14_flag except UnsupportedCompilerFlag: - InstallError('Ginkgo requires a C++14-compliant C++ compiler') + raise InstallError('Ginkgo requires a C++14-compliant C++ compiler') + + cxx_is_dpcpp = os.path.basename(self.compiler.cxx) == "dpcpp" + if self.spec.satisfies('+oneapi') and not cxx_is_dpcpp: + raise InstallError("Ginkgo's oneAPI backend requires the" + + "DPC++ compiler as main CXX compiler.") spec = self.spec from_variant = self.define_from_variant @@ -85,6 +112,7 @@ class Ginkgo(CMakePackage, CudaPackage, ROCmPackage): from_variant('BUILD_SHARED_LIBS', 'shared'), from_variant('GINKGO_JACOBI_FULL_OPTIMIZATIONS', 'full_optimizations'), from_variant('GINKGO_BUILD_HWLOC', 'hwloc'), + from_variant('GINKGO_BUILD_DPCPP', 'oneapi'), from_variant('GINKGO_DEVEL_TOOLS', 'develtools'), # As we are not exposing benchmarks, examples, tests nor doc # as part of the installation, disable building them altogether. diff --git a/var/spack/repos/builtin/packages/gl2ps/package.py b/var/spack/repos/builtin/packages/gl2ps/package.py index cd8005eb4b..5a5f0f390c 100644 --- a/var/spack/repos/builtin/packages/gl2ps/package.py +++ b/var/spack/repos/builtin/packages/gl2ps/package.py @@ -13,6 +13,7 @@ class Gl2ps(CMakePackage): homepage = "https://www.geuz.org/gl2ps/" url = "https://geuz.org/gl2ps/src/gl2ps-1.3.9.tgz" + version('1.4.2', sha256='8d1c00c1018f96b4b97655482e57dcb0ce42ae2f1d349cd6d4191e7848d9ffe9') version('1.4.0', sha256='03cb5e6dfcd87183f3b9ba3b22f04cd155096af81e52988cc37d8d8efe6cf1e2') version('1.3.9', sha256='8a680bff120df8bcd78afac276cdc38041fed617f2721bade01213362bcc3640') diff --git a/var/spack/repos/builtin/packages/glib/package.py b/var/spack/repos/builtin/packages/glib/package.py index 5180973e26..6707c49e1d 100644 --- a/var/spack/repos/builtin/packages/glib/package.py +++ b/var/spack/repos/builtin/packages/glib/package.py @@ -23,6 +23,7 @@ class Glib(Package): maintainers = ['michaelkuhn'] + version('2.70.2', sha256='0551459c85cd3da3d58ddc9016fd28be5af503f5e1615a71ba5b512ac945806f') version('2.70.0', sha256='200d7df811c5ba634afbf109f14bb40ba7fde670e89389885da14e27c0840742') version('2.68.4', sha256='62fd061d08a75492617e625a73e2c05e259f831acbb8e1f8b9c81f23f7993a3b') version('2.68.3', sha256='e7e1a3c20c026109c45c9ec4a31d8dcebc22e86c69486993e565817d64be3138') diff --git a/var/spack/repos/builtin/packages/go/package.py b/var/spack/repos/builtin/packages/go/package.py index 1ed6a1a9b1..008c2be316 100644 --- a/var/spack/repos/builtin/packages/go/package.py +++ b/var/spack/repos/builtin/packages/go/package.py @@ -43,9 +43,11 @@ class Go(Package): maintainers = ['alecbcs'] + version('1.17.3', sha256='705c64251e5b25d5d55ede1039c6aa22bea40a7a931d14c370339853643c3df0') version('1.17.2', sha256='2255eb3e4e824dd7d5fcdc2e7f84534371c186312e546fb1086a34c17752f431') version('1.17.1', sha256='49dc08339770acd5613312db8c141eaf61779995577b89d93b541ef83067e5b1') version('1.17', sha256='3a70e5055509f347c0fb831ca07a2bf3b531068f349b14a3c652e9b5b67beb5d') + version('1.16.10', sha256='a905472011585e403d00d2a41de7ced29b8884309d73482a307f689fd0f320b5') version('1.16.9', sha256='0a1cc7fd7bd20448f71ebed64d846138850d5099b18cf5cc10a4fc45160d8c3d') version('1.16.6', sha256='a3a5d4bc401b51db065e4f93b523347a4d343ae0c0b08a65c3423b05a138037d') version('1.16.5', sha256='7bfa7e5908c7cc9e75da5ddf3066d7cbcf3fd9fa51945851325eebc17f50ba80') diff --git a/var/spack/repos/builtin/packages/goshimmer/package.py b/var/spack/repos/builtin/packages/goshimmer/package.py new file mode 100644 index 0000000000..e440321f57 --- /dev/null +++ b/var/spack/repos/builtin/packages/goshimmer/package.py @@ -0,0 +1,40 @@ +# Copyright 2013-2021 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 Goshimmer(Package): + """GoShimmer is a prototype node for exploring the implementation of IOTA 2.0""" + homepage = 'https://github.com/iotaledger/goshimmer' + url = 'https://github.com/iotaledger/goshimmer/archive/refs/tags/v0.8.0.tar.gz' + + maintainers = ['bernhardkaindl'] + + version('0.8.0', 'ec515deebf0dd35ff76cd98addae9cfcbf4758ab9eb72eb0f6ff4654f2658980') + + depends_on('go@1.16:', type='build') + depends_on('snappy') + depends_on('rocksdb') + depends_on('zstd') + depends_on('zlib') + depends_on('lz4') + + @property + def snapbin(self): + return join_path(self.prefix.bin, 'snapshot.bin') + + def patch(self): + for file in ['tools/genesis-snapshot/main', 'plugins/messagelayer/parameters']: + filter_file('./snapshot.bin', self.snapbin, file + '.go') + + def install(self, spec, prefix): + which('go')('build', '-modcacherw', '-tags', 'rocksdb,netgo') + mkdir(prefix.bin) + install('config.default.json', prefix.bin) + install('goshimmer', prefix.bin) + which('wget')('-O', self.snapbin, + 'https://dbfiles-goshimmer.s3.eu-central-1.amazonaws.com/snapshots/nectar/snapshot-latest.bin') + remove_linked_tree(prefix.pkg) diff --git a/var/spack/repos/builtin/packages/gpgme/package.py b/var/spack/repos/builtin/packages/gpgme/package.py index 7d0695cc28..8522c04552 100644 --- a/var/spack/repos/builtin/packages/gpgme/package.py +++ b/var/spack/repos/builtin/packages/gpgme/package.py @@ -11,12 +11,20 @@ class Gpgme(AutotoolsPackage): functions from programming languages.""" homepage = "https://www.gnupg.org/software/gpgme/index.html" - url = "https://www.gnupg.org/ftp/gcrypt/gpgme/gpgme-1.12.0.tar.bz2" + url = "https://www.gnupg.org/ftp/gcrypt/gpgme/gpgme-1.16.0.tar.bz2" executables = ['^gpgme-config$'] + version('1.16.0', sha256='6c8cc4aedb10d5d4c905894ba1d850544619ee765606ac43df7405865de29ed0') version('1.12.0', sha256='b4dc951c3743a60e2e120a77892e9e864fb936b2e58e7c77e8581f4d050e8cd8') + # https://dev.gnupg.org/T5509 - New test t-edit-sign test crashes with GCC 11.1.0 + patch( + 'https://git.gnupg.org/cgi-bin/gitweb.cgi?p=gpgme.git;a=commitdiff_plain;h=81a33ea5e1b86d586b956e893a5b25c4cd41c969;hp=e8e055e682f8994d62012574e1c8d862ca72a35d', + sha256='b934e3cb0b3408ad27990d97b594c89801a4748294e2eb5804a455a312821411', + when='@1.16.0', + ) + depends_on('gnupg', type='build') depends_on('libgpg-error', type='build') depends_on('libassuan', type='build') @@ -24,3 +32,24 @@ class Gpgme(AutotoolsPackage): @classmethod def determine_version(cls, exe): return Executable(exe)('--version', output=str, error=str).rstrip() + + def configure_args(self): + """Fix the build when incompatible Qt libraries are installed on the host""" + return ['--enable-languages=cpp'] + + def setup_build_environment(self, env): + """Build tests create a public keyring in ~/.gnupg if $HOME is not redirected""" + if self.run_tests: + env.set('HOME', self.build_directory) + env.prepend_path('LD_LIBRARY_PATH', self.spec['libgpg-error'].prefix.lib) + + @property + def make_tests(self): + """Use the Makefile's tests variable to control if the build tests shall run""" + return 'tests=tests' if self.run_tests else 'tests=' + + def build(self, spec, prefix): + make(self.make_tests) + + def install(self, spec, prefix): + make(self.make_tests, 'install') diff --git a/var/spack/repos/builtin/packages/gpi-2/package.py b/var/spack/repos/builtin/packages/gpi-2/package.py index 20ebe86a32..353a46f5e7 100644 --- a/var/spack/repos/builtin/packages/gpi-2/package.py +++ b/var/spack/repos/builtin/packages/gpi-2/package.py @@ -18,7 +18,7 @@ class Gpi2(AutotoolsPackage): url = 'https://github.com/cc-hpc-itwm/GPI-2/archive/refs/tags/v1.5.1.tar.gz' git = 'https://github.com/cc-hpc-itwm/GPI-2.git' - maintainers = ['robert-mijakovic', 'acastanedam'] + maintainers = ['robert-mijakovic', 'acastanedam', 'mzeyen1985'] version('develop', branch='next') version('master', branch='master') @@ -26,6 +26,7 @@ class Gpi2(AutotoolsPackage): version('1.5.1', sha256='4dac7e9152694d2ec4aefd982a52ecc064a8cb8f2c9eab0425428127c3719e2e') version('1.5.0', sha256='ee299ac1c08c38c9e7871d4af745f1075570ddbb708bb62d82257244585e5183') version('1.4.0', sha256='3b8ffb45346b2fe56aaa7ba15a515e62f9dff45a28e6a014248e20094bbe50a1') + version('1.3.3', sha256='923a848009e7dcd9d26c317ede68b50289b2a9297eb10a75dcc34a4d49f3cdcc') version('1.3.2', sha256='83dbfb2e4bed28ef4e2ae430d30505874b4b50252e2f31dc422b3bc191a87ab0') version('1.3.1', sha256='414fa352e7b478442e6f5d0b51ff00deeb4fc705de805676c0e68829f3f30967') version('1.3.0', sha256='ffaa5c6abfbf79aec6389ab7caaa2c8a91bce24fd046d9741418ff815cd445d2') @@ -67,29 +68,29 @@ class Gpi2(AutotoolsPackage): depends_on('slurm', when='schedulers=slurm') conflicts('%gcc@10:', when='@:1.3.2', msg='gcc>10 is not supported') - conflicts('schedulers=slurm', when='@:1.3.2', msg='Slurm is not supported') + conflicts('schedulers=slurm', when='@:1.3.3', msg='Slurm is not supported') def set_specific_cflags(self, spec): - if spec.satisfies('@:1.4.0%gcc@10.1.0:'): + if spec.satisfies('@1.4.0%gcc@10.1.0:'): environ['CFLAGS'] = '-fcommon' # GPI-2 without autotools - @when('@:1.3.2') + @when('@:1.3.3') def autoreconf(self, spec, prefix): touch = which('touch') touch('configure') pass - @when('@:1.3.2') + @when('@:1.3.3') def configure(self, spec, prefix): pass - @when('@:1.3.2') + @when('@:1.3.3') def build(self, spec, prefix): self.old_install(spec, prefix) pass - @when('@:1.3.2') + @when('@:1.3.3') def old_install(self, spec, prefix): spec = self.spec @@ -113,7 +114,7 @@ class Gpi2(AutotoolsPackage): install = which('./install.sh') install(*config_args) - @when('@:1.3.2') + @when('@:1.3.3') def install(self, spec, prefix): pass diff --git a/var/spack/repos/builtin/packages/gptune/package.py b/var/spack/repos/builtin/packages/gptune/package.py new file mode 100644 index 0000000000..e7d952efad --- /dev/null +++ b/var/spack/repos/builtin/packages/gptune/package.py @@ -0,0 +1,173 @@ +# Copyright 2013-2021 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 Gptune(CMakePackage): + """GPTune is an autotuning framework that relies on multitask and transfer + learnings to help solve the underlying black-box optimization problem using + Bayesian optimization methodologies.""" + + homepage = "https://gptune.lbl.gov/" + git = "https://github.com/gptune/GPTune.git" + maintainers = ['liuyangzhuan'] + + version('master', branch='master') + + variant('app', default=False, description='Build all HPC application examples') + + depends_on('mpi', type=('build', 'link', 'run')) + depends_on('cmake@3.3:', type='build') + depends_on('jq', type='run') + depends_on('blas', type='link') + depends_on('lapack', type='link') + depends_on('scalapack', type='link') + depends_on('py-setuptools', type='build') + depends_on('py-ipyparallel', type=('build', 'run')) + depends_on('py-numpy', type=('build', 'run')) + depends_on('py-pandas', type=('build', 'run')) + depends_on('py-joblib', type=('build', 'run')) + depends_on('py-scikit-learn', type=('build', 'run')) + depends_on('py-matplotlib', type=('build', 'run')) + depends_on('py-pyyaml', type=('build', 'run')) + depends_on('py-scikit-optimize@master+gptune', type=('build', 'run')) + depends_on('py-gpy', type=('build', 'run')) + depends_on('py-lhsmdu', type=('build', 'run')) + depends_on('py-hpbandster', type=('build', 'run')) + depends_on('py-opentuner', type=('build', 'run')) + depends_on('py-ytopt-autotune@1.1.0', type=('build', 'run')) + depends_on('py-filelock', type=('build', 'run')) + depends_on('py-requests', type=('build', 'run')) + depends_on('py-cython', type=('build', 'run')) + depends_on('py-pyaml', type=('build', 'run')) + depends_on('py-mpi4py@3.0.3:', type=('build', 'run')) + depends_on('pygmo', type=('build', 'run')) + depends_on('openturns', type=('build', 'run')) + + depends_on('superlu-dist@develop', when='+app', type=('build', 'run')) + + conflicts('openmpi@:3') + + def cmake_args(self): + spec = self.spec + fc_flags = [] + if '%gcc@10:' in spec or self.spec.satisfies('%apple-clang@11:'): + fc_flags.append('-fallow-argument-mismatch') + + args = [ + '-DTPL_BLAS_LIBRARIES=%s' % spec['blas'].libs.joined(";"), + '-DTPL_LAPACK_LIBRARIES=%s' % spec['lapack'].libs.joined(";"), + '-DTPL_SCALAPACK_LIBRARIES=%s' % spec['scalapack']. + libs.joined(";"), + '-DCMAKE_Fortran_FLAGS=' + ''.join(fc_flags), + '-DBUILD_SHARED_LIBS=ON', + ] + + return args + + examples_src_dir = 'examples' + src_dir = 'GPTune' + nodes = 1 + cores = 4 + + @run_after('install') + def cache_test_sources(self): + """Copy the example source files after the package is installed to an + install test subdirectory for use during `spack test run`.""" + self.cache_extra_test_sources([self.examples_src_dir, self.src_dir]) + + def test(self): + spec = self.spec + comp_name = self.compiler.name + comp_version = str(self.compiler.version).replace('.', ',') + test_dir = join_path(self.install_test_root, self.examples_src_dir) + + if '+app' in spec: + superludriver = join_path(spec['superlu-dist'].prefix.bin, 'pddrive_spawn') + op = ['-r', superludriver, '.'] + # copy superlu-dist executables to the correct place + with working_dir(join_path(test_dir, 'SuperLU_DIST'), create=False): + self.run_test('rm', options=['-rf', 'superlu_dist'], work_dir='.') + self.run_test('git', options=['clone', 'https://github.com/xiaoyeli/superlu_dist.git'], work_dir='.') + self.run_test('mkdir', options=['-p', + 'build'], work_dir='./superlu_dist') + self.run_test('mkdir', options=['-p', 'EXAMPLE'], + work_dir='./superlu_dist/build') + self.run_test('cp', options=op, work_dir='./superlu_dist/build/EXAMPLE') + + with working_dir(self.install_test_root, create=False): + cdir = join_path(self.prefix, 'gptuneclcm') + self.run_test('cp', options=['-r', cdir, '.'], work_dir='.') + self.run_test('rm', options=['-rf', 'build'], work_dir='.') + self.run_test('mv', options=['gptuneclcm', 'build'], work_dir='.') + + with open('{0}/run_env.sh'.format(self.install_test_root), 'w') as envfile: + envfile.write('if [[ $NERSC_HOST = "cori" ]]; then\n') + envfile.write(' export machine=cori\n') + envfile.write('elif [[ $(uname -s) = "Darwin" ]]; then\n') + envfile.write(' export machine=mac\n') + envfile.write('elif [[ $(dnsdomainname) = ' + + '"summit.olcf.ornl.gov" ]]; then\n') + envfile.write(' export machine=summit\n') + envfile.write('elif [[ $(cat /etc/os-release | grep "PRETTY_NAME") ==' + + ' *"Ubuntu"* || $(cat /etc/os-release | grep' + + ' "PRETTY_NAME") == *"Debian"* ]]; then\n') + envfile.write(' export machine=unknownlinux\n') + envfile.write('fi\n') + envfile.write('export GPTUNEROOT=$PWD\n') + envfile.write('export MPIRUN={0}\n'.format + (which(spec['mpi'].prefix.bin + '/mpirun'))) + envfile.write('export proc=$(spack arch)\n') + envfile.write('export mpi={0}\n'.format(spec['mpi'].name)) + envfile.write('export compiler={0}\n'.format(comp_name)) + envfile.write('export nodes={0} \n'.format(self.nodes)) + envfile.write('export cores={0} \n'.format(self.cores)) + envfile.write('export ModuleEnv=$machine-$proc-$mpi-$compiler \n') + envfile.write('software_json=$(echo ",\\\"software_configuration\\\":' + + '{\\\"' + spec['blas'].name + + '\\\":{\\\"version_split\\\":' + + ' [' + str(spec['blas'].versions).replace('.', ',') + + ']},\\\"' + spec['mpi'].name + + '\\\":{\\\"version_split\\\": [' + + str(spec['mpi'].versions).replace('.', ',') + ']},\\\"' + + spec['scalapack'].name + + '\\\":{\\\"version_split\\\": [' + + str(spec['scalapack'].versions).replace('.', ',') + + ']},\\\"' + + str(comp_name) + '\\\":{\\\"version_split\\\": [' + + str(comp_version) + ']}}") \n') + envfile.write('loadable_software_json=$(echo ",\\\"loadable_software_' + + 'configurations\\\":{\\\"' + spec['blas'].name + + '\\\":{\\\"version_split\\\": [' + + str(spec['blas'].versions).replace('.', ',') + + ']},\\\"' + spec['mpi'].name + + '\\\":{\\\"version_split\\\": [' + + str(spec['mpi'].versions).replace('.', ',') + ']},\\\"' + + spec['scalapack'].name + + '\\\":{\\\"version_split\\\": [' + + str(spec['scalapack'].versions).replace('.', ',') + + ']},\\\"' + str(comp_name) + + '\\\":{\\\"version_split\\\": [' + + str(comp_version) + ']}}") \n') + envfile.write('machine_json=$(echo ",\\\"machine_configuration\\\":' + + '{\\\"machine_name\\\":\\\"$machine\\\",\\\"$proc\\\":' + + '{\\\"nodes\\\":$nodes,\\\"cores\\\":$cores}}") \n') + envfile.write('loadable_machine_json=$(echo ",\\\"loadable_machine_' + + 'configurations\\\":{\\\"$machine\\\":{\\\"$proc\\\":' + + '{\\\"nodes\\\":$nodes,\\\"cores\\\":$cores}}}") \n') + + if '+app' in spec: + apps = ['GPTune-Demo', 'SuperLU_DIST', 'SuperLU_DIST_RCI', + 'Scalapack-PDGEQRF', 'Scalapack-PDGEQRF_RCI'] + else: + apps = ['GPTune-Demo', 'Scalapack-PDGEQRF', 'Scalapack-PDGEQRF_RCI'] + + for app in apps: + with working_dir(join_path(test_dir, app), create=False): + # PDGEQRF with GPTune + self.run_test('bash', options=['run_examples.sh'], work_dir='.', + purpose='gptune smoke test for {0}'.format(app)) diff --git a/var/spack/repos/builtin/packages/gpu-burn/package.py b/var/spack/repos/builtin/packages/gpu-burn/package.py index 15d2dd5b8f..87a2832842 100644 --- a/var/spack/repos/builtin/packages/gpu-burn/package.py +++ b/var/spack/repos/builtin/packages/gpu-burn/package.py @@ -32,9 +32,9 @@ class GpuBurn(MakefilePackage, CudaPackage): fh.write('drv:\n') fh.write('\tnvcc {0} -fatbin ' 'compare.cu -o compare.ptx\n'.format(archflag)) - fh.write('\tg++ -O3 -c gpu_burn-drv.cpp\n') - fh.write('\tg++ -o gpu_burn gpu_burn-drv.o -O3 -lcuda ' - '-lcublas -lcudart -o gpu_burn\n') + fh.write('\t{0} -O3 -c gpu_burn-drv.cpp\n'.format(spack_cxx)) + fh.write('\t{0} -o gpu_burn gpu_burn-drv.o -O3 -lcuda ' + '-lcublas -lcudart -o gpu_burn\n'.format(spack_cxx)) filter_file('compare.ptx', join_path(prefix.share, diff --git a/var/spack/repos/builtin/packages/grnboost/package.py b/var/spack/repos/builtin/packages/grnboost/package.py index 35a802bf40..dff74e5031 100644 --- a/var/spack/repos/builtin/packages/grnboost/package.py +++ b/var/spack/repos/builtin/packages/grnboost/package.py @@ -22,7 +22,7 @@ class Grnboost(Package): depends_on('sbt', type='build') depends_on('java', type=('build', 'run')) - depends_on('xgboost+jvm-packages', type='run') + depends_on('xgboost', type='run') depends_on('spark+hadoop', type='run') def setup_run_environment(self, env): diff --git a/var/spack/repos/builtin/packages/groff/package.py b/var/spack/repos/builtin/packages/groff/package.py index ce2cc490bc..1525e11d3e 100644 --- a/var/spack/repos/builtin/packages/groff/package.py +++ b/var/spack/repos/builtin/packages/groff/package.py @@ -43,6 +43,7 @@ class Groff(AutotoolsPackage, GNUMirrorPackage): depends_on('texinfo', type='build', when='@1.22.4:') # configure complains when there is no uchardet that enhances preconv depends_on('uchardet', when='@1.22.4:') + depends_on('pkgconfig', type='build') depends_on('libice', when='+x') depends_on('libxaw', when='+x') diff --git a/var/spack/repos/builtin/packages/gromacs-chain-coordinate/package.py b/var/spack/repos/builtin/packages/gromacs-chain-coordinate/package.py index e36660aba4..37be793c1a 100644 --- a/var/spack/repos/builtin/packages/gromacs-chain-coordinate/package.py +++ b/var/spack/repos/builtin/packages/gromacs-chain-coordinate/package.py @@ -3,18 +3,10 @@ # # SPDX-License-Identifier: (Apache-2.0 OR MIT) -# This is a partial copy of Spack Gromacs package -# - modified URL and versions -# - removed Plumed patches -# - calling original patch and cmake-related procedures to not duplicate them -# - simplified variants/dependencies because this fork starts at Gromacs 2021 +from spack.pkg.builtin.gromacs import Gromacs -import os -from spack.pkg.builtin.gromacs import Gromacs as BuiltinGromacs - - -class GromacsChainCoordinate(CMakePackage): +class GromacsChainCoordinate(Gromacs): """ A modification of GROMACS that implements the "chain coordinate", a reaction coordinate for pore formation in membranes and stalk formation between membranes. @@ -26,57 +18,27 @@ class GromacsChainCoordinate(CMakePackage): maintainers = ['w8jcik'] version('main', branch='main') + version('2021.2-0.1', sha256="879fdd04662370a76408b72c9fbc4aff60a6387b459322ac2700d27359d0dd87", url="https://gitlab.com/cbjh/gromacs-chain-coordinate/-/archive/release-2021.chaincoord-0.1/gromacs-chain-coordinate-release-2021.chaincoord-0.1.tar.bz2", preferred=True) - variant('mpi', default=True, - description='Activate MPI support (disable for Thread-MPI support)') - variant('shared', default=True, - description='Enables the build of shared libraries') - variant( - 'double', default=False, - description='Produces a double precision version of the executables') - variant('cuda', default=False, description='Enable CUDA support') - variant('opencl', default=False, description='Enable OpenCL support') - variant('sycl', default=False, description='Enable SYCL support') - variant('nosuffix', default=False, description='Disable default suffixes') - variant('build_type', default='RelWithDebInfo', - description='The build type to build', - values=('Debug', 'Release', 'RelWithDebInfo', 'MinSizeRel', - 'Reference', 'RelWithAssert', 'Profile')) - variant('openmp', default=True, - description='Enables OpenMP at configure time') - variant('hwloc', default=True, - description='Use the hwloc portable hardware locality library') - variant('lapack', default=False, - description='Enables an external LAPACK library') - variant('blas', default=False, - description='Enables an external BLAS library') - variant('cycle_subcounters', default=False, - description='Enables cycle subcounters') + conflicts('+plumed') - depends_on('mpi', when='+mpi') - depends_on('fftw-api@3') - depends_on('cmake@3.16.0:3', type='build') - depends_on('cuda', when='+cuda') - depends_on('sycl', when='+sycl') - depends_on('lapack', when='+lapack') - depends_on('blas', when='+blas') - depends_on('hwloc', when='+hwloc') + def remove_parent_versions(self): + """ + By inheriting GROMACS package we also inherit versions. + They are not valid, so we are removing them. + """ - filter_compiler_wrappers( - '*.cmake', - relative_root=os.path.join('share', 'cmake', 'gromacs_mpi')) - filter_compiler_wrappers( - '*.cmake', - relative_root=os.path.join('share', 'cmake', 'gromacs')) + for version_key in Gromacs.versions.keys(): + if version_key in self.versions: + del self.versions[version_key] - def patch(self): - BuiltinGromacs.patch(self) + def __init__(self, spec): + super(GromacsChainCoordinate, self).__init__(spec) - def cmake_args(self): - return super(GromacsChainCoordinate, self).cmake_args() + self.remove_parent_versions() def check(self): """The default 'test' targets does not compile the test programs""" diff --git a/var/spack/repos/builtin/packages/gromacs-swaxs/gmxDetectCpu-cmake-3.14.patch b/var/spack/repos/builtin/packages/gromacs-swaxs/gmxDetectCpu-cmake-3.14.patch new file mode 100644 index 0000000000..534ac4baab --- /dev/null +++ b/var/spack/repos/builtin/packages/gromacs-swaxs/gmxDetectCpu-cmake-3.14.patch @@ -0,0 +1,11 @@ +--- a/cmake/gmxDetectCpu.cmake ++++ b/cmake/gmxDetectCpu.cmake +@@ -83,7 +83,7 @@ function(gmx_run_cpu_detection TYPE) + set(GCC_INLINE_ASM_DEFINE "-DGMX_X86_GCC_INLINE_ASM=0") + endif() + +- set(_compile_definitions "${GCC_INLINE_ASM_DEFINE} -I${PROJECT_SOURCE_DIR}/src -DGMX_CPUINFO_STANDALONE ${GMX_STDLIB_CXX_FLAGS} -DGMX_TARGET_X86=${GMX_TARGET_X86_VALUE}") ++ set(_compile_definitions ${GCC_INLINE_ASM_DEFINE} -I${PROJECT_SOURCE_DIR}/src -DGMX_CPUINFO_STANDALONE ${GMX_STDLIB_CXX_FLAGS} -DGMX_TARGET_X86=${GMX_TARGET_X86_VALUE}) + set(LINK_LIBRARIES "${GMX_STDLIB_LIBRARIES}") + try_compile(CPU_DETECTION_COMPILED + "${PROJECT_BINARY_DIR}" diff --git a/var/spack/repos/builtin/packages/gromacs-swaxs/gmxDetectSimd-cmake-3.14.patch b/var/spack/repos/builtin/packages/gromacs-swaxs/gmxDetectSimd-cmake-3.14.patch new file mode 100644 index 0000000000..f30ec78a7a --- /dev/null +++ b/var/spack/repos/builtin/packages/gromacs-swaxs/gmxDetectSimd-cmake-3.14.patch @@ -0,0 +1,11 @@ +--- a/cmake/gmxDetectSimd.cmake ++++ b/cmake/gmxDetectSimd.cmake +@@ -77,7 +77,7 @@ function(gmx_suggest_simd _suggested_simd) + else() + set(GMX_TARGET_X86_VALUE 0) + endif() +- set(_compile_definitions "${GCC_INLINE_ASM_DEFINE} -I${CMAKE_SOURCE_DIR}/src -DGMX_CPUINFO_STANDALONE ${GMX_STDLIB_CXX_FLAGS} -DGMX_TARGET_X86=${GMX_TARGET_X86_VALUE}") ++ set(_compile_definitions ${GCC_INLINE_ASM_DEFINE} -I${CMAKE_SOURCE_DIR}/src -DGMX_CPUINFO_STANDALONE ${GMX_STDLIB_CXX_FLAGS} -DGMX_TARGET_X86=${GMX_TARGET_X86_VALUE}) + + # Prepare a default suggestion + set(OUTPUT_SIMD "None") diff --git a/var/spack/repos/builtin/packages/gromacs-swaxs/package.py b/var/spack/repos/builtin/packages/gromacs-swaxs/package.py new file mode 100644 index 0000000000..e1d4e0e80a --- /dev/null +++ b/var/spack/repos/builtin/packages/gromacs-swaxs/package.py @@ -0,0 +1,67 @@ +# Copyright 2013-2021 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.pkg.builtin.gromacs import Gromacs + + +class GromacsSwaxs(Gromacs): + """Modified Gromacs for small-angle scattering calculations (SAXS/WAXS/SANS)""" + + homepage = 'https://biophys.uni-saarland.de/swaxs.html' + url = 'https://gitlab.com/cbjh/gromacs-swaxs/-/archive/release-2019.swaxs-0.1/gromacs-swaxs-release-2019.swaxs-0.1.tar.bz2' + git = 'https://gitlab.com/cbjh/gromacs-swaxs.git' + maintainers = ['w8jcik'] + + version('2021.4-0.1', sha256='eda1c8a7aae6001ef40480addf9fff9cdccc7e2b80480e36d069f50d6f2be26e', + url='https://gitlab.com/cbjh/gromacs-swaxs/-/archive/release-2021.swaxs-0.1/gromacs-swaxs-release-2021.swaxs-0.1.tar.bz2') + + version('2020.6-0.1', sha256='3d8360a3cc9144772786bddaa11e3dbc37d6a466b99f3314bf3928261c2fddcf', + url='https://gitlab.com/cbjh/gromacs-swaxs/-/archive/release-2020.swaxs-0.1/gromacs-swaxs-release-2020.swaxs-0.1.tar.bz2') + + version('2019.6-0.2', sha256='a45eeee3983a4443d3a40ea417770f3abd93f43eb80e021fd9d6830e414565cb', + url='https://gitlab.com/cbjh/gromacs-swaxs/-/archive/release-2019.swaxs-0.2/gromacs-swaxs-release-2019.swaxs-0.2.tar.bz2') + + version('2019.6-0.1', sha256='91da09eed80646d6a1c500be78891bef22623a19795a9bc89adf9f2ec4f85635', + url='https://gitlab.com/cbjh/gromacs-swaxs/-/archive/release-2019.swaxs-0.1/gromacs-swaxs-release-2019.swaxs-0.1.tar.bz2') + + version('2018.8-0.3', sha256='5e94d636fda28e81ff1f3cff2c9f6e7f458bf496f4d1ed7bc10e911bd98b303c', + url='https://gitlab.com/cbjh/gromacs-swaxs/-/archive/release-2018.swaxs-0.3/gromacs-swaxs-release-2018.swaxs-0.3.tar.bz2') + + version('2018.8-0.2', sha256='f8bf0d363334a9117a2a8deb690dadaa826b73b57a761949c7846a13b84b5af5', + url='https://gitlab.com/cbjh/gromacs-swaxs/-/archive/release-2018.swaxs-0.2/gromacs-swaxs-release-2018.swaxs-0.2.tar.bz2') + + version('2018.8-0.1', sha256='478f45286dfedb8f01c2d5bf0773a391c2de2baf85283ef683e911bc43e24675', + url='https://gitlab.com/cbjh/gromacs-swaxs/-/archive/release-2018.swaxs-0.1/gromacs-swaxs-release-2018.swaxs-0.1.tar.bz2') + + version('2016.6-0.1', sha256='11e8ae6b3141f356bae72b595737a1f253b878d313169703ba33a69ded01a04e', + url='https://gitlab.com/cbjh/gromacs-swaxs/-/archive/release-2016.swaxs-0.1/gromacs-swaxs-release-2016.swaxs-0.1.tar.bz2') + + version('5.1.5-0.3', sha256='a9e8382eec3cc0d943e1869f13945ea4a971a95a70eb314c1f26a17fa7d03792', + url='https://gitlab.com/cbjh/gromacs-swaxs/-/archive/release-5-1.swaxs-0.3/gromacs-swaxs-release-5-1.swaxs-0.3.tar.bz2') + + version('5.0.7-0.5', sha256='7f7f69726472a641a5443f1993a6e1fb8cfa9c74aeaf46e8c5d1db37005ece79', + url='https://gitlab.com/cbjh/gromacs-swaxs/-/archive/release-5-0.swaxs-0.5/gromacs-swaxs-release-5-0.swaxs-0.5.tar.bz2') + + version('4.6.7-0.8', sha256='1cfa34fe9ff543b665cd556f3395a9aa67f916110ba70255c97389eafe8315a2', + url='https://gitlab.com/cbjh/gromacs-swaxs/-/archive/release-4-6.swaxs-0.8/gromacs-swaxs-release-4-6.swaxs-0.8.tar.bz2') + + conflicts('+plumed') + conflicts('+opencl') + conflicts('+sycl') + + def remove_parent_versions(self): + """ + By inheriting GROMACS package we also inherit versions. + They are not valid, so we are removing them. + """ + + for version_key in Gromacs.versions.keys(): + if version_key in self.versions: + del self.versions[version_key] + + def __init__(self, spec): + super(GromacsSwaxs, self).__init__(spec) + + self.remove_parent_versions() diff --git a/var/spack/repos/builtin/packages/grpc/package.py b/var/spack/repos/builtin/packages/grpc/package.py index f7ad7d21f9..074ce4137d 100644 --- a/var/spack/repos/builtin/packages/grpc/package.py +++ b/var/spack/repos/builtin/packages/grpc/package.py @@ -55,9 +55,9 @@ class Grpc(CMakePackage): def cmake_args(self): args = [ - define_from_variant('BUILD_SHARED_LIBS', 'shared'), - define_from_variant('gRPC_BUILD_CODEGEN', 'codegen'), - define_from_variant('CMAKE_CXX_STANDARD', 'cxxstd'), + self.define_from_variant('BUILD_SHARED_LIBS', 'shared'), + self.define_from_variant('gRPC_BUILD_CODEGEN', 'codegen'), + self.define_from_variant('CMAKE_CXX_STANDARD', 'cxxstd'), '-DgRPC_BUILD_CSHARP_EXT:Bool=OFF', '-DgRPC_INSTALL:Bool=ON', # Tell grpc to skip vendoring and look for deps via find_package: diff --git a/var/spack/repos/builtin/packages/gtk-doc/package.py b/var/spack/repos/builtin/packages/gtk-doc/package.py index 1cb992b3a5..5cebdafaa6 100644 --- a/var/spack/repos/builtin/packages/gtk-doc/package.py +++ b/var/spack/repos/builtin/packages/gtk-doc/package.py @@ -15,8 +15,9 @@ class GtkDoc(AutotoolsPackage): pdf/man-pages with some extra work.""" homepage = "https://wiki.gnome.org/DocumentationProject/GtkDoc" - url = 'https://gitlab.gnome.org/GNOME/gtk-doc/-/archive/GTK_DOC_1_32/gtk-doc-GTK_DOC_1_32.tar.gz' + url = 'https://gitlab.gnome.org/GNOME/gtk-doc/-/archive/1.33.2/gtk-doc-1.33.2.tar.gz' + version('1.33.2', sha256='2d1b0cbd26edfcb54694b2339106a02a81d630a7dedc357461aeb186874cc7c0') version('1.32', sha256='0890c1f00d4817279be51602e67c4805daf264092adc58f9c04338566e8225ba') # Commented out until package dblatex has been created @@ -26,7 +27,7 @@ class GtkDoc(AutotoolsPackage): depends_on('automake', type='build') depends_on('libtool', type='build') depends_on('m4', type='build') - depends_on('pkgconfig', type='build') + depends_on('pkgconfig@0.19:', type='build') depends_on('python@3.2:', type=('build', 'run')) depends_on('py-pygments', type=('build', 'run')) @@ -35,7 +36,7 @@ class GtkDoc(AutotoolsPackage): depends_on('py-parameterized', type=('test')) depends_on('py-six', type=('test')) depends_on('libxslt') - depends_on('libxml2') + depends_on('libxml2@2.3.6:') depends_on('docbook-xsl@1.78.1') depends_on('docbook-xml@4.3') # depends_on('dblatex', when='+pdf') @@ -57,8 +58,13 @@ class GtkDoc(AutotoolsPackage): def url_for_version(self, version): """Handle gnome's version-based custom URLs.""" - url = 'https://gitlab.gnome.org/GNOME/gtk-doc/-/archive/GTK_DOC_{0}/gtk-doc-GTK_DOC_{0}.tar.gz' - return url.format(version.underscored) + + if version <= Version('1.32'): + url = 'https://gitlab.gnome.org/GNOME/gtk-doc/-/archive/GTK_DOC_{0}/gtk-doc-GTK_DOC_{0}.tar.gz' + return url.format(version.underscored) + + url = 'https://gitlab.gnome.org/GNOME/gtk-doc/-/archive/{0}/gtk-doc-{0}.tar.gz' + return url.format(version) def configure_args(self): args = [ diff --git a/var/spack/repos/builtin/packages/gtkplus/package.py b/var/spack/repos/builtin/packages/gtkplus/package.py index 8bb2a781eb..270b628efa 100644 --- a/var/spack/repos/builtin/packages/gtkplus/package.py +++ b/var/spack/repos/builtin/packages/gtkplus/package.py @@ -61,7 +61,7 @@ class Gtkplus(MesonPackage): '', 'configure', string=True) # https://gitlab.gnome.org/GNOME/gtk/-/issues/3776 - if self.spec.satisfies('%gcc@11:'): + if self.spec.satisfies('@3:%gcc@11:'): filter_file(" '-Werror=array-bounds',", '', 'meson.build', string=True) @@ -114,7 +114,7 @@ class Gtkplus(MesonPackage): @when('@:3.20.10') def meson(self, spec, prefix): - configure(*self.configure_args) + configure(*self.configure_args()) @when('@:3.20.10') def build(self, spec, prefix): @@ -123,3 +123,7 @@ class Gtkplus(MesonPackage): @when('@:3.20.10') def install(self, spec, prefix): make('install') + + def check(self): + """All build time checks open windows in the X server, don't do that""" + pass diff --git a/var/spack/repos/builtin/packages/harfbuzz/package.py b/var/spack/repos/builtin/packages/harfbuzz/package.py index fa384bca57..227c9ccb2a 100644 --- a/var/spack/repos/builtin/packages/harfbuzz/package.py +++ b/var/spack/repos/builtin/packages/harfbuzz/package.py @@ -9,9 +9,10 @@ from spack import * class Harfbuzz(AutotoolsPackage): """The Harfbuzz package contains an OpenType text shaping engine.""" homepage = "https://github.com/harfbuzz/harfbuzz" - url = "https://www.freedesktop.org/software/harfbuzz/release/harfbuzz-0.9.37.tar.bz2" + url = "https://github.com/harfbuzz/harfbuzz/releases/download/2.9.1/harfbuzz-2.9.1.tar.xz" git = "https://github.com/harfbuzz/harfbuzz.git" + version('2.9.1', sha256='0edcc980f526a338452180e701d6aba6323aef457b6686976a7d17ccbddc51cf') version('2.6.8', sha256='6648a571a27f186e47094121f0095e1b809e918b3037c630c7f38ffad86e3035') version('2.3.1', sha256='f205699d5b91374008d6f8e36c59e419ae2d9a7bb8c5d9f34041b9a5abcae468') version('2.1.3', sha256='613264460bb6814c3894e3953225c5357402915853a652d40b4230ce5faf0bee') diff --git a/var/spack/repos/builtin/packages/harminv/package.py b/var/spack/repos/builtin/packages/harminv/package.py index 17f7a3cee9..42a2f6d96c 100644 --- a/var/spack/repos/builtin/packages/harminv/package.py +++ b/var/spack/repos/builtin/packages/harminv/package.py @@ -24,9 +24,11 @@ class Harminv(AutotoolsPackage): def configure_args(self): spec = self.spec + lapack = spec['lapack'].libs + blas = spec['blas'].libs return [ '--enable-shared', - '--with-blas={0}'.format(spec['blas'].prefix.lib), - '--with-lapack={0}'.format(spec['lapack'].prefix.lib), + '--with-blas={0}'.format(blas.ld_flags), + '--with-lapack={0}'.format(lapack.ld_flags), ] diff --git a/var/spack/repos/builtin/packages/hdf-eos5/package.py b/var/spack/repos/builtin/packages/hdf-eos5/package.py index 6d20fce1a0..7e8956de62 100644 --- a/var/spack/repos/builtin/packages/hdf-eos5/package.py +++ b/var/spack/repos/builtin/packages/hdf-eos5/package.py @@ -97,7 +97,7 @@ class HdfEos5(AutotoolsPackage): extra_args.append('--with-hdf5={0}'.format(self.spec['hdf5'].prefix)) if 'szip' in self.spec: extra_args.append('--with-szlib={0}'.format( - self.spec['libszip'].prefix)) + self.spec['szip'].prefix)) if 'zlib' in self.spec: extra_args.append('--with-zlib={0}'.format( self.spec['zlib'].prefix)) diff --git a/var/spack/repos/builtin/packages/hdf5-vol-async/package.py b/var/spack/repos/builtin/packages/hdf5-vol-async/package.py new file mode 100644 index 0000000000..c1ecfc4c85 --- /dev/null +++ b/var/spack/repos/builtin/packages/hdf5-vol-async/package.py @@ -0,0 +1,26 @@ +# Copyright 2013-2021 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 Hdf5VolAsync(CMakePackage): + """This package enables asynchronous IO in HDF5.""" + + homepage = "https://sdm.lbl.gov/" + git = "https://github.com/hpc-io/vol-async" + maintainers = ['hyoklee'] + + version('v1.0') + depends_on('argobots@main') + depends_on('hdf5@develop-1.13+mpi+threadsafe') + + def cmake_args(self): + """Populate cmake arguments for HDF5 VOL.""" + args = [ + self.define('BUILD_SHARED_LIBS:BOOL', True), + self.define('BUILD_TESTING:BOOL=ON', self.run_tests) + ] + return args diff --git a/var/spack/repos/builtin/packages/hdf5-vol-external-passthrough/package.py b/var/spack/repos/builtin/packages/hdf5-vol-external-passthrough/package.py new file mode 100644 index 0000000000..ba06dad2d4 --- /dev/null +++ b/var/spack/repos/builtin/packages/hdf5-vol-external-passthrough/package.py @@ -0,0 +1,26 @@ +# Copyright 2013-2021 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 Hdf5VolExternalPassthrough(CMakePackage): + """Package for HDF5 external pass-through VOL.""" + + homepage = "https://sdm.lbl.gov/" + url = "https://github.com/hpc-io/vol-external-passthrough/archive/refs/tags/v1.0.tar.gz" + git = "https://github.com/hpc-io/vol-external-passthrough.git" + maintainers = ['hyoklee'] + + version('develop', branch='develop') + version('1.0', sha256='99a06d1c31451f8f0c8c10fec112410cda1f951f0eda1bd0ca999d6b35cf7740') + depends_on('hdf5@1.13.0:') + + def cmake_args(self): + args = [ + self.define('BUILD_SHARED_LIBS:BOOL', True), + self.define('BUILD_TESTING:BOOL=ON', self.run_tests) + ] + return args diff --git a/var/spack/repos/builtin/packages/hdf5-vol-log/package.py b/var/spack/repos/builtin/packages/hdf5-vol-log/package.py index c65ff31628..0af7af27cf 100644 --- a/var/spack/repos/builtin/packages/hdf5-vol-log/package.py +++ b/var/spack/repos/builtin/packages/hdf5-vol-log/package.py @@ -15,9 +15,9 @@ class Hdf5VolLog(AutotoolsPackage): git = 'https://github.com/DataLib-ECP/vol-log-based.git' maintainers = ['hyoklee'] - version('master', commit='b13778efd9e0c79135a9d7352104985408078d45') + version('master', commit='28b854e50c53166010d97eccdc23f7f3ef6a5b03') - depends_on('hdf5@1.12.1:') + depends_on('hdf5@1.13.0:') depends_on('autoconf', type='build') depends_on('automake', type='build') depends_on('libtool', type='build') diff --git a/var/spack/repos/builtin/packages/hdf5/package.py b/var/spack/repos/builtin/packages/hdf5/package.py index 26db199cd9..96367cb23b 100644 --- a/var/spack/repos/builtin/packages/hdf5/package.py +++ b/var/spack/repos/builtin/packages/hdf5/package.py @@ -17,7 +17,7 @@ class Hdf5(CMakePackage): """ homepage = "https://portal.hdfgroup.org" - url = "https://support.hdfgroup.org/ftp/HDF5/releases/hdf5-1.10/hdf5-1.10.7/src/hdf5-1.10.7.tar.gz" + url = "https://support.hdfgroup.org/ftp/HDF5/releases/hdf5-1.10/hdf5-1.10.8/src/hdf5-1.10.8.tar.gz" list_url = "https://support.hdfgroup.org/ftp/HDF5/releases" list_depth = 3 git = "https://github.com/HDFGroup/hdf5.git" @@ -35,12 +35,14 @@ class Hdf5(CMakePackage): version('develop-1.10', branch='hdf5_1_10') version('develop-1.8', branch='hdf5_1_8') + version('1.13.0', sha256='3049faf900f0c52e09ea4cddfb83af057615f2fc1cc80eb5202dd57b09820115') version('1.12.1', sha256='79c66ff67e666665369396e9c90b32e238e501f345afd2234186bfb8331081ca') version('1.12.0', sha256='a62dcb276658cb78e6795dd29bf926ed7a9bc4edf6e77025cd2c689a8f97c17a') # HDF5 1.12 broke API compatibility, so we currently prefer the latest # 1.10 release. packages that want later versions of HDF5 should specify, # e.g., depends_on("hdf5@1.12:") to get 1.12 or higher. - version('1.10.7', sha256='7a1a0a54371275ce2dfc5cd093775bb025c365846512961e7e5ceaecb437ef15', preferred=True) + version('1.10.8', sha256='d341b80d380dd763753a0ebe22915e11e87aac4e44a084a850646ff934d19c80', preferred=True) + version('1.10.7', sha256='7a1a0a54371275ce2dfc5cd093775bb025c365846512961e7e5ceaecb437ef15') version('1.10.6', sha256='5f9a3ee85db4ea1d3b1fa9159352aebc2af72732fc2f58c96a3f0768dba0e9aa') version('1.10.5', sha256='6d4ce8bf902a97b050f6f491f4268634e252a63dadd6656a1a9be5b7b7726fa8') version('1.10.4', sha256='8f60dc4dd6ab5fcd23c750d1dc5bca3d0453bdce5c8cdaf0a4a61a9d1122adb2') diff --git a/var/spack/repos/builtin/packages/helib/package.py b/var/spack/repos/builtin/packages/helib/package.py new file mode 100644 index 0000000000..07d141ff54 --- /dev/null +++ b/var/spack/repos/builtin/packages/helib/package.py @@ -0,0 +1,51 @@ +# Copyright 2013-2021 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 Helib(CMakePackage): + """HElib is an open-source (Apache License v2.0) software library that + implements homomorphic encryption (HE). + + Currently available schemes are the implementations of the + Brakerski-Gentry-Vaikuntanathan (BGV) scheme + with bootstrapping and the Approximate Number scheme of Cheon-Kim-Kim-Song + (CKKS), along with many optimizations to make homomorphic evaluation run + faster, focusing mostly on effective use of the Smart-Vercauteren + ciphertext packing techniques and the Gentry-Halevi-Smart optimizations. + """ + + homepage = "https://github.com/homenc/HElib" + url = "https://github.com/homenc/HElib/archive/refs/tags/v2.2.1.tar.gz" + + maintainers = ['wohlbier'] + + version('2.2.1', sha256='cbe030c752c915f1ece09681cadfbe4f140f6752414ab000b4cf076b6c3019e4') + version('2.2.0', sha256='e5f82fb0520a76eafdf5044a1f17f512999479d899da8c34335da5e193699b94') + version('2.1.0', sha256='641af0f602cfc7f5f5b1cfde0652252def2dfaf5f7962c2595cf598663637951') + version('2.0.0', sha256='4e371807fe052ca27dce708ea302495a8dae8d1196e16e86df424fb5b0e40524') + version('1.3.1', sha256='8ef47092f6b15fbb484a21f9184e7d936c360198515b6efb9a55d3dfbc2ea4be') + version('1.3.0', sha256='9f69dc5be9197f9ab8cdd81af9a59c12968a0ee11d595b1b1438707ff5405694') + version('1.2.0', sha256='17e0448a3255ab01a1ebd8382f9d08a318e3d192b56d062a1fd65fbb0aadaf67') + version('1.1.0-beta.0', sha256='6a454b029f3805101f714f50ae5199e2b2b86c1e520a659f130837810eabe4b5') + version('1.1.0', sha256='77a912ed3c86f8bde31b7d476321d0c2d810570c04a60fa95c4bd32a1955b5cf') + version('1.0.2', sha256='b907eaa8381af3d001d7fb8383273f4c652415b3320c11d5be2ad8f19757c998') + + variant('shared', default=False, description='Build shared library.') + depends_on('gmp@6.2.1:') + depends_on('ntl@11.5.1:') + depends_on('ntl+shared', when='+shared') + + def cmake_args(self): + spec = self.spec + args = [ + self.define('ENABLE_TEST', 'ON'), + self.define('GMP_DIR', spec['gmp'].prefix), + self.define('NTL_DIR', spec['ntl'].prefix), + self.define_from_variant('BUILD_SHARED', 'shared') + ] + + return args diff --git a/var/spack/repos/builtin/packages/hiop/package.py b/var/spack/repos/builtin/packages/hiop/package.py index ff76861362..19c774a225 100644 --- a/var/spack/repos/builtin/packages/hiop/package.py +++ b/var/spack/repos/builtin/packages/hiop/package.py @@ -6,7 +6,7 @@ from spack import * -class Hiop(CMakePackage, CudaPackage): +class Hiop(CMakePackage, CudaPackage, ROCmPackage): """HiOp is an optimization solver for solving certain mathematical optimization problems expressed as nonlinear programming problems. HiOp is a lightweight HPC solver that leverages application"s existing @@ -18,6 +18,8 @@ class Hiop(CMakePackage, CudaPackage): maintainers = ['ashermancinelli', 'CameronRutherford'] # Most recent tagged snapshot is the preferred version when profiling. + version('0.5.3', commit='698e8d0fdc0ff9975d8714339ff8c782b70d85f9') + version('0.5.2', commit='662ad76dee1f501f648a8bec9a490cb5881789e9') version('0.5.1', commit='6789bbb55824e68e428c2df1009d647af81f9cf1') version('0.5.0', commit='a39da8025037c7c8ae2eb31234eb80cc73bec2af') version('0.4.6', commit='b72d163d52c9225c3196ceb2baebdc7cf09a69de') @@ -60,15 +62,24 @@ class Hiop(CMakePackage, CudaPackage): depends_on('mpi', when='+mpi') - depends_on('magma', when='+cuda') + depends_on('magma+cuda', when='+cuda') + depends_on('magma+rocm', when='+rocm') depends_on('magma@2.5.4:', when='@0.4:+cuda') depends_on('magma@2.6.1:', when='@0.4.6:+cuda') + depends_on('magma@2.5.4:', when='@0.4:+rocm') + depends_on('magma@2.6.1:', when='@0.4.6:+rocm') depends_on('raja+openmp', when='+raja') depends_on('raja@0.14.0:', when='@0.5.0:+raja') depends_on('raja+cuda', when='+raja+cuda') + depends_on('raja+rocm', when='+raja+rocm') depends_on('umpire', when='+raja') depends_on('umpire+cuda~shared', when='+raja+cuda') + depends_on('umpire+rocm', when='+raja+rocm') + depends_on('umpire@6.0.0:', when='@0.5.0:+raja') + depends_on('hip', when='+rocm') + depends_on('hipblas', when='+rocm') + depends_on('hipsparse', when='+rocm') depends_on('suite-sparse', when='+kron') @@ -87,6 +98,10 @@ class Hiop(CMakePackage, CudaPackage): args = [] spec = self.spec + if spec.satisfies('+rocm') or spec.satisfies('+cuda'): + args.append('-DHIOP_USE_GPU=ON') + args.append('-DHIOP_USE_MAGMA=ON') + args.extend([ self.define('HIOP_BUILD_STATIC', True), self.define('LAPACK_FOUND', True), @@ -95,9 +110,8 @@ class Hiop(CMakePackage, CudaPackage): self.define_from_variant('HIOP_BUILD_SHARED', 'shared'), self.define_from_variant('HIOP_USE_MPI', 'mpi'), self.define_from_variant('HIOP_DEEPCHECKS', 'deepchecking'), - self.define_from_variant('HIOP_USE_GPU', 'cuda'), self.define_from_variant('HIOP_USE_CUDA', 'cuda'), - self.define_from_variant('HIOP_USE_MAGMA', 'cuda'), + self.define_from_variant('HIOP_USE_HIP', 'rocm'), self.define_from_variant('HIOP_USE_RAJA', 'raja'), self.define_from_variant('HIOP_USE_UMPIRE', 'raja'), self.define_from_variant('HIOP_WITH_KRON_REDUCTION', 'kron'), diff --git a/var/spack/repos/builtin/packages/hipblas/link-clients-blas.patch b/var/spack/repos/builtin/packages/hipblas/link-clients-blas.patch new file mode 100644 index 0000000000..18e599d9ab --- /dev/null +++ b/var/spack/repos/builtin/packages/hipblas/link-clients-blas.patch @@ -0,0 +1,24 @@ +diff -r -u a/clients/benchmarks/CMakeLists.txt b/clients/benchmarks/CMakeLists.txt +--- a/clients/benchmarks/CMakeLists.txt 2021-10-28 14:14:41.379987882 -0600 ++++ b/clients/benchmarks/CMakeLists.txt 2021-10-28 13:37:50.409696036 -0600 +@@ -53,7 +53,7 @@ + $<BUILD_INTERFACE:${HIP_INCLUDE_DIRS}> + ) + +-target_link_libraries( hipblas-bench PRIVATE hipblas_fortran_client roc::hipblas cblas lapack) ++target_link_libraries( hipblas-bench PRIVATE hipblas_fortran_client roc::hipblas cblas lapack blas) + + # need mf16c flag for float->half convertion + target_compile_options( hipblas-bench PRIVATE -mf16c) +diff -r -u a/clients/gtest/CMakeLists.txt b/clients/gtest/CMakeLists.txt +--- a/clients/gtest/CMakeLists.txt 2021-10-28 14:14:41.379987882 -0600 ++++ b/clients/gtest/CMakeLists.txt 2021-10-28 13:37:34.609274623 -0600 +@@ -146,7 +146,7 @@ + ${ROCM_PATH}/hsa/include + ) + +-target_link_libraries( hipblas-test PRIVATE roc::hipblas cblas lapack ${GTEST_LIBRARIES} ${Boost_LIBRARIES} hipblas_fortran_client ) ++target_link_libraries( hipblas-test PRIVATE roc::hipblas cblas lapack blas ${GTEST_LIBRARIES} ${Boost_LIBRARIES} hipblas_fortran_client ) + + # need mf16c flag for float->half convertion + target_compile_options( hipblas-test PRIVATE -mf16c ) diff --git a/var/spack/repos/builtin/packages/hipblas/package.py b/var/spack/repos/builtin/packages/hipblas/package.py index e211ea6980..e56c6aa432 100644 --- a/var/spack/repos/builtin/packages/hipblas/package.py +++ b/var/spack/repos/builtin/packages/hipblas/package.py @@ -29,6 +29,16 @@ class Hipblas(CMakePackage): variant('build_type', default='Release', values=("Release", "Debug", "RelWithDebInfo"), description='CMake build type') + depends_on('googletest@1.10.0:', type='test') + depends_on('netlib-lapack@3.7.1:', type='test') + depends_on('boost@1.64.0: cxxstd=14', type='test') + + patch('link-clients-blas.patch', when='@4.3.0:') + + def check(self): + exe = join_path(self.build_directory, 'clients', 'staging', 'hipblas-test') + self.run_test(exe) + for ver in ['3.5.0', '3.7.0', '3.8.0', '3.9.0', '3.10.0', '4.0.0', '4.1.0', '4.2.0', '4.3.0', '4.3.1']: depends_on('hip@' + ver, when='@' + ver) @@ -42,7 +52,7 @@ class Hipblas(CMakePackage): # Make sure find_package(HIP) finds the module. self.define('CMAKE_MODULE_PATH', self.spec['hip'].prefix.cmake), self.define('BUILD_CLIENTS_SAMPLES', 'OFF'), - self.define('BUILD_CLIENTS_TESTS', 'OFF') + self.define('BUILD_CLIENTS_TESTS', self.run_tests) ] # hipblas actually prefers CUDA over AMD GPUs when you have it diff --git a/var/spack/repos/builtin/packages/hpcg/package.py b/var/spack/repos/builtin/packages/hpcg/package.py index faf22d712b..9f3fccd645 100644 --- a/var/spack/repos/builtin/packages/hpcg/package.py +++ b/var/spack/repos/builtin/packages/hpcg/package.py @@ -33,8 +33,12 @@ class Hpcg(AutotoolsPackage): def configure(self, spec, prefix): CXXFLAGS = '-O3 -ffast-math -ftree-vectorize ' - if '%aocc' not in self.spec: + if not spec.satisfies('%aocc') and not spec.satisfies('%cce'): CXXFLAGS += ' -ftree-vectorizer-verbose=0 ' + if spec.satisfies('%cce'): + CXXFLAGS += ' -Rpass=loop-vectorize' + CXXFLAGS += ' -Rpass-missed=loop-vectorize' + CXXFLAGS += ' -Rpass-analysis=loop-vectorize ' if '+openmp' in self.spec: CXXFLAGS += self.compiler.openmp_flag config = [ diff --git a/var/spack/repos/builtin/packages/hpctoolkit/package.py b/var/spack/repos/builtin/packages/hpctoolkit/package.py index 42eaf1aba9..f7d188932b 100644 --- a/var/spack/repos/builtin/packages/hpctoolkit/package.py +++ b/var/spack/repos/builtin/packages/hpctoolkit/package.py @@ -3,6 +3,8 @@ # # SPDX-License-Identifier: (Apache-2.0 OR MIT) +import llnl.util.tty as tty + from spack import * @@ -20,6 +22,8 @@ class Hpctoolkit(AutotoolsPackage): tags = ['e4s'] + test_requires_compiler = True + version('develop', branch='develop') version('master', branch='master') version('2021.10.15', commit='a8f289e4dc87ff98e05cfc105978c09eb2f5ea16') @@ -202,3 +206,36 @@ class Hpctoolkit(AutotoolsPackage): if '+viewer' in spec: env.prepend_path('PATH', spec['hpcviewer'].prefix.bin) env.prepend_path('MANPATH', spec['hpcviewer'].prefix.share.man) + + # Build tests (spack install --run-tests). Disable the default + # spack tests and run autotools 'make check', but only from the + # tests directory. + build_time_test_callbacks = [] + install_time_test_callbacks = [] + + @run_after('install') + @on_package_attributes(run_tests=True) + def check_install(self): + if self.spec.satisfies('@master'): + with working_dir('tests'): + make('check') + else: + tty.warn('spack test for hpctoolkit requires branch master') + + # Post-Install tests (spack test run). These are the same tests + # but with a different Makefile that works outside the build + # directory. + @run_after('install') + def copy_test_files(self): + if self.spec.satisfies('@master'): + self.cache_extra_test_sources(['tests']) + + def test(self): + test_dir = join_path(self.test_suite.current_test_cache_dir, 'tests') + if self.spec.satisfies('@master'): + with working_dir(test_dir): + make('-f', 'Makefile.spack', 'all') + self.run_test('./run-sort', status=[0], installed=False, + purpose='selection sort unit test') + else: + tty.warn('spack test for hpctoolkit requires branch master') diff --git a/var/spack/repos/builtin/packages/hpx/package.py b/var/spack/repos/builtin/packages/hpx/package.py index ab3160fc12..fb062de429 100644 --- a/var/spack/repos/builtin/packages/hpx/package.py +++ b/var/spack/repos/builtin/packages/hpx/package.py @@ -146,6 +146,11 @@ class Hpx(CMakePackage, CudaPackage, ROCmPackage): # Patches and one-off conflicts + # Boost and HIP don't work together in certain versions: + # https://github.com/boostorg/config/issues/392. Boost 1.78.0 and HPX 1.8.0 + # both include a fix. + conflicts("boost@:1.77.0", when="@:1.7 +rocm") + # boost 1.73.0 build problem with HPX 1.4.0 and 1.4.1 # https://github.com/STEllAR-GROUP/hpx/issues/4728#issuecomment-640685308 depends_on('boost@:1.72.0', when='@:1.4') diff --git a/var/spack/repos/builtin/packages/htslib/package.py b/var/spack/repos/builtin/packages/htslib/package.py index ab451ac1fc..8c998b1863 100644 --- a/var/spack/repos/builtin/packages/htslib/package.py +++ b/var/spack/repos/builtin/packages/htslib/package.py @@ -12,6 +12,7 @@ class Htslib(AutotoolsPackage): homepage = "https://github.com/samtools/htslib" url = "https://github.com/samtools/htslib/releases/download/1.13/htslib-1.13.tar.bz2" + version('1.14', sha256='ed221b8f52f4812f810eebe0cc56cd8355a5c9d21c62d142ac05ad0da147935f') version('1.13', sha256='f2407df9f97f0bb6b07656579e41a1ca5100464067b6b21bf962a2ea4b0efd65') version('1.12', sha256='2280141b46e953ba4ae01b98335a84f8e6ccbdb6d5cdbab7f70ee4f7e3b6f4ca') version('1.10.2', sha256='e3b543de2f71723830a1e0472cf5489ec27d0fbeb46b1103e14a11b7177d1939') diff --git a/var/spack/repos/builtin/packages/hwloc/package.py b/var/spack/repos/builtin/packages/hwloc/package.py index a3a8597236..3efa4cd5a2 100644 --- a/var/spack/repos/builtin/packages/hwloc/package.py +++ b/var/spack/repos/builtin/packages/hwloc/package.py @@ -135,6 +135,14 @@ class Hwloc(AutotoolsPackage): if '+opencl' not in self.spec: args.append('--disable-opencl') + # If ROCm libraries are found in system /opt/rocm + # during config stage, hwloc builds itself with + # librocm_smi support. + # This can fail the config tests while building + # OpenMPI due to lack of rpath to librocm_smi + if '+rocm' not in self.spec: + args.append('--disable-rsmi') + if '+netloc' in self.spec: args.append('--enable-netloc') diff --git a/var/spack/repos/builtin/packages/imgui/package.py b/var/spack/repos/builtin/packages/imgui/package.py new file mode 100644 index 0000000000..833a04a6f2 --- /dev/null +++ b/var/spack/repos/builtin/packages/imgui/package.py @@ -0,0 +1,24 @@ +# Copyright 2013-2021 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 Imgui(Package): + """Dear ImGui is a bloat-free graphical user interface library for C++. + + It outputs optimized vertex buffers that you can render anytime in your 3D-pipeline + enabled application. It is fast, portable, renderer agnostic and self-contained + (no external dependencies).""" + + homepage = "https://github.com/ocornut/imgui" + url = "https://github.com/ocornut/imgui/archive/refs/tags/v1.85.tar.gz" + + version('1.85', sha256='7ed49d1f4573004fa725a70642aaddd3e06bb57fcfe1c1a49ac6574a3e895a77') + + def install(self, spec, prefix): + # No specific build process is required. + # You can add the .cpp files to your existing project. + install_tree('.', prefix) diff --git a/var/spack/repos/builtin/packages/intel-daal/package.py b/var/spack/repos/builtin/packages/intel-daal/package.py index df48989c02..a979848fb7 100644 --- a/var/spack/repos/builtin/packages/intel-daal/package.py +++ b/var/spack/repos/builtin/packages/intel-daal/package.py @@ -9,6 +9,8 @@ from spack import * class IntelDaal(IntelPackage): """Intel Data Analytics Acceleration Library.""" + maintainers = ['rscohn2'] + homepage = "https://software.intel.com/en-us/daal" version('2020.2.254', sha256='08528bc150dad312ff2ae88ce12d6078ed8ba2f378f4bf3daf0fbbb9657dce1e', diff --git a/var/spack/repos/builtin/packages/intel-llvm/package.py b/var/spack/repos/builtin/packages/intel-llvm/package.py index f14094eba4..b6df7c12e9 100644 --- a/var/spack/repos/builtin/packages/intel-llvm/package.py +++ b/var/spack/repos/builtin/packages/intel-llvm/package.py @@ -10,6 +10,8 @@ class IntelLlvm(CMakePackage): """Intel's version of the LLVM compiler. """ + maintainers = ['rscohn2'] + homepage = 'https://github.com/intel/llvm' git = 'https://github.com/intel/llvm.git' diff --git a/var/spack/repos/builtin/packages/intel-mkl/package.py b/var/spack/repos/builtin/packages/intel-mkl/package.py index d7050b03b7..be2e7368fa 100644 --- a/var/spack/repos/builtin/packages/intel-mkl/package.py +++ b/var/spack/repos/builtin/packages/intel-mkl/package.py @@ -11,6 +11,8 @@ from spack import * class IntelMkl(IntelPackage): """Intel Math Kernel Library.""" + maintainers = ['rscohn2'] + homepage = "https://software.intel.com/en-us/intel-mkl" version('2020.4.304', sha256='2314d46536974dbd08f2a4e4f9e9a155dc7e79e2798c74e7ddfaad00a5917ea5', diff --git a/var/spack/repos/builtin/packages/intel-mpi/package.py b/var/spack/repos/builtin/packages/intel-mpi/package.py index e8e20af1cb..91eaf9b4a6 100644 --- a/var/spack/repos/builtin/packages/intel-mpi/package.py +++ b/var/spack/repos/builtin/packages/intel-mpi/package.py @@ -9,6 +9,8 @@ from spack import * class IntelMpi(IntelPackage): """Intel MPI""" + maintainers = ['rscohn2'] + homepage = "https://software.intel.com/en-us/intel-mpi-library" version('2019.10.317', sha256='28e1b615e63d2170a99feedc75e3b0c5a7e1a07dcdaf0a4181831b07817a5346', @@ -57,6 +59,9 @@ class IntelMpi(IntelPackage): provides('mpi') + variant('external-libfabric', default=False, description='Enable external libfabric dependency') + depends_on('libfabric', when='+external-libfabric', type=('build', 'link', 'run')) + def setup_dependent_build_environment(self, *args): # Handle in callback, conveying client's compilers in additional arg. # CAUTION - DUP code in: diff --git a/var/spack/repos/builtin/packages/intel-oneapi-advisor/package.py b/var/spack/repos/builtin/packages/intel-oneapi-advisor/package.py index d85c5f3358..bf9bed4497 100644 --- a/var/spack/repos/builtin/packages/intel-oneapi-advisor/package.py +++ b/var/spack/repos/builtin/packages/intel-oneapi-advisor/package.py @@ -19,6 +19,10 @@ class IntelOneapiAdvisor(IntelOneApiPackage): homepage = 'https://software.intel.com/content/www/us/en/develop/tools/oneapi/components/advisor.html' if platform.system() == 'Linux': + version('2022.0.0', + url='https://registrationcenter-download.intel.com/akdlm/irc_nas/18369/l_oneapi_advisor_p_2022.0.0.92_offline.sh', + sha256='f1c4317c2222c56fb2e292513f7eec7ec27eb1049d3600cb975bc08ed1477993', + expand=False) version('2021.4.0', url='https://registrationcenter-download.intel.com/akdlm/irc_nas/18220/l_oneapi_advisor_p_2021.4.0.389_offline.sh', sha256='dd948f7312629d9975e12a57664f736b8e011de948771b4c05ad444438532be8', diff --git a/var/spack/repos/builtin/packages/intel-oneapi-ccl/package.py b/var/spack/repos/builtin/packages/intel-oneapi-ccl/package.py index 1806b7ff40..1e4d1f8ee6 100644 --- a/var/spack/repos/builtin/packages/intel-oneapi-ccl/package.py +++ b/var/spack/repos/builtin/packages/intel-oneapi-ccl/package.py @@ -18,6 +18,10 @@ class IntelOneapiCcl(IntelOneApiLibraryPackage): depends_on('intel-oneapi-mpi') if platform.system() == 'Linux': + version('2021.5.0', + url='https://registrationcenter-download.intel.com/akdlm/irc_nas/18371/l_oneapi_ccl_p_2021.5.0.478_offline.sh', + sha256='47584ad0269fd13bcfbc2cd0bb029bdcc02b723070abcb3d5e57f9586f4e74f8', + expand=False) version('2021.4.0', url='https://registrationcenter-download.intel.com/akdlm/irc_nas/18188/l_oneapi_ccl_p_2021.4.0.433_offline.sh', sha256='004031629d97ef99267d8ea962b666dc4be1560d7d32bd510f97bc81d9251ef6', diff --git a/var/spack/repos/builtin/packages/intel-oneapi-compilers/package.py b/var/spack/repos/builtin/packages/intel-oneapi-compilers/package.py index cc53b757d2..debac97dd3 100644 --- a/var/spack/repos/builtin/packages/intel-oneapi-compilers/package.py +++ b/var/spack/repos/builtin/packages/intel-oneapi-compilers/package.py @@ -22,6 +22,16 @@ class IntelOneapiCompilers(IntelOneApiPackage): depends_on('patchelf', type='build') if platform.system() == 'Linux': + version('2022.0.1', + url='https://registrationcenter-download.intel.com/akdlm/irc_nas/18435/l_dpcpp-cpp-compiler_p_2022.0.1.71_offline.sh', + sha256='c7cddc64c3040eece2dcaf48926ba197bb27e5a46588b1d7b3beddcdc379926a', + expand=False) + resource(name='fortran-installer', + url='https://registrationcenter-download.intel.com/akdlm/irc_nas/18436/l_fortran-compiler_p_2022.0.1.70_offline.sh', + sha256='2cb28a04f93554bfeffd6cad8bd0e7082735f33d73430655dea86df8933f50d1', + expand=False, + placement='fortran-installer', + when='@2022.0.1') version('2021.4.0', url='https://registrationcenter-download.intel.com/akdlm/irc_nas/18209/l_dpcpp-cpp-compiler_p_2021.4.0.3201_offline.sh', sha256='9206bff1c2fdeb1ca0d5f79def90dcf3e6c7d5711b9b5adecd96a2ba06503828', diff --git a/var/spack/repos/builtin/packages/intel-oneapi-dal/package.py b/var/spack/repos/builtin/packages/intel-oneapi-dal/package.py index b6c48132ea..5e3f2b5c51 100644 --- a/var/spack/repos/builtin/packages/intel-oneapi-dal/package.py +++ b/var/spack/repos/builtin/packages/intel-oneapi-dal/package.py @@ -17,6 +17,10 @@ class IntelOneapiDal(IntelOneApiLibraryPackage): homepage = 'https://software.intel.com/content/www/us/en/develop/tools/oneapi/components/onedal.html' if platform.system() == 'Linux': + version('2021.5.1', + url='https://registrationcenter-download.intel.com/akdlm/irc_nas/18432/l_daal_oneapi_p_2021.5.1.803_offline.sh', + sha256='bba7bee3caef14fbb54ad40615222e5da429496455edf7375f11fd84a72c87ba', + expand=False) version('2021.4.0', url='https://registrationcenter-download.intel.com/akdlm/irc_nas/18218/l_daal_oneapi_p_2021.4.0.729_offline.sh', sha256='61da9d2a40c75edadff65d052fd84ef3db1da5d94f86ad3956979e6988549dda', diff --git a/var/spack/repos/builtin/packages/intel-oneapi-dnn/package.py b/var/spack/repos/builtin/packages/intel-oneapi-dnn/package.py index 123ca60e1a..0bc921501a 100644 --- a/var/spack/repos/builtin/packages/intel-oneapi-dnn/package.py +++ b/var/spack/repos/builtin/packages/intel-oneapi-dnn/package.py @@ -17,6 +17,10 @@ class IntelOneapiDnn(IntelOneApiLibraryPackage): homepage = 'https://software.intel.com/content/www/us/en/develop/tools/oneapi/components/onednn.html' if platform.system() == 'Linux': + version('2022.0.1', + url='https://registrationcenter-download.intel.com/akdlm/irc_nas/18441/l_onednn_p_2022.0.1.26_offline.sh', + sha256='8339806300d83d2629952e6e2f2758b52f517c072a20b7b7fc5642cf1e2a5410', + expand=False) version('2021.4.0', url='https://registrationcenter-download.intel.com/akdlm/irc_nas/18221/l_onednn_p_2021.4.0.467_offline.sh', sha256='30cc601467f6a94b3d7e14f4639faf0b12fdf6d98df148b07acdb4dfdfb971db', diff --git a/var/spack/repos/builtin/packages/intel-oneapi-dpl/package.py b/var/spack/repos/builtin/packages/intel-oneapi-dpl/package.py index 954c57586b..68c2de4a33 100644 --- a/var/spack/repos/builtin/packages/intel-oneapi-dpl/package.py +++ b/var/spack/repos/builtin/packages/intel-oneapi-dpl/package.py @@ -17,6 +17,10 @@ class IntelOneapiDpl(IntelOneApiLibraryPackage): homepage = 'https://github.com/oneapi-src/oneDPL' if platform.system() == 'Linux': + version('2021.6.0', + url='https://registrationcenter-download.intel.com/akdlm/irc_nas/18372/l_oneDPL_p_2021.6.0.501_offline.sh', + sha256='0225f133a6c38b36d08635986870284a958e5286c55ca4b56a4058bd736f8f4f', + expand=False) version('2021.5.0', url='https://registrationcenter-download.intel.com/akdlm/irc_nas/18189/l_oneDPL_p_2021.5.0.445_offline.sh', sha256='7d4adf300a18f779c3ab517070c61dba10e3952287d5aef37c38f739e9041a68', diff --git a/var/spack/repos/builtin/packages/intel-oneapi-inspector/package.py b/var/spack/repos/builtin/packages/intel-oneapi-inspector/package.py index 60c853886a..bcf5d64cd0 100644 --- a/var/spack/repos/builtin/packages/intel-oneapi-inspector/package.py +++ b/var/spack/repos/builtin/packages/intel-oneapi-inspector/package.py @@ -17,6 +17,10 @@ class IntelOneapiInspector(IntelOneApiPackage): homepage = 'https://software.intel.com/content/www/us/en/develop/tools/oneapi/components/inspector.html' if platform.system() == 'Linux': + version('2022.0.0', + url='https://registrationcenter-download.intel.com/akdlm/irc_nas/18363/l_inspector_oneapi_p_2022.0.0.56_offline.sh', + sha256='79a0eb2ae3f1de1e3456076685680c468702922469c3fda3e074718fb0bea741', + expand=False) version('2021.4.0', url='https://registrationcenter-download.intel.com/akdlm/irc_nas/18239/l_inspector_oneapi_p_2021.4.0.266_offline.sh', sha256='c8210cbcd0e07cc75e773249a5e4a02cf34894ec80a213939f3a20e6c5705274', diff --git a/var/spack/repos/builtin/packages/intel-oneapi-ipp/package.py b/var/spack/repos/builtin/packages/intel-oneapi-ipp/package.py index c6c4de62e6..0d36f01ee3 100644 --- a/var/spack/repos/builtin/packages/intel-oneapi-ipp/package.py +++ b/var/spack/repos/builtin/packages/intel-oneapi-ipp/package.py @@ -16,6 +16,10 @@ class IntelOneapiIpp(IntelOneApiLibraryPackage): homepage = 'https://software.intel.com/content/www/us/en/develop/tools/oneapi/components/ipp.html' if platform.system() == 'Linux': + version('2021.5.1', + url='https://registrationcenter-download.intel.com/akdlm/irc_nas/18440/l_ipp_oneapi_p_2021.5.1.522_offline.sh', + sha256='be99f9b0b2cc815e017188681ab997f3ace94e3010738fa6f702f2416dac0de4', + expand=False) version('2021.4.0', url='https://registrationcenter-download.intel.com/akdlm/irc_nas/18219/l_ipp_oneapi_p_2021.4.0.459_offline.sh', sha256='1a7a8fe5502ae61c10f5c432b7662c6fa542e5832a40494eb1c3a2d8e27c9f3e', diff --git a/var/spack/repos/builtin/packages/intel-oneapi-ippcp/package.py b/var/spack/repos/builtin/packages/intel-oneapi-ippcp/package.py index 51b3b807c7..725a718fc0 100644 --- a/var/spack/repos/builtin/packages/intel-oneapi-ippcp/package.py +++ b/var/spack/repos/builtin/packages/intel-oneapi-ippcp/package.py @@ -17,6 +17,10 @@ class IntelOneapiIppcp(IntelOneApiLibraryPackage): homepage = 'https://software.intel.com/content/www/us/en/develop/tools/oneapi/components/ipp.html' if platform.system() == 'Linux': + version('2021.5.0', + url='https://registrationcenter-download.intel.com/akdlm/irc_nas/18364/l_ippcp_oneapi_p_2021.5.0.445_offline.sh', + sha256='e71aee288cc970b9c9fe21f7d5c300dbc2a4ea0687c7028f200d6b87e6c895a1', + expand=False) version('2021.4.0', url='https://registrationcenter-download.intel.com/akdlm/irc_nas/18187/l_ippcp_oneapi_p_2021.4.0.401_offline.sh', sha256='2ca2320f733ee75b4a27865185a1b0730879fe2c47596e570b1bd50d0b8ac608', diff --git a/var/spack/repos/builtin/packages/intel-oneapi-mkl/package.py b/var/spack/repos/builtin/packages/intel-oneapi-mkl/package.py index 2a5e283602..4aa5fb18cf 100644 --- a/var/spack/repos/builtin/packages/intel-oneapi-mkl/package.py +++ b/var/spack/repos/builtin/packages/intel-oneapi-mkl/package.py @@ -17,6 +17,10 @@ class IntelOneapiMkl(IntelOneApiLibraryPackage): homepage = 'https://software.intel.com/content/www/us/en/develop/tools/oneapi/components/onemkl.html' if platform.system() == 'Linux': + version('2022.0.1', + url='https://registrationcenter-download.intel.com/akdlm/irc_nas/18444/l_onemkl_p_2022.0.1.117_offline.sh', + sha256='22afafbe2f3762eca052ac21ec40b845ff2f3646077295c88c2f37f80a0cc160', + expand=False) version('2021.4.0', url='https://registrationcenter-download.intel.com/akdlm/irc_nas/18222/l_onemkl_p_2021.4.0.640_offline.sh', sha256='9ad546f05a421b4f439e8557fd0f2d83d5e299b0d9bd84bdd86be6feba0c3915', @@ -34,13 +38,18 @@ class IntelOneapiMkl(IntelOneApiLibraryPackage): sha256='818b6bd9a6c116f4578cda3151da0612ec9c3ce8b2c8a64730d625ce5b13cc0c', expand=False) + variant('shared', default=True, description='Builds shared library') variant('ilp64', default=False, description='Build with ILP64 support') + variant('cluster', default=False, + description='Build with cluster support: scalapack, blacs, etc') depends_on('intel-oneapi-tbb') + # cluster libraries need mpi + depends_on('mpi', when='+cluster') provides('fftw-api@3') - provides('scalapack') + provides('scalapack', when='+cluster') provides('mkl') provides('lapack') provides('blas') @@ -59,10 +68,31 @@ class IntelOneapiMkl(IntelOneApiLibraryPackage): include_path = join_path(self.component_path, 'include') return find_headers('*', include_path) + # provide cluster libraries if +cluster variant is used or + # the scalapack virtual package was requested + def cluster(self): + return '+cluster' in self.spec + @property def libs(self): - mkl_libs = [self.xlp64_lib('libmkl_intel'), 'libmkl_sequential', 'libmkl_core'] + shared = '+shared' in self.spec + mkl_libs = [] + if self.cluster(): + mkl_libs += [self.xlp64_lib('libmkl_scalapack'), + 'libmkl_cdft_core'] + mkl_libs += [self.xlp64_lib('libmkl_intel'), + 'libmkl_sequential', + 'libmkl_core'] + if self.cluster(): + mkl_libs += [self.xlp64_lib('libmkl_blacs_intelmpi')] libs = find_libraries(mkl_libs, - join_path(self.component_path, 'lib', 'intel64')) - libs += find_system_libraries(['libpthread', 'libm', 'libdl']) - return libs + join_path(self.component_path, 'lib', 'intel64'), + shared=shared) + system_libs = find_system_libraries(['libpthread', 'libm', 'libdl']) + if shared: + return libs + system_libs + else: + return IntelOneApiStaticLibraryList(libs, system_libs) + + def setup_dependent_build_environment(self, env, dependent_spec): + env.set('MKLROOT', self.component_path) diff --git a/var/spack/repos/builtin/packages/intel-oneapi-mpi/package.py b/var/spack/repos/builtin/packages/intel-oneapi-mpi/package.py index 2672613c5a..52977eac3e 100644 --- a/var/spack/repos/builtin/packages/intel-oneapi-mpi/package.py +++ b/var/spack/repos/builtin/packages/intel-oneapi-mpi/package.py @@ -4,9 +4,7 @@ # SPDX-License-Identifier: (Apache-2.0 OR MIT) -import glob import platform -import subprocess from spack import * @@ -19,6 +17,10 @@ class IntelOneapiMpi(IntelOneApiLibraryPackage): homepage = 'https://software.intel.com/content/www/us/en/develop/tools/oneapi/components/mpi-library.html' if platform.system() == 'Linux': + version('2021.5.0', + url='https://registrationcenter-download.intel.com/akdlm/irc_nas/18370/l_mpi_oneapi_p_2021.5.0.495_offline.sh', + sha256='3aae53fe77f7c6aac7a32b299c25d6ca9a00ba4e2d512a26edd90811e59e7471', + expand=False) version('2021.4.0', url='https://registrationcenter-download.intel.com/akdlm/irc_nas/18186/l_mpi_oneapi_p_2021.4.0.441_offline.sh', sha256='cc4b7072c61d0bd02b1c431b22d2ea3b84b967b59d2e587e77a9e7b2c24f2a29', @@ -38,11 +40,11 @@ class IntelOneapiMpi(IntelOneApiLibraryPackage): variant('ilp64', default=False, description='Build with ILP64 support') + variant('external-libfabric', default=False, description='Enable external libfabric dependency') + depends_on('libfabric', when='+external-libfabric', type=('link', 'run')) provides('mpi@:3.1') - depends_on('patchelf', type='build') - @property def component_dir(self): return 'mpi' @@ -87,17 +89,19 @@ class IntelOneapiMpi(IntelOneApiLibraryPackage): libs += find_libraries(['libmpicxx', 'libmpifort'], lib_dir) libs += find_libraries('libmpi', release_lib_dir) libs += find_system_libraries(['libdl', 'librt', 'libpthread']) + + # Find libfabric for libmpi.so + if '+external-libfabric' in self.spec: + libs += self.spec['libfabric'].libs + else: + libs += find_libraries(['libfabric'], + join_path(self.component_path, 'libfabric', 'lib')) + return libs def install(self, spec, prefix): super(IntelOneapiMpi, self).install(spec, prefix) - # Patch libmpi.so rpath so it can find libfabric - libfabric_rpath = join_path(self.component_path, 'libfabric', 'lib') - for libmpi in glob.glob(join_path(self.component_path, - 'lib', '**', 'libmpi*.so')): - subprocess.call(['patchelf', '--set-rpath', libfabric_rpath, libmpi]) - # When spack builds from source # fix I_MPI_SUBSTITUTE_INSTALLDIR and # __EXEC_PREFIX_TO_BE_FILLED_AT_INSTALL_TIME__ diff --git a/var/spack/repos/builtin/packages/intel-oneapi-tbb/package.py b/var/spack/repos/builtin/packages/intel-oneapi-tbb/package.py index e0af8ccc60..a2b3e4a2e6 100644 --- a/var/spack/repos/builtin/packages/intel-oneapi-tbb/package.py +++ b/var/spack/repos/builtin/packages/intel-oneapi-tbb/package.py @@ -17,6 +17,10 @@ class IntelOneapiTbb(IntelOneApiLibraryPackage): homepage = 'https://software.intel.com/content/www/us/en/develop/tools/oneapi/components/onetbb.html' if platform.system() == 'Linux': + version('2021.5.0', + url='https://registrationcenter-download.intel.com/akdlm/irc_nas/18380/l_tbb_oneapi_p_2021.5.0.707_offline.sh', + sha256='6ff7890a74a43ae02e0fa2d9c5533fce70a49dff8e73278b546a0995367fec5e', + expand=False) version('2021.4.0', url='https://registrationcenter-download.intel.com/akdlm/irc_nas/18194/l_tbb_oneapi_p_2021.4.0.643_offline.sh', sha256='33332012ff8ffe7987b1a20bea794d76f7d8050ccff04fa6e1990974c336ee24', diff --git a/var/spack/repos/builtin/packages/intel-oneapi-vpl/package.py b/var/spack/repos/builtin/packages/intel-oneapi-vpl/package.py index d7f404e419..5a5195972a 100644 --- a/var/spack/repos/builtin/packages/intel-oneapi-vpl/package.py +++ b/var/spack/repos/builtin/packages/intel-oneapi-vpl/package.py @@ -16,6 +16,10 @@ class IntelOneapiVpl(IntelOneApiLibraryPackage): homepage = 'https://software.intel.com/content/www/us/en/develop/tools/oneapi/components/onevpl.html' if platform.system() == 'Linux': + version('2022.0.0', + url='https://registrationcenter-download.intel.com/akdlm/irc_nas/18375/l_oneVPL_p_2022.0.0.58_offline.sh', + sha256='600b8566e1aa523b97291bed6b08f69a04bc7c4c75c035942a64a38f45a1a7f0', + expand=False) version('2021.6.0', url='https://registrationcenter-download.intel.com/akdlm/irc_nas/18190/l_oneVPL_p_2021.6.0.458_offline.sh', sha256='40c50008be3f03d17cc8c0c34324593c1d419ee4c45af5543aa5a2d5fb11071f', diff --git a/var/spack/repos/builtin/packages/intel-oneapi-vtune/package.py b/var/spack/repos/builtin/packages/intel-oneapi-vtune/package.py index dd1b0317ad..872d1bdde9 100644 --- a/var/spack/repos/builtin/packages/intel-oneapi-vtune/package.py +++ b/var/spack/repos/builtin/packages/intel-oneapi-vtune/package.py @@ -19,6 +19,10 @@ class IntelOneapiVtune(IntelOneApiPackage): homepage = 'https://software.intel.com/content/www/us/en/develop/tools/oneapi/components/vtune-profiler.html' if platform.system() == 'Linux': + version('2022.0.0', + url='https://registrationcenter-download.intel.com/akdlm/irc_nas/18406/l_oneapi_vtune_p_2022.0.0.94_offline.sh', + sha256='aa4d575c22e7be0c950b87d67d9e371f470f682906864c4f9b68e530ecd22bd7', + expand=False) version('2021.7.1', url='https://registrationcenter-download.intel.com/akdlm/irc_nas/18086/l_oneapi_vtune_p_2021.7.1.492_offline.sh', sha256='4cf17078ae6e09f26f70bd9d0b726af234cc30c342ae4a8fda69941b40139b26', diff --git a/var/spack/repos/builtin/packages/intel-tbb/package.py b/var/spack/repos/builtin/packages/intel-tbb/package.py index d0a66395d2..eaeac3339e 100644 --- a/var/spack/repos/builtin/packages/intel-tbb/package.py +++ b/var/spack/repos/builtin/packages/intel-tbb/package.py @@ -21,6 +21,8 @@ class IntelTbb(CMakePackage): url_prefix = 'https://github.com/oneapi-src/oneTBB/' url = url_prefix + 'archive/v2020.1.tar.gz' + maintainers = ['rscohn2'] + # Note: when adding new versions, please check and update the # patches, filters and url_for_version() below as needed. diff --git a/var/spack/repos/builtin/packages/interproscan/package.py b/var/spack/repos/builtin/packages/interproscan/package.py index 5639f6caf1..b9d764f160 100644 --- a/var/spack/repos/builtin/packages/interproscan/package.py +++ b/var/spack/repos/builtin/packages/interproscan/package.py @@ -39,6 +39,7 @@ class Interproscan(Package): depends_on('perl-xml-parser', when='@:4.8', type=('build', 'run')) depends_on('perl-io-string', when='@:4.8', type=('build', 'run')) depends_on('perl-io-stringy', when='@:4.8', type=('build', 'run')) + depends_on('perl-db-file', when='@:4.8', type=('build', 'run')) patch('large-gid.patch', when='@5:') patch('non-interactive.patch', when='@:4.8') diff --git a/var/spack/repos/builtin/packages/ip/package.py b/var/spack/repos/builtin/packages/ip/package.py index 52fdecf927..1fccdce7a7 100644 --- a/var/spack/repos/builtin/packages/ip/package.py +++ b/var/spack/repos/builtin/packages/ip/package.py @@ -19,3 +19,10 @@ class Ip(CMakePackage): version('3.3.3', sha256='d5a569ca7c8225a3ade64ef5cd68f3319bcd11f6f86eb3dba901d93842eb3633') depends_on('sp') + + def setup_run_environment(self, env): + for suffix in ('4', '8', 'd'): + lib = find_libraries('libip_4', root=self.prefix, + shared=False, recursive=True) + env.set('IP_LIB' + suffix, lib[0]) + env.set('IP_INC' + suffix, join_path(self.prefix, 'include_' + suffix)) diff --git a/var/spack/repos/builtin/packages/ip2/package.py b/var/spack/repos/builtin/packages/ip2/package.py index aac5c0b538..ef7577dc1f 100644 --- a/var/spack/repos/builtin/packages/ip2/package.py +++ b/var/spack/repos/builtin/packages/ip2/package.py @@ -22,3 +22,10 @@ class Ip2(CMakePackage): version('1.1.2', sha256='73c6beec8fd463ec7ccba3633d8c5d53d385c43d507367efde918c2db0af42ab') depends_on('sp') + + def setup_run_environment(self, env): + for suffix in ('4', '8', 'd'): + lib = find_libraries('libip2_' + suffix, root=self.prefix, + shared=False, recursive=True) + env.set('IP2_LIB' + suffix, lib[0]) + env.set('IP2_INC' + suffix, join_path(self.prefix, 'include_' + suffix)) diff --git a/var/spack/repos/builtin/packages/isaac-server/arm.patch b/var/spack/repos/builtin/packages/isaac-server/arm.patch index 895fa3d57f..895fa3d57f 100755..100644 --- a/var/spack/repos/builtin/packages/isaac-server/arm.patch +++ b/var/spack/repos/builtin/packages/isaac-server/arm.patch diff --git a/var/spack/repos/builtin/packages/isescan/package.py b/var/spack/repos/builtin/packages/isescan/package.py index 44394d284e..96531d9804 100644 --- a/var/spack/repos/builtin/packages/isescan/package.py +++ b/var/spack/repos/builtin/packages/isescan/package.py @@ -22,7 +22,7 @@ class Isescan(Package): depends_on('py-fastcluster', type='run') depends_on('py-argparse', type='run') depends_on('blast-plus@2.2.31:', type='run') - depends_on('fraggenescan@1.30:', type='run') + depends_on('fraggenescan@:1.30', type='run') depends_on('hmmer@3.1b2:', type='run') def setup_run_environment(self, env): diff --git a/var/spack/repos/builtin/packages/jq/builtinc.patch b/var/spack/repos/builtin/packages/jq/builtinc.patch new file mode 100644 index 0000000000..943edbc9d2 --- /dev/null +++ b/var/spack/repos/builtin/packages/jq/builtinc.patch @@ -0,0 +1,48 @@ +diff --git a/src/builtin.c b/src/builtin.c +old mode 100644 +new mode 100755 +index c6c8c2e..e336472 +--- a/src/builtin.c ++++ b/src/builtin.c +@@ -185,7 +185,7 @@ static jv f_modf(jq_state *jq, jv input) { + return jv_array_append(ret, jv_number(i)); + } + #endif +-#ifdef HAVE_LGAMMA_R ++#if defined(HAVE_LGAMMA_R) && !(defined(__APPLE__) && defined(__GNUC__) && !defined(_REENTRANT)) + static jv f_lgamma_r(jq_state *jq, jv input) { + if (jv_get_kind(input) != JV_KIND_NUMBER) { + return type_error(input, "number required"); +@@ -1581,7 +1581,7 @@ static const struct cfunction function_list[] = { + #ifdef HAVE_MODF + {(cfunction_ptr)f_modf,"modf", 1}, + #endif +-#ifdef HAVE_LGAMMA_R ++#if defined(HAVE_LGAMMA_R) && !(defined(__APPLE__) && defined(__GNUC__) && !defined(_REENTRANT)) + {(cfunction_ptr)f_lgamma_r,"lgamma_r", 1}, + #endif + {(cfunction_ptr)f_plus, "_plus", 3}, +diff --git a/src/builtin.c b/src/builtin.c +old mode 100644 +new mode 100755 +index c6c8c2e..e336472 +--- a/src/builtin.c ++++ b/src/builtin.c +@@ -185,7 +185,7 @@ static jv f_modf(jq_state *jq, jv input) { + return jv_array_append(ret, jv_number(i)); + } + #endif +-#ifdef HAVE_LGAMMA_R ++#if defined(HAVE_LGAMMA_R) && !(defined(__APPLE__) && defined(__GNUC__) && !defined(_REENTRANT)) + static jv f_lgamma_r(jq_state *jq, jv input) { + if (jv_get_kind(input) != JV_KIND_NUMBER) { + return type_error(input, "number required"); +@@ -1581,7 +1581,7 @@ static const struct cfunction function_list[] = { + #ifdef HAVE_MODF + {(cfunction_ptr)f_modf,"modf", 1}, + #endif +-#ifdef HAVE_LGAMMA_R ++#if defined(HAVE_LGAMMA_R) && !(defined(__APPLE__) && defined(__GNUC__) && !defined(_REENTRANT)) + {(cfunction_ptr)f_lgamma_r,"lgamma_r", 1}, + #endif + {(cfunction_ptr)f_plus, "_plus", 3}, diff --git a/var/spack/repos/builtin/packages/jq/package.py b/var/spack/repos/builtin/packages/jq/package.py index 613ed97c20..88061fe266 100644 --- a/var/spack/repos/builtin/packages/jq/package.py +++ b/var/spack/repos/builtin/packages/jq/package.py @@ -4,8 +4,10 @@ # SPDX-License-Identifier: (Apache-2.0 OR MIT) import os.path +import sys from spack import * +from spack.operating_systems.mac_os import macos_version class Jq(AutotoolsPackage): @@ -20,6 +22,9 @@ class Jq(AutotoolsPackage): depends_on('oniguruma') depends_on('bison@3.0:', type='build') + if sys.platform == 'darwin' and macos_version() >= Version('10.15'): + patch('builtinc.patch', when='@1.5:') + @run_after('install') @on_package_attributes(run_tests=True) def install_test(self): diff --git a/var/spack/repos/builtin/packages/julia/armgcc.patch b/var/spack/repos/builtin/packages/julia/armgcc.patch index 50719face8..50719face8 100755..100644 --- a/var/spack/repos/builtin/packages/julia/armgcc.patch +++ b/var/spack/repos/builtin/packages/julia/armgcc.patch diff --git a/var/spack/repos/builtin/packages/julia/package.py b/var/spack/repos/builtin/packages/julia/package.py index 7267eb439e..c0e7853892 100644 --- a/var/spack/repos/builtin/packages/julia/package.py +++ b/var/spack/repos/builtin/packages/julia/package.py @@ -19,8 +19,9 @@ class Julia(Package): maintainers = ['glennpj', 'vchuravy'] version('master', branch='master') - version('1.7.0-rc2', sha256='178f5531bdbd379bd376f3cccf9a6a1e1215a678b70c93bdc41edb7239c76dc2') - version('1.6.3', sha256='29aad934582fb4c6dd9f9dd558ad649921f43bc7320eab54407fdf6dd3270a33', preferred=True) + version('1.7.0', sha256='d40d83944f8e1709de1d6f7544e1a6721e091f70ba06b44c25b89bdba754dfa6', preferred=True) + version('1.6.4', sha256='954578b973fdb891c88fa1eedd931129e215ab928ecc416dd0bdf6c70549d2fc') + version('1.6.3', sha256='29aad934582fb4c6dd9f9dd558ad649921f43bc7320eab54407fdf6dd3270a33') version('1.6.2', sha256='01241120515cb9435b96179cf301fbd2c24d4405f252588108d13ceac0f41c0a') version('1.6.1', sha256='71d8e40611361370654e8934c407b2dec04944cf3917c5ecb6482d6b85ed767f') version('1.6.0', sha256='1b05f42c9368bc2349c47363b7ddc175a2da3cd162d52b6e24c4f5d4d6e1232c') @@ -176,6 +177,12 @@ class Julia(Package): target_str = "znver1" if target_str == "zen2": target_str = "znver2" + if target_str == "zen3": + if spec.satisfies('@1.7.0:'): + target_str = "znver3" + else: + # The LLVM in @1.6.4 doesn't support znver3. + target_str = "znver2" options += [ 'JULIA_CPU_TARGET={0}'.format(target_str) ] diff --git a/var/spack/repos/builtin/packages/kokkos-kernels/package.py b/var/spack/repos/builtin/packages/kokkos-kernels/package.py index c41a1607aa..8b046dd89f 100644 --- a/var/spack/repos/builtin/packages/kokkos-kernels/package.py +++ b/var/spack/repos/builtin/packages/kokkos-kernels/package.py @@ -102,8 +102,11 @@ class KokkosKernels(CMakePackage, CudaPackage): options.append("-DSpack_WORKAROUND=On") options.append("-DKokkos_ROOT=%s" % spec["kokkos"].prefix) - # Compiler weirdness due to nvcc_wrapper - options.append("-DCMAKE_CXX_COMPILER=%s" % spec["kokkos"].kokkos_cxx) + if spec.satisfies('^kokkos+rocm'): + options.append("-DCMAKE_CXX_COMPILER=%s" % spec['hip'].hipcc) + else: + # Compiler weirdness due to nvcc_wrapper + options.append("-DCMAKE_CXX_COMPILER=%s" % spec["kokkos"].kokkos_cxx) if self.run_tests: options.append("-DKokkosKernels_ENABLE_TESTS=ON") diff --git a/var/spack/repos/builtin/packages/kokkos-nvcc-wrapper/package.py b/var/spack/repos/builtin/packages/kokkos-nvcc-wrapper/package.py index bdba998849..c26522bea7 100644 --- a/var/spack/repos/builtin/packages/kokkos-nvcc-wrapper/package.py +++ b/var/spack/repos/builtin/packages/kokkos-nvcc-wrapper/package.py @@ -42,7 +42,7 @@ class KokkosNvccWrapper(Package): env.set('KOKKOS_CXX', self.compiler.cxx) env.set('MPICH_CXX', wrapper) env.set('OMPI_CXX', wrapper) - env.set('MPICXX_CXX', wrapper) # HPE MPT + env.set('MPICXX_CXX', wrapper) # HPE MPT def setup_dependent_package(self, module, dependent_spec): wrapper = join_path(self.prefix.bin, "nvcc_wrapper") diff --git a/var/spack/repos/builtin/packages/landsfcutil/package.py b/var/spack/repos/builtin/packages/landsfcutil/package.py index b43879c71c..7a2f77edc2 100644 --- a/var/spack/repos/builtin/packages/landsfcutil/package.py +++ b/var/spack/repos/builtin/packages/landsfcutil/package.py @@ -18,3 +18,12 @@ class Landsfcutil(CMakePackage): maintainers = ['edwardhartnett', 'kgerheiser', 'Hang-Lei-NOAA'] version('2.4.1', sha256='831c5005a480eabe9a8542b4deec838c2650f6966863ea2711cc0cc5db51ca14') + + def setup_run_environment(self, env): + for suffix in ('4', 'd'): + lib = find_libraries('liblandsfcutil_' + suffix, root=self.prefix, + shared=False, recursive=True) + + env.set('LANDSFCUTIL_LIB' + suffix, lib[0]) + env.set('LANDSFCUTIL_INC' + suffix, + join_path(self.prefix, 'include_' + suffix)) diff --git a/var/spack/repos/builtin/packages/lanl-cmake-modules/package.py b/var/spack/repos/builtin/packages/lanl-cmake-modules/package.py new file mode 100644 index 0000000000..7e0ecdf583 --- /dev/null +++ b/var/spack/repos/builtin/packages/lanl-cmake-modules/package.py @@ -0,0 +1,17 @@ +# 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 LanlCmakeModules(CMakePackage): + '''CMake modules for projects that have not yet adopted modern CMake. + ''' + + maintainers = ['tuxfan'] + homepage = 'https://lanl.github.io/cmake-modules' + git = 'https://github.com/lanl/cmake-modules.git' + + version('develop', branch='develop') diff --git a/var/spack/repos/builtin/packages/lcio/package.py b/var/spack/repos/builtin/packages/lcio/package.py index 8410506aa9..017a6a1314 100644 --- a/var/spack/repos/builtin/packages/lcio/package.py +++ b/var/spack/repos/builtin/packages/lcio/package.py @@ -19,6 +19,7 @@ class Lcio(CMakePackage): maintainers = ['gaede', 'vvolkl'] version('master', branch='master') + version('2.17', sha256='a81e07790443f0e2d9abb18bc3b5f2929edbc8d8e4f307f931679eaa39bb044a') version('2.16.1', sha256='992a649f864785e62fe12d7a638b2696c91f9535881de33f22b3cceabcdcdbaf') version('2.16', sha256='aff7707750d821f31cbae3d7529fd8e22457f48d759e834ec01aa9389b5dbf1a') version('2.15.4', sha256='720c8130762d445df44d2c245da01c0a1ca807d7ed62362cebf7b3a99f9a37d7') diff --git a/var/spack/repos/builtin/packages/legion/package.py b/var/spack/repos/builtin/packages/legion/package.py index 85373b53fb..fe13d19736 100644 --- a/var/spack/repos/builtin/packages/legion/package.py +++ b/var/spack/repos/builtin/packages/legion/package.py @@ -198,9 +198,6 @@ class Legion(CMakePackage): variant('max_fields', values=int, default=512, description="Maximum number of fields allowed in a logical region.") - variant('native', default=False, - description="Enable native/host processor optimizaton target.") - def cmake_args(self): spec = self.spec cmake_cxx_flags = [] @@ -339,10 +336,9 @@ class Legion(CMakePackage): maxfields = maxfields << 1 options.append('-DLegion_MAX_FIELDS=%d' % maxfields) - if '+native' in spec: - # default is off. - options.append('-DBUILD_MARCH:STRING=native') - + # This disables Legion's CMake build system's logic for targeting the native + # CPU architecture in favor of Spack-provided compiler flags + options.append('-DBUILD_MARCH:STRING=') return options @run_after('install') diff --git a/var/spack/repos/builtin/packages/libbeagle/package.py b/var/spack/repos/builtin/packages/libbeagle/package.py index 50b0fd4f34..0e6dc470d2 100644 --- a/var/spack/repos/builtin/packages/libbeagle/package.py +++ b/var/spack/repos/builtin/packages/libbeagle/package.py @@ -25,8 +25,10 @@ class Libbeagle(AutotoolsPackage, CudaPackage): depends_on('subversion', type='build') depends_on('pkgconfig', type='build') depends_on('java', type='build') + depends_on('opencl', when='+opencl') cuda_arch_values = CudaPackage.cuda_arch_values + variant('opencl', default=False, description='Include OpenCL (GPU) support') variant( 'cuda_arch', description='CUDA architecture', @@ -54,6 +56,9 @@ class Libbeagle(AutotoolsPackage, CudaPackage): filter_file('-L$with_cuda/lib', '-L$with_cuda/lib64/stubs', 'configure.ac', string=True) + def autoreconf(self, spec, prefix): + which('bash')('autogen.sh') + def configure_args(self): args = [ # Since spack will inject architecture flags turn off -march=native @@ -62,8 +67,13 @@ class Libbeagle(AutotoolsPackage, CudaPackage): ] if '+cuda' in self.spec: - args.append('--with-cuda=%s' % self.spec['cuda'].prefix) + args.append('--with-cuda={0}'.format(self.spec['cuda'].prefix)) else: args.append('--without-cuda') + if '+opencl' in self.spec: + args.append('--with-opencl={0}'.format(self.spec['opencl'].prefix)) + else: + args.append('--without-opencl') + return args diff --git a/var/spack/repos/builtin/packages/libbeato/package.py b/var/spack/repos/builtin/packages/libbeato/package.py index eaae48cf6c..7465167f88 100644 --- a/var/spack/repos/builtin/packages/libbeato/package.py +++ b/var/spack/repos/builtin/packages/libbeato/package.py @@ -14,4 +14,4 @@ class Libbeato(AutotoolsPackage): homepage = "https://github.com/CRG-Barcelona/libbeato" git = "https://github.com/CRG-Barcelona/libbeato.git" - version('master', brancch='master') + version('master', branch='master') diff --git a/var/spack/repos/builtin/packages/libblastrampoline/package.py b/var/spack/repos/builtin/packages/libblastrampoline/package.py index 6257e5a98f..8c0148d2ce 100644 --- a/var/spack/repos/builtin/packages/libblastrampoline/package.py +++ b/var/spack/repos/builtin/packages/libblastrampoline/package.py @@ -9,16 +9,19 @@ from spack import * class Libblastrampoline(MakefilePackage): """Using PLT trampolines to provide a BLAS and LAPACK demuxing library.""" - homepage = "https://github.com/staticfloat/libblastrampoline" - git = "https://github.com/staticfloat/libblastrampoline.git" - - version('3.1.0', commit='c6c7bc5d4ae088bd7c519d58e3fb8b686d00db0c') - version('3.0.4', commit='23de7a09bf354fe6f655c457bab5bf47fdd2486d') - version('3.0.3', commit='7b502b7bb5d4663df4a928d0f605924cd1a35c1a') - version('3.0.2', commit='5882fdf6395afb1ed01a8a10db94b7b3cbd39e16') - version('3.0.1', commit='e132e645db28bec024be9410467a6c7a2d0937ae') - version('3.0.0', commit='7bb259a69e5bad0adb55171b2bee164a30ce2e91') - version('2.2.0', commit='45f4a20ffdba5d368db66d71885312f5f73c2dc7') + homepage = "https://github.com/JuliaLinearAlgebra/libblastrampoline" + git = "https://github.com/JuliaLinearAlgebra/libblastrampoline.git" + url = "https://github.com/JuliaLinearAlgebra/libblastrampoline/archive/refs/tags/v3.1.0.tar.gz" + + maintainers = ['haampie'] + + version('3.1.0', sha256='f6136cc2b5d090ceca67cffa55b4c8af4bcee874333d49297c867abdb0749b5f') + version('3.0.4', sha256='3c8a54a3bd8a2737b7f74ebeb56df8e2a48083c9094dbbff80b225c228e31793') + version('3.0.3', sha256='a9c553ee6f20fa2f92098edcb3fc4a331c653250e559f72b9317b4ee84500cd7') + version('3.0.2', sha256='caefd708cf0cf53b01cea74a09ab763bf4dfa4aec4468892720f3921521c1f74') + version('3.0.1', sha256='b5b8ac0d3aba1bcb9dc26d7d6bb36b352d45e7d7e2594c6122e72b9e5d75a772') + version('3.0.0', sha256='4d0856d30e7ba0cb0de08b08b60fd34879ce98714341124acf87e587d1bbbcde') + version('2.2.0', sha256='1fb8752891578b45e187019c67fccbaafb108756aadc69bdd876033846ad30d3') build_directory = 'src' diff --git a/var/spack/repos/builtin/packages/libcroco/package.py b/var/spack/repos/builtin/packages/libcroco/package.py index 788ae665e2..586bbce4b2 100644 --- a/var/spack/repos/builtin/packages/libcroco/package.py +++ b/var/spack/repos/builtin/packages/libcroco/package.py @@ -15,12 +15,18 @@ class Libcroco(AutotoolsPackage): version('0.6.13', sha256='767ec234ae7aa684695b3a735548224888132e063f92db585759b422570621d4') version('0.6.12', sha256='ddc4b5546c9fb4280a5017e2707fbd4839034ed1aba5b7d4372212f34f84f860') + variant('doc', default=False, description='Build documentation with gtk-doc') + depends_on('glib') depends_on('libxml2') - depends_on('gtk-doc', type='build') + depends_on('gtk-doc', type='build', when='+doc') depends_on('pkgconfig', type='build') def configure_args(self): + args = [ + '--enable-gtk-doc=' + ('yes' if self.spec.variants['doc'].value else 'no') + ] # macOS ld does not support this flag # https://github.com/Homebrew/homebrew-core/blob/HEAD/Formula/libcroco.rb - return ['--disable-Bsymbolic'] + args.append('--disable-Bsymbolic') + return args diff --git a/var/spack/repos/builtin/packages/libctl/package.py b/var/spack/repos/builtin/packages/libctl/package.py index 24c4183cdd..99422f801d 100644 --- a/var/spack/repos/builtin/packages/libctl/package.py +++ b/var/spack/repos/builtin/packages/libctl/package.py @@ -11,10 +11,12 @@ class Libctl(AutotoolsPackage): control files for scientific simulations.""" homepage = "http://ab-initio.mit.edu/wiki/index.php/Libctl" - url = "http://ab-initio.mit.edu/libctl/libctl-3.2.2.tar.gz" - list_url = "http://ab-initio.mit.edu/libctl/old" + git = "https://github.com/NanoComp/libctl.git" + url = "https://github.com/NanoComp/libctl/releases/download/v4.2.0/libctl-4.2.0.tar.gz" - version('3.2.2', sha256='8abd8b58bc60e84e16d25b56f71020e0cb24d75b28bc5db86d50028197c7efbc') + version('4.2.0', sha256='0341ad6ea260ecda2efb3d4b679abb3d05ca6211792381979b036177a9291975') + version('3.2.2', sha256='8abd8b58bc60e84e16d25b56f71020e0cb24d75b28bc5db86d50028197c7efbc', + url='http://ab-initio.mit.edu/libctl/libctl-3.2.2.tar.gz') depends_on('guile') @@ -27,4 +29,5 @@ class Libctl(AutotoolsPackage): spec['guile'].prefix.bin, 'guile')), 'GUILE_CONFIG={0}'.format(join_path( spec['guile'].prefix.bin, 'guile-config')), + 'LIBS=-lm', ] diff --git a/var/spack/repos/builtin/packages/libcxxwrap-julia/package.py b/var/spack/repos/builtin/packages/libcxxwrap-julia/package.py index ee4caebe13..324c2d65c5 100644 --- a/var/spack/repos/builtin/packages/libcxxwrap-julia/package.py +++ b/var/spack/repos/builtin/packages/libcxxwrap-julia/package.py @@ -16,7 +16,9 @@ regular CMake library for use in other C++ projects.""" maintainers = ['eloop'] - version('master', branch='master') + # note: use the @main branch version if you're building for julia 1.7 + version('main', branch='main') + version('0.8.3', sha256='b0421d11bdee5ce8af4922de6dfe3b0e5d69b07bb52894e3a22a477bbd27ee9e') version('0.8.2', sha256='f8b171def3d61904ba8f9a9052a405c25afbfb9a3c5af3dd30bc36a0184ed539') diff --git a/var/spack/repos/builtin/packages/libdrm/package.py b/var/spack/repos/builtin/packages/libdrm/package.py index 2d7a4133fb..1516913de9 100644 --- a/var/spack/repos/builtin/packages/libdrm/package.py +++ b/var/spack/repos/builtin/packages/libdrm/package.py @@ -21,6 +21,8 @@ class Libdrm(AutotoolsPackage): version('2.4.33', sha256='bd2a8fecf28616f2157ca33ede691c139cc294ed2d0c4244b62ca7d22e98e5a4') depends_on('pkgconfig', type='build') + depends_on('docbook-xml', type='build') + depends_on('docbook-xsl', type='build') depends_on('libpciaccess@0.10:') depends_on('libpthread-stubs') @@ -31,6 +33,6 @@ class Libdrm(AutotoolsPackage): # Needed to fix build for spack/spack#1740, but breaks newer # builds/compilers args.append('LIBS=-lrt') - if self.spec.satisfies('%gcc@10.0.0:'): + if self.spec.satisfies('%gcc@10.0.0:') or self.spec.satisfies('%clang@12.0.0:'): args.append('CFLAGS=-fcommon') return args diff --git a/var/spack/repos/builtin/packages/libfabric/package.py b/var/spack/repos/builtin/packages/libfabric/package.py index efd0aca2c6..60c129e5c2 100644 --- a/var/spack/repos/builtin/packages/libfabric/package.py +++ b/var/spack/repos/builtin/packages/libfabric/package.py @@ -17,6 +17,7 @@ class Libfabric(AutotoolsPackage): maintainers = ['rajachan'] version('master', branch='master') + version('1.14.0', sha256='fc261388848f3cff555bd653f5cb901f6b9485ad285e5c53328b13f0e69f749a') version('1.13.2', sha256='25d783b0722a8df8fe61c1de75fafca684c5fe520303180f26f0ad6409cfc0b9') version('1.13.1', sha256='8e6eed38c4a39aa4cbf7d5d3734f0eecbfc030182f1f9b3be470702f2586d30e') version('1.12.1', sha256='db3c8e0a495e6e9da6a7436adab905468aedfbd4579ee3da5232a5c111ba642c') diff --git a/var/spack/repos/builtin/packages/libfuse/package.py b/var/spack/repos/builtin/packages/libfuse/package.py index 90577dba96..e11a5f8e6a 100644 --- a/var/spack/repos/builtin/packages/libfuse/package.py +++ b/var/spack/repos/builtin/packages/libfuse/package.py @@ -3,6 +3,7 @@ # # SPDX-License-Identifier: (Apache-2.0 OR MIT) +import os import re from spack import * @@ -37,6 +38,11 @@ class Libfuse(MesonPackage): "which typically sets up udev rules and " "and init script in /etc/init.d")) + depends_on('autoconf', type='build', when='@:2') + depends_on('automake', type='build', when='@:2') + depends_on('libtool', type='build', when='@:2') + depends_on('gettext', type='build', when='@:2') + provides('fuse') conflicts("+useroot", when='~system_install', msg="useroot requires system_install") conflicts('platform=darwin', msg='libfuse does not support OS-X, use macfuse instead') @@ -45,6 +51,11 @@ class Libfuse(MesonPackage): patch('0001-Do-not-run-install-script.patch', when='@3: ~system_install') patch('https://src.fedoraproject.org/rpms/fuse3/raw/0519b7bf17c4dd1b31ee704d49f8ed94aa5ba6ab/f/fuse3-gcc11.patch', sha256='3ad6719d2393b46615b5787e71778917a7a6aaa189ba3c3e0fc16d110a8414ec', when='@3: %gcc@11:') + patch('https://github.com/libfuse/libfuse/commit/6d55007027dfe7b75a74899f497f075046cc5404.patch', sha256='d8c54ae932f2e7179dd05081a4a8e7aefd23553a0ef354fa25b1456386d96932', when='@:2') + patch('https://github.com/libfuse/libfuse/commit/5d38afc8a5b4a2a6e27aad7a1840046e99cd826d.patch', sha256='7f3e8e54966aca8cb64096bea2cbd4d2679b47f9c1355fe9d442ba8464d74372', when='@:2') + # https://bugs.gentoo.org/803923 + patch('https://github.com/libfuse/libfuse/commit/5a43d0f724c56f8836f3f92411e0de1b5f82db32.patch', sha256='1e8b0a1b2bbaa335d92a3c46e31c928dcd53abe011214a0cbbfa7c11a3a68f1a', when='@:2') + executables = ['^fusermount3?$'] @classmethod @@ -73,6 +84,12 @@ class Libfuse(MesonPackage): # Before libfuse 3.x this was an autotools package @when('@:2') def meson(self, spec, prefix): + ar_args = ['-ivf'] + for dep in self.spec.dependencies(deptype='build'): + if os.path.exists(dep.prefix.share.aclocal): + ar_args.extend(['-I', dep.prefix.share.aclocal]) + autoreconf(*ar_args) + args = [ "--prefix={0}".format(prefix), "MOUNT_FUSE_PATH={0}".format(self.prefix.sbin), diff --git a/var/spack/repos/builtin/packages/libint/package.py b/var/spack/repos/builtin/packages/libint/package.py index 8f6ecfec17..d44eaa44fe 100644 --- a/var/spack/repos/builtin/packages/libint/package.py +++ b/var/spack/repos/builtin/packages/libint/package.py @@ -74,9 +74,7 @@ class Libint(AutotoolsPackage): return "{0}/v{1}.tar.gz".format(base_url, version) def autoreconf(self, spec, prefix): - libtoolize() - aclocal('-I', 'lib/autoconf') - autoconf() + which('bash')('autogen.sh') if '@2.6.0:' in spec: # skip tarball creation and removal of dir with generated code @@ -104,7 +102,10 @@ class Libint(AutotoolsPackage): def configure_args(self): - config_args = ['--enable-shared'] + config_args = [ + '--enable-shared', + '--with-boost={0}'.format(self.spec['boost'].prefix) + ] # Optimization flag names have changed in libint 2 if self.version < Version('2.0.0'): @@ -185,16 +186,18 @@ class Libint(AutotoolsPackage): packages (CP2K notably). """ - super(Libint, self).build(spec, prefix) - # upstream says that using configure/make for the generated code # is deprecated and one should use CMake, but with the currently # recent 2.7.0.b1 it still doesn't work + # first generate the libint compiler + make('export') + # now build the library with working_dir(os.path.join(self.build_directory, 'generated')): # straight from the AutotoolsPackage class: config_args = [ '--prefix={0}'.format(prefix), '--enable-shared', + '--with-boost={0}'.format(self.spec['boost'].prefix), '--with-cxx-optflags={0}'.format(self.optflags), ] config_args += self.enable_or_disable( diff --git a/var/spack/repos/builtin/packages/liblzf/package.py b/var/spack/repos/builtin/packages/liblzf/package.py new file mode 100644 index 0000000000..35c0bcc2ad --- /dev/null +++ b/var/spack/repos/builtin/packages/liblzf/package.py @@ -0,0 +1,19 @@ +# Copyright 2013-2021 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 Liblzf(AutotoolsPackage): + """LibLZF is a very small data compression library. + + It consists of only two .c and two .h files and is very easy to incorporate into + your own programs. The compression algorithm is very, very fast, yet still written + in portable C.""" + + homepage = "http://oldhome.schmorp.de/marc/liblzf.html" + url = "http://dist.schmorp.de/liblzf/liblzf-3.6.tar.gz" + + version('3.6', sha256='9c5de01f7b9ccae40c3f619d26a7abec9986c06c36d260c179cedd04b89fb46a') diff --git a/var/spack/repos/builtin/packages/libmonitor/package.py b/var/spack/repos/builtin/packages/libmonitor/package.py index bdfeef48b7..fab4269455 100644 --- a/var/spack/repos/builtin/packages/libmonitor/package.py +++ b/var/spack/repos/builtin/packages/libmonitor/package.py @@ -16,6 +16,7 @@ class Libmonitor(AutotoolsPackage): maintainers = ['mwkrentel'] version('master', branch='master') + version('2021.11.08', commit='22aa52c621534f12d401fa37f6963bfca7441e20') version('2021.04.27', commit='a2d1b6be23410ef1ad2c9d0006672453803243c2') version('2020.10.15', commit='36e5cb7ebeadfff01476b79ff04f6ec772ba831d') version('2019.05.31', commit='c9767087d52e58a719aa7f149136b101e499db44') diff --git a/var/spack/repos/builtin/packages/librsvg/package.py b/var/spack/repos/builtin/packages/librsvg/package.py index 7351e56cb3..39d5bb871e 100644 --- a/var/spack/repos/builtin/packages/librsvg/package.py +++ b/var/spack/repos/builtin/packages/librsvg/package.py @@ -17,10 +17,12 @@ class Librsvg(AutotoolsPackage): version('2.50.0', sha256='b3fadba240f09b9c9898ab20cb7311467243e607cf8f928b7c5f842474ee3df4') version('2.44.14', sha256='6a85a7868639cdd4aa064245cc8e9d864dad8b8e9a4a8031bb09a4796bc4e303') + variant('doc', default=False, description='Build documentation with gtk-doc') + depends_on("gobject-introspection", type='build') depends_on("pkgconfig", type='build') depends_on("rust", type='build') - depends_on('gtk-doc', type='build') + depends_on('gtk-doc', type='build', when='+doc') depends_on("cairo+gobject") depends_on("gdk-pixbuf") depends_on("glib") @@ -48,3 +50,8 @@ class Librsvg(AutotoolsPackage): def setup_run_environment(self, env): env.prepend_path('XDG_DATA_DIRS', self.prefix.share) + + def configure_args(self): + return [ + '--enable-gtk-doc=' + ('yes' if self.spec.variants['doc'].value else 'no') + ] diff --git a/var/spack/repos/builtin/packages/libseccomp/package.py b/var/spack/repos/builtin/packages/libseccomp/package.py index 6362cc9cce..b8d66d092c 100644 --- a/var/spack/repos/builtin/packages/libseccomp/package.py +++ b/var/spack/repos/builtin/packages/libseccomp/package.py @@ -10,16 +10,14 @@ class Libseccomp(AutotoolsPackage): """The main libseccomp repository""" homepage = "https://github.com/seccomp/libseccomp" - url = "https://github.com/seccomp/libseccomp/archive/v2.3.3.zip" + url = 'https://github.com/seccomp/libseccomp/releases/download/v2.5.3/libseccomp-2.5.3.tar.gz' - version('2.3.3', sha256='627e114b3be2e66ed8d88b90037498333384d9bea822423662a44c3a8520e187') + version('2.5.3', sha256='59065c8733364725e9721ba48c3a99bbc52af921daf48df4b1e012fbc7b10a76') + version('2.3.3', sha256='7fc28f4294cc72e61c529bedf97e705c3acf9c479a8f1a3028d4cd2ca9f3b155') variant('python', default=True, description="Build Python bindings") - depends_on('autoconf', type='build') - depends_on('automake', type='build') - depends_on('libtool', type='build') - depends_on('m4', type='build') + depends_on('gperf', type='build', when='@2.5:') depends_on("py-cython", type="build", when="+python") def configure_args(self): diff --git a/var/spack/repos/builtin/packages/libsharp/1.0.0-arm.patch b/var/spack/repos/builtin/packages/libsharp/1.0.0-arm.patch index 1f68c96ce9..1f68c96ce9 100755..100644 --- a/var/spack/repos/builtin/packages/libsharp/1.0.0-arm.patch +++ b/var/spack/repos/builtin/packages/libsharp/1.0.0-arm.patch diff --git a/var/spack/repos/builtin/packages/libsharp/arm.patch b/var/spack/repos/builtin/packages/libsharp/arm.patch index 19ed264757..19ed264757 100755..100644 --- a/var/spack/repos/builtin/packages/libsharp/arm.patch +++ b/var/spack/repos/builtin/packages/libsharp/arm.patch diff --git a/var/spack/repos/builtin/packages/libslirp/package.py b/var/spack/repos/builtin/packages/libslirp/package.py new file mode 100644 index 0000000000..95c292d76c --- /dev/null +++ b/var/spack/repos/builtin/packages/libslirp/package.py @@ -0,0 +1,19 @@ +# Copyright 2013-2021 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 Libslirp(MesonPackage): + """General purpose TCP-IP emulator""" + + homepage = 'https://gitlab.freedesktop.org/slirp/libslirp' + url = 'https://gitlab.freedesktop.org/slirp/libslirp/-/archive/v4.6.1/libslirp-v4.6.1.tar.gz' + maintainers = ['bernhardkaindl'] + + version('4.6.1', sha256='69ad4df0123742a29cc783b35de34771ed74d085482470df6313b6abeb799b11') + + depends_on('pkgconfig', type='build') + depends_on('glib') diff --git a/var/spack/repos/builtin/packages/libspatialite/package.py b/var/spack/repos/builtin/packages/libspatialite/package.py index 09bef51747..b601df69b9 100644 --- a/var/spack/repos/builtin/packages/libspatialite/package.py +++ b/var/spack/repos/builtin/packages/libspatialite/package.py @@ -16,7 +16,8 @@ class Libspatialite(AutotoolsPackage): url = "https://www.gaia-gis.it/gaia-sins/libspatialite-sources/libspatialite-4.3.0a.tar.gz" manual_download = True - version('5.0.0', preferred=True, sha256='7b7fd70243f5a0b175696d87c46dde0ace030eacc27f39241c24bac5dfac6dac') + version('5.0.1', sha256='eecbc94311c78012d059ebc0fae86ea5ef6eecb13303e6e82b3753c1b3409e98') + version('5.0.0', sha256='7b7fd70243f5a0b175696d87c46dde0ace030eacc27f39241c24bac5dfac6dac') # Must download manually from: # https://www.gaia-gis.it/fossil/libspatialite/info/c7f67038bf06d98d # For instructions on the file:// below.. @@ -41,3 +42,4 @@ class Libspatialite(AutotoolsPackage): depends_on('iconv') depends_on('libxml2') depends_on('minizip', when='@5.0.0:') + depends_on('librttopo', when='@5.0.1:') diff --git a/var/spack/repos/builtin/packages/libssh2/package.py b/var/spack/repos/builtin/packages/libssh2/package.py index 933a996b03..c863d796c4 100644 --- a/var/spack/repos/builtin/packages/libssh2/package.py +++ b/var/spack/repos/builtin/packages/libssh2/package.py @@ -12,20 +12,38 @@ class Libssh2(CMakePackage): homepage = "https://www.libssh2.org/" url = "https://www.libssh2.org/download/libssh2-1.7.0.tar.gz" + version('1.10.0', sha256='2d64e90f3ded394b91d3a2e774ca203a4179f69aebee03003e5a6fa621e41d51') + version('1.9.0', sha256='d5fb8bd563305fd1074dda90bd053fb2d29fc4bce048d182f96eaa466dfadafd') version('1.8.0', sha256='39f34e2f6835f4b992cafe8625073a88e5a28ba78f83e8099610a7b3af4676d4') version('1.7.0', sha256='e4561fd43a50539a8c2ceb37841691baf03ecb7daf043766da1b112e4280d584') version('1.4.3', sha256='eac6f85f9df9db2e6386906a6227eb2cd7b3245739561cad7d6dc1d5d021b96d') # CentOS7 - variant('shared', default=True, - description="Build shared libraries") + variant('crypto', default='openssl', values=('openssl', 'mbedtls'), multi=False) + variant('shared', default=True, description="Build shared libraries") + + conflicts('crypto=mbedtls', when='@:1.7', msg='mbedtls only available from 1.8.0') depends_on('cmake@2.8.11:', type='build') - depends_on('openssl') + depends_on('openssl', when='crypto=openssl') + depends_on('openssl@:2', when='@:1.9 crypto=openssl') + depends_on('mbedtls@:2 +pic', when='crypto=mbedtls') depends_on('zlib') depends_on('xz') def cmake_args(self): - return [self.define_from_variant('BUILD_SHARED_LIBS', 'shared')] + args = [ + self.define('BUILD_TESTING', 'OFF'), + self.define_from_variant('BUILD_SHARED_LIBS', 'shared') + ] + + crypto = self.spec.variants['crypto'].value + + if crypto == 'openssl': + args.append(self.define('CRYPTO_BACKEND', 'OpenSSL')) + elif crypto == 'mbedtls': + args.append(self.define('CRYPTO_BACKEND', 'mbedTLS')) + + return args @run_after('install') def darwin_fix(self): diff --git a/var/spack/repos/builtin/packages/libtree/package.py b/var/spack/repos/builtin/packages/libtree/package.py index 5d5aaa78ab..08af134409 100644 --- a/var/spack/repos/builtin/packages/libtree/package.py +++ b/var/spack/repos/builtin/packages/libtree/package.py @@ -3,12 +3,11 @@ # # SPDX-License-Identifier: (Apache-2.0 OR MIT) -from spack import * +from spack.build_systems.cmake import CMakePackage -class Libtree(CMakePackage): - """ldd as a tree with an option to bundle dependencies into a - single folder""" +class Libtree(MakefilePackage): + """ldd as a tree""" homepage = "https://github.com/haampie/libtree" git = "https://github.com/haampie/libtree.git" @@ -16,6 +15,8 @@ class Libtree(CMakePackage): maintainers = ['haampie'] version('master', branch='master') + version('3.0.1', sha256='20d3cd66f5c74058de9dd594af8ffd639c795d27ab435c588a3cd43911c1604f') + version('3.0.0', sha256='6f7b069a8e5d86741e18a4c8a7e835ac530ae012dfc9509e00ffa694aa6818b1') version('2.0.0', sha256='099e85d8ba3c3d849ce05b8ba2791dd25cd042a813be947fb321b0676ef71883') version('1.2.3', sha256='4a912cf97109219fe931942a30579336b6ab9865395447bd157bbfa74bf4e8cf') version('1.2.2', sha256='4ccf09227609869b85a170550b636defcf0b0674ecb0785063b81785b1c29bdd') @@ -35,20 +36,27 @@ class Libtree(CMakePackage): return "https://github.com/haampie/libtree/archive/refs/tags/v{0}.tar.gz".format(version) - variant('chrpath', default=False, description='Use chrpath for deployment') - variant('strip', default=False, description='Use binutils strip for deployment') + # Version 3.x (Makefile) + @when('@3:') + def install(self, spec, prefix): + make('install', 'PREFIX=' + prefix) - # header only dependencies - depends_on('cpp-termcolor', when='@2.0:', type='build') - depends_on('cxxopts', when='@2.0:', type='build') - depends_on('elfio', when='@2.0:', type='build') - - # runtime deps - depends_on('chrpath', when='+chrpath', type='run') - depends_on('binutils', when='+strip', type='run') + # Version 2.x and earlier (CMake) + with when('@:2'): + variant('chrpath', default=False, description='Use chrpath for deployment') + variant('strip', default=False, description='Use binutils strip for deployment') + variant('build_type', default='RelWithDebInfo', + description='CMake build type', + values=('Debug', 'Release', 'RelWithDebInfo', 'MinSizeRel')) + depends_on('googletest', type='test') + depends_on('cmake@3:', type='build') + depends_on('chrpath', when='+chrpath', type='run') + depends_on('binutils', when='+strip', type='run') - # testing - depends_on('googletest', type='test') + # header only dependencies + depends_on('cpp-termcolor', when='@2.0.0:2', type='build') + depends_on('cxxopts', when='@2.0.0:2', type='build') + depends_on('elfio', when='@2.0.0:2', type='build') def cmake_args(self): tests_enabled = 'ON' if self.run_tests else 'OFF' @@ -58,9 +66,17 @@ class Libtree(CMakePackage): tests_define = 'BUILD_TESTING' return [ - self.define(tests_define, tests_enabled) + CMakePackage.define(tests_define, tests_enabled) ] + @when('@:2') + def edit(self, spec, prefix): + options = CMakePackage._std_args(self) + self.cmake_args() + options.append(self.stage.source_path) + with working_dir(self.build_directory): + cmake(*options) + + @when('@:2') def check(self): with working_dir(self.build_directory): ctest('--output-on-failure') diff --git a/var/spack/repos/builtin/packages/libxc/package.py b/var/spack/repos/builtin/packages/libxc/package.py index cdfcc52433..cfbbd953e8 100644 --- a/var/spack/repos/builtin/packages/libxc/package.py +++ b/var/spack/repos/builtin/packages/libxc/package.py @@ -13,6 +13,7 @@ class Libxc(AutotoolsPackage, CudaPackage): homepage = "https://tddft.org/programs/libxc/" url = "https://www.tddft.org/programs/libxc/down.php?file=2.2.2/libxc-2.2.2.tar.gz" + version('5.1.7', sha256='1a818fdfe5c5f74270bc8ef0c59064e8feebcd66b8f642c08aecc1e7d125be34') version('5.1.5', sha256='02e4615a22dc3ec87a23efbd3d9be5bfad2445337140bad1720699571c45c3f9') version('5.1.3', sha256='0350defdd6c1b165e4cf19995f590eee6e0b9db95a6b221d28cecec40f4e85cd') version('5.1.2', sha256='180d52b5552921d1fac8a10869dd30708c0fb41dc202a3bbee0e36f43872718a') diff --git a/var/spack/repos/builtin/packages/libxsmm/package.py b/var/spack/repos/builtin/packages/libxsmm/package.py index df1e6e51bf..a9c4973ff3 100644 --- a/var/spack/repos/builtin/packages/libxsmm/package.py +++ b/var/spack/repos/builtin/packages/libxsmm/package.py @@ -15,12 +15,13 @@ class Libxsmm(MakefilePackage): and deep learning primitives.""" homepage = 'https://github.com/hfp/libxsmm' - url = 'https://github.com/hfp/libxsmm/archive/1.16.3.tar.gz' + url = 'https://github.com/hfp/libxsmm/archive/1.17.tar.gz' git = 'https://github.com/hfp/libxsmm.git' maintainers = ['hfp'] version('master', branch='master') + version('1.17', sha256='8b642127880e92e8a75400125307724635ecdf4020ca4481e5efe7640451bb92') version('1.16.3', sha256='e491ccadebc5cdcd1fc08b5b4509a0aba4e2c096f53d7880062a66b82a0baf84') version('1.16.2', sha256='bdc7554b56b9e0a380fc9c7b4f4394b41be863344858bc633bc9c25835c4c64e') version('1.16.1', sha256='93dc7a3ec40401988729ddb2c6ea2294911261f7e6cd979cf061b5c3691d729d') diff --git a/var/spack/repos/builtin/packages/libzmq/package.py b/var/spack/repos/builtin/packages/libzmq/package.py index ca17fad155..20b525081d 100644 --- a/var/spack/repos/builtin/packages/libzmq/package.py +++ b/var/spack/repos/builtin/packages/libzmq/package.py @@ -14,6 +14,7 @@ class Libzmq(AutotoolsPackage): git = "https://github.com/zeromq/libzmq.git" version('master', branch='master') + version('4.3.4', sha256='c593001a89f5a85dd2ddf564805deb860e02471171b3f204944857336295c3e5') version('4.3.3', sha256='9d9285db37ae942ed0780c016da87060497877af45094ff9e1a1ca736e3875a2') version('4.3.2', sha256='ebd7b5c830d6428956b67a0454a7f8cbed1de74b3b01e5c33c5378e22740f763') version('4.3.1', sha256='bcbabe1e2c7d0eec4ed612e10b94b112dd5f06fcefa994a0c79a45d835cd21eb') @@ -40,6 +41,8 @@ class Libzmq(AutotoolsPackage): depends_on('automake', type='build', when='@develop') depends_on('libtool', type='build', when='@develop') depends_on('pkgconfig', type='build') + depends_on('docbook-xml', type='build') + depends_on('docbook-xsl', type='build') depends_on('libbsd', type='link', when='@4.3.3: platform=linux') depends_on('libbsd', type='link', when='@4.3.3: platform=cray') diff --git a/var/spack/repos/builtin/packages/likwid/package.py b/var/spack/repos/builtin/packages/likwid/package.py index 95117f67b1..c9cdff2aa2 100644 --- a/var/spack/repos/builtin/packages/likwid/package.py +++ b/var/spack/repos/builtin/packages/likwid/package.py @@ -22,6 +22,7 @@ class Likwid(Package): git = "https://github.com/RRZE-HPC/likwid.git" maintainers = ['TomTheBear'] + version('5.2.1', sha256='1b8e668da117f24302a344596336eca2c69d2bc2f49fa228ca41ea0688f6cbc2') version('5.2.0', sha256='aa6dccacfca59e52d8f3be187ffcf292b2a2fa1f51a81bf8912b9d48e5a257e0') version('5.1.1', sha256='faec7c62987967232f476a6ff0ee85af686fd24b5a360126896b7f435d1f943f') version('5.1.0', sha256='5a180702a1656c6315b861a85031ab4cb090424aec42cbbb326b849e29f55571') diff --git a/var/spack/repos/builtin/packages/llvm-doe/package.py b/var/spack/repos/builtin/packages/llvm-doe/package.py index c384210561..e2d1284116 100644 --- a/var/spack/repos/builtin/packages/llvm-doe/package.py +++ b/var/spack/repos/builtin/packages/llvm-doe/package.py @@ -2,12 +2,14 @@ # Spack Project Developers. See the top-level COPYRIGHT file for details. # # SPDX-License-Identifier: (Apache-2.0 OR MIT) +import os import os.path import re import sys import llnl.util.tty as tty +import spack.build_environment import spack.util.executable @@ -19,15 +21,21 @@ class LlvmDoe(CMakePackage, CudaPackage): homepage = "https://github.com/llvm-doe-org" url = "https://github.com/llvm-doe-org/llvm-project/archive/llvmorg-10.0.0.zip" git = "https://github.com/llvm-doe-org/llvm-project" - maintainers = ['shintaro-iwasaki'] + maintainers = ['vlkale'] + tags = ['e4s'] + generator = 'Ninja' + + family = "compiler" # Used by lmod + version('doe', branch='doe', preferred=True) version('upstream', branch='llvm.org/main') version('bolt', branch='bolt/main') version('clacc', branch='clacc/master') version('pragma-clang-loop', branch='sollve/pragma-clang-loop') version('pragma-omp-tile', branch='sollve/pragma-omp-tile') + version('13.0.0', branch='llvm.org/llvmorg-13.0.0') # NOTE: The debug version of LLVM is an order of magnitude larger than # the release version, and may take up 20-30 GB of space. If you want @@ -95,6 +103,11 @@ class LlvmDoe(CMakePackage, CudaPackage): "components in a single shared library", ) variant( + "link_llvm_dylib", + default=False, + description="Link LLVM tools against the LLVM shared library", + ) + variant( "all_targets", default=False, description="Build all supported targets, default targets " @@ -112,6 +125,11 @@ class LlvmDoe(CMakePackage, CudaPackage): description="Build with OpenMP capable thread sanitizer", ) variant( + "omp_as_runtime", + default=True, + description="Build OpenMP runtime via ENABLE_RUNTIME by just-built Clang", + ) + variant( "argobots", default=False, description="Build BOLT/OpenMP with Argobots. Effective when @bolt", @@ -120,16 +138,21 @@ class LlvmDoe(CMakePackage, CudaPackage): description="Enable code-signing on macOS") variant("python", default=False, description="Install python bindings") + variant('version_suffix', default='none', description="Add a symbol suffix") + variant('z3', default=False, description='Use Z3 for the clang static analyzer') + extends("python", when="+python") # Build dependency depends_on("cmake@3.4.3:", type="build") + depends_on('cmake@3.13.4:', type='build', when='@12:') + depends_on("ninja", type="build") depends_on("python", when="~python", type="build") depends_on("pkgconfig", type="build") # Universal dependency depends_on("python", when="+python") - depends_on("z3") + depends_on("z3", when='+clang+z3') # openmp dependencies depends_on("perl-data-dumper", type=("build")) @@ -146,22 +169,56 @@ class LlvmDoe(CMakePackage, CudaPackage): depends_on("py-six", when="+lldb +python") # gold support, required for some features - depends_on("binutils+gold", when="+gold") + depends_on("binutils+gold+ld+plugins", when="+gold") conflicts("+llvm_dylib", when="+shared_libs") + conflicts("+link_llvm_dylib", when="~llvm_dylib") conflicts("+lldb", when="~clang") conflicts("+libcxx", when="~clang") conflicts("+internal_unwind", when="~clang") conflicts("+compiler-rt", when="~clang") + conflicts("+flang", when="~clang") - conflicts("%gcc@:5.0") + conflicts('~mlir', when='+flang', msg='Flang requires MLIR') + + # Older LLVM do not build with newer compilers, and vice versa + conflicts("%gcc@8:", when="@:5") + conflicts("%gcc@:5.0", when="@8:") + # clang/lib: a lambda parameter cannot shadow an explicitly captured entity + conflicts("%clang@8:", when="@:4") + + # When these versions are concretized, but not explicitly with +libcxx, these + # conflicts will enable clingo to set ~libcxx, making the build successful: + + # libc++ of LLVM13, see https://libcxx.llvm.org/#platform-and-compiler-support + # @13 does not support %gcc@:10 https://bugs.llvm.org/show_bug.cgi?id=51359#c1 + # GCC 11 - latest stable release per GCC release page + # Clang: 11, 12 - latest two stable releases per LLVM release page + # AppleClang 12 - latest stable release per Xcode release page + conflicts("%gcc@:10", when="@13:+libcxx") + conflicts("%clang@:10", when="@13:+libcxx") + conflicts("%apple-clang@:11", when="@13:+libcxx") + + # libcxx-4 and compiler-rt-4 fail to build with "newer" clang and gcc versions: + conflicts('%gcc@7:', when='@:4+libcxx') + conflicts('%clang@6:', when='@:4+libcxx') + conflicts('%apple-clang@6:', when='@:4+libcxx') + conflicts('%gcc@7:', when='@:4+compiler-rt') + conflicts('%clang@6:', when='@:4+compiler-rt') + conflicts('%apple-clang@6:', when='@:4+compiler-rt') + + # OMP TSAN exists in > 5.x + conflicts("+omp_tsan", when="@:5") + + # OpenMP via ENABLE_RUNTIME restrictions + conflicts("+omp_as_runtime", when="~clang", msg="omp_as_runtime requires clang being built.") + conflicts("+omp_as_runtime", when="@:11.1", msg="omp_as_runtime works since LLVM 12.") # cuda_arch value must be specified conflicts("cuda_arch=none", when="+cuda", msg="A value for cuda_arch must be specified.") - conflicts("+mlir") - - conflicts("+flang", when="~clang") + # MLIR exists in > 10.x + conflicts("+mlir", when="@:9") # code signing is only necessary on macOS", conflicts('+code_signing', when='platform=linux') @@ -348,8 +405,25 @@ class LlvmDoe(CMakePackage, CudaPackage): 'create this identity.' ) + def flag_handler(self, name, flags): + if name == 'cxxflags': + flags.append(self.compiler.cxx11_flag) + return(None, flags, None) + elif name == 'ldflags' and self.spec.satisfies('%intel'): + flags.append('-shared-intel') + return(None, flags, None) + return(flags, None, None) + def setup_build_environment(self, env): - env.append_flags("CXXFLAGS", self.compiler.cxx11_flag) + """When using %clang, add only its ld.lld-$ver and/or ld.lld to our PATH""" + if self.compiler.name in ['clang', 'apple-clang']: + for lld in 'ld.lld-{0}'.format(self.compiler.version.version[0]), 'ld.lld': + bin = os.path.join(os.path.dirname(self.compiler.cc), lld) + sym = os.path.join(self.stage.path, 'ld.lld') + if os.path.exists(bin) and not os.path.exists(sym): + mkdirp(self.stage.path) + os.symlink(bin, sym) + env.prepend_path('PATH', self.stage.path) def setup_run_environment(self, env): if "+clang" in self.spec: @@ -363,71 +437,87 @@ class LlvmDoe(CMakePackage, CudaPackage): def cmake_args(self): spec = self.spec + define = CMakePackage.define + from_variant = self.define_from_variant + python = spec['python'] cmake_args = [ - "-DLLVM_REQUIRES_RTTI:BOOL=ON", - "-DLLVM_ENABLE_RTTI:BOOL=ON", - "-DLLVM_ENABLE_EH:BOOL=ON", - "-DCLANG_DEFAULT_OPENMP_RUNTIME:STRING=libomp", - "-DPYTHON_EXECUTABLE:PATH={0}".format(python.command.path), - "-DLIBOMP_USE_HWLOC:BOOL=ON", - "-DLIBOMP_HWLOC_INSTALL_DIR={0}".format(spec["hwloc"].prefix), + define("LLVM_REQUIRES_RTTI", True), + define("LLVM_ENABLE_RTTI", True), + define("LLVM_ENABLE_EH", True), + define("CLANG_DEFAULT_OPENMP_RUNTIME", "libomp"), + define("PYTHON_EXECUTABLE", python.command.path), + define("LIBOMP_USE_HWLOC", True), + define("LIBOMP_HWLOC_INSTALL_DIR", spec["hwloc"].prefix), ] - if python.version >= Version("3.0.0"): - cmake_args.append("-DPython3_EXECUTABLE={0}".format( - python.command.path)) + version_suffix = spec.variants['version_suffix'].value + if version_suffix != 'none': + cmake_args.append(define('LLVM_VERSION_SUFFIX', version_suffix)) + + if python.version >= Version("3"): + cmake_args.append(define("Python3_EXECUTABLE", python.command.path)) else: - cmake_args.append("-DPython2_EXECUTABLE={0}".format( - python.command.path)) + cmake_args.append(define("Python2_EXECUTABLE", python.command.path)) projects = [] + runtimes = [] if "+cuda" in spec: - cmake_args.extend( - [ - "-DCUDA_TOOLKIT_ROOT_DIR:PATH=" + spec["cuda"].prefix, - "-DLIBOMPTARGET_NVPTX_COMPUTE_CAPABILITIES={0}".format( - ",".join(spec.variants["cuda_arch"].value) - ), - "-DCLANG_OPENMP_NVPTX_DEFAULT_ARCH=sm_{0}".format( - spec.variants["cuda_arch"].value[-1] - ), - ] - ) + cmake_args.extend([ + define("CUDA_TOOLKIT_ROOT_DIR", spec["cuda"].prefix), + define("LIBOMPTARGET_NVPTX_COMPUTE_CAPABILITIES", + ",".join(spec.variants["cuda_arch"].value)), + define("CLANG_OPENMP_NVPTX_DEFAULT_ARCH", + "sm_{0}".format(spec.variants["cuda_arch"].value[-1])), + ]) + if "+omp_as_runtime" in spec: + cmake_args.extend([ + define("LIBOMPTARGET_NVPTX_ENABLE_BCLIB", True), + # work around bad libelf detection in libomptarget + define("LIBOMPTARGET_DEP_LIBELF_INCLUDE_DIR", + spec["libelf"].prefix.include), + ]) else: # still build libomptarget but disable cuda - cmake_args.extend( - [ - "-DCUDA_TOOLKIT_ROOT_DIR:PATH=IGNORE", - "-DCUDA_SDK_ROOT_DIR:PATH=IGNORE", - "-DCUDA_NVCC_EXECUTABLE:FILEPATH=IGNORE", - "-DLIBOMPTARGET_DEP_CUDA_DRIVER_LIBRARIES:STRING=IGNORE", - ] - ) - - if "+omp_debug" in spec: - cmake_args.append("-DLIBOMPTARGET_ENABLE_DEBUG:Bool=ON") + cmake_args.extend([ + define("CUDA_TOOLKIT_ROOT_DIR", "IGNORE"), + define("CUDA_SDK_ROOT_DIR", "IGNORE"), + define("CUDA_NVCC_EXECUTABLE", "IGNORE"), + define("LIBOMPTARGET_DEP_CUDA_DRIVER_LIBRARIES", "IGNORE"), + ]) - if "+python" in spec and "+lldb" in spec: - cmake_args.append("-DLLDB_USE_SYSTEM_SIX:Bool=TRUE") + cmake_args.append(from_variant("LIBOMPTARGET_ENABLE_DEBUG", "omp_debug")) - if "+lldb" in spec and spec.satisfies("@10.0.0:,doe"): - cmake_args.append("-DLLDB_ENABLE_PYTHON:Bool={0}".format( - 'ON' if '+python' in spec else 'OFF')) - if "+lldb" in spec and spec.satisfies("@:9.9.9"): - cmake_args.append("-DLLDB_DISABLE_PYTHON:Bool={0}".format( - 'ON' if '~python' in spec else 'OFF')) + if "+lldb" in spec: + if spec.version >= Version('10'): + cmake_args.append(from_variant("LLDB_ENABLE_PYTHON", 'python')) + else: + cmake_args.append(define("LLDB_DISABLE_PYTHON", + '~python' in spec)) + if spec.satisfies("@5.0.0: +python"): + cmake_args.append(define("LLDB_USE_SYSTEM_SIX", True)) if "+gold" in spec: cmake_args.append( - "-DLLVM_BINUTILS_INCDIR=" + spec["binutils"].prefix.include + define("LLVM_BINUTILS_INCDIR", spec["binutils"].prefix.include) ) if "+clang" in spec: projects.append("clang") projects.append("clang-tools-extra") - projects.append("openmp") + if "+omp_as_runtime" in spec: + runtimes.append("openmp") + else: + projects.append("openmp") + + if self.spec.satisfies("@8"): + cmake_args.append(define('CLANG_ANALYZER_ENABLE_Z3_SOLVER', + self.spec.satisfies('@8+z3'))) + if self.spec.satisfies("@9:"): + cmake_args.append(define('LLVM_ENABLE_Z3_SOLVER', + self.spec.satisfies('@9:+z3'))) + if "+flang" in spec: projects.append("flang") if "+lldb" in spec: @@ -439,53 +529,48 @@ class LlvmDoe(CMakePackage, CudaPackage): if "+libcxx" in spec: projects.append("libcxx") projects.append("libcxxabi") - cmake_args.append("-DCLANG_DEFAULT_CXX_STDLIB=libc++") if "+mlir" in spec: projects.append("mlir") if "+internal_unwind" in spec: projects.append("libunwind") if "+polly" in spec: projects.append("polly") - cmake_args.append("-DLINK_POLLY_INTO_TOOLS:Bool=ON") - - if "+shared_libs" in spec: - cmake_args.append("-DBUILD_SHARED_LIBS:Bool=ON") - if "+llvm_dylib" in spec: - cmake_args.append("-DLLVM_BUILD_LLVM_DYLIB:Bool=ON") - if "+omp_debug" in spec: - cmake_args.append("-DLIBOMPTARGET_ENABLE_DEBUG:Bool=ON") - - if "+split_dwarf" in spec: - cmake_args.append("-DLLVM_USE_SPLIT_DWARF:Bool=ON") + cmake_args.append(define("LINK_POLLY_INTO_TOOLS", True)) + + cmake_args.extend([ + from_variant("BUILD_SHARED_LIBS", "shared_libs"), + from_variant("LLVM_BUILD_LLVM_DYLIB", "llvm_dylib"), + from_variant("LLVM_LINK_LLVM_DYLIB", "link_llvm_dylib"), + from_variant("LLVM_USE_SPLIT_DWARF", "split_dwarf"), + # By default on Linux, libc++.so is a ldscript. CMake fails to add + # CMAKE_INSTALL_RPATH to it, which fails. Statically link libc++abi.a + # into libc++.so, linking with -lc++ or -stdlib=libc++ is enough. + define('LIBCXX_ENABLE_STATIC_ABI_LIBRARY', True) + ]) if "+all_targets" not in spec: # all is default on cmake targets = ["NVPTX", "AMDGPU"] - if spec.target.family == "x86" or spec.target.family == "x86_64": + if spec.version < Version("3.9.0"): + # Starting in 3.9.0 CppBackend is no longer a target (see + # LLVM_ALL_TARGETS in llvm's top-level CMakeLists.txt for + # the complete list of targets) + targets.append("CppBackend") + + if spec.target.family in ("x86", "x86_64"): targets.append("X86") elif spec.target.family == "arm": targets.append("ARM") elif spec.target.family == "aarch64": targets.append("AArch64") - elif ( - spec.target.family == "sparc" - or spec.target.family == "sparc64" - ): + elif spec.target.family in ("sparc", "sparc64"): targets.append("Sparc") - elif ( - spec.target.family == "ppc64" - or spec.target.family == "ppc64le" - or spec.target.family == "ppc" - or spec.target.family == "ppcle" - ): + elif spec.target.family in ("ppc64", "ppc64le", "ppc", "ppcle"): targets.append("PowerPC") - cmake_args.append( - "-DLLVM_TARGETS_TO_BUILD:STRING=" + ";".join(targets) - ) + cmake_args.append(define("LLVM_TARGETS_TO_BUILD", targets)) - if "+omp_tsan" in spec: - cmake_args.append("-DLIBOMP_TSAN_SUPPORT=ON") + cmake_args.append(from_variant("LIBOMP_TSAN_SUPPORT", "omp_tsan")) if spec.satisfies("@bolt"): projects.remove("openmp") @@ -495,64 +580,64 @@ class LlvmDoe(CMakePackage, CudaPackage): cmake_args.append("-DLIBOMP_USE_ARGOBOTS=ON") if self.compiler.name == "gcc": - gcc_prefix = ancestor(self.compiler.cc, 2) - cmake_args.append("-DGCC_INSTALL_PREFIX=" + gcc_prefix) + compiler = Executable(self.compiler.cc) + gcc_output = compiler('-print-search-dirs', output=str, error=str) + + for line in gcc_output.splitlines(): + if line.startswith("install:"): + # Get path and strip any whitespace + # (causes oddity with ancestor) + gcc_prefix = line.split(":")[1].strip() + gcc_prefix = ancestor(gcc_prefix, 4) + break + cmake_args.append(define("GCC_INSTALL_PREFIX", gcc_prefix)) - if spec.satisfies("platform=cray") or spec.satisfies("platform=linux"): - cmake_args.append("-DCMAKE_BUILD_WITH_INSTALL_RPATH=1") + # if spec.satisfies("platform=cray") or spec.satisfies("platform=linux"): + # cmake_args.append("-DCMAKE_BUILD_WITH_INSTALL_RPATH=1") if self.spec.satisfies("~code_signing platform=darwin"): - cmake_args.append('-DLLDB_USE_SYSTEM_DEBUGSERVER=ON') + cmake_args.append(define('LLDB_USE_SYSTEM_DEBUGSERVER', True)) # Semicolon seperated list of projects to enable - cmake_args.append( - "-DLLVM_ENABLE_PROJECTS:STRING={0}".format(";".join(projects)) - ) + cmake_args.append(define("LLVM_ENABLE_PROJECTS", projects)) - return cmake_args + # Semicolon seperated list of runtimes to enable + if runtimes: + cmake_args.append(define("LLVM_ENABLE_RUNTIMES", runtimes)) - @run_before("build") - def pre_install(self): - with working_dir(self.build_directory): - # When building shared libraries these need to be installed first - make("install-LLVMTableGen") - make("install-LLVMDemangle") - make("install-LLVMSupport") + return cmake_args @run_after("install") def post_install(self): spec = self.spec + define = CMakePackage.define - # unnecessary if we get bootstrap builds in here - if "+cuda" in self.spec: + # unnecessary if we build openmp via LLVM_ENABLE_RUNTIMES + if "+cuda ~omp_as_runtime" in self.spec: ompdir = "build-bootstrapped-omp" + prefix_paths = spack.build_environment.get_cmake_prefix_path(self) + prefix_paths.append(str(spec.prefix)) # rebuild libomptarget to get bytecode runtime library files with working_dir(ompdir, create=True): cmake_args = [ - self.stage.source_path + "/openmp", - "-DCMAKE_C_COMPILER:PATH={0}".format( - spec.prefix.bin + "/clang" - ), - "-DCMAKE_CXX_COMPILER:PATH={0}".format( - spec.prefix.bin + "/clang++" - ), - "-DCMAKE_INSTALL_PREFIX:PATH={0}".format(spec.prefix), + '-G', 'Ninja', + define('CMAKE_BUILD_TYPE', spec.variants['build_type'].value), + define("CMAKE_C_COMPILER", spec.prefix.bin + "/clang"), + define("CMAKE_CXX_COMPILER", spec.prefix.bin + "/clang++"), + define("CMAKE_INSTALL_PREFIX", spec.prefix), + define('CMAKE_PREFIX_PATH', prefix_paths) ] cmake_args.extend(self.cmake_args()) - cmake_args.append( - "-DLIBOMPTARGET_NVPTX_ENABLE_BCLIB:BOOL=TRUE" - ) - - # work around bad libelf detection in libomptarget - cmake_args.append( - "-DLIBOMPTARGET_DEP_LIBELF_INCLUDE_DIR:String={0}".format( - spec["libelf"].prefix.include - ) - ) + cmake_args.extend([ + define("LIBOMPTARGET_NVPTX_ENABLE_BCLIB", True), + define("LIBOMPTARGET_DEP_LIBELF_INCLUDE_DIR", + spec["libelf"].prefix.include), + self.stage.source_path + "/openmp", + ]) cmake(*cmake_args) - make() - make("install") + ninja() + ninja("install") if "+python" in self.spec: install_tree("llvm/bindings/python", site_packages_dir) diff --git a/var/spack/repos/builtin/packages/llvm-openmp/package.py b/var/spack/repos/builtin/packages/llvm-openmp/package.py index 41ae794211..41ae794211 100755..100644 --- a/var/spack/repos/builtin/packages/llvm-openmp/package.py +++ b/var/spack/repos/builtin/packages/llvm-openmp/package.py diff --git a/var/spack/repos/builtin/packages/llvm/llvm4-lld-ELF-Symbols.patch b/var/spack/repos/builtin/packages/llvm/llvm4-lld-ELF-Symbols.patch new file mode 100644 index 0000000000..1a86cda358 --- /dev/null +++ b/var/spack/repos/builtin/packages/llvm/llvm4-lld-ELF-Symbols.patch @@ -0,0 +1,112 @@ +--- a/lldb/include/lldb/Utility/TaskPool.h ++++ b/lldb/include/lldb/Utility/TaskPool.h +@@ -33,6 +33,7 @@ + #include <queue> + #include <thread> + #include <vector> ++#include <functional> + + // Global TaskPool class for running tasks in parallel on a set of worker thread + // created the first +# Fix lld templates: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=230463 +--- a/lld/ELF/LTO.cpp ++++ b/lld/ELF/LTO.cpp +@@ -158,7 +158,7 @@ + return Ret; + } + +-template void BitcodeCompiler::template add<ELF32LE>(BitcodeFile &); +-template void BitcodeCompiler::template add<ELF32BE>(BitcodeFile &); +-template void BitcodeCompiler::template add<ELF64LE>(BitcodeFile &); +-template void BitcodeCompiler::template add<ELF64BE>(BitcodeFile &); ++template void BitcodeCompiler::add<ELF32LE>(BitcodeFile &); ++template void BitcodeCompiler::add<ELF32BE>(BitcodeFile &); ++template void BitcodeCompiler::add<ELF64LE>(BitcodeFile &); ++template void BitcodeCompiler::add<ELF64BE>(BitcodeFile &); +--- a/lld/ELF/Symbols.cpp ++++ b/lld/ELF/Symbols.cpp +@@ -343,45 +343,45 @@ + template bool SymbolBody::hasThunk<ELF64LE>() const; + template bool SymbolBody::hasThunk<ELF64BE>() const; + +-template uint32_t SymbolBody::template getVA<ELF32LE>(uint32_t) const; +-template uint32_t SymbolBody::template getVA<ELF32BE>(uint32_t) const; +-template uint64_t SymbolBody::template getVA<ELF64LE>(uint64_t) const; +-template uint64_t SymbolBody::template getVA<ELF64BE>(uint64_t) const; +- +-template uint32_t SymbolBody::template getGotVA<ELF32LE>() const; +-template uint32_t SymbolBody::template getGotVA<ELF32BE>() const; +-template uint64_t SymbolBody::template getGotVA<ELF64LE>() const; +-template uint64_t SymbolBody::template getGotVA<ELF64BE>() const; +- +-template uint32_t SymbolBody::template getGotOffset<ELF32LE>() const; +-template uint32_t SymbolBody::template getGotOffset<ELF32BE>() const; +-template uint64_t SymbolBody::template getGotOffset<ELF64LE>() const; +-template uint64_t SymbolBody::template getGotOffset<ELF64BE>() const; +- +-template uint32_t SymbolBody::template getGotPltVA<ELF32LE>() const; +-template uint32_t SymbolBody::template getGotPltVA<ELF32BE>() const; +-template uint64_t SymbolBody::template getGotPltVA<ELF64LE>() const; +-template uint64_t SymbolBody::template getGotPltVA<ELF64BE>() const; +- +-template uint32_t SymbolBody::template getThunkVA<ELF32LE>() const; +-template uint32_t SymbolBody::template getThunkVA<ELF32BE>() const; +-template uint64_t SymbolBody::template getThunkVA<ELF64LE>() const; +-template uint64_t SymbolBody::template getThunkVA<ELF64BE>() const; +- +-template uint32_t SymbolBody::template getGotPltOffset<ELF32LE>() const; +-template uint32_t SymbolBody::template getGotPltOffset<ELF32BE>() const; +-template uint64_t SymbolBody::template getGotPltOffset<ELF64LE>() const; +-template uint64_t SymbolBody::template getGotPltOffset<ELF64BE>() const; +- +-template uint32_t SymbolBody::template getPltVA<ELF32LE>() const; +-template uint32_t SymbolBody::template getPltVA<ELF32BE>() const; +-template uint64_t SymbolBody::template getPltVA<ELF64LE>() const; +-template uint64_t SymbolBody::template getPltVA<ELF64BE>() const; +- +-template uint32_t SymbolBody::template getSize<ELF32LE>() const; +-template uint32_t SymbolBody::template getSize<ELF32BE>() const; +-template uint64_t SymbolBody::template getSize<ELF64LE>() const; +-template uint64_t SymbolBody::template getSize<ELF64BE>() const; ++template uint32_t SymbolBody::getVA<ELF32LE>(uint32_t) const; ++template uint32_t SymbolBody::getVA<ELF32BE>(uint32_t) const; ++template uint64_t SymbolBody::getVA<ELF64LE>(uint64_t) const; ++template uint64_t SymbolBody::getVA<ELF64BE>(uint64_t) const; ++ ++template uint32_t SymbolBody::getGotVA<ELF32LE>() const; ++template uint32_t SymbolBody::getGotVA<ELF32BE>() const; ++template uint64_t SymbolBody::getGotVA<ELF64LE>() const; ++template uint64_t SymbolBody::getGotVA<ELF64BE>() const; ++ ++template uint32_t SymbolBody::getGotOffset<ELF32LE>() const; ++template uint32_t SymbolBody::getGotOffset<ELF32BE>() const; ++template uint64_t SymbolBody::getGotOffset<ELF64LE>() const; ++template uint64_t SymbolBody::getGotOffset<ELF64BE>() const; ++ ++template uint32_t SymbolBody::getGotPltVA<ELF32LE>() const; ++template uint32_t SymbolBody::getGotPltVA<ELF32BE>() const; ++template uint64_t SymbolBody::getGotPltVA<ELF64LE>() const; ++template uint64_t SymbolBody::getGotPltVA<ELF64BE>() const; ++ ++template uint32_t SymbolBody::getThunkVA<ELF32LE>() const; ++template uint32_t SymbolBody::getThunkVA<ELF32BE>() const; ++template uint64_t SymbolBody::getThunkVA<ELF64LE>() const; ++template uint64_t SymbolBody::getThunkVA<ELF64BE>() const; ++ ++template uint32_t SymbolBody::getGotPltOffset<ELF32LE>() const; ++template uint32_t SymbolBody::getGotPltOffset<ELF32BE>() const; ++template uint64_t SymbolBody::getGotPltOffset<ELF64LE>() const; ++template uint64_t SymbolBody::getGotPltOffset<ELF64BE>() const; ++ ++template uint32_t SymbolBody::getPltVA<ELF32LE>() const; ++template uint32_t SymbolBody::getPltVA<ELF32BE>() const; ++template uint64_t SymbolBody::getPltVA<ELF64LE>() const; ++template uint64_t SymbolBody::getPltVA<ELF64BE>() const; ++ ++template uint32_t SymbolBody::getSize<ELF32LE>() const; ++template uint32_t SymbolBody::getSize<ELF32BE>() const; ++template uint64_t SymbolBody::getSize<ELF64LE>() const; ++template uint64_t SymbolBody::getSize<ELF64BE>() const; + + template class elf::Undefined<ELF32LE>; + template class elf::Undefined<ELF32BE>; diff --git a/var/spack/repos/builtin/packages/llvm/llvm5-lld-ELF-Symbols.patch b/var/spack/repos/builtin/packages/llvm/llvm5-lld-ELF-Symbols.patch new file mode 100644 index 0000000000..727647d3b8 --- /dev/null +++ b/var/spack/repos/builtin/packages/llvm/llvm5-lld-ELF-Symbols.patch @@ -0,0 +1,33 @@ +# Fix lld templates: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=230463 +--- a/lld/ELF/Symbols.cpp ++++ b/lld/ELF/Symbols.cpp +@@ -383,17 +383,17 @@ + return B.getName(); + } + +-template uint32_t SymbolBody::template getSize<ELF32LE>() const; +-template uint32_t SymbolBody::template getSize<ELF32BE>() const; +-template uint64_t SymbolBody::template getSize<ELF64LE>() const; +-template uint64_t SymbolBody::template getSize<ELF64BE>() const; ++template uint32_t SymbolBody::getSize<ELF32LE>() const; ++template uint32_t SymbolBody::getSize<ELF32BE>() const; ++template uint64_t SymbolBody::getSize<ELF64LE>() const; ++template uint64_t SymbolBody::getSize<ELF64BE>() const; + +-template bool DefinedRegular::template isMipsPIC<ELF32LE>() const; +-template bool DefinedRegular::template isMipsPIC<ELF32BE>() const; +-template bool DefinedRegular::template isMipsPIC<ELF64LE>() const; +-template bool DefinedRegular::template isMipsPIC<ELF64BE>() const; ++template bool DefinedRegular::isMipsPIC<ELF32LE>() const; ++template bool DefinedRegular::isMipsPIC<ELF32BE>() const; ++template bool DefinedRegular::isMipsPIC<ELF64LE>() const; ++template bool DefinedRegular::isMipsPIC<ELF64BE>() const; + +-template uint32_t SharedSymbol::template getAlignment<ELF32LE>() const; +-template uint32_t SharedSymbol::template getAlignment<ELF32BE>() const; +-template uint32_t SharedSymbol::template getAlignment<ELF64LE>() const; +-template uint32_t SharedSymbol::template getAlignment<ELF64BE>() const; ++template uint32_t SharedSymbol::getAlignment<ELF32LE>() const; ++template uint32_t SharedSymbol::getAlignment<ELF32BE>() const; ++template uint32_t SharedSymbol::getAlignment<ELF64LE>() const; ++template uint32_t SharedSymbol::getAlignment<ELF64BE>() const; diff --git a/var/spack/repos/builtin/packages/llvm/llvm5-sanitizer-ustat.patch b/var/spack/repos/builtin/packages/llvm/llvm5-sanitizer-ustat.patch new file mode 100644 index 0000000000..531a3c5d6d --- /dev/null +++ b/var/spack/repos/builtin/packages/llvm/llvm5-sanitizer-ustat.patch @@ -0,0 +1,25 @@ +# <sys/ustat.h> has been removed from glibc 2.28, +# backport fix from llvm-6.0.1: +--- a/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_posix.cc ++++ b/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_posix.cc +@@ -159,1 +159,0 @@ +-#include <sys/ustat.h> +@@ -252,5 +252,17 @@ + + #if SANITIZER_LINUX && !SANITIZER_ANDROID +- unsigned struct_ustat_sz = sizeof(struct ustat); ++ // Use pre-computed size of struct ustat to avoid <sys/ustat.h> which ++ // has been removed from glibc 2.28. ++#if defined(__aarch64__) || defined(__s390x__) || defined (__mips64) \ ++ || defined(__powerpc64__) || defined(__arch64__) || defined(__sparcv9) \ ++ || defined(__x86_64__) ++#define SIZEOF_STRUCT_USTAT 32 ++#elif defined(__arm__) || defined(__i386__) || defined(__mips__) \ ++ || defined(__powerpc__) || defined(__s390__) ++#define SIZEOF_STRUCT_USTAT 20 ++#else ++#error Unknown size of struct ustat ++#endif ++ unsigned struct_ustat_sz = SIZEOF_STRUCT_USTAT; + unsigned struct_rlimit64_sz = sizeof(struct rlimit64); + unsigned struct_statvfs64_sz = sizeof(struct statvfs64); diff --git a/var/spack/repos/builtin/packages/llvm/missing-includes.patch b/var/spack/repos/builtin/packages/llvm/missing-includes.patch new file mode 100644 index 0000000000..e88b8fcfde --- /dev/null +++ b/var/spack/repos/builtin/packages/llvm/missing-includes.patch @@ -0,0 +1,23 @@ +# https://github.com/spack/spack/issues/24270 (This hunk is upstream since llvm-10) +--- a/llvm/include/llvm/Demangle/MicrosoftDemangleNodes.h ++++ b/llvm/include/llvm/Demangle/MicrosoftDemangleNodes.h +@@ -4,6 +4,8 @@ + #include "llvm/Demangle/Compiler.h" + #include "llvm/Demangle/StringView.h" + #include <array> ++#include <cstdint> ++#include <string> + + class OutputStream; + +# https://github.com/spack/spack/pull/27233 +--- a/llvm/utils/benchmark/src/benchmark_register.h ++++ b/llvm/utils/benchmark/src/benchmark_register.h +@@ -2,6 +2,7 @@ + #define BENCHMARK_REGISTER_H + + #include <vector> ++#include <limits> + + #include "check.h" + diff --git a/var/spack/repos/builtin/packages/llvm/no_cyclades.patch b/var/spack/repos/builtin/packages/llvm/no_cyclades.patch new file mode 100644 index 0000000000..10f9d0796b --- /dev/null +++ b/var/spack/repos/builtin/packages/llvm/no_cyclades.patch @@ -0,0 +1,81 @@ +diff --git a/compiler-rt/lib/sanitizer_common/sanitizer_common_interceptors_ioctl.inc b/compiler-rt/lib/sanitizer_common/sanitizer_common_interceptors_ioctl.inc +--- a/compiler-rt/lib/sanitizer_common/sanitizer_common_interceptors_ioctl.inc ++++ b/compiler-rt/lib/sanitizer_common/sanitizer_common_interceptors_ioctl.inc +@@ -370,15 +370,6 @@ + + #if SANITIZER_GLIBC + // _(SIOCDEVPLIP, WRITE, struct_ifreq_sz); // the same as EQL_ENSLAVE +- _(CYGETDEFTHRESH, WRITE, sizeof(int)); +- _(CYGETDEFTIMEOUT, WRITE, sizeof(int)); +- _(CYGETMON, WRITE, struct_cyclades_monitor_sz); +- _(CYGETTHRESH, WRITE, sizeof(int)); +- _(CYGETTIMEOUT, WRITE, sizeof(int)); +- _(CYSETDEFTHRESH, NONE, 0); +- _(CYSETDEFTIMEOUT, NONE, 0); +- _(CYSETTHRESH, NONE, 0); +- _(CYSETTIMEOUT, NONE, 0); + _(EQL_EMANCIPATE, WRITE, struct_ifreq_sz); + _(EQL_ENSLAVE, WRITE, struct_ifreq_sz); + _(EQL_GETMASTRCFG, WRITE, struct_ifreq_sz); +diff --git a/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_posix.h b/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_posix.h +--- a/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_posix.h ++++ b/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_posix.h +@@ -983,7 +983,6 @@ + + #if SANITIZER_LINUX && !SANITIZER_ANDROID + extern unsigned struct_ax25_parms_struct_sz; +-extern unsigned struct_cyclades_monitor_sz; + extern unsigned struct_input_keymap_entry_sz; + extern unsigned struct_ipx_config_data_sz; + extern unsigned struct_kbdiacrs_sz; +@@ -1328,15 +1327,6 @@ + #endif // SANITIZER_LINUX + + #if SANITIZER_LINUX && !SANITIZER_ANDROID +-extern unsigned IOCTL_CYGETDEFTHRESH; +-extern unsigned IOCTL_CYGETDEFTIMEOUT; +-extern unsigned IOCTL_CYGETMON; +-extern unsigned IOCTL_CYGETTHRESH; +-extern unsigned IOCTL_CYGETTIMEOUT; +-extern unsigned IOCTL_CYSETDEFTHRESH; +-extern unsigned IOCTL_CYSETDEFTIMEOUT; +-extern unsigned IOCTL_CYSETTHRESH; +-extern unsigned IOCTL_CYSETTIMEOUT; + extern unsigned IOCTL_EQL_EMANCIPATE; + extern unsigned IOCTL_EQL_ENSLAVE; + extern unsigned IOCTL_EQL_GETMASTRCFG; +diff --git a/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_posix.cpp b/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_posix.cpp +--- a/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_posix.cpp ++++ b/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_posix.cpp +@@ -143,7 +143,6 @@ + # include <sys/procfs.h> + #endif + #include <sys/user.h> +-#include <linux/cyclades.h> + #include <linux/if_eql.h> + #include <linux/if_plip.h> + #include <linux/lp.h> +@@ -460,7 +459,6 @@ + + #if SANITIZER_GLIBC + unsigned struct_ax25_parms_struct_sz = sizeof(struct ax25_parms_struct); +- unsigned struct_cyclades_monitor_sz = sizeof(struct cyclades_monitor); + #if EV_VERSION > (0x010000) + unsigned struct_input_keymap_entry_sz = sizeof(struct input_keymap_entry); + #else +@@ -824,15 +822,6 @@ + #endif // SANITIZER_LINUX + + #if SANITIZER_LINUX && !SANITIZER_ANDROID +- unsigned IOCTL_CYGETDEFTHRESH = CYGETDEFTHRESH; +- unsigned IOCTL_CYGETDEFTIMEOUT = CYGETDEFTIMEOUT; +- unsigned IOCTL_CYGETMON = CYGETMON; +- unsigned IOCTL_CYGETTHRESH = CYGETTHRESH; +- unsigned IOCTL_CYGETTIMEOUT = CYGETTIMEOUT; +- unsigned IOCTL_CYSETDEFTHRESH = CYSETDEFTHRESH; +- unsigned IOCTL_CYSETDEFTIMEOUT = CYSETDEFTIMEOUT; +- unsigned IOCTL_CYSETTHRESH = CYSETTHRESH; +- unsigned IOCTL_CYSETTIMEOUT = CYSETTIMEOUT; + unsigned IOCTL_EQL_EMANCIPATE = EQL_EMANCIPATE; + unsigned IOCTL_EQL_ENSLAVE = EQL_ENSLAVE; + unsigned IOCTL_EQL_GETMASTRCFG = EQL_GETMASTRCFG; diff --git a/var/spack/repos/builtin/packages/llvm/no_cyclades9.patch b/var/spack/repos/builtin/packages/llvm/no_cyclades9.patch new file mode 100644 index 0000000000..7532865e6d --- /dev/null +++ b/var/spack/repos/builtin/packages/llvm/no_cyclades9.patch @@ -0,0 +1,42 @@ +--- a/compiler-rt/lib/sanitizer_common/sanitizer_common_interceptors_ioctl.inc ++++ b/compiler-rt/lib/sanitizer_common/sanitizer_common_interceptors_ioctl.inc +@@ -370,9 +370,0 @@ +- _(CYGETDEFTHRESH, WRITE, sizeof(int)); +- _(CYGETDEFTIMEOUT, WRITE, sizeof(int)); +- _(CYGETMON, WRITE, struct_cyclades_monitor_sz); +- _(CYGETTHRESH, WRITE, sizeof(int)); +- _(CYGETTIMEOUT, WRITE, sizeof(int)); +- _(CYSETDEFTHRESH, NONE, 0); +- _(CYSETDEFTIMEOUT, NONE, 0); +- _(CYSETTHRESH, NONE, 0); +- _(CYSETTIMEOUT, NONE, 0); +--- a/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_posix.h ++++ b/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_posix.h +@@ -986,1 +986,0 @@ +- extern unsigned struct_cyclades_monitor_sz; +@@ -1331,9 +1327,0 @@ +- extern unsigned IOCTL_CYGETDEFTHRESH; +- extern unsigned IOCTL_CYGETDEFTIMEOUT; +- extern unsigned IOCTL_CYGETMON; +- extern unsigned IOCTL_CYGETTHRESH; +- extern unsigned IOCTL_CYGETTIMEOUT; +- extern unsigned IOCTL_CYSETDEFTHRESH; +- extern unsigned IOCTL_CYSETDEFTIMEOUT; +- extern unsigned IOCTL_CYSETTHRESH; +- extern unsigned IOCTL_CYSETTIMEOUT; +--- a/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_posix.cc ++++ b/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_posix.cc +@@ -143,1 +143,0 @@ +-#include <linux/cyclades.h> +@@ -460,1 +459,0 @@ +- unsigned struct_cyclades_monitor_sz = sizeof(struct cyclades_monitor); +@@ -824,9 +822,0 @@ +- unsigned IOCTL_CYGETDEFTHRESH = CYGETDEFTHRESH; +- unsigned IOCTL_CYGETDEFTIMEOUT = CYGETDEFTIMEOUT; +- unsigned IOCTL_CYGETMON = CYGETMON; +- unsigned IOCTL_CYGETTHRESH = CYGETTHRESH; +- unsigned IOCTL_CYGETTIMEOUT = CYGETTIMEOUT; +- unsigned IOCTL_CYSETDEFTHRESH = CYSETDEFTHRESH; +- unsigned IOCTL_CYSETDEFTIMEOUT = CYSETDEFTIMEOUT; +- unsigned IOCTL_CYSETTHRESH = CYSETTHRESH; +- unsigned IOCTL_CYSETTIMEOUT = CYSETTIMEOUT; diff --git a/var/spack/repos/builtin/packages/llvm/package.py b/var/spack/repos/builtin/packages/llvm/package.py index c5a88cd9fb..8d353b071b 100644 --- a/var/spack/repos/builtin/packages/llvm/package.py +++ b/var/spack/repos/builtin/packages/llvm/package.py @@ -2,12 +2,14 @@ # Spack Project Developers. See the top-level COPYRIGHT file for details. # # SPDX-License-Identifier: (Apache-2.0 OR MIT) +import os import os.path import re import sys import llnl.util.tty as tty +import spack.build_environment import spack.util.executable @@ -23,10 +25,12 @@ class Llvm(CMakePackage, CudaPackage): url = "https://github.com/llvm/llvm-project/archive/llvmorg-7.1.0.tar.gz" list_url = "https://releases.llvm.org/download.html" git = "https://github.com/llvm/llvm-project" - maintainers = ['trws', 'naromero77'] + maintainers = ['trws', 'haampie'] tags = ['e4s'] + generator = 'Ninja' + family = "compiler" # Used by lmod # fmt: off @@ -129,6 +133,11 @@ class Llvm(CMakePackage, CudaPackage): "components in a single shared library", ) variant( + "link_llvm_dylib", + default=False, + description="Link LLVM tools against the LLVM shared library", + ) + variant( "all_targets", default=False, description="Build all supported targets, default targets " @@ -154,10 +163,15 @@ class Llvm(CMakePackage, CudaPackage): description="Enable code-signing on macOS") variant("python", default=False, description="Install python bindings") + variant('version_suffix', default='none', description="Add a symbol suffix") + variant('z3', default=False, description='Use Z3 for the clang static analyzer') + extends("python", when="+python") # Build dependency depends_on("cmake@3.4.3:", type="build") + depends_on('cmake@3.13.4:', type='build', when='@12:') + depends_on("ninja", type="build") depends_on("python@2.7:2.8", when="@:4 ~python", type="build") depends_on("python", when="@5: ~python", type="build") depends_on("pkgconfig", type="build") @@ -165,7 +179,7 @@ class Llvm(CMakePackage, CudaPackage): # Universal dependency depends_on("python@2.7:2.8", when="@:4+python") depends_on("python", when="@5:+python") - depends_on("z3", when="@9:") + depends_on('z3', when='@8:+clang+z3') # openmp dependencies depends_on("perl-data-dumper", type=("build")) @@ -189,6 +203,7 @@ class Llvm(CMakePackage, CudaPackage): depends_on("isl", when="@:3.6 +polly") conflicts("+llvm_dylib", when="+shared_libs") + conflicts("+link_llvm_dylib", when="~llvm_dylib") conflicts("+lldb", when="~clang") conflicts("+libcxx", when="~clang") conflicts("+internal_unwind", when="~clang") @@ -197,11 +212,16 @@ class Llvm(CMakePackage, CudaPackage): # Introduced in version 11 as a part of LLVM and not a separate package. conflicts("+flang", when="@:10") + conflicts('~mlir', when='+flang', msg='Flang requires MLIR') + # Older LLVM do not build with newer compilers, and vice versa - conflicts("%gcc@11:", when="@:7") conflicts("%gcc@8:", when="@:5") conflicts("%gcc@:5.0", when="@8:") - conflicts("%apple-clang@13:", when="@:9") + # clang/lib: a lambda parameter cannot shadow an explicitly captured entity + conflicts("%clang@8:", when="@:4") + + # When these versions are concretized, but not explicitly with +libcxx, these + # conflicts will enable clingo to set ~libcxx, making the build successful: # libc++ of LLVM13, see https://libcxx.llvm.org/#platform-and-compiler-support # @13 does not support %gcc@:10 https://bugs.llvm.org/show_bug.cgi?id=51359#c1 @@ -210,7 +230,15 @@ class Llvm(CMakePackage, CudaPackage): # AppleClang 12 - latest stable release per Xcode release page conflicts("%gcc@:10", when="@13:+libcxx") conflicts("%clang@:10", when="@13:+libcxx") - conflicts("%apple_clang@:11", when="@13:+libcxx") + conflicts("%apple-clang@:11", when="@13:+libcxx") + + # libcxx-4 and compiler-rt-4 fail to build with "newer" clang and gcc versions: + conflicts('%gcc@7:', when='@:4+libcxx') + conflicts('%clang@6:', when='@:4+libcxx') + conflicts('%apple-clang@6:', when='@:4+libcxx') + conflicts('%gcc@7:', when='@:4+compiler-rt') + conflicts('%clang@6:', when='@:4+compiler-rt') + conflicts('%apple-clang@6:', when='@:4+compiler-rt') # OMP TSAN exists in > 5.x conflicts("+omp_tsan", when="@:5") @@ -246,10 +274,22 @@ class Llvm(CMakePackage, CudaPackage): # Github issue #4986 patch("llvm_gcc7.patch", when="@4.0.0:4.0.1+lldb %gcc@7.0:") - # https://github.com/spack/spack/issues/24270 - patch('https://src.fedoraproject.org/rpms/llvm10/raw/7ce7ebd066955ea95ba2b491c41fbc6e4ee0643a/f/llvm10-gcc11.patch', - sha256='958c64838c9d469be514eef195eca0f8c3ab069bc4b64a48fad59991c626bab8', - when='@8:11 %gcc@11:') + # sys/ustat.h has been removed in favour of statfs from glibc-2.28. Use fixed sizes: + patch('llvm5-sanitizer-ustat.patch', when="@4:6+compiler-rt") + + # Fix lld templates: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=230463 + patch('llvm4-lld-ELF-Symbols.patch', when="@4+lld%clang@6:") + patch('llvm5-lld-ELF-Symbols.patch', when="@5+lld%clang@7:") + + # Fix missing std:size_t in 'llvm@4:5' when built with '%clang@7:' + patch('xray_buffer_queue-cstddef.patch', when="@4:5+compiler-rt%clang@7:") + + # https://github.com/llvm/llvm-project/commit/947f9692440836dcb8d88b74b69dd379d85974ce + patch('sanitizer-ipc_perm_mode.patch', when="@5:7+compiler-rt%clang@11:") + patch('sanitizer-ipc_perm_mode.patch', when="@5:9+compiler-rt%gcc@9:") + + # github.com/spack/spack/issues/24270: MicrosoftDemangle for %gcc@10: and %clang@13: + patch('missing-includes.patch', when='@8:9') # Backport from llvm master + additional fix # see https://bugs.llvm.org/show_bug.cgi?id=39696 @@ -276,6 +316,11 @@ class Llvm(CMakePackage, CudaPackage): # Workaround for issue https://github.com/spack/spack/issues/18197 patch('llvm7_intel.patch', when='@7 %intel@18.0.2,19.0.4') + # Remove cyclades support to build against newer kernel headers + # https://reviews.llvm.org/D102059 + patch('no_cyclades.patch', when='@10:12.0.0') + patch('no_cyclades9.patch', when='@6:9') + # The functions and attributes below implement external package # detection for LLVM. See: # @@ -439,6 +484,17 @@ class Llvm(CMakePackage, CudaPackage): return(None, flags, None) return(flags, None, None) + def setup_build_environment(self, env): + """When using %clang, add only its ld.lld-$ver and/or ld.lld to our PATH""" + if self.compiler.name in ['clang', 'apple-clang']: + for lld in 'ld.lld-{0}'.format(self.compiler.version.version[0]), 'ld.lld': + bin = os.path.join(os.path.dirname(self.compiler.cc), lld) + sym = os.path.join(self.stage.path, 'ld.lld') + if os.path.exists(bin) and not os.path.exists(sym): + mkdirp(self.stage.path) + os.symlink(bin, sym) + env.prepend_path('PATH', self.stage.path) + def setup_run_environment(self, env): if "+clang" in self.spec: env.set("CC", join_path(self.spec.prefix.bin, "clang")) @@ -465,6 +521,10 @@ class Llvm(CMakePackage, CudaPackage): define("LIBOMP_HWLOC_INSTALL_DIR", spec["hwloc"].prefix), ] + version_suffix = spec.variants['version_suffix'].value + if version_suffix != 'none': + cmake_args.append(define('LLVM_VERSION_SUFFIX', version_suffix)) + if python.version >= Version("3"): cmake_args.append(define("Python3_EXECUTABLE", python.command.path)) else: @@ -521,6 +581,13 @@ class Llvm(CMakePackage, CudaPackage): else: projects.append("openmp") + if self.spec.satisfies("@8"): + cmake_args.append(define('CLANG_ANALYZER_ENABLE_Z3_SOLVER', + self.spec.satisfies('@8+z3'))) + if self.spec.satisfies("@9:"): + cmake_args.append(define('LLVM_ENABLE_Z3_SOLVER', + self.spec.satisfies('@9:+z3'))) + if "+flang" in spec: projects.append("flang") if "+lldb" in spec: @@ -540,9 +607,16 @@ class Llvm(CMakePackage, CudaPackage): projects.append("polly") cmake_args.append(define("LINK_POLLY_INTO_TOOLS", True)) - cmake_args.append(from_variant("BUILD_SHARED_LIBS", "shared_libs")) - cmake_args.append(from_variant("LLVM_BUILD_LLVM_DYLIB", "llvm_dylib")) - cmake_args.append(from_variant("LLVM_USE_SPLIT_DWARF", "split_dwarf")) + cmake_args.extend([ + from_variant("BUILD_SHARED_LIBS", "shared_libs"), + from_variant("LLVM_BUILD_LLVM_DYLIB", "llvm_dylib"), + from_variant("LLVM_LINK_LLVM_DYLIB", "link_llvm_dylib"), + from_variant("LLVM_USE_SPLIT_DWARF", "split_dwarf"), + # By default on Linux, libc++.so is a ldscript. CMake fails to add + # CMAKE_INSTALL_RPATH to it, which fails. Statically link libc++abi.a + # into libc++.so, linking with -lc++ or -stdlib=libc++ is enough. + define('LIBCXX_ENABLE_STATIC_ABI_LIBRARY', True) + ]) if "+all_targets" not in spec: # all is default on cmake @@ -581,12 +655,6 @@ class Llvm(CMakePackage, CudaPackage): break cmake_args.append(define("GCC_INSTALL_PREFIX", gcc_prefix)) - if spec.satisfies("@4.0.0:"): - if spec.satisfies("platform=cray") or spec.satisfies( - "platform=linux" - ): - cmake_args.append(define("CMAKE_BUILD_WITH_INSTALL_RPATH", "1")) - if self.spec.satisfies("~code_signing platform=darwin"): cmake_args.append(define('LLDB_USE_SYSTEM_DEBUGSERVER', True)) @@ -599,43 +667,37 @@ class Llvm(CMakePackage, CudaPackage): return cmake_args - @run_before("build") - def pre_install(self): - with working_dir(self.build_directory): - # When building shared libraries these need to be installed first - make("install-LLVMTableGen") - if self.spec.version >= Version("4.0.0"): - # LLVMDemangle target was added in 4.0.0 - make("install-LLVMDemangle") - make("install-LLVMSupport") - @run_after("install") def post_install(self): spec = self.spec define = CMakePackage.define # unnecessary if we build openmp via LLVM_ENABLE_RUNTIMES - if "+cuda" in self.spec and "+omp_as_runtime" not in self.spec: + if "+cuda ~omp_as_runtime" in self.spec: ompdir = "build-bootstrapped-omp" + prefix_paths = spack.build_environment.get_cmake_prefix_path(self) + prefix_paths.append(str(spec.prefix)) # rebuild libomptarget to get bytecode runtime library files with working_dir(ompdir, create=True): cmake_args = [ - self.stage.source_path + "/openmp", + '-G', 'Ninja', + define('CMAKE_BUILD_TYPE', spec.variants['build_type'].value), define("CMAKE_C_COMPILER", spec.prefix.bin + "/clang"), define("CMAKE_CXX_COMPILER", spec.prefix.bin + "/clang++"), define("CMAKE_INSTALL_PREFIX", spec.prefix), + define('CMAKE_PREFIX_PATH', prefix_paths) ] cmake_args.extend(self.cmake_args()) - cmake_args.append(define("LIBOMPTARGET_NVPTX_ENABLE_BCLIB", - True)) - - # work around bad libelf detection in libomptarget - cmake_args.append(define("LIBOMPTARGET_DEP_LIBELF_INCLUDE_DIR", - spec["libelf"].prefix.include)) + cmake_args.extend([ + define("LIBOMPTARGET_NVPTX_ENABLE_BCLIB", True), + define("LIBOMPTARGET_DEP_LIBELF_INCLUDE_DIR", + spec["libelf"].prefix.include), + self.stage.source_path + "/openmp", + ]) cmake(*cmake_args) - make() - make("install") + ninja() + ninja("install") if "+python" in self.spec: install_tree("llvm/bindings/python", site_packages_dir) diff --git a/var/spack/repos/builtin/packages/llvm/sanitizer-ipc_perm_mode.patch b/var/spack/repos/builtin/packages/llvm/sanitizer-ipc_perm_mode.patch new file mode 100644 index 0000000000..8f91703a32 --- /dev/null +++ b/var/spack/repos/builtin/packages/llvm/sanitizer-ipc_perm_mode.patch @@ -0,0 +1,9 @@ +# ipc_perm.mode is not used and has changed from short to int over architecures +# and versions. The last change was in glibc-2.31. +# LLVM upstream decided to not check ipc_perm.mode below glibc-2.31, +# because it is not actually used in the sanitizer: +# github.com/llvm/llvm-project/commit/947f9692440836dcb8d88b74b69dd379d85974ce +--- a/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_posix.cc ++++ b/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_posix.cc +@@ -1143,1 +1143,0 @@ +-CHECK_SIZE_AND_OFFSET(ipc_perm, mode); diff --git a/var/spack/repos/builtin/packages/llvm/xray_buffer_queue-cstddef.patch b/var/spack/repos/builtin/packages/llvm/xray_buffer_queue-cstddef.patch new file mode 100644 index 0000000000..b5ca841e3e --- /dev/null +++ b/var/spack/repos/builtin/packages/llvm/xray_buffer_queue-cstddef.patch @@ -0,0 +1,5 @@ +# Fix missing std:size_t in 'llvm@4:5' for build with '%clang@7:' +--- a/compiler-rt/lib/xray/xray_buffer_queue.h ++++ b/compiler-rt/lib/xray/xray_buffer_queue.h +@@ -18,0 +18,1 @@ ++#include <cstddef> diff --git a/var/spack/repos/builtin/packages/lmod/package.py b/var/spack/repos/builtin/packages/lmod/package.py index 7b5ebb7468..21544be611 100644 --- a/var/spack/repos/builtin/packages/lmod/package.py +++ b/var/spack/repos/builtin/packages/lmod/package.py @@ -19,6 +19,7 @@ class Lmod(AutotoolsPackage): homepage = 'https://www.tacc.utexas.edu/research-development/tacc-projects/lmod' url = "https://github.com/TACC/Lmod/archive/8.5.6.tar.gz" + version('8.5.27', sha256='bec911ff6b20de7d38587d1f9c351f58ed7bdf10cb3938089c82944b5ee0ab0d') version('8.5.6', sha256='1d1058ffa33a661994c1b2af4bfee4aa1539720cd5c13d61e18adbfb231bbe88') version('8.3', sha256='c2c2e9e6b387b011ee617cb009a2199caac8bf200330cb8a065ceedee09e664a') version('8.2.10', sha256='15676d82235faf5c755a747f0e318badb1a5c3ff1552fa8022c67ff083ee9e2f') diff --git a/var/spack/repos/builtin/packages/lua/package.py b/var/spack/repos/builtin/packages/lua/package.py index c3b021d96f..4263fdc5da 100644 --- a/var/spack/repos/builtin/packages/lua/package.py +++ b/var/spack/repos/builtin/packages/lua/package.py @@ -63,10 +63,10 @@ class Lua(Package): else: target = 'linux' make('INSTALL_TOP=%s' % prefix, - 'MYLDFLAGS=-L%s -L%s' % ( - spec['readline'].prefix.lib, - spec['ncurses'].prefix.lib), - 'MYLIBS=-lncursesw -ltinfow', + 'MYLDFLAGS=' + ' '.join(( + spec['readline'].libs.search_flags, + spec['ncurses'].libs.search_flags)), + 'MYLIBS=%s' % spec['ncurses'].libs.link_flags, 'CC=%s -std=gnu99 %s' % (spack_cc, self.compiler.cc_pic_flag), target) diff --git a/var/spack/repos/builtin/packages/lvm2/package.py b/var/spack/repos/builtin/packages/lvm2/package.py index 64d1f43f4b..c07de19114 100644 --- a/var/spack/repos/builtin/packages/lvm2/package.py +++ b/var/spack/repos/builtin/packages/lvm2/package.py @@ -18,8 +18,9 @@ class Lvm2(AutotoolsPackage, SourcewarePackage): """ homepage = "https://www.sourceware.org/lvm2" - sourceware_mirror_path = "lvm2/LVM2.2.03.05.tgz" + sourceware_mirror_path = 'lvm2/LVM2.2.03.14.tgz' + version('2.03.14', sha256='4a63bc8a084a8ae3c7bc5e6530cac264139d218575c64416c8b99e3fe039a05c') version('2.03.05', sha256='ca52815c999b20c6d25e3192f142f081b93d01f07b9d787e99664b169dba2700') version('2.03.04', sha256='f151f36fc0039997d2d9369b607b9262568b1a268afe19fd1535807355402142') version('2.03.03', sha256='cedefa63ec5ae1b62fedbfddfc30706c095be0fc7c6aaed6fd1c50bc8c840dde') diff --git a/var/spack/repos/builtin/packages/madgraph5amc/package.py b/var/spack/repos/builtin/packages/madgraph5amc/package.py index fcfcbc1f8e..8d5ef29444 100644 --- a/var/spack/repos/builtin/packages/madgraph5amc/package.py +++ b/var/spack/repos/builtin/packages/madgraph5amc/package.py @@ -90,6 +90,9 @@ class Madgraph5amc(Package): make(parallel=False) with working_dir(join_path('vendor', 'StdHEP')): + for m in ['mcfio/arch_mcfio', 'src/stdhep_arch']: + arch = FileFilter(m) + arch.filter('CC.*=.*', 'CC = {0}'.format(spack_cc)) make(parallel=False) if '+atlas' in spec: diff --git a/var/spack/repos/builtin/packages/maker/package.py b/var/spack/repos/builtin/packages/maker/package.py index 1416e21916..eb5ba97412 100644 --- a/var/spack/repos/builtin/packages/maker/package.py +++ b/var/spack/repos/builtin/packages/maker/package.py @@ -49,6 +49,7 @@ class Maker(Package): depends_on('perl', type=('build', 'run')) depends_on('perl-module-build', type='build') depends_on('perl-dbi', type=('build', 'run')) + depends_on('perl-dbd-mysql', type=('build', 'run')) depends_on('perl-dbd-pg', type=('build', 'run')) depends_on('perl-dbd-sqlite', type=('build', 'run')) depends_on('perl-forks', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/mariadb-c-client/package.py b/var/spack/repos/builtin/packages/mariadb-c-client/package.py index e6f2e0904b..0cc9690e86 100644 --- a/var/spack/repos/builtin/packages/mariadb-c-client/package.py +++ b/var/spack/repos/builtin/packages/mariadb-c-client/package.py @@ -57,6 +57,7 @@ class MariadbCClient(CMakePackage): depends_on('pcre') depends_on('openssl') depends_on('zlib') + depends_on('krb5') # patch needed for cmake-3.20 patch('https://github.com/mariadb-corporation/mariadb-connector-c/commit/242cab8c.patch', diff --git a/var/spack/repos/builtin/packages/mbedtls/fix-dt-needed-shared-libs.patch b/var/spack/repos/builtin/packages/mbedtls/fix-dt-needed-shared-libs.patch new file mode 100644 index 0000000000..f57d437825 --- /dev/null +++ b/var/spack/repos/builtin/packages/mbedtls/fix-dt-needed-shared-libs.patch @@ -0,0 +1,75 @@ +From ae52fe2bd1016db816ec9a531fa1103f717c7441 Mon Sep 17 00:00:00 2001 +From: Harmen Stoppels <harmenstoppels@gmail.com> +Date: Mon, 8 Nov 2021 15:41:49 +0100 +Subject: [PATCH] Fix DT_NEEDED + +--- + library/Makefile | 14 +++++++------- + 1 file changed, 7 insertions(+), 7 deletions(-) + +diff --git a/library/Makefile b/library/Makefile +index 0ee6e4f36..b6604e69b 100644 +--- a/library/Makefile ++++ b/library/Makefile +@@ -196,7 +196,7 @@ endif + + libmbedtls.$(SOEXT_TLS): $(OBJS_TLS) libmbedx509.so + echo " LD $@" +- $(CC) -shared -Wl,-soname,$@ -L. -lmbedcrypto -lmbedx509 $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@ $(OBJS_TLS) ++ $(CC) -shared -Wl,-soname,$@ -o $@ $(OBJS_TLS) -L. -lmbedx509 -lmbedcrypto $(LOCAL_LDFLAGS) $(LDFLAGS) + + libmbedtls.so: libmbedtls.$(SOEXT_TLS) + echo " LN $@ -> $<" +@@ -204,11 +204,11 @@ libmbedtls.so: libmbedtls.$(SOEXT_TLS) + + libmbedtls.dylib: $(OBJS_TLS) libmbedx509.dylib + echo " LD $@" +- $(CC) -dynamiclib -L. -lmbedcrypto -lmbedx509 $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@ $(OBJS_TLS) ++ $(CC) -dynamiclib -o $@ $(OBJS_TLS) -L. -lmbedx509 -lmbedcrypto $(LOCAL_LDFLAGS) $(LDFLAGS) + + libmbedtls.dll: $(OBJS_TLS) libmbedx509.dll + echo " LD $@" +- $(CC) -shared -Wl,-soname,$@ -Wl,--out-implib,$@.a -o $@ $(OBJS_TLS) -lws2_32 -lwinmm -lgdi32 -L. -lmbedcrypto -lmbedx509 -static-libgcc $(LOCAL_LDFLAGS) $(LDFLAGS) ++ $(CC) -shared -Wl,-soname,$@ -Wl,--out-implib,$@.a -o $@ $(OBJS_TLS) -lws2_32 -lwinmm -lgdi32 -L. -lmbedx509 -lmbedcrypto -static-libgcc $(LOCAL_LDFLAGS) $(LDFLAGS) + + # x509 + libmbedx509.a: $(OBJS_X509) +@@ -223,7 +223,7 @@ endif + + libmbedx509.$(SOEXT_X509): $(OBJS_X509) libmbedcrypto.so + echo " LD $@" +- $(CC) -shared -Wl,-soname,$@ -L. -lmbedcrypto $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@ $(OBJS_X509) ++ $(CC) -shared -Wl,-soname,$@ -o $@ $(OBJS_X509) -L. -lmbedcrypto $(LOCAL_LDFLAGS) $(LDFLAGS) + + libmbedx509.so: libmbedx509.$(SOEXT_X509) + echo " LN $@ -> $<" +@@ -231,7 +231,7 @@ libmbedx509.so: libmbedx509.$(SOEXT_X509) + + libmbedx509.dylib: $(OBJS_X509) libmbedcrypto.dylib + echo " LD $@" +- $(CC) -dynamiclib -L. -lmbedcrypto $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@ $(OBJS_X509) ++ $(CC) -dynamiclib -o $@ $(OBJS_X509) -L. -lmbedcrypto $(LOCAL_LDFLAGS) $(LDFLAGS) + + libmbedx509.dll: $(OBJS_X509) libmbedcrypto.dll + echo " LD $@" +@@ -250,7 +250,7 @@ endif + + libmbedcrypto.$(SOEXT_CRYPTO): $(OBJS_CRYPTO) + echo " LD $@" +- $(CC) -shared -Wl,-soname,$@ $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@ $(OBJS_CRYPTO) ++ $(CC) -shared -Wl,-soname,$@ -o $@ $(OBJS_CRYPTO) $(LOCAL_LDFLAGS) $(LDFLAGS) + + libmbedcrypto.so: libmbedcrypto.$(SOEXT_CRYPTO) + echo " LN $@ -> $<" +@@ -258,7 +258,7 @@ libmbedcrypto.so: libmbedcrypto.$(SOEXT_CRYPTO) + + libmbedcrypto.dylib: $(OBJS_CRYPTO) + echo " LD $@" +- $(CC) -dynamiclib $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@ $(OBJS_CRYPTO) ++ $(CC) -dynamiclib -o $@ $(OBJS_CRYPTO) $(LOCAL_LDFLAGS) $(LDFLAGS) + + libmbedcrypto.dll: $(OBJS_CRYPTO) + echo " LD $@" +-- +2.25.1 + diff --git a/var/spack/repos/builtin/packages/mbedtls/package.py b/var/spack/repos/builtin/packages/mbedtls/package.py index d09ec5b43f..e45ecb5460 100644 --- a/var/spack/repos/builtin/packages/mbedtls/package.py +++ b/var/spack/repos/builtin/packages/mbedtls/package.py @@ -15,10 +15,11 @@ class Mbedtls(MakefilePackage): homepage = "https://tls.mbed.org" url = "https://github.com/ARMmbed/mbedtls/archive/mbedtls-2.2.1.tar.gz" - maintainers = ['mwkrentel'] + maintainers = ['mwkrentel', 'haampie'] version('3.0.0', sha256='377d376919be19f07c7e7adeeded088a525be40353f6d938a78e4f986bce2ae0') version('2.27.0', sha256='4f6a43f06ded62aa20ef582436a39b65902e1126cbbe2fb17f394e9e9a552767') + version('2.24.0', sha256='b5a779b5f36d5fc4cba55faa410685f89128702423ad07b36c5665441a06a5f3') version('2.16.11', sha256='51bb9685c4f4ff9255da5659ff346b89dcaf129e3ba0f3b2b0c48a1a7495e701') version('2.16.9', sha256='b7ca99ee10551b5b13242b7effebefd2a5cc38c287e5f5be1267d51ee45effe3', deprecated=True) version('2.16.7', sha256='4786b7d1676f5e4d248f3a7f2d28446876d64962634f060ff21b92c690cfbe86', deprecated=True) @@ -42,6 +43,10 @@ class Mbedtls(MakefilePackage): depends_on('python@3:', type='test', when='@3:') depends_on('python@:2', type='test', when='@:2') + # See https://github.com/ARMmbed/mbedtls/pull/5126 + # and the 2.x backport: https://github.com/ARMmbed/mbedtls/pull/5133 + patch('fix-dt-needed-shared-libs.patch', when='@2.7:3.0.0') + build_type_to_flags = { 'Debug': '-O0 -g', 'Release': '-O3', diff --git a/var/spack/repos/builtin/packages/meep/package.py b/var/spack/repos/builtin/packages/meep/package.py index d7bfb0df83..9710da837d 100644 --- a/var/spack/repos/builtin/packages/meep/package.py +++ b/var/spack/repos/builtin/packages/meep/package.py @@ -11,31 +11,50 @@ class Meep(AutotoolsPackage): software package developed at MIT to model electromagnetic systems.""" homepage = "http://ab-initio.mit.edu/wiki/index.php/Meep" - url = "http://ab-initio.mit.edu/meep/meep-1.3.tar.gz" - list_url = "http://ab-initio.mit.edu/meep/old" - - version('1.3', sha256='564c1ff1b413a3487cf81048a45deabfdac4243a1a37ce743f4fcf0c055fd438') - version('1.2.1', sha256='f1f0683e5688d231f7dd1863939677148fc27a6744c03510e030c85d6c518ea5') - version('1.1.1', sha256='7a97b5555da1f9ea2ec6eed5c45bd97bcd6ddbd54bdfc181f46c696dffc169f2') - - variant('blas', default=True, description='Enable BLAS support') - variant('lapack', default=True, description='Enable LAPACK support') - variant('harminv', default=True, description='Enable Harminv support') - variant('guile', default=True, description='Enable Guilde support') - variant('libctl', default=True, description='Enable libctl support') - variant('mpi', default=True, description='Enable MPI support') - variant('hdf5', default=True, description='Enable HDF5 support') - variant('gsl', default=True, description='Enable GSL support') + git = "https://github.com/NanoComp/meep.git" + url = "https://github.com/NanoComp/meep/archive/refs/tags/v1.21.0.tar.gz" + + version('master', branch='master') + + version('1.21.0', sha256='71911cd2f38b15bdafe9a27ad111f706f24717894d5f9b6f9f19c6c10a0d5896') + version('1.3', sha256='564c1ff1b413a3487cf81048a45deabfdac4243a1a37ce743f4fcf0c055fd438', + url='http://ab-initio.mit.edu/meep/meep-1.3.tar.gz') + version('1.2.1', sha256='f1f0683e5688d231f7dd1863939677148fc27a6744c03510e030c85d6c518ea5', + url='http://ab-initio.mit.edu/meep/meep-1.2.1.tar.gz') + version('1.1.1', sha256='7a97b5555da1f9ea2ec6eed5c45bd97bcd6ddbd54bdfc181f46c696dffc169f2', + url='http://ab-initio.mit.edu/meep/old/meep-1.1.1.tar.gz') + + variant('blas', default=True, description='Enable BLAS support') + variant('lapack', default=True, description='Enable LAPACK support') + variant('harminv', default=True, description='Enable Harminv support') + variant('guile', default=True, description='Enable Guilde support') + variant('libctl', default=True, description='Enable libctl support') + variant('mpi', default=True, description='Enable MPI support') + variant('hdf5', default=True, description='Enable HDF5 support') + variant('gsl', default=True, description='Enable GSL support') + variant('python', default=True, description='Enable Python support') + variant('single', default=False, description='Enable Single Precision') + + depends_on('autoconf', type='build', when='@1.21.0') + depends_on('automake', type='build', when='@1.21.0') + depends_on('libtool', type='build', when='@1.21.0') depends_on('blas', when='+blas') depends_on('lapack', when='+lapack') depends_on('harminv', when='+harminv') - depends_on('guile', when='+guile') - depends_on('libctl@3.2:', when='+libctl') + depends_on('guile@:2', when='@:1.4+guile') + depends_on('guile@2:', when='@1.4:+guile') + depends_on('libctl@3.2', when='@:1.3+libctl') + depends_on('libctl@4:', when='+libctl') depends_on('mpi', when='+mpi') depends_on('hdf5~mpi', when='+hdf5~mpi') depends_on('hdf5+mpi', when='+hdf5+mpi') depends_on('gsl', when='+gsl') + with when('+python'): + depends_on('python') + depends_on('py-numpy') + depends_on('swig') + depends_on('py-mpi4py', when='+mpi') def configure_args(self): spec = self.spec @@ -72,6 +91,18 @@ class Meep(AutotoolsPackage): else: config_args.append('--without-hdf5') + if '+python' in spec: + config_args.append('--with-python') + else: + config_args.append('--without-python') + config_args.append('--without-scheme') + + if '+single' in spec: + config_args.append('--enable-single') + + if spec.satisfies('@1.21.0:'): + config_args.append('--enable-maintainer-mode') + return config_args def check(self): diff --git a/var/spack/repos/builtin/packages/megahit/amd.patch b/var/spack/repos/builtin/packages/megahit/amd.patch index 6f99f616b2..6f99f616b2 100755..100644 --- a/var/spack/repos/builtin/packages/megahit/amd.patch +++ b/var/spack/repos/builtin/packages/megahit/amd.patch diff --git a/var/spack/repos/builtin/packages/mercury/package.py b/var/spack/repos/builtin/packages/mercury/package.py index e3a76d0ecf..efdc99a486 100644 --- a/var/spack/repos/builtin/packages/mercury/package.py +++ b/var/spack/repos/builtin/packages/mercury/package.py @@ -15,6 +15,7 @@ class Mercury(CMakePackage): maintainers = ['soumagne'] tags = ['e4s'] version('master', branch='master', submodules=True) + version('2.1.0', sha256='9a58437161e9273b1b1c484d2f1a477a89eea9afe84575415025d47656f3761b') version('2.0.1', sha256='335946d9620ac669643ffd9861a5fb3ee486834bab674b7779eaac9d6662e3fa') version('2.0.0', sha256='9e80923712e25df56014309df70660e828dbeabbe5fcc82ee024bcc86e7eb6b7') version('1.0.1', sha256='02febd56c401ef7afa250caf28d012b37dee842bfde7ee16fcd2f741b9cf25b3') @@ -22,11 +23,11 @@ class Mercury(CMakePackage): version('0.9.0', sha256='40868e141cac035213fe79400f8926823fb1f5a0651fd7027cbe162b063843ef') variant('bmi', default=False, description='Use BMI plugin') - variant('cci', default=False, description='Use CCI plugin') variant('mpi', default=False, description='Use MPI plugin') - variant('ofi', default=True, description='Use OFI libfabric plugin') + variant('ofi', default=True, when='@1.0.0:', description='Use OFI libfabric plugin') # NOTE: the sm plugin does not require any package dependency. variant('sm', default=True, description='Use shared-memory plugin') + variant('ucx', default=False, when='@2.1.0:', description='Use UCX plugin') # NOTE: if boostsys is False, mercury will install its own copy # of the preprocessor headers. variant('boostsys', default=True, @@ -36,7 +37,7 @@ class Mercury(CMakePackage): # NOTE: the 'udreg' variant requires that the MPICH_GNI_NDREG_ENTRIES=1024 # environment variable be set at run time to avoid conflicts with # Cray-MPICH if libfabric and MPI are used at the same time - variant('udreg', default=False, + variant('udreg', default=False, when='@1.0.0:+ofi', description='Enable udreg on supported Cray platforms') variant('debug', default=False, description='Enable Mercury to print debug output') @@ -44,16 +45,16 @@ class Mercury(CMakePackage): description='Checksum verify all request/response messages') depends_on('cmake@2.8.12.2:', type='build') - # depends_on('cci', when='+cci') # TODO: add CCI package depends_on('bmi', when='+bmi') depends_on('mpi', when='+mpi') - depends_on('libfabric@1.5:', when='+ofi') - depends_on('openpa@1.0.3:', when='%gcc@:4.8') + with when('+ofi'): + depends_on('libfabric@1.5:', when='@:2.0.1') + depends_on('libfabric@1.7:', when='@2.1.0:') + # openpa dependency is removed in 2.1.0 + depends_on('openpa@1.0.3:', when='@:2.0.1%gcc@:4.8') depends_on('boost@1.48:', when='+boostsys') depends_on('boost', when='@:0.9') # internal boost headers were added in 1.0.0 - - conflicts('+ofi', when='@:0.9') # libfabric support was added in 1.0.0 - conflicts('~ofi', when='+udreg') # udreg option is specific to OFI + depends_on('ucx+thread_multiple', when='+ucx') # Fix CMake check_symbol_exists # See https://github.com/mercury-hpc/mercury/issues/299 @@ -68,52 +69,63 @@ class Mercury(CMakePackage): def cmake_args(self): """Populate cmake arguments for Mercury.""" spec = self.spec - variant_bool = lambda feature: str(feature in spec) + define = self.define + define_from_variant = self.define_from_variant parallel_tests = '+mpi' in spec and self.run_tests cmake_args = [ - '-DBUILD_SHARED_LIBS:BOOL=%s' % variant_bool('+shared'), - '-DBUILD_TESTING:BOOL=%s' % str(self.run_tests), - '-DMERCURY_ENABLE_PARALLEL_TESTING:BOOL=%s' % str(parallel_tests), - '-DMERCURY_USE_BOOST_PP:BOOL=ON', - '-DMERCURY_USE_CHECKSUMS:BOOL=%s' % variant_bool('+checksum'), - '-DMERCURY_USE_SYSTEM_MCHECKSUM:BOOL=OFF', - '-DMERCURY_USE_XDR:BOOL=OFF', - '-DNA_USE_BMI:BOOL=%s' % variant_bool('+bmi'), - '-DNA_USE_CCI:BOOL=%s' % variant_bool('+cci'), - '-DNA_USE_MPI:BOOL=%s' % variant_bool('+mpi'), - '-DNA_USE_SM:BOOL=%s' % variant_bool('+sm'), + define_from_variant('BUILD_SHARED_LIBS', 'shared'), + define('BUILD_TESTING', self.run_tests), + define('MERCURY_USE_BOOST_PP', True), + define_from_variant('MERCURY_USE_CHECKSUMS', 'checksum'), + define('MERCURY_USE_SYSTEM_MCHECKSUM', False), + define('MERCURY_USE_XDR', False), + define_from_variant('NA_USE_BMI', 'bmi'), + define_from_variant('NA_USE_MPI', 'mpi'), + define_from_variant('NA_USE_SM', 'sm'), ] + if '@2.1.0:' in spec: + cmake_args.append( + define_from_variant('NA_USE_UCX', 'ucx') + ) + if '@2.0.0:' in spec: cmake_args.extend([ - '-DMERCURY_ENABLE_DEBUG:BOOL=%s' % variant_bool('+debug'), + define_from_variant('MERCURY_ENABLE_DEBUG', 'debug'), + define('MERCURY_TESTING_ENABLE_PARALLEL', parallel_tests), ]) # Previous versions of mercury had more extensive CMake options if '@:1.0.1' in spec: cmake_args.extend([ - '-DMERCURY_ENABLE_POST_LIMIT:BOOL=OFF', - '-DMERCURY_ENABLE_VERBOSE_ERROR=%s' % variant_bool('+debug'), - '-DMERCURY_USE_EAGER_BULK:BOOL=ON', - '-DMERCURY_USE_SELF_FORWARD:BOOL=ON', + define('MERCURY_ENABLE_PARALLEL_TESTING', parallel_tests), + define('MERCURY_ENABLE_POST_LIMIT', False), + define_from_variant('MERCURY_ENABLE_VERBOSE_ERROR', 'debug'), + define('MERCURY_USE_EAGER_BULK', True), + define('MERCURY_USE_SELF_FORWARD', True), ]) if '@1.0.0:' in spec: cmake_args.extend([ - '-DMERCURY_USE_SYSTEM_BOOST:BOOL=%s' - % variant_bool('+boostsys'), - '-DNA_USE_OFI:BOOL=%s' % variant_bool('+ofi'), + define_from_variant('MERCURY_USE_SYSTEM_BOOST', 'boostsys'), + define_from_variant('NA_USE_OFI', 'ofi'), ]) if '+ofi' in spec: - cmake_args.append( - '-DNA_OFI_GNI_USE_UDREG:BOOL=%s' % variant_bool('+udreg') - ) + ofi_fabrics = spec['libfabric'].variants['fabrics'].value + if 'gni' in ofi_fabrics: + cmake_args.append( + define_from_variant('NA_OFI_GNI_USE_UDREG', 'udreg') + ) if self.run_tests: + supported = ['sockets', 'tcp', 'verbs', 'psm2', 'gni'] + ofi_test_fabrics = list( + filter(lambda x: x in supported, ofi_fabrics) + ) cmake_args.append( - '-DNA_OFI_TESTING_PROTOCOL:STRING={0}'.format( - ';'.join(spec['libfabric'].variants['fabrics'].value) + define('NA_OFI_TESTING_PROTOCOL', format( + ';'.join(ofi_test_fabrics)) ) ) diff --git a/var/spack/repos/builtin/packages/mesa/package.py b/var/spack/repos/builtin/packages/mesa/package.py index cd1dc46b36..7460269d40 100644 --- a/var/spack/repos/builtin/packages/mesa/package.py +++ b/var/spack/repos/builtin/packages/mesa/package.py @@ -19,6 +19,10 @@ class Mesa(MesonPackage): url = "https://archive.mesa3d.org/mesa-20.2.1.tar.xz" version('master', tag='master') + version('21.3.1', sha256='2b0dc2540cb192525741d00f706dbc4586349185dafc65729c7fda0800cc474d') + version('21.2.6', sha256='1e7e22d93c6e8859fa044b1121119d26b2e67e4184b92ebb81c66497dc80c954') + version('21.2.5', sha256='8e49585fb760d973723dab6435d0c86f7849b8305b1e6d99f475138d896bacbb') + version('21.2.4', sha256='fe6ede82d1ac02339da3c2ec1820a379641902fd351a52cc01153f76eff85b44') version('21.2.3', sha256='7245284a159d2484770e1835a673e79e4322a9ddf43b17859668244946db7174') version('21.2.1', sha256='2c65e6710b419b67456a48beefd0be827b32db416772e0e363d5f7d54dc01787') version('21.0.3', sha256='565c6f4bd2d5747b919454fc1d439963024fc78ca56fd05158c3b2cde2f6912b') @@ -35,6 +39,7 @@ class Mesa(MesonPackage): depends_on('gettext', type='build') depends_on('python@3:', type='build') depends_on('py-mako@0.8.0:', type='build') + depends_on('unwind') depends_on('expat') depends_on('zlib@1.2.3:') @@ -169,9 +174,19 @@ class Mesa(MesonPackage): args.append(opt_enable(num_frontends > 1, 'shared-glapi')) if '+llvm' in spec: + # Fix builds on hosts where /usr/bin/llvm-config-* is found and provides an + # incompatible version. Ensure that the llvm-config of spec['llvm'] is used. + args.append('--native-file') + args.append('meson-native-config.ini') + mkdirp(self.build_directory) + with working_dir(self.build_directory): + with open('meson-native-config.ini', 'w') as native_config: + llvm_config = spec['llvm'].prefix.bin + '/llvm-config' + native_config.write('[binaries]\n') + native_config.write("llvm-config = '{0}'\n".format(llvm_config)) args.append('-Dllvm=enabled') args.append(opt_enable( - '+link_dylib' in spec['llvm'], 'shared-llvm')) + '+llvm_dylib' in spec['llvm'], 'shared-llvm')) else: args.append('-Dllvm=disabled') diff --git a/var/spack/repos/builtin/packages/mesa18/package.py b/var/spack/repos/builtin/packages/mesa18/package.py index b75ef64751..dbafa810d0 100644 --- a/var/spack/repos/builtin/packages/mesa18/package.py +++ b/var/spack/repos/builtin/packages/mesa18/package.py @@ -136,7 +136,7 @@ class Mesa18(AutotoolsPackage): if '+llvm' in spec: args.append('--enable-llvm') args.append('--with-llvm-prefix=%s' % spec['llvm'].prefix) - if '+link_dylib' in spec['llvm']: + if '+llvm_dylib' in spec['llvm']: args.append('--enable-llvm-shared-libs') else: args.append('--disable-llvm-shared-libs') diff --git a/var/spack/repos/builtin/packages/meshtool/package.py b/var/spack/repos/builtin/packages/meshtool/package.py index 8e4bdc2ac8..6c6661bcaf 100644 --- a/var/spack/repos/builtin/packages/meshtool/package.py +++ b/var/spack/repos/builtin/packages/meshtool/package.py @@ -16,6 +16,7 @@ class Meshtool(MakefilePackage): version('master', branch='master') # Version to use with openCARP releases + version('oc8.2', commit='6c5cfbd067120901f15a04bf63beec409bda6dc9') version('oc8.1', commit="6c5cfbd067120901f15a04bf63beec409bda6dc9") version('oc7.0', commit="6c5cfbd067120901f15a04bf63beec409bda6dc9") diff --git a/var/spack/repos/builtin/packages/mfem/mfem-4.3-cusparse-11.4.patch b/var/spack/repos/builtin/packages/mfem/mfem-4.3-cusparse-11.4.patch new file mode 100644 index 0000000000..faec3c1523 --- /dev/null +++ b/var/spack/repos/builtin/packages/mfem/mfem-4.3-cusparse-11.4.patch @@ -0,0 +1,80 @@ +diff --git a/linalg/sparsemat.cpp b/linalg/sparsemat.cpp +index 12136e035..0be73cf7b 100644 +--- a/linalg/sparsemat.cpp ++++ b/linalg/sparsemat.cpp +@@ -33,7 +33,12 @@ int SparseMatrix::SparseMatrixCount = 0; + cusparseHandle_t SparseMatrix::handle = nullptr; + size_t SparseMatrix::bufferSize = 0; + void * SparseMatrix::dBuffer = nullptr; +-#endif ++# if CUSPARSE_VERSION >= 11400 ++# define MFEM_CUSPARSE_ALG CUSPARSE_SPMV_CSR_ALG1 ++# else ++# define MFEM_CUSPARSE_ALG CUSPARSE_CSRMV_ALG1 ++# endif // CUSPARSE_VERSION >= 11400 ++#endif // MFEM_USE_CUDA + + void SparseMatrix::InitCuSparse() + { +@@ -679,25 +684,16 @@ void SparseMatrix::AddMult(const Vector &x, Vector &y, const double a) const + cusparseCreateMatDescr(&matA_descr); + cusparseSetMatIndexBase(matA_descr, CUSPARSE_INDEX_BASE_ZERO); + cusparseSetMatType(matA_descr, CUSPARSE_MATRIX_TYPE_GENERAL); +- + #endif +- + initBuffers = true; + } + // Allocate kernel space. Buffer is shared between different sparsemats + size_t newBufferSize = 0; + +-#if CUDA_VERSION >= 11020 +- cusparseSpMV_bufferSize(handle, CUSPARSE_OPERATION_NON_TRANSPOSE, &alpha, +- matA_descr, +- vecX_descr, &beta, vecY_descr, CUDA_R_64F, +- CUSPARSE_SPMV_CSR_ALG1, &newBufferSize); +-#elif CUDA_VERSION >= 10010 + cusparseSpMV_bufferSize(handle, CUSPARSE_OPERATION_NON_TRANSPOSE, &alpha, + matA_descr, + vecX_descr, &beta, vecY_descr, CUDA_R_64F, +- CUSPARSE_CSRMV_ALG1, &newBufferSize); +-#endif ++ MFEM_CUSPARSE_ALG, &newBufferSize); + + // Check if we need to resize + if (newBufferSize > bufferSize) +@@ -707,30 +703,22 @@ void SparseMatrix::AddMult(const Vector &x, Vector &y, const double a) const + CuMemAlloc(&dBuffer, bufferSize); + } + +-#if CUDA_VERSION >= 11020 +- // Update input/output vectors +- cusparseDnVecSetValues(vecX_descr, const_cast<double *>(d_x)); +- cusparseDnVecSetValues(vecY_descr, d_y); +- +- // Y = alpha A * X + beta * Y +- cusparseSpMV(handle, CUSPARSE_OPERATION_NON_TRANSPOSE, &alpha, matA_descr, +- vecX_descr, &beta, vecY_descr, CUDA_R_64F, CUSPARSE_SPMV_CSR_ALG1, dBuffer); +-#elif CUDA_VERSION >= 10010 ++#if CUDA_VERSION >= 10010 + // Update input/output vectors + cusparseDnVecSetValues(vecX_descr, const_cast<double *>(d_x)); + cusparseDnVecSetValues(vecY_descr, d_y); + + // Y = alpha A * X + beta * Y + cusparseSpMV(handle, CUSPARSE_OPERATION_NON_TRANSPOSE, &alpha, matA_descr, +- vecX_descr, &beta, vecY_descr, CUDA_R_64F, CUSPARSE_CSRMV_ALG1, dBuffer); ++ vecX_descr, &beta, vecY_descr, CUDA_R_64F, MFEM_CUSPARSE_ALG, dBuffer); + #else + cusparseDcsrmv(handle, CUSPARSE_OPERATION_NON_TRANSPOSE, + Height(), Width(), J.Capacity(), + &alpha, matA_descr, + const_cast<double *>(d_A), const_cast<int *>(d_I), const_cast<int *>(d_J), + const_cast<double *>(d_x), &beta, d_y); +-#endif +-#endif ++#endif // CUDA_VERSION >= 10010 ++#endif // MFEM_USE_CUDA + } + else + { diff --git a/var/spack/repos/builtin/packages/mfem/package.py b/var/spack/repos/builtin/packages/mfem/package.py index 616db65488..29e08d86a8 100644 --- a/var/spack/repos/builtin/packages/mfem/package.py +++ b/var/spack/repos/builtin/packages/mfem/package.py @@ -189,6 +189,7 @@ class Mfem(Package, CudaPackage, ROCmPackage): conflicts('+umpire', when='mfem@:4.0') conflicts('+amgx', when='mfem@:4.1') conflicts('+amgx', when='~cuda') + conflicts('+mpi~cuda ^hypre+cuda') conflicts('+superlu-dist', when='~mpi') conflicts('+strumpack', when='~mpi') @@ -301,6 +302,7 @@ class Mfem(Package, CudaPackage, ROCmPackage): patch('mfem-4.2-slepc.patch', when='@4.2.0+slepc') patch('mfem-4.2-petsc-3.15.0.patch', when='@4.2.0+petsc ^petsc@3.15.0:') patch('mfem-4.3-hypre-2.23.0.patch', when='@4.3.0') + patch('mfem-4.3-cusparse-11.4.patch', when='@4.3.0+cuda') # Patch to fix MFEM makefile syntax error. See # https://github.com/mfem/mfem/issues/1042 for the bug report and diff --git a/var/spack/repos/builtin/packages/microsocks/package.py b/var/spack/repos/builtin/packages/microsocks/package.py new file mode 100644 index 0000000000..16fd83dbc0 --- /dev/null +++ b/var/spack/repos/builtin/packages/microsocks/package.py @@ -0,0 +1,31 @@ +# Copyright 2013-2021 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 Microsocks(MakefilePackage): + """Microsocks is a multithreaded, small, efficient SOCKS5 server. + It is a SOCKS5 service that you can run on your remote boxes to + tunnel connections through them, if for some reason SSH doesn't + cut it for you.""" + + homepage = "https://github.com/rofl0r/microsocks" + url = "https://github.com/rofl0r/microsocks/archive/refs/tags/v1.0.2.tar.gz" + git = "https://github.com/rofl0r/microsocks.git" + + maintainers = ["jcpunk"] + + version("develop", branch="master") + version("1.0.2", sha256="5ece77c283e71f73b9530da46302fdb4f72a0ae139aa734c07fe532407a6211a") + + def flag_handler(self, name, flags): + if name == "cflags": + flags.append(self.compiler.c99_flag) + return (flags, None, None) + + @property + def install_targets(self): + return ["prefix={0}".format(self.prefix), "install"] diff --git a/var/spack/repos/builtin/packages/modylas/gcc_format.patch b/var/spack/repos/builtin/packages/modylas/gcc_format.patch index 086c4275aa..086c4275aa 100755..100644 --- a/var/spack/repos/builtin/packages/modylas/gcc_format.patch +++ b/var/spack/repos/builtin/packages/modylas/gcc_format.patch diff --git a/var/spack/repos/builtin/packages/modylas/makefile.patch b/var/spack/repos/builtin/packages/modylas/makefile.patch index b308306ff5..b308306ff5 100755..100644 --- a/var/spack/repos/builtin/packages/modylas/makefile.patch +++ b/var/spack/repos/builtin/packages/modylas/makefile.patch diff --git a/var/spack/repos/builtin/packages/mpibind/package.py b/var/spack/repos/builtin/packages/mpibind/package.py index d1bb6a77e9..86c0c79e6f 100644 --- a/var/spack/repos/builtin/packages/mpibind/package.py +++ b/var/spack/repos/builtin/packages/mpibind/package.py @@ -13,39 +13,48 @@ class Mpibind(AutotoolsPackage): to heterogeneous architectures""" homepage = "https://github.com/LLNL/mpibind" - url = "https://github.com/LLNL/mpibind/archive/refs/tags/v0.5.0.tar.gz" git = "https://github.com/LLNL/mpibind.git" maintainers = ['eleon'] - # The build process uses 'git describe --tags' to get the - # package version, thus we need 'get_full_repo' - version('master', branch='master', get_full_repo=True) - version('0.7.0', sha256='33077e7eb50322d2bcfe87bb3ea9159c2e49f6f045cbbcd2e69e763c3bec4330') - version('0.5.0', sha256='51bb27341109aeef121a8630bd56f5551c70ebfd337a459fb70ef9015d97d2b7') + # This package uses 'git describe --tags' to get the + # package version in Autotools' AC_INIT, thus + # 'get_full_repo' is needed. + # Furthermore, the package can't be cached because + # AC_INIT would be missing the version argument, + # which is derived with git. + version('master', branch='master', get_full_repo=True) + version('0.8.0', commit='ff38b9d', no_cache=True) + version('0.7.0', commit='3c437a9', no_cache=True) + version('0.5.0', commit='8698f07', no_cache=True) - variant('cuda', default=False, + variant('cuda', default=False, description='Build w/support for NVIDIA GPUs.') - variant('rocm', default=False, + variant('rocm', default=False, description='Build w/support for AMD GPUs.') - variant('flux', default=False, + variant('flux', default=False, description='Build the Flux plugin.') + variant('python', default=False, + description='Build the Python bindings.') - depends_on('autoconf', type='build') - depends_on('automake', type='build') - depends_on('libtool', type='build') - depends_on('m4', type='build') + depends_on('autoconf', type='build') + depends_on('automake', type='build') + depends_on('libtool', type='build') + depends_on('m4', type='build') depends_on('pkgconfig', type='build') - depends_on('hwloc@2:+libxml2', type='link') - depends_on('hwloc@2:+pci', when=(sys.platform != 'darwin'), type='link') - depends_on('hwloc@2:+cuda+nvml', when='+cuda', type='link') - depends_on('hwloc@2.4:+rocm+opencl', when='+rocm', type='link') + depends_on('hwloc@2:+libxml2', type='link') + depends_on('hwloc@2:+cuda+nvml', type='link', when='+cuda') + depends_on('hwloc@2.4:+rocm+opencl', type='link', when='+rocm') + depends_on('hwloc@2:+pci', type='link', + when=(sys.platform != 'darwin')) - # Requiring @master temporarily while Flux adds - # FLUX_SHELL_RC_PATH to a stable version (>0.29.0). - # mpibind will require at least such version. - depends_on('flux-core@master', when='+flux', type='link') + # flux-core >= 0.30.0 supports FLUX_SHELL_RC_PATH, + # which is needed to load the plugin into Flux + depends_on('flux-core@0.30:', when='+flux', type='link') + + depends_on('python@3:', when='+python', type=('build', 'run')) + depends_on('py-cffi', when='+python', type=('build', 'run')) def autoreconf(self, spec, prefix): autoreconf('--install', '--verbose', '--force') @@ -56,6 +65,8 @@ class Mpibind(AutotoolsPackage): env.prepend_path('FLUX_SHELL_RC_PATH', join_path(self.prefix, 'share', 'mpibind')) - # To build and run the tests, make sure 'libtap' is installed - # on the target system and is recognized by pkg-config. - # Unfortunately, libtap is not in Spack. + # To build and run the C unit tests, make sure 'libtap' + # is installed and recognized by pkgconfig. + # To build and run the Python unit tests, make sure 'pycotap' + # is installed in your Python environment. + # Unfortunately, 'tap' and 'pycotap' are not in Spack. diff --git a/var/spack/repos/builtin/packages/mpich/package.py b/var/spack/repos/builtin/packages/mpich/package.py index cae3ea70af..16d2035959 100644 --- a/var/spack/repos/builtin/packages/mpich/package.py +++ b/var/spack/repos/builtin/packages/mpich/package.py @@ -81,6 +81,15 @@ spack package at this time.''', description='Enable Argobots support') variant('fortran', default=True, description='Enable Fortran support') + variant( + 'two_level_namespace', + default=False, + description='''Build shared libraries and programs +built with the mpicc/mpifort/etc. compiler wrappers +with '-Wl,-commons,use_dylibs' and without +'-Wl,-flat_namespace'.''' + ) + provides('mpi@:3.1') provides('mpi@:3.0', when='@:3.1') provides('mpi@:2.2', when='@:1.2') @@ -475,6 +484,9 @@ spack package at this time.''', config_args.append('--with-thread-package=argobots') config_args.append('--with-argobots=' + spec['argobots'].prefix) + if '+two_level_namespace' in spec: + config_args.append('--enable-two-level-namespace') + return config_args @run_after('install') diff --git a/var/spack/repos/builtin/packages/mpitrampoline/package.py b/var/spack/repos/builtin/packages/mpitrampoline/package.py index 374396432b..3071c64f78 100644 --- a/var/spack/repos/builtin/packages/mpitrampoline/package.py +++ b/var/spack/repos/builtin/packages/mpitrampoline/package.py @@ -17,6 +17,12 @@ class Mpitrampoline(CMakePackage): maintainers = ['eschnett'] version('develop', branch='main') + version('2.8.0', sha256='bc2a075ced19e5f7ea547060e284887bdbb0761d34d1adb6f16d2e9e096a7d38') + version('2.7.0', sha256='b188657e41b240bba663ce5b3d7b73377a27a64edcc1e0aaa7c924cf00e30b42') + version('2.6.0', sha256='5425085f4b8772990b28a643b7dfc7ac37a399ee35ffa3d6113a06e5b508dfac') + version('2.5.0', sha256='26423749a6a45324062cbe82eb6934236b0c8ea17f9d5b594ed0c15ea8d0dbad') + version('2.4.0', sha256='e08785cf5b43c9913d890be44f6e7a551a83f34f389f6db9136db2379697fadd') + version('2.3.0', sha256='4559acb13d34b9a052752a9e0f928d31da54bfa7b05f31585bf6a66fadaceca4') version('2.2.0', sha256='fa213a7ac03b4c54d5c9281192fb604747d4b5be4ce9b54b4c740f3da7a6aaea') version('2.1.0', sha256='8794c07772ecc6d979ecf475653ae571a593d01ef2df51ccbc63c9f9d9c67856') version('2.0.0', sha256='50d4483f73ea4a79a9b6d025d3abba42f76809cba3165367f4810fb8798264b6') diff --git a/var/spack/repos/builtin/packages/mt-metis/non_x8664.patch b/var/spack/repos/builtin/packages/mt-metis/non_x8664.patch index 8eb305e5c2..8eb305e5c2 100755..100644 --- a/var/spack/repos/builtin/packages/mt-metis/non_x8664.patch +++ b/var/spack/repos/builtin/packages/mt-metis/non_x8664.patch diff --git a/var/spack/repos/builtin/packages/mujoco/package.py b/var/spack/repos/builtin/packages/mujoco/package.py new file mode 100644 index 0000000000..a29772b1f1 --- /dev/null +++ b/var/spack/repos/builtin/packages/mujoco/package.py @@ -0,0 +1,49 @@ +# Copyright 2013-2021 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) + +import platform + +from spack import * + + +class Mujoco(Package): + """MuJoCo is a physics engine that aims to facilitate research and + development in robotics, biomechanics, graphics and animation, and + other areas where fast and accurate simulation is needed. """ + + homepage = "https://mujoco.org/" + + mujoco_releases = { + '2.1.0': { + 'Linux-x86_64': 'a436ca2f4144c38b837205635bbd60ffe1162d5b44c87df22232795978d7d012', + 'Darwin-x86_64': '50226f859d9d3742fa57e1a0a92d656197ec5786f75bfa50ae00eb80fae25e90', + } + } + + for ver, packages in mujoco_releases.items(): + key = "{0}-{1}".format(platform.system(), platform.machine()) + pkg_sha256 = packages.get(key) + if pkg_sha256: + version(ver, sha256=pkg_sha256) + + def url_for_version(self, version): + + url = "https://mujoco.org/download/mujoco{0}-{1}-x86_64.tar.gz" + + system_map = { + 'Linux': 'linux', + 'Darwin': 'macos', + } + + return url.format(version.joined, system_map[platform.system()]) + + def install(self, spec, prefix): + copy_tree('.', prefix) + + def setup_run_environment(self, env): + env.prepend_path('CPATH', prefix.include) + env.prepend_path('LD_LIBRARY_PATH', prefix.bin) + if platform.system() == 'Darwin': + env.prepend_path('DYLD_LIBRARY_PATH', prefix.bin) diff --git a/var/spack/repos/builtin/packages/mumps/package.py b/var/spack/repos/builtin/packages/mumps/package.py index 9b9346785e..957a4ba9dc 100644 --- a/var/spack/repos/builtin/packages/mumps/package.py +++ b/var/spack/repos/builtin/packages/mumps/package.py @@ -182,11 +182,14 @@ class Mumps(Package): optf.append('-qfixed') # As of version 5.2.0, MUMPS is able to take advantage - # of the GEMMT BLAS extension. MKL is currently the only + # of the GEMMT BLAS extension. MKL and amdblis are the only # known BLAS implementation supported. if '@5.2.0: ^mkl' in self.spec: optf.append('-DGEMMT_AVAILABLE') + if '@5.2.0: ^amdblis@3.0:' in self.spec: + optf.append('-DGEMMT_AVAILABLE') + if '+openmp' in self.spec: optc.append(self.compiler.openmp_flag) optf.append(self.compiler.openmp_flag) @@ -360,7 +363,7 @@ class Mumps(Package): @property def libs(self): - component_libs = ['*mumps*', 'pord'] + component_libs = ['*mumps', 'mumps_common', 'pord'] return find_libraries(['lib' + comp for comp in component_libs], root=self.prefix.lib, shared=('+shared' in self.spec), diff --git a/var/spack/repos/builtin/packages/muparserx/package.py b/var/spack/repos/builtin/packages/muparserx/package.py new file mode 100644 index 0000000000..77997d7842 --- /dev/null +++ b/var/spack/repos/builtin/packages/muparserx/package.py @@ -0,0 +1,14 @@ +# Copyright 2013-2021 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) + + +class Muparserx(CMakePackage): + """A C++ Library for Parsing Expressions with Strings, Complex + Numbers, Vectors, Matrices and more. """ + + homepage = "https://beltoforion.de/en/muparserx/" + url = "https://github.com/beltoforion/muparserx/archive/refs/tags/v4.0.8.tar.gz" + + version('4.0.8', sha256='5913e0a4ca29a097baad1b78a4674963bc7a06e39ff63df3c73fbad6fadb34e1') diff --git a/var/spack/repos/builtin/packages/mvapich2-gdr/package.py b/var/spack/repos/builtin/packages/mvapich2-gdr/package.py index 5b5820641c..5b5820641c 100755..100644 --- a/var/spack/repos/builtin/packages/mvapich2-gdr/package.py +++ b/var/spack/repos/builtin/packages/mvapich2-gdr/package.py diff --git a/var/spack/repos/builtin/packages/mvapich2x/package.py b/var/spack/repos/builtin/packages/mvapich2x/package.py index 3a75e3876e..3a75e3876e 100755..100644 --- a/var/spack/repos/builtin/packages/mvapich2x/package.py +++ b/var/spack/repos/builtin/packages/mvapich2x/package.py diff --git a/var/spack/repos/builtin/packages/nalu-wind/package.py b/var/spack/repos/builtin/packages/nalu-wind/package.py index 5739579dcd..a1edc6fce6 100644 --- a/var/spack/repos/builtin/packages/nalu-wind/package.py +++ b/var/spack/repos/builtin/packages/nalu-wind/package.py @@ -52,16 +52,16 @@ class NaluWind(CMakePackage, CudaPackage): depends_on('mpi') depends_on('yaml-cpp@0.5.3:') - depends_on('trilinos@master,develop ~cuda~wrapper+exodus+tpetra+muelu+belos+ifpack2+amesos2+zoltan+stk+boost~superlu-dist~superlu+hdf5+shards~hypre cxxstd=14', when='~cuda') + depends_on('trilinos@master,develop ~cuda~wrapper+exodus+tpetra+muelu+belos+ifpack2+amesos2+zoltan+stk+boost~superlu-dist~superlu+hdf5+shards~hypre', when='~cuda') # Cannot build Trilinos as a shared library with STK on Darwin # https://github.com/trilinos/Trilinos/issues/2994 - depends_on('trilinos@master,develop ~cuda~wrapper+exodus+tpetra+muelu+belos+ifpack2+amesos2+zoltan+stk+boost~superlu-dist~superlu+hdf5+shards~hypre~shared cxxstd=14', when=(sys.platform == 'darwin')) + depends_on('trilinos@master,develop ~cuda~wrapper+exodus+tpetra+muelu+belos+ifpack2+amesos2+zoltan+stk+boost~superlu-dist~superlu+hdf5+shards~hypre~shared', when=(sys.platform == 'darwin')) depends_on('openfast@2.6.0 +cxx', when='+openfast') depends_on('tioga@master,develop', when='+tioga') depends_on('hypre@develop,2.18.2: ~int64+mpi~superlu-dist', when='+hypre') depends_on('kokkos-nvcc-wrapper', type='build', when='+cuda') for _arch in CudaPackage.cuda_arch_values: - depends_on('trilinos@master,develop ~shared+exodus+tpetra+muelu+belos+ifpack2+amesos2+zoltan+stk+boost~superlu-dist~superlu+hdf5+shards~hypre+cuda+cuda_rdc+wrapper cxxstd=14 cuda_arch={0}'.format(_arch), + depends_on('trilinos@master,develop ~shared+exodus+tpetra+muelu+belos+ifpack2+amesos2+zoltan+stk+boost~superlu-dist~superlu+hdf5+shards~hypre+cuda+cuda_rdc+wrapper cuda_arch={0}'.format(_arch), when='+cuda cuda_arch={0}'.format(_arch)) depends_on('hypre@develop +mpi+cuda~int64~superlu-dist cuda_arch={0}'.format(_arch), when='+hypre+cuda cuda_arch={0}'.format(_arch)) diff --git a/var/spack/repos/builtin/packages/nalu/package.py b/var/spack/repos/builtin/packages/nalu/package.py index f6973b8610..7b02767f43 100644 --- a/var/spack/repos/builtin/packages/nalu/package.py +++ b/var/spack/repos/builtin/packages/nalu/package.py @@ -35,7 +35,7 @@ class Nalu(CMakePackage): # Cannot build Trilinos as a shared library with STK on Darwin # which is why we have a 'shared' variant for Nalu # https://github.com/trilinos/Trilinos/issues/2994 - depends_on('trilinos+mpi+exodus+tpetra+muelu+belos+ifpack2+amesos2+zoltan+stk+boost~superlu-dist+superlu+hdf5+zlib+shards~hypre@master') + depends_on('trilinos+mpi+exodus+tpetra+muelu+belos+ifpack2+amesos2+zoltan+stk+boost~superlu-dist+superlu+hdf5+shards~hypre@master') depends_on('trilinos~shared', when='~shared') # Optional dependencies depends_on('tioga', when='+tioga+shared') diff --git a/var/spack/repos/builtin/packages/namd/package.py b/var/spack/repos/builtin/packages/namd/package.py index afd20ec847..9e930b2459 100644 --- a/var/spack/repos/builtin/packages/namd/package.py +++ b/var/spack/repos/builtin/packages/namd/package.py @@ -13,7 +13,7 @@ from spack import * class Namd(MakefilePackage, CudaPackage): - """NAMDis a parallel molecular dynamics code designed for + """NAMD is a parallel molecular dynamics code designed for high-performance simulation of large biomolecular systems.""" homepage = "https://www.ks.uiuc.edu/Research/namd/" diff --git a/var/spack/repos/builtin/packages/nccl/package.py b/var/spack/repos/builtin/packages/nccl/package.py index ab578f0fd2..88bc6d2c46 100644 --- a/var/spack/repos/builtin/packages/nccl/package.py +++ b/var/spack/repos/builtin/packages/nccl/package.py @@ -14,6 +14,8 @@ class Nccl(MakefilePackage, CudaPackage): maintainers = ['adamjstewart'] + version('2.11.4-1', sha256='db4e9a0277a64f9a31ea9b5eea22e63f10faaed36dded4587bbc8a0d8eceed10') + version('2.10.3-1', sha256='55de166eb7dcab9ecef2629cdb5fb0c5ebec4fae03589c469ebe5dcb5716b3c5') version('2.9.9-1', sha256='01629a1bdadbadb2828e26023ba7685bbc07678468cb7df63cc96460f5337e08') version('2.9.8-1', sha256='f6e5d9c10e6e54ee21f9707d2df684083d0cccf87bd5a4dbc795803da2bc9f5a') version('2.9.6-1', sha256='c4b1f5a88f03c0ac8f1dcbe27723cd75cfe051754078d83629efaaed10ce8731') diff --git a/var/spack/repos/builtin/packages/ncio/package.py b/var/spack/repos/builtin/packages/ncio/package.py index 9374b43e84..3c66401b99 100644 --- a/var/spack/repos/builtin/packages/ncio/package.py +++ b/var/spack/repos/builtin/packages/ncio/package.py @@ -21,3 +21,9 @@ class Ncio(CMakePackage): depends_on('mpi') depends_on('netcdf-fortran') + + def setup_run_environment(self, env): + lib = find_libraries('libncio', root=self.prefix, shared=False, recursive=True) + env.set('NCIO_LIB', lib[0]) + env.set('NCIO_INC', join_path(self.prefix, 'include')) + env.set('NCIO_LIBDIR', lib[0]) diff --git a/var/spack/repos/builtin/packages/ncl/package.py b/var/spack/repos/builtin/packages/ncl/package.py index a4bd503d07..c4d7659cd4 100644 --- a/var/spack/repos/builtin/packages/ncl/package.py +++ b/var/spack/repos/builtin/packages/ncl/package.py @@ -56,6 +56,7 @@ class Ncl(Package): depends_on('flex+lex') depends_on('iconv') depends_on('tcsh') + depends_on('makedepend', type='build') # Also, the manual says that ncl requires zlib, but that comes as a # mandatory dependency of libpng, which is a mandatory dependency of cairo. @@ -71,6 +72,7 @@ class Ncl(Package): depends_on('bzip2') depends_on('freetype') depends_on('fontconfig') + depends_on('zstd') # In Spack, we do not have an option to compile netcdf-c without netcdf-4 # support, so we will tell the ncl configuration script that we want @@ -160,8 +162,8 @@ class Ncl(Package): f.writelines([ '#define HdfDefines\n', '#define CppCommand \'/usr/bin/env cpp -traditional\'\n', - '#define CCompiler cc\n', - '#define FCompiler fc\n', + '#define CCompiler {0}\n'.format(spack_cc), + '#define FCompiler {0}\n'.format(spack_fc), ('#define CtoFLibraries ' + ' '.join(c2f_flags) + '\n' if len(c2f_flags) > 0 else ''), diff --git a/var/spack/repos/builtin/packages/ncurses/package.py b/var/spack/repos/builtin/packages/ncurses/package.py index e9b469647e..08b1bae47e 100644 --- a/var/spack/repos/builtin/packages/ncurses/package.py +++ b/var/spack/repos/builtin/packages/ncurses/package.py @@ -20,7 +20,7 @@ class Ncurses(AutotoolsPackage, GNUMirrorPackage): # URL must remain http:// so Spack can bootstrap curl gnu_mirror_path = "ncurses/ncurses-6.1.tar.gz" - executables = [r'^ncursesw?\d*-config$'] + executables = [r'^ncursesw?(?:\d+(?:\.\d+)*)?-config$'] version('6.2', sha256='30306e0c76e0f9f1f0de987cf1c82a5c21e1ce6568b9227f7da5b71cbea86c9d') version('6.1', sha256='aa057eeeb4a14d470101eff4597d5833dcef5965331be3528c08d99cebaa0d17') @@ -101,7 +101,8 @@ class Ncurses(AutotoolsPackage, GNUMirrorPackage): '--enable-overwrite', '--without-ada', '--enable-pc-files', - '--with-pkg-config-libdir={0}/lib/pkgconfig'.format(self.prefix) + '--with-pkg-config-libdir={0}/lib/pkgconfig'.format(self.prefix), + '--disable-overwrite' ] nwide_opts = ['--disable-widec', @@ -148,14 +149,11 @@ class Ncurses(AutotoolsPackage, GNUMirrorPackage): with working_dir('build_ncursesw'): make('install') - # fix for packages like hstr that use "#include <ncurses/ncurses.h>" - headers = glob.glob(os.path.join(prefix.include, '*')) - for p_dir in ['ncurses', 'ncursesw']: - path = os.path.join(prefix.include, p_dir) - if not os.path.exists(path): - os.makedirs(path) - for header in headers: - install(header, path) + # fix for packages that use "#include <ncurses.h>" (use wide by default) + headers = glob.glob(os.path.join(prefix.include, 'ncursesw', '*.h')) + for header in headers: + h = os.path.basename(header) + os.symlink(os.path.join('ncursesw', h), os.path.join(prefix.include, h)) @property def libs(self): diff --git a/var/spack/repos/builtin/packages/nextflow/package.py b/var/spack/repos/builtin/packages/nextflow/package.py index a3ca409c8f..cf62abcc34 100644 --- a/var/spack/repos/builtin/packages/nextflow/package.py +++ b/var/spack/repos/builtin/packages/nextflow/package.py @@ -14,6 +14,8 @@ class Nextflow(Package): maintainers = ['dialvarezs'] + version('21.10.1', sha256='05c8b9f3d2f5eded737fdd0a13b84e3bc442cc6355ba95e21118cb624f8176da', expand=False) + version('21.10.0', sha256='e938e53f43f0f00c8d5adf2dc104c4ce0c6d834aa84a4a3918ac8bec6eee6b9c', expand=False) version('21.04.3', sha256='80c7ecd94b55da8eb0e17040dbd0c43ee80e252cd999374e16c00d54d3d3abf3', expand=False) version('20.10.0', sha256='54f76c83cbabe8ec68d6a878dcf921e647284499f4ae917356e594d873cb78dd', expand=False) version('20.07.1', sha256='de4db5747a801af645d9b021c7b36f4a25c3ce1a8fda7705a5f37e8f9357443a', expand=False) diff --git a/var/spack/repos/builtin/packages/nnvm/cmake2.patch b/var/spack/repos/builtin/packages/nnvm/cmake2.patch index 5536ca718f..5536ca718f 100755..100644 --- a/var/spack/repos/builtin/packages/nnvm/cmake2.patch +++ b/var/spack/repos/builtin/packages/nnvm/cmake2.patch diff --git a/var/spack/repos/builtin/packages/nsimd/package.py b/var/spack/repos/builtin/packages/nsimd/package.py index 9e2f8e5ef6..3a18326cc9 100644 --- a/var/spack/repos/builtin/packages/nsimd/package.py +++ b/var/spack/repos/builtin/packages/nsimd/package.py @@ -66,6 +66,7 @@ class Nsimd(CMakePackage): depends_on('cmake@2.8.7:', type='build') depends_on('cmake@3.0.2:', type='build', when='@2:') depends_on('python@3:', type='build') + depends_on('py-chardet', type='build', when='@3:') depends_on('py-requests', type='build', when='@3:') # Add a 'generate_code' phase in the beginning diff --git a/var/spack/repos/builtin/packages/nspr/package.py b/var/spack/repos/builtin/packages/nspr/package.py index 33b58f3b16..f8c6cc0f90 100644 --- a/var/spack/repos/builtin/packages/nspr/package.py +++ b/var/spack/repos/builtin/packages/nspr/package.py @@ -13,6 +13,7 @@ class Nspr(AutotoolsPackage): homepage = "https://developer.mozilla.org/en-US/docs/Mozilla/Projects/NSS/Reference/NSPR_functions" url = "https://ftp.mozilla.org/pub/nspr/releases/v4.13.1/src/nspr-4.13.1.tar.gz" + version('4.32', sha256='bb6bf4f534b9559cf123dcdc6f9cd8167de950314a90a88b2a329c16836e7f6c') version('4.31', sha256='5729da87d5fbf1584b72840751e0c6f329b5d541850cacd1b61652c95015abc8') version('4.13.1', sha256='5e4c1751339a76e7c772c0c04747488d7f8c98980b434dc846977e43117833ab') diff --git a/var/spack/repos/builtin/packages/nss/package.py b/var/spack/repos/builtin/packages/nss/package.py index 42292e1ed2..3f74c53b0c 100644 --- a/var/spack/repos/builtin/packages/nss/package.py +++ b/var/spack/repos/builtin/packages/nss/package.py @@ -16,7 +16,9 @@ class Nss(MakefilePackage): homepage = "https://developer.mozilla.org/en-US/docs/Mozilla/Projects/NSS" url = "https://ftp.mozilla.org/pub/security/nss/releases/NSS_3_67_RTM/src/nss-3.67.tar.gz" - version('3.67', sha256='f6549a9148cd27b394b40c77fa73111d5ea23cdb51d796665de1b7458f88ce7f') + version('3.73', sha256='566d3a68da9b10d7da9ef84eb4fe182f8f04e20d85c55d1bf360bb2c0096d8e5') + # Everything before 3.73 is vulnerable (CVE-2021-43527) + version('3.67', sha256='f6549a9148cd27b394b40c77fa73111d5ea23cdb51d796665de1b7458f88ce7f', deprecated=True) depends_on('nspr@4.24:') depends_on('sqlite') @@ -26,6 +28,11 @@ class Nss(MakefilePackage): build_directory = 'nss' + def url_for_version(self, version): + url = 'https://ftp.mozilla.org/pub/security/nss/releases/NSS_{0}_RTM/src/nss-{1}.tar.gz' + + return url.format(version.underscored, version) + @property def build_targets(self): # We cannot use nss_build_all because this will try to build nspr. diff --git a/var/spack/repos/builtin/packages/ntl/package.py b/var/spack/repos/builtin/packages/ntl/package.py new file mode 100644 index 0000000000..7313e1884d --- /dev/null +++ b/var/spack/repos/builtin/packages/ntl/package.py @@ -0,0 +1,62 @@ +# Copyright 2013-2021 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 Ntl(Package): + """ + NTL -- a library for doing number theory + + NTL is open-source software distributed under the terms of the GNU Lesser + General Public License (LGPL) version 2.1 or later. See the file + doc/copying.txt for complete details on the licensing of NTL. + + Documentation is available in the file doc/tour.html, which can be viewed + with a web browser. + + """ + + homepage = "https://libntl.org" + url = "https://github.com/libntl/ntl/archive/refs/tags/v11.5.1.tar.gz" + + maintainers = ['wohlbier'] + + version('11.5.1', sha256='ef578fa8b6c0c64edd1183c4c303b534468b58dd3eb8df8c9a5633f984888de5') + version('11.5.0', sha256='9e1e6488b177c3e5d772fdd6279c890937a9d1c3b694a904ac1cfbe9cab836db') + version('11.4.4', sha256='2ce7a10fadbed6c3859d72c859612a4ca0dbdf6a9db99db4261422b7f0804bfa') + + variant('shared', default=False, description='Build shared library.') + + depends_on('gmp') + + phases = ['configure', 'build', 'install'] + + def configure_args(self): + spec = self.spec + prefix = self.prefix + + config_args = [ + 'CXX={0}'.format(self.compiler.cxx), + 'DEF_PREFIX={0}'.format(prefix), + 'GMP_PREFIX={0}'.format(spec['gmp'].prefix) # gmp dependency + ] + if '+shared' in spec: + config_args.append('SHARED=on') + + return config_args + + def configure(self, spec, prefix): + with working_dir('src'): + configure = Executable('./configure') + configure(*self.configure_args()) + + def build(self, spec, prefix): + with working_dir('src'): + make() + + def install(self, spec, prefix): + with working_dir('src'): + make('install') diff --git a/var/spack/repos/builtin/packages/nvhpc/package.py b/var/spack/repos/builtin/packages/nvhpc/package.py index dc5876f7eb..df715a9bce 100644 --- a/var/spack/repos/builtin/packages/nvhpc/package.py +++ b/var/spack/repos/builtin/packages/nvhpc/package.py @@ -22,6 +22,10 @@ from spack.util.prefix import Prefix # - package key must be in the form '{os}-{arch}' where 'os' is in the # format returned by platform.system() and 'arch' by platform.machine() _versions = { + '21.11': { + 'Linux-aarch64': ('3b11bcd9cca862fabfce1e7bcaa2050ea12130c7e897f4e7859ba4c155d20720', 'https://developer.download.nvidia.com/hpc-sdk/21.11/nvhpc_2021_2111_Linux_aarch64_cuda_multi.tar.gz'), + 'Linux-ppc64le': ('ac51ed92de4eb5e1bdb064ada5bbace5b89ac732ad6c6473778edfb8d29a6527', 'https://developer.download.nvidia.com/hpc-sdk/21.11/nvhpc_2021_2111_Linux_ppc64le_cuda_multi.tar.gz'), + 'Linux-x86_64': ('d8d8ccd0e558d22bcddd955f2233219c96f7de56aa8e09e7be833e384d32d6aa', 'https://developer.download.nvidia.com/hpc-sdk/21.11/nvhpc_2021_2111_Linux_x86_64_cuda_multi.tar.gz')}, '21.9': { 'Linux-aarch64': ('52c2c66e30043add4afccedf0ba77daa0000bf42e0db844baa630bb635b91a7d', 'https://developer.download.nvidia.com/hpc-sdk/21.9/nvhpc_2021_219_Linux_aarch64_cuda_multi.tar.gz'), 'Linux-ppc64le': ('cff0b55fb782be1982bfeec1d9763b674ddbf84ff2c16b364495299266320289', 'https://developer.download.nvidia.com/hpc-sdk/21.9/nvhpc_2021_219_Linux_ppc64le_cuda_multi.tar.gz'), diff --git a/var/spack/repos/builtin/packages/nwchem/package.py b/var/spack/repos/builtin/packages/nwchem/package.py index 1ce1846834..02a18c4270 100644 --- a/var/spack/repos/builtin/packages/nwchem/package.py +++ b/var/spack/repos/builtin/packages/nwchem/package.py @@ -24,10 +24,14 @@ class Nwchem(Package): version('6.8.1', sha256='fd20f9ca1b410270a815e77e052ec23552f828526cd252709f798f589b2a6431', url='https://github.com/nwchemgit/nwchem/releases/download/6.8.1-release/nwchem-6.8.1-release.revision-v6.8-133-ge032219-srconly.2018-06-14.tar.bz2') + variant('openmp', default=False, description='Enables OpenMP support') + variant('mpipr', default=False, description='Enables ARMCI with progress rank') + depends_on('blas') depends_on('lapack') depends_on('mpi') depends_on('scalapack') + depends_on('fftw-api') depends_on('python@3:', when='@7:', type=('build', 'link', 'run')) depends_on('python@2.7:2.8', when='@:6', type=('build', 'link', 'run')) conflicts('%gcc@10:', when='@:6', msg='NWChem versions prior to 7.0.0 do not build with GCC 10') @@ -36,6 +40,7 @@ class Nwchem(Package): scalapack = spec['scalapack'].libs lapack = spec['lapack'].libs blas = spec['blas'].libs + fftw = spec['fftw-api'].libs # see https://nwchemgit.github.io/Compiling-NWChem.html args = [] args.extend([ @@ -45,14 +50,19 @@ class Nwchem(Package): 'CC=%s' % os.path.basename(spack_cc), 'FC=%s' % os.path.basename(spack_fc), 'USE_MPI=y', + 'USE_BLAS=y', + 'USE_FFTW3=y', 'PYTHONVERSION=%s' % spec['python'].version.up_to(2), 'BLASOPT=%s' % ((lapack + blas).ld_flags), 'BLAS_LIB=%s' % blas.ld_flags, 'LAPACK_LIB=%s' % lapack.ld_flags, 'SCALAPACK_LIB=%s' % scalapack.ld_flags, + 'FFTW3_LIB=%s' % fftw.ld_flags, + 'FFTW3_INCLUDE={0}'.format(spec['fftw-api'].prefix.include), 'NWCHEM_MODULES=all python', 'NWCHEM_LONG_PATHS=Y', # by default NWCHEM_TOP is 64 char max - 'USE_NOIO=Y' # skip I/O algorithms + 'USE_NOIO=Y', # skip I/O algorithms + 'USE_NOFSCHECK=TRUE' # FSCHECK, caused problems like code crashes ]) if spec.version < Version('7.0.0'): args.extend([ @@ -90,6 +100,12 @@ class Nwchem(Package): args.extend(['NWCHEM_TARGET=%s' % target]) + if '+openmp' in spec: + args.extend(['USE_OPENMP=y']) + + if '+mpipr' in spec: + args.extend(['ARMCI_NETWORK=MPI-PR']) + with working_dir('src'): make('nwchem_config', *args) if use_32_bit_lin_alg: diff --git a/var/spack/repos/builtin/packages/ocaml/fix-duplicate-defs.patch b/var/spack/repos/builtin/packages/ocaml/fix-duplicate-defs.patch index bbbc283d6a..bbbc283d6a 100755..100644 --- a/var/spack/repos/builtin/packages/ocaml/fix-duplicate-defs.patch +++ b/var/spack/repos/builtin/packages/ocaml/fix-duplicate-defs.patch diff --git a/var/spack/repos/builtin/packages/octave/package.py b/var/spack/repos/builtin/packages/octave/package.py index 172ec2af79..5b3885eedf 100644 --- a/var/spack/repos/builtin/packages/octave/package.py +++ b/var/spack/repos/builtin/packages/octave/package.py @@ -46,6 +46,7 @@ class Octave(AutotoolsPackage, GNUMirrorPackage): # Variants variant('readline', default=True) + variant('bz2', default=True) variant('arpack', default=False) variant('curl', default=False) variant('fftw', default=False) @@ -74,9 +75,11 @@ class Octave(AutotoolsPackage, GNUMirrorPackage): depends_on('sed', when=sys.platform == 'darwin', type='build') depends_on('pcre') depends_on('pkgconfig', type='build') + depends_on('texinfo', type='build') # Strongly recommended dependencies depends_on('readline', when='+readline') + depends_on('bzip2', when='+bz2') # Optional dependencies depends_on('arpack-ng', when='+arpack') @@ -181,6 +184,14 @@ class Octave(AutotoolsPackage, GNUMirrorPackage): else: config_args.append('--disable-readline') + if '+bz2' in spec: + config_args.extend([ + "--with-bz2-includedir=%s" % spec['bzip2'].prefix.include, + "--with-bz2-libdir=%s" % spec['bzip2'].prefix.lib + ]) + else: + config_args.append("--without-bz2") + # Optional dependencies if '+arpack' in spec: sa = spec['arpack-ng'] @@ -275,6 +286,8 @@ class Octave(AutotoolsPackage, GNUMirrorPackage): else: config_args.append("--without-qrupdate") + config_args += self.with_or_without("qscintilla") + if '+zlib' in spec: config_args.extend([ "--with-z-includedir=%s" % spec['zlib'].prefix.include, @@ -293,6 +306,9 @@ class Octave(AutotoolsPackage, GNUMirrorPackage): if spec.satisfies('%fj'): config_args.append('--enable-fortran-calling-convention=gfortran') + # Make sure we do not use qtchooser + config_args.append('ac_cv_prog_ac_ct_QTCHOOSER=') + return config_args # ======================================================================== diff --git a/var/spack/repos/builtin/packages/oommf/package.py b/var/spack/repos/builtin/packages/oommf/package.py new file mode 100644 index 0000000000..fa5de8b76d --- /dev/null +++ b/var/spack/repos/builtin/packages/oommf/package.py @@ -0,0 +1,295 @@ +# Copyright 2013-2021 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) + +import os.path + +from spack import * +from spack.util.executable import Executable + + +class Oommf(Package): + """The Object Oriented MicroMagnetic Framework (OOMMF) is aimed at + developing portable, extensible public domain programs and tools for + micromagnetics. + + The code forms a completely functional micromagnetics package, with + the additional capability to be extended by other programmers so that + people developing new code can build on the OOMMF foundation. OOMMF is + written in C++, a widely-available, object-oriented language that can + produce programs with good performance as well as extensibility. For + portable user interfaces, we make use of Tcl/Tk so that OOMMF operates + across a wide range of Unix, Windows, and Mac OS X platforms. The main + contributors to OOMMF are Mike Donahue, and Don Porter. + + Summary taken from OOMMF documentation https://math.nist.gov/oommf/ + + OOMMF home page: "https://math.nist.gov/oommf/" + + OOMMF as a git repository: https://github.com/fangohr/oommf + + Versions ending with "-vanilla" indicate that the sources are taken + directly from https://math.nist.gov/oommf/dist/ . All other versions are + from the https://github.com/fangohr/oommf (which includes the "-vanilla" + sources, and adds additional OOMMF extensions). See + https://github.com/fangohr/oommf for details. + """ + + homepage = "https://math.nist.gov/oommf/" + # default URL for versions + url = "https://github.com/fangohr/oommf/archive/refs/tags/20a1_20180930_ext.tar.gz" + + maintainers = ["fangohr"] + + version( + "20a3_20210930", + sha256="880242afdf4c84de7f2a3c42ab0ad8c354028a7d2d3c3160980cf3e08e285691", + ) + + version( + "20a3_20210930-vanilla", + url="https://math.nist.gov/oommf/dist/oommf20a3_20210930.tar.gz", + sha256="a2a24c1452e66baf37fea67edbcbfb78d60c65a78c6b032a18a1de9f8bbebc92", + ) + + version( + "20a2_20200608", + sha256="a3113f2aca0b6249ee99b2f4874f31de601bd7af12498d84f28706b265fa50ab", + ) + + version( + "20a1_20180930_ext", + sha256="18bf9bd713c7ee6ced6d561ce742d17e0588ae24ef2e56647a5c8a7853e07a4c", + ) + + version( + "20a2_20200608-vanilla", + sha256="5c349de6e698b0c2c5390aa0598ea3052169438cdcc7e298068bc03abb9761c8", + url="https://math.nist.gov/oommf/dist/oommf20a2_20200608-hotfix.tar.gz", + ) + + # Deprecated versions have never been tested with spack + version( + "20a2_20190930-vanilla", + sha256="53b41ef30f76766239a1071d13081d8d7604a2ea59187ca4abef356ad1be4986", + url="https://math.nist.gov/oommf/dist/oommf20a2_20190930.tar.gz", + deprecated=True, + ) + + version( + "20a1_20180930", + deprecated=True, + sha256="c871e0dbb1522c3c1314af6c084b90cdbe69fd869b55ac94443851b74f818ed2", + ) + + version( + "20a0_20170929a0", + deprecated=True, + sha256="3439d1c9e95cc7395bc2e2330bba8cf198585d1b350251ea8561c1554ff8c7fd", + url="https://github.com/fangohr/oommf/archive/refs/tags/2.0a0_20170929a0.tar.gz", + ) + + version( + "12b0_20160930", + deprecated=True, + sha256="363006f549bb63a39564fafc18b52342a14c1c3769c214467a39f72a0c0be36b", + url="https://github.com/fangohr/oommf/archive/refs/tags/1.2b0_20160930b1.tar.gz", + ) + + depends_on("tk", type=("build", "link", "test", "run")) + depends_on("tcl", type=("build", "test", "run")) + depends_on("xproto", type=("build")) + + # Compilation with clang does not work yet (gcc works fine, nothing else tested) + # (https://github.com/spack/spack/pull/26933#pullrequestreview-789754233) + conflicts("%clang") + + phases = ["configure", "build", "install"] + + # sanity checks: (https://spack.readthedocs.io/en/latest/packaging_guide.html#checking-an-installation) + sanity_check_is_file = [join_path("bin", "oommf.tcl")] + sanity_check_is_dir = ["usr/bin/oommf/app", "usr/bin/oommf/app/oxs/eamples"] + + def get_oommf_source_root(self): + """If we download the source from NIST, then 'oommf.tcl' is in the root directory. + if we download from github, then it is in 'oommf/oommf.tcl'. + + Here, we try to find the relative path to that file, and return it. + """ + if "oommf.tcl" in os.listdir(): + print( + "Found 'oommf.tcl' in " + os.getcwd() + " (looks like source from NIST)" + ) + return "." + elif "oommf.tcl" in os.listdir("oommf"): + print( + "Found 'oommf.tcl' in " + + os.getcwd() + + "/oommf " + + "(looks like source from Github)" + ) + return "oommf" + else: + raise ValueError("Cannot find 'oommf.tcl' in " + os.getcwd()) + + def get_oommf_path(self, prefix): + """Given the prefix, return the full path of the OOMMF installation + below `prefix`.""" + + oommfdir = os.path.join(prefix.usr.bin, "oommf") + return oommfdir + + @property + def oommf_tcl_path(self): + return join_path(self.spec.prefix.bin, "oommf.tcl") + + @property + def tclsh(self): + return Executable(join_path(self.spec["tcl"].prefix.bin, "tclsh")) + + @property + def test_env(self): + """Create environment in which post-install tests can be run.""" + # Make sure the correct OOMMF config.tcl is found. + # This environment variable (OOMMF_ROOT) seems not to be + # set at this point, so we have to set it manually for the test: + oommfdir = self.get_oommf_path(self.prefix) + test_env_ = {"OOMMF_ROOT": oommfdir} + return test_env_ + + def configure(self, spec, prefix): + # change into directory with source code + with working_dir(self.get_oommf_source_root()): + + configure = Executable("./oommf.tcl pimake distclean") + configure() + configure2 = Executable("./oommf.tcl pimake upgrade") + configure2() + + def build(self, spec, prefix): + with working_dir(self.get_oommf_source_root()): + make = Executable("./oommf.tcl pimake ") + make() + + def install(self, spec, prefix): + # keep a copy of all the tcl files and everything oommf created. + # in OOMMF terminology, this is OOMMF_ROOT + # We are now using prefix/usr/bin/oommf for that location + # - is there a better place? + oommfdir = self.get_oommf_path(prefix) + + with working_dir(self.get_oommf_source_root()): + + install_tree(".", oommfdir) + + # The one file that is used directly by the users should be + # available as the binary for the user: + install_files = ["oommf.tcl"] + mkdirp(prefix.bin) + for f in install_files: + install(os.path.join(oommfdir, f), prefix.bin) + + def setup_run_environment(self, env): + # Set OOMMF_ROOT so that oommf.tcl can find its files. + oommfdir = self.get_oommf_path(self.prefix) + env.set("OOMMF_ROOT", oommfdir) + + # set OOMMFTCL so ubermag / oommf can find oommf + env.set("OOMMFTCL", join_path(oommfdir, "oommf.tcl")) + + def _check_install_oommf_command(self, oommf_args): + "Given a list of arguments for oommf.tcl, execute those." + print("Testing oommf.tcl with arguments: " + str(oommf_args)) + + test_env = self.test_env + # the "+platform" test needs the following environment variable: + if oommf_args == ["+platform"]: + test_env["PATH"] = os.environ["PATH"] + + output = self.tclsh( + self.oommf_tcl_path, + *oommf_args, + output=str.split, + error=str.split, + env=test_env + ) + + print("output received from oommf is %s" % output) + + @run_after("install") + def check_install_version(self): + self._check_install_oommf_command(["+version"]) + + @run_after("install") + def check_install_platform(self): + self._check_install_oommf_command(["+platform"]) + + @run_after("install") + def check_install_stdprob3(self): + oommf_examples = join_path(self.spec.prefix.usr.bin, "oommf/app/oxs/examples") + task = join_path(oommf_examples, "stdprob3.mif") + self._check_install_oommf_command(["boxsi", "+fg", "-kill", "all", task]) + + def test(self): + """Run these smoke tests when requested explicitly""" + + # run "oommf +version" + spec = self.spec + exe = join_path(spec["tcl"].prefix.bin, "tclsh") + oommf_tcl_path = join_path(spec.prefix.bin, "oommf.tcl") + options = [oommf_tcl_path, "+version"] + purpose = "Check oommf.tcl can execute (+version)" + expected = ["info:"] + + self.run_test( + exe, + options=options, + expected=expected, + status=[0], + installed=False, + purpose=purpose, + skip_missing=False, + work_dir=None, + ) + + # run "oommf +platform" + options = [oommf_tcl_path, "+platform"] + purpose = "Check oommf.tcl can execute (+platform)" + expected = [ + "OOMMF threads", + "OOMMF release", + "OOMMF API index", + "Temp file directory", + ] + self.run_test( + exe, + options=options, + expected=expected, + status=[0], + installed=False, + purpose=purpose, + skip_missing=False, + work_dir=None, + ) + + # run standard problem 3 with oommf (about 30 seconds runtime) + purpose = "Testing oommf.tcl standard problem 3" + print(purpose) + + oommf_examples = join_path(spec.prefix.usr.bin, "oommf/app/oxs/examples") + task = join_path(oommf_examples, "stdprob3.mif") + + options = [oommf_tcl_path, "boxsi", "+fg", task, "-kill", "all"] + + expected = ['End "stdprob3.mif"', "Mesh geometry: 32 x 32 x 32 = 32 768 cells"] + self.run_test( + exe, + options=options, + expected=expected, + status=[0], + installed=False, + purpose=purpose, + skip_missing=False, + work_dir=None, + ) diff --git a/var/spack/repos/builtin/packages/opa-psm2/package.py b/var/spack/repos/builtin/packages/opa-psm2/package.py index 5a9044bbd0..3eb90f6168 100644 --- a/var/spack/repos/builtin/packages/opa-psm2/package.py +++ b/var/spack/repos/builtin/packages/opa-psm2/package.py @@ -12,6 +12,7 @@ class OpaPsm2(MakefilePackage): homepage = "https://github.com/cornelisnetworks/opa-psm2" url = "https://github.com/cornelisnetworks/opa-psm2/archive/PSM2_10.3-8.tar.gz" + version('11.2.206', sha256='08aa41f41bdb485ee037d3f7e32dd45e79858ce38e744d33b9db2af60e3c627a') version('11.2.185', sha256='8c0446e989feb4a3822791e4a3687060916f7c4612d1e8e493879be66f10db09') version('11.2.77', sha256='5cc33d1e19d871a5861efe0bb897526f404b4bf2b88ac58bb277db96ac5ecb54') version('11.2.68', sha256='42e16a14fc8c90b50855dcea46af3315bee32fb1ae89d83060f9b2ebdce1ec26') diff --git a/var/spack/repos/builtin/packages/open-iscsi/package.py b/var/spack/repos/builtin/packages/open-iscsi/package.py index 89c902072e..29c30135bc 100644 --- a/var/spack/repos/builtin/packages/open-iscsi/package.py +++ b/var/spack/repos/builtin/packages/open-iscsi/package.py @@ -21,7 +21,7 @@ class OpenIscsi(MakefilePackage): depends_on('gettext') depends_on('uuid') - depends_on('util-linux+libmount') + depends_on('util-linux') depends_on('kmod') depends_on('open-isns') depends_on('libtool', type='build') diff --git a/var/spack/repos/builtin/packages/open3d/package.py b/var/spack/repos/builtin/packages/open3d/package.py new file mode 100644 index 0000000000..468f89d869 --- /dev/null +++ b/var/spack/repos/builtin/packages/open3d/package.py @@ -0,0 +1,113 @@ +# Copyright 2013-2021 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) + +import os + +from spack import * + + +class Open3d(CMakePackage, CudaPackage): + """Open3D: A Modern Library for 3D Data Processing.""" + + homepage = "http://www.open3d.org/" + url = "https://github.com/isl-org/Open3D/archive/refs/tags/v0.13.0.tar.gz" + git = "https://github.com/isl-org/Open3D.git" + + version('0.13.0', tag='v0.13.0', submodules=True) + + variant('python', default=False, description='Build the Python module') + + # http://www.open3d.org/docs/latest/compilation.html + + depends_on('cmake@3.19:', type='build') + # depends_on('eigen') + # depends_on('flann') + # depends_on('fmt') + # depends_on('glew') + # depends_on('glfw') + # depends_on('imgui') + # depends_on('jpeg') + # depends_on('liblzf') + # depends_on('libpng') + # depends_on('py-pybind11') + # depends_on('qhull') + # depends_on('tinygltf') + # depends_on('tinyobjloader') + + extends('python', when='+python', type=('build', 'link', 'run')) + depends_on('python@3.6:', when='+python', type=('build', 'link', 'run')) + depends_on('py-pip', when='+python', type='build') + depends_on('py-setuptools@40.8:', when='+python', type='build') + depends_on('py-wheel@0.36:', when='+python', type='build') + depends_on('py-numpy@1.18:', when='+python', type=('build', 'run')) + depends_on('py-pytest', when='+python', type='test') + depends_on('cuda@10.1:', when='+cuda') + + # C++14 compiler required + conflicts('%gcc@:4') + conflicts('%clang@:6') + + def patch(self): + # Force Python libraries to be installed to self.prefix + filter_file('pip install', 'pip install --prefix ' + self.prefix, + os.path.join('cpp', 'pybind', 'make_install_pip_package.cmake')) + + def cmake_args(self): + args = [ + self.define('BUILD_UNIT_TESTS', self.run_tests), + self.define_from_variant('BUILD_PYTHON_MODULE', 'python'), + self.define_from_variant('BUILD_CUDA_MODULE', 'cuda'), + # Use Spack-installed dependencies instead of vendored dependencies + # Numerous issues with using externally installed dependencies: + # https://github.com/isl-org/Open3D/issues/4333 + # https://github.com/isl-org/Open3D/issues/4360 + # self.define('USE_SYSTEM_EIGEN3', True), + # self.define('USE_SYSTEM_FLANN', True), + # self.define('USE_SYSTEM_FMT', True), + # self.define('USE_SYSTEM_GLEW', True), + # self.define('USE_SYSTEM_GLFW', True), + # self.define('USE_SYSTEM_IMGUI', True), + # self.define('USE_SYSTEM_JPEG', True), + # self.define('USE_SYSTEM_LIBLZF', True), + # self.define('USE_SYSTEM_PNG', True), + # self.define('USE_SYSTEM_PYBIND11', True), + # self.define('USE_SYSTEM_QHULL', True), + # self.define('USE_SYSTEM_TINYGLTF', True), + # self.define('USE_SYSTEM_TINYOBJLOADER', True), + ] + + if '+python' in self.spec: + args.append( + self.define('PYTHON_EXECUTABLE', self.spec['python'].command.path)) + + return args + + def check(self): + with working_dir(self.build_directory): + tests = Executable(os.path.join('bin', 'tests')) + tests() + + def install(self, spec, prefix): + with working_dir(self.build_directory): + make('install') + if '+python' in spec: + make('install-pip-package') + + # Tests don't pass unless all optional features are compiled, including PyTorch + # @run_after('install') + # @on_package_attributes(run_tests=True) + # def unit_test(self): + # if '+python' in self.spec: + # pytest = which('pytest') + # pytest(os.path.join('python', 'test')) + + @run_after('install') + @on_package_attributes(run_tests=True) + def test(self): + if '+python' in self.spec: + self.run_test(self.spec['python'].command.path, + ['-c', 'import open3d'], + purpose='checking import of open3d', + work_dir='spack-test') diff --git a/var/spack/repos/builtin/packages/openblas/package.py b/var/spack/repos/builtin/packages/openblas/package.py index 0c267eb931..5beb8ce6b1 100644 --- a/var/spack/repos/builtin/packages/openblas/package.py +++ b/var/spack/repos/builtin/packages/openblas/package.py @@ -49,6 +49,7 @@ class Openblas(MakefilePackage): variant('shared', default=True, description='Build shared libraries') variant('consistent_fpcsr', default=False, description='Synchronize FP CSR between threads (x86/x86_64 only)') variant('bignuma', default=False, description='Enable experimental support for up to 1024 CPUs/Cores and 128 numa nodes') + variant('symbol_suffix', default='none', description='Set a symbol suffix') variant('locking', default=True, description='Build with thread safety') variant( @@ -302,6 +303,10 @@ class Openblas(MakefilePackage): if '+ilp64' in self.spec: make_defs += ['INTERFACE64=1'] + suffix = self.spec.variants['symbol_suffix'].value + if suffix != 'none': + make_defs += ['SYMBOLSUFFIX={0}'.format(suffix)] + # Synchronize floating-point control and status register (FPCSR) # between threads (x86/x86_64 only). if '+consistent_fpcsr' in self.spec: @@ -339,6 +344,19 @@ class Openblas(MakefilePackage): return find_headers(['cblas', 'lapacke'], self.prefix.include) @property + def libs(self): + spec = self.spec + + # Look for openblas{symbol_suffix} + name = 'libopenblas' + search_shared = bool(spec.variants['shared'].value) + suffix = spec.variants['symbol_suffix'].value + if suffix != 'none': + name += suffix + + return find_libraries(name, spec.prefix, shared=search_shared, recursive=True) + + @property def build_targets(self): targets = ['libs', 'netlib'] diff --git a/var/spack/repos/builtin/packages/opencarp/package.py b/var/spack/repos/builtin/packages/opencarp/package.py index 0777ed24aa..5d277e945a 100644 --- a/var/spack/repos/builtin/packages/opencarp/package.py +++ b/var/spack/repos/builtin/packages/opencarp/package.py @@ -18,7 +18,8 @@ class Opencarp(CMakePackage): maintainers = ['MarieHouillon'] - version('8.1', commit='28eb2e97', submodules=False, no_cache=True, preferred=True) + version('8.2', commit='dbfd16fd', submodules=False, no_cache=True, preferred=True) + version('8.1', commit='28eb2e97', submodules=False, no_cache=True) version('7.0', commit='78da9195', submodules=False, no_cache=True) version('master', branch='master', submodules=False, no_cache=True) @@ -40,7 +41,7 @@ class Opencarp(CMakePackage): depends_on('py-carputils') depends_on('meshtool') # Use specific versions of carputils and meshtool for releases - for ver in ['7.0', '8.1']: + for ver in ['8.2', '7.0', '8.1']: depends_on('py-carputils@oc' + ver, when='@' + ver + ' +carputils') depends_on('meshtool@oc' + ver, when='@' + ver + ' +meshtool') diff --git a/var/spack/repos/builtin/packages/opencascade/package.py b/var/spack/repos/builtin/packages/opencascade/package.py index 3ac5888975..22f5a4b53a 100644 --- a/var/spack/repos/builtin/packages/opencascade/package.py +++ b/var/spack/repos/builtin/packages/opencascade/package.py @@ -18,6 +18,8 @@ class Opencascade(CMakePackage): maintainers = ['wdconinc'] + version('7.6.0', extension='tar.gz', + sha256='e7f989d52348c3b3acb7eb4ee001bb5c2eed5250cdcceaa6ae97edc294f2cabd') version('7.5.3', extension='tar.gz', sha256='cc3d3fd9f76526502c3d9025b651f45b034187430f231414c97dda756572410b') version('7.5.2', extension='tar.gz', diff --git a/var/spack/repos/builtin/packages/opencv/opencv3.2_cmake.patch b/var/spack/repos/builtin/packages/opencv/opencv3.2_cmake.patch index c479fb450e..c479fb450e 100755..100644 --- a/var/spack/repos/builtin/packages/opencv/opencv3.2_cmake.patch +++ b/var/spack/repos/builtin/packages/opencv/opencv3.2_cmake.patch diff --git a/var/spack/repos/builtin/packages/opencv/opencv3.2_ffmpeg.patch b/var/spack/repos/builtin/packages/opencv/opencv3.2_ffmpeg.patch index d7786308d8..d7786308d8 100755..100644 --- a/var/spack/repos/builtin/packages/opencv/opencv3.2_ffmpeg.patch +++ b/var/spack/repos/builtin/packages/opencv/opencv3.2_ffmpeg.patch diff --git a/var/spack/repos/builtin/packages/opencv/opencv3.2_python3.7.patch b/var/spack/repos/builtin/packages/opencv/opencv3.2_python3.7.patch index d96011330d..d96011330d 100755..100644 --- a/var/spack/repos/builtin/packages/opencv/opencv3.2_python3.7.patch +++ b/var/spack/repos/builtin/packages/opencv/opencv3.2_python3.7.patch diff --git a/var/spack/repos/builtin/packages/opencv/opencv3.2_regacyvtk.patch b/var/spack/repos/builtin/packages/opencv/opencv3.2_regacyvtk.patch index f5341c62fa..f5341c62fa 100755..100644 --- a/var/spack/repos/builtin/packages/opencv/opencv3.2_regacyvtk.patch +++ b/var/spack/repos/builtin/packages/opencv/opencv3.2_regacyvtk.patch diff --git a/var/spack/repos/builtin/packages/opencv/opencv3.2_vtk.patch b/var/spack/repos/builtin/packages/opencv/opencv3.2_vtk.patch index e5eecd7092..e5eecd7092 100755..100644 --- a/var/spack/repos/builtin/packages/opencv/opencv3.2_vtk.patch +++ b/var/spack/repos/builtin/packages/opencv/opencv3.2_vtk.patch diff --git a/var/spack/repos/builtin/packages/openfoam/package.py b/var/spack/repos/builtin/packages/openfoam/package.py index 146b8a838b..3c054b73d1 100644 --- a/var/spack/repos/builtin/packages/openfoam/package.py +++ b/var/spack/repos/builtin/packages/openfoam/package.py @@ -265,6 +265,8 @@ class Openfoam(Package): version('develop', branch='develop', submodules='True') version('master', branch='master', submodules='True') + version('2112', sha256='3e838731e79db1c288acc27aad8cc8a43d9dac1f24e5773e3b9fa91419a8c3f7') + version('2106_211215', sha256='08c0d0b90b43505693ff8838e827f09e14ec9fb475956ef53cc2206c736277b1') version('2106', sha256='11e41e5b9a253ef592a8f6b79f6aded623b28308192d02cec1327078523b5a37') version('2012_210414', sha256='5260aaa79f91aad58a3a305c1a12d0d48b10f12e37cd99a6fa561969b15ea09d') version('2012', sha256='3d6e39e39e7ae61d321fbc6db6c3748e6e5e1c4886454207a7f1a7321469e65a') @@ -559,6 +561,18 @@ class Openfoam(Package): filter_file(r'trapFpe\s+\d+\s*;', 'trapFpe 0;', controlDict, backup=False) + @when('@:2106 %aocc@3.2.0:') + @run_before('configure') + def make_amd_rules(self): + """Due to the change in the linker behavior in AOCC v3.2, it is now + issuing diagnostic messages for the unreferenced symbols in the + shared objects as it may lead to run time failures. + """ + general_rules = 'wmake/rules/General' + src = join_path(general_rules, 'Clang') + filter_file('clang++', spack_cxx + ' -pthread', join_path(src, 'c++'), + backup=False, string=True) + @when('@1812: %fj') @run_before('configure') def make_fujitsu_rules(self): @@ -932,8 +946,7 @@ class OpenfoamArch(object): elif target == 'ppc64le': platform += 'PPC64le' elif platform == 'darwin': - if target == 'x86_64': - platform += '64' + platform += '64' # aarch64 or x86_64 # ... and others? self.arch = platform diff --git a/var/spack/repos/builtin/packages/openjpeg/package.py b/var/spack/repos/builtin/packages/openjpeg/package.py index a6b628f3f1..1a6b81359e 100644 --- a/var/spack/repos/builtin/packages/openjpeg/package.py +++ b/var/spack/repos/builtin/packages/openjpeg/package.py @@ -31,7 +31,12 @@ class Openjpeg(CMakePackage): version('1.5.2', sha256='3734e95edd0bef6e056815591755efd822228dc3cd866894e00a2c929026b16d') version('1.5.1', sha256='6a42fcc23cb179f69a1e94429089e5a5926aee1ffe582a0a6bd91299d297e61a') - depends_on('zlib') + variant('codec', default=False, description='Build the CODEC executables') + + depends_on('zlib', when='+codec') + depends_on('libpng', when='+codec') + depends_on('libtiff', when='+codec') + depends_on('lcms', when='+codec') # The problem with install name of the library on MacOs was fixed starting # version 2.1.1: https://github.com/uclouvain/openjpeg/commit/b9a247b559e62e55f5561624cf4a19aee3c8afdc @@ -56,3 +61,18 @@ class Openjpeg(CMakePackage): def libs(self): return find_libraries('libopenjp{0}'.format(self.version.up_to(1)), root=self.prefix, recursive=True) + + def cmake_args(self): + args = [ + self.define_from_variant('BUILD_CODEC', 'codec'), + # MJ2 executables are disabled by default and we just make it + # explicit. Note that the executables require additional libraries + # as in the case '+codec', therefore, we will need to update the + # 'depends_on' directives when/if we introduce a variant that + # enables them. + self.define('BUILD_MJ2', False), + # Note that if the list of dependencies is incomplete, there is + # still a chance that the bundled third-party libraries get built. + self.define('BUILD_THIRDPARTY', False) + ] + return args diff --git a/var/spack/repos/builtin/packages/openldap/package.py b/var/spack/repos/builtin/packages/openldap/package.py index 7591a3d4b6..91c9d70ad8 100644 --- a/var/spack/repos/builtin/packages/openldap/package.py +++ b/var/spack/repos/builtin/packages/openldap/package.py @@ -17,8 +17,9 @@ class Openldap(AutotoolsPackage): """ homepage = "https://www.openldap.org/" - url = "ftp://ftp.openldap.org/pub/OpenLDAP/openldap-release/openldap-2.4.48.tgz" + url = "https://www.openldap.org/software/download/OpenLDAP/openldap-release/openldap-2.6.0.tgz" + version('2.6.0', sha256='b71c580eac573e9aba15d95f33dd4dd08f2ed4f0d7fc09e08ad4be7ed1e41a4f') version('2.4.49', sha256='e3b117944b4180f23befe87d0dcf47f29de775befbc469dcf4ac3dab3311e56e') version('2.4.48', sha256='d9523ffcab5cd14b709fcf3cb4d04e8bc76bb8970113255f372bc74954c6074d') @@ -30,61 +31,73 @@ class Openldap(AutotoolsPackage): values=('gnutls', 'openssl'), multi=False) variant('perl', default=False, description='Perl backend to Slapd') + variant('sasl', default=True, description='Build with Cyrus SASL support') + variant('static', default=False, description='Build static libraries') + variant('shared', default=True, description='Build shared libraries') + variant('dynamic', default=True, description='Enable linking built binaries with dynamic libs') + variant('wt', default=False, description='Enable WiredTiger backend', when='@2.5.0:') + conflicts('~static', when='~shared') depends_on('icu4c', when='+icu') depends_on('gnutls', when='~client_only tls=gnutls') depends_on('openssl', when='~client_only tls=openssl') + depends_on('openssl@1.1.1:', when='~client_only tls=openssl @2.6.0:') depends_on('unixodbc', when='~client_only') depends_on('postgresql', when='~client_only') depends_on('berkeley-db', when='~client_only') # for slapd # Recommended dependencies by Linux From Scratch - # depends_on('cyrus-sasl', when='~client_only') # not avail. in spack yet + depends_on('cyrus-sasl', when='+sasl') # depends_on('openslp', when='~client_only') # not avail. in spack yet # depends_on('Pth', when='~client_only') # not avail. in spack yet depends_on('perl', when='~client_only+perl') # for slapd + depends_on('groff', type='build') + depends_on('pkgconfig', type='build') + depends_on('wiredtiger', when='@2.6.0:') # Ref: https://www.linuxfromscratch.org/blfs/view/svn/server/openldap.html @when('+client_only') def configure_args(self): - return ['CPPFLAGS=-D_GNU_SOURCE', - '--enable-static', - '--enable-dynamic', + args = ['CPPFLAGS=-D_GNU_SOURCE', '--disable-debug', '--disable-slapd', ] + args += self.with_or_without('cyrus-sasl', variant='sasl') + args += self.enable_or_disable('static') + args += self.enable_or_disable('shared') + args += self.enable_or_disable('dynamic') + return args @when('~client_only') def configure_args(self): # Ref: https://www.openldap.org/lists/openldap-technical/201009/msg00304.html args = ['CPPFLAGS=-D_GNU_SOURCE', # fixes a build error, see Ref above - '--enable-static', '--disable-debug', - '--with-cyrus-sasl', - '--enable-dynamic', '--enable-crypt', '--enable-spasswd', '--enable-slapd', '--enable-modules', '--enable-rlookups', '--enable-backends=mod', - '--disable-ndb', '--disable-sql', - '--disable-shell', - '--disable-bdb', - '--disable-hdb', '--enable-overlays=mod', ] - if '~client_only' in self.spec: - if 'tls=gnutls' in self.spec: - args.append('--with-tls=gnutls') - if 'tls=openssl' in self.spec: - args.append('--with-tls=openssl') + if self.spec.satisfies('@:2.5'): + args.extend(('--disable-ndb', '--disable-shell', '--disable-bdb', + '--disable-hdb')) + + args += self.enable_or_disable('static') + args += self.enable_or_disable('shared') + args += self.enable_or_disable('dynamic') + args += self.with_or_without('cyrus-sasl', variant='sasl') + args.append('--with-tls=' + self.spec.variants['tls'].value) + if self.spec.satisfies('@2.6.0: tls=gnutls'): + args += ['--disable-autoca'] + + if self.spec.satisfies('@2.5.0:'): + args += self.enable_or_disable('wt') - if '+perl' in self.spec: - args.append('--enable-perl') - else: - args.append('--disable-perl') + args += self.enable_or_disable('perl') return args diff --git a/var/spack/repos/builtin/packages/openlibm/package.py b/var/spack/repos/builtin/packages/openlibm/package.py new file mode 100644 index 0000000000..0d72a46fc2 --- /dev/null +++ b/var/spack/repos/builtin/packages/openlibm/package.py @@ -0,0 +1,33 @@ +# Copyright 2013-2021 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 Openlibm(MakefilePackage): + """OpenLibm is an effort to have a high quality, portable, standalone C + mathematical library""" + + homepage = "https://github.com/JuliaMath/openlibm" + url = "https://github.com/JuliaMath/openlibm/archive/refs/tags/v0.8.0.tar.gz" + + maintainers = ['haampie'] + + version('0.8.0', sha256='03620768df4ca526a63dd675c6de95a5c9d167ff59555ce57a61c6bf49e400ee') + version('0.7.5', sha256='be983b9e1e40e696e8bbb7eb8f6376d3ca0ae675ae6d82936540385b0eeec15b') + + def make(self, spec, prefix): + args = [ + 'prefix={0}'.format(prefix), + 'USE_GCC={0}'.format('1' if self.compiler.name == 'gcc' else '0'), + 'USE_CLANG={0}'.format('1' if self.compiler.name == 'clang' else '0') + ] + make(*args) + + def install(self, spec, prefix): + args = [ + 'prefix={0}'.format(prefix), + ] + make('install', *args) diff --git a/var/spack/repos/builtin/packages/openmpi/package.py b/var/spack/repos/builtin/packages/openmpi/package.py index 0d48cfc523..3b5c9f6c82 100644 --- a/var/spack/repos/builtin/packages/openmpi/package.py +++ b/var/spack/repos/builtin/packages/openmpi/package.py @@ -39,10 +39,12 @@ class Openmpi(AutotoolsPackage): version('master', branch='master', submodules=True) # Current - version('4.1.1', sha256='e24f7a778bd11a71ad0c14587a7f5b00e68a71aa5623e2157bafee3d44c07cda') # libmpi.so.40.30.1 + version('4.1.2', sha256='9b78c7cf7fc32131c5cf43dd2ab9740149d9d87cadb2e2189f02685749a6b527') # libmpi.so.40.30.2 # Still supported + version('4.1.1', sha256='e24f7a778bd11a71ad0c14587a7f5b00e68a71aa5623e2157bafee3d44c07cda') # libmpi.so.40.30.1 version('4.1.0', sha256='73866fb77090819b6a8c85cb8539638d37d6877455825b74e289d647a39fd5b5') # libmpi.so.40.30.0 + version('4.0.7', sha256='7d3ecc8389161eb721982c855f89c25dca289001577a01a439ae97ce872be997') # libmpi.so.40.20.7 version('4.0.6', sha256='94b7b59ae9860f3bd7b5f378a698713e7b957070fdff2c43453b6cbf8edb410c') # libmpi.so.40.20.6 version('4.0.5', sha256='c58f3863b61d944231077f344fe6b4b8fbb83f3d1bc93ab74640bf3e5acac009') # libmpi.so.40.20.5 version('4.0.4', sha256='47e24eb2223fe5d24438658958a313b6b7a55bb281563542e1afc9dec4a31ac4') # libmpi.so.40.20.4 @@ -241,6 +243,7 @@ class Openmpi(AutotoolsPackage): description="Build support for the Singularity container") variant('lustre', default=False, description="Lustre filesystem library support") + variant('romio', default=True, description='Enable ROMIO support') # Adding support to build a debug version of OpenMPI that activates # Memchecker, as described here: # @@ -652,7 +655,8 @@ class Openmpi(AutotoolsPackage): spec['slurm'].prefix)) else: config_args.extend(self.with_or_without('pmi')) - config_args += self.with_or_without('pmix', activation_value='prefix') + if spec.satisfies('+pmix'): + config_args.append('--with-pmix={0}'.format(spec['pmix'].prefix)) if spec.satisfies('@3.1.3:') or spec.satisfies('@3.0.3'): if '+static' in spec: config_args.append('--enable-static') @@ -727,6 +731,9 @@ class Openmpi(AutotoolsPackage): '--disable-mpi-java' ]) + if '~romio' in spec: + config_args.append('--disable-io-romio') + # SQLite3 support if spec.satisfies('@1.7.3:1'): if '+sqlite3' in spec: diff --git a/var/spack/repos/builtin/packages/openspeedshop-utils/package.py b/var/spack/repos/builtin/packages/openspeedshop-utils/package.py index 9d25e04201..5f6dc6a859 100644 --- a/var/spack/repos/builtin/packages/openspeedshop-utils/package.py +++ b/var/spack/repos/builtin/packages/openspeedshop-utils/package.py @@ -39,8 +39,6 @@ class OpenspeedshopUtils(CMakePackage): 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.") @@ -107,9 +105,6 @@ class OpenspeedshopUtils(CMakePackage): depends_on('cbtf-krell@develop+crayfe', when='@develop+crayfe', type=('build', 'link', 'run')) depends_on('cbtf-krell@1.9.3:9999+crayfe', when='@2.4.0:9999+crayfe', type=('build', 'link', 'run')) - depends_on('cbtf-krell@develop+cti', when='@develop+cti', type=('build', 'link', 'run')) - depends_on('cbtf-krell@1.9.3:9999+cti', when='@2.4.0:9999+cti', type=('build', 'link', 'run')) - depends_on('cbtf-krell@develop+mpich', when='@develop+mpich', type=('build', 'link', 'run')) depends_on('cbtf-krell@1.9.3:9999+mpich', when='@2.4.0:9999+mpich', type=('build', 'link', 'run')) @@ -132,10 +127,7 @@ class OpenspeedshopUtils(CMakePackage): depends_on("cbtf-argonavis@1.9.3:9999", when='@2.4.0:9999+cuda', type=('build', 'link', 'run')) # For MRNet - depends_on("mrnet@5.0.1-3:+cti", when='@develop+cti', type=('build', 'link', 'run')) depends_on("mrnet@5.0.1-3:+lwthreads", when='@develop', type=('build', 'link', 'run')) - - depends_on("mrnet@5.0.1-3:+cti", when='@2.4.0:9999+cti', type=('build', 'link', 'run')) depends_on("mrnet@5.0.1-3:+lwthreads", when='@2.4.0:9999', type=('build', 'link', 'run')) patch('arm.patch', when='target=aarch64:') diff --git a/var/spack/repos/builtin/packages/openspeedshop/package.py b/var/spack/repos/builtin/packages/openspeedshop/package.py index 22f94196e6..a123bdfcd6 100644 --- a/var/spack/repos/builtin/packages/openspeedshop/package.py +++ b/var/spack/repos/builtin/packages/openspeedshop/package.py @@ -32,8 +32,6 @@ class Openspeedshop(CMakePackage): 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.") @@ -105,9 +103,6 @@ class Openspeedshop(CMakePackage): depends_on('cbtf-krell@develop+crayfe', when='@develop+crayfe', type=('build', 'link', 'run')) depends_on('cbtf-krell@1.9.3:9999+crayfe', when='@2.4.0:9999+crayfe', type=('build', 'link', 'run')) - depends_on('cbtf-krell@develop+cti', when='@develop+cti', type=('build', 'link', 'run')) - depends_on('cbtf-krell@1.9.3:9999+cti', when='@2.4.0:9999+cti', type=('build', 'link', 'run')) - depends_on('cbtf-krell@develop+mpich', when='@develop+mpich', type=('build', 'link', 'run')) depends_on('cbtf-krell@1.9.3:9999+mpich', when='@2.4.0:9999+mpich', type=('build', 'link', 'run')) @@ -130,10 +125,7 @@ class Openspeedshop(CMakePackage): depends_on("cbtf-argonavis@1.9.3:9999", when='@2.4.0:9999+cuda', type=('build', 'link', 'run')) # For MRNet - depends_on("mrnet@5.0.1-3:+cti", when='@develop+cti', type=('build', 'link', 'run')) depends_on("mrnet@5.0.1-3:+lwthreads", when='@develop', type=('build', 'link', 'run')) - - depends_on("mrnet@5.0.1-3:+cti", when='@2.4.0:9999+cti', type=('build', 'link', 'run')) depends_on("mrnet@5.0.1-3:+lwthreads", when='@2.4.0:9999', type=('build', 'link', 'run')) patch('arm.patch', when='target=aarch64:') diff --git a/var/spack/repos/builtin/packages/openturns/package.py b/var/spack/repos/builtin/packages/openturns/package.py new file mode 100644 index 0000000000..7ab5405052 --- /dev/null +++ b/var/spack/repos/builtin/packages/openturns/package.py @@ -0,0 +1,59 @@ +# Copyright 2013-2021 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 Openturns(CMakePackage): + """OpenTURNS is a scientific C++ and Python library featuring an + internal data model and algorithms dedicated to the treatment of + uncertainties. The main goal of this library is to provide all + functionalities needed to treat uncertainties in studies with + industrial applications. Targeted users are all engineers who want + to introduce the probabilistic dimension in their so far + deterministic studies.""" + + homepage = "https://openturns.github.io/www/" + git = "https://github.com/openturns/openturns.git" + maintainers = ['liuyangzhuan'] + + version('master', branch='master') + + variant('python', default=True, description='Build Python bindings') + + extends('python', when='+python') + + depends_on('mpi', type=('build', 'run')) + depends_on('lapack', type=('build', 'run')) + depends_on('cmake@2.8:', type='build') + depends_on('swig', type=('build', 'run')) + depends_on('py-numpy@1.7:', type=('build', 'run')) + depends_on('py-pandas', type=('build', 'run')) + depends_on('py-matplotlib', type=('build', 'run')) + depends_on('boost+system+serialization+thread', type=('build', 'run')) + depends_on('intel-tbb', type=('build', 'run')) + depends_on('py-cloudpickle', type=('build', 'run')) + depends_on('py-urllib3', type=('build', 'run')) + + def cmake_args(self): + spec = self.spec + + args = [ + '-DCMAKE_C_COMPILER=%s' % spec['mpi'].mpicc, + '-DCMAKE_CXX_COMPILER=%s' % spec['mpi'].mpicxx, + '-DCMAKE_INSTALL_LIBDIR:STRING=%s' % self.prefix.lib, + '-DCMAKE_INSTALL_BINDIR:STRING=%s' % self.prefix.bin, + '-DLAPACK_LIBRARIES=%s' % spec['lapack'].libs.joined(";"), + ] + + if '+python' in spec: + args.extend([ + # By default picks up the system python not the Spack build + '-DPYTHON_EXECUTABLE={0}'.format(spec['python'].command.path), + # By default installs to the python prefix + '-DPYTHON_SITE_PACKAGES={0}'.format(site_packages_dir), + ]) + + return args diff --git a/var/spack/repos/builtin/packages/oras/package.py b/var/spack/repos/builtin/packages/oras/package.py new file mode 100644 index 0000000000..dea8a8693b --- /dev/null +++ b/var/spack/repos/builtin/packages/oras/package.py @@ -0,0 +1,47 @@ +# Copyright 2013-2021 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) + +import llnl.util.tty as tty +from llnl.util.filesystem import find + +from spack import * + + +class Oras(Package): + """ORAS means OCI Registry As Storage""" + + homepage = "https://oras.land" + git = "https://github.com/oras-project/oras" + url = "https://github.com/oras-project/oras/archive/refs/tags/v0.12.0.tar.gz" + + maintainers = ['vsoch'] + + version('main', branch="main") + version("0.12.0", sha256="5e19d61683a57b414efd75bd1b0290c941b8faace5fcc9d488f5e4aa674bf03e") + + depends_on("go", type='build') + + def setup_build_environment(self, env): + # Point GOPATH at the top of the staging dir for the build step. + env.prepend_path('GOPATH', self.stage.path) + + def install(self, spec, prefix): + if self.spec.satisfies('platform=linux target=aarch64:'): + make("build-linux-arm64") + elif self.spec.satisfies('platform=linux'): + make("build-linux") + elif self.spec.satisfies('platform=darwin target=aarch64:'): + make("build-mac-arm64") + elif self.spec.satisfies('platform=darwin'): + make("build-mac") + elif self.spec.satisfies('platform=windows'): + make("build-windows") + mkdirp(prefix.bin) + + oras = find("bin", "oras") + if not oras: + tty.die("Oras executable missing in bin.") + tty.debug("Found oras executable %s to move into install bin" % oras[0]) + install(oras[0], prefix.bin) diff --git a/var/spack/repos/builtin/packages/otf/package.py b/var/spack/repos/builtin/packages/otf/package.py index 2fe4dde0de..743176242b 100644 --- a/var/spack/repos/builtin/packages/otf/package.py +++ b/var/spack/repos/builtin/packages/otf/package.py @@ -14,6 +14,8 @@ class Otf(AutotoolsPackage): homepage = "http://tu-dresden.de/die_tu_dresden/zentrale_einrichtungen/zih/forschung/projekte/otf/index_html/document_view?set_language=en" url = "https://wwwpub.zih.tu-dresden.de/%7Emlieber/dcount/dcount.php?package=otf&get=OTF-1.12.5salmon.tar.gz" + maintainers = ['michaelkuhn'] + version('1.12.5salmon', sha256='0a8427360dedb38e8ddca30f14d95f826420c550337c5a79dbb754904e194088') depends_on('zlib') @@ -23,7 +25,9 @@ class Otf(AutotoolsPackage): args.append('--without-mpi') args.append('--without-vtf3') - args.append('--with-zlib') - args.append('--with-zlibsymbols') args.append('--without-zoidfs') + + args.append('--with-zlib') + args.append('--with-zlib-dir={0}'.format(self.spec['zlib'].prefix)) + return args diff --git a/var/spack/repos/builtin/packages/pagmo2/package.py b/var/spack/repos/builtin/packages/pagmo2/package.py new file mode 100644 index 0000000000..29f71963da --- /dev/null +++ b/var/spack/repos/builtin/packages/pagmo2/package.py @@ -0,0 +1,39 @@ +# Copyright 2013-2021 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 Pagmo2(CMakePackage): + """Parallel Global Multiobjective Optimizer (and its Python alter ego + PyGMO) is a C++ / Python platform to perform parallel computations of + optimisation tasks (global and local) via the asynchronous generalized + island model.""" + + homepage = "https://esa.github.io/pagmo2/" + url = "https://github.com/esa/pagmo2/archive/v2.18.0.tar.gz" + git = "https://github.com/esa/pagmo2.git" + maintainers = ['liuyangzhuan'] + + version('master', branch='master') + version('2.18.0', sha256='5ad40bf3aa91857a808d6b632d9e1020341a33f1a4115d7a2b78b78fd063ae31') + + depends_on('boost+system+serialization+thread') + depends_on('intel-tbb') + depends_on('mpi') + depends_on('cmake@3.1:', type='build') + + variant('shared', default=True, description='Build shared libraries') + + def cmake_args(self): + spec = self.spec + + args = [ + '-DCMAKE_C_COMPILER=%s' % spec['mpi'].mpicc, + '-DCMAKE_CXX_COMPILER=%s' % spec['mpi'].mpicxx, + self.define_from_variant('BUILD_SHARED_LIBS', 'shared'), + ] + + return args diff --git a/var/spack/repos/builtin/packages/palisade-development/package.py b/var/spack/repos/builtin/packages/palisade-development/package.py new file mode 100644 index 0000000000..f32d521741 --- /dev/null +++ b/var/spack/repos/builtin/packages/palisade-development/package.py @@ -0,0 +1,70 @@ +# Copyright 2013-2021 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 PalisadeDevelopment(CMakePackage): + """ + PALISADE is a general lattice cryptography library that currently + includes efficient implementations of the following lattice cryptography + capabilities: + + Fully Homomorphic Encryption (FHE): + - Brakerski/Fan-Vercauteren (BFV) scheme for integer arithmetic + - Brakerski-Gentry-Vaikuntanathan (BGV) scheme for integer arithmetic + - Cheon-Kim-Kim-Song (CKKS) scheme for real-number arithmetic + - Ducas-Micciancio (FHEW) and Chillotti-Gama-Georgieva-Izabachene + (TFHE) schemes for Boolean circuit evaluation + + Multi-Party Extensions of FHE (to support multi-key FHE): + - Threshold FHE for BGV, BFV, and CKKS schemes + - Proxy Re-Encryption for BGV, BFV, and CKKS schemes + """ + + homepage = "https://gitlab.com/palisade/palisade-development" + git = "https://gitlab.com/palisade/palisade-development.git" + maintainers = ['wohlbier'] + + version('feature-fixed-point-encoding', + branch='feature-fixed-point-encoding') + version('master', branch='master', preferred=True) + + variant('shared', default=True, description='Build shared library.') + variant('static', default=True, description='Build static library.') + variant('with_be2', default=True, description='Build with backend 2.') + variant('with_be4', default=True, description='Build with backend 4.') + variant('with_intel_hexl', default=False, description='Use Intel HEXL.') + variant('with_ntl', default=False, description='Build NTL.') + + depends_on('autoconf') + depends_on('hwloc', when='%clang') + depends_on('ntl', when='+with_ntl') + depends_on('ntl+shared', when='+with_ntl +shared') + + def cmake_args(self): + args = [ + self.define_from_variant('BUILD_SHARED', 'shared'), + self.define_from_variant('BUILD_STATIC', 'static'), + self.define_from_variant('WITH_BE2', 'with_be2'), + self.define_from_variant('WITH_BE4', 'with_be4'), + self.define_from_variant('WITH_INTEL_HEXL', 'with_intel_hexl'), + self.define_from_variant('WITH_NTL', 'with_ntl') + ] + if self.spec.satisfies('%clang'): + OpenMP_C_FLAGS = "-fopenmp=libomp" + OpenMP_C_LIB_NAMES = "libomp" + args += [ + self.define('OpenMP_C', 'clang'), + self.define('OpenMP_C_FLAGS', OpenMP_C_FLAGS), + self.define('OpenMP_C_LIB_NAMES', OpenMP_C_LIB_NAMES), + self.define('OpenMP_CXX', 'clang++'), + self.define('OpenMP_CXX_FLAGS', OpenMP_C_FLAGS), + self.define('OpenMP_CXX_LIB_NAMES', OpenMP_C_LIB_NAMES), + self.define('OpenMP_libomp_LIBRARY', 'libomp'), + self.define('OpenMP_libgomp_LIBRARY', 'libgomp'), + self.define('OpenMP_libiomp5_LIBRARY', 'libiomp5') + ] + return args diff --git a/var/spack/repos/builtin/packages/parallel-netcdf/package.py b/var/spack/repos/builtin/packages/parallel-netcdf/package.py index a9ec5fd8d7..64082462a3 100644 --- a/var/spack/repos/builtin/packages/parallel-netcdf/package.py +++ b/var/spack/repos/builtin/packages/parallel-netcdf/package.py @@ -177,7 +177,7 @@ class ParallelNetcdf(AutotoolsPackage): return args - examples_src_dir = 'examples/CXX' + examples_src_dir = join_path('examples', 'CXX') @run_after('install') def cache_test_sources(self): @@ -186,19 +186,24 @@ class ParallelNetcdf(AutotoolsPackage): self.cache_extra_test_sources([self.examples_src_dir]) def test(self): - test_dir = join_path(self.install_test_root, self.examples_src_dir) + test_dir = join_path(self.test_suite.current_test_cache_dir, + self.examples_src_dir) # pnetcdf has many examples to serve as a suitable smoke check. # column_wise was chosen based on the E4S test suite. Other # examples should work as well. test_exe = 'column_wise' - options = ['{0}.cpp'.format(test_exe), '-o', test_exe, '-lpnetcdf'] + options = ['{0}.cpp'.format(test_exe), '-o', test_exe, '-lpnetcdf', + '-L{0}'.format(self.prefix.lib), + '-I{0}'.format(self.prefix.include)] reason = 'test: compiling and linking pnetcdf example' self.run_test(self.spec['mpi'].mpicxx, options, [], installed=False, purpose=reason, work_dir=test_dir) - mpiexe_list = ['mpirun', 'mpiexec', 'srun'] + mpiexe_list = [self.spec['mpi'].prefix.bin.srun, + self.spec['mpi'].prefix.bin.mpirun, + self.spec['mpi'].prefix.bin.mpiexec] for mpiexe in mpiexe_list: if os.path.isfile(mpiexe): - self.run_test(mpiexe, ['-n', '4', test_exe], [], + self.run_test(mpiexe, ['-n', '1', test_exe], [], installed=False, purpose='test: pnetcdf smoke test', skip_missing=True, diff --git a/var/spack/repos/builtin/packages/parallelio/package.py b/var/spack/repos/builtin/packages/parallelio/package.py index 601f91089e..6ab05344f8 100644 --- a/var/spack/repos/builtin/packages/parallelio/package.py +++ b/var/spack/repos/builtin/packages/parallelio/package.py @@ -20,6 +20,7 @@ class Parallelio(CMakePackage): version('2_5_2', sha256='935bc120ef3bf4fe09fb8bfdf788d05fb201a125d7346bf6b09e27ac3b5f345c') variant('pnetcdf', default=False, description='enable pnetcdf') + variant('timing', default=False, description='enable GPTL timing') depends_on('mpi') depends_on('netcdf-c +mpi', type='link') @@ -35,6 +36,7 @@ class Parallelio(CMakePackage): def cmake_args(self): define = self.define + define_from_variant = self.define_from_variant spec = self.spec env['CC'] = spec['mpi'].mpicc env['FC'] = spec['mpi'].mpifc @@ -50,4 +52,7 @@ class Parallelio(CMakePackage): define('PnetCDF_C_PATH', spec['parallel-netcdf'].prefix), define('PnetCDF_Fortran_PATH', spec['parallel-netcdf'].prefix), ]) + args.extend([ + define_from_variant('PIO_ENABLE_TIMING', 'timing'), + ]) return args diff --git a/var/spack/repos/builtin/packages/paraview/package.py b/var/spack/repos/builtin/packages/paraview/package.py index 3fd99be7e2..e0ea37a4b2 100644 --- a/var/spack/repos/builtin/packages/paraview/package.py +++ b/var/spack/repos/builtin/packages/paraview/package.py @@ -27,7 +27,7 @@ class Paraview(CMakePackage, CudaPackage): tags = ['e4s'] version('master', branch='master', submodules=True) - version('5.10.0-RC1', sha256='468d02962abfd5869c46f32fd9dee3095cb00264237edf2659f09a1c0990ec37') + version('5.10.0-RC2', sha256='6523577d4f8d0be6182e53c6b59e176c44a051c5f7d743bbda612cc095b18ff6') version('5.9.1', sha256='0d486cb6fbf55e428845c9650486f87466efcb3155e40489182a7ea85dfd4c8d', preferred=True) version('5.9.0', sha256='b03258b7cddb77f0ee142e3e77b377e5b1f503bcabc02bfa578298c99a06980d') version('5.8.1', sha256='7653950392a0d7c0287c26f1d3a25cdbaa11baa7524b0af0e6a1a0d7d487d034') @@ -173,6 +173,14 @@ class Paraview(CMakePackage, CudaPackage): # https://gitlab.kitware.com/paraview/paraview/-/merge_requests/4951 depends_on('cli11@1.9.1', when='@5.10:') + # ParaView depends on nlohmann-json due to changes in MR + # https://gitlab.kitware.com/vtk/vtk/-/merge_requests/8550 + depends_on('nlohmann-json', when='@master') + + # ParaView depends on proj@8.1.0 due to changes in MR + # https://gitlab.kitware.com/vtk/vtk/-/merge_requests/8474 + depends_on('proj@8.1.0', when='@master') + patch('stl-reader-pv440.patch', when='@4.4.0') # Broken gcc-detection - improved in 5.1.0, redundant later @@ -207,7 +215,7 @@ class Paraview(CMakePackage, CudaPackage): def paraview_subdir(self): """The paraview subdirectory name as paraview-major.minor""" if self.spec.version == Version('master'): - return 'paraview-5.9' + return 'paraview-5.10' else: return 'paraview-{0}'.format(self.spec.version.up_to(2)) @@ -318,7 +326,7 @@ class Paraview(CMakePackage, CudaPackage): if spec.satisfies('@5.8:'): cmake_args.extend([ '-DPARAVIEW_BUILD_EDITION:STRING=%s' % - spec.variants['build_edition'].value, + spec.variants['build_edition'].value.upper(), '-DPARAVIEW_USE_QT:BOOL=%s' % variant_bool('+qt'), '-DPARAVIEW_BUILD_WITH_EXTERNAL=ON']) if spec.satisfies('%cce'): diff --git a/var/spack/repos/builtin/packages/parsimonator/nox86.patch b/var/spack/repos/builtin/packages/parsimonator/nox86.patch index afc17c3e35..afc17c3e35 100755..100644 --- a/var/spack/repos/builtin/packages/parsimonator/nox86.patch +++ b/var/spack/repos/builtin/packages/parsimonator/nox86.patch diff --git a/var/spack/repos/builtin/packages/patchelf/package.py b/var/spack/repos/builtin/packages/patchelf/package.py index 0c10743d6b..44e97e6ae5 100644 --- a/var/spack/repos/builtin/packages/patchelf/package.py +++ b/var/spack/repos/builtin/packages/patchelf/package.py @@ -16,23 +16,30 @@ class Patchelf(AutotoolsPackage): list_url = "https://nixos.org/releases/patchelf/" list_depth = 1 - version('0.13', sha256='4c7ed4bcfc1a114d6286e4a0d3c1a90db147a4c3adda1814ee0eee0f9ee917ed') - version('0.12', sha256='699a31cf52211cf5ad6e35a8801eb637bc7f3c43117140426400d67b7babd792') - version('0.11', sha256='e52378cc2f9379c6e84a04ac100a3589145533a7b0cd26ef23c79dfd8a9038f9') - version('0.10', sha256='b2deabce05c34ce98558c0efb965f209de592197b2c88e930298d740ead09019') - version('0.9', sha256='f2aa40a6148cb3b0ca807a1bf836b081793e55ec9e5540a5356d800132be7e0a') - version('0.8', sha256='14af06a2da688d577d64ff8dac065bb8903bbffbe01d30c62df7af9bf4ce72fe') + maintainers = ['haampie'] - # Fixes a bug where patchelf errors with 'unsupported overlap - # of SHT_NOTE and PT_NOTE' - patch('https://github.com/NixOS/patchelf/pull/230.patch', sha256='a155f233b228f02d7886e304cb13898d93801b52f351e098c2cc0719697ec9d0', when='@0.12') + version('0.14.1', sha256='7a1506caf6873a2b60e7bebc35e1671fa232ee075642b074106b0d0636417466') + version('0.14', sha256='a31f2bff841dffa896317d3837bc2877c1f79da0744d88e459662d8e7fe7897c') + version('0.13.1', sha256='08c0237e89be74d61ddf8f6ff218439cdd62af572d568fb38913b53e222831de') + version('0.13', sha256='4c7ed4bcfc1a114d6286e4a0d3c1a90db147a4c3adda1814ee0eee0f9ee917ed') + version('0.12', sha256='699a31cf52211cf5ad6e35a8801eb637bc7f3c43117140426400d67b7babd792') + version('0.11', sha256='e52378cc2f9379c6e84a04ac100a3589145533a7b0cd26ef23c79dfd8a9038f9') + version('0.10', sha256='b2deabce05c34ce98558c0efb965f209de592197b2c88e930298d740ead09019') + version('0.9', sha256='f2aa40a6148cb3b0ca807a1bf836b081793e55ec9e5540a5356d800132be7e0a') + version('0.8', sha256='14af06a2da688d577d64ff8dac065bb8903bbffbe01d30c62df7af9bf4ce72fe') conflicts('%gcc@:4.6', when='@0.10:', msg="Requires C++11 support") + conflicts('%gcc@:6', when='@0.14:', msg="Requires C++17 support") + conflicts('%clang@:3', when='@0.14:', msg="Requires C++17 support") def url_for_version(self, version): if version < Version('0.12'): return "https://nixos.org/releases/patchelf/patchelf-{0}/patchelf-{1}.tar.gz".format(version, version) + # Prefer gz over bz2 + if version >= Version('0.13.1'): + return "https://github.com/NixOS/patchelf/releases/download/{0}/patchelf-{1}.tar.gz".format(version, version) + return "https://github.com/NixOS/patchelf/releases/download/{0}/patchelf-{1}.tar.bz2".format(version, version) def test(self): diff --git a/var/spack/repos/builtin/packages/pcma/package.py b/var/spack/repos/builtin/packages/pcma/package.py index 095247dcb5..c656683f8e 100644 --- a/var/spack/repos/builtin/packages/pcma/package.py +++ b/var/spack/repos/builtin/packages/pcma/package.py @@ -18,6 +18,10 @@ class Pcma(MakefilePackage): def edit(self, spec, prefix): makefile = FileFilter('makefile') makefile.filter('gcc', spack_cc) + if spec.satisfies('%gcc@10:'): + # they missed one + filter_file(r'^sint \*seqlen_array;$', 'extern sint *seqlen_array;', + 'calctree.c') def install(self, spec, prefix): mkdirp(prefix.bin) diff --git a/var/spack/repos/builtin/packages/pcre/package.py b/var/spack/repos/builtin/packages/pcre/package.py index 67cc84084f..9e1d74e7b2 100644 --- a/var/spack/repos/builtin/packages/pcre/package.py +++ b/var/spack/repos/builtin/packages/pcre/package.py @@ -12,7 +12,7 @@ class Pcre(AutotoolsPackage): pattern matching using the same syntax and semantics as Perl 5.""" homepage = "https://www.pcre.org" - url = "https://ftp.pcre.org/pub/pcre/pcre-8.42.tar.bz2" + url = "https://sourceforge.net/projects/pcre/files/pcre/8.42/pcre-8.42.tar.bz2/download" version('8.44', sha256='19108658b23b3ec5058edc9f66ac545ea19f9537234be1ec62b714c84399366d') version('8.43', sha256='91e762520003013834ac1adb4a938d53b22a216341c061b0cf05603b290faf6b') @@ -22,6 +22,7 @@ class Pcre(AutotoolsPackage): version('8.39', sha256='b858099f82483031ee02092711689e7245586ada49e534a06e678b8ea9549e8b') version('8.38', sha256='b9e02d36e23024d6c02a2e5b25204b3a4fa6ade43e0a5f869f254f49535079df') + maintainers = ['drkennetz'] patch('intel.patch', when='@8.38') variant('jit', default=False, diff --git a/var/spack/repos/builtin/packages/percept/package.py b/var/spack/repos/builtin/packages/percept/package.py index 13c4e1a667..681bcf9518 100644 --- a/var/spack/repos/builtin/packages/percept/package.py +++ b/var/spack/repos/builtin/packages/percept/package.py @@ -25,7 +25,7 @@ class Percept(CMakePackage): depends_on('opennurbs@percept') depends_on('boost+graph+mpi') depends_on('yaml-cpp+pic~shared@0.5.3:') - depends_on('trilinos~shared+exodus+mpi+tpetra+epetra+epetraext+muelu+belos+ifpack2+amesos2+zoltan+stk+boost~superlu-dist+superlu+hdf5+zlib+aztec+sacado~openmp+shards+intrepid@master,12.14.1:') + depends_on('trilinos~shared+exodus+mpi+tpetra+epetra+epetraext+muelu+belos+ifpack2+amesos2+zoltan+stk+boost~superlu-dist+superlu+hdf5+aztec+sacado~openmp+shards+intrepid@master,12.14.1:') def cmake_args(self): spec = self.spec diff --git a/var/spack/repos/builtin/packages/percona-server/package.py b/var/spack/repos/builtin/packages/percona-server/package.py index 22095246ab..57226e5c9f 100644 --- a/var/spack/repos/builtin/packages/percona-server/package.py +++ b/var/spack/repos/builtin/packages/percona-server/package.py @@ -21,7 +21,8 @@ class PerconaServer(CMakePackage): depends_on('openssl') depends_on('ncurses') depends_on('readline') - depends_on('openldap') + # Links to libldap_r, which was merged with libldap in OpenLDAP 2.5 + depends_on('openldap@:2.4') depends_on('libtirpc') depends_on('curl') depends_on('bison', type='build') diff --git a/var/spack/repos/builtin/packages/perl-dbd-mysql/package.py b/var/spack/repos/builtin/packages/perl-dbd-mysql/package.py index d968942c09..f6328a0dfd 100644 --- a/var/spack/repos/builtin/packages/perl-dbd-mysql/package.py +++ b/var/spack/repos/builtin/packages/perl-dbd-mysql/package.py @@ -10,10 +10,10 @@ class PerlDbdMysql(PerlPackage): """MySQL driver for the Perl5 Database Interface (DBI)""" homepage = "https://metacpan.org/pod/DBD::mysql" - url = "http://search.cpan.org/CPAN/authors/id/M/MI/MICHIELB/DBD-mysql-4.043.tar.gz" + url = "https://search.cpan.org/CPAN/authors/id/M/MI/MICHIELB/DBD-mysql-4.043.tar.gz" version('4.043', sha256='629f865e8317f52602b2f2efd2b688002903d2e4bbcba5427cb6188b043d6f99') depends_on('perl-test-deep', type=('build', 'run')) depends_on('perl-dbi', type=('build', 'run')) - depends_on('mariadb@:10.1.23') + depends_on('mysql-client') diff --git a/var/spack/repos/builtin/packages/perl-forks/package.py b/var/spack/repos/builtin/packages/perl-forks/package.py index 7fbd843ac2..16e69a6b6a 100644 --- a/var/spack/repos/builtin/packages/perl-forks/package.py +++ b/var/spack/repos/builtin/packages/perl-forks/package.py @@ -19,3 +19,7 @@ class PerlForks(PerlPackage): depends_on('perl-devel-symdump', type=('build', 'run')) depends_on('perl-list-moreutils', type=('build', 'run')) depends_on('perl-sys-sigaction', type=('build', 'run')) + + def setup_build_environment(self, env): + if 'perl~threads' in self.spec: + env.set('FORKS_SIMULATE_USEITHREADS', '1') diff --git a/var/spack/repos/builtin/packages/perl/package.py b/var/spack/repos/builtin/packages/perl/package.py index ddd732c5dd..72c6c375e3 100644 --- a/var/spack/repos/builtin/packages/perl/package.py +++ b/var/spack/repos/builtin/packages/perl/package.py @@ -15,6 +15,7 @@ import os import re from contextlib import contextmanager +from llnl.util import tty from llnl.util.lang import match_predicate from spack import * @@ -299,8 +300,21 @@ class Perl(Package): # Perl doesn't use Autotools, it should subclass Package # This is to avoid failures when using -mmacosx-version-min=11.1 # since not all Apple Clang compilers support that version range # See https://eclecticlight.co/2020/07/21/big-sur-is-both-10-16-and-11-0-its-official/ + # It seems that this is only necessary for older versions of the + # command line tools rather than the xcode/clang version. if spec.satisfies('os=bigsur'): - env.set('SYSTEM_VERSION_COMPAT', 1) + pkgutil = Executable('pkgutil') + output = pkgutil('--pkg-info=com.apple.pkg.CLTools_Executables', + output=str, error=str, fail_on_error=False) + match = re.search(r'version:\s*([0-9.]+)', output) + if not match: + tty.warn('Failed to detect macOS command line tools version: ' + + output) + else: + if Version(match.group(1)) < Version('12'): + tty.warn("Setting SYSTEM_VERSION_COMPAT=1 due to older " + "command line tools version") + env.set('SYSTEM_VERSION_COMPAT', 1) # This is how we tell perl the locations of bzip and zlib. env.set('BUILD_BZIP2', 0) diff --git a/var/spack/repos/builtin/packages/petsc/package.py b/var/spack/repos/builtin/packages/petsc/package.py index 75646e4cf4..8c60a31675 100644 --- a/var/spack/repos/builtin/packages/petsc/package.py +++ b/var/spack/repos/builtin/packages/petsc/package.py @@ -20,6 +20,7 @@ class Petsc(Package, CudaPackage, ROCmPackage): version('main', branch='main') + version('3.16.2', sha256='7ab257ae150d4837ac8d3872a1d206997962578785ec2427639ceac46d131bbc') version('3.16.1', sha256='909cf7bce7b6a0ddb2580a1ac9502aa01631ec4105c716594c1804f0ee1ea06a') version('3.16.0', sha256='5aaad7deea127a4790c8aa95c42fd9451ab10b5d6c68b226b92d4853002f438d') version('3.15.5', sha256='67dc31f1c1c941a0e45301ed4042628586e92e8c4e9b119695717ae782ef23a3') @@ -164,6 +165,8 @@ class Petsc(Package, CudaPackage, ROCmPackage): description='Activates support for openmp') variant('hwloc', default=False, description='Activates support for hwloc') + variant('kokkos', default=False, + description='Activates support for kokkos and kokkos-kernels') # 3.8.0 has a build issue with MKL - so list this conflict explicitly conflicts('^intel-mkl', when='@3.8.0') @@ -183,6 +186,8 @@ class Petsc(Package, CudaPackage, ROCmPackage): conflicts('+ptscotch', when='~mpi', msg=mpi_msg) conflicts('+superlu-dist', when='~mpi', msg=mpi_msg) conflicts('+trilinos', when='~mpi', msg=mpi_msg) + conflicts('+kokkos', when='~mpi', msg=mpi_msg) + conflicts('^openmpi~cuda', when='+cuda') # +cuda requires CUDA enabled OpenMPI # older versions of petsc did not support mumps when +int64 conflicts('+mumps', when='@:3.12+int64') @@ -216,6 +221,12 @@ class Petsc(Package, CudaPackage, ROCmPackage): depends_on('hip', when='+rocm') depends_on('hipblas', when='+rocm') depends_on('hipsparse', when='+rocm') + depends_on('rocsparse', when='+rocm') + depends_on('rocsolver', when='+rocm') + depends_on('rocblas', when='+rocm') + depends_on('rocrand', when='+rocm') + depends_on('rocthrust', when='+rocm') + depends_on('rocprim', when='+rocm') # Build dependencies depends_on('python@2.6:2.8', type='build', when='@:3.10') @@ -312,6 +323,11 @@ class Petsc(Package, CudaPackage, ROCmPackage): depends_on('saws', when='+saws') depends_on('libyaml', when='+libyaml') depends_on('hwloc', when='+hwloc') + depends_on('kokkos', when='+kokkos') + depends_on('kokkos-kernels', when='+kokkos') + depends_on('kokkos+cuda+wrapper+cuda_lambda', when='+kokkos +cuda') + depends_on('kokkos-kernels+cuda', when='+kokkos +cuda') + depends_on('kokkos+rocm', when='+kokkos +rocm') # Using the following tarballs # * petsc-3.12 (and older) - includes docs @@ -387,7 +403,6 @@ class Petsc(Package, CudaPackage, ROCmPackage): options.append('--with-x=0') if 'trilinos' in spec: - options.append('--with-cxx-dialect=C++11') if spec.satisfies('^trilinos+boost'): options.append('--with-boost=1') @@ -406,10 +421,12 @@ class Petsc(Package, CudaPackage, ROCmPackage): # if not (useinc || uselib): usedir - i.e (False, False) for library in ( ('cuda', 'cuda', False, False), - ('hip', 'hip', False, False), + ('hip', 'hip', True, False), 'metis', 'hypre', 'parmetis', + ('kokkos', 'kokkos', False, False), + ('kokkos-kernels', 'kokkos-kernels', False, False), ('superlu-dist', 'superlu_dist', True, True), ('scotch', 'ptscotch', True, True), ('suite-sparse:umfpack,klu,cholmod,btf,ccolamd,colamd,camd,amd, \ @@ -486,9 +503,25 @@ class Petsc(Package, CudaPackage, ROCmPackage): else: options.append('CUDAFLAGS=-gencode arch=compute_{0},code=sm_{0}' .format(cuda_arch[0])) + if '+rocm' in spec: + if not spec.satisfies('amdgpu_target=none'): + hip_arch = spec.variants['amdgpu_target'].value + options.append('--with-hip-arch={0}'.format(hip_arch[0])) + hip_pkgs = ['hipsparse', 'hipblas', 'rocsparse', 'rocsolver', 'rocblas'] + hip_ipkgs = hip_pkgs + ['rocthrust', 'rocprim'] + hip_lpkgs = hip_pkgs + ['rocrand'] + hip_inc = '' + hip_lib = '' + for pkg in hip_ipkgs: + hip_inc += spec[pkg].headers.include_flags + ' ' + for pkg in hip_lpkgs: + hip_lib += spec[pkg].libs.joined() + ' ' + options.append('HIPPPFLAGS=%s' % hip_inc) + options.append('with-hip-lib=%s -L%s -lamdhip64' % + (hip_lib, spec['hip'].prefix.lib)) if 'superlu-dist' in spec: - if spec.satisfies('@3.10.3:'): + if spec.satisfies('@3.10.3:3.15'): options.append('--with-cxx-dialect=C++11') if '+mkl-pardiso' in spec: @@ -501,10 +534,16 @@ class Petsc(Package, CudaPackage, ROCmPackage): if '+hpddm' in spec: options.append('--download-hpddm') + # revert changes by kokkos-nvcc-wrapper + if spec.satisfies('^kokkos+cuda+wrapper'): + env['MPICH_CXX'] = env['CXX'] + env['OMPI_CXX'] = env['CXX'] + env['MPICXX_CXX'] = env['CXX'] + python('configure', '--prefix=%s' % prefix, *options) # PETSc has its own way of doing parallel make. - make('MAKE_NP=%s' % make_jobs, parallel=False) + make('V=1 MAKE_NP=%s' % make_jobs, parallel=False) make("install") if self.run_tests: @@ -527,6 +566,11 @@ class Petsc(Package, CudaPackage, ROCmPackage): env.unset('PETSC_ARCH') @property + def archive_files(self): + return [join_path(self.stage.source_path, 'configure.log'), + join_path(self.stage.source_path, 'make.log')] + + @property def headers(self): return find_headers('petsc', self.prefix.include, recursive=False) \ or None # return None to indicate failure @@ -538,6 +582,7 @@ class Petsc(Package, CudaPackage, ROCmPackage): """Copy the build test files after the package is installed to an install test subdirectory for use during `spack test run`.""" self.cache_extra_test_sources('src/ksp/ksp/tutorials') + self.cache_extra_test_sources('src/snes/tutorials') def test(self): # solve Poisson equation in 2D to make sure nothing is broken: @@ -578,3 +623,12 @@ class Petsc(Package, CudaPackage, ROCmPackage): '-use_gpu_aware_mpi', '0'] self.run_test(runexe, runopt + testexe) make('clean', parallel=False) + w_dir = join_path(self.install_test_root, 'src/snes/tutorials') + with working_dir(w_dir): + if '+kokkos' in spec: + make('ex3k', parallel=False) + testexe = ['ex3k', '-view_initial', '-dm_vec_type', 'kokkos', + '-dm_mat_type', 'aijkokkos', '-use_gpu_aware_mpi', '0', + '-snes_monitor'] + self.run_test(runexe, runopt + testexe) + make('clean', parallel=False) diff --git a/var/spack/repos/builtin/packages/pgplot/g77_gcc.conf.patch b/var/spack/repos/builtin/packages/pgplot/g77_gcc.conf.patch index f97ed8ab49..970527afe8 100644 --- a/var/spack/repos/builtin/packages/pgplot/g77_gcc.conf.patch +++ b/var/spack/repos/builtin/packages/pgplot/g77_gcc.conf.patch @@ -78,7 +78,7 @@ # Mandatory. # On systems that have a ranlib utility, put "ranlib" here. On other -@@ -108,7 +108,7 @@ +@@ -108,16 +108,16 @@ # Optional: Needed if SHARED_LIB is set. # How to create a shared library from a trailing list of object files. @@ -87,3 +87,13 @@ # Optional: # On systems such as Solaris 2.x, that allow specification of the + # libraries that a shared library needs to be linked with when a + # program that uses it is run, this variable should contain the + # library-specification flags used to specify these libraries to + # $SHARED_LD + +- SHARED_LIB_LIBS="" ++ SHARED_LIB_LIBS="@SHARED_LIB_LIBS@" + + # Optional: + # Compiler name used on Next systems to compile objective-C files. diff --git a/var/spack/repos/builtin/packages/pgplot/package.py b/var/spack/repos/builtin/packages/pgplot/package.py index a042fe2159..92fc29f591 100644 --- a/var/spack/repos/builtin/packages/pgplot/package.py +++ b/var/spack/repos/builtin/packages/pgplot/package.py @@ -7,7 +7,7 @@ from spack import * class Pgplot(MakefilePackage): - """PGPLOT Graphics Subroutine Library + """PGPLOT Graphics Subroutine Library. The PGPLOT Graphics Subroutine Library is a Fortran- or C-callable, device-independent graphics package for making @@ -51,6 +51,12 @@ class Pgplot(MakefilePackage): def edit(self, spec, prefix): + libs = '' + if '+X' in spec: + libs += ' ' + self.spec['X11'].libs.ld_flags + if '+png' in spec: + libs += ' ' + self.spec['libpng'].libs.ld_flags + if spec.satisfies('%gcc'): fib = " -fallow-invalid-boz" if spec.satisfies('%gcc@10:') else "" @@ -61,9 +67,10 @@ class Pgplot(MakefilePackage): '@CFLAGD@': "-O2", '@FCOMPL@': spack_fc, '@FFLAGC@': "-Wall -fPIC -O -ffixed-line-length-none" + fib, - '@FFLAGD@': "-fno-backslash", - '@LIBS@': "-lgfortran", - '@SHARED_LD@': spack_cc + " -shared -o $SHARED_LIB -lgfortran" + '@FFLAGD@': libs + " -fno-backslash", + '@LIBS@': libs + " -lgfortran", + '@SHARED_LD@': spack_cc + " -shared -o $SHARED_LIB", + '@SHARED_LIB_LIBS@': libs + " -lgfortran", } elif spec.satisfies('%intel'): sub = { @@ -72,9 +79,10 @@ class Pgplot(MakefilePackage): '@CFLAGD@': "-O2 -lifcore -lifport", '@FCOMPL@': spack_fc, '@FFLAGC@': "-fPIC", - '@FFLAGD@': "-nofor-main", - '@LIBS@': "-nofor-main -lifcore -lifport", - '@SHARED_LD@': spack_cc + " -shared -o $SHARED_LIB" + '@FFLAGD@': libs + " -nofor-main", + '@LIBS@': libs + " -nofor-main -lifcore -lifport", + '@SHARED_LD@': spack_cc + " -shared -o $SHARED_LIB", + '@SHARED_LIB_LIBS@': libs + " -nofor-main -lifcore -lifport", } conf = join_path( @@ -91,14 +99,12 @@ class Pgplot(MakefilePackage): enable_driver('! XWDRIV 1 /XWINDOW') enable_driver('! XWDRIV 2 /XSERVE') - sub['@FFLAGD@'] += ' -L{0} -lX11'.format(self.spec['libx11'].prefix.lib) - sub['@LIBS@'] += ' -L{0} -lX11'.format(self.spec['libx11'].prefix.lib) - if '+png' in spec: enable_driver('! PNDRIV 1 /PNG') filter_file('pndriv.o : ./png.h ./pngconf.h ./zlib.h ./zconf.h', - 'pndriv.o :', 'makemake') + 'pndriv.o :', + 'makemake') # Alwasy enable PS and LATEX since they are not depending on other libraries. enable_driver('! PSDRIV 1 /PS') @@ -115,8 +121,10 @@ class Pgplot(MakefilePackage): filter_file(key, value, conf) def setup_build_environment(self, env): + if '+X' in self.spec: + env.append_flags('LIBS', self.spec['X11'].libs.ld_flags) if '+png' in self.spec: - env.set('LIBS', self.spec['libpng'].libs.ld_flags) + env.append_flags('LIBS', self.spec['libpng'].libs.ld_flags) def build(self, spec, prefix): makemake = which('./makemake') diff --git a/var/spack/repos/builtin/packages/php/sbang.patch b/var/spack/repos/builtin/packages/php/sbang.patch index aca17c8ff3..aca17c8ff3 100755..100644 --- a/var/spack/repos/builtin/packages/php/sbang.patch +++ b/var/spack/repos/builtin/packages/php/sbang.patch diff --git a/var/spack/repos/builtin/packages/phyluce/package.py b/var/spack/repos/builtin/packages/phyluce/package.py index 5fb589f485..cd23147bf8 100644 --- a/var/spack/repos/builtin/packages/phyluce/package.py +++ b/var/spack/repos/builtin/packages/phyluce/package.py @@ -31,7 +31,7 @@ class Phyluce(PythonPackage): depends_on('mafft', type='run') depends_on('muscle', type='run') depends_on('picard', type='run') - depends_on('raxml+pthreads+sse', type='run') + depends_on('raxml+pthreads', type='run') depends_on('samtools', type='run') depends_on('seqtk', type='run') depends_on('spades', type='run') diff --git a/var/spack/repos/builtin/packages/pixz/package.py b/var/spack/repos/builtin/packages/pixz/package.py index 4f1663f332..0b6738293a 100644 --- a/var/spack/repos/builtin/packages/pixz/package.py +++ b/var/spack/repos/builtin/packages/pixz/package.py @@ -12,6 +12,7 @@ class Pixz(AutotoolsPackage): homepage = "https://www.github.com/vasi/pixz" url = "https://github.com/vasi/pixz/releases/download/v1.0.6/pixz-1.0.6.tar.xz" + version('1.0.7', sha256='e5e32c6eb0bf112b98e74a5da8fb63b9f2cae71800f599d97ce540e150c8ddc5') version('1.0.6', sha256='02c50746b134fa1b1aae41fcc314d7c6f1919b3d48bcdea01bf11769f83f72e8') depends_on('xz') diff --git a/var/spack/repos/builtin/packages/podman/package.py b/var/spack/repos/builtin/packages/podman/package.py new file mode 100644 index 0000000000..f759773bff --- /dev/null +++ b/var/spack/repos/builtin/packages/podman/package.py @@ -0,0 +1,81 @@ +# Copyright 2013-2021 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 Podman(Package): + """An optionally rootless and daemonless container engine: alias docker=podman""" + + homepage = 'https://podman.io' + url = 'https://github.com/containers/podman/archive/v3.4.2.tar.gz' + maintainers = ['bernhardkaindl'] + + version('3.4.2', sha256='b0c4f9a11eb500b1d440d5e51a6c0c632aa4ac458e2dc0362f50f999eb7fbf31') + + depends_on('go', type='build') + depends_on('go-md2man', type='build') + depends_on('pkgconfig', type='build') + depends_on('cni-plugins', type='run') + depends_on('conmon', type='run') + depends_on('runc', type='run') + depends_on('slirp4netns', type='run') + depends_on('gpgme') + depends_on('libassuan') + depends_on('libgpg-error') + depends_on('libseccomp') + + def patch(self): + defs = FileFilter('vendor/github.com/containers/common/pkg/config/default.go') + + # Prepend the provided runc executable to podman's built-in runc search path + defs.filter( + '"runc": {', + '"runc": {' + '"{0}",'.format(self.spec['runc'].prefix.sbin.runc) + ) + # Prepend the provided conmon executable to podman's built-in conmon search path + defs.filter( + r'ConmonPath = \[\]string{', + 'ConmonPath = []string{' + + '\n "{0}",'.format(self.spec['conmon'].prefix.bin.conmon) + ) + # Prepend the provided cni-plugins directory to the cni-plugin search path + defs.filter( + r'DefaultCNIPluginDirs = \[\]string{', + 'DefaultCNIPluginDirs = []string{' + + '\n "{0}",'.format(self.spec['cni-plugins'].prefix.bin) + ) + # Set the default path for slirp4netns to the provided slirp4netns executable + defs.filter( + 'cniConfig := _cniConfigDir', + 'cniConfig := _cniConfigDir' + + '\n defaultEngineConfig.NetworkCmdPath = "{0}"'.format( + self.spec['slirp4netns'].prefix.bin.slirp4netns + ) + ) + # Use the podman install prefix as fallback path for finding container.conf + filter_file( + r'/usr', + self.prefix, + 'vendor/github.com/containers/common/pkg/config/config.go', + ) + + def install(self, spec, prefix): + # Set default policy.json to be located in the install prefix (documented) + env['EXTRA_LDFLAGS'] = ( + '-X github.com/containers/image/v5/signature.systemDefaultPolicyPath=' + + prefix + '/etc/containers/policy.json' + ) + # Build and installation needs to be in two separate make calls + # The devicemapper and btrfs drivers are (so far) not enabled in this recipe + tags = 'seccomp exclude_graphdriver_devicemapper exclude_graphdriver_btrfs' + make('-e', 'BUILDTAGS=' + tags) + make('install', 'PREFIX=' + prefix) + # Install an initial etc/containers/policy.json (configured in prefix above) + mkdirp(prefix.etc.containers) + install('test/policy.json', prefix.etc.containers) + # Cleanup directory trees which are created as part of the go build process + remove_linked_tree(prefix.src) + remove_linked_tree(prefix.pkg) diff --git a/var/spack/repos/builtin/packages/poppler/poppler_page_splash.0.90.1.patch b/var/spack/repos/builtin/packages/poppler/poppler_page_splash.0.90.1.patch index 100d026f27..100d026f27 100755..100644 --- a/var/spack/repos/builtin/packages/poppler/poppler_page_splash.0.90.1.patch +++ b/var/spack/repos/builtin/packages/poppler/poppler_page_splash.0.90.1.patch diff --git a/var/spack/repos/builtin/packages/poppler/poppler_page_splash.patch b/var/spack/repos/builtin/packages/poppler/poppler_page_splash.patch index 21572d784c..21572d784c 100755..100644 --- a/var/spack/repos/builtin/packages/poppler/poppler_page_splash.patch +++ b/var/spack/repos/builtin/packages/poppler/poppler_page_splash.patch diff --git a/var/spack/repos/builtin/packages/portage/package.py b/var/spack/repos/builtin/packages/portage/package.py index 331e4aed48..3ec7cca307 100644 --- a/var/spack/repos/builtin/packages/portage/package.py +++ b/var/spack/repos/builtin/packages/portage/package.py @@ -25,7 +25,6 @@ class Portage(CMakePackage): variant('mpi', default=True, description='Support MPI') variant('tangram', default=False, description='Use Tangram interface reconstruction package') variant('jali', default=False, description='Include support for Jali mesh framework') - variant('flecsisp', default=False, description='Include support for FleCSI mesh framework') variant('thrust', default=False, description='Enable on-node parallelism using NVidia Thrust library') variant('kokkos', default=False, description='Enable on-node or device parallelism with Kokkos') variant('openmp', default=False, description="Enable on-node parallelism using OpenMP") @@ -34,23 +33,23 @@ class Portage(CMakePackage): depends_on("cmake@3.13:", type='build') depends_on('mpi', when='+mpi') + depends_on('kokkos', when='+kokkos') + depends_on('thrust', when='+thrust') + depends_on('jali', when='+jali') depends_on('tangram', when='+tangram') - depends_on('tangram+mpi', when='+tangram+mpi') - depends_on('tangram+jali', when='+tangram+jali') - depends_on('tangram+flecsisp', when='+tangram+flecsisp') - depends_on('tangram+thrust', when='+tangram+thrust') - depends_on('tangram+kokkos', when='+tangram+kokkos') - depends_on('tangram+cuda', when='+tangram+cuda') + + for _variant in ['mpi', 'jali', 'openmp', 'thrust', 'kokkos', 'cuda']: + depends_on('tangram+' + _variant, when='+tangram+' + _variant) + depends_on('tangram~' + _variant, when='+tangram~' + _variant) depends_on('wonton') - depends_on('wonton+mpi', when='+mpi') - depends_on('wonton+jali', when='+jali') - depends_on('wonton+flecsisp', when='+flecsisp') - depends_on('wonton+thrust', when='+thrust') - depends_on('wonton+kokkos', when='+kokkos') - depends_on('wonton+openmp', when='+openmp') - depends_on('wonton+cuda', when='+cuda') + # Wonton depends array + wonton_variant = ['mpi', 'jali', 'openmp', 'thrust', 'kokkos', 'cuda'] + + for _variant in wonton_variant: + depends_on('wonton+' + _variant, when='+' + _variant) + depends_on('wonton~' + _variant, when='~' + _variant) # Jali needs MPI conflicts('+jali ~mpi') @@ -84,7 +83,7 @@ class Portage(CMakePackage): else: options.append('-DPORTAGE_ENABLE_Jali=OFF') - if '+flecsi' in self.spec: + if '+flecsisp' in self.spec: options.append('-DPORTAGE_ENABLE_FleCSI=ON') else: options.append('-DPORTAGE_ENABLE_FleCSI=OFF') @@ -103,3 +102,8 @@ class Portage(CMakePackage): options.append('-DENABLE_APP_TESTS=OFF') return options + + def check(self): + if self.run_tests: + with working_dir(self.build_directory): + make("test") diff --git a/var/spack/repos/builtin/packages/portcullis/package.py b/var/spack/repos/builtin/packages/portcullis/package.py index 9f5b35a805..7bc2c6c62b 100644 --- a/var/spack/repos/builtin/packages/portcullis/package.py +++ b/var/spack/repos/builtin/packages/portcullis/package.py @@ -10,14 +10,16 @@ from spack import * class Portcullis(AutotoolsPackage): """PORTable CULLing of Invalid Splice junctions""" - homepage = "https://github.com/maplesond/portcullis" - url = "https://github.com/maplesond/portcullis/archive/Release-1.1.2.tar.gz" + homepage = "https://github.com/EI-CoreBioinformatics/portcullis" + url = "https://github.com/EI-CoreBioinformatics/portcullis/archive/refs/tags/Release-1.1.2.tar.gz" + version('1.2.3', sha256='172452b5cef12a8dcc2c1c68527000743114136ee63a0dbe307ac4e2a816bc99') version('1.1.2', sha256='5c581a7f827ffeecfe68107b7fe27ed60108325fd2f86a79d93f61b328687749') depends_on('autoconf@2.53:', type='build') depends_on('automake@1.11:', type='build') depends_on('libtool@2.4.2:', type='build') + depends_on('boost') depends_on('m4', type='build') depends_on('zlib', type='build') @@ -53,7 +55,3 @@ class Portcullis(AutotoolsPackage): def build(self, spec, prefix): # build manpages make('man') - - # run boost build script - sh = which('sh') - sh('build_boost.sh') diff --git a/var/spack/repos/builtin/packages/ppopen-appl-amr-fdm/package.py b/var/spack/repos/builtin/packages/ppopen-appl-amr-fdm/package.py index 9e21fd66d1..9e21fd66d1 100755..100644 --- a/var/spack/repos/builtin/packages/ppopen-appl-amr-fdm/package.py +++ b/var/spack/repos/builtin/packages/ppopen-appl-amr-fdm/package.py diff --git a/var/spack/repos/builtin/packages/ppopen-appl-bem-at/duplicate_defs.patch b/var/spack/repos/builtin/packages/ppopen-appl-bem-at/duplicate_defs.patch index d21d9364e5..d21d9364e5 100755..100644 --- a/var/spack/repos/builtin/packages/ppopen-appl-bem-at/duplicate_defs.patch +++ b/var/spack/repos/builtin/packages/ppopen-appl-bem-at/duplicate_defs.patch diff --git a/var/spack/repos/builtin/packages/ppopen-appl-dem-util/package.py b/var/spack/repos/builtin/packages/ppopen-appl-dem-util/package.py index 508a068c05..508a068c05 100755..100644 --- a/var/spack/repos/builtin/packages/ppopen-appl-dem-util/package.py +++ b/var/spack/repos/builtin/packages/ppopen-appl-dem-util/package.py diff --git a/var/spack/repos/builtin/packages/ppopen-appl-fdm-at/package.py b/var/spack/repos/builtin/packages/ppopen-appl-fdm-at/package.py index 37820a5ce6..37820a5ce6 100755..100644 --- a/var/spack/repos/builtin/packages/ppopen-appl-fdm-at/package.py +++ b/var/spack/repos/builtin/packages/ppopen-appl-fdm-at/package.py diff --git a/var/spack/repos/builtin/packages/ppopen-appl-fdm/gfortran_iargc.patch b/var/spack/repos/builtin/packages/ppopen-appl-fdm/gfortran_iargc.patch index 115a0f0688..115a0f0688 100755..100644 --- a/var/spack/repos/builtin/packages/ppopen-appl-fdm/gfortran_iargc.patch +++ b/var/spack/repos/builtin/packages/ppopen-appl-fdm/gfortran_iargc.patch diff --git a/var/spack/repos/builtin/packages/ppopen-appl-fdm/package.py b/var/spack/repos/builtin/packages/ppopen-appl-fdm/package.py index f1a4348e17..f1a4348e17 100755..100644 --- a/var/spack/repos/builtin/packages/ppopen-appl-fdm/package.py +++ b/var/spack/repos/builtin/packages/ppopen-appl-fdm/package.py diff --git a/var/spack/repos/builtin/packages/ppopen-appl-fdm/unused.patch b/var/spack/repos/builtin/packages/ppopen-appl-fdm/unused.patch index 4c6e67c65d..4c6e67c65d 100755..100644 --- a/var/spack/repos/builtin/packages/ppopen-appl-fdm/unused.patch +++ b/var/spack/repos/builtin/packages/ppopen-appl-fdm/unused.patch diff --git a/var/spack/repos/builtin/packages/ppopen-appl-fem/gcc_struct_atomic.patch b/var/spack/repos/builtin/packages/ppopen-appl-fem/gcc_struct_atomic.patch index cd4fc87d9d..cd4fc87d9d 100755..100644 --- a/var/spack/repos/builtin/packages/ppopen-appl-fem/gcc_struct_atomic.patch +++ b/var/spack/repos/builtin/packages/ppopen-appl-fem/gcc_struct_atomic.patch diff --git a/var/spack/repos/builtin/packages/py-aiohttp/package.py b/var/spack/repos/builtin/packages/py-aiohttp/package.py index 4f63193a93..4606f42fce 100644 --- a/var/spack/repos/builtin/packages/py-aiohttp/package.py +++ b/var/spack/repos/builtin/packages/py-aiohttp/package.py @@ -21,7 +21,7 @@ class PyAiohttp(PythonPackage): depends_on('python@3.6:', type=('build', 'run'), when='@3.7:') depends_on('py-attrs@17.3.0:', type=('build', 'run')) depends_on('py-chardet@2.0:3', type=('build', 'run')) - depends_on('py-multidict@4.5:4', type=('build', 'run')) + depends_on('py-multidict@4.5:4', type=('build', 'run'), when='@:3.6.2') depends_on('py-multidict@4.5:6', type=('build', 'run'), when='@3.6.3:') depends_on('py-async-timeout@3.0:3', type=('build', 'run')) depends_on('py-yarl@1.0:1', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-aiosqlite/package.py b/var/spack/repos/builtin/packages/py-aiosqlite/package.py new file mode 100644 index 0000000000..96d96bbc30 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-aiosqlite/package.py @@ -0,0 +1,22 @@ +# Copyright 2013-2021 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 PyAiosqlite(PythonPackage): + """asyncio bridge to the standard sqlite3 module""" + + homepage = "https://aiosqlite.omnilib.dev" + pypi = "aiosqlite/aiosqlite-0.17.0.tar.gz" + + version('0.17.0', sha256='f0e6acc24bc4864149267ac82fb46dfb3be4455f99fe21df82609cc6e6baee51') + + depends_on('python@3.6:', type=('build', 'run')) + depends_on('py-typing-extensions@3.7.2:', type=('build', 'run')) + depends_on('py-flit-core@2:3', type='build') + + # aiosqlite.test requires aiounittests, not yet in spack + import_modules = ['aiosqlite'] diff --git a/var/spack/repos/builtin/packages/py-astroid/package.py b/var/spack/repos/builtin/packages/py-astroid/package.py index e9fc469674..9d691f0783 100644 --- a/var/spack/repos/builtin/packages/py-astroid/package.py +++ b/var/spack/repos/builtin/packages/py-astroid/package.py @@ -39,12 +39,12 @@ class PyAstroid(PythonPackage): depends_on('py-lazy-object-proxy', type=('build', 'run')) # Starting with astroid 2.3.1, astroid's dependencies were restricted # to a given minor version, c.f. commit e1b4e11. - depends_on('py-lazy-object-proxy@1.4.0:1.4', when='@2.3.1:', type=('build', 'run')) + depends_on('py-lazy-object-proxy@1.4.0:1.4', when='@2.3.1:2.7.2', type=('build', 'run')) depends_on('py-lazy-object-proxy@1.4.0:', when='@2.7.3:', type=('build', 'run')) depends_on('py-six', type=('build', 'run'), when='@:2.7.2') depends_on('py-six@1.12:1', when='@2.3.3:2.7.2', type=('build', 'run')) depends_on('py-wrapt', when='@:2.2', type=('build', 'run')) - depends_on('py-wrapt@1.11:1.12', when='@2.3.3:', type=('build', 'run')) + depends_on('py-wrapt@1.11:1.12', when='@2.3.3:2.8.2', type=('build', 'run')) depends_on('py-wrapt@1.11:1.13', when='@2.8.3:', type=('build', 'run')) depends_on('py-enum34@1.1.3:', when='^python@:3.3', type=('build', 'run')) depends_on('py-singledispatch', when='^python@:3.3', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-astropy/package.py b/var/spack/repos/builtin/packages/py-astropy/package.py index cd2bcb1c70..adbc56cada 100644 --- a/var/spack/repos/builtin/packages/py-astropy/package.py +++ b/var/spack/repos/builtin/packages/py-astropy/package.py @@ -62,7 +62,7 @@ class PyAstropy(PythonPackage): # System dependencies depends_on('erfa') depends_on('wcslib') - depends_on('cfitsio') + depends_on('cfitsio@:3') depends_on('expat') def patch(self): diff --git a/var/spack/repos/builtin/packages/py-automat/package.py b/var/spack/repos/builtin/packages/py-automat/package.py new file mode 100644 index 0000000000..71c7f16a1d --- /dev/null +++ b/var/spack/repos/builtin/packages/py-automat/package.py @@ -0,0 +1,22 @@ +# Copyright 2013-2021 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 PyAutomat(PythonPackage): + """Self-service finite-state machines for the programmer on the go.""" + + homepage = "https://github.com/glyph/Automat" + pypi = "Automat/Automat-20.2.0.tar.gz" + + version('20.2.0', sha256='7979803c74610e11ef0c0d68a2942b152df52da55336e0c9d58daf1831cbdf33') + + depends_on('py-setuptools', type='build') + depends_on('py-setuptools-scm', type='build') + depends_on('py-m2r', type='build') + + depends_on('py-attrs@19.2.0:', type=('build', 'run')) + depends_on('py-six', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-babel/package.py b/var/spack/repos/builtin/packages/py-babel/package.py index 823b5f3b60..e96e3872df 100644 --- a/var/spack/repos/builtin/packages/py-babel/package.py +++ b/var/spack/repos/builtin/packages/py-babel/package.py @@ -14,6 +14,7 @@ class PyBabel(PythonPackage): homepage = "https://babel.pocoo.org/en/latest/" pypi = "Babel/Babel-2.7.0.tar.gz" + version('2.9.1', sha256='bc0c176f9f6a994582230df350aa6e05ba2ebe4b3ac317eab29d9be5d2768da0') version('2.7.0', sha256='e86135ae101e31e2c8ec20a4e0c5220f4eed12487d5cf3f78be7e98d3a57fc28') version('2.6.0', sha256='8cba50f48c529ca3fa18cf81fa9403be176d374ac4d60738b839122dfaaa3d23') version('2.4.0', sha256='8c98f5e5f8f5f088571f2c6bd88d530e331cbbcb95a7311a0db69d3dca7ec563') diff --git a/var/spack/repos/builtin/packages/py-backports-os/package.py b/var/spack/repos/builtin/packages/py-backports-os/package.py new file mode 100644 index 0000000000..e4f802eb57 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-backports-os/package.py @@ -0,0 +1,19 @@ +# Copyright 2013-2021 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 PyBackportsOs(PythonPackage): + """Backport of new features in Python's os module""" + + homepage = "https://github.com/pjdelport/backports.os" + pypi = "backports.os/backports.os-0.1.1.tar.gz" + + version('0.1.1', sha256='b472c4933094306ca08ec90b2a8cbb50c34f1fb2767775169a1c1650b7b74630') + + depends_on('py-setuptools', type='build') + depends_on('py-setuptools-scm', type='build') + depends_on('py-future', type=('build', 'run'), when='^python@:2') diff --git a/var/spack/repos/builtin/packages/py-boost-histogram/package.py b/var/spack/repos/builtin/packages/py-boost-histogram/package.py new file mode 100644 index 0000000000..8cf2f255ab --- /dev/null +++ b/var/spack/repos/builtin/packages/py-boost-histogram/package.py @@ -0,0 +1,22 @@ +# Copyright 2013-2021 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 PyBoostHistogram(PythonPackage): + """The Boost::Histogram Python wrapper.""" + + homepage = "https://github.com/scikit-hep/boost-histogram" + pypi = "boost_histogram/boost_histogram-1.2.1.tar.gz" + + version('1.2.1', sha256='a27842b2f1cfecc509382da2b25b03056354696482b38ec3c0220af0fc9b7579') + + depends_on('python@3.6:', type=('build', 'run')) + depends_on('py-setuptools@45:', type='build') + depends_on('py-setuptools-scm@4.1.2:+toml', type='build') + depends_on('py-numpy@1.13.3:', type=('build', 'run')) + depends_on('py-dataclasses', type=('build', 'run'), when='^python@:3.6') + depends_on('py-typing-extensions', type=('build', 'run'), when='^python@:3.7') diff --git a/var/spack/repos/builtin/packages/py-brian2/package.py b/var/spack/repos/builtin/packages/py-brian2/package.py index 35edc02850..b9d88fd072 100644 --- a/var/spack/repos/builtin/packages/py-brian2/package.py +++ b/var/spack/repos/builtin/packages/py-brian2/package.py @@ -12,17 +12,18 @@ class PyBrian2(PythonPackage): homepage = "https://www.briansimulator.org" pypi = "Brian2/Brian2-2.2.2.1.tar.gz" + version('2.5.0.1', sha256='1f719b563ae38658c4c59bac5aeb06b41970c6eedc52021ddf6d9254913733d3') version('2.4.2', sha256='7a711af40145d8c62b0bc0861d352dc64f341c3a738174d87ef9d71e50e959f2') version('2.2.2.1', sha256='02075f66d42fd243fc5e28e1add8862709ae9fdabaffb69858e6d7f684a91525') version('2.0.1', sha256='195d8ced0d20e9069917776948f92aa70b7457bbc6b5222b8199654402ee1153') version('2.0rc3', sha256='05f347f5fa6b25d1ce5ec152a2407bbce033599eb6664f32f5331946eb3c7d66') - variant('docs', default=False, description='Build the documentation') - depends_on('python@2.7:', type=('build', 'run')) depends_on('python@3.6:', type=('build', 'run'), when='@2.4:') + depends_on('python@3.7:', type=('build', 'run'), when='@2.5:') depends_on('py-numpy@1.10:', type=('build', 'run')) depends_on('py-numpy@1.15:', type=('build', 'run'), when='@2.4:') + depends_on('py-numpy@1.17:', type=('build', 'run'), when='@2.5:') depends_on('py-cython@0.29:', type=('build', 'run')) depends_on('py-sympy@0.7.6:1.0,1.1.1:', type=('build', 'run')) depends_on('py-sympy@1.2:', type=('build', 'run'), when='@2.4:') @@ -30,9 +31,6 @@ class PyBrian2(PythonPackage): depends_on('py-jinja2@2.7:', type=('build', 'run')) depends_on('py-setuptools@21:', type=('build', 'run')) depends_on('py-setuptools@24.2:', type=('build', 'run'), when='@2.4:') - depends_on('py-sphinx@1.5:', type=('build', 'run'), when='+docs') - depends_on('py-sphinx@1.8:', type=('build', 'run'), when='@2.4:+docs') - depends_on('py-ipython@5:', type=('build', 'run'), when='@2.4:+docs') def build_args(self, spec, prefix): return ['--with-cython'] diff --git a/var/spack/repos/builtin/packages/py-build/package.py b/var/spack/repos/builtin/packages/py-build/package.py new file mode 100644 index 0000000000..3c9a053d65 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-build/package.py @@ -0,0 +1,26 @@ +# Copyright 2013-2021 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 PyBuild(PythonPackage): + """A simple, correct PEP517 package builder.""" + + homepage = "https://github.com/pypa/build" + pypi = "build/build-0.7.0.tar.gz" + + version('0.7.0', sha256='1aaadcd69338252ade4f7ec1265e1a19184bf916d84c9b7df095f423948cb89f') + + variant('virtualenv', default=False, description='Install optional virtualenv dependency') + + depends_on('python@3.6:', type=('build', 'run')) + depends_on('py-setuptools', type='build') + depends_on('py-packaging@19:', type=('build', 'run')) + depends_on('py-pep517@0.9.1:', type=('build', 'run')) + depends_on('py-tomli@1:', type=('build', 'run')) + depends_on('py-colorama', when='platform=windows', type=('build', 'run')) + depends_on('py-importlib-metadata@0.22:', when='^python@:3.7', type=('build', 'run')) + depends_on('py-virtualenv@20.0.35:', when='+virtualenv', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-carputils/package.py b/var/spack/repos/builtin/packages/py-carputils/package.py index 3b91b0c70f..e97f63bed7 100644 --- a/var/spack/repos/builtin/packages/py-carputils/package.py +++ b/var/spack/repos/builtin/packages/py-carputils/package.py @@ -14,6 +14,7 @@ class PyCarputils(PythonPackage): version('master', branch='master') # Version to use with openCARP releases + version('oc8.2', commit='e60f639c0f39ad71c8ae11814de1f3aa726e8352') version('oc8.1', commit='a4210fcb0fe17226a1744ee9629f85b629decba3') version('oc7.0', commit='4c04db61744f2fb7665594d7c810699c5c55c77c') diff --git a/var/spack/repos/builtin/packages/py-click/package.py b/var/spack/repos/builtin/packages/py-click/package.py index 734090db51..df1f632d2e 100644 --- a/var/spack/repos/builtin/packages/py-click/package.py +++ b/var/spack/repos/builtin/packages/py-click/package.py @@ -12,6 +12,7 @@ class PyClick(PythonPackage): homepage = "https://click.palletsprojects.com" pypi = "click/click-7.1.2.tar.gz" + version('8.0.3', sha256='410e932b050f5eed773c4cda94de75971c89cdb3155a72a0831139a79e5ecb5b') version('8.0.1', sha256='8c04c11192119b1ef78ea049e0a6f0463e4c48ef00a30160c704337586f3ad7a') version('7.1.2', sha256='d2b5255c7c6349bc1bd1e59e08cd12acbbd63ce649f2588755783aa94dfb6b1a') version('7.0', sha256='5b94b49521f6456670fdb30cd82a4eca9412788a93fa6dd6df72c94d5a8ff2d7', diff --git a/var/spack/repos/builtin/packages/py-climate/package.py b/var/spack/repos/builtin/packages/py-climate/package.py new file mode 100644 index 0000000000..f207537f94 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-climate/package.py @@ -0,0 +1,27 @@ +# Copyright 2013-2021 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 PyClimate(PythonPackage): + """Command line arguments parsing""" + + homepage = "https://pypi.org/project/climate/" + url = 'https://pypi.io/packages/py3/c/climate/climate-0.1.0-py3-none-any.whl' + + version('0.1.0', sha256='01026c764b34d8204b8f527a730ef667fa5827fca765993ff1ed3e9dab2c11ae', expand=False) + + depends_on('python@3.7:3', type=('build', 'run')) + depends_on('py-wheel', type='build') + depends_on('py-pip', type='build') + + phases = ['install'] + + # copied from py-azureml-core + def install(self, spec, prefix): + pip = which('pip') + pip('install', '--no-deps', self.stage.archive_file, + '--prefix={0}'.format(prefix)) diff --git a/var/spack/repos/builtin/packages/py-cmake/package.py b/var/spack/repos/builtin/packages/py-cmake/package.py index fab0dda083..7425eb116a 100644 --- a/var/spack/repos/builtin/packages/py-cmake/package.py +++ b/var/spack/repos/builtin/packages/py-cmake/package.py @@ -14,7 +14,14 @@ class PyCmake(PythonPackage): homepage = "https://cmake.org/" pypi = "cmake/cmake-3.18.0.tar.gz" + version('3.21.4', sha256='30fa5ed8a5ad66dcd263adb87f3ce3dc2d0ec0ac3958f5becff577e4b62cd065') version('3.18.0', sha256='52b98c5ee70b5fa30a8623e96482227e065292f78794eb085fdf0fecb204b79b') + depends_on('cmake@3.21.4', type=('build', 'link', 'run'), when='@3.21.4') depends_on('cmake@3.18.0', type=('build', 'link', 'run'), when='@3.18.0') depends_on('py-scikit-build', type='build') + + def build_args(self, spec, prefix): + args = [] + args.append('-DBUILD_CMAKE_FROM_SOURCE=OFF') + return args diff --git a/var/spack/repos/builtin/packages/py-cmsml/package.py b/var/spack/repos/builtin/packages/py-cmsml/package.py new file mode 100644 index 0000000000..39d9da4326 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-cmsml/package.py @@ -0,0 +1,19 @@ +# Copyright 2013-2021 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 PyCmsml(PythonPackage): + """Python package of the CMS Machine Learning Group.""" + + homepage = "https://github.com/cms-ml/cmsml" + pypi = "cmsml/cmsml-0.1.2.tar.gz" + + version('0.1.2', sha256='2e2e114323441757a64e1c24179fc6295e7bd14920b7a9c3c37128eb40ad9ceb') + + depends_on('python@2.7:2.7,3.6:3', type=('build', 'run')) + depends_on('py-setuptools', type='build') + depends_on('py-six@1.13:', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-configspace/package.py b/var/spack/repos/builtin/packages/py-configspace/package.py new file mode 100644 index 0000000000..7e24fe0a89 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-configspace/package.py @@ -0,0 +1,23 @@ +# Copyright 2013-2021 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 PyConfigspace(PythonPackage): + """Creation and manipulation of parameter configuration spaces for + automated algorithm configuration and hyperparameter tuning.""" + + maintainers = ['Kerilk'] + + homepage = "https://automl.github.io/ConfigSpace/master/" + pypi = "ConfigSpace/ConfigSpace-0.4.20.tar.gz" + + version('0.4.20', sha256='2e4ca06f5a6a61e5322a73dd7545468c79f2a3e8385cab92fdada317af41d9e9') + + depends_on('python@3.7:', type=('build', 'run')) + depends_on('py-numpy', type=('build', 'run')) + depends_on('py-cython', type='build') + depends_on('py-pyparsing', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-constantly/package.py b/var/spack/repos/builtin/packages/py-constantly/package.py new file mode 100644 index 0000000000..fe90278fc6 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-constantly/package.py @@ -0,0 +1,17 @@ +# Copyright 2013-2021 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 PyConstantly(PythonPackage): + """Symbolic constants in Python""" + + homepage = "https://github.com/twisted/constantly" + pypi = "constantly/constantly-15.1.0.tar.gz" + + version('15.1.0', sha256='586372eb92059873e29eba4f9dec8381541b4d3834660707faf8ba59146dfc35') + + depends_on('py-setuptools', type='build') diff --git a/var/spack/repos/builtin/packages/py-copulas/package.py b/var/spack/repos/builtin/packages/py-copulas/package.py new file mode 100644 index 0000000000..fa19e4251b --- /dev/null +++ b/var/spack/repos/builtin/packages/py-copulas/package.py @@ -0,0 +1,28 @@ +# Copyright 2013-2021 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 PyCopulas(PythonPackage): + """Copulas is a Python library for modeling multivariate + distributions and sampling from them using copula + functions. Given a table containing numerical data, we can + use Copulas to learn the distribution and later on generate + new synthetic rows following the same statistical + properties.""" + + homepage = "https://github.com/sdv-dev/Copulas" + pypi = "copulas/copulas-0.6.0.tar.gz" + + version('0.6.0', sha256='9de6cc738769db19794fc18e2f506a4b5ee17e6902519c0842a4698c0efb6749') + + depends_on('python@3.6:', type=('build', 'run')) + depends_on('py-setuptools', type='build') + depends_on('py-matplotlib@3.2:3', type=('build', 'run')) + depends_on('py-numpy@1.18:1.19', type=('build', 'run'), when='^python@3.6') + depends_on('py-numpy@1.20:1', type=('build', 'run'), when='^python@3.7:') + depends_on('py-pandas@1.1.3:1', type=('build', 'run')) + depends_on('py-scipy@1.5.4:1', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-correctionlib/package.py b/var/spack/repos/builtin/packages/py-correctionlib/package.py new file mode 100644 index 0000000000..47727d28c5 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-correctionlib/package.py @@ -0,0 +1,36 @@ +# Copyright 2013-2021 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 PyCorrectionlib(PythonPackage): + """A generic correction library""" + + homepage = "https://github.com/cms-nanoAOD/correctionlib" + pypi = "correctionlib/correctionlib-2.0.0.tar.gz" + + version('2.1.0', sha256='edf79644dc1d9d94f12b4b45366331e5da3f1e21d4cbcd3bb8b0d4b1421b0c44') + version('2.0.0', sha256='e4d240cbdb2633a8955ddcd02d5b9bfb33d7e1a33554d6f7957f2dec56988a67') + + variant('convert', default=False, + description='Includes select conversion routines for common types') + + depends_on('python@3.6:', type=('build', 'run')) + depends_on('py-setuptools@42:', type='build') + depends_on('py-setuptools-scm@3.4:+toml', type='build') + depends_on('py-scikit-build', type='build') + depends_on('py-cmake@3.11:', type='build') + depends_on('py-make', type='build') + depends_on('py-pybind11@2.6.1:', type='build') + depends_on('py-numpy@1.13.3:', type=('build', 'run')) + depends_on('py-typing', type=('build', 'run'), when='^python@:3.4') + depends_on('py-typing-extensions', type=('build', 'run'), when='^python@:3.7') + depends_on('py-dataclasses', type=('build', 'run'), when='^python@:3.6') + depends_on('py-pydantic@1.7.3:', type=('build', 'run')) + depends_on('py-rich', type=('build', 'run')) + depends_on('py-pandas', type=('build', 'run'), when='+convert') + depends_on('py-uproot@4.0.4:', type=('build', 'run'), when='+convert') + depends_on('py-requests', type=('build', 'run'), when='+convert') diff --git a/var/spack/repos/builtin/packages/py-coverage/package.py b/var/spack/repos/builtin/packages/py-coverage/package.py index ac62512a3d..335306b754 100644 --- a/var/spack/repos/builtin/packages/py-coverage/package.py +++ b/var/spack/repos/builtin/packages/py-coverage/package.py @@ -12,7 +12,8 @@ class PyCoverage(PythonPackage): homepage = "https://nedbatchelder.com/code/coverage/" pypi = "coverage/coverage-4.5.4.tar.gz" - version('5.5', sha256='ebe78fe9a0e874362175b02371bdfbee64d8edc42a044253ddf4ee7d3c15212c') + version('6.1.2', sha256='d9a635114b88c0ab462e0355472d00a180a5fbfd8511e7f18e4ac32652e7d972') + version('5.5', sha256='ebe78fe9a0e874362175b02371bdfbee64d8edc42a044253ddf4ee7d3c15212c') version('5.3', sha256='280baa8ec489c4f542f8940f9c4c2181f0306a8ee1a54eceba071a449fb870a0') version('5.0.4', sha256='1b60a95fc995649464e0cd48cecc8288bac5f4198f21d04b8229dc4097d76823') version('4.5.4', sha256='e07d9f1a23e9e93ab5c62902833bf3e4b1f65502927379148b6622686223125c') @@ -20,6 +21,11 @@ class PyCoverage(PythonPackage): version('4.3.4', sha256='eaaefe0f6aa33de5a65f48dd0040d7fe08cac9ac6c35a56d0a7db109c3e733df') version('4.0a6', sha256='85c7f3efceb3724ab066a3fcccc05b9b89afcaefa5b669a7e2222d31eac4728d') + variant('toml', default=False, description='Enable pyproject.toml support') + depends_on('python@2.6:2.8,3.3:', type=('build', 'run')) - depends_on('python@2.7:2.8,3.5:', type=('build', 'run'), when="@5.0.0:") + depends_on('python@2.7:2.8,3.5:', when='@5:', type=('build', 'run')) + depends_on('python@3.6:', when='@6:', type=('build', 'run')) depends_on('py-setuptools', type=('build', 'run')) + depends_on('py-tomli', when='@6: +toml', type=('build', 'run')) + depends_on('py-toml', when='@:5 +toml', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-cryptography/package.py b/var/spack/repos/builtin/packages/py-cryptography/package.py index 5c80b4aa34..81a5bcfd4b 100644 --- a/var/spack/repos/builtin/packages/py-cryptography/package.py +++ b/var/spack/repos/builtin/packages/py-cryptography/package.py @@ -14,13 +14,14 @@ class PyCryptography(PythonPackage): homepage = "https://github.com/pyca/cryptography" pypi = "cryptography/cryptography-1.8.1.tar.gz" + version('35.0.0', sha256='9933f28f70d0517686bd7de36166dda42094eac49415459d9bdf5e7df3e0086d') + version('3.4.8', sha256='94cc5ed4ceaefcbe5bf38c8fba6a21fc1d365bb8fb826ea1688e3370b2e24a1c') version('3.4.7', sha256='3d10de8116d25649631977cb37da6cbdd2d6fa0e0281d014a5b7d337255ca713') - version('2.7', sha256='e6347742ac8f35ded4a46ff835c60e68c22a536a8ae5c4422966d06946b6d4c6') + version('2.7', sha256='e6347742ac8f35ded4a46ff835c60e68c22a536a8ae5c4422966d06946b6d4c6') version('2.3.1', sha256='8d10113ca826a4c29d5b85b2c4e045ffa8bad74fb525ee0eceb1d38d4c70dfd6') version('1.8.1', sha256='323524312bb467565ebca7e50c8ae5e9674e544951d28a2904a50012a8828190') - variant('idna', default=False, description='Deprecated U-label support') - conflicts('+idna', when='@:2.4,3.1:') + variant('idna', default=False, when='@2.5:3.0', description='Deprecated U-label support') # dependencies taken from https://github.com/pyca/cryptography/blob/master/setup.py depends_on('python@3.6:', when='@3.4:', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-ctgan/package.py b/var/spack/repos/builtin/packages/py-ctgan/package.py new file mode 100644 index 0000000000..f9ab396bdb --- /dev/null +++ b/var/spack/repos/builtin/packages/py-ctgan/package.py @@ -0,0 +1,29 @@ +# Copyright 2013-2021 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 PyCtgan(PythonPackage): + """CTGAN is a collection of Deep Learning based Synthetic + Data Generators for single table data, which are able to + learn from real data and generate synthetic clones with + high fidelity.""" + + homepage = "https://github.com/sdv-dev/CTGAN" + pypi = "ctgan/ctgan-0.5.0.tar.gz" + + version('0.5.0', sha256='b8a5dbf21dab2d2e2690013f13feb0922f5bad13440b15bc031ce9d58c7fb988') + + depends_on('python@3.6:', type=('build', 'run')) + depends_on('py-setuptools', type='build') + depends_on('py-packaging@20:21', type=('build', 'run')) + depends_on('py-numpy@1.18:1.19', type=('build', 'run'), when='^python@3.6') + depends_on('py-numpy@1.20:1', type=('build', 'run'), when='^python@3.7:') + depends_on('py-pandas@1.1.3:1', type=('build', 'run')) + depends_on('py-scikit-learn@0.24:1', type=('build', 'run')) + depends_on('py-torch@1.8.0:1', type=('build', 'run')) + depends_on('py-torchvision@0.9', type=('build', 'run')) + depends_on('py-rdt@0.6.1:0.6', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-cx-oracle/package.py b/var/spack/repos/builtin/packages/py-cx-oracle/package.py new file mode 100644 index 0000000000..8c47892fea --- /dev/null +++ b/var/spack/repos/builtin/packages/py-cx-oracle/package.py @@ -0,0 +1,20 @@ +# Copyright 2013-2021 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 PyCxOracle(PythonPackage): + """Python interface to Oracle""" + + homepage = "https://oracle.github.io/python-cx_Oracle" + pypi = "cx_Oracle/cx_Oracle-8.3.0.tar.gz" + + version('8.3.0', sha256='3b2d215af4441463c97ea469b9cc307460739f89fdfa8ea222ea3518f1a424d9') + + depends_on('python@3.6:', type=('build', 'run')) + depends_on('oracle-instant-client', type='run') + depends_on('py-setuptools@40.6.0:', type='build') + depends_on('py-wheel', type='build') diff --git a/var/spack/repos/builtin/packages/py-cycler/package.py b/var/spack/repos/builtin/packages/py-cycler/package.py index 23b429e97e..d226efd1d4 100644 --- a/var/spack/repos/builtin/packages/py-cycler/package.py +++ b/var/spack/repos/builtin/packages/py-cycler/package.py @@ -10,9 +10,11 @@ class PyCycler(PythonPackage): """Composable style cycles.""" homepage = "https://matplotlib.org/cycler/" - url = "https://github.com/matplotlib/cycler/archive/v0.10.0.tar.gz" + pypi = "cycler/cycler-0.11.0.tar.gz" - version('0.10.0', sha256='b6d217635e03024196225367b1a438996dbbf0271bec488f00584f0e7dc15cfa') + version('0.11.0', sha256='9c87405839a19696e837b3b818fed3f5f69f16f1eec1a1ad77e043dcea9c772f') + version('0.10.0', sha256='cd7b2d1018258d7247a71425e9f26463dfb444d411c39569972f4ce586b0c9d8') + depends_on('python@3.6:', when='@0.11:', type=('build', 'run')) depends_on('py-setuptools', type='build') - depends_on('py-six', type=('build', 'run')) + depends_on('py-six', when='@:0.10', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-cython/package.py b/var/spack/repos/builtin/packages/py-cython/package.py index 40d31f8eaf..e1f432f544 100644 --- a/var/spack/repos/builtin/packages/py-cython/package.py +++ b/var/spack/repos/builtin/packages/py-cython/package.py @@ -9,9 +9,11 @@ from spack import * class PyCython(PythonPackage): """The Cython compiler for writing C extensions for the Python language.""" + homepage = "https://github.com/cython/cython" pypi = "cython/Cython-0.29.21.tar.gz" - version('0.29.24', sha256='cdf04d07c3600860e8c2ebaad4e8f52ac3feb212453c1764a49ac08c827e8443') + version('3.0.0a9', sha256='23931c45877432097cef9de2db2dc66322cbc4fc3ebbb42c476bb2c768cecff0') + version('0.29.24', sha256='cdf04d07c3600860e8c2ebaad4e8f52ac3feb212453c1764a49ac08c827e8443', preferred=True) version('0.29.23', sha256='6a0d31452f0245daacb14c979c77e093eb1a546c760816b5eed0047686baad8e') version('0.29.22', sha256='df6b83c7a6d1d967ea89a2903e4a931377634a297459652e4551734c48195406') version('0.29.21', sha256='e57acb89bd55943c8d8bf813763d20b9099cc7165c0f16b707631a7654be9cad') @@ -32,7 +34,8 @@ class PyCython(PythonPackage): version('0.23.4', sha256='fec42fecee35d6cc02887f1eef4e4952c97402ed2800bfe41bbd9ed1a0730d8e') version('0.21.2', sha256='b01af23102143515e6138a4d5e185c2cfa588e0df61c0827de4257bac3393679') - depends_on('python@2.6:2.8,3.3:', when='@0.23:', type=('build', 'link', 'run')) + depends_on('python@2.7:2,3.4:', when='@3:', type=('build', 'link', 'run')) + depends_on('python@2.6:2,3.3:', when='@0.23:', type=('build', 'link', 'run')) depends_on('python@:2', when='@:0.22', type=('build', 'link', 'run')) depends_on('py-setuptools', type=('build', 'run')) depends_on('gdb@7.2:', type='test') diff --git a/var/spack/repos/builtin/packages/py-debugpy/package.py b/var/spack/repos/builtin/packages/py-debugpy/package.py index 64dee06b76..45fa0db633 100644 --- a/var/spack/repos/builtin/packages/py-debugpy/package.py +++ b/var/spack/repos/builtin/packages/py-debugpy/package.py @@ -18,6 +18,7 @@ class PyDebugpy(PythonPackage): 'debugpy.common' ] + version('1.5.1', sha256='d2b09e91fbd1efa4f4fda121d49af89501beda50c18ed7499712c71a4bf3452e') version('1.4.1', sha256='889316de0b8ff3732927cb058cfbd3371e4cd0002ecc170d34c755ad289c867c') depends_on('python@2.7:2.8,3.5:', type=('build', 'link', 'run')) diff --git a/var/spack/repos/builtin/packages/py-deepdiff/package.py b/var/spack/repos/builtin/packages/py-deepdiff/package.py new file mode 100644 index 0000000000..48fab797b5 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-deepdiff/package.py @@ -0,0 +1,19 @@ +# Copyright 2013-2021 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 PyDeepdiff(PythonPackage): + """Deep Difference and Search of any Python object/data..""" + + homepage = "https://github.com/seperman/deepdiff" + pypi = "deepdiff/deepdiff-5.6.0.tar.gz" + + version('5.6.0', sha256='e3f1c3a375c7ea5ca69dba6f7920f9368658318ff1d8a496293c79481f48e649') + + depends_on('python@3.6:', type=('build', 'run')) + depends_on('py-setuptools', type='build') + depends_on('py-ordered-set@4.0.2', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-dh-scikit-optimize/package.py b/var/spack/repos/builtin/packages/py-dh-scikit-optimize/package.py new file mode 100644 index 0000000000..571c9024d2 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-dh-scikit-optimize/package.py @@ -0,0 +1,38 @@ +# Copyright 2013-2021 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 PyDhScikitOptimize(PythonPackage): + """A Modified version of scikit-optimize a Sequential model-based + optimization toolbox for DeepHyper. + Scikit-Optimize, or skopt, is a simple and efficient library to + minimize (very) expensive and noisy black-box functions. It implements + several methods for sequential model-based optimization. skopt aims to + be accessible and easy to use in many contexts. + + The library is built on top of NumPy, SciPy and Scikit-Learn.""" + + maintainers = ['Kerilk'] + + homepage = "https://github.com/deephyper/scikit-optimize" + pypi = "dh-scikit-optimize/dh-scikit-optimize-0.9.0.tar.gz" + + version('0.9.0', sha256='fe70aa57ec5150a3d356b2184f0dda1ecc4ecb7e82d35edac3980094d409d676') + + variant('plots', default=False, + description='Build with plot support from py-matplotlib') + + depends_on('python@3.6:', type=('build', 'run')) + depends_on('py-setuptools', type='build') + depends_on('py-joblib@0.11:', type=('build', 'run')) + depends_on('py-pyaml@16.9:', type=('build', 'run')) + depends_on('py-numpy@1.13.3:', type=('build', 'run')) + depends_on('py-scipy@0.19.1:', type=('build', 'run')) + depends_on('py-scikit-learn@0.20.0:', type=('build', 'run')) + depends_on('py-configspace@0.4.20:', type=('build', 'run')) + + depends_on('py-matplotlib@2.0.0:', when='+plots', type='run') diff --git a/var/spack/repos/builtin/packages/py-distlib/package.py b/var/spack/repos/builtin/packages/py-distlib/package.py new file mode 100644 index 0000000000..dc5ce6fd34 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-distlib/package.py @@ -0,0 +1,15 @@ +# Copyright 2013-2021 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 PyDistlib(PythonPackage): + """Distribution utilities""" + + homepage = "https://bitbucket.org/pypa/distlib" + pypi = "distlib/distlib-0.3.3.zip" + + version('0.3.3', sha256='d982d0751ff6eaaab5e2ec8e691d949ee80eddf01a62eaa96ddb11531fe16b05') diff --git a/var/spack/repos/builtin/packages/py-downhill/package.py b/var/spack/repos/builtin/packages/py-downhill/package.py new file mode 100644 index 0000000000..23c164a066 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-downhill/package.py @@ -0,0 +1,19 @@ +# Copyright 2013-2021 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 PyDownhill(PythonPackage): + """Stochastic optimization routines for Theano""" + + homepage = "http://github.com/lmjohns3/downhill" + pypi = "downhill/downhill-0.4.0.tar.gz" + + version('0.4.0', sha256='074ad91deb06c05108c67d982ef71ffffb6ede2c77201abc69e332649f823b42') + + depends_on('py-setuptools', type='build') + depends_on('py-theano', type=('build', 'run')) + depends_on('py-click', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-envisage/package.py b/var/spack/repos/builtin/packages/py-envisage/package.py index 7068987db6..a115726c93 100644 --- a/var/spack/repos/builtin/packages/py-envisage/package.py +++ b/var/spack/repos/builtin/packages/py-envisage/package.py @@ -13,13 +13,16 @@ class PyEnvisage(PythonPackage): application consists primarily of plug-ins. In this respect, it is similar to the Eclipse and Netbeans frameworks for Java applications.""" - homepage = "https://docs.enthought.com/envisage" + homepage = "https://github.com/enthought/envisage" pypi = "envisage/envisage-4.9.2.tar.gz" + version('6.0.1', sha256='8864c29aa344f7ac26eeb94788798f2d0cc791dcf95c632da8d79ebc580e114c') version('4.9.2', sha256='ed9580ac6ea17b333f1cce5b94656aed584798d56d8bd364f996a06fe1ac32eb') - depends_on('python@2.7:2.8,3.5:', type=('build', 'run')) + depends_on('python@3.6:', when='@5:', type=('build', 'run')) + depends_on('python@2.7:2.8,3.5:', when='@:4', type=('build', 'run')) depends_on('py-apptools', type=('build', 'run')) depends_on('py-setuptools', type=('build', 'run')) - depends_on('py-six', type=('build', 'run')) + depends_on('py-six', when='@:4', type=('build', 'run')) + depends_on('py-traits@6.2:', when='@6:', type=('build', 'run')) depends_on('py-traits', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-faker/package.py b/var/spack/repos/builtin/packages/py-faker/package.py new file mode 100644 index 0000000000..fcde7bbfcb --- /dev/null +++ b/var/spack/repos/builtin/packages/py-faker/package.py @@ -0,0 +1,25 @@ +# Copyright 2013-2021 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 PyFaker(PythonPackage): + """Faker is a Python package that generates fake data for + you. Whether you need to bootstrap your database, create + good-looking XML documents, fill-in your persistence to + stress test it, or anonymize data taken from a production + service, Faker is for you.""" + + homepage = "https://github.com/joke2k/faker" + pypi = "Faker/Faker-9.8.2.tar.gz" + + version('9.8.2', sha256='393bd1b5becf3ccbc04a4f0f13da7e437914b24cafd1a4d8b71b5fecff54fb34') + + depends_on('python@3.6:', type=('build', 'run')) + depends_on('py-setuptools', type='build') + depends_on('py-python-dateutil@2.4:', type=('build', 'run')) + depends_on('py-text-unidecode@1.3', type=('build', 'run')) + depends_on('py-typing-extensions@3.10.0.2:', type=('build', 'run'), when='^python@:3.8') diff --git a/var/spack/repos/builtin/packages/py-fastjsonschema/package.py b/var/spack/repos/builtin/packages/py-fastjsonschema/package.py new file mode 100644 index 0000000000..61b0093298 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-fastjsonschema/package.py @@ -0,0 +1,15 @@ +# Copyright 2013-2021 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) + + +class PyFastjsonschema(PythonPackage): + """Fast JSON schema validator for Python.""" + + homepage = "https://github.com/horejsek/python-fastjsonschema" + pypi = "fastjsonschema/fastjsonschema-2.15.1.tar.gz" + + version('2.15.1', sha256='671f36d225b3493629b5e789428660109528f373cf4b8a22bac6fa2f8191c2d2') + + depends_on('py-setuptools', type='build') diff --git a/var/spack/repos/builtin/packages/py-filelock/package.py b/var/spack/repos/builtin/packages/py-filelock/package.py index ffa7a37685..9056a54bd1 100644 --- a/var/spack/repos/builtin/packages/py-filelock/package.py +++ b/var/spack/repos/builtin/packages/py-filelock/package.py @@ -7,14 +7,17 @@ from spack import * class PyFilelock(PythonPackage): - """This package contains a single module, which implements a platform + """A platform-independent file lock for Python. + + This package contains a single module, which implements a platform independent file lock in Python, which provides a simple way of inter-process communication""" homepage = "https://github.com/benediktschmitt/py-filelock" pypi = "filelock/filelock-3.0.4.tar.gz" - version('3.0.12', sha256='18d82244ee114f543149c66a6e0c14e9c4f8a1044b5cdaadd0f82159d6a6ff59') + version('3.4.0', sha256='93d512b32a23baf4cac44ffd72ccf70732aeff7b8050fcaf6d3ec406d954baf4') + version('3.0.12', sha256='18d82244ee114f543149c66a6e0c14e9c4f8a1044b5cdaadd0f82159d6a6ff59') version('3.0.4', sha256='011327d4ed939693a5b28c0fdf2fd9bda1f68614c1d6d0643a89382ce9843a71') version('3.0.3', sha256='7d8a86350736aa0efea0730e6a7f774195cbb1c2d61134c15f6be576399e87ff') version('3.0.0', sha256='b3ad481724adfb2280773edd95ce501e497e88fa4489c6e41e637ab3fd9a456c') @@ -25,4 +28,6 @@ class PyFilelock(PythonPackage): version('2.0.9', sha256='0f91dce339c9f25d6f2e0733a17e4f9a47b139dffda52619a0e61e013e5c6782') version('2.0.8', sha256='7e48e4906de3c9a5d64d8f235eb3ae1050dfefa63fd65eaf318cc915c935212b') + depends_on('python@3.6:', when='@3.3:', type=('build', 'run')) + depends_on('python@2.7:2,3.5:', when='@3.1:', type=('build', 'run')) depends_on('py-setuptools', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-fire/package.py b/var/spack/repos/builtin/packages/py-fire/package.py new file mode 100644 index 0000000000..12ffc54f97 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-fire/package.py @@ -0,0 +1,25 @@ +# Copyright 2013-2021 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 PyFire(PythonPackage): + """Python Fire is a library for automatically generating command line + interfaces (CLIs) with a single line of code.""" + + homepage = "https://github.com/google/python-fire" + pypi = "fire/fire-0.2.1.tar.gz" + + version('0.4.0', sha256='c5e2b8763699d1142393a46d0e3e790c5eb2f0706082df8f647878842c216a62') + version('0.3.1', sha256='9736a16227c3d469e5d2d296bce5b4d8fa8d7851e953bda327a455fc2994307f') + version('0.3.0', sha256='96c372096afcf33ddbadac8a7ca5b7e829e8d7157d0030bd964bf959afde5c2c') + version('0.2.1', sha256='6865fefc6981a713d2ce56a2a2c92c56c729269f74a6cddd6f4b94d16ae084c9') + + depends_on('py-setuptools', type='build') + depends_on('py-six', type=('build', 'run')) + depends_on('py-termcolor', type=('build', 'run')) + depends_on('py-enum34', type=('build', 'run'), when='@0.3.0: ^python@:3.3') diff --git a/var/spack/repos/builtin/packages/py-flask/package.py b/var/spack/repos/builtin/packages/py-flask/package.py index 53f5c6d3be..d56bacef1e 100644 --- a/var/spack/repos/builtin/packages/py-flask/package.py +++ b/var/spack/repos/builtin/packages/py-flask/package.py @@ -12,6 +12,7 @@ class PyFlask(PythonPackage): homepage = "https://palletsprojects.com/p/flask/" pypi = "Flask/Flask-1.1.1.tar.gz" + version('2.0.2', sha256='7b2fb8e934ddd50731893bdcdb00fc8c0315916f9fcd50d22c7cc1a95ab634e2') version('1.1.2', sha256='4efa1ae2d7c9865af48986de8aeb8504bf32c7f3d6fdc9353d34b21f4b127060') version('1.1.1', sha256='13f9f196f330c7c2c5d7a5cf91af894110ca0215ac051b5844701f2bfd934d52') version('0.12.4', sha256='2ea22336f6d388b4b242bc3abf8a01244a8aa3e236e7407469ef78c16ba355dd') @@ -19,9 +20,15 @@ class PyFlask(PythonPackage): version('0.12.1', sha256='9dce4b6bfbb5b062181d3f7da8f727ff70c1156cbb4024351eafd426deb5fb88') version('0.11.1', sha256='b4713f2bfb9ebc2966b8a49903ae0d3984781d5c878591cf2f7b484d28756b0e') - depends_on('python@2.7:2.8,3.5:', type=('build', 'run')) - depends_on('py-setuptools', type=('build', 'run')) - depends_on('py-werkzeug@0.15:', type=('build', 'run')) - depends_on('py-jinja2@2.10.1:', type=('build', 'run')) + depends_on('python@3.6:', when='@2:', type=('build', 'run')) + depends_on('python@2.7:2,3.5:', type=('build', 'run')) + depends_on('py-setuptools', type=('build', 'run')) + + depends_on('py-werkzeug@2:', when='@2:', type=('build', 'run')) + depends_on('py-werkzeug@0.15:', type=('build', 'run')) + depends_on('py-jinja2@3:', when='@2:', type=('build', 'run')) + depends_on('py-jinja2@2.10.1:', type=('build', 'run')) + depends_on('py-itsdangerous@2:', when='@2:', type=('build', 'run')) depends_on('py-itsdangerous@0.24:', type=('build', 'run')) - depends_on('py-click@5.1:', type=('build', 'run')) + depends_on('py-click@7.1.2:', when='@2:', type=('build', 'run')) + depends_on('py-click@5.1:', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-flawfinder/package.py b/var/spack/repos/builtin/packages/py-flawfinder/package.py new file mode 100644 index 0000000000..ceb7f35a54 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-flawfinder/package.py @@ -0,0 +1,18 @@ +# Copyright 2013-2021 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 PyFlawfinder(PythonPackage, SourceforgePackage): + """a program that examines source code looking for security weaknesses""" + + homepage = "http://dwheeler.com/flawfinder/" + sourceforge_mirror_path = "project/flawfinder/flawfinder-2.0.19.tar.gz" + + version('2.0.19', sha256='fe550981d370abfa0a29671346cc0b038229a9bd90b239eab0f01f12212df618') + + depends_on('python@2.7:', type=('build', 'run')) + depends_on('py-setuptools', type='build') diff --git a/var/spack/repos/builtin/packages/py-fonttools/package.py b/var/spack/repos/builtin/packages/py-fonttools/package.py new file mode 100644 index 0000000000..5937181a9e --- /dev/null +++ b/var/spack/repos/builtin/packages/py-fonttools/package.py @@ -0,0 +1,22 @@ +# Copyright 2013-2021 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 PyFonttools(PythonPackage): + """fontTools is a library for manipulating fonts, written in Python. + + The project includes the TTX tool, that can convert TrueType and OpenType fonts to + and from an XML text format, which is also called TTX. It supports TrueType, + OpenType, AFM and to an extent Type 1 and some Mac-specific formats.""" + + homepage = "https://github.com/fonttools/fonttools" + pypi = "fonttools/fonttools-4.28.1.zip" + + version('4.28.1', sha256='8c8f84131bf04f3b1dcf99b9763cec35c347164ab6ad006e18d2f99fcab05529') + + depends_on('python@3.7:', type=('build', 'run')) + depends_on('py-setuptools', type='build') diff --git a/var/spack/repos/builtin/packages/py-formulaic/package.py b/var/spack/repos/builtin/packages/py-formulaic/package.py new file mode 100644 index 0000000000..6f183828db --- /dev/null +++ b/var/spack/repos/builtin/packages/py-formulaic/package.py @@ -0,0 +1,26 @@ +# Copyright 2013-2021 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 PyFormulaic(PythonPackage): + """Formulaic is a high-performance implementation of Wilkinson formulas + for Python.""" + + homepage = "https://github.com/matthewwardrop/formulaic" + pypi = "formulaic/formulaic-0.2.4.tar.gz" + + version('0.2.4', sha256='15b71ea8972fb451f80684203cddd49620fc9ed5c2e35f31e0874e9c41910d1a') + + depends_on('python@3.6:', type=('build', 'run')) + depends_on('py-setuptools', type='build') + depends_on('py-setupmeta', type='build') + depends_on('py-astor', type=('build', 'run')) + depends_on('py-interface-meta@1.2:', type=('build', 'run')) + depends_on('py-numpy', type=('build', 'run')) + depends_on('py-pandas', type=('build', 'run')) + depends_on('py-scipy', type=('build', 'run')) + depends_on('py-wrapt', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-fs/package.py b/var/spack/repos/builtin/packages/py-fs/package.py new file mode 100644 index 0000000000..af1a4121d9 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-fs/package.py @@ -0,0 +1,25 @@ +# Copyright 2013-2021 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 PyFs(PythonPackage): + """Python's filesystem abstraction layer""" + + homepage = "https://github.com/PyFilesystem/pyfilesystem2" + pypi = "fs/fs-2.4.14.tar.gz" + + version('2.4.14', sha256='9555dc2bc58c58cac03478ac7e9f622d29fe2d20a4384c24c90ab50de2c7b36c') + version('0.5.4', sha256='ba2cca8773435a7c86059d57cb4b8ea30fda40f8610941f7822d1ce3ffd36197') + + depends_on('py-setuptools@38.3.0:', type='build') + depends_on('py-setuptools@:57', type='build', when='@:0') + depends_on('py-appdirs@1.4.3:1.4', type=('build', 'run')) + depends_on('py-pytz', type=('build', 'run')) + depends_on('py-six@1.10:1', type=('build', 'run')) + depends_on('py-enum34@1.1.6:1.1', type=('build', 'run'), when='^python@:3.3') + depends_on('py-typing@3.6:3', type=('build', 'run'), when='^python@:3.5') + depends_on('py-backports-os@0.1:0', type=('build', 'run'), when='^python@:2') diff --git a/var/spack/repos/builtin/packages/py-gast/package.py b/var/spack/repos/builtin/packages/py-gast/package.py index 83706e5056..a6c3f41f7a 100644 --- a/var/spack/repos/builtin/packages/py-gast/package.py +++ b/var/spack/repos/builtin/packages/py-gast/package.py @@ -12,6 +12,7 @@ class PyGast(PythonPackage): homepage = "https://github.com/serge-sans-paille/gast" pypi = "gast/gast-0.3.2.tar.gz" + version('0.5.3', sha256='cfbea25820e653af9c7d1807f659ce0a0a9c64f2439421a7bba4f0983f532dea') version('0.5.2', sha256='f81fcefa8b982624a31c9e4ec7761325a88a0eba60d36d1da90e47f8fe3c67f7') version('0.5.1', sha256='b00e63584db482ffe6107b5832042bbe5c5bf856e3c7279b6e93201b3dcfcb46') version('0.5.0', sha256='8109cbe7aa0f7bf7e4348379da05b8137ea1f059f073332c3c1cedd57db8541f') diff --git a/var/spack/repos/builtin/packages/py-genshi/package.py b/var/spack/repos/builtin/packages/py-genshi/package.py index 30d2efa821..1fdf64bb51 100644 --- a/var/spack/repos/builtin/packages/py-genshi/package.py +++ b/var/spack/repos/builtin/packages/py-genshi/package.py @@ -15,4 +15,4 @@ class PyGenshi(PythonPackage): version('0.6.1', sha256='fed947f11dbcb6792bb7161701ec3b9804055ad68c8af0ab4f0f9b25e9a18dbd') version('0.6', sha256='32aaf76a03f88efa04143bf80700399e6d84eead818fdd19d763fd76af972a4b') - depends_on("py-setuptools", type='build') + depends_on("py-setuptools@:57", type='build') diff --git a/var/spack/repos/builtin/packages/py-gevent/package.py b/var/spack/repos/builtin/packages/py-gevent/package.py index 144ccf4b02..0b65a45cfd 100644 --- a/var/spack/repos/builtin/packages/py-gevent/package.py +++ b/var/spack/repos/builtin/packages/py-gevent/package.py @@ -12,16 +12,25 @@ class PyGevent(PythonPackage): homepage = "https://www.gevent.org" pypi = "gevent/gevent-1.3a2.tar.gz" - version('1.5.0', sha256='b2814258e3b3fb32786bb73af271ad31f51e1ac01f33b37426b66cb8491b4c29') - version('1.3a2', sha256='f7ab82697111ea233c7beeadf5240f669dfad9c4bbc89a3ec80a49e2c48a65bd') + version('21.8.0', sha256='43e93e1a4738c922a2416baf33f0afb0a20b22d3dba886720bc037cd02a98575') + version('1.5.0', sha256='b2814258e3b3fb32786bb73af271ad31f51e1ac01f33b37426b66cb8491b4c29') + version('1.3a2', sha256='f7ab82697111ea233c7beeadf5240f669dfad9c4bbc89a3ec80a49e2c48a65bd') - depends_on('py-setuptools@24.2:', type='build', when='@:1.4') - depends_on('py-setuptools@40.8:', type='build', when='@1.5:') - depends_on('py-cython@0.27:', type='build', when='@:1.4') - depends_on('py-cython@0.29.14:', type='build', when='@1.5:') - depends_on('py-cffi@1.4:', type=('build', 'run'), when='@:1.4') - depends_on('py-cffi@1.12.2:', type=('build', 'run'), when='@1.5:') - depends_on('py-greenlet@0.4.13:', type=('build', 'run'), when='@:1.4') - depends_on('py-greenlet@0.4.14:', type=('build', 'run'), when='@1.5:') - depends_on('python@2.7:2.8,3.4:', type=('build', 'run')) - depends_on('python@2.7:2.8,3.5:', type=('build', 'run'), when='@1.5:') + depends_on('python@2.7:2,3.6:', when='@21.8:', type=('build', 'run')) + depends_on('python@2.7:2,3.5:', when='@1.5:', type=('build', 'run')) + depends_on('python@2.7:2,3.4:', type=('build', 'run')) + depends_on('py-setuptools@40.8:', when='@20.5.1:', type=('build', 'run')) + depends_on('py-setuptools@40.8:', when='@1.5:', type='build') + depends_on('py-setuptools@24.2:', when='@:1.4', type='build') + depends_on('py-cython@3.0.0a9:', when='@20.5.1:', type='build') + depends_on('py-cython@0.29.14:', when='@1.5:', type='build') + depends_on('py-cython@0.27:', when='@:1.4', type='build') + depends_on('py-cython@0.27:', when='@:1.4', type='build') + depends_on('py-cffi@1.12.3:', when='@1.5:', type=('build', 'run')) # from pyproject.toml + depends_on('py-cffi@1.4:', when='@:1.4', type=('build', 'run')) + depends_on('py-greenlet@1.1:1', when='@21.8:', type=('build', 'run')) + depends_on('py-greenlet@0.4.17:1', when='@20.12:', type=('build', 'run')) + depends_on('py-greenlet@0.4.14:', when='@1.5:', type=('build', 'run')) + depends_on('py-greenlet@0.4.13:', when='@:1.4', type=('build', 'run')) + depends_on('py-zope-event', when='@20.5.1:', type=('build', 'run')) + depends_on('py-zope-interface', when='@20.5.1:', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-gin-config/package.py b/var/spack/repos/builtin/packages/py-gin-config/package.py new file mode 100644 index 0000000000..b10fa8bbb8 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-gin-config/package.py @@ -0,0 +1,18 @@ +# Copyright 2013-2021 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 PyGinConfig(PythonPackage): + """Gin provides a lightweight configuration framework for + Python, based on dependency injection.""" + + homepage = "https://github.com/google/gin-config" + pypi = "gin-config/gin-config-0.5.0.tar.gz" + + version('0.5.0', sha256='0c6ea5026ded927c8c93c990b01c695257c1df446e45e549a158cfbc79e19ed6') + + depends_on('py-setuptools', type='build') diff --git a/var/spack/repos/builtin/packages/py-gpy/package.py b/var/spack/repos/builtin/packages/py-gpy/package.py index 920cd39755..c45c1674af 100644 --- a/var/spack/repos/builtin/packages/py-gpy/package.py +++ b/var/spack/repos/builtin/packages/py-gpy/package.py @@ -11,6 +11,7 @@ class PyGpy(PythonPackage): homepage = "https://sheffieldml.github.io/GPy/" pypi = "gpy/GPy-1.9.9.tar.gz" + maintainers = ['liuyangzhuan'] version('1.9.9', sha256='04faf0c24eacc4dea60727c50a48a07ddf9b5751a3b73c382105e2a31657c7ed') version('0.8.8', sha256='e135d928cf170e2ec7fb058a035b5a7e334dc6b84d0bfb981556782528341988') diff --git a/var/spack/repos/builtin/packages/py-greenlet/package.py b/var/spack/repos/builtin/packages/py-greenlet/package.py index 43d9f197f2..eb438510e0 100644 --- a/var/spack/repos/builtin/packages/py-greenlet/package.py +++ b/var/spack/repos/builtin/packages/py-greenlet/package.py @@ -12,6 +12,7 @@ class PyGreenlet(PythonPackage): homepage = "https://github.com/python-greenlet/greenlet" pypi = "greenlet/greenlet-0.4.17.tar.gz" + version('1.1.2', sha256='e30f5ea4ae2346e62cedde8794a56858a67b878dd79f7df76a0767e356b1744a') version('1.1.0', sha256='c87df8ae3f01ffb4483c796fe1b15232ce2b219f0b18126948616224d3f658ee') version('0.4.17', sha256='41d8835c69a78de718e466dd0e6bfd4b46125f21a67c3ff6d76d8d8059868d6b') version('0.4.13', sha256='0fef83d43bf87a5196c91e73cb9772f945a4caaff91242766c5916d1dd1381e4') diff --git a/var/spack/repos/builtin/packages/py-grpcio-tools/package.py b/var/spack/repos/builtin/packages/py-grpcio-tools/package.py new file mode 100644 index 0000000000..1ebc9b2ac9 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-grpcio-tools/package.py @@ -0,0 +1,60 @@ +# Copyright 2013-2021 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 PyGrpcioTools(PythonPackage): + """Protobuf code generator for gRPC""" + + homepage = "https://grpc.io/" + pypi = "grpcio-tools/grpcio-tools-1.42.0.tar.gz" + + version('1.42.0', sha256='d0a0daa82eb2c2fb8e12b82a458d1b7c5516fe1135551da92b1a02e2cba93422') + version('1.39.0', sha256='39dfe7415bc0d3860fdb8dd90607594b046b88b57dbe64284efa4820f951c805') + + depends_on('python@3.6:', type=('build', 'run')) + depends_on('py-setuptools', type='build') + depends_on('py-protobuf@3.5.0.post1:3', type=('build', 'run')) + depends_on('py-grpcio@1.42.0:', type=('build', 'run'), when='@1.42.0:') + depends_on('py-grpcio@1.39.0:', type=('build', 'run'), when='@1.39.0:1.41') + depends_on('py-cython@0.23:', type='build') + depends_on('openssl') + depends_on('zlib') + depends_on('c-ares') + depends_on('re2+shared') + + def setup_build_environment(self, env): + env.set('GRPC_PYTHON_BUILD_WITH_CYTHON', True) + env.set('GRPC_PYTHON_BUILD_SYSTEM_OPENSSL', True) + env.set('GRPC_PYTHON_BUILD_SYSTEM_ZLIB', True) + env.set('GRPC_PYTHON_BUILD_SYSTEM_CARES', True) + env.set('GRPC_PYTHON_BUILD_SYSTEM_RE2', True) + # https://github.com/grpc/grpc/pull/24449 + env.set('GRPC_BUILD_WITH_BORING_SSL_ASM', '') + env.set('GRPC_PYTHON_BUILD_EXT_COMPILER_JOBS', str(make_jobs)) + + for dep in self.spec.dependencies(deptype='link'): + query = self.spec[dep.name] + env.prepend_path('LIBRARY_PATH', query.libs.directories[0]) + env.prepend_path('CPATH', query.headers.directories[0]) + + def patch(self): + if self.spec.satisfies('%fj'): + filter_file("-std=gnu99", "", "setup.py") + + # use the spack packages + filter_file(r'(\s+SSL_INCLUDE = ).*', + r"\1('{0}',)".format(self.spec['openssl'].prefix.include), + 'setup.py') + filter_file(r'(\s+ZLIB_INCLUDE = ).*', + r"\1('{0}',)".format(self.spec['zlib'].prefix.include), + 'setup.py') + filter_file(r'(\s+CARES_INCLUDE = ).*', + r"\1('{0}',)".format(self.spec['c-ares'].prefix.include), + 'setup.py') + filter_file(r'(\s+RE2_INCLUDE = ).*', + r"\1('{0}',)".format(self.spec['re2'].prefix.include), + 'setup.py') diff --git a/var/spack/repos/builtin/packages/py-grpcio/package.py b/var/spack/repos/builtin/packages/py-grpcio/package.py index 490d1b67da..0159a69255 100644 --- a/var/spack/repos/builtin/packages/py-grpcio/package.py +++ b/var/spack/repos/builtin/packages/py-grpcio/package.py @@ -12,6 +12,7 @@ class PyGrpcio(PythonPackage): homepage = "https://grpc.io/" pypi = "grpcio/grpcio-1.32.0.tar.gz" + version('1.42.0', sha256='4a8f2c7490fe3696e0cdd566e2f099fb91b51bc75446125175c55581c2f7bc11') version('1.39.0', sha256='57974361a459d6fe04c9ae0af1845974606612249f467bbd2062d963cb90f407') version('1.38.1', sha256='1f79d8a24261e3c12ec3a6c25945ff799ae09874fd24815bc17c2dc37715ef6c') version('1.38.0', sha256='abbf9c8c3df4d5233d5888c6cfa85c1bb68a6923749bd4dd1abc6e1e93986f17') @@ -41,12 +42,14 @@ class PyGrpcio(PythonPackage): depends_on('openssl') depends_on('zlib') depends_on('c-ares') + depends_on('re2+shared') def setup_build_environment(self, env): env.set('GRPC_PYTHON_BUILD_WITH_CYTHON', True) env.set('GRPC_PYTHON_BUILD_SYSTEM_OPENSSL', True) env.set('GRPC_PYTHON_BUILD_SYSTEM_ZLIB', True) env.set('GRPC_PYTHON_BUILD_SYSTEM_CARES', True) + env.set('GRPC_PYTHON_BUILD_SYSTEM_RE2', True) # https://github.com/grpc/grpc/pull/24449 env.set('GRPC_BUILD_WITH_BORING_SSL_ASM', '') env.set('GRPC_PYTHON_BUILD_EXT_COMPILER_JOBS', str(make_jobs)) @@ -59,3 +62,17 @@ class PyGrpcio(PythonPackage): def patch(self): if self.spec.satisfies('%fj'): filter_file("-std=gnu99", "", "setup.py") + + # use the spack packages + filter_file(r'(\s+SSL_INCLUDE = ).*', + r"\1('{0}',)".format(self.spec['openssl'].prefix.include), + 'setup.py') + filter_file(r'(\s+ZLIB_INCLUDE = ).*', + r"\1('{0}',)".format(self.spec['zlib'].prefix.include), + 'setup.py') + filter_file(r'(\s+CARES_INCLUDE = ).*', + r"\1('{0}',)".format(self.spec['c-ares'].prefix.include), + 'setup.py') + filter_file(r'(\s+RE2_INCLUDE = ).*', + r"\1('{0}',)".format(self.spec['re2'].prefix.include), + 'setup.py') diff --git a/var/spack/repos/builtin/packages/py-h5py/package.py b/var/spack/repos/builtin/packages/py-h5py/package.py index e7e4b123b0..7e99067990 100644 --- a/var/spack/repos/builtin/packages/py-h5py/package.py +++ b/var/spack/repos/builtin/packages/py-h5py/package.py @@ -16,6 +16,8 @@ class PyH5py(PythonPackage): maintainers = ['bryanherman', 'takluyver'] version('master', branch='master') + version('3.6.0', sha256='8752d2814a92aba4e2b2a5922d2782d0029102d99caaf3c201a566bc0b40db29') + version('3.5.0', sha256='77c7be4001ac7d3ed80477de5b6942501d782de1bbe4886597bdfec2a7ab821f') version('3.4.0', sha256='ee1c683d91ab010d5e85cb61e8f9e7ee0d8eab545bf3dd50a9618f1d0e8f615e') version('3.3.0', sha256='e0dac887d779929778b3cfd13309a939359cc9e74756fc09af7c527a82797186') version('3.2.1', sha256='89474be911bfcdb34cbf0d98b8ec48b578c27a89fdb1ae4ee7513f1ef8d9249e') diff --git a/var/spack/repos/builtin/packages/py-h5sh/package.py b/var/spack/repos/builtin/packages/py-h5sh/package.py index 042d595b99..5db97659fd 100644 --- a/var/spack/repos/builtin/packages/py-h5sh/package.py +++ b/var/spack/repos/builtin/packages/py-h5sh/package.py @@ -10,15 +10,15 @@ class PyH5sh(PythonPackage): """Shell-like environment for HDF5.""" homepage = "https://github.com/sethrj/h5sh" - url = "https://github.com/sethrj/h5sh/archive/v0.1.1.tar.gz" + pypi = "h5sh/h5sh-0.1.1.tar.gz" maintainers = ['sethrj'] - version('0.1.1', sha256='111989d8200d1da8e150aee637a907e524ca0f98d5005a55587cba0d94d9c4a0') + version('0.1.1', sha256='ccd8fed532d479d297baef044265100a4fb9cd119bce6f43270f2ee9f63a2183') depends_on('py-setuptools', type=('build', 'run')) - depends_on('py-h5py', type=('build', 'run')) - depends_on('py-numpy', type=('build', 'run')) + depends_on('py-h5py@2.7.1:', type=('build', 'run')) + depends_on('py-numpy@1.15:', type=('build', 'run')) depends_on('py-prompt-toolkit@2:', type=('build', 'run')) depends_on('py-pygments', type=('build', 'run')) depends_on('py-six', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-hatchet/package.py b/var/spack/repos/builtin/packages/py-hatchet/package.py index 2d58f51acf..0e78ac9572 100644 --- a/var/spack/repos/builtin/packages/py-hatchet/package.py +++ b/var/spack/repos/builtin/packages/py-hatchet/package.py @@ -22,7 +22,9 @@ class PyHatchet(PythonPackage): version('1.0.1', sha256='e5a4b455ab6bfbccbce3260673d9af8d1e4b21e19a2b6d0b6c1e1d7727613b7a') version('1.0.0', sha256='efd218bc9152abde0a8006489a2c432742f00283a114c1eeb6d25abc10f5862d') - depends_on('python@2.7,3:', type=('build', 'run')) + # https://github.com/hatchet/hatchet/issues/428 + depends_on('python@2.7:3.8', when='@:1.3.0', type=('build', 'run')) + depends_on('python@2.7:', when='@1.3.1:', type=('build', 'run')) depends_on('py-setuptools', type='build') depends_on('py-matplotlib', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-hep-ml/package.py b/var/spack/repos/builtin/packages/py-hep-ml/package.py new file mode 100644 index 0000000000..903e3e9fce --- /dev/null +++ b/var/spack/repos/builtin/packages/py-hep-ml/package.py @@ -0,0 +1,23 @@ +# Copyright 2013-2021 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 PyHepMl(PythonPackage): + """Machine Learning for High Energy Physics""" + + homepage = "https://github.com/arogozhnikov/hep_ml" + pypi = "hep_ml/hep_ml-0.7.0.tar.gz" + + version('0.7.0', sha256='0402037064d78f5723106b385ad5f20df8f67cb312c57cb4ce3839c5616f328e') + + depends_on('py-setuptools', type='build') + depends_on('py-numpy@1.9:', type=('build', 'run')) + depends_on('py-scipy@0.15.0:', type=('build', 'run')) + depends_on('py-pandas@0.14.0:', type=('build', 'run')) + depends_on('py-scikit-learn@0.19:', type=('build', 'run')) + depends_on('py-theano@1.0.2:', type=('build', 'run')) + depends_on('py-six', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-hepdata-lib/package.py b/var/spack/repos/builtin/packages/py-hepdata-lib/package.py new file mode 100644 index 0000000000..5ffa2570e3 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-hepdata-lib/package.py @@ -0,0 +1,24 @@ +# Copyright 2013-2021 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 PyHepdataLib(PythonPackage): + """Library for getting your data into HEPData""" + + homepage = "https://github.com/HEPData/hepdata_lib" + pypi = "hepdata_lib/hepdata_lib-0.9.0.tar.gz" + + version('0.9.0', sha256='b7b194b8af0428f34094ac403f8794a672c82d85e33154161d6b3744cc2b9896') + + depends_on('py-setuptools', type='build') + depends_on('root+python', type=('build', 'run')) + depends_on('py-numpy', type=('build', 'run')) + depends_on('py-pyyaml@4:', type=('build', 'run')) + depends_on('py-future', type=('build', 'run')) + depends_on('py-six', type=('build', 'run')) + depends_on('py-pytest-runner', type='build') + depends_on('py-pytest-cov', type='build') diff --git a/var/spack/repos/builtin/packages/py-hist/package.py b/var/spack/repos/builtin/packages/py-hist/package.py new file mode 100644 index 0000000000..ac9d80403d --- /dev/null +++ b/var/spack/repos/builtin/packages/py-hist/package.py @@ -0,0 +1,31 @@ +# Copyright 2013-2021 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 PyHist(PythonPackage): + """Hist classes and utilities""" + + homepage = "https://github.com/scikit-hep/hist" + pypi = "hist/hist-2.5.2.tar.gz" + + version('2.5.2', sha256='0bafb8b956cc041f1b26e8f5663fb8d3b8f7673f56336facb84d8cfdc30ae2cf') + + variant('plot', default='False', + description='Add support for drawing histograms') + + depends_on('python@3.7:', type=('build', 'run')) + depends_on('py-setuptools@45:', type='build') + depends_on('py-setuptools-scm@3.4:+toml', type='build') + depends_on('py-boost-histogram@1.2.0:1.2', type=('build', 'run')) + depends_on('py-histoprint@2.2.0:', type=('build', 'run')) + depends_on('py-numpy@1.14.5:', type=('build', 'run')) + depends_on('py-typing-extensions@3.7:', type=('build', 'run'), when='^python@:3.7') + + depends_on('py-matplotlib@3.0:', type=('build', 'run'), when='+plot') + depends_on('py-scipy@1.4:', type=('build', 'run'), when='+plot') + depends_on('py-iminuit@2:', type=('build', 'run'), when='+plot') + depends_on('py-mplhep@0.2.16:', type=('build', 'run'), when='+plot') diff --git a/var/spack/repos/builtin/packages/py-histbook/package.py b/var/spack/repos/builtin/packages/py-histbook/package.py new file mode 100644 index 0000000000..acd3c5a78e --- /dev/null +++ b/var/spack/repos/builtin/packages/py-histbook/package.py @@ -0,0 +1,18 @@ +# Copyright 2013-2021 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 PyHistbook(PythonPackage): + """Versatile, high-performance histogram toolkit for Numpy.""" + + homepage = "https://github.com/scikit-hep/histbook" + pypi = "histbook/histbook-1.2.5.tar.gz" + + version('1.2.5', sha256='76d1f143f8abccf5539029fbef8133db84f377fc7752ac9e7e6d19ac9a277967') + + depends_on('py-setuptools', type='build') + depends_on('py-numpy@1.8.0:', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-histogrammar/package.py b/var/spack/repos/builtin/packages/py-histogrammar/package.py new file mode 100644 index 0000000000..f0327610cb --- /dev/null +++ b/var/spack/repos/builtin/packages/py-histogrammar/package.py @@ -0,0 +1,21 @@ +# Copyright 2013-2021 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 PyHistogrammar(PythonPackage): + """Composable histogram primitives for distributed data reduction.""" + + homepage = "https://histogrammar.github.io/histogrammar-docs" + pypi = "histogrammar/histogrammar-1.0.25.tar.gz" + + version('1.0.25', sha256='01d5f99cdb8dce8f02dd1adbfcc530a097154f3696d7778d0ed596d06d5ce432') + + depends_on('python@3.6:', type=('build', 'run')) + depends_on('py-setuptools', type='build') + depends_on('py-numpy@1.18.0:', type=('build', 'run')) + depends_on('py-tqdm', type=('build', 'run')) + depends_on('py-joblib@0.14.0:', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-histoprint/package.py b/var/spack/repos/builtin/packages/py-histoprint/package.py new file mode 100644 index 0000000000..a1de14692b --- /dev/null +++ b/var/spack/repos/builtin/packages/py-histoprint/package.py @@ -0,0 +1,22 @@ +# Copyright 2013-2021 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 PyHistoprint(PythonPackage): + """Pretty print of NumPy (and other) histograms to the console""" + + homepage = "https://github.com/scikit-hep/histoprint" + pypi = "histoprint/histoprint-2.2.0.tar.gz" + + version('2.2.0', sha256='ef8b65f7926aaa989f076857b76291175245dd974804b408483091d1e28b00f6') + + depends_on('python@3.6:', type=('build', 'run')) + depends_on('py-setuptools@42:', type='build') + depends_on('py-setuptools-scm@3.4:+toml', type='build') + depends_on('py-click@7.0.0:', type=('build', 'run')) + depends_on('py-numpy', type=('build', 'run')) + depends_on('py-uhi@0.2.1:', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-hpbandster/package.py b/var/spack/repos/builtin/packages/py-hpbandster/package.py new file mode 100644 index 0000000000..08703b0c6d --- /dev/null +++ b/var/spack/repos/builtin/packages/py-hpbandster/package.py @@ -0,0 +1,35 @@ +# 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) + +# Package automatically generated using 'pip2spack' converter + + +class PyHpbandster(PythonPackage): + """ + A distributed Hyperband implementation with lots of room for improvement + """ + + homepage = "https://github.com/automl/HpBandSter" + pypi = 'hpbandster/hpbandster-0.7.4.tar.gz' + maintainers = ['liuyangzhuan'] + + version('0.7.4', sha256='49ffc32688155b509e62f3617b52ae15a96c9bff2c996a23df83f279106c5921') + version('0.7.3', sha256='dd6c255f5dfe773a7f0c5ecf580b46a406d9f691303e2f849a14f7ae08ff9f13') + version('0.7.2', sha256='24dd3311b14fa76ab8111062ced670ff888e7e99cad07dcc3398361689c09f90') + version('0.7.1', sha256='41a55c95787eccd23def00f73013fbc9efad3cdc20d9e03270c7c959643dc5ff') + version('0.7.0', sha256='b6a46c73cb6a62e2f2d20984087a3458cea056aef5aa0fc0cd606bdd116eed94') + version('0.6.1', sha256='8812743b43b228dbf38fe2d5c5ecf238c6a742d02d8bdd264a2f193b96ca3b92') + version('0.6.0', sha256='26e69a2f84c8d41bea2fd703f489453a3e9301dcb62f15271b16a3db4ccf225d') + version('0.5.6', sha256='bc8a93638adda5cc0838c836402f18b456631363aefbfdf52942e9f8c7251893') + + depends_on('python@3:', type=('build', 'run')) + depends_on('py-configspace', type=('build', 'run')) + depends_on('py-numpy', type=('build', 'run')) + depends_on('py-statsmodels', type=('build', 'run')) + depends_on('py-netifaces', type=('build', 'run')) + depends_on('py-scipy', type=('build', 'run')) + depends_on('py-serpent', type=('build', 'run')) + depends_on('py-pyro4', type=('build', 'run')) + depends_on('py-setuptools', type='build') diff --git a/var/spack/repos/builtin/packages/py-httpretty/package.py b/var/spack/repos/builtin/packages/py-httpretty/package.py index 03980d7b23..8bb978f2f5 100644 --- a/var/spack/repos/builtin/packages/py-httpretty/package.py +++ b/var/spack/repos/builtin/packages/py-httpretty/package.py @@ -12,6 +12,7 @@ class PyHttpretty(PythonPackage): homepage = "https://httpretty.readthedocs.io/en/latest/" pypi = "httpretty/httpretty-1.1.3.tar.gz" + version('1.1.4', sha256='20de0e5dd5a18292d36d928cc3d6e52f8b2ac73daec40d41eb62dee154933b68') version('1.1.3', sha256='229ade39175ea4324e767f29dc24e5f846fbc72bf80e1a919b2547a6574ff601') depends_on('python@3:', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-humanize/package.py b/var/spack/repos/builtin/packages/py-humanize/package.py index 8240561773..5ad7992088 100644 --- a/var/spack/repos/builtin/packages/py-humanize/package.py +++ b/var/spack/repos/builtin/packages/py-humanize/package.py @@ -16,6 +16,15 @@ class PyHumanize(PythonPackage): homepage = "https://github.com/jmoiron/humanize" pypi = "humanize/humanize-0.5.1.tar.gz" + version('3.12.0', sha256='5ec1a66e230a3e31fb3f184aab9436ea13d4e37c168e0ffc345ae5bb57e58be6') version('0.5.1', sha256='a43f57115831ac7c70de098e6ac46ac13be00d69abbf60bdcac251344785bb19') + depends_on('python@3.6:', when='@3:', type=('build', 'run')) + depends_on('python@3.5:', when='@1.1.0:', type=('build', 'run')) + depends_on('python@2.7:2,3.5:', when='@1.0.0', type=('build', 'run')) + depends_on('py-setuptools@42:', when='@3.2:', type=('build', 'run')) + depends_on('py-setuptools', when='@3:', type=('build', 'run')) depends_on('py-setuptools', type='build') + depends_on('py-setuptools-scm+toml@3.4:', when='@3.2:', type='build') + depends_on('py-setuptools-scm', when='@1:', type='build') + depends_on('py-importlib-metadata', when='@3.12: ^python@:3.7', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-hyperlink/package.py b/var/spack/repos/builtin/packages/py-hyperlink/package.py new file mode 100644 index 0000000000..fbaa2adf72 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-hyperlink/package.py @@ -0,0 +1,20 @@ +# Copyright 2013-2021 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 PyHyperlink(PythonPackage): + """A featureful, immutable, and correct URL for Python.""" + + homepage = "https://github.com/python-hyper/hyperlink" + pypi = "hyperlink/hyperlink-21.0.0.tar.gz" + + version('21.0.0', sha256='427af957daa58bc909471c6c40f74c5450fa123dd093fc53efd2e91d2705a56b') + + depends_on('python@2.6:2,3.4:', type=('build', 'run')) + depends_on('py-setuptools', type='build') + depends_on('py-idna@2.5:', type=('build', 'run')) + depends_on('py-typing', when='^python@:3.4', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-idna/package.py b/var/spack/repos/builtin/packages/py-idna/package.py index 3cd8026234..873a26bee2 100644 --- a/var/spack/repos/builtin/packages/py-idna/package.py +++ b/var/spack/repos/builtin/packages/py-idna/package.py @@ -13,11 +13,14 @@ class PyIdna(PythonPackage): homepage = "https://github.com/kjd/idna" pypi = "idna/idna-3.2.tar.gz" + version('3.3', sha256='9d643ff0a55b762d5cdb124b8eaa99c66322e2157b69160bc32796e824360e6d') version('3.2', sha256='467fbad99067910785144ce333826c71fb0e63a425657295239737f7ecd125f3') version('2.9', sha256='7588d1c14ae4c77d74036e8c22ff447b26d0fde8f007354fd48a7814db15b7cb') version('2.8', sha256='c357b3f628cf53ae2c4c05627ecc484553142ca23264e593d327bcde5e9c3407') version('2.5', sha256='3cb5ce08046c4e3a560fc02f138d0ac63e00f8ce5901a56b32ec8b7994082aab') - depends_on('python@2.7:2.8,3.4:', type=('build', 'run')) - depends_on('python@3.5:', type=('build', 'run'), when='@3.2') + depends_on('python@3.5:', when='@3.2:', type=('build', 'run')) + depends_on('python@3.4:', when='@3:', type=('build', 'run')) + depends_on('python@2.7:2,3.4:', when='@2.8:2', type=('build', 'run')) + depends_on('python@2.6:', when='@:2.7', type=('build', 'run')) depends_on('py-setuptools', type=('build', 'link')) diff --git a/var/spack/repos/builtin/packages/py-imageio/package.py b/var/spack/repos/builtin/packages/py-imageio/package.py index b69b0e3ae4..acd47c85c9 100644 --- a/var/spack/repos/builtin/packages/py-imageio/package.py +++ b/var/spack/repos/builtin/packages/py-imageio/package.py @@ -7,14 +7,17 @@ from spack import * class PyImageio(PythonPackage): - """ Imageio is a Python library that provides an easy interface + """ Python library for reading and writing image data. + + Imageio is a Python library that provides an easy interface to read and write a wide range of image data, including animated images, video, volumetric data, and scientific formats. It is cross-platform, runs on Python 2.7 and 3.4+, and is easy to install.""" - homepage = "https://imageio.github.io/" + homepage = "https://github.com/imageio/imageio" pypi = "imageio/imageio-2.3.0.tar.gz" + version('2.10.3', sha256='469c59fe71c81cdc41c84f842d62dd2739a08fac8cb85f5a518a92a6227e2ed6') version('2.9.0', sha256='52ddbaeca2dccf53ba2d6dec5676ca7bc3b2403ef8b37f7da78b7654bb3e10f0') version('2.5.0', sha256='42e65aadfc3d57a1043615c92bdf6319b67589e49a0aae2b985b82144aceacad') version('2.4.1', sha256='16b8077bc8a5fa7a58b3e744f7ecbb156d8c088132df31e0f4f546c98de3514a') @@ -23,9 +26,10 @@ class PyImageio(PythonPackage): # TODO: Add variants for plugins, and optional dependencies # Fix for python 2 if needed. - depends_on('py-numpy', type=('build', 'run')) - depends_on('pil', type=('build', 'run')) - depends_on('python@2.7:2.8,3.4:', type=('build', 'run'), when='@:2.5.0') - depends_on('python@3.5:', type=('build', 'run'), when='@2.9.0:') - depends_on('py-setuptools', type='build') - depends_on('ffmpeg', type='run') + depends_on('python@3.5:', when='@2.9.0:', type=('build', 'run')) + depends_on('python@2.7:2.8,3.4:', when='@:2.5.0', type=('build', 'run')) + depends_on('py-setuptools', type='build') + depends_on('py-numpy', type=('build', 'run')) + depends_on('pil@8.3.2:', when='@2.10:', type=('build', 'run')) + depends_on('pil', type=('build', 'run')) + depends_on('ffmpeg', type='run') diff --git a/var/spack/repos/builtin/packages/py-imagesize/package.py b/var/spack/repos/builtin/packages/py-imagesize/package.py index 78b4fe8477..d17b30ea1b 100644 --- a/var/spack/repos/builtin/packages/py-imagesize/package.py +++ b/var/spack/repos/builtin/packages/py-imagesize/package.py @@ -13,7 +13,9 @@ class PyImagesize(PythonPackage): homepage = "https://github.com/shibukawa/imagesize_py" pypi = "imagesize/imagesize-0.7.1.tar.gz" - version('1.1.0', sha256='f3832918bc3c66617f92e35f5d70729187676313caa60c187eb0f28b8fe5e3b5') + version('1.3.0', sha256='cd1750d452385ca327479d45b64d9c7729ecf0b3969a58148298c77092261f9d') + version('1.1.0', sha256='f3832918bc3c66617f92e35f5d70729187676313caa60c187eb0f28b8fe5e3b5') version('0.7.1', sha256='0ab2c62b87987e3252f89d30b7cedbec12a01af9274af9ffa48108f2c13c6062') + depends_on('python@2.7:2,3.4:', when='@1.2:', type=('build', 'run')) depends_on('py-setuptools', type='build') diff --git a/var/spack/repos/builtin/packages/py-iminuit/package.py b/var/spack/repos/builtin/packages/py-iminuit/package.py index 787cf7e2fe..65d0b16914 100644 --- a/var/spack/repos/builtin/packages/py-iminuit/package.py +++ b/var/spack/repos/builtin/packages/py-iminuit/package.py @@ -11,11 +11,15 @@ class PyIminuit(PythonPackage): pypi = "iminuit/iminuit-1.2.tar.gz" + version('2.8.4', sha256='4b09189f3094896cfc68596adc95b7f1d92772e1de1424e5dc4dd81def56e8b0') + version('1.5.2', sha256='0b54f4d4fc3175471398b573d24616ddb8eb7d63808aa370cfc71fc1d636a1fd') version('1.3.7', sha256='9173e52cc4a0c0bda13ebfb862f9b074dc5de345b23cb15c1150863aafd8a26c') version('1.3.6', sha256='d79a197f305d4708a0e3e52b0a6748c1a6997360d2fbdfd09c022995a6963b5e') version('1.2', sha256='7651105fc3f186cfb5742f075ffebcc5088bf7797d8ed124c00977eebe0d1c64') # Required dependencies + depends_on('python@3.6:', type=('build', 'run'), when='@2.6.1:') depends_on('py-setuptools', type='build') depends_on('py-numpy', type=('build', 'run'), when='@1.3:1.3.6') depends_on('py-numpy@1.11.3:', type=('build', 'run'), when='@1.3.7:') + depends_on('py-cmake', type='build', when='@2.8.4') diff --git a/var/spack/repos/builtin/packages/py-importlib-metadata/package.py b/var/spack/repos/builtin/packages/py-importlib-metadata/package.py index 961e2908f0..7d0bfc99bb 100644 --- a/var/spack/repos/builtin/packages/py-importlib-metadata/package.py +++ b/var/spack/repos/builtin/packages/py-importlib-metadata/package.py @@ -12,6 +12,7 @@ class PyImportlibMetadata(PythonPackage): homepage = "https://importlib-metadata.readthedocs.io/" pypi = "importlib_metadata/importlib_metadata-1.2.0.tar.gz" + version('4.8.2', sha256='75bdec14c397f528724c1bfd9709d660b33a4d2e77387a3358f20b848bb5e5fb') version('4.8.1', sha256='f284b3e11256ad1e5d03ab86bb2ccd6f5339688ff17a4d797a0fe7df326f23b1') version('4.6.1', sha256='079ada16b7fc30dfbb5d13399a5113110dab1aa7c2bc62f66af75f0b717c8cac') version('3.10.1', sha256='c9356b657de65c53744046fa8f7358afe0714a1af7d570c00c3835c2d724a7c1') diff --git a/var/spack/repos/builtin/packages/py-incremental/package.py b/var/spack/repos/builtin/packages/py-incremental/package.py new file mode 100644 index 0000000000..4fb8cd26c0 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-incremental/package.py @@ -0,0 +1,17 @@ +# Copyright 2013-2021 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 PyIncremental(PythonPackage): + """A small library that versions your Python projects.""" + + homepage = "https://github.com/twisted/incremental" + pypi = "incremental/incremental-21.3.0.tar.gz" + + version('21.3.0', sha256='02f5de5aff48f6b9f665d99d48bfc7ec03b6e3943210de7cfc88856d755d6f57') + + depends_on('py-setuptools', type='build') diff --git a/var/spack/repos/builtin/packages/py-intensity-normalization/package.py b/var/spack/repos/builtin/packages/py-intensity-normalization/package.py new file mode 100644 index 0000000000..0a941d2b28 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-intensity-normalization/package.py @@ -0,0 +1,27 @@ +# Copyright 2013-2021 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 PyIntensityNormalization(PythonPackage): + """Normalize intensities of images from various MRI modalities""" + + homepage = "https://github.com/jcreinhold/intensity-normalization" + pypi = "intensity-normalization/intensity-normalization-2.1.1.tar.gz" + + version('2.1.1', sha256='686b86754a9a520a03f793cb15c87e945f68ede78ac0ad1b3564c5d5b7ac9486') + + depends_on('python@3.6:', type=('build', 'run')) + depends_on('py-setuptools', type=('build',)) + depends_on('py-pytest-runner', type=('build',)) + depends_on('py-matplotlib', type=('build', 'run')) + depends_on('py-nibabel', type=('build', 'run')) + depends_on('py-numpy', type=('build', 'run')) + depends_on('py-scikit-fuzzy', type=('build', 'run')) + depends_on('py-scikit-image', type=('build', 'run')) + depends_on('py-scikit-learn', type=('build', 'run')) + depends_on('py-scipy', type=('build', 'run')) + depends_on('py-statsmodels', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-interface-meta/package.py b/var/spack/repos/builtin/packages/py-interface-meta/package.py new file mode 100644 index 0000000000..d7b5f95d9b --- /dev/null +++ b/var/spack/repos/builtin/packages/py-interface-meta/package.py @@ -0,0 +1,20 @@ +# Copyright 2013-2021 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 PyInterfaceMeta(PythonPackage): + """A convenient way to expose an extensible API with enforced method + signatures and consistent documentation.""" + + homepage = "https://github.com/matthewwardrop/interface_meta" + pypi = "interface_meta/interface_meta-1.2.4.tar.gz" + + version('1.2.4', sha256='4c7725dd4b80f97b7eecfb26023e1a8a7cdbb6d6a7207a8e93f9d4bfef9ee566') + + depends_on('python@3.4:', type=('build', 'run')) + depends_on('py-setuptools', type='build') + depends_on('py-setupmeta', type='build') diff --git a/var/spack/repos/builtin/packages/py-ipykernel/package.py b/var/spack/repos/builtin/packages/py-ipykernel/package.py index e68da51bf9..3d2fbfd5a1 100644 --- a/var/spack/repos/builtin/packages/py-ipykernel/package.py +++ b/var/spack/repos/builtin/packages/py-ipykernel/package.py @@ -13,6 +13,7 @@ class PyIpykernel(PythonPackage): version('6.4.1', sha256='df3355e5eec23126bc89767a676c5f0abfc7f4c3497d118c592b83b316e8c0cd') version('6.2.0', sha256='4439459f171d77f35b7f7e72dace5d7c2dd10a5c9e2c22b173ad9048fbfe7656') version('6.0.2', sha256='7fb3e370dbb481b012b74bed4e794d2d16eb2a83930b31e6d8d030b9fdb4d5b4') + version('5.5.6', sha256='4ea44b90ae1f7c38987ad58ea0809562a17c2695a0499644326f334aecd369ec') version('5.5.5', sha256='e976751336b51082a89fc2099fb7f96ef20f535837c398df6eab1283c2070884') version('5.3.4', sha256='9b2652af1607986a1b231c62302d070bc0534f564c393a5d9d130db9abbbe89d') version('5.1.1', sha256='f0e962052718068ad3b1d8bcc703794660858f58803c3798628817f492a8769c') @@ -46,7 +47,7 @@ class PyIpykernel(PythonPackage): depends_on('py-traitlets@4.1.0:', type=('build', 'run')) depends_on('py-traitlets@4.1.0:5', when='@6:', type=('build', 'run')) depends_on('py-jupyter-client', type=('build', 'run')) - depends_on('py-jupyter-client@:6', when='@6.0.2:', type=('build', 'run')) + depends_on('py-jupyter-client@:6', when='@6.0.2:6.1', type=('build', 'run')) depends_on('py-jupyter-client@:7', when='@6.2:', type=('build', 'run')) depends_on('py-tornado@4.0:', when='@:4', type=('build', 'run')) depends_on('py-tornado@4.2:', when='@5', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-itsdangerous/package.py b/var/spack/repos/builtin/packages/py-itsdangerous/package.py index 168af1fad0..09959518d6 100644 --- a/var/spack/repos/builtin/packages/py-itsdangerous/package.py +++ b/var/spack/repos/builtin/packages/py-itsdangerous/package.py @@ -12,8 +12,10 @@ class PyItsdangerous(PythonPackage): homepage = "https://github.com/mitsuhiko/itsdangerous" pypi = "itsdangerous/itsdangerous-1.1.0.tar.gz" + version('2.0.1', sha256='9e724d68fc22902a1435351f84c3fb8623f303fffcc566a4cb952df8c572cff0') version('1.1.0', sha256='321b033d07f2a4136d3ec762eac9f16a10ccd60f53c0c91af90217ace7ba1f19') version('0.24', sha256='cbb3fcf8d3e33df861709ecaf89d9e6629cff0a217bc2848f1b41cd30d360519') + depends_on('python@3.6:', when='@2:', type=('build', 'run')) depends_on('python@2.7:2.8,3.4:', type=('build', 'run')) depends_on('py-setuptools', type='build') diff --git a/var/spack/repos/builtin/packages/py-jeepney/package.py b/var/spack/repos/builtin/packages/py-jeepney/package.py index e4004afe8a..356f14b302 100644 --- a/var/spack/repos/builtin/packages/py-jeepney/package.py +++ b/var/spack/repos/builtin/packages/py-jeepney/package.py @@ -10,6 +10,7 @@ class PyJeepney(PythonPackage): homepage = "https://gitlab.com/takluyver/jeepney" pypi = "jeepney/jeepney-0.4.3.tar.gz" + version('0.7.1', sha256='fa9e232dfa0c498bd0b8a3a73b8d8a31978304dcef0515adc859d4e096f96f4f') version('0.6.0', sha256='7d59b6622675ca9e993a6bd38de845051d315f8b0c72cca3aef733a20b648657') version('0.4.3', sha256='3479b861cc2b6407de5188695fa1a8d57e5072d7059322469b62628869b8e36e') diff --git a/var/spack/repos/builtin/packages/py-jinja2/package.py b/var/spack/repos/builtin/packages/py-jinja2/package.py index 9367d18aa9..c2129d4c09 100644 --- a/var/spack/repos/builtin/packages/py-jinja2/package.py +++ b/var/spack/repos/builtin/packages/py-jinja2/package.py @@ -14,7 +14,8 @@ class PyJinja2(PythonPackage): homepage = "https://palletsprojects.com/p/jinja/" pypi = "Jinja2/Jinja2-2.10.3.tar.gz" - version('3.0.1', sha256='703f484b47a6af502e743c9122595cc812b0271f661722403114f71a79d0f5a4') + version('3.0.3', sha256='611bb273cd68f3b993fabdc4064fc858c5b47a973cb5aa7999ec1ba405c87cd7') + version('3.0.1', sha256='703f484b47a6af502e743c9122595cc812b0271f661722403114f71a79d0f5a4') version('2.11.3', sha256='a6d58433de0ae800347cab1fa3043cebbabe8baa9d29e668f1c768cb87a333c6') version('2.10.3', sha256='9fe95f19286cfefaa917656583d020be14e7859c6b0252588391e47db34527de') version('2.10.1', sha256='065c4f02ebe7f7cf559e49ee5a95fb800a9e4528727aec6f24402a5374c65013') diff --git a/var/spack/repos/builtin/packages/py-jsonpickle/package.py b/var/spack/repos/builtin/packages/py-jsonpickle/package.py index 6bf9271360..d58a887f49 100644 --- a/var/spack/repos/builtin/packages/py-jsonpickle/package.py +++ b/var/spack/repos/builtin/packages/py-jsonpickle/package.py @@ -10,9 +10,11 @@ class PyJsonpickle(PythonPackage): homepage = "https://github.com/jsonpickle/jsonpickle" pypi = "jsonpickle/jsonpickle-1.4.1.tar.gz" + version('2.0.0', sha256='0be49cba80ea6f87a168aa8168d717d00c6ca07ba83df3cec32d3b30bfe6fb9a') version('1.4.1', sha256='e8d4b7cd0bd6826001a74377df1079a76ad8bae0f909282de2554164c837c8ba') depends_on('python@2.7:', type=('build', 'run')) depends_on('py-setuptools', type='build') + depends_on('py-setuptools@42:', type='build', when='@2.0.0:') depends_on('py-setuptools-scm@3.4.1:+toml', type='build') depends_on("py-importlib-metadata", when="^python@:3.7", type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-jupyter-server-mathjax/package.py b/var/spack/repos/builtin/packages/py-jupyter-server-mathjax/package.py new file mode 100644 index 0000000000..3246d838cd --- /dev/null +++ b/var/spack/repos/builtin/packages/py-jupyter-server-mathjax/package.py @@ -0,0 +1,21 @@ +# Copyright 2013-2021 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 PyJupyterServerMathjax(PythonPackage): + """MathJax resources as a Jupyter Server Extension.""" + + homepage = "http://jupyter.org/" + pypi = "jupyter_server_mathjax/jupyter_server_mathjax-0.2.3.tar.gz" + + version('0.2.3', sha256='564e8d1272019c6771208f577b5f9f2b3afb02b9e2bff3b34c042cef8ed84451') + + depends_on('python@3.6:', type=('build', 'run')) + depends_on('py-setuptools', type='build') + depends_on('py-wheel', type='build') + depends_on('py-jupyter-packaging', type='build') + depends_on('py-jupyter-server@1.1:1', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-keras2onnx/package.py b/var/spack/repos/builtin/packages/py-keras2onnx/package.py new file mode 100644 index 0000000000..60db5d7484 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-keras2onnx/package.py @@ -0,0 +1,24 @@ +# Copyright 2013-2021 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 PyKeras2onnx(PythonPackage): + """Converts Machine Learning models to ONNX for use in Windows ML""" + + homepage = "https://github.com/onnx/keras-onnx" + + url = "https://github.com/onnx/keras-onnx/archive/refs/tags/v1.7.0.tar.gz" + + version('1.7.0', sha256='8ec9c4e1c1f870d420934d1aa7cbc9faab80c6af366900bf95e5f48280c0d199') + + depends_on('py-setuptools', type='build') + depends_on('py-numpy', type=('build', 'run')) + depends_on('py-protobuf', type=('build', 'run')) + depends_on('py-requests', type=('build', 'run')) + depends_on('py-onnx', type=('build', 'run')) + depends_on('py-onnxconverter-common@1.7.0:', type=('build', 'run')) + depends_on('py-fire', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-keyring/package.py b/var/spack/repos/builtin/packages/py-keyring/package.py index 2014acc389..325dde48aa 100644 --- a/var/spack/repos/builtin/packages/py-keyring/package.py +++ b/var/spack/repos/builtin/packages/py-keyring/package.py @@ -14,10 +14,14 @@ class PyKeyring(PythonPackage): homepage = "https://github.com/jaraco/keyring" pypi = "keyring/keyring-23.0.1.tar.gz" + version('23.2.1', sha256='6334aee6073db2fb1f30892697b1730105b5e9a77ce7e61fca6b435225493efe') + version('23.2.0', sha256='1e1970dcecde00c59ff6033d69cee3b283cd0d7cbad78b0dc4cdd15c8a28bcf8') + version('23.1.0', sha256='b7e0156667f5dcc73c1f63a518005cd18a4eb23fe77321194fefcc03748b21a4') version('23.0.1', sha256='045703609dd3fccfcdb27da201684278823b72af515aedec1a8515719a038cb8') depends_on('python@3.6:', type=('build', 'run')) - depends_on('py-setuptools', type='build') + depends_on('py-setuptools@42:', type='build') + depends_on('py-setuptools@56:', type='build', when='@23.1.0:') depends_on('py-setuptools-scm@3.4.1:+toml', type='build') depends_on('py-importlib-metadata@3.6:', type=('build', 'run')) depends_on('py-secretstorage@3.2:', type=('build', 'run'), when='platform=linux') diff --git a/var/spack/repos/builtin/packages/py-kornia/package.py b/var/spack/repos/builtin/packages/py-kornia/package.py index ccc21b5c2b..b87b7ae72c 100644 --- a/var/spack/repos/builtin/packages/py-kornia/package.py +++ b/var/spack/repos/builtin/packages/py-kornia/package.py @@ -12,6 +12,7 @@ class PyKornia(PythonPackage): homepage = "https://www.kornia.org/" pypi = "kornia/kornia-0.5.10.tar.gz" + version('0.6.2', sha256='eea722b3ff2f227a9ef8088cdab480cd40dd91d9138649bfd92cfa668204eea9') version('0.6.1', sha256='f638fb3309f88666545866c162f510b6d485fd8f7131d5570d4e6c0d295fdcd6') version('0.5.10', sha256='428b4b934a2ba7360cc6cba051ed8fd96c2d0f66611fdca0834e82845f14f65d') diff --git a/var/spack/repos/builtin/packages/py-laspy/package.py b/var/spack/repos/builtin/packages/py-laspy/package.py new file mode 100644 index 0000000000..756ca9cc4e --- /dev/null +++ b/var/spack/repos/builtin/packages/py-laspy/package.py @@ -0,0 +1,19 @@ +# Copyright 2013-2021 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 PyLaspy(PythonPackage): + """Native Python ASPRS LAS read/write library.""" + + homepage = "https://github.com/laspy/laspy" + pypi = "laspy/laspy-2.0.3.tar.gz" + + version('2.0.3', sha256='95c6367bc3a7c1e0d8dc118ae4a6b038bf9e8ad3e60741ecb8d59c36d32f822a') + + depends_on('python@3.6:', type=('build', 'run')) + depends_on('py-setuptools', type='build') + depends_on('py-numpy', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-law/package.py b/var/spack/repos/builtin/packages/py-law/package.py new file mode 100644 index 0000000000..432f54191e --- /dev/null +++ b/var/spack/repos/builtin/packages/py-law/package.py @@ -0,0 +1,22 @@ +# Copyright 2013-2021 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 PyLaw(PythonPackage): + """Build large-scale task workflows using luigi, + remote job submission, remote targets, and environment""" + + homepage = "https://github.com/riga/law" + pypi = "law/law-0.1.6.tar.gz" + + version('0.1.6', sha256='17c2c1837080590bff4d2e7228bfb418733f11b60e2bac8f589e68da78cf2ab8') + + depends_on('python@2.7:2,3.3:3', type=('build', 'run')) + depends_on('py-setuptools', type='build') + depends_on('py-six@1.13:', type=('build', 'run')) + depends_on('py-luigi@2.8.2:2', type=('build', 'run'), when='^python@:2.7') + depends_on('py-luigi@2.8.2:', type=('build', 'run'), when='^python@3:') diff --git a/var/spack/repos/builtin/packages/py-lazy-object-proxy/package.py b/var/spack/repos/builtin/packages/py-lazy-object-proxy/package.py index 2dac51e390..c5b537de91 100644 --- a/var/spack/repos/builtin/packages/py-lazy-object-proxy/package.py +++ b/var/spack/repos/builtin/packages/py-lazy-object-proxy/package.py @@ -12,10 +12,14 @@ class PyLazyObjectProxy(PythonPackage): homepage = "https://github.com/ionelmc/python-lazy-object-proxy" pypi = "lazy-object-proxy/lazy-object-proxy-1.3.1.tar.gz" + version('1.6.0', sha256='489000d368377571c6f982fba6497f2aa13c6d1facc40660963da62f5c379726') version('1.4.3', sha256='f3900e8a5de27447acbf900b4750b0ddfd7ec1ea7fbaf11dfa911141bc522af0') version('1.3.1', sha256='eb91be369f945f10d3a49f5f9be8b3d0b93a4c2be8f8a5b83b0571b8123e0a7a') depends_on('python@2.7:2.8,3.4:', type=('build', 'run')) + depends_on('python@2.7:2.8,3.6:', type=('build', 'run'), when='@1.6.0:') depends_on('py-setuptools-scm@3.3.1:', type='build', when='@1.4.0:') + depends_on('py-setuptools-scm@3.3.1:5', type='build', when='@1.6.0:') depends_on('py-setuptools', type='build') + depends_on('py-setuptools@30.3.0:', type='build', when='@1.6.0:') diff --git a/var/spack/repos/builtin/packages/py-lhsmdu/package.py b/var/spack/repos/builtin/packages/py-lhsmdu/package.py new file mode 100644 index 0000000000..2a8b61b4b8 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-lhsmdu/package.py @@ -0,0 +1,23 @@ +# 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) + +# Package automatically generated using 'pip2spack' converter + + +class PyLhsmdu(PythonPackage): + """Latin Hypercube Sampling with Multi-Dimensional Uniformity (LHS-MDU) + from Deutsch and Deutsch, Latin hypercube sampling with multidimensional + uniformity.""" + + homepage = "http://github.com/sahilm89/lhsmdu" + pypi = 'lhsmdu/lhsmdu-1.1.tar.gz' + maintainers = ['liuyangzhuan'] + + version('1.1', sha256='4bc1df6b9cdd27bae0bff75cf1693f455ba32e4fa87ca9a932f60696607fe712') + version('0.1', sha256='ef462054b354cd20b10c6d80876c8fdb552a8d2e23eaf74179dc91956d68d32a') + + depends_on('py-setuptools', type='build') + depends_on('py-numpy', type='build') + depends_on('py-scipy', type='build') diff --git a/var/spack/repos/builtin/packages/py-liac-arff/package.py b/var/spack/repos/builtin/packages/py-liac-arff/package.py new file mode 100644 index 0000000000..8492fd694c --- /dev/null +++ b/var/spack/repos/builtin/packages/py-liac-arff/package.py @@ -0,0 +1,20 @@ +# Copyright 2013-2021 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 PyLiacArff(PythonPackage): + """The liac-arff module implements functions to read and + write ARFF files in Python.""" + + homepage = "https://github.com/renatopp/liac-arff" + pypi = "liac-arff/liac-arff-2.5.0.tar.gz" + + version('2.5.0', sha256='3220d0af6487c5aa71b47579be7ad1d94f3849ff1e224af3bf05ad49a0b5c4da') + + depends_on('python@2.7:2.999,3.5:', type=('build', 'run')) + depends_on('py-setuptools', type='build') + depends_on('py-cython', type='build') diff --git a/var/spack/repos/builtin/packages/py-lizard/package.py b/var/spack/repos/builtin/packages/py-lizard/package.py new file mode 100644 index 0000000000..bdf9e6a88e --- /dev/null +++ b/var/spack/repos/builtin/packages/py-lizard/package.py @@ -0,0 +1,20 @@ +# Copyright 2013-2021 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 PyLizard(PythonPackage): + """A code analyzer without caring the C/C++ header files. + It works with Java, C/C++, JavaScript, Python, Ruby, + Swift, Objective C. Metrics includes cyclomatic + complexity number etc.""" + + homepage = "http://www.lizard.ws/" + pypi = "lizard/lizard-1.17.9.tar.gz" + + version('1.17.9', sha256='76ee0e631d985bea1dd6521a03c6c2fa9dce5a2248b3d26c49890e9e085b7aed') + + depends_on('py-setuptools', type='build') diff --git a/var/spack/repos/builtin/packages/py-lockfile/package.py b/var/spack/repos/builtin/packages/py-lockfile/package.py index 8de746add6..4862f94b2b 100644 --- a/var/spack/repos/builtin/packages/py-lockfile/package.py +++ b/var/spack/repos/builtin/packages/py-lockfile/package.py @@ -18,8 +18,11 @@ class PyLockfile(PythonPackage): possibilities it provides than as production-quality code. """ pypi = "lockfile/lockfile-0.10.2.tar.gz" + homepage = "https://launchpad.net/pylockfile" + version('0.12.2', sha256='6aed02de03cba24efabcd600b30540140634fc06cfa603822d508d5361e9f799') version('0.10.2', sha256='9e42252f17d1dd89ee31745e0c4fbe58862c25147eb0ef5295c9cd9bcb4ea2c1') depends_on("py-setuptools", type='build') depends_on("py-pbr", type='build') + depends_on("py-pbr@1.8:", type='build', when='@0.12.2:') diff --git a/var/spack/repos/builtin/packages/py-lws/package.py b/var/spack/repos/builtin/packages/py-lws/package.py new file mode 100644 index 0000000000..1bcfbd2b5e --- /dev/null +++ b/var/spack/repos/builtin/packages/py-lws/package.py @@ -0,0 +1,25 @@ +# Copyright 2013-2021 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 PyLws(PythonPackage): + """Fast spectrogram phase recovery using Local Weighted Sums""" + + homepage = "https://pypi.org/project/lws/" + pypi = "lws/lws-1.2.6.tar.gz" + + version('1.2.6', sha256='ac94834832aadfcd53fcf4a77e1d95155063b39adbce14c733f8345bdac76e87') + + depends_on('python@3:', type=('build', 'run')) + depends_on('py-cython', type='build') + depends_on('py-setuptools', type='build') + depends_on('py-numpy', type=('build', 'run')) + depends_on('py-scipy', type=('build', 'run')) + + def setup_build_environment(self, env): + env.set('LWS_USE_CYTHON', 1) diff --git a/var/spack/repos/builtin/packages/py-lxml/package.py b/var/spack/repos/builtin/packages/py-lxml/package.py index 0a4cfe54f9..7f4cba072e 100644 --- a/var/spack/repos/builtin/packages/py-lxml/package.py +++ b/var/spack/repos/builtin/packages/py-lxml/package.py @@ -13,6 +13,7 @@ class PyLxml(PythonPackage): homepage = "https://lxml.de/" pypi = "lxml/lxml-4.6.1.tar.gz" + version('4.6.4', sha256='daf9bd1fee31f1c7a5928b3e1059e09a8d683ea58fb3ffc773b6c88cb8d1399c') version('4.6.3', sha256='39b78571b3b30645ac77b95f7c69d1bffc4cf8c3b157c435a34da72e78c82468') version('4.6.1', sha256='c152b2e93b639d1f36ec5a8ca24cde4a8eefb2b6b83668fcd8e83a67badcb367') version('4.5.2', sha256='cdc13a1682b2a6241080745b1953719e7fe0850b40a5c71ca574f090a1391df6') @@ -23,8 +24,8 @@ class PyLxml(PythonPackage): version('2.3', sha256='eea1b8d29532739c1383cb4794c5eacd6176f0972b59e8d29348335b87ff2e66') variant('html5', default=False, description='Enable html5lib backend') - variant('htmlsoup', default=False, description='Enable BeautifulSoup4 backend') - variant('cssselect', default=False, description='Enable cssselect module') + variant('htmlsoup', default=False, description='Enable BeautifulSoup4 backend') + variant('cssselect', default=False, description='Enable cssselect module') depends_on('python@2.7:2.8,3.5:', type=('build', 'run')) depends_on('py-setuptools', type='build') diff --git a/var/spack/repos/builtin/packages/py-lz4/package.py b/var/spack/repos/builtin/packages/py-lz4/package.py index 57fcf26afe..f60e0eeb4a 100644 --- a/var/spack/repos/builtin/packages/py-lz4/package.py +++ b/var/spack/repos/builtin/packages/py-lz4/package.py @@ -12,7 +12,12 @@ class PyLz4(PythonPackage): homepage = "https://github.com/python-lz4/python-lz4" pypi = "lz4/lz4-3.1.0.tar.gz" + version('3.1.3', sha256='081ef0a3b5941cb03127f314229a1c78bd70c9c220bb3f4dd80033e707feaa18') version('3.1.0', sha256='debe75513db3eb9e5cdcd82a329ff38374b6316ab65b848b571e0404746c1e05') - depends_on('python@3.4:', type=('build', 'run')) + depends_on('python@3.5:', type=('build', 'run')) depends_on('py-setuptools', type='build') + depends_on('py-setuptools-scm', type='build') + depends_on('py-pkgconfig', type='build') + depends_on('lz4@1.7.5:') + depends_on('py-future', when='^python@:2', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-make/package.py b/var/spack/repos/builtin/packages/py-make/package.py new file mode 100644 index 0000000000..4ec9a68fc4 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-make/package.py @@ -0,0 +1,20 @@ +# Copyright 2013-2021 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 PyMake(PythonPackage): + """Create project layout from jinja2 templates""" + + homepage = "https://github.com/fholmer/make" + git = "https://github.com/fholmer/make.git" + + version('0.1.6.post2', commit='ce2ef5834837a35dba5f2bea8866b61c8907c83a') + version('0.1.6', commit='c6e2615d01d8d5f58181e39d0f594fe5baae3c5f') + + depends_on('py-setuptools', type='build') + depends_on('py-jinja2', type=('build', 'run')) + depends_on('py-jinja2-time', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-mako/package.py b/var/spack/repos/builtin/packages/py-mako/package.py index 8ae2da458b..1db1bf872d 100644 --- a/var/spack/repos/builtin/packages/py-mako/package.py +++ b/var/spack/repos/builtin/packages/py-mako/package.py @@ -12,9 +12,11 @@ class PyMako(PythonPackage): pypi = "Mako/Mako-1.0.1.tar.gz" + version('1.1.5', sha256='169fa52af22a91900d852e937400e79f535496191c63712e3b9fda5a9bed6fc3') version('1.1.4', sha256='17831f0b7087c313c0ffae2bcbbd3c1d5ba9eeac9c38f2eb7b50e8c99fe9d5ab') version('1.0.4', sha256='fed99dbe4d0ddb27a33ee4910d8708aca9ef1fe854e668387a9ab9a90cbf9059') version('1.0.1', sha256='45f0869febea59dab7efd256fb451c377cbb7947bef386ff0bb44627c31a8d1c') depends_on('py-setuptools', type='build') depends_on('py-markupsafe@0.9.2:', type=('build', 'run')) + depends_on('python@2.7:2,3.4:', when='@1.1.0:') diff --git a/var/spack/repos/builtin/packages/py-markdown/package.py b/var/spack/repos/builtin/packages/py-markdown/package.py index 5fa98f749f..6de296fc64 100644 --- a/var/spack/repos/builtin/packages/py-markdown/package.py +++ b/var/spack/repos/builtin/packages/py-markdown/package.py @@ -17,6 +17,7 @@ class PyMarkdown(PythonPackage): homepage = "https://python-markdown.github.io/" pypi = "markdown/Markdown-2.6.11.tar.gz" + version('3.3.4', sha256='31b5b491868dcc87d6c24b7e3d19a0d730d59d3e46f4eea6430a321bed387a49') version('3.1.1', sha256='2e50876bcdd74517e7b71f3e7a76102050edec255b3983403f1a63e7c8a41e7a') version('2.6.11', sha256='a856869c7ff079ad84a3e19cd87a64998350c2b94e9e08e44270faef33400f81') version('2.6.7', sha256='daebf24846efa7ff269cfde8c41a48bb2303920c7b2c7c5e04fa82e6282d05c0') @@ -34,5 +35,8 @@ class PyMarkdown(PythonPackage): depends_on('python@2.7:2.8,3.2:3.4', when='@:2.6.7') depends_on('python@2.7:2.8,3.2:3.6', when='@2.6.8:2.6.11') depends_on('python@2.7:2.8,3.3.5:', when='@3.1.1:') + depends_on('python@3.6:', when='@3.3.4:') depends_on('py-setuptools', type='build', when='@2.6.11:') + depends_on('py-setuptools@36.6:', type='build', when='@3.1:') + depends_on('py-importlib-metadata', type=('build', 'run'), when='@3.3.4: ^python@:3.7') diff --git a/var/spack/repos/builtin/packages/py-matplotlib/matplotlibrc.patch b/var/spack/repos/builtin/packages/py-matplotlib/matplotlibrc.patch new file mode 100644 index 0000000000..bbc6b294da --- /dev/null +++ b/var/spack/repos/builtin/packages/py-matplotlib/matplotlibrc.patch @@ -0,0 +1,11 @@ +--- a/setup.py 2021-09-23 23:57:06.000000000 -0500 ++++ b/setup.py 2021-11-18 14:29:50.000000000 -0600 +@@ -212,7 +212,7 @@ + idx for idx, line in enumerate(template_lines) + if "#backend:" in line] + template_lines[backend_line_idx] = ( +- "#backend: {}".format(setupext.options["backend"]) ++ "#backend: {}\n".format(setupext.options["backend"]) + if setupext.options["backend"] + else "##backend: Agg") + path.write_text("".join(template_lines)) diff --git a/var/spack/repos/builtin/packages/py-matplotlib/package.py b/var/spack/repos/builtin/packages/py-matplotlib/package.py index c47af8ba14..2e7f7e5869 100644 --- a/var/spack/repos/builtin/packages/py-matplotlib/package.py +++ b/var/spack/repos/builtin/packages/py-matplotlib/package.py @@ -3,6 +3,7 @@ # # SPDX-License-Identifier: (Apache-2.0 OR MIT) +import os import sys @@ -24,6 +25,8 @@ class PyMatplotlib(PythonPackage): 'matplotlib.testing.jpl_units', 'pylab' ] + version('3.5.1', sha256='b2e9810e09c3a47b73ce9cab5a72243a1258f61e7900969097a817232246ce1c') + version('3.5.0', sha256='38892a254420d95594285077276162a5e9e9c30b6da08bdc2a4d53331ad9a6fa') version('3.4.3', sha256='fc4f526dfdb31c9bd6b8ca06bf9fab663ca12f3ec9cdf4496fb44bc680140318') version('3.4.2', sha256='d8d994cefdff9aaba45166eb3de4f5211adb4accac85cbf97137e98f26ea0219') version('3.4.1', sha256='84d4c4f650f356678a5d658a43ca21a41fca13f9b8b00169c0b76e6a6a948908') @@ -48,10 +51,6 @@ class PyMatplotlib(PythonPackage): version('2.2.2', sha256='4dc7ef528aad21f22be85e95725234c5178c0f938e2228ca76640e5e84d8cde8') version('2.0.2', sha256='0ffbc44faa34a8b1704bc108c451ecf87988f900ef7ce757b8e2e84383121ff1') version('2.0.0', sha256='36cf0985829c1ab2b8b1dae5e2272e53ae681bf33ab8bedceed4f0565af5f813') - version('1.5.3', sha256='a0a5dc39f785014f2088fed2c6d2d129f0444f71afbb9c44f7bdf1b14d86ebbc', deprecated=True) - version('1.5.1', sha256='3ab8d968eac602145642d0db63dd8d67c85e9a5444ce0e2ecb2a8fedc7224d40', deprecated=True) - version('1.4.3', sha256='61f201c6a82e89e4d9e324266203fad44f95fd8f36d8eec0d8690273e1182f75', deprecated=True) - version('1.4.2', sha256='17a3c7154f152d8dfed1f37517c0a8c5db6ade4f6334f684989c36dab84ddb54', deprecated=True) # https://matplotlib.org/tutorials/introductory/usage.html#backends # From `lib/matplotlib/rcsetup.py`: @@ -84,7 +83,7 @@ class PyMatplotlib(PythonPackage): variant('fonts', default=False, description='Enable support for system font detection') - # https://matplotlib.org/users/installing.html#dependencies + # https://matplotlib.org/stable/devel/dependencies.html # Required dependencies extends('python', ignore=r'bin/nosetests.*$|bin/pbr$') depends_on('python@2.7:2.8,3.4:', when='@:2', type=('build', 'link', 'run')) @@ -99,12 +98,17 @@ class PyMatplotlib(PythonPackage): depends_on('libpng@1.2:') depends_on('py-setuptools', type=('build', 'run')) # See #3813 depends_on('py-certifi@2020.6.20:', when='@3.3.1:', type='build') + depends_on('py-setuptools-scm@4:', when='@3.5:', type='build') + depends_on('py-setuptools-scm-git-archive', when='@3.5:', type='build') + depends_on('py-cycler@0.10:', type=('build', 'run')) + depends_on('py-fonttools@4.22:', when='@3.5:', type=('build', 'run')) + depends_on('py-kiwisolver@1.0.1:', type=('build', 'run'), when='@2.2.0:') depends_on('py-numpy@1.11:', type=('build', 'run')) depends_on('py-numpy@1.15:', when='@3.3:', type=('build', 'run')) depends_on('py-numpy@1.16:', when='@3.4:', type=('build', 'run')) - depends_on('py-cycler@0.10:', type=('build', 'run')) - depends_on('py-kiwisolver@1.0.1:', type=('build', 'run'), when='@2.2.0:') - depends_on('pil@6.2.0:', when='@3.3:', type=('build', 'run')) + depends_on('py-numpy@1.17:', when='@3.5:', type=('build', 'run')) + depends_on('py-packaging', when='@3.5:', type=('build', 'run')) + depends_on('pil@6.2:', when='@3.3:', type=('build', 'run')) depends_on('py-pyparsing@2.0.3,2.0.5:2.1.1,2.1.3:2.1.5,2.1.7:', type=('build', 'run')) depends_on('py-pyparsing@2.2.1:', when='@3.4:', type=('build', 'run')) depends_on('py-python-dateutil@2.1:', type=('build', 'run')) @@ -149,7 +153,7 @@ class PyMatplotlib(PythonPackage): depends_on('pkgconfig', type='build') # Testing dependencies - # https://matplotlib.org/devel/testing.html#requirements + # https://matplotlib.org/stable/devel/development_setup.html#additional-dependencies-for-testing depends_on('py-pytest@3.6:', type='test') depends_on('ghostscript@9.0:', type='test') # depends_on('inkscape@:0', type='test') @@ -160,9 +164,20 @@ class PyMatplotlib(PythonPackage): conflicts('~image', when='@3.3:', msg='Pillow is no longer an optional dependency') + # https://github.com/matplotlib/matplotlib/pull/21662 + patch('matplotlibrc.patch', when='@3.5.0') # Patch to pick up correct freetype headers patch('freetype-include-path.patch', when='@2.2.2:2.9.9') + @property + def config_file(self): + # https://github.com/matplotlib/matplotlib/pull/20871 + return 'mplsetup.cfg' if self.spec.satisfies('@3.5:') else 'setup.cfg' + + @property + def archive_files(self): + return [os.path.join(self.build_directory, self.config_file)] + def setup_build_environment(self, env): include = [] library = [] @@ -183,19 +198,19 @@ class PyMatplotlib(PythonPackage): backend = self.spec.variants['backend'].value - with open('setup.cfg', 'w') as setup: + with open(self.config_file, 'w') as config: # Default backend - setup.write('[rc_options]\n') - setup.write('backend = ' + backend + '\n') + config.write('[rc_options]\n') + config.write('backend = ' + backend + '\n') # Starting with version 3.3.0, freetype is downloaded by default # Force matplotlib to use Spack installations of freetype and qhull - if self.version >= Version('3.3.0'): - setup.write('[libs]\n') - setup.write('system_freetype = True\n') - setup.write('system_qhull = True\n') + if self.spec.satisfies('@3.3:'): + config.write('[libs]\n') + config.write('system_freetype = True\n') + config.write('system_qhull = True\n') if self.spec.satisfies('%clang'): - setup.write('enable_lto = False\n') + config.write('enable_lto = False\n') @run_after('build') @on_package_attributes(run_tests=True) diff --git a/var/spack/repos/builtin/packages/py-mmcv/package.py b/var/spack/repos/builtin/packages/py-mmcv/package.py index d8a5ac91e0..f328ec4c50 100644 --- a/var/spack/repos/builtin/packages/py-mmcv/package.py +++ b/var/spack/repos/builtin/packages/py-mmcv/package.py @@ -20,7 +20,7 @@ class PyMmcv(PythonPackage): depends_on('py-addict', type=('build', 'run')) depends_on('py-numpy@1.11.1:', type=('build', 'run')) depends_on('py-pyyaml', type=('build', 'run')) - depends_on('opencv+python', type=('build', 'run')) + depends_on('opencv+python3', type=('build', 'run')) depends_on('py-cython', type='build') patch('opencv_for0.5.1.patch', when='@0.5.1') diff --git a/var/spack/repos/builtin/packages/py-more-itertools/package.py b/var/spack/repos/builtin/packages/py-more-itertools/package.py index 2a9a49975a..5afe7c2547 100644 --- a/var/spack/repos/builtin/packages/py-more-itertools/package.py +++ b/var/spack/repos/builtin/packages/py-more-itertools/package.py @@ -12,12 +12,14 @@ class PyMoreItertools(PythonPackage): homepage = "https://github.com/erikrose/more-itertools" pypi = "more-itertools/more-itertools-7.2.0.tar.gz" - version('7.2.0', sha256='409cd48d4db7052af495b09dec721011634af3753ae1ef92d2b32f73a745f832') - version('7.0.0', sha256='c3e4748ba1aad8dba30a4886b0b1a2004f9a863837b8654e7059eebf727afa5a') - version('5.0.0', sha256='38a936c0a6d98a38bcc2d03fdaaedaba9f412879461dd2ceff8d37564d6522e4') - version('4.3.0', sha256='c476b5d3a34e12d40130bc2f935028b5f636df8f372dc2c1c01dc19681b2039e') - version('4.1.0', sha256='c9ce7eccdcb901a2c75d326ea134e0886abfbea5f93e91cc95de9507c0816c44') - version('2.2', sha256='93e62e05c7ad3da1a233def6731e8285156701e3419a5fe279017c429ec67ce0') + version('8.11.0', sha256='0a2fd25d343c08d7e7212071820e7e7ea2f41d8fb45d6bc8a00cd6ce3b7aab88') + version('8.9.0', sha256='8c746e0d09871661520da4f1241ba6b908dc903839733c8203b552cffaf173bd') + version('7.2.0', sha256='409cd48d4db7052af495b09dec721011634af3753ae1ef92d2b32f73a745f832') + version('7.0.0', sha256='c3e4748ba1aad8dba30a4886b0b1a2004f9a863837b8654e7059eebf727afa5a') + version('5.0.0', sha256='38a936c0a6d98a38bcc2d03fdaaedaba9f412879461dd2ceff8d37564d6522e4') + version('4.3.0', sha256='c476b5d3a34e12d40130bc2f935028b5f636df8f372dc2c1c01dc19681b2039e') + version('4.1.0', sha256='c9ce7eccdcb901a2c75d326ea134e0886abfbea5f93e91cc95de9507c0816c44') + version('2.2', sha256='93e62e05c7ad3da1a233def6731e8285156701e3419a5fe279017c429ec67ce0') depends_on('python@3.5:', when='@7.1:', type=('build', 'run')) depends_on('python@3.4:', when='@6:', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-mpld3/package.py b/var/spack/repos/builtin/packages/py-mpld3/package.py index f3ba568b5d..2217452114 100644 --- a/var/spack/repos/builtin/packages/py-mpld3/package.py +++ b/var/spack/repos/builtin/packages/py-mpld3/package.py @@ -13,9 +13,11 @@ class PyMpld3(PythonPackage): homepage = "https://mpld3.github.io/" pypi = "mpld3/mpld3-0.3.tar.gz" + version('0.5.5', sha256='b080f3535238a71024c0158280ab4f6091717c45347c41c907012f8dd6da1bd5') version('0.3', sha256='4d455884a211bf99b37ecc760759435c7bb6a5955de47d8daf4967e301878ab7') depends_on('python@2.6:2.8,3.3:', type=('build', 'run')) depends_on('py-setuptools', type='build') depends_on('py-matplotlib@1.3:', type=('build', 'run')) + depends_on('py-matplotlib@2.2.2:', type=('build', 'run'), when='@0.5.5:') depends_on('py-jinja2@2.7:', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-mplhep-data/package.py b/var/spack/repos/builtin/packages/py-mplhep-data/package.py new file mode 100644 index 0000000000..9a1bc7593c --- /dev/null +++ b/var/spack/repos/builtin/packages/py-mplhep-data/package.py @@ -0,0 +1,19 @@ +# Copyright 2013-2021 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 PyMplhepData(PythonPackage): + """Font (Data) sub-package for mplhep""" + + homepage = "https://github.com/Scikit-HEP/mplhep_data" + pypi = "mplhep_data/mplhep_data-0.0.3.tar.gz" + + version('0.0.3', sha256='b54d257f3f53c93a442cda7a6681ce267277e09173c0b41fd78820f78321772f') + + depends_on('python@3.7:', type=('build', 'run')) + depends_on('py-setuptools@42:', type='build') + depends_on('py-setuptools-scm@3.4:+toml', type='build') diff --git a/var/spack/repos/builtin/packages/py-mplhep/package.py b/var/spack/repos/builtin/packages/py-mplhep/package.py new file mode 100644 index 0000000000..b2123010da --- /dev/null +++ b/var/spack/repos/builtin/packages/py-mplhep/package.py @@ -0,0 +1,23 @@ +# Copyright 2013-2021 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 PyMplhep(PythonPackage): + """Matplotlib styles for HEP""" + + homepage = "https://github.com/scikit-hep/mplhep" + pypi = "mplhep/mplhep-0.3.15.tar.gz" + + version('0.3.15', sha256='595f796ea65930094e86a805214e0d44537ead267a7487ae16eda02d1670653e') + + depends_on('python@3.7:', type=('build', 'run')) + depends_on('py-setuptools@39.2:', type='build') + depends_on('py-mplhep-data', type=('build', 'run')) + depends_on('py-matplotlib@3.4:', type=('build', 'run')) + depends_on('py-numpy@1.16.0:', type=('build', 'run')) + depends_on('py-packaging', type=('build', 'run')) + depends_on('py-uhi@0.2.0:', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-mpmath/package.py b/var/spack/repos/builtin/packages/py-mpmath/package.py index ae471b99b7..603580bdda 100644 --- a/var/spack/repos/builtin/packages/py-mpmath/package.py +++ b/var/spack/repos/builtin/packages/py-mpmath/package.py @@ -11,6 +11,10 @@ class PyMpmath(PythonPackage): homepage = "https://mpmath.org" pypi = "mpmath/mpmath-1.0.0.tar.gz" + version('1.2.1', sha256='79ffb45cf9f4b101a807595bcb3e72e0396202e0b1d25d689134b48c4216a81a') version('1.1.0', sha256='fc17abe05fbab3382b61a123c398508183406fa132e0223874578e20946499f6') version('1.0.0', sha256='04d14803b6875fe6d69e6dccea87d5ae5599802e4b1df7997bddd2024001050c') version('0.19', sha256='68ddf6426dcda445323467d89892d2cffbbd1ae0b31ac1241b1b671749d63222') + + depends_on('py-setuptools@36.7.0:', type='build', when='@1.2.0:') + depends_on('py-setuptools-scm@1.7.0:', type='build', when='@1.2.0:') diff --git a/var/spack/repos/builtin/packages/py-multidict/package.py b/var/spack/repos/builtin/packages/py-multidict/package.py index 0ea09e54c3..75db4cc988 100644 --- a/var/spack/repos/builtin/packages/py-multidict/package.py +++ b/var/spack/repos/builtin/packages/py-multidict/package.py @@ -11,7 +11,11 @@ class PyMultidict(PythonPackage): homepage = "https://github.com/aio-libs/multidict" url = "https://github.com/aio-libs/multidict/archive/v4.7.6.tar.gz" + version('5.2.0', sha256='70039c8d0f4883816de230619c9d4ee1b8527b3628a42783e8bc26de4fee1154') + version('5.1.0', sha256='1798708288851b808d2d03ea6046ca51bc44c228aaea12c9643a0a481ee41d8c') version('4.7.6', sha256='449035f89a12f189579ff83811424c71e4a39e335bcb8045145ad084b7bde2dc') depends_on('py-setuptools', type='build') + depends_on('py-setuptools@40:', type='build', when='@5.1.0:') depends_on('python@3.5:', type=('build', 'run')) + depends_on('python@3.6:', type=('build', 'run'), when='@5.1.0:') diff --git a/var/spack/repos/builtin/packages/py-mxfold2/package.py b/var/spack/repos/builtin/packages/py-mxfold2/package.py new file mode 100644 index 0000000000..c6838a97dc --- /dev/null +++ b/var/spack/repos/builtin/packages/py-mxfold2/package.py @@ -0,0 +1,26 @@ +# Copyright 2013-2021 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 PyMxfold2(PythonPackage): + """MXfold2: RNA secondary structure prediction using deep + learning with thermodynamic integration""" + + homepage = "https://github.com/keio-bioinformatics/mxfold2" + url = "https://github.com/keio-bioinformatics/mxfold2/releases/download/v0.1.1/mxfold2-0.1.1.tar.gz" + + maintainers = ['dorton21'] + + version('0.1.1', sha256='9f39c6ff4138212d1ad2639005f5c05ffb4df0f7e22f5e7ad49466a05aa047e5') + + depends_on('python@3.7:', type=('build', 'run')) + depends_on('py-torch@1.7:~valgrind', type=('build', 'run')) + depends_on('py-torchvision', type=('build', 'run')) + depends_on('py-wheel@0.35.1:0.36.0', type=('build', 'run')) + depends_on('py-setuptools', type='build') + depends_on('py-setuptools-cpp', type='build') + depends_on('cmake', type='build') diff --git a/var/spack/repos/builtin/packages/py-mypy/package.py b/var/spack/repos/builtin/packages/py-mypy/package.py index f70b07204b..adcad33a2b 100644 --- a/var/spack/repos/builtin/packages/py-mypy/package.py +++ b/var/spack/repos/builtin/packages/py-mypy/package.py @@ -12,6 +12,7 @@ class PyMypy(PythonPackage): homepage = "http://www.mypy-lang.org/" pypi = "mypy/mypy-0.740.tar.gz" + version('0.920', sha256='a55438627f5f546192f13255a994d6d1cf2659df48adcf966132b4379fd9c86b') version('0.910', sha256='704098302473cb31a218f1775a873b376b30b4c18229421e9e9dc8916fd16150') version('0.900', sha256='65c78570329c54fb40f956f7645e2359af5da9d8c54baa44f461cdc7f4984108') version('0.800', sha256='e0202e37756ed09daf4b0ba64ad2c245d357659e014c3f51d8cd0681ba66940a') @@ -20,9 +21,15 @@ class PyMypy(PythonPackage): variant('python2', default=False, description='Enable checking of python 2 type annotations') + depends_on('python@3.6:', when='@0.920:', type=('build', 'run')) depends_on("python@3.5:", type=("build", "run")) + depends_on('py-setuptools@40.6.2:', when='@0.790:', type=('build', 'run')) depends_on('py-setuptools', type=('build', 'run')) - depends_on('py-typed-ast@1.4.0:1.4', type=('build', 'run')) + depends_on('py-wheel@0.30:', when='@0.790:', type='build') + depends_on('py-typed-ast@1.4.0:1', when='@0.920: ^python@:3.7', type=('build', 'run')) + depends_on('py-typed-ast@1.4.0:1.4', when='@0.900:0.910 ^python@:3.7', type=('build', 'run')) + depends_on('py-typed-ast@1.4.0:1.4', when='@:0.800', type=('build', 'run')) depends_on('py-typing-extensions@3.7.4:', type=('build', 'run')) depends_on('py-mypy-extensions@0.4.3:0.4', type=('build', 'run')) - depends_on('py-toml', when='@0.900:', type=('build', 'run')) + depends_on('py-tomli@1.1:2', when='@0.920:', type=('build', 'run')) + depends_on('py-toml', when='@0.900:0.910', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-nbclient/package.py b/var/spack/repos/builtin/packages/py-nbclient/package.py index d181f2ae4b..1d90940491 100644 --- a/var/spack/repos/builtin/packages/py-nbclient/package.py +++ b/var/spack/repos/builtin/packages/py-nbclient/package.py @@ -12,12 +12,15 @@ class PyNbclient(PythonPackage): homepage = "https://jupyter.org/" pypi = "nbclient/nbclient-0.5.0.tar.gz" + version('0.5.5', sha256='ed7d18431393750d29a64da432e0b7889274eb5a5056682be5691b1b1dc8f755') version('0.5.0', sha256='8ad52d27ba144fca1402db014857e53c5a864a2f407be66ca9d74c3a56d6591d') depends_on('python@3.6:', type=('build', 'run')) + depends_on('python@3.6.1:', type=('build', 'run'), when='@0.5.5:') depends_on('py-setuptools', type='build') depends_on('py-traitlets@4.2:', type=('build', 'run')) depends_on('py-jupyter-client@6.1.5:', type=('build', 'run')) depends_on('py-nbformat@5.0:', type=('build', 'run')) - depends_on('py-async-generator', type=('build', 'run')) + depends_on('py-async-generator', type=('build', 'run'), when='@0.5.0') + depends_on('py-async-generator', type=('build', 'run'), when='@0.5.5: ^python@:3.6') depends_on('py-nest-asyncio', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-nbconvert/package.py b/var/spack/repos/builtin/packages/py-nbconvert/package.py index 47dc2dabd3..6ebff12ec7 100644 --- a/var/spack/repos/builtin/packages/py-nbconvert/package.py +++ b/var/spack/repos/builtin/packages/py-nbconvert/package.py @@ -10,6 +10,8 @@ class PyNbconvert(PythonPackage): homepage = "https://github.com/jupyter/nbconvert" pypi = "nbconvert/nbconvert-6.0.1.tar.gz" + version('6.3.0', sha256='5e77d6203854944520105e38f2563a813a4a3708e8563aa598928a3b5ee1081a') + version('6.2.0', sha256='16ceecd0afaa8fd26c245fa32e2c52066c02f13aa73387fffafd84750baea863') version('6.0.1', sha256='db94117fbac29153834447e31b30cda337d4450e46e0bdb1a36eafbbf4435156') version('5.6.0', sha256='427a468ec26e7d68a529b95f578d5cbf018cb4c1f889e897681c2b6d11897695') version('5.5.0', sha256='138381baa41d83584459b5cfecfc38c800ccf1f37d9ddd0bd440783346a4c39c') @@ -22,6 +24,7 @@ class PyNbconvert(PythonPackage): depends_on('python@2.7:2.8,3.3:', type=('build', 'run')) depends_on('python@2.7:2.8,3.5:', type=('build', 'run'), when='@5:') depends_on('python@3.6:', type=('build', 'run'), when='@6:') + depends_on('python@3.7:', type=('build', 'run'), when='@6.2.0:') depends_on('py-setuptools', type=('build', 'run'), when='@5:') depends_on('py-pycurl', type='build', when='^python@:2.7.8') depends_on('py-mistune@0.8.1:1', type=('build', 'run')) @@ -32,6 +35,7 @@ class PyNbconvert(PythonPackage): depends_on('py-jupyterlab-pygments', type=('build', 'run'), when='@6:') depends_on('py-traitlets', type=('build', 'run')) depends_on('py-traitlets@4.2:', type=('build', 'run'), when='@5:') + depends_on('py-traitlets@5:', type=('build', 'run'), when='@6.2.0:') depends_on('py-jupyter-core', type=('build', 'run')) depends_on('py-nbformat', type=('build', 'run')) depends_on('py-nbformat@4.4.0:', type=('build', 'run'), when='@5:') diff --git a/var/spack/repos/builtin/packages/py-nbdime/package.py b/var/spack/repos/builtin/packages/py-nbdime/package.py new file mode 100644 index 0000000000..e52d5aae7d --- /dev/null +++ b/var/spack/repos/builtin/packages/py-nbdime/package.py @@ -0,0 +1,30 @@ +# Copyright 2013-2021 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 PyNbdime(PythonPackage): + """Diff and merge of Jupyter Notebooks""" + + homepage = "https://nbdime.readthedocs.io/" + pypi = "nbdime/nbdime-3.1.1.tar.gz" + + version('3.1.1', sha256='67767320e971374f701a175aa59abd3a554723039d39fae908e72d16330d648b') + + depends_on('python@3.6:', type=('build', 'run')) + depends_on('py-setuptools@40.8.0:', type='build') + depends_on('py-nbformat', type=('build', 'run')) + depends_on('py-colorama', type=('build', 'run')) + depends_on('py-pygments', type=('build', 'run')) + depends_on('py-tornado', type=('build', 'run')) + depends_on('py-requests', type=('build', 'run')) + depends_on('py-gitpython@:2.1.3,2.1.7:', type=('build', 'run')) + depends_on('py-jupyter-server', type=('build', 'run')) + depends_on('py-jupyter-server-mathjax@0.2.2:', type=('build', 'run')) + depends_on('py-jinja2@2.9:', type=('build', 'run')) + # From pyproject.toml + depends_on('py-jupyterlab@3.0:3', type=('build', 'run')) + depends_on('py-wheel', type='build') diff --git a/var/spack/repos/builtin/packages/py-nest-asyncio/package.py b/var/spack/repos/builtin/packages/py-nest-asyncio/package.py index 74a8fc7fe3..62a54f2964 100644 --- a/var/spack/repos/builtin/packages/py-nest-asyncio/package.py +++ b/var/spack/repos/builtin/packages/py-nest-asyncio/package.py @@ -10,7 +10,9 @@ class PyNestAsyncio(PythonPackage): homepage = "https://github.com/erdewit/nest_asyncio" pypi = "nest-asyncio/nest_asyncio-1.4.0.tar.gz" + version('1.5.1', sha256='afc5a1c515210a23c461932765691ad39e8eba6551c055ac8d5546e69250d0aa') version('1.4.0', sha256='5773054bbc14579b000236f85bc01ecced7ffd045ec8ca4a9809371ec65a59c8') depends_on('python@3.5:', type=('build', 'run')) - depends_on('py-setuptools', type='build') + depends_on('py-setuptools@42:', type='build') + depends_on('py-setuptools-scm@3.4.3: +toml', type='build') diff --git a/var/spack/repos/builtin/packages/py-networkx/package.py b/var/spack/repos/builtin/packages/py-networkx/package.py index 1f5e13f1db..f44aecd3b5 100644 --- a/var/spack/repos/builtin/packages/py-networkx/package.py +++ b/var/spack/repos/builtin/packages/py-networkx/package.py @@ -13,6 +13,7 @@ class PyNetworkx(PythonPackage): homepage = "https://networkx.github.io/" pypi = "networkx/networkx-2.4.tar.gz" + version('2.6.3', sha256='c0946ed31d71f1b732b5aaa6da5a0388a345019af232ce2f49c766e2d6795c51') version('2.5.1', sha256='109cd585cac41297f71103c3c42ac6ef7379f29788eb54cb751be5a663bb235a') version('2.4', sha256='f8f4ff0b6f96e4f9b16af6b84622597b5334bf9cae8cf9b2e42e7985d5c95c64') version('2.3', sha256='8311ddef63cf5c5c5e7c1d0212dd141d9a1fe3f474915281b73597ed5f1d4e3d') @@ -25,11 +26,12 @@ class PyNetworkx(PythonPackage): depends_on('python@2.7:', type=('build', 'run')) depends_on('python@3.5:', type=('build', 'run'), when='@2.3:') depends_on('python@3.6:', type=('build', 'run'), when='@2.5:') + depends_on('python@3.7:', type=('build', 'run'), when='@2.6:') depends_on('py-setuptools', type='build') - depends_on('py-decorator@3.4.0:', type=('build', 'run')) - depends_on('py-decorator@4.1.0:', type=('build', 'run'), when='@2.0:') - depends_on('py-decorator@4.3.0:', type=('build', 'run'), when='@2.2:') - depends_on('py-decorator@4.3.0:4', type=('build', 'run'), when='@2.5.1:') + depends_on('py-decorator@3.4.0:', type=('build', 'run'), when='@:1') + depends_on('py-decorator@4.1.0:', type=('build', 'run'), when='@2.0:2.1') + depends_on('py-decorator@4.3.0:', type=('build', 'run'), when='@2.2:2.4') + depends_on('py-decorator@4.3.0:4', type=('build', 'run'), when='@2.5.1:2.5') def url_for_version(self, version): ext = 'tar.gz' diff --git a/var/spack/repos/builtin/packages/py-neurokit2/package.py b/var/spack/repos/builtin/packages/py-neurokit2/package.py index 857541e438..9cca27e907 100644 --- a/var/spack/repos/builtin/packages/py-neurokit2/package.py +++ b/var/spack/repos/builtin/packages/py-neurokit2/package.py @@ -19,6 +19,7 @@ class PyNeurokit2(PythonPackage): homepage = "https://github.com/neuropsychology/NeuroKit" pypi = "neurokit2/neurokit2-0.1.2.tar.gz" + version('0.1.5', sha256='4df48c0ce8971e32e32f36c2263986b00fd83da5eadaaa98e4bb5ab6bcd930e5') version('0.1.4.1', sha256='226bb04bb369d8bb87d99831f0a93cd8d0ed96fdc500f63de0b3550082876f6e') version('0.1.2', sha256='5ef40037c2d7078ecb713ab0b77b850267babf133856b59595de9613f29787bc') diff --git a/var/spack/repos/builtin/packages/py-neurolab/package.py b/var/spack/repos/builtin/packages/py-neurolab/package.py new file mode 100644 index 0000000000..f58bc2116a --- /dev/null +++ b/var/spack/repos/builtin/packages/py-neurolab/package.py @@ -0,0 +1,18 @@ +# Copyright 2013-2021 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 PyNeurolab(PythonPackage): + """Simple and powerfull neural network library for python""" + + homepage = "http://neurolab.googlecode.com/" + pypi = "neurolab/neurolab-0.3.5.tar.gz" + + version('0.3.5', sha256='96ec311988383c63664f3325668f27c30561cf4349e3bc5420665c042a3b9191') + + depends_on('py-numpy', type=('build', 'run')) + # depends_on('py-setuptools', type='build') diff --git a/var/spack/repos/builtin/packages/py-ninja/package.py b/var/spack/repos/builtin/packages/py-ninja/package.py new file mode 100644 index 0000000000..944163676f --- /dev/null +++ b/var/spack/repos/builtin/packages/py-ninja/package.py @@ -0,0 +1,35 @@ +# Copyright 2013-2021 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) + +import os + + +class PyNinja(PythonPackage): + """Ninja is a small build system with a focus on speed.""" + + homepage = "https://ninja-build.org" + pypi = "ninja/ninja-1.10.2.tar.gz" + + version('1.10.2', sha256='bb5e54b9a7343b3a8fc6532ae2c169af387a45b0d4dd5b72c2803e21658c5791') + + depends_on('cmake@3.6:', type='build') + depends_on('py-scikit-build', type='build') + depends_on('ninja@1.10.2', type=('build', 'run'), when='@1.10.2') + + def patch(self): + os.unlink(join_path(self.stage.source_path, 'CMakeLists.txt')) + + @run_after('install') + def installit(self): + syntax_file = os.path.join(self.spec['ninja'].prefix.misc, + 'ninja_syntax.py') + bin_file = os.path.join(self.spec['ninja'].prefix.bin, + 'ninja') + dst = os.path.join(site_packages_dir, + 'ninja') + dstbin = os.path.join(dst, 'data', 'bin') + mkdirp(dstbin) + os.symlink(bin_file, os.path.join(dstbin, 'ninja')) + os.symlink(syntax_file, os.path.join(dst, 'ninja_syntax.py')) diff --git a/var/spack/repos/builtin/packages/py-nose/package.py b/var/spack/repos/builtin/packages/py-nose/package.py index 542931d39c..9a50b115f1 100644 --- a/var/spack/repos/builtin/packages/py-nose/package.py +++ b/var/spack/repos/builtin/packages/py-nose/package.py @@ -16,4 +16,4 @@ class PyNose(PythonPackage): version('1.3.6', sha256='f61e0909a743eed37b1207e38a8e7b4a2fe0a82185e36f2be252ef1b3f901758') version('1.3.4', sha256='76bc63a4e2d5e5a0df77ca7d18f0f56e2c46cfb62b71103ba92a92c79fab1e03') - depends_on('py-setuptools', type='build') + depends_on('py-setuptools@:57', type='build') diff --git a/var/spack/repos/builtin/packages/py-notebook/package.py b/var/spack/repos/builtin/packages/py-notebook/package.py index 1cfbfa496f..9ad9eb950b 100644 --- a/var/spack/repos/builtin/packages/py-notebook/package.py +++ b/var/spack/repos/builtin/packages/py-notebook/package.py @@ -10,6 +10,7 @@ class PyNotebook(PythonPackage): homepage = "https://github.com/jupyter/notebook" pypi = "notebook/notebook-6.1.4.tar.gz" + version('6.4.5', sha256='872e20da9ae518bbcac3e4e0092d5bd35454e847dedb8cb9739e9f3b68406be0') version('6.1.4', sha256='687d01f963ea20360c0b904ee7a37c3d8cda553858c8d6e33fd0afd13e89de32') version('6.0.3', sha256='47a9092975c9e7965ada00b9a20f0cf637d001db60d241d479f53c0be117ad48') version('6.0.1', sha256='660976fe4fe45c7aa55e04bf4bccb9f9566749ff637e9020af3422f9921f9a5d') @@ -33,11 +34,13 @@ class PyNotebook(PythonPackage): depends_on('python@2.7:2.8,3.3:', type=('build', 'run')) depends_on('python@3.5:', type=('build', 'run'), when='@6:') + depends_on('python@3.6:', type=('build', 'run'), when='@6.3:') depends_on('py-setuptools', type=('build', 'run'), when='@5:') depends_on('py-jinja2', type=('build', 'run')) depends_on('py-tornado@4.0:6', type=('build', 'run'), when='@:5.7.4') depends_on('py-tornado@4.1:6', type=('build', 'run'), when='@5.7.5:5') depends_on('py-tornado@5.0:', type=('build', 'run'), when='@6:') + depends_on('py-tornado@6.1:', type=('build', 'run'), when='@6.4.5:') depends_on('py-pyzmq@17:', type=('build', 'run'), when='@6:') depends_on('py-argon2-cffi', type=('build', 'run'), when='@6.1:') depends_on('py-ipython-genutils', type=('build', 'run')) @@ -55,6 +58,7 @@ class PyNotebook(PythonPackage): depends_on('py-nbconvert', type=('build', 'run')) depends_on('py-ipykernel', type=('build', 'run')) depends_on('py-send2trash', type=('build', 'run'), when='@6:') + depends_on('py-send2trash@1.5.0:', type=('build', 'run'), when='@6.2.0:') depends_on('py-terminado@0.3.3:', type=('build', 'run'), when='@:5.7.0') depends_on('py-terminado@0.8.1:', type=('build', 'run'), when='@5.7.0:') depends_on('py-terminado@0.8.3:', type=('build', 'run'), when='@6.1:') diff --git a/var/spack/repos/builtin/packages/py-ntplib/package.py b/var/spack/repos/builtin/packages/py-ntplib/package.py index 5fe6aa25a0..5fe6aa25a0 100755..100644 --- a/var/spack/repos/builtin/packages/py-ntplib/package.py +++ b/var/spack/repos/builtin/packages/py-ntplib/package.py diff --git a/var/spack/repos/builtin/packages/py-numpy/package.py b/var/spack/repos/builtin/packages/py-numpy/package.py index a808922850..b4f71ebcaa 100644 --- a/var/spack/repos/builtin/packages/py-numpy/package.py +++ b/var/spack/repos/builtin/packages/py-numpy/package.py @@ -23,7 +23,8 @@ class PyNumpy(PythonPackage): maintainers = ['adamjstewart'] version('main', branch='main') - version('master', branch='main', deprecated=True) + version('1.21.5', sha256='6a5928bc6241264dce5ed509e66f33676fc97f464e7a919edc672fb5532221ee') + version('1.21.4', sha256='e6c76a87633aa3fa16614b61ccedfae45b91df2767cf097aa9c933932a7ed1e0') version('1.21.3', sha256='63571bb7897a584ca3249c86dd01c10bcb5fe4296e3568b2e9c1a55356b6410e') version('1.21.2', sha256='423216d8afc5923b15df86037c6053bf030d15cc9e3224206ef868c2d63dd6dc') version('1.21.1', sha256='dff4af63638afcc57a3dfb9e4b26d434a7a602d225b42d746ea7fe2edf1342fd') @@ -95,10 +96,10 @@ class PyNumpy(PythonPackage): depends_on('python@3.7:3.10', type=('build', 'link', 'run'), when='@1.21.2:') depends_on('py-setuptools', type=('build', 'run')) # Check pyproject.toml for updates to the required cython version - depends_on('py-cython@0.29.13:', when='@1.18.0:', type='build') - depends_on('py-cython@0.29.14:', when='@1.18.1:', type='build') - depends_on('py-cython@0.29.21:', when='@1.19.1:', type='build') - depends_on('py-cython@0.29.24:', when='@1.21.2:', type='build') + depends_on('py-cython@0.29.13:2', when='@1.18.0:', type='build') + depends_on('py-cython@0.29.14:2', when='@1.18.1:', type='build') + depends_on('py-cython@0.29.21:2', when='@1.19.1:', type='build') + depends_on('py-cython@0.29.24:2', when='@1.21.2:', type='build') depends_on('blas', when='+blas') depends_on('lapack', when='+lapack') @@ -207,7 +208,9 @@ class PyNumpy(PythonPackage): # Tell numpy where to find BLAS/LAPACK libraries with open('site.cfg', 'w') as f: - if '^intel-mkl' in spec or '^intel-parallel-studio+mkl' in spec: + if '^intel-mkl' in spec or \ + '^intel-parallel-studio+mkl' or \ + '^intel-oneapi-mkl' in spec: f.write('[mkl]\n') # FIXME: as of @1.11.2, numpy does not work with separately # specified threading and interface layers. A workaround is a @@ -300,7 +303,8 @@ class PyNumpy(PythonPackage): if 'blas' not in spec: blas = '' elif spec['blas'].name == 'intel-mkl' or \ - spec['blas'].name == 'intel-parallel-studio': + spec['blas'].name == 'intel-parallel-studio' or \ + spec['blas'].name == 'intel-oneapi-mkl': blas = 'mkl' elif spec['blas'].name == 'blis': blas = 'blis' @@ -319,7 +323,8 @@ class PyNumpy(PythonPackage): if 'lapack' not in spec: lapack = '' elif spec['lapack'].name == 'intel-mkl' or \ - spec['lapack'].name == 'intel-parallel-studio': + spec['lapack'].name == 'intel-parallel-studio' or \ + spec['lapack'].name == 'intel-oneapi-mkl': lapack = 'mkl' elif spec['lapack'].name == 'openblas': lapack = 'openblas' diff --git a/var/spack/repos/builtin/packages/py-oauthlib/package.py b/var/spack/repos/builtin/packages/py-oauthlib/package.py index be59718198..9fe6798ae0 100644 --- a/var/spack/repos/builtin/packages/py-oauthlib/package.py +++ b/var/spack/repos/builtin/packages/py-oauthlib/package.py @@ -15,14 +15,19 @@ class PyOauthlib(PythonPackage): homepage = "https://github.com/oauthlib/oauthlib" pypi = "oauthlib/oauthlib-3.1.0.tar.gz" + version('3.1.1', sha256='8f0215fcc533dd8dd1bee6f4c412d4f0cd7297307d43ac61666389e3bc3198a3') version('3.1.0', sha256='bee41cc35fcca6e988463cacc3bcb8a96224f470ca547e697b604cc697b2f889') version('3.0.1', sha256='0ce32c5d989a1827e3f1148f98b9085ed2370fc939bf524c9c851d8714797298') version('2.0.2', sha256='b3b9b47f2a263fe249b5b48c4e25a5bce882ff20a0ac34d553ce43cff55b53ac') variant('extras', default=True, description='Build with pyjwt, blinker, cryptography') - depends_on('py-setuptools', type='build') - depends_on('py-pyjwt@1.0.0:', type=('build', 'run'), when='+extras') - depends_on('py-blinker', type=('build', 'run'), when='+extras') - depends_on('py-cryptography', type=('build', 'run'), when='+extras') - depends_on('python@2.7:2.8,3.4:', type=('build', 'run')) + depends_on('py-setuptools', type='build') + depends_on('py-pyjwt@1.0.0:', type=('build', 'run'), when='+extras') + depends_on('py-pyjwt@2.0.0:2', type=('build', 'run'), when='+extras @3.1.1:') + depends_on('py-blinker', type=('build', 'run'), when='+extras') + depends_on('py-blinker@1.4:', type=('build', 'run'), when='+extras @3.1.1:') + depends_on('py-cryptography', type=('build', 'run'), when='+extras') + depends_on('py-cryptography@3.0.0:3', type=('build', 'run'), when='+extras @3.1.1:') + depends_on('python@2.7:2.8,3.4:', type=('build', 'run')) + depends_on('python@3.6:', type=('build', 'run'), when='@3.1.1:') diff --git a/var/spack/repos/builtin/packages/py-onnx-runtime/cms.patch b/var/spack/repos/builtin/packages/py-onnx-runtime/cms.patch new file mode 100644 index 0000000000..ebe626c4d7 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-onnx-runtime/cms.patch @@ -0,0 +1,146 @@ +diff -ur a/cmake/CMakeLists.txt b/cmake/CMakeLists.txt +--- a/cmake/CMakeLists.txt 2021-12-14 22:34:21.754062247 +0100 ++++ b/cmake/CMakeLists.txt 2021-12-14 22:36:18.094061909 +0100 +@@ -240,7 +240,7 @@ + if (onnxruntime_MINIMAL_BUILD_CUSTOM_OPS) + add_compile_definitions(ORT_MINIMAL_BUILD_CUSTOM_OPS) + endif() +- ++ + set(onnxruntime_REDUCED_OPS_BUILD ON) + + if (NOT onnxruntime_ENABLE_PYTHON) +@@ -568,7 +568,7 @@ + endif() + endif() + +-if(NOT WIN32 AND NOT onnxruntime_PREFER_SYSTEM_LIB) ++if(NOT WIN32) + add_subdirectory(${PROJECT_SOURCE_DIR}/external/nsync EXCLUDE_FROM_ALL) + endif() + # External dependencies +@@ -596,7 +596,7 @@ + if(NOT Protobuf_USE_STATIC_LIBS) + #Indeed here should be a warning, not a fatal error. ONNX Runtime itself can work in such a + #setting but it may cause compatibility issue when ONNX Runtime is integrated with the other ONNX ecosystem softwares. +- message(FATAL_ERROR "Please enable Protobuf_USE_STATIC_LIBS") ++ message(WARNING "Please enable Protobuf_USE_STATIC_LIBS") + endif() + else() + set(PROTOBUF_LIB protobuf::libprotobuf-lite) +diff -ur a/include/onnxruntime/core/platform/ort_mutex.h b/include/onnxruntime/core/platform/ort_mutex.h +--- a/include/onnxruntime/core/platform/ort_mutex.h 2021-12-14 22:34:21.784062247 +0100 ++++ b/include/onnxruntime/core/platform/ort_mutex.h 2021-12-14 22:36:18.164061909 +0100 +@@ -101,7 +101,7 @@ + return steady_clock::now() - steady_now < rel_time ? std::cv_status::no_timeout : std::cv_status::timeout; + } + } // namespace onnxruntime +-#else ++#elif !defined(__aarch64__) + #include "nsync.h" + #include <mutex> //for unique_lock + #include <condition_variable> //for cv_status +@@ -186,4 +186,11 @@ + return steady_clock::now() - steady_now < rel_time ? std::cv_status::no_timeout : std::cv_status::timeout; + } + }; // namespace onnxruntime ++#else ++#include <mutex> ++#include <condition_variable> ++namespace onnxruntime { ++using OrtMutex = std::mutex; ++using OrtCondVar = std::condition_variable; ++} // namespace onnxruntime + #endif +diff -ur a/include/onnxruntime/core/session/onnxruntime_cxx_api.h b/include/onnxruntime/core/session/onnxruntime_cxx_api.h +--- a/include/onnxruntime/core/session/onnxruntime_cxx_api.h 2021-12-14 22:34:21.784062247 +0100 ++++ b/include/onnxruntime/core/session/onnxruntime_cxx_api.h 2021-12-14 22:36:18.164061909 +0100 +@@ -345,8 +345,8 @@ + + struct Session : Base<OrtSession> { + explicit Session(std::nullptr_t) {} +- Session(Env& env, const ORTCHAR_T* model_path, const SessionOptions& options); +- Session(Env& env, const void* model_data, size_t model_data_length, const SessionOptions& options); ++ Session(const Env& env, const ORTCHAR_T* model_path, const SessionOptions& options); ++ Session(const Env& env, const void* model_data, size_t model_data_length, const SessionOptions& options); + + // Run that will allocate the output values + std::vector<Value> Run(const RunOptions& run_options, const char* const* input_names, const Value* input_values, size_t input_count, +diff -ur a/include/onnxruntime/core/session/onnxruntime_cxx_inline.h b/include/onnxruntime/core/session/onnxruntime_cxx_inline.h +--- a/include/onnxruntime/core/session/onnxruntime_cxx_inline.h 2021-12-14 22:34:21.784062247 +0100 ++++ b/include/onnxruntime/core/session/onnxruntime_cxx_inline.h 2021-12-14 22:36:18.164061909 +0100 +@@ -500,11 +500,11 @@ + return *this; + } + +-inline Session::Session(Env& env, const ORTCHAR_T* model_path, const SessionOptions& options) { ++inline Session::Session(const Env& env, const ORTCHAR_T* model_path, const SessionOptions& options) { + ThrowOnError(GetApi().CreateSession(env, model_path, options, &p_)); + } + +-inline Session::Session(Env& env, const void* model_data, size_t model_data_length, const SessionOptions& options) { ++inline Session::Session(const Env& env, const void* model_data, size_t model_data_length, const SessionOptions& options) { + ThrowOnError(GetApi().CreateSessionFromArray(env, model_data, model_data_length, options, &p_)); + } + +diff -ur a/onnxruntime/core/mlas/lib/platform.cpp b/onnxruntime/core/mlas/lib/platform.cpp +--- a/onnxruntime/core/mlas/lib/platform.cpp 2021-12-14 22:34:21.864062247 +0100 ++++ b/onnxruntime/core/mlas/lib/platform.cpp 2021-12-14 22:36:18.244061908 +0100 +@@ -16,6 +16,7 @@ + --*/ + + #include "mlasi.h" ++#include <string> + + // + // Stores the platform information. +@@ -170,8 +171,11 @@ + // + + uint64_t xcr0 = MlasReadExtendedControlRegister(_XCR_XFEATURE_ENABLED_MASK); ++ const char *cpu_opt = std::getenv("MLAS_DYNAMIC_CPU_ARCH"); ++ if (cpu_opt == nullptr) cpu_opt = "99"; ++ auto opt = std::stoi(cpu_opt); + +- if ((xcr0 & 0x6) == 0x6) { ++ if (opt > 0 && (xcr0 & 0x6) == 0x6) { + + this->GemmFloatKernel = MlasGemmFloatKernelAvx; + +@@ -204,7 +208,7 @@ + __cpuid_count(7, 0, Cpuid7[0], Cpuid7[1], Cpuid7[2], Cpuid7[3]); + #endif + +- if (((Cpuid1[2] & 0x1000) != 0) && ((Cpuid7[1] & 0x20) != 0)) { ++ if (opt > 1 && ((Cpuid1[2] & 0x1000) != 0) && ((Cpuid7[1] & 0x20) != 0)) { + + this->GemmU8S8Operation = MlasGemmU8X8Operation<MLAS_GEMM_U8S8_KERNEL_AVX2>; + this->GemmU8S8PackedOperation = MlasGemmU8X8PackedOperation<MLAS_GEMM_U8S8_KERNEL_AVX2>; +@@ -264,7 +268,7 @@ + // operating system supports saving AVX512F state. + // + +- if (((Cpuid7[1] & 0x10000) != 0) && ((xcr0 & 0xE0) == 0xE0)) { ++ if (opt > 2 && ((Cpuid7[1] & 0x10000) != 0) && ((xcr0 & 0xE0) == 0xE0)) { + + this->GemmFloatKernel = MlasGemmFloatKernelAvx512F; + this->GemmDoubleKernel = MlasGemmDoubleKernelAvx512F; +diff -ur a/onnxruntime/core/platform/posix/ort_mutex.cc b/onnxruntime/core/platform/posix/ort_mutex.cc +--- a/onnxruntime/core/platform/posix/ort_mutex.cc 2021-12-14 22:34:21.874062247 +0100 ++++ b/onnxruntime/core/platform/posix/ort_mutex.cc 2021-12-14 22:36:18.254061908 +0100 +@@ -1,6 +1,7 @@ + // Copyright (c) Microsoft Corporation. All rights reserved. + // Licensed under the MIT License. + ++#if !defined(__aarch64__) + #include "core/common/common.h" + #include "core/platform/ort_mutex.h" + #include <assert.h> +@@ -40,4 +41,5 @@ + nsync::nsync_cv_wait(&native_cv_object, lk.mutex()->native_handle()); + } + +-} // namespace onnxruntime +\ No newline at end of file ++} // namespace onnxruntime ++#endif diff --git a/var/spack/repos/builtin/packages/py-onnx-runtime/gcc11.patch b/var/spack/repos/builtin/packages/py-onnx-runtime/gcc11.patch new file mode 100644 index 0000000000..b53cc1dc6d --- /dev/null +++ b/var/spack/repos/builtin/packages/py-onnx-runtime/gcc11.patch @@ -0,0 +1,36 @@ +From de4089f8cbe0baffe56a363cc3a41595cc8f0809 Mon Sep 17 00:00:00 2001 +From: ankurverma85 <31362771+ankurverma85@users.noreply.github.com> +Date: Mon, 10 May 2021 12:50:08 -0700 +Subject: [PATCH] GCC11/Libstdc++11 Compilation fixes (#7599) + +Authored-by: Ankur Verma <ankurv@microsoft.com> +--- + include/onnxruntime/core/graph/graph_nodes.h | 2 +- + onnxruntime/test/providers/cpu/controlflow/loop_test.cc | 1 + + 2 files changed, 2 insertions(+), 1 deletion(-) + +diff --git a/include/onnxruntime/core/graph/graph_nodes.h b/include/onnxruntime/core/graph/graph_nodes.h +index 422fe9538ea..aec603f7942 100644 +--- a/include/onnxruntime/core/graph/graph_nodes.h ++++ b/include/onnxruntime/core/graph/graph_nodes.h +@@ -100,7 +100,7 @@ class ValidNodes { + using const_reference = const T&; + + /** Construct a NodeInterator and move to the first valid node. */ +- NodeIterator<TIterator>(const TIterator current, const TIterator end, const NodeFilterFunc& filter_fn) noexcept ++ NodeIterator(const TIterator current, const TIterator end, const NodeFilterFunc& filter_fn) noexcept + : current_{current}, end_{end}, apply_filter_{filter_fn != nullptr}, filter_func_{&filter_fn} { + // skip to next valid node, stopping at end if none are found + while (current_ < end && (*current_ == nullptr || +diff --git a/onnxruntime/test/providers/cpu/controlflow/loop_test.cc b/onnxruntime/test/providers/cpu/controlflow/loop_test.cc +index b058e9a16c7..3cf147e997c 100644 +--- a/onnxruntime/test/providers/cpu/controlflow/loop_test.cc ++++ b/onnxruntime/test/providers/cpu/controlflow/loop_test.cc +@@ -2,6 +2,7 @@ + // Licensed under the MIT License. + + #include <future> ++#include <thread> + #include "gtest/gtest.h" + #include "gmock/gmock.h" + diff --git a/var/spack/repos/builtin/packages/py-onnx-runtime/libiconv.patch b/var/spack/repos/builtin/packages/py-onnx-runtime/libiconv.patch new file mode 100644 index 0000000000..b782c15ed1 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-onnx-runtime/libiconv.patch @@ -0,0 +1,42 @@ +--- cmake/onnxruntime.cmake.orig 2021-08-06 12:36:32.720081500 +0200 ++++ cmake/onnxruntime.cmake 2021-08-13 18:53:30.310868700 +0200 +@@ -120,7 +120,8 @@ + onnxruntime_common + onnxruntime_mlas + onnxruntime_flatbuffers +- ${onnxruntime_EXTERNAL_LIBRARIES}) ++ ${onnxruntime_EXTERNAL_LIBRARIES} ++ -liconv) + + if (onnxruntime_ENABLE_LANGUAGE_INTEROP_OPS) + target_link_libraries(onnxruntime PRIVATE onnxruntime_language_interop onnxruntime_pyop) +--- cmake/onnxruntime_python.cmake.orig 2021-08-06 12:36:32.725148600 +0200 ++++ cmake/onnxruntime_python.cmake 2021-08-13 18:54:37.085622000 +0200 +@@ -106,6 +106,7 @@ + onnxruntime_mlas + onnxruntime_flatbuffers + ${pybind11_lib} ++ -liconv + ) + + if (onnxruntime_ENABLE_LANGUAGE_INTEROP_OPS) +--- cmake/onnxruntime_unittests.cmake.orig 2021-08-13 19:11:58.645461300 +0200 ++++ cmake/onnxruntime_unittests.cmake 2021-08-13 19:14:18.373814800 +0200 +@@ -603,7 +603,7 @@ + AddTest( + TARGET onnxruntime_test_all + SOURCES ${all_tests} ${onnxruntime_unittest_main_src} +- LIBS onnx_test_runner_common ${onnxruntime_test_providers_libs} ${onnxruntime_test_common_libs} re2::re2 onnx_test_data_proto ++ LIBS onnx_test_runner_common ${onnxruntime_test_providers_libs} ${onnxruntime_test_common_libs} re2::re2 onnx_test_data_proto -liconv + DEPENDS ${all_dependencies} + ) + +@@ -723,7 +723,7 @@ + target_compile_options(onnx_test_runner PRIVATE "$<$<COMPILE_LANGUAGE:CUDA>:SHELL:--compiler-options /utf-8>" + "$<$<NOT:$<COMPILE_LANGUAGE:CUDA>>:/utf-8>") + endif() +-target_link_libraries(onnx_test_runner PRIVATE onnx_test_runner_common ${GETOPT_LIB_WIDE} ${onnx_test_libs}) ++target_link_libraries(onnx_test_runner PRIVATE onnx_test_runner_common ${GETOPT_LIB_WIDE} ${onnx_test_libs} -liconv) + target_include_directories(onnx_test_runner PRIVATE ${ONNXRUNTIME_ROOT}) + set_target_properties(onnx_test_runner PROPERTIES FOLDER "ONNXRuntimeTest") + diff --git a/var/spack/repos/builtin/packages/py-onnx-runtime/package.py b/var/spack/repos/builtin/packages/py-onnx-runtime/package.py new file mode 100644 index 0000000000..2bb30786a8 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-onnx-runtime/package.py @@ -0,0 +1,121 @@ +# Copyright 2013-2021 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 PyOnnxRuntime(CMakePackage, PythonPackage): + """ONNX Runtime is a performance-focused complete scoring + engine for Open Neural Network Exchange (ONNX) models, with + an open extensible architecture to continually address the + latest developments in AI and Deep Learning. ONNX Runtime + stays up to date with the ONNX standard with complete + implementation of all ONNX operators, and supports all + ONNX releases (1.2+) with both future and backwards + compatibility.""" + + homepage = "https://github.com/microsoft/onnxruntime" + git = "https://github.com/microsoft/onnxruntime.git" + + version('1.7.2', tag='v1.7.2', submodules=True) + + variant('cuda', default=False, description='Build with CUDA support') + + depends_on('cmake@3.1:', type='build') + depends_on('ninja', type='build') + depends_on('python', type=('build', 'run')) + depends_on('protobuf') + depends_on('py-protobuf', type=('build', 'run')) + depends_on('py-setuptools', type='build') + depends_on('py-numpy@1.16.6:', type=('build', 'run')) + depends_on('py-wheel', type='build') + depends_on('py-onnx', type=('build', 'run')) + depends_on('zlib') + depends_on('libpng') + depends_on('py-pybind11', type='build') + depends_on('cuda', when='+cuda') + depends_on('cudnn', when='+cuda') + depends_on('iconv', type=('build', 'link', 'run')) + depends_on('re2+shared') + + extends('python') + # Adopted from CMS experiment's fork of onnxruntime + # https://github.com/cms-externals/onnxruntime/compare/5bc92df...d594f80 + patch('cms.patch', level=1, when='@1.7.2') + # https://github.com/microsoft/onnxruntime/issues/4234#issuecomment-698077636 + patch('libiconv.patch', level=0, when='@1.7.2') + # https://github.com/microsoft/onnxruntime/commit/de4089f8cbe0baffe56a363cc3a41595cc8f0809.patch + patch('gcc11.patch', level=1, when='@1.7.2') + + dynamic_cpu_arch_values = ('NOAVX', 'AVX', 'AVX2', 'AVX512') + + variant('dynamic_cpu_arch', default='AVX512', + values=dynamic_cpu_arch_values, multi=False, + description='AVX support level') + + generator = 'Ninja' + root_cmakelists_dir = 'cmake' + + def setup_build_environment(self, env): + value = self.spec.variants['dynamic_cpu_arch'].value + value = self.dynamic_cpu_arch_values.index(value) + env.set('MLAS_DYNAMIC_CPU_ARCH', str(value)) + + def setup_run_environment(self, env): + value = self.spec.variants['dynamic_cpu_arch'].value + value = self.dynamic_cpu_arch_values.index(value) + env.set('MLAS_DYNAMIC_CPU_ARCH', str(value)) + + def cmake_args(self): + define = self.define + define_from_variant = self.define_from_variant + + args = [define('onnxruntime_ENABLE_PYTHON', True), + define('onnxruntime_BUILD_SHARED_LIB', True), + define_from_variant('onnxruntime_USE_CUDA', 'cuda'), + define('onnxruntime_BUILD_CSHARP', False), + define('onnxruntime_USE_EIGEN_FOR_BLAS', True), + define('onnxruntime_USE_OPENBLAS', False), + define("onnxruntime_USE_MKLML", False), + define("onnxruntime_USE_NGRAPH", False), + define("onnxruntime_USE_OPENMP", False), + define("onnxruntime_USE_TVM", False), + define("onnxruntime_USE_LLVM", False), + define("onnxruntime_ENABLE_MICROSOFT_INTERNAL", False), + define("onnxruntime_USE_BRAINSLICE", False), + define("onnxruntime_USE_NUPHAR", False), + define("onnxruntime_USE_TENSORRT", False), + define("onnxruntime_CROSS_COMPILING", False), + define("onnxruntime_USE_FULL_PROTOBUF", True), + define("onnxruntime_DISABLE_CONTRIB_OPS", False), + define("onnxruntime_USE_PREINSTALLED_PROTOBUF", True), + define("onnxruntime_PREFER_SYSTEM_LIB", True)] + + if self.spec.satisfies('+cuda'): + args.extend(( + define('onnxruntime_CUDA_VERSION', str(self.spec['cuda'].version)), + define('onnxruntime_CUDA_HOME', self.spec['cuda'].prefix), + define('onnxruntime_CUDNN_HOME', self.spec['cudnn'].prefix), + define('CMAKE_CUDA_FLAGS', '-cudart shared'), + define('CMAKE_CUDA_RUNTIME_LIBRARY', 'Shared'), + define('DCMAKE_TRY_COMPILE_PLATFORM_VARIABLES', + 'CMAKE_CUDA_RUNTIME_LIBRARY') + )) + + return args + + def setup_file(self): + return join_path(self.stage.source_path, 'setup.py') + + @run_after('build') + def build_python(self): + """Build everything needed to install.""" + with working_dir(self.stage.source_path): + PythonPackage.build(self, self.spec, self.prefix) + + @run_after('install') + def install_python(self): + with working_dir(self.stage.source_path): + PythonPackage.install(self, self.spec, self.prefix) diff --git a/var/spack/repos/builtin/packages/py-onnx/package.py b/var/spack/repos/builtin/packages/py-onnx/package.py index 904b392a99..c5a500203f 100644 --- a/var/spack/repos/builtin/packages/py-onnx/package.py +++ b/var/spack/repos/builtin/packages/py-onnx/package.py @@ -23,13 +23,15 @@ class PyOnnx(PythonPackage): version('1.5.0', sha256='1a584a4ef62a6db178c257fffb06a9d8e61b41c0a80bfd8bcd8a253d72c4b0b4') depends_on('py-setuptools', type='build') - depends_on('protobuf') - depends_on('py-protobuf+cpp', type=('build', 'run')) + # Protobuf version limit is due to https://github.com/protocolbuffers/protobuf/pull/8794 + depends_on('protobuf@:3.17') + depends_on('py-protobuf+cpp@:3.17', type=('build', 'run')) depends_on('py-numpy', type=('build', 'run')) depends_on('py-six', type=('build', 'run')) depends_on('py-typing@3.6.4:', when='^python@:3.4', type=('build', 'run')) - depends_on('py-typing-extensions@3.6.4:', type=('build', 'run')) + depends_on('py-typing-extensions@3.6.2.1:', type=('build', 'run')) depends_on('cmake@3.1:', type='build') + depends_on('py-pytest-runner', type='build') # 'python_out' does not recognize dllexport_decl. patch('remove_dllexport_decl.patch', when='@:1.6.0') diff --git a/var/spack/repos/builtin/packages/py-onnxconverter-common/package.py b/var/spack/repos/builtin/packages/py-onnxconverter-common/package.py new file mode 100644 index 0000000000..168cebc737 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-onnxconverter-common/package.py @@ -0,0 +1,20 @@ +# Copyright 2013-2021 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 PyOnnxconverterCommon(PythonPackage): + """ONNX Converter and Optimization Tools""" + + homepage = "https://github.com/microsoft/onnxconverter-common" + url = "https://github.com/microsoft/onnxconverter-common/archive/refs/tags/v1.9.0.tar.gz" + + version('1.9.0', sha256='32315bcc844a8203092f3117a4a092ac6cf03d6a20145477e284f1172557d6f9') + + depends_on('py-setuptools', type='build') + depends_on('py-numpy', type=('build', 'run')) + depends_on('py-protobuf', type=('build', 'run')) + depends_on('py-onnx', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-onnxmltools/package.py b/var/spack/repos/builtin/packages/py-onnxmltools/package.py new file mode 100644 index 0000000000..dacaef2822 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-onnxmltools/package.py @@ -0,0 +1,21 @@ +# Copyright 2013-2021 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 PyOnnxmltools(PythonPackage): + """Converts Machine Learning models to ONNX""" + + homepage = "https://github.com/onnx/onnxmltools" + pypi = "onnxmltools/onnxmltools-1.10.0.tar.gz" + + version('1.10.0', sha256='4eb4605f18ed66553fc17438ac8cf5406d66dcc624bedd76d8067e1b08e6c75d') + + depends_on('py-setuptools', type='build') + depends_on('py-numpy', type=('build', 'run')) + depends_on('py-onnx', type=('build', 'run')) + depends_on('py-skl2onnx', type=('build', 'run')) + depends_on('py-onnx-runtime', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-openpmd-validator/package.py b/var/spack/repos/builtin/packages/py-openpmd-validator/package.py index 08bd31120b..f44e0f1174 100644 --- a/var/spack/repos/builtin/packages/py-openpmd-validator/package.py +++ b/var/spack/repos/builtin/packages/py-openpmd-validator/package.py @@ -12,9 +12,13 @@ class PyOpenpmdValidator(PythonPackage): openPMD is an open standard for particle-mesh data files.""" homepage = "https://www.openPMD.org" - url = "https://github.com/openPMD/openPMD-validator/archive/1.0.0.2.tar.gz" + url = "https://github.com/openPMD/openPMD-validator/archive/refs/tags/1.1.0.2.tar.gz" + git = "https://github.com/openPMD/openPMD-validator.git" + maintainers = ['ax3l'] + version('1.1.0.2', sha256='b30be7957c2e1e7de67d81fad64492c3a1ecd25db231293d896da116a71ecca5') + version('1.1.0.1', sha256='93031f50ddeb747ebd6aabca249aa6bf0491d570de56746d7a98d6453427f191') version('1.0.0.2', sha256='1b97452991feb0f0ac1ffb3c92b7f9743a86b0b5390dbbfb21160e04f0a35a95') depends_on('py-setuptools', type='build') diff --git a/var/spack/repos/builtin/packages/py-openpmd-viewer/package.py b/var/spack/repos/builtin/packages/py-openpmd-viewer/package.py new file mode 100644 index 0000000000..a348b8b4f7 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-openpmd-viewer/package.py @@ -0,0 +1,56 @@ +# Copyright 2013-2021 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 PyOpenpmdViewer(PythonPackage): + """Python visualization tools for openPMD files""" + + homepage = "https://www.openPMD.org" + git = "https://github.com/openPMD/openPMD-viewer.git" + pypi = 'openPMD-viewer/openPMD-viewer-1.2.0.tar.gz' + + maintainers = ['RemiLehe', 'ax3l'] + + version('1.2.0', sha256='a27f8ac522c4c76fd774095e156a8b280c9211128f50aa07f16ac70d8222384d') + + variant('backend', default='h5py,openpmd-api', multi=True, + values=('h5py', 'openpmd-api')) + variant('jupyter', default=False, + description='Enable Jupyter Widget GUI') + variant('numba', default=False, + description='Enable accelerated depositions for histograms') + variant('plot', default=True, + description='Enable plotting support') + variant('tutorials', default=True, + description='Enable dependencies for tutorials') + + depends_on('python@3.5:', type=('build', 'run')) + depends_on('py-numpy@1.15:1', type=('build', 'run')) + depends_on('py-scipy', type=('build', 'run')) + depends_on('py-setuptools', type='build') + depends_on('py-tqdm', type=('build', 'run')) + + depends_on('py-h5py@2.8.0:', type=('build', 'run')) + with when('backend=openpmd-api'): + depends_on('openpmd-api +python -mpi', type=('build', 'run')) + + with when('+jupyter'): + depends_on('py-ipywidgets', type=('build', 'run')) + depends_on('py-jupyter', type=('build', 'run')) + depends_on('py-tqdm +notebook', type=('build', 'run')) + + with when('+numba'): + depends_on('py-numba', type=('build', 'run')) + + with when('+plot'): + depends_on('py-matplotlib', type=('build', 'run')) + # missing in Spack: + # with when('+jupyter'): + # depends_on('py-ipympl', type=('build', 'run')) + + with when('+tutorials'): + depends_on('py-wget', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-opentuner/package.py b/var/spack/repos/builtin/packages/py-opentuner/package.py index 0e367bf55d..f4f054e8ec 100644 --- a/var/spack/repos/builtin/packages/py-opentuner/package.py +++ b/var/spack/repos/builtin/packages/py-opentuner/package.py @@ -14,6 +14,7 @@ class PyOpentuner(PythonPackage): maintainers = ['matthiasdiener'] + version('0.8.7', commit='070c5ce') version('0.8.2', commit='8e720a2') version('0.8.0', commit='4cb9135') diff --git a/var/spack/repos/builtin/packages/py-packaging/package.py b/var/spack/repos/builtin/packages/py-packaging/package.py index 37ad3aadca..c64cbf7edc 100644 --- a/var/spack/repos/builtin/packages/py-packaging/package.py +++ b/var/spack/repos/builtin/packages/py-packaging/package.py @@ -12,6 +12,7 @@ class PyPackaging(PythonPackage): homepage = "https://github.com/pypa/packaging" pypi = "packaging/packaging-19.2.tar.gz" + version('21.3', sha256='dd47c42927d89ab911e606518907cc2d3a1f38bbd026385970643f9c5b8ecfeb') version('21.0', sha256='7dc96269f53a4ccec5c0670940a4281106dd0bb343f47b7471f779df49c2fbe7') version('20.9', sha256='5b327ac1320dc863dca72f4514ecc086f31186744b84a230374cc1fd776feae5') version('19.2', sha256='28b924174df7a2fa32c1953825ff29c61e2f5e082343165438812f00d3a7fc47') @@ -20,11 +21,13 @@ class PyPackaging(PythonPackage): version('17.1', sha256='f019b770dd64e585a99714f1fd5e01c7a8f11b45635aa953fd41c689a657375b') version('16.8', sha256='5d50835fdf0a7edf0b55e311b7c887786504efea1177abd7e69329a8e5ea619e') - depends_on('python@3.4:', when='@21:', type=('build', 'run')) - depends_on('python@2.7:2.8,3.4:', type=('build', 'run')) + depends_on('python@3.6:', when='@21:', type=('build', 'run')) + depends_on('python@2.7:2,3.4:', type=('build', 'run')) depends_on('py-setuptools@40.8.0:', when='@20.8:', type='build') depends_on('py-setuptools', type='build') + depends_on('py-pyparsing@2.0.2:3.0.4,3.0.6:', when='@21.3:', type=('build', 'run')) + depends_on('py-pyparsing@2.0.2:2', when='@21.1:21.2', type=('build', 'run')) depends_on('py-pyparsing@2.0.2:', type=('build', 'run')) - depends_on('py-six', type=('build', 'run'), when='@:20.7') - depends_on('py-attrs', type=('build', 'run'), when='@19.1') + depends_on('py-six', when='@:20.7', type=('build', 'run')) + depends_on('py-attrs', when='@19.1', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-pandas/package.py b/var/spack/repos/builtin/packages/py-pandas/package.py index 9496908dd4..f592db859b 100644 --- a/var/spack/repos/builtin/packages/py-pandas/package.py +++ b/var/spack/repos/builtin/packages/py-pandas/package.py @@ -14,6 +14,7 @@ class PyPandas(PythonPackage): maintainers = ['adamjstewart'] + version('1.3.5', sha256='1e4285f5de1012de20ca46b188ccf33521bff61ba5c5ebd78b4fb28e5416a9f1') version('1.3.4', sha256='a2aa18d3f0b7d538e21932f637fbfe8518d085238b429e4790a35e1e44a96ffc') version('1.3.3', sha256='272c8cb14aa9793eada6b1ebe81994616e647b5892a370c7135efb2924b701df') version('1.3.2', sha256='cbcb84d63867af3411fa063af3de64902665bb5b3d40b25b2059e40603594e87') @@ -64,6 +65,7 @@ class PyPandas(PythonPackage): depends_on('py-cython@0.29.24:2', type='build', when='@1.3.4:') depends_on('py-setuptools@24.2.0:', type='build') depends_on('py-setuptools@38.6.0:', type='build', when='@1.3:') + depends_on('py-setuptools@51.0.0:', type='build', when='@1.3.2:') depends_on('py-numpy', type=('build', 'run')) # 'NUMPY_IMPORT_ARRAY_RETVAL' was removed in numpy@0.19 depends_on('py-numpy@:1.18', type=('build', 'run'), when='@:0.25') @@ -91,7 +93,7 @@ class PyPandas(PythonPackage): @property def import_modules(self): - modules = super(PyPandas, self).import_modules() + modules = super(PythonPackage, self).import_modules ignored_imports = ["pandas.tests", "pandas.plotting._matplotlib"] diff --git a/var/spack/repos/builtin/packages/py-pandocfilters/package.py b/var/spack/repos/builtin/packages/py-pandocfilters/package.py index 719ac3163f..5f200dfa3f 100644 --- a/var/spack/repos/builtin/packages/py-pandocfilters/package.py +++ b/var/spack/repos/builtin/packages/py-pandocfilters/package.py @@ -12,4 +12,10 @@ class PyPandocfilters(PythonPackage): homepage = "https://github.com/jgm/pandocfilters" pypi = "pandocfilters/pandocfilters-1.4.2.tar.gz" + version('1.5.0', sha256='0b679503337d233b4339a817bfc8c50064e2eff681314376a47cb582305a7a38') version('1.4.2', sha256='b3dd70e169bb5449e6bc6ff96aea89c5eea8c5f6ab5e207fc2f521a2cf4a0da9') + + depends_on('python@2.7:2,3.4:', type=('build', 'run'), when='@1.5.0:') + # Notice: @:1.4 uses distutils and won't build if py-setuptools are present: + # error: option --single-version-externally-managed not recognized + depends_on('py-setuptools', type='build', when='@1.5.0:') diff --git a/var/spack/repos/builtin/packages/py-parmed/package.py b/var/spack/repos/builtin/packages/py-parmed/package.py new file mode 100644 index 0000000000..1eaad013b5 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-parmed/package.py @@ -0,0 +1,21 @@ +# Copyright 2013-2021 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 PyParmed(PythonPackage): + """ParmEd is a general tool for aiding in investigations of + biomolecular systems using popular molecular simulation + packages, like Amber, CHARMM, and OpenMM written in + Python.""" + + homepage = "https://parmed.github.io/ParmEd/html/index.html" + pypi = "ParmEd/ParmEd-3.4.3.tar.gz" + + version('3.4.3', sha256='90afb155e3ffe69230a002922b28968464126d4450059f0bd97ceca679c6627c') + + depends_on('python@2.7:', type=('build', 'run')) + depends_on('py-setuptools', type='build') diff --git a/var/spack/repos/builtin/packages/py-parsimonious/package.py b/var/spack/repos/builtin/packages/py-parsimonious/package.py new file mode 100644 index 0000000000..c46d18de01 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-parsimonious/package.py @@ -0,0 +1,18 @@ +# Copyright 2013-2021 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 PyParsimonious(PythonPackage): + """(Soon to be) the fastest pure-Python PEG parser""" + + homepage = "https://github.com/erikrose/parsimonious" + pypi = "parsimonious/parsimonious-0.8.1.tar.gz" + + version('0.8.1', sha256='3add338892d580e0cb3b1a39e4a1b427ff9f687858fdd61097053742391a9f6b') + + depends_on('py-setuptools', type='build') + depends_on('py-six@1.9.0:', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-parso/package.py b/var/spack/repos/builtin/packages/py-parso/package.py index 07364b0bbb..61518517fb 100644 --- a/var/spack/repos/builtin/packages/py-parso/package.py +++ b/var/spack/repos/builtin/packages/py-parso/package.py @@ -14,6 +14,7 @@ class PyParso(PythonPackage): pypi = "parso/parso-0.6.1.tar.gz" + version('0.8.2', sha256='12b83492c6239ce32ff5eed6d3639d6a536170723c6f3f1506869f1ace413398') version('0.8.1', sha256='8519430ad07087d4c997fda3a7918f7cfa27cb58972a8c89c2a0295a1c940e9e') version('0.7.1', sha256='caba44724b994a8a5e086460bb212abc5a8bc46951bf4a9a1210745953622eb9') version('0.6.1', sha256='56b2105a80e9c4df49de85e125feb6be69f49920e121406f15e7acde6c9dfc57') diff --git a/var/spack/repos/builtin/packages/py-pathlib2/package.py b/var/spack/repos/builtin/packages/py-pathlib2/package.py index c8a2427603..b4055f3c50 100644 --- a/var/spack/repos/builtin/packages/py-pathlib2/package.py +++ b/var/spack/repos/builtin/packages/py-pathlib2/package.py @@ -11,6 +11,7 @@ class PyPathlib2(PythonPackage): pypi = "pathlib2/pathlib2-2.3.2.tar.gz" + version('2.3.6', sha256='7d8bcb5555003cdf4a8d2872c538faa3a0f5d20630cb360e518ca3b981795e5f') version('2.3.3', sha256='25199318e8cc3c25dcb45cbe084cc061051336d5a9ea2a12448d3d8cb748f742') version('2.3.2', sha256='8eb170f8d0d61825e09a95b38be068299ddeda82f35e96c3301a8a5e7604cb83') version('2.1.0', sha256='deb3a960c1d55868dfbcac98432358b92ba89d95029cddd4040db1f27405055c') diff --git a/var/spack/repos/builtin/packages/py-pbr/package.py b/var/spack/repos/builtin/packages/py-pbr/package.py index 09bb49d295..5acc9dc180 100644 --- a/var/spack/repos/builtin/packages/py-pbr/package.py +++ b/var/spack/repos/builtin/packages/py-pbr/package.py @@ -15,6 +15,7 @@ class PyPbr(PythonPackage): # Skip 'pbr.tests' imports import_modules = ['pbr', 'pbr.cmd', 'pbr.hooks'] + version('5.7.0', sha256='4651ca1445e80f2781827305de3d76b3ce53195f2227762684eb08f17bc473b7') version('5.4.3', sha256='2c8e420cd4ed4cec4e7999ee47409e876af575d4c35a45840d59e8b5f3155ab8') version('5.2.1', sha256='93d2dc6ee0c9af4dbc70bc1251d0e545a9910ca8863774761f92716dece400b6') version('3.1.1', sha256='05f61c71aaefc02d8e37c0a3eeb9815ff526ea28b3b76324769e6158d7f95be1') diff --git a/var/spack/repos/builtin/packages/py-pep517/package.py b/var/spack/repos/builtin/packages/py-pep517/package.py new file mode 100644 index 0000000000..8dcd03c1fa --- /dev/null +++ b/var/spack/repos/builtin/packages/py-pep517/package.py @@ -0,0 +1,20 @@ +# Copyright 2013-2021 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 PyPep517(PythonPackage): + """Wrappers to build Python packages using PEP 517 hooks.""" + + homepage = "https://github.com/pypa/pep517" + pypi = "pep517/pep517-0.12.0.tar.gz" + + version('0.12.0', sha256='931378d93d11b298cf511dd634cf5ea4cb249a28ef84160b3247ee9afb4e8ab0') + + depends_on('py-toml', when='^python@:3.5', type=('build', 'run')) + depends_on('py-importlib-metadata', when='^python@:3.7', type=('build', 'run')) + depends_on('py-zipp', when='^python@:3.7', type=('build', 'run')) + depends_on('py-tomli@1.1:', when='^python@3.6:', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-petsc4py/package.py b/var/spack/repos/builtin/packages/py-petsc4py/package.py index 6a27c71a12..86f75c30c1 100644 --- a/var/spack/repos/builtin/packages/py-petsc4py/package.py +++ b/var/spack/repos/builtin/packages/py-petsc4py/package.py @@ -17,6 +17,7 @@ class PyPetsc4py(PythonPackage): maintainers = ['balay'] version('main', branch='main') + version('3.16.2', sha256='906634497ae9c59f2c97e12b935954e5ba95df2e764290c24fff6751b7510b04') version('3.16.1', sha256='c218358217c436947f8fd61f247f73ac65fa29ea3489ad00bef5827b1436b95f') version('3.16.0', sha256='4044accfdc2c80994e80e4e286478d1ba9ac358512d1b74c42e1327eadb0d802') version('3.15.5', sha256='cdbc8a7485960c80565268ae851639f6c620663f245708263a349903dd07e5ae') diff --git a/var/spack/repos/builtin/packages/py-pexpect/package.py b/var/spack/repos/builtin/packages/py-pexpect/package.py index 431219bf4e..36b3ee8d78 100644 --- a/var/spack/repos/builtin/packages/py-pexpect/package.py +++ b/var/spack/repos/builtin/packages/py-pexpect/package.py @@ -10,6 +10,7 @@ class PyPexpect(PythonPackage): """Pexpect allows easy control of interactive console applications.""" pypi = "pexpect/pexpect-4.2.1.tar.gz" + version('4.8.0', sha256='fc65a43959d153d0114afe13997d439c22823a27cefceb5ff35c2178c6784c0c') version('4.7.0', sha256='9e2c1fd0e6ee3a49b28f95d4b33bc389c89b20af6a1255906e90ff1262ce62eb') version('4.6.0', sha256='2a8e88259839571d1251d278476f3eec5db26deb73a70be5ed5dc5435e418aba') version('4.2.1', sha256='3d132465a75b57aa818341c6521392a06cc660feb3988d7f1074f39bd23c9a92') diff --git a/var/spack/repos/builtin/packages/py-pickle5/package.py b/var/spack/repos/builtin/packages/py-pickle5/package.py new file mode 100644 index 0000000000..707b4b569a --- /dev/null +++ b/var/spack/repos/builtin/packages/py-pickle5/package.py @@ -0,0 +1,20 @@ +# Copyright 2013-2021 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 PyPickle5(PythonPackage): + """This package backports all features and APIs added in the pickle module + in Python 3.8.3, including the PEP 574 additions. It should work with Python + 3.5, 3.6 and 3.7.""" + + homepage = "https://github.com/pitrou/pickle5-backport" + pypi = "pickle5/pickle5-0.0.11.tar.gz" + + version('0.0.11', sha256='7e013be68ba7dde1de5a8dbcc241f201dab1126e326715916ce4a26c27919ffc') + + depends_on('python@3.5:', type=('build', 'run')) + depends_on('py-setuptools', type='build') diff --git a/var/spack/repos/builtin/packages/py-picmistandard/package.py b/var/spack/repos/builtin/packages/py-picmistandard/package.py index 7c850b36c1..c5c1fe6b96 100644 --- a/var/spack/repos/builtin/packages/py-picmistandard/package.py +++ b/var/spack/repos/builtin/packages/py-picmistandard/package.py @@ -10,16 +10,26 @@ class PyPicmistandard(PythonPackage): """Standard input format for Particle-In-Cell codes""" homepage = "https://picmi-standard.github.io" - url = "https://github.com/picmi-standard/picmi/archive/refs/tags/0.0.14.tar.gz" git = "https://github.com/picmi-standard/picmi.git" + pypi = 'picmistandard/picmistandard-0.0.18.tar.gz' maintainers = ['ax3l', 'dpgrote', 'RemiLehe'] version('develop', branch='master') - version('0.0.14', sha256='b7eefdae1c43119984226b2df358c86fdeef7495084e47b3575e3d07e790ba30') + version('0.0.18', sha256='68c208c0c54b4786e133bb13eef0dd4824998da4906285987ddee84e6d195e71') + # 0.15 - 0.17 have broken install logic: missing requirements.txt on pypi + version('0.0.16', sha256='b7eefdae1c43119984226b2df358c86fdeef7495084e47b3575e3d07e790ba30', + url='https://github.com/picmi-standard/picmi/archive/refs/tags/0.0.14.tar.gz') + version('0.0.14', sha256='8f83b25b281fc0309a0c4f75c7605afd5fa0ef4df3b3ac115069478c119bc8c3') depends_on('python@3.6:', type=('build', 'run')) - depends_on('py-numpy', type=('build', 'run')) + depends_on('py-numpy@1.15:1', type=('build', 'run')) + depends_on('py-scipy@1.5:1', type=('build', 'run')) depends_on('py-setuptools', type='build') - build_directory = 'PICMI_Python' + @property + def build_directory(self): + if self.spec.satisfies('@develop') or self.spec.satisfies('@0.0.16'): + return 'PICMI_Python' + else: + return './' diff --git a/var/spack/repos/builtin/packages/py-pika/package.py b/var/spack/repos/builtin/packages/py-pika/package.py index 236c81c2c4..236c81c2c4 100755..100644 --- a/var/spack/repos/builtin/packages/py-pika/package.py +++ b/var/spack/repos/builtin/packages/py-pika/package.py diff --git a/var/spack/repos/builtin/packages/py-pillow/package.py b/var/spack/repos/builtin/packages/py-pillow/package.py index 374b7123b4..333c6a3590 100644 --- a/var/spack/repos/builtin/packages/py-pillow/package.py +++ b/var/spack/repos/builtin/packages/py-pillow/package.py @@ -25,13 +25,15 @@ class PyPillowBase(PythonPackage): # Required dependencies # https://pillow.readthedocs.io/en/latest/installation.html#notes - depends_on('python@3.6:3.9', when='@8:', type=('build', 'run')) + depends_on('python@3.7:3.10', when='@9:', type=('build', 'run')) + depends_on('python@3.6:3.10', when='@8.3.2:8.4', type=('build', 'run')) + depends_on('python@3.6:3.9', when='@8:8.3.1', type=('build', 'run')) depends_on('python@3.5:3.8', when='@7.0:7.2', type=('build', 'run')) depends_on('python@2.7:2.8,3.5:3.8', when='@6.2.1:6.2.2', type=('build', 'run')) depends_on('python@2.7:2.8,3.5:3.7', when='@6.0:6.2.0', type=('build', 'run')) depends_on('python@2.7:2.8,3.4:3.7', when='@5.2:5.4', type=('build', 'run')) depends_on('python@2.7:2.8,3.4:3.6', when='@5.0:5.1', type=('build', 'run')) - depends_on('python@2.7:2.8,3.3:3.6', when='@4.0:4', type=('build', 'run')) + depends_on('python@2.7:2.8,3.3:3.6', when='@4.0:4', type=('build', 'run')) depends_on('python@2.6:2.8,3.2:3.5', when='@2:3', type=('build', 'run')) depends_on('python@2.4:2.7', when='@:1', type=('build', 'run')) depends_on('py-setuptools', type='build') @@ -108,6 +110,7 @@ class PyPillow(PyPillowBase): homepage = "https://python-pillow.org/" pypi = "Pillow/Pillow-7.2.0.tar.gz" + version('8.4.0', sha256='b8e2f83c56e141920c39464b852de3719dfbfb6e3c99a2d8da0edf4fb33176ed') version('8.0.0', sha256='59304c67d12394815331eda95ec892bf54ad95e0aa7bc1ccd8e0a4a5a25d4bf3') version('7.2.0', sha256='97f9e7953a77d5a70f49b9a48da7776dc51e9b738151b22dacf101641594a626') version('7.0.0', sha256='4d9ed9a64095e031435af120d3c910148067087541131e82b3e8db302f4c8946') @@ -121,7 +124,10 @@ class PyPillow(PyPillowBase): version('3.0.0', sha256='ad50bef540fe5518a4653c3820452a881b6a042cb0f8bb7657c491c6bd3654bb') for ver in [ - '7.2.0', '7.0.0', '6.2.2', '6.2.1', '6.2.0', '6.0.0', - '5.4.1', '5.1.0', '3.2.0', '3.0.0' + '8.4.0', '8.0.0', + '7.2.0', '7.0.0', + '6.2.2', '6.2.1', '6.2.0', '6.0.0', + '5.4.1', '5.1.0', + '3.2.0', '3.0.0' ]: provides('pil@' + ver, when='@' + ver) diff --git a/var/spack/repos/builtin/packages/py-pkgconfig/package.py b/var/spack/repos/builtin/packages/py-pkgconfig/package.py index 0f2e7171e0..7f3270b63a 100644 --- a/var/spack/repos/builtin/packages/py-pkgconfig/package.py +++ b/var/spack/repos/builtin/packages/py-pkgconfig/package.py @@ -12,11 +12,12 @@ class PyPkgconfig(PythonPackage): homepage = "https://github.com/matze/pkgconfig" pypi = "pkgconfig/pkgconfig-1.2.2.tar.gz" + version('1.5.5', sha256='deb4163ef11f75b520d822d9505c1f462761b4309b1bb713d08689759ea8b899') version('1.5.1', sha256='97bfe3d981bab675d5ea3ef259045d7919c93897db7d3b59d4e8593cba8d354f') version('1.4.0', sha256='048c3b457da7b6f686b647ab10bf09e2250e4c50acfe6f215398a8b5e6fcdb52') version('1.2.2', sha256='3685ba02a9b72654a764b728b559f327e1dbd7dc6ebc310a1bd429666ee202aa') depends_on('python@2.6:2.8,3.3:', type=('build', 'run')) depends_on('python@2.7:2.8,3.3:', when='@1.5:', type=('build', 'run')) - depends_on('py-setuptools', when='@:1.4', type=('build', 'run')) + depends_on('py-setuptools', when='@:1.4,1.5.5:', type=('build', 'run')) depends_on('pkgconfig', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-pkginfo/package.py b/var/spack/repos/builtin/packages/py-pkginfo/package.py index 7d6efa869e..77e0b16a4f 100644 --- a/var/spack/repos/builtin/packages/py-pkginfo/package.py +++ b/var/spack/repos/builtin/packages/py-pkginfo/package.py @@ -12,6 +12,7 @@ class PyPkginfo(PythonPackage): homepage = "https://code.launchpad.net/~tseaver/pkginfo/trunk" pypi = "pkginfo/pkginfo-1.5.0.1.tar.gz" + version('1.7.1', sha256='e7432f81d08adec7297633191bbf0bd47faf13cd8724c3a13250e51d542635bd') version('1.5.0.1', sha256='7424f2c8511c186cd5424bbf31045b77435b37a8d604990b79d4e70d741148bb') depends_on('py-setuptools', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-plac/package.py b/var/spack/repos/builtin/packages/py-plac/package.py index 746e8ead71..0aabec4e89 100644 --- a/var/spack/repos/builtin/packages/py-plac/package.py +++ b/var/spack/repos/builtin/packages/py-plac/package.py @@ -10,6 +10,10 @@ class PyPlac(PythonPackage): homepage = "https://github.com/micheles/plac" pypi = "plac/plac-1.1.3.tar.gz" + # Skip 'plac_tk' imports + import_modules = ['plac', 'plac_ext', 'plac_core'] + + version('1.3.3', sha256='51e332dabc2aed2cd1f038be637d557d116175101535f53eaa7ae854a00f2a74') version('1.1.3', sha256='398cb947c60c4c25e275e1f1dadf027e7096858fb260b8ece3b33bcff90d985f') depends_on('py-setuptools', type='build') diff --git a/var/spack/repos/builtin/packages/py-platformdirs/package.py b/var/spack/repos/builtin/packages/py-platformdirs/package.py new file mode 100644 index 0000000000..e1d0c126f0 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-platformdirs/package.py @@ -0,0 +1,20 @@ +# Copyright 2013-2021 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 PyPlatformdirs(PythonPackage): + """A small Python module for determining appropriate + platform-specific dirs, e.g. a "user data dir" """ + + homepage = "https://github.com/platformdirs/platformdirs" + pypi = "platformdirs/platformdirs-2.4.0.tar.gz" + + version('2.4.0', sha256='367a5e80b3d04d2428ffa76d33f124cf11e8fff2acdaa9b43d545f5c7d661ef2') + + depends_on('python@3.6:', type=('build', 'run')) + depends_on('py-setuptools@44:', type='build') + depends_on('py-setuptools-scm@5:+toml', type='build') diff --git a/var/spack/repos/builtin/packages/py-pluggy/package.py b/var/spack/repos/builtin/packages/py-pluggy/package.py index 7c543bbdd1..1dac0042b1 100644 --- a/var/spack/repos/builtin/packages/py-pluggy/package.py +++ b/var/spack/repos/builtin/packages/py-pluggy/package.py @@ -12,6 +12,7 @@ class PyPluggy(PythonPackage): homepage = "https://github.com/pytest-dev/pluggy" pypi = "pluggy/pluggy-0.13.0.tar.gz" + version('1.0.0', sha256='4224373bacce55f955a878bf9cfa763c1e360858e330072059e10bad68531159') version('0.13.0', sha256='fa5fa1622fa6dd5c030e9cad086fa19ef6a0cf6d7a2d12318e10cb49d6d68f34') version('0.12.0', sha256='0825a152ac059776623854c1543d65a4ad408eb3d33ee114dff91e57ec6ae6fc') version('0.9.0', sha256='19ecf9ce9db2fce065a7a0586e07cfb4ac8614fe96edf628a264b1c70116cf8f') @@ -20,6 +21,7 @@ class PyPluggy(PythonPackage): version('0.6.0', sha256='7f8ae7f5bdf75671a718d2daf0a64b7885f74510bcd98b1a0bb420eb9a9d0cff') depends_on('python@2.7:2.8,3.4:', type=('build', 'run')) + depends_on('python@3.6:', type=('build', 'run'), when='@1.0.0:') depends_on('py-setuptools', type='build') depends_on('py-setuptools-scm', type='build') diff --git a/var/spack/repos/builtin/packages/py-ply/package.py b/var/spack/repos/builtin/packages/py-ply/package.py index 2c1b064d76..1bb6f9947e 100644 --- a/var/spack/repos/builtin/packages/py-ply/package.py +++ b/var/spack/repos/builtin/packages/py-ply/package.py @@ -7,9 +7,12 @@ from spack import * class PyPly(PythonPackage): - """PLY is nothing more than a straightforward lex/yacc implementation.""" + """Python Lex & Yacc.""" + homepage = "http://www.dabeaz.com/ply" - url = "https://www.dabeaz.com/ply/ply-3.11.tar.gz" + pypi = "ply/ply-3.11.tar.gz" version('3.11', sha256='00c7c1aaa88358b9c765b6d3000c6eec0ba42abca5351b095321aef446081da3') version('3.8', sha256='e7d1bdff026beb159c9942f7a17e102c375638d9478a7ecd4cc0c76afd8de0b8') + + depends_on('py-setuptools', type='build') diff --git a/var/spack/repos/builtin/packages/py-pmw-patched/package.py b/var/spack/repos/builtin/packages/py-pmw-patched/package.py new file mode 100644 index 0000000000..f17bf63452 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-pmw-patched/package.py @@ -0,0 +1,14 @@ +# Copyright 2013-2021 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) + + +class PyPmwPatched(PythonPackage): + """Schrodinger's Fork of Python megawidgets with essential patches applied. + Pmw is a toolkit for building high-level compound widgets, or + megawidgets, constructed using other widgets as component parts.""" + homepage = "https://github.com/schrodinger/pmw-patched" + git = "https://github.com/schrodinger/pmw-patched" + + version('02-10-2020', commit='8bedfc8747e7757c1048bc5e11899d1163717a43') diff --git a/var/spack/repos/builtin/packages/py-pooch/package.py b/var/spack/repos/builtin/packages/py-pooch/package.py index 3bdb51c1b6..07336a3751 100644 --- a/var/spack/repos/builtin/packages/py-pooch/package.py +++ b/var/spack/repos/builtin/packages/py-pooch/package.py @@ -14,10 +14,12 @@ class PyPooch(PythonPackage): homepage = "https://github.com/fatiando/pooch" pypi = "pooch/pooch-1.3.0.tar.gz" + version('1.5.2', sha256='5969b2f1defbdc405df932767e05e0b536e2771c27f1f95d7f260bc99bf13581') version('1.3.0', sha256='30d448e825904e2d763bbbe418831a788813c32f636b21c8d60ee5f474532898') depends_on('python@3.6:', type=('build', 'run')) depends_on('py-setuptools', type='build') + depends_on('py-setuptools-scm', when='@1.4:', type='build') depends_on('py-requests', type=('build', 'run')) depends_on('py-packaging', type=('build', 'run')) depends_on('py-appdirs', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-prettytable/package.py b/var/spack/repos/builtin/packages/py-prettytable/package.py index cad349dc3e..21ca40def5 100644 --- a/var/spack/repos/builtin/packages/py-prettytable/package.py +++ b/var/spack/repos/builtin/packages/py-prettytable/package.py @@ -12,9 +12,14 @@ class PyPrettytable(PythonPackage): appealing ASCII tables. """ - homepage = "https://code.google.com/archive/p/prettytable/" + homepage = "https://github.com/jazzband/prettytable" pypi = "prettytable/prettytable-0.7.2.tar.gz" + version('2.4.0', sha256='18e56447f636b447096977d468849c1e2d3cfa0af8e7b5acfcf83a64790c0aca') version('0.7.2', sha256='2d5460dc9db74a32bcc8f9f67de68b2c4f4d2f01fa3bd518764c69156d9cacd9') depends_on("py-setuptools", type='build') + depends_on("py-wcwidth", type=('build', 'run'), when='@2.4.0:') + depends_on("py-importlib-metadata", type=('build', 'run'), when='@2.4.0: ^python@:3.7') + depends_on("py-setuptools-scm", type='build', when='@2.4.0:') + depends_on("python@3.6:", type=('build', 'run'), when='@2.4.0:') diff --git a/var/spack/repos/builtin/packages/py-progressbar2/package.py b/var/spack/repos/builtin/packages/py-progressbar2/package.py index b64ab06dff..70fc7e58ff 100644 --- a/var/spack/repos/builtin/packages/py-progressbar2/package.py +++ b/var/spack/repos/builtin/packages/py-progressbar2/package.py @@ -13,6 +13,7 @@ class PyProgressbar2(PythonPackage): homepage = "https://github.com/WoLpH/python-progressbar" pypi = "progressbar2/progressbar2-3.50.1.tar.gz" + version('3.55.0', sha256='86835d1f1a9317ab41aeb1da5e4184975e2306586839d66daf63067c102f8f04') version('3.50.1', sha256='2c21c14482016162852c8265da03886c2b4dea6f84e5a817ad9b39f6bd82a772') version('3.39.3', sha256='8e5b5419e04193bb7c3fea71579937bbbcd64c26472b929718c2fe7ec420fe39') diff --git a/var/spack/repos/builtin/packages/py-prometheus-client/package.py b/var/spack/repos/builtin/packages/py-prometheus-client/package.py index 9bd8df3a64..160a5c2c09 100644 --- a/var/spack/repos/builtin/packages/py-prometheus-client/package.py +++ b/var/spack/repos/builtin/packages/py-prometheus-client/package.py @@ -11,6 +11,7 @@ class PyPrometheusClient(PythonPackage): pypi = "prometheus_client/prometheus_client-0.7.1.tar.gz" + version('0.12.0', sha256='1b12ba48cee33b9b0b9de64a1047cbd3c5f2d0ab6ebcead7ddda613a750ec3c5') version('0.7.1', sha256='71cd24a2b3eb335cb800c7159f423df1bd4dcd5171b234be15e3f31ec9f622da') version('0.7.0', sha256='ee0c90350595e4a9f36591f291e6f9933246ea67d7cd7d1d6139a9781b14eaae') version('0.5.0', sha256='e8c11ff5ca53de6c3d91e1510500611cafd1d247a937ec6c588a0a7cc3bef93c') @@ -18,7 +19,11 @@ class PyPrometheusClient(PythonPackage): variant('twisted', default=False, description='Expose metrics as a twisted resource') depends_on('py-setuptools', type='build') + # Notice: prometheus_client/twisted/_exposition.py imports 'twisted.web.wsgi' + # which was not ported to Python 3 until twisted 16.0.0 depends_on('py-twisted', type=('build', 'run'), when='+twisted') + depends_on('py-twisted@16:', type=('build', 'run'), when='@0.12.0: +twisted ^python@3:') + depends_on('python@2.7:2,3.4:', type=('build', 'run'), when='@0.12.0:') @property def import_modules(self): diff --git a/var/spack/repos/builtin/packages/py-prompt-toolkit/package.py b/var/spack/repos/builtin/packages/py-prompt-toolkit/package.py index 7432627758..3efd6cd5b3 100644 --- a/var/spack/repos/builtin/packages/py-prompt-toolkit/package.py +++ b/var/spack/repos/builtin/packages/py-prompt-toolkit/package.py @@ -26,6 +26,7 @@ class PyPromptToolkit(PythonPackage): 'prompt_toolkit.clipboard' ] + version('3.0.24', sha256='1bb05628c7d87b645974a1bad3f17612be0c29fa39af9f7688030163f680bad6') version('3.0.17', sha256='9397a7162cf45449147ad6042fa37983a081b8a73363a5253dd4072666333137') version('3.0.16', sha256='0fa02fa80363844a4ab4b8d6891f62dd0645ba672723130423ca4037b80c1974') version('3.0.7', sha256='822f4605f28f7d2ba6b0b09a31e25e140871e96364d1d377667b547bb3bf4489') @@ -34,7 +35,8 @@ class PyPromptToolkit(PythonPackage): version('1.0.16', sha256='c1cedd626e08b8ee830ee65897de754113ff3f3035880030c08b01674d85c5b4') version('1.0.9', sha256='cd6523b36adc174cc10d54b1193eb626b4268609ff6ea92c15bcf1996609599c') - depends_on('python@3.6.1:', when='@3:', type=('build', 'run')) + depends_on('python@3.6.2:', when='@3.0.24:', type=('build', 'run')) + depends_on('python@3.6.1:', when='@3:3.0.17', type=('build', 'run')) depends_on('python@2.6:2.8,3.3:', when='@:2', type=('build', 'run')) depends_on('py-setuptools', type='build') depends_on('py-six@1.9.0:', when='@:2', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-prwlock/package.py b/var/spack/repos/builtin/packages/py-prwlock/package.py new file mode 100644 index 0000000000..6f7ed7c41c --- /dev/null +++ b/var/spack/repos/builtin/packages/py-prwlock/package.py @@ -0,0 +1,17 @@ +# Copyright 2013-2021 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 PyPrwlock(PythonPackage): + """Native process-shared rwlock support for Python""" + + homepage = "https://github.com/renatolfc/prwlock" + pypi = "prwlock/prwlock-0.4.1.tar.gz" + + version('0.4.1', sha256='a2fa773cb877207ae5b54c7cf5d224b0215c9f7b9ef16a88d33eadc5c9e1466e') + + depends_on('py-setuptools', type='build') diff --git a/var/spack/repos/builtin/packages/py-py/package.py b/var/spack/repos/builtin/packages/py-py/package.py index aa7ff323a5..9c398085a8 100644 --- a/var/spack/repos/builtin/packages/py-py/package.py +++ b/var/spack/repos/builtin/packages/py-py/package.py @@ -9,9 +9,10 @@ from spack import * class PyPy(PythonPackage): """Library with cross-python path, ini-parsing, io, code, log facilities""" - homepage = "https://pylib.readthedocs.io/en/latest/" + homepage = "https://py.readthedocs.io/en/latest/" pypi = "py/py-1.8.0.tar.gz" + version('1.11.0', sha256='51c75c4126074b472f746a24399ad32f6053d1b34b68d2fa41e558e6f4a98719') version('1.9.0', sha256='9ca6883ce56b4e8da7e79ac18787889fa5206c79dcc67fb065376cd2fe03f342') version('1.8.2', sha256='f3b3a4c36512a4c4f024041ab51866f11761cc169670204b235f6b20523d4e6b') version('1.8.0', sha256='dc639b046a6e2cff5bbe40194ad65936d6ba360b52b3c3fe1d08a82dd50b5e53') @@ -21,6 +22,8 @@ class PyPy(PythonPackage): version('1.4.31', sha256='a6501963c725fc2554dabfece8ae9a8fb5e149c0ac0a42fd2b02c5c1c57fc114') depends_on('python@2.7:2.8,3.4:', type=('build', 'run')) + depends_on('python@2.7:2.8,3.5:', type=('build', 'run'), when='@1.11.0:') depends_on('py-setuptools', type='build') depends_on('py-setuptools-scm', type='build') + depends_on('py-setuptools-scm+toml', type='build', when='@1.11.0:') diff --git a/var/spack/repos/builtin/packages/py-pyaml/package.py b/var/spack/repos/builtin/packages/py-pyaml/package.py new file mode 100644 index 0000000000..148c42f1f2 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-pyaml/package.py @@ -0,0 +1,22 @@ +# Copyright 2013-2021 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 PyPyaml(PythonPackage): + """PyYAML-based python module to produce pretty and readable + YAML-serialized data.""" + + maintainers = ['Kerilk', 'liuyangzhuan'] + + homepage = "https://github.com/mk-fg/pretty-yaml" + pypi = "pyaml/pyaml-21.8.3.tar.gz" + + version('21.8.3', sha256='a1636d63c476328a07213d0b7111bb63570f1ab8a3eddf60522630250c23d975') + + depends_on('python@2.7:2,3.5:', type=('build', 'run')) + depends_on('py-setuptools', type='build') + depends_on('py-pyyaml', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-pyasn1-modules/package.py b/var/spack/repos/builtin/packages/py-pyasn1-modules/package.py index 6fc74662ff..cc338e4cb1 100644 --- a/var/spack/repos/builtin/packages/py-pyasn1-modules/package.py +++ b/var/spack/repos/builtin/packages/py-pyasn1-modules/package.py @@ -14,10 +14,11 @@ class PyPyasn1Modules(PythonPackage): homepage = "https://github.com/etingof/pyasn1-modules" pypi = "pyasn1-modules/pyasn1-modules-0.2.6.tar.gz" + version('0.2.8', sha256='905f84c712230b2c592c19470d3ca8d552de726050d1d1716282a1f6146be65e') version('0.2.6', sha256='43c17a83c155229839cc5c6b868e8d0c6041dba149789b6d6e28801c64821722') version('0.2.5', sha256='ef721f68f7951fab9b0404d42590f479e30d9005daccb1699b0a51bb4177db96') depends_on('python@2.4:', type=('build', 'run')) depends_on('py-setuptools', type='build') - depends_on('py-pyasn1@0.4.6:0.4', type=('build', 'run'), when='@0.2.6') + depends_on('py-pyasn1@0.4.6:0.4', type=('build', 'run'), when='@0.2.6:') depends_on('py-pyasn1@0.4.1:0.4', type=('build', 'run'), when='@0.2.5') diff --git a/var/spack/repos/builtin/packages/py-pyasn1/package.py b/var/spack/repos/builtin/packages/py-pyasn1/package.py index 7b982c014d..ae25015893 100644 --- a/var/spack/repos/builtin/packages/py-pyasn1/package.py +++ b/var/spack/repos/builtin/packages/py-pyasn1/package.py @@ -14,6 +14,7 @@ class PyPyasn1(PythonPackage): homepage = "https://github.com/etingof/pyasn1" pypi = "pyasn1/pyasn1-0.4.6.tar.gz" + version('0.4.8', sha256='aef77c9fb94a3ac588e87841208bdec464471d9871bd5050a287cc9a475cd0ba') version('0.4.6', sha256='b773d5c9196ffbc3a1e13bdf909d446cad80a039aa3340bcad72f395b76ebc86') version('0.4.5', sha256='da2420fe13a9452d8ae97a0e478adde1dee153b11ba832a95b223a2ba01c10f7') version('0.2.3', sha256='738c4ebd88a718e700ee35c8d129acce2286542daa80a82823a7073644f706ad') diff --git a/var/spack/repos/builtin/packages/py-pybids/package.py b/var/spack/repos/builtin/packages/py-pybids/package.py index cffbc78446..f1a3a28d4f 100644 --- a/var/spack/repos/builtin/packages/py-pybids/package.py +++ b/var/spack/repos/builtin/packages/py-pybids/package.py @@ -10,12 +10,14 @@ class PyPybids(PythonPackage): """bids: interface with datasets conforming to BIDS""" homepage = "https://github.com/bids-standard/pybids" - pypi = "pybids/pybids-0.13.1.tar.gz" + pypi = "pybids/pybids-0.13.1.tar.gz" + version('0.14.0', sha256='73c4d03aad333f2a7cb4405abe96f55a33cffa4b5a2d23fad6ac5767c45562ef') version('0.13.2', sha256='9692013af3b86b096b5423b88179c6c9b604baff5a6b6f89ba5f40429feb7a3e') version('0.13.1', sha256='c920e1557e1dae8b671625d70cafbdc28437ba2822b2db9da4c2587a7625e3ba') version('0.9.5', sha256='0e8f8466067ff3023f53661c390c02702fcd5fe712bdd5bf167ffb0c2b920430') + depends_on('python@3.6:', when='@0.14:', type=('build', 'run')) depends_on('python@3.5:', when='@0.10:', type=('build', 'run')) depends_on('python@2.7:2,3.5:', type=('build', 'run')) depends_on('py-setuptools@30.3.0:', type='build') @@ -23,9 +25,11 @@ class PyPybids(PythonPackage): depends_on('py-scipy', type=('build', 'run')) depends_on('py-nibabel@2.1:', type=('build', 'run')) depends_on('py-pandas@0.23:', type=('build', 'run')) - depends_on('py-patsy', type=('build', 'run')) + depends_on('py-formulaic@0.2.4:0.2', when='@0.14:', type=('build', 'run')) depends_on('py-sqlalchemy@:1.3', when='@0.12.4:', type=('build', 'run')) depends_on('py-sqlalchemy', type=('build', 'run')) depends_on('py-bids-validator', type=('build', 'run')) depends_on('py-num2words', type=('build', 'run')) depends_on('py-click', when='@0.12.1:', type=('build', 'run')) + + depends_on('py-patsy', when='@:0.13', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-pybind11/package.py b/var/spack/repos/builtin/packages/py-pybind11/package.py index a1ebcec3da..43359ee039 100644 --- a/var/spack/repos/builtin/packages/py-pybind11/package.py +++ b/var/spack/repos/builtin/packages/py-pybind11/package.py @@ -45,6 +45,7 @@ class PyPybind11(CMakePackage, PythonPackage): depends_on('py-setuptools', type='build') depends_on('py-pytest', type='test') depends_on('python@2.7:2.8,3.5:', type=('build', 'run')) + depends_on('cmake@3.13:', type='build') # compiler support conflicts('%gcc@:4.7') diff --git a/var/spack/repos/builtin/packages/py-pybrain/package.py b/var/spack/repos/builtin/packages/py-pybrain/package.py new file mode 100644 index 0000000000..f102e79246 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-pybrain/package.py @@ -0,0 +1,20 @@ +# Copyright 2013-2021 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 PyPybrain(PythonPackage): + """PyBrain is the Swiss army knife for neural networking.""" + + homepage = "http://pybrain.org/" + + url = "https://github.com/pybrain/pybrain/archive/refs/tags/0.3.3.tar.gz" + git = "https://github.com/pybrain/pybrain.git" + + version('0.3.3.post', commit='dcdf32b') + + depends_on('py-setuptools', type='build') + depends_on('py-scipy', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-pycortex/package.py b/var/spack/repos/builtin/packages/py-pycortex/package.py new file mode 100644 index 0000000000..158c600114 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-pycortex/package.py @@ -0,0 +1,53 @@ +# Copyright 2013-2021 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 PyPycortex(PythonPackage): + """Python Cortical mapping software for fMRI data.""" + + # When pycortex is started it creates a user config file (on linux located + # in ~/.config/pycortex) which can be problematic when reinstalling a newer + # version with spack due to hardscoded absolute paths of the pycortex module + + homepage = "https://github.com/gallantlab/pycortex" + pypi = "pycortex/pycortex-1.2.2.tar.gz" + + version('1.2.2', sha256='ac46ed6a1dc727c3126c2b5d7916fc0ac21a6510c32a5edcd3b8cfb7b2128414') + + depends_on('py-setuptools', type='build') + depends_on('py-cython', type='build') + depends_on('py-future', type=('build', 'run')) + depends_on('py-numpy', type=('build', 'run')) + depends_on('py-scipy', type=('build', 'run')) + depends_on('py-tornado@4.3:', type=('build', 'run')) + depends_on('py-shapely', type=('build', 'run')) + depends_on('py-lxml', type=('build', 'run')) + depends_on('py-html5lib', type=('build', 'run')) + depends_on('py-h5py', type=('build', 'run')) + depends_on('py-numexpr', type=('build', 'run')) + depends_on('py-cython', type=('build', 'run')) # is in install_requires + depends_on('py-matplotlib', type=('build', 'run')) + depends_on('pil', type=('build', 'run')) + depends_on('py-nibabel', type=('build', 'run')) + depends_on('py-networkx@2.1:', type=('build', 'run')) + depends_on('py-imageio', type=('build', 'run')) + depends_on('py-wget', type=('build', 'run')) + + # inkscape is not in spack + # TODO remove this patch and add inkscape dependency once it is in + def patch(self): + # remove inkscape dependency + filter_file('from .testing_utils import INKSCAPE_VERSION', '', + 'cortex/utils.py', + string=True) + filter_file('open_inkscape=True', 'open_inkscape=False', + 'cortex/utils.py', + string=True) + filter_file('from .testing_utils import INKSCAPE_VERSION', + 'INKSCAPE_VERSION = None', + 'cortex/svgoverlay.py', + string=True) diff --git a/var/spack/repos/builtin/packages/py-pycuda/package.py b/var/spack/repos/builtin/packages/py-pycuda/package.py index 34da30d1dd..c26e6afb20 100644 --- a/var/spack/repos/builtin/packages/py-pycuda/package.py +++ b/var/spack/repos/builtin/packages/py-pycuda/package.py @@ -14,6 +14,7 @@ class PyPycuda(PythonPackage): homepage = "https://mathema.tician.de/software/pycuda/" pypi = "pycuda/pycuda-2019.1.2.tar.gz" + version('2021.1', sha256='ab87312d0fc349d9c17294a087bb9615cffcf966ad7b115f5b051008a48dd6ed') version('2020.1', sha256='effa3b99b55af67f3afba9b0d1b64b4a0add4dd6a33bdd6786df1aa4cc8761a5') version('2019.1.2', sha256='ada56ce98a41f9f95fe18809f38afbae473a5c62d346cfa126a2d5477f24cc8a') version('2016.1.2', sha256='a7dbdac7e2f0c0d2ad98f5f281d5a9d29d6673b3c20210e261b96e9a2d0b6e37') @@ -36,8 +37,8 @@ class PyPycuda(PythonPackage): depends_on('python@3.6:3', type=('build', 'run'), when='@2020.1:') depends_on('py-numpy@1.6:', type=('build', 'run')) depends_on('py-pytools@2011.2:', type=('build', 'run')) - depends_on('py-six', type='run') - depends_on('py-decorator@3.2.0:', type=('build', 'run')) + depends_on('py-six', type='run', when='@:2020.1') + depends_on('py-decorator@3.2.0:', type=('build', 'run'), when='@:2020.1') depends_on('py-appdirs@1.4.0:', type=('build', 'run')) depends_on('py-mako', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-pycurl/package.py b/var/spack/repos/builtin/packages/py-pycurl/package.py index b82974139b..7471808456 100644 --- a/var/spack/repos/builtin/packages/py-pycurl/package.py +++ b/var/spack/repos/builtin/packages/py-pycurl/package.py @@ -13,7 +13,10 @@ class PyPycurl(PythonPackage): homepage = "http://pycurl.io/" pypi = "pycurl/pycurl-7.43.0.tar.gz" + version('7.44.1', sha256='5bcef4d988b74b99653602101e17d8401338d596b9234d263c728a0c3df003e8') version('7.43.0', sha256='aa975c19b79b6aa6c0518c0cc2ae33528900478f0b500531dbcdbf05beec584c') depends_on('python@2.6:') + depends_on('python@3.5:', when='@7.44.1:') + depends_on('py-setuptools', when='@7.44.1:', type='build') depends_on('curl@7.19.0:') diff --git a/var/spack/repos/builtin/packages/py-pygdal/package.py b/var/spack/repos/builtin/packages/py-pygdal/package.py index 97d91b4f14..97eb636f41 100644 --- a/var/spack/repos/builtin/packages/py-pygdal/package.py +++ b/var/spack/repos/builtin/packages/py-pygdal/package.py @@ -27,8 +27,6 @@ class PyPygdal(PythonPackage): version('2.4.2.5', sha256='73386683c0b10ab43b6d64257fca2ba812f53ec61b268de8811565fd9ae9bacd') version('2.4.1.6', sha256='5d1af98ad09f59e34e3b332cf20630b532b33c7120295aaaabbccebf58a11aa4') version('2.4.0.6', sha256='728d11f3ecae0cd3493cd27dab599a0b6184f5504cc172d49400d88ea2b24a9c') - version('1.11.5.3', sha256='746d13b73a284446a1b604772f869789eabfe6e69dee463f537da27845b29fa7') - version('1.11.4.3', sha256='99d4b0c94d57ae50592924faaa65cc6a0c0892d83764e9f24ef9270c3a4b111a') depends_on('python@3.6:', when='@3.3:', type='build') depends_on('py-setuptools', type='build') @@ -41,5 +39,3 @@ class PyPygdal(PythonPackage): depends_on('gdal@2.4.2', type=('build', 'link', 'run'), when='@2.4.2.5') depends_on('gdal@2.4.1', type=('build', 'link', 'run'), when='@2.4.1.6') depends_on('gdal@2.4.0', type=('build', 'link', 'run'), when='@2.4.0.6') - depends_on('gdal@1.11.5', type=('build', 'link', 'run'), when='@1.11.5.3') - depends_on('gdal@1.11.4', type=('build', 'link', 'run'), when='@1.11.4.3') diff --git a/var/spack/repos/builtin/packages/py-pygraphviz/package.py b/var/spack/repos/builtin/packages/py-pygraphviz/package.py new file mode 100644 index 0000000000..072d36aa1f --- /dev/null +++ b/var/spack/repos/builtin/packages/py-pygraphviz/package.py @@ -0,0 +1,21 @@ +# Copyright 2013-2021 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 PyPygraphviz(PythonPackage): + """Python interface to Graphviz""" + + homepage = "https://pygraphviz.github.io/" + pypi = "pygraphviz/pygraphviz-1.7.zip" + + maintainers = ['haralmha'] + + version('1.7', sha256='a7bec6609f37cf1e64898c59f075afd659106cf9356c5f387cecaa2e0cdb2304') + + depends_on('python@3.7:', type=('build', 'run')) + depends_on('py-setuptools', type='build') + depends_on('graphviz') diff --git a/var/spack/repos/builtin/packages/py-pylint/package.py b/var/spack/repos/builtin/packages/py-pylint/package.py index d474418ae2..f0fd2fefd3 100644 --- a/var/spack/repos/builtin/packages/py-pylint/package.py +++ b/var/spack/repos/builtin/packages/py-pylint/package.py @@ -11,6 +11,12 @@ class PyPylint(PythonPackage): pypi = "pylint/pylint-1.6.5.tar.gz" + import_modules = ['pylint', 'pylint.lint', 'pylint.extensions', + 'pylint.config', 'pylint.checkers', 'pylint.checkers.refactoring', + 'pylint.message', 'pylint.utils', 'pylint.pyreverse', + 'pylint.reporters', 'pylint.reporters.ureports'] + + version('2.11.1', sha256='2c9843fff1a88ca0ad98a256806c82c5a8f86086e7ccbdb93297d86c3f90c436') version('2.8.2', sha256='586d8fa9b1891f4b725f587ef267abe2a1bad89d6b184520c7f07a253dd6e217') version('2.3.1', sha256='723e3db49555abaf9bf79dc474c6b9e2935ad82230b10c1138a71ea41ac0fff1') version('2.3.0', sha256='ee80c7af4f127b2a480d83010c9f0e97beb8eaa652b78c2837d3ed30b12e1182') @@ -30,7 +36,8 @@ class PyPylint(PythonPackage): depends_on('py-astroid@1.6:1.9', type=('build', 'run'), when='@1.9.4') depends_on('py-astroid@2.0:', type=('build', 'run'), when='@2.2.0:') depends_on('py-astroid@2.2.0:2', type=('build', 'run'), when='@2.3.0:2.7') - depends_on('py-astroid@2.5.6:2.6', type=('build', 'run'), when='@2.8.0:') + depends_on('py-astroid@2.5.6:2.6', type=('build', 'run'), when='@2.8.0:2.10') + depends_on('py-astroid@2.8.0:2.8', type=('build', 'run'), when='@2.11.1:') depends_on('py-backports-functools-lru-cache', when='^python@:2.8', type=('build', 'run')) depends_on('py-configparser', when='^python@:2.8', type=('build', 'run')) @@ -46,3 +53,5 @@ class PyPylint(PythonPackage): depends_on('py-singledispatch', when='^python@:3.3', type=('build', 'run')) depends_on('py-six', type=('build', 'run'), when='@1:2.3.1') depends_on('py-toml@0.7.1:', type=('build', 'run'), when='@2.8.2:') + depends_on('py-platformdirs@2.2.0:', type=('build', 'run'), when='@2.11.1:') + depends_on('py-typing-extensions@3.10.0:', type=('build', 'run'), when='@2.11.1: ^python@:3.9') diff --git a/var/spack/repos/builtin/packages/py-pymol/package.py b/var/spack/repos/builtin/packages/py-pymol/package.py index 557caf7692..f62e0c76ab 100644 --- a/var/spack/repos/builtin/packages/py-pymol/package.py +++ b/var/spack/repos/builtin/packages/py-pymol/package.py @@ -15,29 +15,43 @@ class PyPymol(PythonPackage): homepage = "https://pymol.org" url = "https://github.com/schrodinger/pymol-open-source/archive/v2.4.0.tar.gz" + version('2.5.0', sha256='aa828bf5719bd9a14510118a93182a6e0cadc03a574ba1e327e1e9780a0e80b3') version('2.4.0', sha256='5ede4ce2e8f53713c5ee64f5905b2d29bf01e4391da7e536ce8909d6b9116581') version('2.3.0', sha256='62aa21fafd1db805c876f89466e47513809f8198395e1f00a5f5cc40d6f40ed0') - depends_on('python+tkinter', type=('build', 'run')) - depends_on('freetype', type=('build', 'run')) - depends_on('glew', type=('build')) - depends_on('glm', type=('build')) - depends_on('py-numpy', type=('build', 'run')) - depends_on('tcsh', type=('build', 'run')) + depends_on('python+tkinter@2.7:', type=('build', 'run'), when='@2.3.0:2.4.0') + depends_on('python+tkinter@3.6:', type=('build', 'run'), when='@2.5.0:') + depends_on('gl') + depends_on('glew') + depends_on('libpng') + depends_on('freetype') + depends_on('glm') + depends_on('libmmtf-cpp') + depends_on('msgpack-c@2.1.5:') + depends_on('netcdf-cxx4') + depends_on('libxml2') + depends_on('py-pmw-patched', type=('build', 'run')) depends_on('py-pyqt5', type=('build', 'run')) - depends_on('py-pmw', type=('build', 'run')) - depends_on('libmmtf-cpp', type=('build', 'run', 'link')) - depends_on('msgpack-c', type=('build', 'run')) - depends_on('libpng@1.5.13', type=('build', 'run')) - - def setup_build_environment(self, env): - include = [] - library = [] - for dep in self.spec.dependencies(deptype='link'): - query = self.spec[dep.name] - include.extend(query.headers.directories) - - env.set('CPATH', ':'.join(include)) - env.set('LIBRARY_PATH', ':'.join(library)) - env.set('PREFIX_PATH', self.spec['libpng'].prefix) - env.prepend_path('PREFIX_PATH', self.spec['py-pyqt5'].prefix) + depends_on('py-numpy', type=('build', 'run')) + + def install_args(self, spec, prefix): + args = super(PyPymol, self).install_args(spec, prefix) + args.append('--no-launcher') + return args + + @run_after('install') + def install_launcher(self): + binpath = self.prefix.bin + mkdirp(self.prefix.bin) + fname = join_path(binpath, 'pymol') + script = join_path(self.prefix, + self.spec['python'].package.site_packages_dir, + 'pymol', + '__init__.py') + + shebang = '#!/bin/sh\n' + fdata = 'exec {0} {1} \"$@\"'.format(self.spec['python'].command, + script) + with open(fname, 'w') as new: + new.write(shebang + fdata) + set_executable(fname) diff --git a/var/spack/repos/builtin/packages/py-pymongo/package.py b/var/spack/repos/builtin/packages/py-pymongo/package.py index 5804ffc1be..5d96981b42 100644 --- a/var/spack/repos/builtin/packages/py-pymongo/package.py +++ b/var/spack/repos/builtin/packages/py-pymongo/package.py @@ -17,6 +17,7 @@ class PyPymongo(PythonPackage): pypi = "pymongo/pymongo-3.9.0.tar.gz" + version('3.12.1', sha256='704879b6a54c45ad76cea7c6789c1ae7185050acea7afd15b58318fa1932ed45') version('3.9.0', sha256='4249c6ba45587b959292a727532826c5032d59171f923f7f823788f413c2a5a3') version('3.6.0', sha256='c6de26d1e171cdc449745b82f1addbc873d105b8e7335097da991c0fc664a4a8') version('3.3.0', sha256='3d45302fc2622fabf34356ba274c69df41285bac71bbd229f1587283b851b91e') diff --git a/var/spack/repos/builtin/packages/py-pynisher/package.py b/var/spack/repos/builtin/packages/py-pynisher/package.py new file mode 100644 index 0000000000..2892b1fa77 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-pynisher/package.py @@ -0,0 +1,20 @@ +# Copyright 2013-2021 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 PyPynisher(PythonPackage): + """A small Python library to limit the resources used by a + function by executing it inside a subprocess.""" + + homepage = "https://github.com/automl/pynisher" + pypi = "pynisher/pynisher-0.6.4.tar.gz" + + version('0.6.4', sha256='111d91aad471375c0509a912415ff90053ef909100facf412511383af107c124') + + depends_on('python@3.6:', type=('build', 'run')) + depends_on('py-setuptools', type='build') + depends_on('py-psutil', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-pyparsing/package.py b/var/spack/repos/builtin/packages/py-pyparsing/package.py index 76ad6fb0eb..c819e3d384 100644 --- a/var/spack/repos/builtin/packages/py-pyparsing/package.py +++ b/var/spack/repos/builtin/packages/py-pyparsing/package.py @@ -11,6 +11,7 @@ class PyPyparsing(PythonPackage): homepage = "https://pyparsing-docs.readthedocs.io/en/latest/" pypi = "pyparsing/pyparsing-2.4.2.tar.gz" + version('3.0.6', sha256='d9bdec0013ef1eb5a84ab39a3b3868911598afa494f5faa038647101504e2b81') version('2.4.7', sha256='c203ec8783bf771a155b207279b9bccb8dea02d8f0c9e5f8ead507bc3246ecc1') version('2.4.2', sha256='6f98a7b9397e206d78cc01df10131398f1c8b8510a2f4d97d9abd82e1aacdd80') version('2.4.0', sha256='1873c03321fc118f4e9746baf201ff990ceb915f433f23b395f5580d1840cb2a') @@ -19,11 +20,8 @@ class PyPyparsing(PythonPackage): version('2.1.10', sha256='811c3e7b0031021137fc83e051795025fcb98674d07eb8fe922ba4de53d39188') version('2.0.3', sha256='06e729e1cbf5274703b1f47b6135ed8335999d547f9d8cf048b210fb8ebf844f') - patch('setuptools-import.patch', when='@:2.1.10') - + depends_on('python@3.6:', when='@3:', type=('build', 'run')) depends_on('python@2.6:2.8,3.3:', type=('build', 'run')) - # Newer versions of setuptools require pyparsing. Although setuptools is an - # optional dependency of pyparsing, if it is not found, setup.py will - # fallback on distutils.core instead. Don't add a setuptools dependency - # or we won't be able to bootstrap setuptools. - depends_on('py-setuptools', type='build', when='@2.3.1:') + depends_on('py-setuptools', when='@2.1:', type='build') + + import_modules = ['pyparsing'] diff --git a/var/spack/repos/builtin/packages/py-pyparsing/setuptools-import.patch b/var/spack/repos/builtin/packages/py-pyparsing/setuptools-import.patch deleted file mode 100644 index a4ba828c23..0000000000 --- a/var/spack/repos/builtin/packages/py-pyparsing/setuptools-import.patch +++ /dev/null @@ -1,20 +0,0 @@ -diff --git a/setup.py b/setup.py -index 82061c6..ff342af 100644 ---- a/setup.py -+++ b/setup.py -@@ -1,7 +1,13 @@ - #!/usr/bin/env python
-
- """Setup script for the pyparsing module distribution."""
--from setuptools import setup
-+
-+# Setuptools depends on pyparsing (via packaging) as of version 34, so allow
-+# installing without it to avoid bootstrap problems.
-+try:
-+ from setuptools import setup
-+except ImportError:
-+ from distutils.core import setup
-
- import sys
- import os
-
diff --git a/var/spack/repos/builtin/packages/py-pyqt-builder/package.py b/var/spack/repos/builtin/packages/py-pyqt-builder/package.py new file mode 100644 index 0000000000..1f27e4197a --- /dev/null +++ b/var/spack/repos/builtin/packages/py-pyqt-builder/package.py @@ -0,0 +1,20 @@ +# Copyright 2013-2021 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 PyPyqtBuilder(PythonPackage): + """The PEP 517 compliant PyQt build system.""" + + homepage = "https://www.riverbankcomputing.com/hg/PyQt-builder/" + pypi = "PyQt-builder/PyQt-builder-1.12.2.tar.gz" + + version('1.12.2', sha256='f62bb688d70e0afd88c413a8d994bda824e6cebd12b612902d1945c5a67edcd7') + + depends_on('python@3.5:', type=('build', 'run')) + depends_on('py-setuptools@30.3:', type='build') + depends_on('py-packaging', type=('build', 'run')) + depends_on('py-sip@6.3:6', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-pyro4/package.py b/var/spack/repos/builtin/packages/py-pyro4/package.py new file mode 100644 index 0000000000..fa58bb13a7 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-pyro4/package.py @@ -0,0 +1,85 @@ +# 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) + +# Package automatically generated using 'pip2spack' converter + + +class PyPyro4(PythonPackage): + """ + distributed object middleware for Python (RPC) + """ + + homepage = "http://pyro4.readthedocs.io" + pypi = 'Pyro4/Pyro4-4.81.tar.gz' + maintainers = ['liuyangzhuan'] + + version('4.81', sha256='e130da06478b813173b959f7013d134865e07fbf58cc5f1a2598f99479cdac5f') + version('4.80', sha256='46847ca703de3f483fbd0b2d22622f36eff03e6ef7ec7704d4ecaa3964cb2220') + version('4.79', sha256='b1eb34c9a1e63f731ca480f3e2c48169341a25a7504397badbaaab07e0f3241e') + version('4.78', sha256='b69200747c4c69bfa6fa8b917806b0a9ee7939daaf67ab9bb5ccac7e5179feee') + version('4.77', sha256='2bfe12a22f396474b0e57c898c7e2c561a8f850bf2055d8cf0f7119f0c7a523f') + version('4.76', sha256='ac1fda8d3fd9b5ff2cb8e7e400f95a1b1ae28c5df1aa82d1833a5a898e476334') + version('4.75', sha256='3897c0254046d4cb412a4d1a8f2f9c2c1c1ae643a24db07d0abdb51acdb8d7b5') + version('4.74', sha256='89ed7b12c162e5124f322f992f9506c44f5e1a379926cf01ee73ef810d3bf75f') + version('4.73', sha256='536b07a097d0619e7ab1effa3747fda177a24168d17a07a93ca9ac30977608f7') + version('4.72', sha256='2766b53db49f70b0d047fa6871aeb47484ba7e50cf53cfa37d26f87742c0b6a8') + version('4.71', sha256='78b686b584c180061fe3cfc3adcad4da46b3a7f42be1f9f0d7491cd006541cf3') + version('4.70', sha256='614dc4a7a79a861ee15215a6e60081950b2790b7b5cc91555ebeec75d8444aa5') + version('4.63', sha256='67d2b34156619ba37e92100af95aade8129dd2b7327eb05821d43887451f7d7b') + version('4.62', sha256='e301edfb2bc47768b7222a68cae8de8be796d1d9f61cdbd1af9039985ed5009c') + version('4.61', sha256='c465cb2ea2a90b887988d4249de8c0566bdfb16101fdc570e07e598a92e94d1e') + version('4.60', sha256='52fa5fe8173d234f57b6ca3214df3f34e88356c94081685db6249bff8f0b4f7f') + version('4.59', sha256='6a39dadbd2a83b6fd5ab7f5402f8a4befd467b5c0404b8610a8797f748b72a38') + version('4.58', sha256='2c6d133bcec6039a681475bc878ec98c598ccd33105c1994c7b5217932ee2c0c') + version('4.57', sha256='fb3bf07951c2942b5f955770d50c0152565f0da79a2c1a359cfe2062fe0a82b2') + version('4.56', sha256='a80c27e1debbd8d8725ee4a8f0d30cf831dde5e80b04bfa9c912932c4c13d6aa') + version('4.55', sha256='49a7a142542d87dde1cecc8d3ee048ec9481ba861d61234d219fadd06e6ced96') + version('4.54', sha256='aede879916c0f6e84e560b38af421c24cb5089b66c8f632aa5ac48b20ecde93a') + version('4.53', sha256='c6ca6461472a74a7608a2247413b66e951889351fcf8e9eed5d7232ae844b702') + version('4.52', sha256='449f4bdf8dcbaca90e6436eb40c4e860b0de47346e2c7735d0584496d28451e5') + version('4.51', sha256='d6508b8c70d612356a8ddbe486890b03d840c37b5f7cd8e9366bc4c0dd44d3e6') + version('4.50', sha256='cb199540c2ceae9d67d5f2b20dc002d93f909d5072c3da4381c119d7a4b6d1cf') + version('4.49', sha256='6ae7fb0ce9ae5ca6f1d32487d8606219e7296ae7d22e650e7f9db63399608b76') + version('4.48', sha256='3115def913cf6035000047bb270efefb55a25449a17ed392afde6fd531c82fd2') + version('4.47', sha256='9354b722f9f5965ade5839241c8d7ff06ec2fac678a2c9e197a63966da241c89') + version('4.46', sha256='165ed717275217448d786f9c15777eca889f5344d54eef9482996dfee01b668b') + version('4.45', sha256='e32d3f32e52d84e3456c0d389a115b5430a8bb14dd01336c627355a2f34dba78') + version('4.43', sha256='b6f924fa74f21d14c851450e157711914a402bfc2f3a880c1b2c275fd4cda6d6') + version('4.42', sha256='03951643015a1537ad82fbf99fba6e208007447404aab1a020dce7216120d32a') + version('4.41', sha256='3af4749140e9d4032632277ac19e7fd4761856d2df0f0643c574d1e7174a9703') + version('4.40', sha256='00423d3710f60b2da146075a59e17bfa837f556ed2c8acafe05bc209dcaac3e9') + version('4.39', sha256='39c6ca7f86b0f0bebfeada687a5a8b99f66470a52b0f815195ae63c683266f24') + version('4.38', sha256='837fb552f54e46e54a13fa03c321073ba8373715346c4bc7e522b2c82a2c75c9') + version('4.37', sha256='2c4c9e7c3dbace3c75524324b6a686381be37bebab89b5001c0670418cec89c7') + version('4.36', sha256='fcbfbe22b044440fab3d6cbee11d18532b63accefe9cc30b2c41994cdeb08829') + version('4.35', sha256='97ef658b96fa10bac3e01097b1e2b6630fea2b307081ec6f2ac00f85e6020178') + version('4.34', sha256='36886e660290aa5afd06f735f587717f7f366b3535b7b0d3082b4e99ded9dc37') + version('4.33', sha256='9c01202190b7cdebe629e13abb70f050f421139f8115d1626321f442a9f54df8') + version('4.32', sha256='736eb96801881a61b9da72dced2d49574067443545892355af94411392526902') + version('4.31', sha256='0fd9342a216299ff24761e641714c7bd3e42c364f277eb3600d40085f4ace6c3') + version('4.30', sha256='1b38a52dd89cc6aee145d23bd74f586c73268938c6f346b20583ee0242d7d170') + version('4.29', sha256='3a17eaea8055962ff35bb9117f0860243d7977c34cbfcafc76e8e26309e339cf') + version('4.28', sha256='a094cb12e4e328e8b3b06bb313212f1826208c107fa6b48cf02f0ccdc32b562b') + version('4.27', sha256='ee32544fb04e7f4a2d223b442b306bd67cc900b7e9b5917f0b33d1979e6db34f') + version('4.26', sha256='213145815f00b6855b1ba71c20e78fd1d3c41595fae270308483cdba8d3fcec6') + version('4.25', sha256='ac2b0123badcb76c63eb716fcd95e0ee4021d345b5db05fda19253c59e39b384') + version('4.24', sha256='24d2ceaabbd886981d0df56f8f7e5f7f1a9db173778baa4965605f6880c90eb8') + version('4.23', sha256='57d6feee20a565f9de3302376a2531cfda50755088442102963b16e6f70b2e3b') + version('4.22', sha256='d8f611f384edbd240006d8c0f56135e74199ab88e9416cfc78cf5472f1ff337d') + version('4.21', sha256='96bc4bdccab27d935a44f1d9a8df94986d4b3361f5ff9382e86300ed5b9fdfa2') + version('4.20', sha256='72d3fb6dc653e6ae36bd47f2667fbff3c587c72f8bfb3f0dcb1763ee86c906f8') + version('4.18', sha256='52d7f6e10c44475052ac8b6828ed6f8b728a1c5d7e674b441eb0e930029ea4cd') + version('4.17', sha256='1d0cecdd3340dca695d6f833830e7a59f937d4bedbcff53109abe66e5a65d22c') + version('4.16', sha256='6a996700b877d268b48f91f91e356d2a4b20cb12207c05943d04504f6a0de0c7') + version('4.15', sha256='7b9dc43d6be79e4e542b8520715cb3ab7f9095afccc93bce9cacc271c665bf7d') + version('4.14', sha256='90c4f84ae9932d66825c61af9cd67b0b2877b477c967812a5d6953d67f3b003d') + version('4.13', sha256='afbc6964e593e7efed3fa5c91af45c4491cfdb994e7fdbe285cbb3719162cb90') + version('4.12', sha256='69f1beeafbe8f27bdac18e29ce97dd63cc1bdf847ff221ed0a6f0042047fa237') + version('4.11', sha256='d84ccfe85b14b3cb086f98d70dbf05671d6cb8498bd6f20f0041d6010dd320da') + version('4.10', sha256='de74e5e020a8a26cd357f5917afb48f7e14e161ca58574a1c653441bdbe9711c') + + depends_on('py-setuptools', type='build') + depends_on('py-serpent@1.27:', type=('build', 'run')) + depends_on('py-selectors34', when='^python@:3.3', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-pyrsistent/package.py b/var/spack/repos/builtin/packages/py-pyrsistent/package.py index 765760efe5..6732c14481 100644 --- a/var/spack/repos/builtin/packages/py-pyrsistent/package.py +++ b/var/spack/repos/builtin/packages/py-pyrsistent/package.py @@ -14,8 +14,11 @@ class PyPyrsistent(PythonPackage): homepage = "https://github.com/tobgu/pyrsistent/" pypi = "pyrsistent/pyrsistent-0.15.7.tar.gz" + version('0.18.0', sha256='773c781216f8c2900b42a7b638d5b517bb134ae1acbebe4d1e8f1f41ea60eb4b') version('0.15.7', sha256='cdc7b5e3ed77bed61270a47d35434a30617b9becdf2478af76ad2c6ade307280') depends_on('python@2.7:2.8,3.5:', type=('build', 'link', 'run')) + depends_on('python@3.6:', type=('build', 'link', 'run'), when='@0.18.0:') depends_on('py-setuptools', type='build') - depends_on('py-six', type=('build', 'run')) + depends_on('py-setuptools@42:', type='build', when='@0.18.0:') + depends_on('py-six', type=('build', 'run'), when='@:0.17') diff --git a/var/spack/repos/builtin/packages/py-pyscipopt/package.py b/var/spack/repos/builtin/packages/py-pyscipopt/package.py new file mode 100644 index 0000000000..1bfed30d38 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-pyscipopt/package.py @@ -0,0 +1,20 @@ +# Copyright 2013-2021 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 PyPyscipopt(PythonPackage): + """Python interface for the SCIP Optimization Suite""" + + homepage = "https://github.com/scipopt/PySCIPOpt" + pypi = "PySCIPOpt/PySCIPOpt-3.4.0.tar.gz" + + version('3.4.0', sha256='8da4db57b21010e0d5a863292dd455c88dd71ecec12a8439171c213a8092f88a') + + depends_on('py-setuptools', type='build') + depends_on('py-cython', type='build') + depends_on('py-wheel', type='build') + depends_on('scipoptsuite') diff --git a/var/spack/repos/builtin/packages/py-pyspellchecker/package.py b/var/spack/repos/builtin/packages/py-pyspellchecker/package.py new file mode 100644 index 0000000000..61a112fc86 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-pyspellchecker/package.py @@ -0,0 +1,18 @@ +# Copyright 2013-2021 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 PyPyspellchecker(PythonPackage): + """Pure python spell checker based on work by Peter Norvig""" + + homepage = "https://github.com/barrust/pyspellchecker" + pypi = "pyspellchecker/pyspellchecker-0.6.2.tar.gz" + + version('0.6.2', sha256='af6a1d0393a175499475a873f31e52135f1efd5fc912c979101b795b3c2ee77f') + + depends_on('python@3.0:', type=('build', 'run')) + depends_on('py-setuptools', type='build') diff --git a/var/spack/repos/builtin/packages/py-pysqlite3/package.py b/var/spack/repos/builtin/packages/py-pysqlite3/package.py new file mode 100644 index 0000000000..72841002af --- /dev/null +++ b/var/spack/repos/builtin/packages/py-pysqlite3/package.py @@ -0,0 +1,26 @@ +# Copyright 2013-2021 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 PyPysqlite3(PythonPackage): + """DB-API 2.0 interface for Sqlite 3.x""" + + homepage = "https://github.com/coleifer/pysqlite3" + pypi = "pysqlite3/pysqlite3-0.4.6.tar.gz" + + version('0.4.6', sha256='7ec4d4c477fa96609c1517afbc33bf02747588e528e79c695de95907cea7bf30') + + depends_on('py-setuptools', type='build') + depends_on('sqlite', type=('build', 'link', 'run')) + + def patch(self): + filter_file("^include_dirs *=.*", + "include_dirs = " + self.spec['sqlite'].headers.directories[0], + 'setup.cfg') + filter_file("^library_dirs *=.*", + "library_dirs = " + self.spec['sqlite'].libs.directories[0], + 'setup.cfg') diff --git a/var/spack/repos/builtin/packages/py-pytest-cov/package.py b/var/spack/repos/builtin/packages/py-pytest-cov/package.py index d0cd2f2fe3..b6bdbf8d8f 100644 --- a/var/spack/repos/builtin/packages/py-pytest-cov/package.py +++ b/var/spack/repos/builtin/packages/py-pytest-cov/package.py @@ -12,12 +12,16 @@ class PyPytestCov(PythonPackage): homepage = "https://github.com/pytest-dev/pytest-cov" pypi = "pytest-cov/pytest-cov-2.8.1.tar.gz" + version('3.0.0', sha256='e7f0f5b1617d2210a2cabc266dfe2f4c75a8d32fb89eafb7ad9d06f6d076d470') version('2.8.1', sha256='cc6742d8bac45070217169f5f72ceee1e0e55b0221f54bcf24845972d3a47f2b') version('2.3.1', sha256='fa0a212283cdf52e2eecc24dd6459bb7687cc29adb60cb84258fab73be8dda0f') extends('python', ignore=r'bin/*') depends_on('python@2.7:2.8,3.4:', type=('build', 'run')) + depends_on('python@3.6:', type=('build', 'run'), when='@3.0.0:') depends_on('py-setuptools', type='build') depends_on('py-pytest@3.6:', type=('build', 'run')) + depends_on('py-pytest@4.6:', type=('build', 'run'), when='@3.0.0:') depends_on('py-coverage@4.4:', type=('build', 'run')) + depends_on('py-coverage@5.2.1: +toml', type=('build', 'run'), when='@3.0.0:') diff --git a/var/spack/repos/builtin/packages/py-pytest-runner/package.py b/var/spack/repos/builtin/packages/py-pytest-runner/package.py index 1221464219..ade95a1810 100644 --- a/var/spack/repos/builtin/packages/py-pytest-runner/package.py +++ b/var/spack/repos/builtin/packages/py-pytest-runner/package.py @@ -12,8 +12,15 @@ class PyPytestRunner(PythonPackage): homepage = "https://github.com/pytest-dev/pytest-runner" pypi = "pytest-runner/pytest-runner-5.1.tar.gz" + version('5.3.1', sha256='0fce5b8dc68760f353979d99fdd6b3ad46330b6b1837e2077a89ebcf204aac91') version('5.1', sha256='25a013c8d84f0ca60bb01bd11913a3bcab420f601f0f236de4423074af656e7a') version('2.11.1', sha256='983a31eab45e375240e250161a556163bc8d250edaba97960909338c273a89b3') + # requirements from pyproject.toml are marked with * + depends_on('python@3.6:', when='@5.3:', type=('build', 'run')) + depends_on('py-setuptools@42:', when='@5.3:', type=('build', 'run')) # * + depends_on('py-setuptools@34.4:', when='@5:', type=('build', 'run')) # * + depends_on('py-setuptools@27.3:', when='@4.1:', type=('build', 'run')) depends_on('py-setuptools', type=('build', 'run')) + depends_on('py-setuptools-scm+toml@3.4.1:', when='@5.3:', type='build') # * depends_on('py-setuptools-scm@1.15:', type='build') diff --git a/var/spack/repos/builtin/packages/py-pytest/package.py b/var/spack/repos/builtin/packages/py-pytest/package.py index d736596c29..4a02e1a6fc 100644 --- a/var/spack/repos/builtin/packages/py-pytest/package.py +++ b/var/spack/repos/builtin/packages/py-pytest/package.py @@ -12,6 +12,7 @@ class PyPytest(PythonPackage): homepage = "https://pytest.org/" pypi = "pytest/pytest-5.2.1.tar.gz" + version('6.2.5', sha256='131b36680866a76e6781d13f101efb86cf674ebb9762eb70d3082b6f29889e89') version('6.2.4', sha256='50bcad0a0b9c5a72c8e4e7c9855a3ad496ca6a881a3641b4260605450772c54b') version('6.2.1', sha256='66e419b1899bc27346cb2c993e12c5e5e8daba9073c1fbce33b9807abc95c306') version('6.1.1', sha256='8f593023c1a0f916110285b6efd7f99db07d59546e3d8c36fc60e2ab05d3be92') @@ -40,7 +41,7 @@ class PyPytest(PythonPackage): depends_on('py-setuptools@40.0:', when='@3.9.2:6.1', type=('build', 'run')) depends_on('py-setuptools@30.3:', when='@3.9.0:3.9.1', type=('build', 'run')) depends_on('py-setuptools', type=('build', 'run')) - depends_on('py-setuptools-scm@3.4:', when='@6.2:', type='build') + depends_on('py-setuptools-scm@3.4: +toml', when='@6.2:', type='build') depends_on('py-setuptools-scm', when='@3.1:', type='build') # install_requires @@ -49,7 +50,8 @@ class PyPytest(PythonPackage): depends_on('py-attrs@17.2.0:', when='@3.3:3.4', type=('build', 'run')) depends_on('py-iniconfig', when='@6.0:', type=('build', 'run')) depends_on('py-packaging', when='@4.6:', type=('build', 'run')) - depends_on('py-pluggy@0.12:0', when='@4.6:', type=('build', 'run')) + depends_on('py-pluggy@0.12:1', when='@6.2:', type=('build', 'run')) + depends_on('py-pluggy@0.12:0', when='@4.6:6.1', type=('build', 'run')) depends_on('py-pluggy@0.9.0:0.9,0.11:0', when='@4.5.0:4.5', type=('build', 'run')) depends_on('py-pluggy@0.11:', when='@4.4.2:4.4', type=('build', 'run')) depends_on('py-pluggy@0.9:', when='@4.4.0:4.4.1', type=('build', 'run')) @@ -62,9 +64,9 @@ class PyPytest(PythonPackage): depends_on('py-py@1.4.33:1.4', when='@3.2.4', type=('build', 'run')) depends_on('py-py@1.4.29:', when='@:3.1.1', type=('build', 'run')) depends_on('py-toml', when='@6.0:', type=('build', 'run')) - depends_on('py-atomicwrites@1.0:', when='@5.3: platform=win32', type=('build', 'run')) + depends_on('py-atomicwrites@1.0:', when='@5.3: platform=windows', type=('build', 'run')) depends_on('py-atomicwrites@1.0:', when='@3.6:5.2', type=('build', 'run')) - depends_on('py-colorama', when='platform=win32', type=('build', 'run')) + depends_on('py-colorama', when='platform=windows', type=('build', 'run')) depends_on('py-importlib-metadata@0.12:', when='@4.6:5.0', type=('build', 'run')) depends_on('py-importlib-metadata@0.12:', when='@5.1: ^python@:3.7', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-python-constraint/package.py b/var/spack/repos/builtin/packages/py-python-constraint/package.py new file mode 100644 index 0000000000..1e79c487a0 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-python-constraint/package.py @@ -0,0 +1,15 @@ +# Copyright 2013-2021 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) + + +class PyPythonConstraint(PythonPackage): + """Constraint Solving Problem resolver for Python""" + + homepage = "https://github.com/python-constraint/python-constraint" + pypi = "python-constraint/python-constraint-1.4.0.tar.bz2" + + version('1.4.0', sha256='501d6f17afe0032dfc6ea6c0f8acc12e44f992733f00e8538961031ef27ccb8e') + + depends_on('py-setuptools', type='build') diff --git a/var/spack/repos/builtin/packages/py-python-daemon/package.py b/var/spack/repos/builtin/packages/py-python-daemon/package.py index 8185918c75..32e5ff67ba 100644 --- a/var/spack/repos/builtin/packages/py-python-daemon/package.py +++ b/var/spack/repos/builtin/packages/py-python-daemon/package.py @@ -20,7 +20,11 @@ class PyPythonDaemon(PythonPackage): """ pypi = "python-daemon/python-daemon-2.0.5.tar.gz" + version('2.3.0', sha256='bda993f1623b1197699716d68d983bb580043cf2b8a66a01274d9b8297b0aeaf') version('2.0.5', sha256='afde4fa433d94d007206ee31a0941d55b5eb232a5422b670aad628547b46bf68') - depends_on("py-setuptools", type='build') + depends_on("py-setuptools", type=('build', 'run')) depends_on("py-lockfile", type=('build', 'run')) + depends_on("py-lockfile@0.10:", type=('build', 'run'), when='@2.3.0:') + depends_on("py-docutils", type='build') + depends_on("py-twine", type='build') diff --git a/var/spack/repos/builtin/packages/py-python-ldap/package.py b/var/spack/repos/builtin/packages/py-python-ldap/package.py index ca12163460..7b07e7229e 100644 --- a/var/spack/repos/builtin/packages/py-python-ldap/package.py +++ b/var/spack/repos/builtin/packages/py-python-ldap/package.py @@ -14,12 +14,19 @@ class PyPythonLdap(PythonPackage): homepage = "https://www.python-ldap.org/en/python-ldap-3.2.0/" pypi = "python-ldap/python-ldap-3.2.0.tar.gz" + version('3.4.0', sha256='60464c8fc25e71e0fd40449a24eae482dcd0fb7fcf823e7de627a6525b3e0d12') + version('3.3.1', sha256='4711cacf013e298754abd70058ccc995758177fb425f1c2d30e71adfc1d00aa5') version('3.2.0', sha256='7d1c4b15375a533564aad3d3deade789221e450052b21ebb9720fb822eccdb8e') version('3.0.0', sha256='86746b912a2cd37a54b06c694f021b0c8556d4caeab75ef50435ada152e2fbe1') - depends_on('openldap+client_only', type=('build', 'link', 'run')) + # See https://github.com/python-ldap/python-ldap/issues/432 + depends_on('openldap+client_only @:2.4', type=('build', 'link', 'run')) depends_on('py-setuptools', type='build') depends_on('python@2.7:2.8,3.4:', type=('build', 'run')) depends_on('py-pyasn1@0.3.7:', type=('build', 'run')) depends_on('py-pyasn1-modules@0.1.5:', type=('build', 'run')) - depends_on('cyrus-sasl', type='link') + depends_on('cyrus-sasl', type='link', when='^openldap+sasl') + + def patch(self): + if self.spec.satisfies('^openldap~sasl'): + filter_file('HAVE_SASL ', '', 'setup.cfg') diff --git a/var/spack/repos/builtin/packages/py-python-rapidjson/package.py b/var/spack/repos/builtin/packages/py-python-rapidjson/package.py index 0df7feb954..1ccae166a5 100644 --- a/var/spack/repos/builtin/packages/py-python-rapidjson/package.py +++ b/var/spack/repos/builtin/packages/py-python-rapidjson/package.py @@ -12,7 +12,9 @@ class PyPythonRapidjson(PythonPackage): homepage = "https://github.com/python-rapidjson/python-rapidjson" pypi = "python-rapidjson/python-rapidjson-0.9.1.tar.gz" + version('1.5', sha256='04323e63cf57f7ed927fd9bcb1861ef5ecb0d4d7213f2755969d4a1ac3c2de6f') version('0.9.1', sha256='ad80bd7e4bb15d9705227630037a433e2e2a7982b54b51de2ebabdd1611394a1') depends_on('python@3.4:', type=('build', 'run')) + depends_on('python@3.6:', type=('build', 'run'), when='@1.5:') depends_on('py-setuptools', type='build') diff --git a/var/spack/repos/builtin/packages/py-pythonqwt/package.py b/var/spack/repos/builtin/packages/py-pythonqwt/package.py index 8f7678a6e3..ce6e0b93d7 100644 --- a/var/spack/repos/builtin/packages/py-pythonqwt/package.py +++ b/var/spack/repos/builtin/packages/py-pythonqwt/package.py @@ -14,7 +14,7 @@ class PyPythonqwt(PythonPackage): version('0.5.5', sha256='1f13cc8b555a57f8fe0f806d6c2f6d847050e4d837649503932b81316d12788a') - variant('doc', default=False, description="Build documentation.") + variant('docs', default=False, description="Build documentation.") depends_on('py-setuptools', type='build') depends_on('py-numpy@1.3:', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-pythonsollya/package.py b/var/spack/repos/builtin/packages/py-pythonsollya/package.py index 02decf6b86..7e6e1f30fe 100644 --- a/var/spack/repos/builtin/packages/py-pythonsollya/package.py +++ b/var/spack/repos/builtin/packages/py-pythonsollya/package.py @@ -23,3 +23,10 @@ class PyPythonsollya(PythonPackage): depends_on('sollya', type=('build', 'link')) depends_on('py-bigfloat', type=('build', 'run')) depends_on('mpfi', type=('build', 'link')) + + @run_before('build') + def patch(self): + filter_file('PYTHON ?= python2', + 'PYTHON ?= ' + self.spec['python'].command.path, + 'GNUmakefile', + string=True) diff --git a/var/spack/repos/builtin/packages/py-pythran/package.py b/var/spack/repos/builtin/packages/py-pythran/package.py index 431347d26b..b8bacda888 100644 --- a/var/spack/repos/builtin/packages/py-pythran/package.py +++ b/var/spack/repos/builtin/packages/py-pythran/package.py @@ -14,6 +14,7 @@ class PyPythran(PythonPackage): homepage = "https://github.com/serge-sans-paille/pythran" pypi = "pythran/pythran-0.9.11.tar.gz" + version('0.10.0', sha256='9dac8e1d50f33d4676003e350b1f0c878ce113e6f907920e92dc103352cac5bf') version('0.9.12', sha256='5d50dc74dca1d3f902941865acbae981fc24cceeb9d54673d68d6b5c8c1b0001') version('0.9.11', sha256='a317f91e2aade9f6550dc3bf40b5caeb45b7e012daf27e2b3e4ad928edb01667') version('0.9.10', sha256='8fa1d19624cb2950e5a18974fdcb0dffc57e1a821049dc95df09563edd673915') @@ -28,7 +29,7 @@ class PyPythran(PythonPackage): depends_on('python@3:', when='@0.9.6:', type=('build', 'run')) depends_on('python@2.7:', when='@:0.9.5', type=('build', 'run')) depends_on('py-setuptools', type='build') - depends_on('py-pytest-runner', type='build') + depends_on('py-pytest-runner', type='build', when='@:0.9') depends_on('py-ply@3.4:', type=('build', 'run')) depends_on('py-networkx@2:', when='@:0.9.11', type=('build', 'run')) depends_on('py-decorator', when='@:0.9.11', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-pytools/package.py b/var/spack/repos/builtin/packages/py-pytools/package.py index 22a380fa34..803677dce9 100644 --- a/var/spack/repos/builtin/packages/py-pytools/package.py +++ b/var/spack/repos/builtin/packages/py-pytools/package.py @@ -11,12 +11,15 @@ class PyPytools(PythonPackage): pypi = "pytools/pytools-2019.1.1.tar.gz" + version('2021.2.9', sha256='db6cf83c9ba0a165d545029e2301621486d1e9ef295684072e5cd75316a13755') version('2019.1.1', sha256='ce2d702ae4ef10a70197b00b93141461140d00578f2a862fa946ca1446a300db') version('2016.2.6', sha256='6dd49932b8f81a8b622685cff3dd515e351a9290aef0fd5d020e4df00c06aa95') depends_on('py-setuptools', type='build') - depends_on('py-decorator@3.2.0:', type=('build', 'run')) + depends_on('py-decorator@3.2.0:', type=('build', 'run'), when='@:2019.1.1') depends_on('py-appdirs@1.4.0:', type=('build', 'run')) - depends_on('py-six@1.8.0:', type=('build', 'run')) + depends_on('py-six@1.8.0:', type=('build', 'run'), when='@:2019.1.1') depends_on('py-numpy@1.6.0:', type=('build', 'run')) + depends_on('py-dataclasses@0.7:', type=('build', 'run'), when='@2021.2.9: ^python@:3.6') depends_on('python@2.6:2.8,3.4:', type=('build', 'run')) + depends_on('python@3.6:3', type=('build', 'run'), when='@2021.2.9:') diff --git a/var/spack/repos/builtin/packages/py-pytorch-lightning/package.py b/var/spack/repos/builtin/packages/py-pytorch-lightning/package.py index 6816c72668..001ab45d08 100644 --- a/var/spack/repos/builtin/packages/py-pytorch-lightning/package.py +++ b/var/spack/repos/builtin/packages/py-pytorch-lightning/package.py @@ -12,6 +12,7 @@ class PyPytorchLightning(PythonPackage): homepage = "https://github.com/PyTorchLightning/pytorch-lightning" pypi = "pytorch-lightning/pytorch-lightning-1.2.10.tar.gz" + version('1.5.3', sha256='a206169a0c4356366a7edadb5ebd2f38e9a611ff78265ce93b767662682f5620') version('1.4.1', sha256='1d1128aeb5d0e523d2204c4d9399d65c4e5f41ff0370e96d694a823af5e8e6f3') version('1.4.0', sha256='6529cf064f9dc323c94f3ce84b56ee1a05db1b0ab17db77c4d15aa36e34da81f') version('1.3.8', sha256='60b0a3e464d394864dae4c8d251afa7aa453644a19bb7672f5ee400343cdf7b0') @@ -30,7 +31,9 @@ class PyPytorchLightning(PythonPackage): depends_on('py-pyyaml@5.1:5.3,5.5:', when='@:1.2', type=('build', 'run')) depends_on('py-fsspec@2021.05.0:2021.05,2021.06.1:+http', when='@1.3:', type=('build', 'run')) depends_on('py-fsspec@0.8.1:+http', when='@:1.2', type=('build', 'run')) - depends_on('py-tensorboard@2.2.0:2.4,2.5.1:', type=('build', 'run')) + depends_on('py-tensorboard@2.2.0:', when='@1.5:', type=('build', 'run')) + depends_on('py-tensorboard@2.2.0:2.4,2.5.1:', when='@:1.4', type=('build', 'run')) + depends_on('py-torchmetrics@0.4.1:', when='@1.5:', type=('build', 'run')) depends_on('py-torchmetrics@0.4.0:', when='@1.4:', type=('build', 'run')) depends_on('py-torchmetrics@0.2.0:', when='@1.3', type=('build', 'run')) depends_on('py-torchmetrics@0.2.0', when='@:1.2', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-pyyaml/package.py b/var/spack/repos/builtin/packages/py-pyyaml/package.py index 1c5e7d02eb..b68af04549 100644 --- a/var/spack/repos/builtin/packages/py-pyyaml/package.py +++ b/var/spack/repos/builtin/packages/py-pyyaml/package.py @@ -15,6 +15,7 @@ class PyPyyaml(PythonPackage): maintainers = ['adamjstewart'] + version('6.0', sha256='68fb519c14306fec9720a2a5b45bc9f0c8d1b9c72adf45c37baedfcd949c35a2') version('5.3.1', sha256='b8eac752c5e14d3eca0e6dd9199cd627518cb5ec06add0de9d32baeee6fe645d') version('5.1.2', sha256='01adf0b6c6f61bd11af6e10ca52b7d4057dd0be0343eb9283c878cf3af56aee4') version('5.1', sha256='436bc774ecf7c103814098159fbb84c2715d25980175292c648f2da143909f95') @@ -25,7 +26,10 @@ class PyPyyaml(PythonPackage): variant('libyaml', default=True, description='Use libYAML bindings') depends_on('python@2.7:2.8,3.5:', type=('build', 'run')) + depends_on('python@3.6:', type=('build', 'run'), when='@6.0:') depends_on('libyaml', when='+libyaml') + depends_on('py-setuptools', when='@6.0:') + depends_on('py-cython', when='@6.0: +libyaml') phases = ['build_ext', 'install'] @@ -39,20 +43,21 @@ class PyPyyaml(PythonPackage): return modules def setup_py(self, *args, **kwargs): - # Cast from tuple to list - args = list(args) + if self.spec.satisfies('@:5'): + # Cast from tuple to list + args = list(args) - if '+libyaml' in self.spec: - args.insert(0, '--with-libyaml') - else: - args.insert(0, '--without-libyaml') + if '+libyaml' in self.spec: + args.insert(0, '--with-libyaml') + else: + args.insert(0, '--without-libyaml') super(PyPyyaml, self).setup_py(*args, **kwargs) def build_ext_args(self, spec, prefix): args = [] - if '+libyaml' in spec: + if spec.satisfies('@:5 +libyaml'): args.extend([ spec['libyaml'].libs.search_flags, spec['libyaml'].headers.include_flags, diff --git a/var/spack/repos/builtin/packages/py-pyzmq/package.py b/var/spack/repos/builtin/packages/py-pyzmq/package.py index 9230b285e3..74d894cd8a 100644 --- a/var/spack/repos/builtin/packages/py-pyzmq/package.py +++ b/var/spack/repos/builtin/packages/py-pyzmq/package.py @@ -9,7 +9,7 @@ from spack import * class PyPyzmq(PythonPackage): """PyZMQ: Python bindings for zeromq.""" homepage = "https://github.com/zeromq/pyzmq" - url = "https://github.com/zeromq/pyzmq/archive/v14.7.0.tar.gz" + pypi = "pyzmq/pyzmq-22.3.0.tar.gz" import_modules = [ 'zmq', 'zmq.green', 'zmq.green.eventloop', 'zmq.sugar', 'zmq.auth', @@ -19,19 +19,45 @@ class PyPyzmq(PythonPackage): 'zmq.log', 'zmq.asyncio', 'zmq.devices' ] - version('18.1.0', sha256='32f7618b8104021bc96cbd60be4330bdf37b929e8061dbce362c9f3478a08e21') - version('18.0.1', sha256='7b0107992d8cc4c43d9af1c2e13d573ea761c7feb23d7e0e7da9dc963811e68f') - version('17.1.2', sha256='77a32350440e321466b1748e6063b34a8a73768b62cb674e7d799fbc654b7c45') - version('16.0.2', sha256='717dd902c3cf432b1c68e7b299ad028b0de0d0a823858e440b81d5f1baa2b1c1') - version('14.7.0', sha256='809a5fcc720d286c840f7f64696e60322b5b2544795a73db626f09b344d16a15') + version('22.3.0', sha256='8eddc033e716f8c91c6a2112f0a8ebc5e00532b4a6ae1eb0ccc48e027f9c671c') + version('18.1.0', sha256='93f44739db69234c013a16990e43db1aa0af3cf5a4b8b377d028ff24515fbeb3') + version('18.0.1', sha256='8b319805f6f7c907b101c864c3ca6cefc9db8ce0791356f180b1b644c7347e4c') + version('17.1.2', sha256='a72b82ac1910f2cf61a49139f4974f994984475f771b0faa730839607eeedddf') + version('16.0.2', sha256='0322543fff5ab6f87d11a8a099c4c07dd8a1719040084b6ce9162bcdf5c45c9d') + version('14.7.0', sha256='77994f80360488e7153e64e5959dc5471531d1648e3a4bff14a714d074a38cc2') - depends_on('python@2.7:2.8,3.3:', type=('build', 'run'), when='@18:') + # Python 3.9 build issues + depends_on('python@3.6:3.8', type=('build', 'run'), when='@22:') + depends_on('python@2.7,3.3:3.8', type=('build', 'run'), when='@16:18') + depends_on('python@2.6:2.7,3.2:3.8', type=('build', 'run'), when='@:14') depends_on('py-cython@0.16:', type='build') depends_on('py-cython@0.20:', type='build', when='@18:') - depends_on('py-py', type=('build', 'run')) - depends_on('py-cffi', type=('build', 'run')) + depends_on('py-cython@0.29:', type='build', when='@22.3.0:') depends_on('py-gevent', type=('build', 'run')) - depends_on('libzmq') + depends_on('libzmq', type=('build', 'run')) + depends_on('libzmq@3.2:', type=('build', 'run'), when='@22.3.0:') + depends_on('py-setuptools', type='build', when='@22.3.0:') + # Only when python is provided by 'pypy' + depends_on('py-py', type=('build', 'run'), when='@:22') + depends_on('py-cffi', type=('build', 'run'), when='@:22') + + @run_before('install') + def setup(self): + """Create config file listing dependency information.""" + + with open('setup.cfg', 'w') as config: + config.write("""\ +[global] +zmq_prefix = {0} + +[build_ext] +library_dirs = {1} +include_dirs = {2} +""".format( + self.spec['libzmq'].prefix, + self.spec['libzmq'].libs.directories[0], + self.spec['libzmq'].headers.directories[0], + )) def setup_build_environment(self, env): # Needed for `spack install --test=root py-pyzmq` diff --git a/var/spack/repos/builtin/packages/py-qiskit-aer/package.py b/var/spack/repos/builtin/packages/py-qiskit-aer/package.py new file mode 100644 index 0000000000..9f4b6af754 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-qiskit-aer/package.py @@ -0,0 +1,56 @@ +# Copyright 2013-2021 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) + + +class PyQiskitAer(PythonPackage, CudaPackage): + """Aer is a high performance simulator for quantum circuits that + includes noise models""" + + homepage = "https://github.com/Qiskit/qiskit-aer" + pypi = "qiskit-aer/qiskit-aer-0.9.1.tar.gz" + + version('0.9.1', sha256='3bf5f615aaae7cc5f816c39a4e9108aabaed0cc894fb6f841e48ffd56574e7eb') + + depends_on('python@3.6:', type=('build', 'run')) + depends_on('py-setuptools@40.1.0:', type='build') + depends_on('py-numpy@1.16.3:', type=('build', 'run')) + depends_on('py-pybind11@2.6:', type='build') + depends_on('py-qiskit-terra@0.17.0:', type=('build', 'run')) + depends_on('py-scipy@1.0:', type=('build', 'run')) + depends_on('py-scikit-build@0.11.0:', type='build') + depends_on('py-cmake@:3.16,3.18:', type='build') + depends_on('mpi', when='+mpi') + depends_on('nlohmann-json@3.1.1:') + depends_on('spdlog@1.5.0:') + depends_on('muparserx@4.0.8:') + depends_on('blas') + depends_on('cuda@10.1:', when='+cuda') + + variant('mpi', default=True, description='Enable MPI support') + variant('gdr', default=True, description='Enable GDR support') + + def setup_build_environment(self, env): + env.set('DISABLE_CONAN', 'ON') + env.set('DISABLE_DEPENDENCY_INSTALL', '1') + env.set("CUDAHOSTCXX", spack_cxx) + + def build_args(self, spec, prefix): + args = [] + args.append('-DDISABLE_CONAN=ON') + if '~gdr' in self.spec: + args.append('-DAER_DISABLE_GDR=True') + else: + args.append('-DAER_DISABLE_GDR=False') + if '+mpi' in self.spec: + args.append('-DAER_MPI=True') + else: + args.append('-DAER_MPI=False') + if '+cuda' in self.spec: + args.append('-DAER_THRUST_BACKEND=CUDA') + cuda_archs = spec.variants['cuda_arch'].value + if 'none' not in cuda_archs: + args.append('-DCUDA_NVCC_FLAGS={0}'. + format(' '.join(self.cuda_flags(cuda_archs)))) + return args diff --git a/var/spack/repos/builtin/packages/py-qiskit-terra/package.py b/var/spack/repos/builtin/packages/py-qiskit-terra/package.py new file mode 100644 index 0000000000..fbbef84f37 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-qiskit-terra/package.py @@ -0,0 +1,34 @@ +# Copyright 2013-2021 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) + + +class PyQiskitTerra(PythonPackage): + """Qiskit is an open-source SDK for working with quantum computers + at the level of extended quantum circuits, operators, and + algorithms.""" + + homepage = "https://github.com/Qiskit/qiskit-terra" + pypi = "qiskit-terra/qiskit-terra-0.18.3.tar.gz" + + version('0.18.3', sha256='8737c8f1f4c6f29ec2fb02d73023f4854a396c33f78f4629a861a3e48fc789cc') + + depends_on('python@3.6:', type=('build', 'run')) + depends_on('py-setuptools', type='build') + depends_on('py-cython@0.27.1:', type='build') + + depends_on('py-contextvars@2.4:', when='^python@:3.6', type=('build', 'run')) + depends_on('py-jsonschema@2.6:', type=('build', 'run')) + depends_on('py-retworkx@0.9.0:', type=('build', 'run')) + depends_on('py-numpy@1.17:', type=('build', 'run')) + depends_on('py-scipy@1.4:', type=('build', 'run')) + depends_on('py-ply@3.10:', type=('build', 'run')) + depends_on('py-psutil@5:', type=('build', 'run')) + depends_on('py-sympy@1.3:', type=('build', 'run')) + depends_on('py-dill@0.3:', type=('build', 'run')) + depends_on('py-fastjsonschema@2.10:', type=('build', 'run')) + depends_on('py-python-constraint@1.4:', type=('build', 'run')) + depends_on('py-python-dateutil@2.8.0:', type=('build', 'run')) + depends_on('py-symengine@0.7:', type=('build', 'run')) + depends_on('py-tweedledum@1.1:1', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-qpth/package.py b/var/spack/repos/builtin/packages/py-qpth/package.py new file mode 100644 index 0000000000..a8c54f91e5 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-qpth/package.py @@ -0,0 +1,21 @@ +# Copyright 2013-2021 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 PyQpth(PythonPackage): + """A fast and differentiable QP solver for PyTorch""" + + homepage = "https://github.com/locuslab/qpth" + pypi = "qpth/qpth-0.0.15.tar.gz" + + version('0.0.15', sha256='99d8ec5a35877c18543875a7d5b7fc9af1fa9a4d4b0888011c1ecf42ad9d521c') + + depends_on('python', type=('build', 'run')) + depends_on('py-setuptools', type='build') + depends_on('py-numpy@1') + depends_on('py-torch') + depends_on('py-cvxpy') diff --git a/var/spack/repos/builtin/packages/py-qtconsole/package.py b/var/spack/repos/builtin/packages/py-qtconsole/package.py index 8ff12768b1..11b5295e67 100644 --- a/var/spack/repos/builtin/packages/py-qtconsole/package.py +++ b/var/spack/repos/builtin/packages/py-qtconsole/package.py @@ -12,12 +12,14 @@ class PyQtconsole(PythonPackage): homepage = "https://ipython.org" pypi = "qtconsole/qtconsole-4.2.1.tar.gz" + version('5.2.0', sha256='6bb4df839609f240194213407872076f871e3a3884cf8e785068e8c7f39344c6') version('4.5.1', sha256='4af84facdd6f00a6b9b2927255f717bb23ae4b7a20ba1d9ef0a5a5a8dbe01ae2') version('4.2.1', sha256='25ec7d345528b3e8f3c91be349dd3c699755f206dc4b6ec668e2e5dd60ea18ef') variant('docs', default=False, description='Build documentation') depends_on('python@2.7:2.8,3.3:', type=('build', 'run')) + depends_on('python@3.6:', type=('build', 'run'), when='@5.2.0:') depends_on('py-ipykernel@4.1:', type=('build', 'run')) depends_on('py-jupyter-client@4.1:', type=('build', 'run')) depends_on('py-jupyter-core', type=('build', 'run')) @@ -25,4 +27,6 @@ class PyQtconsole(PythonPackage): depends_on('py-traitlets', type=('build', 'run')) depends_on('py-ipython-genutils', type=('build', 'run'), when='@4.5.1:') depends_on('py-sphinx@1.3:', type=('build', 'run'), when='+docs') - depends_on('py-pyqt5', type='run') + depends_on('py-pyqt5', type='run', when='@:5.1') + depends_on('py-qtpy', type=('build', 'run'), when='@5.2.0:') + depends_on('py-pyzmq@17.1:', type=('build', 'run'), when='@5.2.0:') diff --git a/var/spack/repos/builtin/packages/py-radical-entk/package.py b/var/spack/repos/builtin/packages/py-radical-entk/package.py index 03d3592a23..96a01fb5f2 100755..100644 --- a/var/spack/repos/builtin/packages/py-radical-entk/package.py +++ b/var/spack/repos/builtin/packages/py-radical-entk/package.py @@ -12,11 +12,12 @@ class PyRadicalEntk(PythonPackage): homepage = 'https://radical-cybertools.github.io' git = 'https://github.com/radical-cybertools/radical.entk.git' - pypi = 'radical.entk/radical.entk-1.8.0.tar.gz' + pypi = 'radical.entk/radical.entk-1.9.0.tar.gz' maintainers = ['andre-merzky'] version('develop', branch='devel') + version('1.9.0', sha256='918c716ac5eecb012a57452f45f5a064af7ea72f70765c7b0c60be4322b23557') version('1.8.0', sha256='47a3f7f1409612d015a3e6633853d31ec4e4b0681aecb7554be16ebf39c7f756') version('1.6.7', sha256='9384568279d29b9619a565c075f287a08bca8365e2af55e520af0c2f3595f8a2') diff --git a/var/spack/repos/builtin/packages/py-radical-gtod/package.py b/var/spack/repos/builtin/packages/py-radical-gtod/package.py index 4e8eda7ea2..4e8eda7ea2 100755..100644 --- a/var/spack/repos/builtin/packages/py-radical-gtod/package.py +++ b/var/spack/repos/builtin/packages/py-radical-gtod/package.py diff --git a/var/spack/repos/builtin/packages/py-radical-pilot/package.py b/var/spack/repos/builtin/packages/py-radical-pilot/package.py index aeca8fb11f..9ced1d9a85 100755..100644 --- a/var/spack/repos/builtin/packages/py-radical-pilot/package.py +++ b/var/spack/repos/builtin/packages/py-radical-pilot/package.py @@ -13,11 +13,13 @@ class PyRadicalPilot(PythonPackage): homepage = 'https://radical-cybertools.github.io' git = 'https://github.com/radical-cybertools/radical.pilot.git' - pypi = 'radical.pilot/radical.pilot-1.8.0.tar.gz' + pypi = 'radical.pilot/radical.pilot-1.10.1.tar.gz' maintainers = ['andre-merzky'] version('develop', branch='devel') + version('1.10.1', sha256='003f4c519b991bded31693026b69dd51547a5a69a5f94355dc8beff766524b3c') + version('1.9.2', sha256='7c872ac9103a2aed0c5cd46057048a182f672191e194e0fd42794b0012e6e947') version('1.8.0', sha256='a4c3bca163db61206e15a2d820d9a64e888da5c72672448ae975c26768130b9d') version('1.6.8', sha256='fa8fd3f348a68b54ee8338d5c5cf1a3d99c10c0b6da804424a839239ee0d313d') version('1.6.7', sha256='6ca0a3bd3cda65034fa756f37fa05681d5a43441c1605408a58364f89c627970') @@ -26,6 +28,6 @@ class PyRadicalPilot(PythonPackage): depends_on('py-radical-saga@1.6.6:', type=('build', 'run')) depends_on('python@3.6:', type=('build', 'run')) - depends_on('py-pymongo', type=('build', 'run')) + depends_on('py-pymongo@:3', type=('build', 'run')) depends_on('py-setproctitle', type=('build', 'run')) depends_on('py-setuptools', type='build') diff --git a/var/spack/repos/builtin/packages/py-radical-saga/package.py b/var/spack/repos/builtin/packages/py-radical-saga/package.py index 81c30e2181..81c30e2181 100755..100644 --- a/var/spack/repos/builtin/packages/py-radical-saga/package.py +++ b/var/spack/repos/builtin/packages/py-radical-saga/package.py diff --git a/var/spack/repos/builtin/packages/py-radical-utils/package.py b/var/spack/repos/builtin/packages/py-radical-utils/package.py index 6009e01c28..e285f2f559 100755..100644 --- a/var/spack/repos/builtin/packages/py-radical-utils/package.py +++ b/var/spack/repos/builtin/packages/py-radical-utils/package.py @@ -12,11 +12,13 @@ class PyRadicalUtils(PythonPackage): homepage = 'https://radical-cybertools.github.io' git = 'https://github.com/radical-cybertools/radical.utils.git' - pypi = 'radical.utils/radical.utils-1.8.0.tar.gz' + pypi = 'radical.utils/radical.utils-1.9.1.tar.gz' maintainers = ['andre-merzky'] version('develop', branch='devel') + version('1.9.1', sha256='0837d75e7f9dcce5ba5ac63151ab1683d6ba9ab3954b076d1f170cc4a3cdb1b4') + version('1.8.4', sha256='4777ba20e9f881bf3e73ad917638fdeca5a4b253d57ed7b321a07f670e3f737b') version('1.8.0', sha256='8582c65593f51d394fc263c6354ec5ad9cc7173369dcedfb2eef4f5e8146cf03') version('1.6.7', sha256='552f6c282f960ccd9d2401d686b0b3bfab35dfa94a26baeb2d3b4e45211f05a9') @@ -30,7 +32,7 @@ class PyRadicalUtils(PythonPackage): depends_on('py-msgpack', type=('build', 'run')) depends_on('py-netifaces', type=('build', 'run')) depends_on('py-ntplib', type=('build', 'run')) - depends_on('py-pymongo', type=('build', 'run')) + depends_on('py-pymongo@:3', type=('build', 'run')) depends_on('py-pyzmq', type=('build', 'run')) depends_on('py-regex', type=('build', 'run')) depends_on('py-setproctitle', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-rapidfuzz/package.py b/var/spack/repos/builtin/packages/py-rapidfuzz/package.py new file mode 100644 index 0000000000..3d8e07c209 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-rapidfuzz/package.py @@ -0,0 +1,19 @@ +# Copyright 2013-2021 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 PyRapidfuzz(PythonPackage): + """Rapid fuzzy string matching in Python and C++ using the Levenshtein Distance.""" + + homepage = "https://github.com/maxbachmann/rapidfuzz" + pypi = "rapidfuzz/rapidfuzz-1.8.2.tar.gz" + + version('1.8.2', sha256='d6efbb2b6b18b3a67d7bdfbcd9bb72732f55736852bbef823bdf210f9e0c6c90') + + depends_on('python@2.7:', type=('build', 'link', 'run')) + depends_on('py-setuptools', type='build') + depends_on('py-numpy', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-rdt/package.py b/var/spack/repos/builtin/packages/py-rdt/package.py new file mode 100644 index 0000000000..0f634a8b77 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-rdt/package.py @@ -0,0 +1,25 @@ +# Copyright 2013-2021 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 PyRdt(PythonPackage): + """RDT is a Python library used to transform data for data + science libraries and preserve the transformations in order + to revert them as needed.""" + + homepage = "https://github.com/sdv-dev/RDT" + pypi = "rdt/rdt-0.6.1.tar.gz" + + version('0.6.1', sha256='ee2ac0d3479b254f99f35a709a24ffd5f2c899de6ea71f1ee844c6113febba71') + + depends_on('python@3.6:', type=('build', 'run')) + depends_on('py-setuptools', type='build') + depends_on('py-numpy@1.18:1.19', type=('build', 'run'), when='^python@3.6') + depends_on('py-numpy@1.20:1', type=('build', 'run'), when='^python@3.7:') + depends_on('py-pandas@1.1.3:1.1.4', type=('build', 'run')) + depends_on('py-scipy@1.5.4:1', type=('build', 'run')) + depends_on('py-psutil@5.7:5', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-requests-oauthlib/package.py b/var/spack/repos/builtin/packages/py-requests-oauthlib/package.py index 09d8de87e5..04c2ca4606 100644 --- a/var/spack/repos/builtin/packages/py-requests-oauthlib/package.py +++ b/var/spack/repos/builtin/packages/py-requests-oauthlib/package.py @@ -13,6 +13,7 @@ class PyRequestsOauthlib(PythonPackage): homepage = "https://github.com/requests/requests-oauthlib" pypi = "requests-oauthlib/requests-oauthlib-1.2.0.tar.gz" + version('1.3.0', sha256='b4261601a71fd721a8bd6d7aa1cc1d6a8a93b4a9f5e96626f8e4d91e8beeaa6a') version('1.2.0', sha256='bd6533330e8748e94bf0b214775fed487d309b8b8fe823dc45641ebcd9a32f57') version('0.3.3', sha256='37557b4de3eef50d2a4c65dc9382148b8331f04b1c637c414b3355feb0f007e9') diff --git a/var/spack/repos/builtin/packages/py-requests/package.py b/var/spack/repos/builtin/packages/py-requests/package.py index 8d1f0d3317..374926c3f9 100644 --- a/var/spack/repos/builtin/packages/py-requests/package.py +++ b/var/spack/repos/builtin/packages/py-requests/package.py @@ -12,6 +12,7 @@ class PyRequests(PythonPackage): homepage = "http://python-requests.org" pypi = "requests/requests-2.24.0.tar.gz" + version('2.26.0', sha256='b8aa58f8cf793ffd8782d3d8cb19e66ef36f7aba4353eec859e74678b01b07a7') version('2.25.1', sha256='27973dd4a904a4f13b263a19c866c13b92a39ed1c964655f025f3f8d3d75b804') version('2.24.0', sha256='b3559a131db72c33ee969480840fff4bb6dd111de7dd27c8ee1f820f4f00231b') version('2.23.0', sha256='b3f43d496c6daba4493e7c431722aeb7dbc6288f52a6e04e7b6023b0247817e6') @@ -25,12 +26,16 @@ class PyRequests(PythonPackage): variant('socks', default=False, description='SOCKS and HTTP proxy support') depends_on('python@2.7:2.8,3.5:', type=('build', 'run')) + depends_on('python@2.7:2.8,3.6:', type=('build', 'run'), when='@2.26.0:') depends_on('py-setuptools', type='build') - depends_on('py-chardet@3.0.2:4', type=('build', 'run'), when='@2.25.1:') + depends_on('py-chardet@3.0.2:4', type=('build', 'run'), when='@2.25.1: ^python@2:2') depends_on('py-chardet@3.0.2:3', type=('build', 'run'), when='@2.23.0:2.25.0') depends_on('py-chardet@3.0.2:3.0', type=('build', 'run'), when='@2.16.0:2.22') - depends_on('py-idna@2.5:2', type=('build', 'run'), when='@2.23.0:') + depends_on('py-charset-normalizer@2.0.0:2.0', type=('build', 'run'), when='@2.26.0: ^python@3:') + depends_on('py-idna@2.5:3', type=('build', 'run'), when='@2.26.0: ^python@3:') + depends_on('py-idna@2.5:2', type=('build', 'run'), when='@2.26.0: ^python@:2') + depends_on('py-idna@2.5:2', type=('build', 'run'), when='@2.23:2.25') depends_on('py-idna@2.5:2.8', type=('build', 'run'), when='@2.16.0:2.22') depends_on('py-urllib3@1.21.1:1.26', type=('build', 'run'), when='@2.25.0:') depends_on('py-urllib3@1.21.1:1.24,1.25.2:1.25', type=('build', 'run'), when='@2.16.0:2.24') diff --git a/var/spack/repos/builtin/packages/py-retry/package.py b/var/spack/repos/builtin/packages/py-retry/package.py new file mode 100644 index 0000000000..8e0417f02b --- /dev/null +++ b/var/spack/repos/builtin/packages/py-retry/package.py @@ -0,0 +1,21 @@ +# Copyright 2013-2021 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 PyRetry(PythonPackage): + """Easy to use retry decorator.""" + + homepage = "https://github.com/invl/retry" + pypi = "retry/retry-0.9.2.tar.gz" + + version('0.9.2', sha256='f8bfa8b99b69c4506d6f5bd3b0aabf77f98cdb17f3c9fc3f5ca820033336fba4') + + depends_on('python@2.6:', type=('build', 'run')) + depends_on('py-setuptools', type='build') + depends_on('py-pbr', type='build') + depends_on('py-decorator@3.4.2:', type=('build', 'run')) + depends_on('py-py@1.4.26:1', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-retworkx/package.py b/var/spack/repos/builtin/packages/py-retworkx/package.py new file mode 100644 index 0000000000..512c67fbb4 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-retworkx/package.py @@ -0,0 +1,18 @@ +# Copyright 2013-2021 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) + + +class PyRetworkx(PythonPackage): + """A high performance Python graph library implemented in Rust.""" + + homepage = "https://github.com/Qiskit/retworkx" + pypi = "retworkx/retworkx-0.5.0.tar.gz" + + version('0.10.2', sha256='ba81cb527de7ff338575905bb6fcbebdf2ab18ae800169a77ab863f855bf0951') + + depends_on('python@3.6:', type=('build', 'run')) + depends_on('py-setuptools', type='build') + depends_on('py-setuptools-rust', type='build') + depends_on('py-numpy@1.16.0:', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-rich/package.py b/var/spack/repos/builtin/packages/py-rich/package.py index ffb6806f36..68be1f4ce8 100644 --- a/var/spack/repos/builtin/packages/py-rich/package.py +++ b/var/spack/repos/builtin/packages/py-rich/package.py @@ -14,6 +14,8 @@ class PyRich(PythonPackage): homepage = "https://github.com/willmcgugan/rich" pypi = "rich/rich-9.4.0.tar.gz" + version('10.14.0', sha256='8bfe4546d56b4131298d3a9e571a0742de342f1593770bd0d4707299f772a0af') + version('10.9.0', sha256='ba285f1c519519490034284e6a9d2e6e3f16dc7690f2de3d9140737d81304d22') version('10.0.0', sha256='4674bd3056a72bb282ad581e3f8092dc110cdcc456b5ba76e34965cb85a69724') version('9.9.0', sha256='0bd8f42c3a03b7ef5e311d5e37f47bea9d268f541981c169072be5869c007957') version('9.8.2', sha256='c0d5903b463f015b254d6f52da82af3821d266fe516ae05fdc266e6abba5c3a8') @@ -28,8 +30,10 @@ class PyRich(PythonPackage): version('9.4.0', sha256='bde23a1761373fed2802502ff98292c5d735a5389ed96f4fe1be5fb4c2cde8ea') depends_on('python@3.6:', type=('build', 'run')) + depends_on('python@3.6.2:3', type=('build', 'run'), when='@10.14.0:') depends_on('py-setuptools', type='build') - depends_on('py-typing-extensions@3.7.4:3', type=('build', 'run')) + depends_on('py-typing-extensions@3.7.4:4', type=('build', 'run'), when='@10.14.0: ^python@:3.7') + depends_on('py-typing-extensions@3.7.4:3', type=('build', 'run'), when='@:10.13.0') depends_on('py-dataclasses@0.7:0.8', when='^python@:3.6', type=('build', 'run')) depends_on('py-pygments@2.6:2', type=('build', 'run')) depends_on('py-commonmark@0.9.0:0.9', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-rsa/package.py b/var/spack/repos/builtin/packages/py-rsa/package.py index 45fbc3fa9e..0395f653ae 100644 --- a/var/spack/repos/builtin/packages/py-rsa/package.py +++ b/var/spack/repos/builtin/packages/py-rsa/package.py @@ -12,8 +12,10 @@ class PyRsa(PythonPackage): homepage = "https://stuvel.eu/rsa" pypi = "rsa/rsa-3.4.2.tar.gz" + version('4.7.2', sha256='9d689e6ca1b3038bc82bf8d23e944b6b6037bc02301a574935b2dd946e0353b9') version('4.0', sha256='1a836406405730121ae9823e19c6e806c62bbad73f890574fff50efa4122c487') version('3.4.2', sha256='25df4e10c263fb88b5ace923dd84bf9aa7f5019687b5e55382ffcdb8bede9db5') depends_on('py-setuptools', type=('build', 'run')) depends_on('py-pyasn1@0.1.3:', type=('build', 'run')) + depends_on('python@3.5:3', type=('build', 'run'), when='@4.7.2:') diff --git a/var/spack/repos/builtin/packages/py-ruamel-yaml-clib/package.py b/var/spack/repos/builtin/packages/py-ruamel-yaml-clib/package.py index bf4d6ef3f6..436940225c 100644 --- a/var/spack/repos/builtin/packages/py-ruamel-yaml-clib/package.py +++ b/var/spack/repos/builtin/packages/py-ruamel-yaml-clib/package.py @@ -13,5 +13,5 @@ class PyRuamelYamlClib(PythonPackage): version('0.2.0', sha256='b66832ea8077d9b3f6e311c4a53d06273db5dc2db6e8a908550f3c14d67e718c') - depends_on('python@2.7:2.8,3.5:', type=('build', 'run')) + depends_on('python@2.7:2.8,3.5:', type=('build', 'link', 'run')) depends_on('py-setuptools@28.7.0:', type='build') diff --git a/var/spack/repos/builtin/packages/py-schema/package.py b/var/spack/repos/builtin/packages/py-schema/package.py new file mode 100644 index 0000000000..87c3ec5f65 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-schema/package.py @@ -0,0 +1,18 @@ +# Copyright 2013-2021 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 PySchema(PythonPackage): + """Simple data validation library""" + + homepage = "https://github.com/keleshev/schema" + pypi = "schema/schema-0.7.5.tar.gz" + + version('0.7.5', sha256='f06717112c61895cabc4707752b88716e8420a8819d71404501e114f91043197') + + depends_on('py-setuptools', type='build') + depends_on('py-contextlib2@0.5.5:', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-scikit-build/package.py b/var/spack/repos/builtin/packages/py-scikit-build/package.py index f6fab07c95..b8d49f7b95 100644 --- a/var/spack/repos/builtin/packages/py-scikit-build/package.py +++ b/var/spack/repos/builtin/packages/py-scikit-build/package.py @@ -20,8 +20,10 @@ class PyScikitBuild(PythonPackage): maintainers = ['coreyjadams'] + version('0.12.0', sha256='c32a415d2e7920a4a966b037403c93b02c8a958d8badf3c60abd4b4493f7d988') version('0.10.0', sha256='2beec252813b20327072c15e9d997f15972aedcc6a130d0154979ff0fdb1b010') depends_on('py-setuptools@28.0.0:', type=('build', 'run')) depends_on('py-packaging', type=('build', 'run')) depends_on('py-wheel@0.29.0:', type=('build', 'run')) + depends_on('py-distro', type=('build', 'run'), when='@0.11:') diff --git a/var/spack/repos/builtin/packages/py-scikit-fuzzy/package.py b/var/spack/repos/builtin/packages/py-scikit-fuzzy/package.py new file mode 100644 index 0000000000..2c1ffe81e1 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-scikit-fuzzy/package.py @@ -0,0 +1,21 @@ +# Copyright 2013-2021 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 PyScikitFuzzy(PythonPackage): + """Fuzzy logic toolkit for SciPy""" + + homepage = "https://github.com/scikit-fuzzy/scikit-fuzzy" + pypi = "scikit-fuzzy/scikit-fuzzy-0.4.2.tar.gz" + + version('0.4.2', sha256='1ab12424d847ede1bc79670d8058167be7c8dd660b00756e9b844817ceb1e12e') + + depends_on('python@3.6:', type=('build', 'run')) + depends_on('py-setuptools', type=('build',)) + depends_on('py-networkx@1.9:', type=('build', 'run')) + depends_on('py-numpy@1.6:', type=('build', 'run')) + depends_on('py-scipy@0.9:', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-scikit-learn-extra/package.py b/var/spack/repos/builtin/packages/py-scikit-learn-extra/package.py new file mode 100644 index 0000000000..03f06e7865 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-scikit-learn-extra/package.py @@ -0,0 +1,27 @@ +# Copyright 2013-2021 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 PyScikitLearnExtra(PythonPackage): + """A set of useful tools compatible with scikit-learn + + scikit-learn-extra is a Python module for machine learning that extends + scikit-learn. It includes algorithms that are useful but do not satisfy the + scikit-learn inclusion criteria, for instance due to their novelty or lower + citation number.""" + + homepage = "https://github.com/scikit-learn-contrib/scikit-learn-extra" + pypi = "scikit-learn-extra/scikit-learn-extra-0.2.0.tar.gz" + + version('0.2.0', sha256='3b1bb5fedde47920eb4b3fa0a0c18f80cc7359d9d0496720178788c6153b8019') + + depends_on('python@3.6:', type=('build', 'run')) + depends_on('py-setuptools', type='build') + depends_on('py-cython@0.28.5:', type='build') + depends_on('py-numpy@1.13.3:', type=('build', 'run')) + depends_on('py-scipy@0.19.1:', type=('build', 'run')) + depends_on('py-scikit-learn@0.23:', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-scikit-optimize/package.py b/var/spack/repos/builtin/packages/py-scikit-optimize/package.py index b3d62fc1d3..fdf8db4756 100644 --- a/var/spack/repos/builtin/packages/py-scikit-optimize/package.py +++ b/var/spack/repos/builtin/packages/py-scikit-optimize/package.py @@ -16,15 +16,24 @@ class PyScikitOptimize(PythonPackage): homepage = "https://scikit-optimize.github.io" pypi = "scikit-optimize/scikit-optimize-0.5.2.tar.gz" + git = "https://github.com/scikit-optimize/scikit-optimize.git" + maintainers = ['liuyangzhuan'] + + version('master', branch='master') version('0.5.2', sha256='1d7657a4b8ef9aa6d81e49b369c677c584e83269f11710557741d3b3f8fa0a75') variant('plots', default=True, description='Build with plot support from py-matplotlib') + variant('gptune', default=False, + description='Build with patches for GPTune') depends_on('py-setuptools', type='build') depends_on('py-numpy', type=('build', 'run')) depends_on('py-scipy@0.14.0:', type=('build', 'run')) depends_on('py-scikit-learn@0.19.1:', type=('build', 'run')) + depends_on('py-pyyaml', when='+gptune', type=('build', 'run')) depends_on('py-matplotlib', when='+plots') + + patch('space.patch', when='+gptune') diff --git a/var/spack/repos/builtin/packages/py-scikit-optimize/space.patch b/var/spack/repos/builtin/packages/py-scikit-optimize/space.patch new file mode 100644 index 0000000000..c608bbb78a --- /dev/null +++ b/var/spack/repos/builtin/packages/py-scikit-optimize/space.patch @@ -0,0 +1,57 @@ +diff --git a/skopt/space/space.py b/skopt/space/space.py +old mode 100644 +new mode 100755 +index 329b0c1..bed1e05 +--- a/skopt/space/space.py ++++ b/skopt/space/space.py +@@ -244,13 +244,13 @@ class Real(Dimension): + name : str or None + Name associated with the dimension, e.g., "learning rate". + +- dtype : str or dtype, default=float ++ dtype : str or dtype, default=np.float + float type which will be used in inverse_transform, + can be float. + + """ + def __init__(self, low, high, prior="uniform", base=10, transform=None, +- name=None, dtype=float): ++ name=None, dtype=np.float, optimize=True): + if high <= low: + raise ValueError("the lower bound {} has to be less than the" + " upper bound {}".format(low, high)) +@@ -267,6 +267,7 @@ class Real(Dimension): + self._rvs = None + self.transformer = None + self.transform_ = transform ++ self.optimize = optimize + if isinstance(self.dtype, str) and self.dtype\ + not in ['float', 'float16', 'float32', 'float64']: + raise ValueError("dtype must be 'float', 'float16', 'float32'" +@@ -346,7 +347,8 @@ class Real(Dimension): + self.low, self.high).astype(self.dtype) + if self.dtype == float or self.dtype == 'float': + # necessary, otherwise the type is converted to a numpy type +- return getattr(inv_transform, "tolist", lambda: value)() ++ inv_transform = getattr(inv_transform, "tolist", lambda: value)() ++ return [round(val, 6) for val in inv_transform] + else: + return inv_transform + +@@ -435,7 +437,7 @@ class Integer(Dimension): + + """ + def __init__(self, low, high, prior="uniform", base=10, transform=None, +- name=None, dtype=np.int64): ++ name=None, dtype=np.int64, optimize=True): + if high <= low: + raise ValueError("the lower bound {} has to be less than the" + " upper bound {}".format(low, high)) +@@ -450,6 +452,7 @@ class Integer(Dimension): + self.name = name + self.dtype = dtype + self.transform_ = transform ++ self.optimize = optimize + self._rvs = None + self.transformer = None + diff --git a/var/spack/repos/builtin/packages/py-scinum/package.py b/var/spack/repos/builtin/packages/py-scinum/package.py new file mode 100644 index 0000000000..1c364a6388 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-scinum/package.py @@ -0,0 +1,19 @@ +# Copyright 2013-2021 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 PyScinum(PythonPackage): + """Scientific numbers with multiple uncertainties and + correlation-aware, gaussian propagation and numpy""" + + homepage = "https://github.com/riga/scinum" + pypi = "scinum/scinum-1.2.0.tar.gz" + + version('1.2.0', sha256='31802d9b580f3a89c0876f34432851bc4def9cb2844d6f3c8e044480f2dd2f91') + + depends_on('python@2.7:', type=('build', 'run')) + depends_on('py-setuptools', type='build') diff --git a/var/spack/repos/builtin/packages/py-scipy/package.py b/var/spack/repos/builtin/packages/py-scipy/package.py index 8184debba5..12a9f02eef 100644 --- a/var/spack/repos/builtin/packages/py-scipy/package.py +++ b/var/spack/repos/builtin/packages/py-scipy/package.py @@ -18,6 +18,8 @@ class PyScipy(PythonPackage): maintainers = ['adamjstewart'] version('master', branch='master') + version('1.7.3', sha256='ab5875facfdef77e0a47d5fd39ea178b58e60e454a4c85aa1e52fcb80db7babf') + version('1.7.2', sha256='fa2dbabaaecdb502641b0b3c00dec05fb475ae48655c66da16c9ed24eda1e711') version('1.7.1', sha256='6b47d5fa7ea651054362561a28b1ccc8da9368a39514c1bbf6c0977a1c376764') version('1.7.0', sha256='998c5e6ea649489302de2c0bc026ed34284f531df89d2bdc8df3a0d44d165739') version('1.6.3', sha256='a75b014d3294fce26852a9d04ea27b5671d86736beb34acdfc05859246260707') @@ -51,14 +53,16 @@ class PyScipy(PythonPackage): depends_on('python@3.5:', when='@1.3:1.4', type=('build', 'link', 'run')) depends_on('python@3.6:', when='@1.5.0:1.5', type=('build', 'link', 'run')) depends_on('python@3.7:', when='@1.6:1.6.1', type=('build', 'link', 'run')) - depends_on('python@3.7:3.9', when='@1.6.2:', type=('build', 'link', 'run')) + depends_on('python@3.7:3.9', when='@1.6.2:1.7.1', type=('build', 'link', 'run')) + depends_on('python@3.7:3.10', when='@1.7.2:', type=('build', 'link', 'run')) depends_on('py-setuptools', when='@:1.5', type='build') depends_on('py-setuptools@:51.0.0', when='@1.6', type='build') depends_on('py-setuptools@:57', when='@1.7:', type='build') depends_on('py-pybind11@2.2.4:', when='@1.4.0', type=('build', 'link')) depends_on('py-pybind11@2.4.0:', when='@1.4.1:1.4', type=('build', 'link')) depends_on('py-pybind11@2.4.3:', when='@1.5:1.6.1', type=('build', 'link')) - depends_on('py-pybind11@2.4.3:2.6', when='@1.6.2:', type=('build', 'link')) + depends_on('py-pybind11@2.4.3:2.6', when='@1.6.2:1.7.1', type=('build', 'link')) + depends_on('py-pybind11@2.4.3:2.7', when='@1.7.2:', type=('build', 'link')) depends_on('py-numpy@1.5.1:+blas+lapack', when='@:0.15', type=('build', 'link', 'run')) depends_on('py-numpy@1.6.2:+blas+lapack', when='@0.16:0.17', type=('build', 'link', 'run')) depends_on('py-numpy@1.7.1:+blas+lapack', when='@0.18.0:0.18', type=('build', 'link', 'run')) @@ -67,8 +71,9 @@ class PyScipy(PythonPackage): depends_on('py-numpy@1.14.5:+blas+lapack', when='@1.5.0:1.5', type=('build', 'link', 'run')) depends_on('py-numpy@1.16.5:+blas+lapack', when='@1.6:1.6.1', type=('build', 'link', 'run')) depends_on('py-numpy@1.16.5:1.22+blas+lapack', when='@1.6.2:', type=('build', 'link', 'run')) - depends_on('py-cython@0.29.18:2.9', when='@1.7:', type='build') - depends_on('py-pythran@0.9.11:', when='@1.7:', type=('build', 'link')) + depends_on('py-cython@0.29.18:2', when='@1.7:', type='build') + depends_on('py-pythran@0.9.11', when='@1.7.0:1.7.1', type=('build', 'link')) + depends_on('py-pythran@0.9.12:0.9', when='@1.7.2:', type=('build', 'link')) depends_on('py-pytest', type='test') # NOTE: scipy picks up Blas/Lapack from numpy, see diff --git a/var/spack/repos/builtin/packages/py-selectors34/package.py b/var/spack/repos/builtin/packages/py-selectors34/package.py new file mode 100644 index 0000000000..55f86bc604 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-selectors34/package.py @@ -0,0 +1,21 @@ +# 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) + +# Package automatically generated using 'pip2spack' converter + + +class PySelectors34(PythonPackage): + """ + Backport of the selectors module from Python 3.4. + """ + + homepage = "https://github.com/berkerpeksag/selectors34" + pypi = 'selectors34/selectors34-1.2.tar.gz' + maintainers = ['liuyangzhuan'] + + version('1.2', sha256='09f5066337f8a76fb5233f267873f89a27a17c10bf79575954894bb71686451c') + + depends_on('py-setuptools', type='build') + depends_on('py-six', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-send2trash/package.py b/var/spack/repos/builtin/packages/py-send2trash/package.py index ef8b88a9ed..9640592d76 100644 --- a/var/spack/repos/builtin/packages/py-send2trash/package.py +++ b/var/spack/repos/builtin/packages/py-send2trash/package.py @@ -12,6 +12,7 @@ class PySend2trash(PythonPackage): homepage = "https://github.com/hsoft/send2trash" url = "https://github.com/hsoft/send2trash/archive/1.5.0.tar.gz" + version('1.8.0', sha256='937b038abd9f1e7b8c5d7a116be5dc4663beb71df74dcccffe56cacf992c7a9c') version('1.5.0', sha256='7cebc0ffc8b6d6e553bce9c6bb915614610ba2dec17c2f0643b1b97251da2a41') depends_on('py-setuptools', type='build') diff --git a/var/spack/repos/builtin/packages/py-serpent/package.py b/var/spack/repos/builtin/packages/py-serpent/package.py new file mode 100644 index 0000000000..b2113cfbf4 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-serpent/package.py @@ -0,0 +1,21 @@ +# 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) + +# Package automatically generated using 'pip2spack' converter + + +class PySerpent(PythonPackage): + """ + Serialization based on ast.literal_eval + """ + + homepage = "https://github.com/irmen/Serpent" + pypi = 'serpent/serpent-1.40.tar.gz' + maintainers = ['liuyangzhuan'] + + version('1.40', sha256='10b34e7f8e3207ee6fb70dcdc9bce473851ee3daf0b47c58aec1b48032ac11ce') + + depends_on('py-setuptools', type='build') + depends_on('python@3.2:', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-setupmeta/package.py b/var/spack/repos/builtin/packages/py-setupmeta/package.py new file mode 100644 index 0000000000..0b7c9baf39 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-setupmeta/package.py @@ -0,0 +1,18 @@ +# Copyright 2013-2021 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 PySetupmeta(PythonPackage): + """Simplify your setup.py.""" + + homepage = "https://github.com/codrsquad/setupmeta" + pypi = "setupmeta/setupmeta-3.3.0.tar.gz" + + version('3.3.0', sha256='32914af4eeffb8bf1bd45057254d9dff4d16cb7ae857141e07698f7ac19dc960') + + depends_on('python@2.7:', type=('build', 'run')) + depends_on('py-setuptools', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-setuptools-cpp/package.py b/var/spack/repos/builtin/packages/py-setuptools-cpp/package.py new file mode 100644 index 0000000000..5f4af3deb2 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-setuptools-cpp/package.py @@ -0,0 +1,46 @@ +# Copyright 2013-2021 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 PySetuptoolsCpp(PythonPackage): + """Simplified packaging for pybind11-based C++ extensions""" + + homepage = "https://github.com/dmontagu/setuptools-cpp" + pypi = "setuptools_cpp/setuptools_cpp-0.1.0.tar.gz" + + maintainers = ['dorton'] + + version('0.1.0', sha256='4fd5e08603237578d06d28efd592d9847b523ede3e502f660be44b1e6254674d') + + depends_on('py-setuptools', type='build') + depends_on('py-appdirs', type=('build', 'run')) + depends_on('py-atomicwrites', type=('build', 'run')) + depends_on('py-attrs', type=('build', 'run')) + depends_on('py-black', type=('build', 'run')) + depends_on('py-chardet', type=('build', 'run')) + depends_on('py-colorama', type=('build', 'run')) + depends_on('py-chardet', type=('build', 'run')) + depends_on('py-certifi', type=('build', 'run')) + depends_on('py-click', type=('build', 'run')) + depends_on('py-codecov', type=('build', 'run')) + depends_on('py-coverage', type=('build', 'run')) + depends_on('py-entrypoints', type=('build', 'run')) + depends_on('py-flake8', type=('build', 'run')) + depends_on('py-importlib-metadata', type=('build', 'run')) + depends_on('py-isort', type=('build', 'run')) + depends_on('py-jinja2', type=('build', 'run')) + depends_on('py-markdown', type=('build', 'run')) + depends_on('py-markupsafe', type=('build', 'run')) + depends_on('py-mccabe', type=('build', 'run')) + depends_on('py-more-itertools', type=('build', 'run')) + depends_on('py-mypy', type=('build', 'run')) + depends_on('py-mypy-extensions', type=('build', 'run')) + depends_on('py-packaging', type=('build', 'run')) + depends_on('py-pathspec', type=('build', 'run')) + depends_on('py-pluggy', type=('build', 'run')) + depends_on('py-tornado', type=('build', 'run')) + depends_on('py-typed-ast', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-setuptools/package.py b/var/spack/repos/builtin/packages/py-setuptools/package.py index b8f1710ea9..71804b5a69 100644 --- a/var/spack/repos/builtin/packages/py-setuptools/package.py +++ b/var/spack/repos/builtin/packages/py-setuptools/package.py @@ -13,6 +13,7 @@ class PySetuptools(PythonPackage): homepage = "https://github.com/pypa/setuptools" pypi = "setuptools/setuptools-57.4.0.tar.gz" + version('59.4.0', sha256='b4c634615a0cf5b02cf83c7bedffc8da0ca439f00e79452699454da6fbd4153d') version('58.2.0', sha256='2c55bdb85d5bb460bd2e3b12052b677879cffcf46c0c688f2e5bf51d36001145') version('57.4.0', sha256='6bac238ffdf24e8806c61440e755192470352850f3419a52f26ffe0a1a64f465') version('57.1.0', sha256='cfca9c97e7eebbc8abe18d5e5e962a08dcad55bb63afddd82d681de4d22a597b') diff --git a/var/spack/repos/builtin/packages/py-shellingham/package.py b/var/spack/repos/builtin/packages/py-shellingham/package.py new file mode 100644 index 0000000000..a08ac33ce6 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-shellingham/package.py @@ -0,0 +1,19 @@ +# Copyright 2013-2021 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 PyShellingham(PythonPackage): + """Tool to Detect Surrounding Shell""" + + homepage = "https://github.com/sarugaku/shellingham" + pypi = "shellingham/shellingham-1.4.0.tar.gz" + + version('1.4.0', sha256='4855c2458d6904829bd34c299f11fdeed7cfefbf8a2c522e4caea6cd76b3171e') + + depends_on('python@2.6:2.7,3.4:', type=('build', 'run')) + depends_on('py-setuptools', type='build') + depends_on('py-wheel', type='build') diff --git a/var/spack/repos/builtin/packages/py-sina/no_orjson.patch b/var/spack/repos/builtin/packages/py-sina/no_orjson.patch new file mode 100644 index 0000000000..de937f4157 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-sina/no_orjson.patch @@ -0,0 +1,15 @@ +--- a/python/setup.py ++++ b/python/setup.py +@@ -51,9 +51,7 @@ setup(name='llnl-sina', + 'six', + 'sqlalchemy', + 'enum34;python_version<"3.4"', +- 'orjson;python_version>="3.6" and platform_machine!="ppc64le"', +- 'ujson;python_version>="3.6" and platform_machine=="ppc64le"', +- 'ujson<4;python_version<"3.6" and platform_machine!="ppc64le"', ++ 'ujson', + ], + license='MIT', + classifiers=[ + + diff --git a/var/spack/repos/builtin/packages/py-sina/package.py b/var/spack/repos/builtin/packages/py-sina/package.py new file mode 100644 index 0000000000..deb46cd2ff --- /dev/null +++ b/var/spack/repos/builtin/packages/py-sina/package.py @@ -0,0 +1,44 @@ +# Copyright 2013-2021 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 PySina(PythonPackage): + """Sina allows codes to store, query, and visualize their data through an + easy-to-use Python API. Data that fits its recognized schema can be ingested + into one or more supported backends. + Sina's API is independent of backend and gives users the benefits of a database + without requiring knowledge of one, allowing queries to be expressed in pure + Python. Visualizations are also provided through Python. + + Sina is intended especially for use with run metadata, + allowing users to easily and efficiently find simulation runs that match some + criteria. + """ + + homepage = "https://github.com/LLNL/Sina" + git = "https://github.com/LLNL/Sina.git" + + # notify when the package is updated. + maintainers = [ + 'HaluskaR', + 'estebanpauli', + 'murray55', + 'doutriaux1', + ] + version('1.11.0', tag="v1.11.0") + version('1.10.0', tag="v1.10.0") + + # let's remove dependency on orjson + patch('no_orjson.patch') + depends_on('py-setuptools', type='build') + depends_on('py-enum34', when='^python@:3.3', type=('build', 'run')) + depends_on('py-ujson', type=('build', 'run')) + depends_on("py-sqlalchemy", type=("build", "run")) + depends_on("py-six", type=("build", "run")) + + build_directory = 'python' diff --git a/var/spack/repos/builtin/packages/py-singledispatch/package.py b/var/spack/repos/builtin/packages/py-singledispatch/package.py index aba411640f..29582d6308 100644 --- a/var/spack/repos/builtin/packages/py-singledispatch/package.py +++ b/var/spack/repos/builtin/packages/py-singledispatch/package.py @@ -11,8 +11,12 @@ class PySingledispatch(PythonPackage): pypi = "singledispatch/singledispatch-3.4.0.3.tar.gz" + version('3.7.0', sha256='c1a4d5c1da310c3fd8fccfb8d4e1cb7df076148fd5d858a819e37fffe44f3092') version('3.4.0.3', sha256='5b06af87df13818d14f08a028e42f566640aef80805c3b50c5056b086e3c2b9c') + depends_on('python@2.6:', type=('build', 'run')) depends_on('py-setuptools', type='build') + depends_on('py-setuptools@42:', type='build', when='@3.7:') + depends_on('py-setuptools-scm@3.4.1: +toml', type='build', when='@3.7:') depends_on('py-six', type=('build', 'run')) depends_on('py-ordereddict', when="^python@:2.6", type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-sip/package.py b/var/spack/repos/builtin/packages/py-sip/package.py index 2a6d79fe48..768f2fb989 100644 --- a/var/spack/repos/builtin/packages/py-sip/package.py +++ b/var/spack/repos/builtin/packages/py-sip/package.py @@ -8,16 +8,14 @@ import os from spack import * -class PySip(Package): - """SIP is a tool that makes it very easy to create Python bindings for C - and C++ libraries.""" +class PySip(PythonPackage): + """A Python bindings generator for C/C++ libraries.""" - homepage = "https://www.riverbankcomputing.com/software/sip/intro" - url = "https://www.riverbankcomputing.com/hg/sip/archive/4.19.21.tar.gz" - list_url = "https://www.riverbankcomputing.com/hg/sip/archive" - hg = "https://www.riverbankcomputing.com/hg/sip" + homepage = "https://www.riverbankcomputing.com/software/sip" + pypi = "sip/sip-6.4.0.tar.gz" - version('develop', hg=hg) # wasn't actually able to clone this + version('6.4.0', sha256='42ec368520b8da4a0987218510b1b520b4981e4405086c1be384733affc2bcb0') + version('5.5.0', sha256='5d024c419b30fea8a6de8c71a560c7ab0bc3c221fbfb14d55a5b865bd58eaac5') version('4.19.21', sha256='3bfd58e875a87471c00e008f25a01d8312885aa01efc4f688e5cac861c8676e4') version('4.19.20', sha256='475f85277a6601c406ade508b6c935b9f2a170c16fd3ae9dd4cdee7a4f7f340d') version('4.19.19', sha256='348cd6229b095a3090e851555814f5147bffcb601cec891f1038eb6b38c9d856') @@ -25,47 +23,59 @@ class PySip(Package): version('4.19.15', sha256='02bff1ac89253e12cdf1406ad39f841d0e264b0d96a7de13dfe9e29740df2053') version('4.19.13', sha256='92193fcf990503bf29f03e290efc4ee1812d556efc18acf5c8b88c090177a630') - variant('module', default='sip', description='Name of private SIP module', + variant('module', default='sip', when='@:4', description='Name of private SIP module', values=str, multi=False) - extends('python') + depends_on('python@3.6:', when='@6:', type=('build', 'run')) + depends_on('python@3.5.1:', when='@5:', type=('build', 'run')) + depends_on('py-packaging', when='@5:', type='build') + depends_on('py-setuptools@30.3:', when='@5:', type='build') + depends_on('py-toml', when='@5:', type='build') + depends_on('flex', when='@:4', type='build') + depends_on('bison', when='@:4', type='build') - depends_on('flex', type='build') - depends_on('bison', type='build') - - # https://www.riverbankcomputing.com/static/Docs/sip/installation.html + # needed for @:4 phases = ['configure', 'build', 'install'] + def url_for_version(self, version): + if version < Version('5.0.0'): + return "https://www.riverbankcomputing.com/hg/sip/archive/{0}.tar.gz".format(version.dotted) + return super(PySip, self).url_for_version(version) + @run_before('configure') def prepare(self): - if not os.path.exists('configure.py'): + if self.spec.satisfies('@:4') and not os.path.exists('configure.py'): python('build.py', 'prepare') def configure(self, spec, prefix): - args = [ - '--sip-module={0}'.format(spec.variants['module'].value), - '--bindir={0}'.format(prefix.bin), - '--destdir={0}'.format(site_packages_dir), - '--incdir={0}'.format(python_include_dir), - '--sipdir={0}'.format(prefix.share.sip), - '--stubsdir={0}'.format(site_packages_dir), - ] - - python('configure.py', *args) - + if self.spec.satisfies('@:4'): + args = [ + '--sip-module={0}'.format(spec.variants['module'].value), + '--bindir={0}'.format(prefix.bin), + '--destdir={0}'.format(site_packages_dir), + '--incdir={0}'.format(python_include_dir), + '--sipdir={0}'.format(prefix.share.sip), + '--stubsdir={0}'.format(site_packages_dir), + ] + + python('configure.py', *args) + + @when('@:4') def build(self, spec, prefix): make() + @when('@:4') def install(self, spec, prefix): make('install') @run_after('install') def extend_path_setup(self): - # See github issue #14121 and PR #15297 - module = self.spec.variants['module'].value - if module != 'sip': - module = module.split('.')[0] - with working_dir(site_packages_dir): - with open(os.path.join(module, '__init__.py'), 'w') as f: - f.write('from pkgutil import extend_path\n') - f.write('__path__ = extend_path(__path__, __name__)\n') + if self.spec.satisfies('@:4'): + # See github issue #14121 and PR #15297 + module = self.spec.variants['module'].value + if module != 'sip': + module = module.split('.')[0] + with working_dir(site_packages_dir): + with open(os.path.join(module, '__init__.py'), 'w') as f: + f.write('from pkgutil import extend_path\n') + f.write('__path__ = extend_path(__path__, __name__)\n') diff --git a/var/spack/repos/builtin/packages/py-skl2onnx/package.py b/var/spack/repos/builtin/packages/py-skl2onnx/package.py new file mode 100644 index 0000000000..591fa9c5ea --- /dev/null +++ b/var/spack/repos/builtin/packages/py-skl2onnx/package.py @@ -0,0 +1,23 @@ +# Copyright 2013-2021 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 PySkl2onnx(PythonPackage): + """Convert scikit-learn models to ONNX""" + + homepage = "https://github.com/onnx/sklearn-onnx" + pypi = "skl2onnx/skl2onnx-1.10.3.tar.gz" + + version('1.10.3', sha256='798933378145412b9876ab3ff2c1dd5f241a7296406d786262000afa8d329628') + + depends_on('py-setuptools', type='build') + depends_on('py-numpy@1.15:', type=('build', 'run')) + depends_on('py-scipy@1.0:', type=('build', 'run')) + depends_on('py-protobuf', type=('build', 'run')) + depends_on('py-onnx@1.2.1:', type=('build', 'run')) + depends_on('py-scikit-learn@0.19:', type=('build', 'run')) + depends_on('py-onnxconverter-common@1.7.0:', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-slepc4py/package.py b/var/spack/repos/builtin/packages/py-slepc4py/package.py index b86fe451ed..afbbd7fa77 100644 --- a/var/spack/repos/builtin/packages/py-slepc4py/package.py +++ b/var/spack/repos/builtin/packages/py-slepc4py/package.py @@ -11,12 +11,13 @@ class PySlepc4py(PythonPackage): """ homepage = "https://gitlab.com/slepc/slepc4py" - url = "https://slepc.upv.es/download/distrib/slepc4py-3.16.0.tar.gz" + url = "https://slepc.upv.es/download/distrib/slepc4py-3.16.1.tar.gz" git = "https://gitlab.com/slepc/slepc.git" maintainers = ['joseeroman', 'balay'] version('main', branch='main') + version('3.16.1', sha256='3ce93de975fa3966794efb09c315b6aff17e412197f99edb66bbfa71fc49093b') version('3.16.0', sha256='e18850ebccb1e7c59accfbdbe4d004402abbde7f4e1291b0d2c5b560b308fb88') version('3.15.2', sha256='c87135989c4d95b9c92a5b615a95eddc34b69dad9cc28b27d3cb7dfaec46177b') version('3.15.1', sha256='bcdab6d2101ae00e189f4b33072805358cee2dda806a6b6a8e3c2f1b9f619dfd') diff --git a/var/spack/repos/builtin/packages/py-sphinx-argparse/package.py b/var/spack/repos/builtin/packages/py-sphinx-argparse/package.py new file mode 100644 index 0000000000..a28978a201 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-sphinx-argparse/package.py @@ -0,0 +1,21 @@ +# Copyright 2013-2021 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 PySphinxArgparse(PythonPackage): + """Sphinx extension to automatically document argparse-based commands.""" + + homepage = "https://pypi.org/project/sphinx-argparse" + pypi = "sphinx-argparse/sphinx-argparse-0.3.1.tar.gz" + + maintainers = ['sethrj'] + + version('0.3.1', sha256='82151cbd43ccec94a1530155f4ad34f251aaca6a0ffd5516d7fadf952d32dc1e') + + depends_on('python@2.7.0:2.7,3.5:', type=('build', 'run')) + depends_on('py-sphinx@1.2.0:', type=('build', 'run')) + depends_on('py-setuptools', type='build') diff --git a/var/spack/repos/builtin/packages/py-sphinx-multiversion/package.py b/var/spack/repos/builtin/packages/py-sphinx-multiversion/package.py new file mode 100644 index 0000000000..bbeb14e967 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-sphinx-multiversion/package.py @@ -0,0 +1,21 @@ +# Copyright 2013-2021 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 PySphinxMultiversion(PythonPackage): + """A Sphinx extension for building self-hosted versioned documentation.""" + + homepage = "https://github.com/Holzhaus/sphinx-multiversion" + pypi = "sphinx-multiversion/sphinx-multiversion-0.2.4.tar.gz" + + version('0.2.4', sha256='5cd1ca9ecb5eed63cb8d6ce5e9c438ca13af4fa98e7eb6f376be541dd4990bcb') + version('0.2.3', sha256='e46565ac2f703f3b55652f33c159c8059865f5d13dae7f0e8403e5afc2996f5f') + version('0.2.2', sha256='c0a4f2cbb13eb62b5cd79e2f6901e5d90ea191d3f37e96e1f15b976827de0ac0') + version('0.2.1', sha256='0775847454965005a3a8433c1bf38379f723c026de9c4a7ddd447b0349df90c1') + + depends_on('py-setuptools', type='build') + depends_on('py-sphinx', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-sphinx/package.py b/var/spack/repos/builtin/packages/py-sphinx/package.py index bfd0456165..e7aaff2636 100644 --- a/var/spack/repos/builtin/packages/py-sphinx/package.py +++ b/var/spack/repos/builtin/packages/py-sphinx/package.py @@ -12,6 +12,7 @@ class PySphinx(PythonPackage): homepage = "https://www.sphinx-doc.org/en/master/" pypi = "Sphinx/Sphinx-3.2.0.tar.gz" + version('4.3.1', sha256='32a5b3e9a1b176cc25ed048557d4d3d01af635e6b76c5bc7a43b0a34447fbd45') version('4.1.2', sha256='3092d929cd807926d846018f2ace47ba2f3b671b309c7a89cd3306e80c826b13') version('4.1.1', sha256='23c846a1841af998cb736218539bb86d16f5eb95f5760b1966abcd2d584e62b8') version('4.0.2', sha256='b5c2ae4120bf00c799ba9b3699bc895816d272d120080fbc967292f29b52b48c') @@ -57,8 +58,8 @@ class PySphinx(PythonPackage): depends_on('py-docutils@0.14:0.17', when='@4:', type=('build', 'run')) depends_on('py-docutils@0.12:', when='@:3', type=('build', 'run')) depends_on('py-snowballstemmer@1.1:', type=('build', 'run')) - depends_on('py-babel@1.3:1,2.1:', type=('build', 'run')) - depends_on('py-alabaster@0.7.0:0.7', type=('build', 'run')) + depends_on('py-babel@1.3:', type=('build', 'run')) + depends_on('py-alabaster@0.7', type=('build', 'run')) depends_on('py-imagesize', when='@1.4:', type=('build', 'run')) depends_on('py-requests@2.5.0:', type=('build', 'run')) depends_on('py-setuptools', type=('build', 'run')) @@ -66,3 +67,4 @@ class PySphinx(PythonPackage): depends_on('py-packaging', when='@1.7.4:', type=('build', 'run')) depends_on('py-typing', when='@1.6.1', type=('build', 'run')) depends_on('py-typing', when='@1.6.2:^python@2.7:3.4', type=('build', 'run')) + depends_on('py-colorama@0.3.5:', when='platform=windows', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-stevedore/package.py b/var/spack/repos/builtin/packages/py-stevedore/package.py index 7900375d4e..feb368d633 100644 --- a/var/spack/repos/builtin/packages/py-stevedore/package.py +++ b/var/spack/repos/builtin/packages/py-stevedore/package.py @@ -12,9 +12,14 @@ class PyStevedore(PythonPackage): homepage = "https://docs.openstack.org/stevedore/latest/" pypi = "stevedore/stevedore-1.28.0.tar.gz" + version('3.5.0', sha256='f40253887d8712eaa2bb0ea3830374416736dc8ec0e22f5a65092c1174c44335') version('1.28.0', sha256='f1c7518e7b160336040fee272174f1f7b29a46febb3632502a8f2055f973d60b') - depends_on('python@2.6:') + depends_on('python@2.6:', type=('build', 'run')) + depends_on('python@3.6:', type=('build', 'run'), when='@3.5.0:') - depends_on('py-six@1.10.0:', type=('build', 'run')) - depends_on('py-pbr@2.0.0:2.1.0', type=('build', 'run')) + depends_on('py-setuptools', type='build') + + depends_on('py-six@1.10.0:', type=('build', 'run'), when='@:3.4') + depends_on('py-pbr@2.0.0:2.1.0', type=('build', 'run'), when='@:3.4') + depends_on('py-pbr@2.0.0:', type=('build', 'run'), when='@3.5.0:') diff --git a/var/spack/repos/builtin/packages/py-symengine/package.py b/var/spack/repos/builtin/packages/py-symengine/package.py index 7b5b4d6eda..0411c455bf 100644 --- a/var/spack/repos/builtin/packages/py-symengine/package.py +++ b/var/spack/repos/builtin/packages/py-symengine/package.py @@ -12,16 +12,24 @@ class PySymengine(PythonPackage): homepage = "https://github.com/symengine/symengine.py" pypi = "symengine/symengine-0.2.0.tar.gz" git = "https://github.com/symengine/symengine.py.git" + phases = ['install'] - version('develop', branch='master') + version('master', branch='master') + # pypi source doesn't have necessary files in cmake directory + version('0.8.1', + url='https://github.com/symengine/symengine.py/archive/refs/tags/v0.8.1.tar.gz', + sha256='02fe79e6d5e9b39a1d4e6fee05a2c1d1b10fd032157c7738ed97e32406ffb087') version('0.2.0', sha256='78a14aea7aad5e7cbfb5cabe141581f9bba30e3c319690e5db8ad99fdf2d8885') # Build dependencies - depends_on('python@2.7:2.8,3.3:', type=('build', 'run')) + depends_on('python@2.7:2.8,3.3:', type=('build', 'run'), when='@0.2.0') + depends_on('python@3.6:3', type=('build', 'run'), when='@0.8.1:') depends_on('py-setuptools', type='build') - depends_on('py-cython@0.19.1:', type='build') - depends_on('cmake@2.8.7:', type='build') - depends_on('symengine@0.2.0:') + depends_on('py-cython@0.19.1:', type='build', when='@0.2.0') + depends_on('py-cython@0.29.24:', type='build', when='@0.8.1:') + depends_on('cmake@2.8.12:', type='build') + depends_on('symengine@0.2.0', when='@0.2.0') + depends_on('symengine@0.8.1', when='@0.8.1') - def build_args(self, spec, prefix): + def install_args(self, spec, prefix): return ['--symengine-dir={0}'.format(spec['symengine'].prefix)] diff --git a/var/spack/repos/builtin/packages/py-tensorflow-datasets/package.py b/var/spack/repos/builtin/packages/py-tensorflow-datasets/package.py new file mode 100644 index 0000000000..5a76e3c433 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-tensorflow-datasets/package.py @@ -0,0 +1,37 @@ +# Copyright 2013-2021 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 PyTensorflowDatasets(PythonPackage): + """tensorflow/datasets is a library of datasets ready to use with + TensorFlow.""" + + homepage = "https://github.com/tensorflow/datasets" + pypi = "tensorflow-datasets/tensorflow-datasets-4.4.0.tar.gz" + + version( + "4.4.0", + sha256="3e95a61dec1fdb7b05dabc0dbed1b531e13d6c6fd362411423d0a775e5e9b960", + ) + + depends_on("python@3.6:", type=("build", "run")) + depends_on("py-setuptools", type="build") + depends_on("py-absl-py", type=("build", "run")) + depends_on("py-attrs@18.1.0:", type=("build", "run")) + depends_on("py-dill", type=("build", "run")) + depends_on("py-future", type=("build", "run")) + depends_on("py-numpy", type=("build", "run")) + depends_on("py-promise", type=("build", "run")) + depends_on("py-protobuf@3.12.2:", type=("build", "run")) + depends_on("py-requests@2.19.0:", type=("build", "run")) + depends_on("py-six", type=("build", "run")) + depends_on("py-tensorflow-metadata", type=("build", "run")) + depends_on("py-termcolor", type=("build", "run")) + depends_on("py-tqdm", type=("build", "run")) + depends_on("py-dataclasses", type=("build", "run"), when="python@:3.6") + depends_on("py-typing-extensions", type=("build", "run"), when="python@:3.7") + depends_on("py-importlib-resources", type=("build", "run"), when="python@:3.8") diff --git a/var/spack/repos/builtin/packages/py-tensorflow-metadata/package.py b/var/spack/repos/builtin/packages/py-tensorflow-metadata/package.py new file mode 100644 index 0000000000..e7d489dbdb --- /dev/null +++ b/var/spack/repos/builtin/packages/py-tensorflow-metadata/package.py @@ -0,0 +1,36 @@ +# Copyright 2013-2021 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) + +import tempfile + +from spack import * + + +class PyTensorflowMetadata(PythonPackage): + """Library and standards for schema and statistics. + + TensorFlow Metadata provides standard representations for metadata that are + useful when training machine learning models with TensorFlow.""" + + homepage = "https://pypi.org/project/tensorflow-metadata/" + + # Only available as a wheel on PyPI + url = "https://github.com/tensorflow/metadata/archive/refs/tags/v1.5.0.tar.gz" + + version( + "1.5.0", + sha256="f0ec8aaf62fd772ef908efe4ee5ea3bc0d67dcbf10ae118415b7b206a1d61745", + ) + + depends_on("bazel@0.24.1:", type="build") + depends_on("python@3.7:3", type=("build", "run")) + depends_on("py-setuptools", type="build") + depends_on("py-absl-py@0.9:0.12", type=("build", "run")) + depends_on("py-googleapis-common-protos@1.52.0:1", type=("build", "run")) + depends_on("py-protobuf@3.13:3", type=("build", "run")) + + def setup_build_environment(self, env): + tmp_path = tempfile.mkdtemp(prefix="spack") + env.set("TEST_TMPDIR", tmp_path) diff --git a/var/spack/repos/builtin/packages/py-terminado/package.py b/var/spack/repos/builtin/packages/py-terminado/package.py index 0e7c5c605b..75b60f68ac 100644 --- a/var/spack/repos/builtin/packages/py-terminado/package.py +++ b/var/spack/repos/builtin/packages/py-terminado/package.py @@ -9,6 +9,7 @@ class PyTerminado(PythonPackage): pypi = "terminado/terminado-0.8.3.tar.gz" + version('0.12.1', sha256='b20fd93cc57c1678c799799d117874367cc07a3d2d55be95205b1a88fa08393f') version('0.8.3', sha256='4804a774f802306a7d9af7322193c5390f1da0abb429e082a10ef1d46e6fb2c2') version('0.8.2', sha256='de08e141f83c3a0798b050ecb097ab6259c3f0331b2f7b7750c9075ced2c20c2') version('0.8.1', sha256='55abf9ade563b8f9be1f34e4233c7b7bde726059947a593322e8a553cc4c067a') @@ -17,3 +18,5 @@ class PyTerminado(PythonPackage): depends_on('py-tornado@4:', type=('build', 'run')) depends_on('py-ptyprocess', type=('build', 'run')) depends_on('python@2.7:2.8,3.4:', when='@0.8.2:', type=('build', 'run')) + depends_on('python@3.6:', when='@0.12.1:', type=('build', 'run')) + depends_on('py-setuptools@40.8.0:', when='@0.12.1:', type='build') diff --git a/var/spack/repos/builtin/packages/py-tern/package.py b/var/spack/repos/builtin/packages/py-tern/package.py new file mode 100644 index 0000000000..68758667a0 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-tern/package.py @@ -0,0 +1,22 @@ +# Copyright 2013-2021 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 PyTern(PythonPackage): + """ + Tern is a software package inspection tool that can create a Software Bill + of Materials (SBoM) for containers. + """ + + pypi = "tern/tern-2.8.0.tar.gz" + git = "https://github.com/tern-tools/tern.git" + + version('main', branch='main') + + depends_on('py-setuptools', type='build') + depends_on('py-wheel', type='build') + depends_on('py-pip', type='build') diff --git a/var/spack/repos/builtin/packages/py-testpath/package.py b/var/spack/repos/builtin/packages/py-testpath/package.py index f5f8cd4a3a..9766e052ea 100644 --- a/var/spack/repos/builtin/packages/py-testpath/package.py +++ b/var/spack/repos/builtin/packages/py-testpath/package.py @@ -13,4 +13,7 @@ class PyTestpath(PythonPackage): homepage = "https://github.com/jupyter/testpath" pypi = "testpath/testpath-0.4.2.tar.gz" + version('0.5.0', sha256='1acf7a0bcd3004ae8357409fc33751e16d37ccc650921da1094a86581ad1e417') version('0.4.2', sha256='b694b3d9288dbd81685c5d2e7140b81365d46c29f5db4bc659de5aa6b98780f8') + + depends_on('python@3.5:', type=('build', 'run'), when='@0.5.0:') diff --git a/var/spack/repos/builtin/packages/py-theano/package.py b/var/spack/repos/builtin/packages/py-theano/package.py index 5d62a8f136..5fd3b96e04 100644 --- a/var/spack/repos/builtin/packages/py-theano/package.py +++ b/var/spack/repos/builtin/packages/py-theano/package.py @@ -15,12 +15,13 @@ class PyTheano(PythonPackage, CudaPackage): git = "https://github.com/Theano/Theano.git" version('master', branch='master') + version('1.0.5', sha256='6e9439dd53ba995fcae27bf20626074bfc2fff446899dc5c53cb28c1f9202e89') version('1.0.4', sha256='35c9bbef56b61ffa299265a42a4e8f8cb5a07b2997dabaef0f8830b397086913') version('1.0.2', sha256='6768e003d328a17011e6fca9126fbb8a6ffd3bb13cb21c450f3e724cca29abde') version('1.0.1', sha256='88d8aba1fe2b6b75eacf455d01bc7e31e838c5a0fb8c13dde2d9472495ff4662') version('0.8.2', sha256='7463c8f7ed1a787bf881f36d38a38607150186697e7ce7e78bfb94b7c6af8930') - depends_on('python@2.6:2.8,3.3:') + depends_on('python@2.6:2.8,3.3:', type=('build', 'run')) depends_on('py-setuptools', type=('build', 'run')) depends_on('py-numpy@1.9.1:', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-threadpoolctl/package.py b/var/spack/repos/builtin/packages/py-threadpoolctl/package.py index 3f93c470a9..e4fa34ab2f 100644 --- a/var/spack/repos/builtin/packages/py-threadpoolctl/package.py +++ b/var/spack/repos/builtin/packages/py-threadpoolctl/package.py @@ -12,6 +12,8 @@ class PyThreadpoolctl(PythonPackage): homepage = "https://github.com/joblib/threadpoolctl" pypi = "threadpoolctl/threadpoolctl-2.0.0.tar.gz" + version('3.0.0', sha256='d03115321233d0be715f0d3a5ad1d6c065fe425ddc2d671ca8e45e9fd5d7a52a') version('2.0.0', sha256='48b3e3e9ee079d6b5295c65cbe255b36a3026afc6dde3fb49c085cd0c004bbcf') depends_on('python@3.5:', type=('build', 'run')) + depends_on('python@3.6:', type=('build', 'run'), when='@3.0.0:') diff --git a/var/spack/repos/builtin/packages/py-tifffile/package.py b/var/spack/repos/builtin/packages/py-tifffile/package.py index fdbfd27233..3ea916d85e 100644 --- a/var/spack/repos/builtin/packages/py-tifffile/package.py +++ b/var/spack/repos/builtin/packages/py-tifffile/package.py @@ -9,9 +9,10 @@ from spack import * class PyTifffile(PythonPackage): """Read and write image data from and to TIFF files.""" - homepage = "https://github.com/blink1073/tifffile" + homepage = "https://github.com/cgohlke/tifffile" pypi = "tifffile/tifffile-0.12.1.tar.gz" + version('2021.11.2', sha256='153e31fa1d892f482fabb2ae9f2561fa429ee42d01a6f67e58cee13637d9285b') version('2020.10.1', sha256='799feeccc91965b69e1288c51a1d1118faec7f40b2eb89ad2979591b85324830') version('0.12.1', sha256='802367effe86b0d1e64cb5c2ed886771f677fa63260b945e51a27acccdc08fa1') diff --git a/var/spack/repos/builtin/packages/py-tomlkit/package.py b/var/spack/repos/builtin/packages/py-tomlkit/package.py index 41ea206e34..202240510a 100644 --- a/var/spack/repos/builtin/packages/py-tomlkit/package.py +++ b/var/spack/repos/builtin/packages/py-tomlkit/package.py @@ -12,6 +12,7 @@ class PyTomlkit(PythonPackage): homepage = "https://github.com/sdispater/tomlkit" pypi = "tomlkit/tomlkit-0.7.0.tar.gz" + version('0.7.2', sha256='d7a454f319a7e9bd2e249f239168729327e4dd2d27b17dc68be264ad1ce36754') version('0.7.0', sha256='ac57f29693fab3e309ea789252fcce3061e19110085aa31af5446ca749325618') depends_on('python@2.7:2.8,3.5:', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-torch/package.py b/var/spack/repos/builtin/packages/py-torch/package.py index 19805f48a0..72c786934e 100644 --- a/var/spack/repos/builtin/packages/py-torch/package.py +++ b/var/spack/repos/builtin/packages/py-torch/package.py @@ -23,6 +23,7 @@ class PyTorch(PythonPackage, CudaPackage): import_modules = ['torch', 'torch.autograd', 'torch.nn', 'torch.utils'] version('master', branch='master', submodules=True) + version('1.10.1', tag='v1.10.1', submodules=True) version('1.10.0', tag='v1.10.0', submodules=True) version('1.9.1', tag='v1.9.1', submodules=True) version('1.9.0', tag='v1.9.0', submodules=True) @@ -219,6 +220,11 @@ class PyTorch(PythonPackage, CudaPackage): # to detect openmp settings used by Fujitsu compiler. patch('detect_omp_of_fujitsu_compiler.patch', when='%fj') + # Fix compilation of +distributed~tensorpipe + # https://github.com/pytorch/pytorch/issues/68002 + patch('https://github.com/pytorch/pytorch/commit/c075f0f633fa0136e68f0a455b5b74d7b500865c.patch', + sha256='e69e41b5c171bfb00d1b5d4ee55dd5e4c8975483230274af4ab461acd37e40b8', when='@1.10.0+distributed~tensorpipe') + # Both build and install run cmake/make/make install # Only run once to speed up build times phases = ['install'] diff --git a/var/spack/repos/builtin/packages/py-torchgeo/package.py b/var/spack/repos/builtin/packages/py-torchgeo/package.py index 931f8d474c..dd8086a118 100644 --- a/var/spack/repos/builtin/packages/py-torchgeo/package.py +++ b/var/spack/repos/builtin/packages/py-torchgeo/package.py @@ -14,31 +14,39 @@ class PyTorchgeo(PythonPackage): """ homepage = "https://github.com/microsoft/torchgeo" + pypi = "torchgeo/torchgeo-0.1.0.tar.gz" git = "https://github.com/microsoft/torchgeo.git" maintainers = ['adamjstewart', 'calebrob6'] version('main', branch='main') + version('0.1.1', sha256='6e28132f75e9d8cb3a3a0e8b443aba3cde26c8f3140b9426139ee6e8f8058b26') + version('0.1.0', sha256='44eb3cf10ab2ac63ff95e92fcd3807096bac3dcb9bdfe15a8edac9d440d2f323') variant('datasets', default=False, description='Install optional dataset dependencies') - variant('docs', default=False, description='Install documentation dependencies') variant('style', default=False, description='Install style checking tools') variant('tests', default=False, description='Install testing tools') - variant('train', default=False, description='Install optional trainer dependencies') # Required dependencies depends_on('python@3.6:+bz2', type=('build', 'run')) - depends_on('py-setuptools@30.4:', type='build') + depends_on('py-setuptools@42:', type='build') depends_on('py-einops', type=('build', 'run')) depends_on('py-fiona@1.5:', type=('build', 'run')) + depends_on('py-kornia@0.5.4:', type=('build', 'run')) depends_on('py-matplotlib', type=('build', 'run')) depends_on('py-numpy', type=('build', 'run')) + depends_on('py-omegaconf@2.1:', type=('build', 'run')) depends_on('pil@2.9:', type=('build', 'run')) depends_on('py-pyproj@2.2:', type=('build', 'run')) + depends_on('py-pytorch-lightning@1.3:', type=('build', 'run')) depends_on('py-rasterio@1.0.16:', type=('build', 'run')) depends_on('py-rtree@0.5:', type=('build', 'run')) + depends_on('py-scikit-learn@0.18:', type=('build', 'run')) depends_on('py-shapely@1.3:', type=('build', 'run')) + depends_on('py-segmentation-models-pytorch@0.2:', type=('build', 'run')) + depends_on('py-timm@0.2.1:', type=('build', 'run')) depends_on('py-torch@1.7:', type=('build', 'run')) + depends_on('py-torchmetrics', type=('build', 'run')) depends_on('py-torchvision@0.3:', type=('build', 'run')) # Optional dependencies @@ -50,28 +58,14 @@ class PyTorchgeo(PythonPackage): depends_on('py-rarfile@3:', type='run') depends_on('py-scipy@0.9:', type='run') - with when('+docs'): - depends_on('py-ipywidgets@7:', type='run') - depends_on('py-jupyterlab', type='run') - depends_on('py-nbmake@0.1:', type='run') - depends_on('py-nbsphinx@0.8.5:', type='run') - depends_on('py-sphinx@3:', type='run') - depends_on('py-pydocstyle@6.1:+toml', type='run') - depends_on('py-pytorch-sphinx-theme', type='run') - with when('+style'): depends_on('py-black@21:', type='run') depends_on('py-flake8@3.8:', type='run') depends_on('py-isort@5.8:+colors', type='run') + depends_on('py-pydocstyle@6.1:+toml', type='run') with when('+tests'): depends_on('py-mypy@0.900:', type='run') + depends_on('py-nbmake@0.1:', type='run') depends_on('py-pytest@6:', type='run') depends_on('py-pytest-cov@2.4:', type='run') - - with when('+train'): - depends_on('py-omegaconf@2.1:', type='run') - depends_on('py-pytorch-lightning@1.3:', type='run') - depends_on('py-scikit-learn@0.18:', type='run') - depends_on('py-segmentation-models-pytorch@0.2:', type='run') - depends_on('py-torchmetrics', type='run') diff --git a/var/spack/repos/builtin/packages/py-torchvision/package.py b/var/spack/repos/builtin/packages/py-torchvision/package.py index 0a8a54fd26..442c40266d 100644 --- a/var/spack/repos/builtin/packages/py-torchvision/package.py +++ b/var/spack/repos/builtin/packages/py-torchvision/package.py @@ -16,6 +16,7 @@ class PyTorchvision(PythonPackage): version('main', branch='main') version('master', branch='main', deprecated=True) + version('0.11.2', sha256='55689c57c29f82438a133d0af3315991037be59c8e02471bdcaa31731154a714') version('0.11.1', sha256='32a06ccf755e4d75006ce03701f207652747a63dbfdf65f0f20a1b6f93a2e834') version('0.11.0', sha256='8e85acf8f5d39f27e92e610ccb506dac0bf4412bb366a318d2aa5f384cbd4d2c') version('0.10.1', sha256='4d595cf0214c8adc817f8e3cd0043a027b52b481e05d67b04f4947fcb43d4277') @@ -51,6 +52,7 @@ class PyTorchvision(PythonPackage): # https://github.com/pytorch/vision#installation depends_on('py-torch@master', when='@master', type=('build', 'link', 'run')) + depends_on('py-torch@1.10.1', when='@0.11.2', type=('build', 'link', 'run')) depends_on('py-torch@1.10.0', when='@0.11.0:0.11.1', type=('build', 'link', 'run')) depends_on('py-torch@1.9.1', when='@0.10.1', type=('build', 'link', 'run')) depends_on('py-torch@1.9.0', when='@0.10.0', type=('build', 'link', 'run')) diff --git a/var/spack/repos/builtin/packages/py-traitlets/package.py b/var/spack/repos/builtin/packages/py-traitlets/package.py index 3fc0241114..5ea86a8ab4 100644 --- a/var/spack/repos/builtin/packages/py-traitlets/package.py +++ b/var/spack/repos/builtin/packages/py-traitlets/package.py @@ -11,6 +11,7 @@ class PyTraitlets(PythonPackage): pypi = "traitlets/traitlets-5.0.4.tar.gz" + version('5.1.1', sha256='059f456c5a7c1c82b98c2e8c799f39c9b8128f6d0d46941ee118daace9eb70c7') version('5.0.4', sha256='86c9351f94f95de9db8a04ad8e892da299a088a64fd283f9f6f18770ae5eae1b') version('4.3.3', sha256='d023ee369ddd2763310e4c3eae1ff649689440d4ae59d7485eb4cfbbe3e359f7') version('4.3.2', sha256='9c4bd2d267b7153df9152698efb1050a5d84982d3384a37b2c1f7723ba3e7835') @@ -24,7 +25,7 @@ class PyTraitlets(PythonPackage): depends_on('python@3.7:', when='@5:', type=('build', 'run')) depends_on('python@2.7:2.8,3.3:', type=('build', 'run')) - depends_on('py-ipython-genutils', type=('build', 'run')) + depends_on('py-ipython-genutils', when='@:5.0', type=('build', 'run')) depends_on('py-six', when='@:4', type=('build', 'run')) depends_on('py-decorator', when='@:4', type=('build', 'run')) depends_on('py-enum34', when='^python@:3.3', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-traits/package.py b/var/spack/repos/builtin/packages/py-traits/package.py index 3fd2871b3e..54c248df07 100644 --- a/var/spack/repos/builtin/packages/py-traits/package.py +++ b/var/spack/repos/builtin/packages/py-traits/package.py @@ -10,6 +10,7 @@ class PyTraits(PythonPackage): homepage = "https://docs.enthought.com/traits" pypi = "traits/traits-6.0.0.tar.gz" + version('6.3.1', sha256='ebdd9b067a262045840a85e3ff34e1567ce4e9b6548c716cdcc82b5884ed9100') version('6.2.0', sha256='16fa1518b0778fd53bf0547e6a562b1787bf68c8f6b7995a13bd1902529fdb0c') version('6.0.0', sha256='dbcd70166feca434130a1193284d5819ca72ffbc8dbce8deeecc0cebb41a3bfb') diff --git a/var/spack/repos/builtin/packages/py-trojanzoo-sphinx-theme/package.py b/var/spack/repos/builtin/packages/py-trojanzoo-sphinx-theme/package.py new file mode 100644 index 0000000000..a351ce817c --- /dev/null +++ b/var/spack/repos/builtin/packages/py-trojanzoo-sphinx-theme/package.py @@ -0,0 +1,20 @@ +# Copyright 2013-2021 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 PyTrojanzooSphinxTheme(PythonPackage): + """TrojanZoo Sphinx Theme""" + + homepage = "https://github.com/ain-soph/trojanzoo_sphinx_theme" + pypi = "trojanzoo_sphinx_theme/trojanzoo_sphinx_theme-0.1.0.tar.gz" + + version('0.1.0', sha256='7b80d70ec84279156dcb9668d3a8a135be1d0d54e20f554fc03ad22d9ff5e7b3') + + depends_on('python@3:', type=('build', 'run')) + depends_on('py-setuptools@40.9:', type='build') + depends_on('py-sphinx@4.2:', type=('build', 'run')) + depends_on('py-docutils@0.17.1:', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-tweedledum/package.py b/var/spack/repos/builtin/packages/py-tweedledum/package.py new file mode 100644 index 0000000000..e6ed41ffbf --- /dev/null +++ b/var/spack/repos/builtin/packages/py-tweedledum/package.py @@ -0,0 +1,25 @@ +# Copyright 2013-2021 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) + + +class PyTweedledum(PythonPackage): + """tweedledum is a library for synthesis, compilation, and + optimization of quantum circuits. The library is written to be + scalable up to problem sizes in which quantum circuits outperform + classical ones. Also, it is meant to be used both independently + and alongside established tools.""" + + homepage = "https://github.com/boschmitt/tweedledum" + pypi = 'tweedledum/tweedledum-1.1.1.tar.gz' + + version('1.1.1', sha256='58d6f7a988b10c31be3faa1faf3e58288ef7e8159584bfa6ded45742f390309f') + depends_on('python@3.6:', type=('build', 'run')) + depends_on('py-setuptools@42:', type='build') + depends_on('py-scikit-build@0.12:', type='build') + depends_on('py-cmake@3.18:', type='build') + depends_on('py-ninja', type='build') + depends_on('py-wheel', type='build') + depends_on('eigen@3.3:') + depends_on('nlohmann-json@3.9.0:') diff --git a/var/spack/repos/builtin/packages/py-twisted/package.py b/var/spack/repos/builtin/packages/py-twisted/package.py index 82354c3456..18dbc1527b 100644 --- a/var/spack/repos/builtin/packages/py-twisted/package.py +++ b/var/spack/repos/builtin/packages/py-twisted/package.py @@ -9,11 +9,92 @@ from spack import * class PyTwisted(PythonPackage): """An asynchronous networking framework written in Python""" homepage = "https://twistedmatrix.com/" - pypi = "Twisted/Twisted-15.3.0.tar.bz2" + pypi = "Twisted/Twisted-21.7.0.tar.gz" + version('21.7.0', sha256='2cd652542463277378b0d349f47c62f20d9306e57d1247baabd6d1d38a109006') version('15.4.0', sha256='78862662fa9ae29654bc2b9d349c3f1d887e6b2ed978512c4442d53ea861f05c') version('15.3.0', sha256='025729751cf898842262375a40f70ae1d246daea88369eab9f6bb96e528bf285') + depends_on('python@3.6.7:', type=('build', 'run'), when='@21.7.0:') + depends_on('py-setuptools', type='build') + depends_on('py-setuptools@35.0.2:', type='build', when='@21.7.0:') + depends_on('py-zope-interface@3.6.0:', type=('build', 'run'), when='^python@:2') depends_on('py-zope-interface@4.0.2:', type=('build', 'run'), when='^python@3:') + depends_on('py-zope-interface@4.4.2:', type=('build', 'run'), when='@21.7.0:') + + depends_on('py-incremental@21.3.0:', type=('build', 'run'), when='@21.7.0:') + depends_on('py-constantly@15.1:', type=('build', 'run'), when='@21.7.0:') + depends_on('py-automat@0.8.0:', type=('build', 'run'), when='@21.7.0:') + depends_on('py-hyperlink@17.1.1:', type=('build', 'run'), when='@21.7.0:') + depends_on('py-attrs@19.2.0:', type=('build', 'run'), when='@21.7.0:') + depends_on('py-typing-extensions@3.6.5:', type=('build', 'run'), when='@21.7.0:') + + def url_for_version(self, version): + url = "https://pypi.io/packages/source/T/Twisted/" + + if version <= Version('20.3.0'): + url += 'Twisted-{0}.tar.bz2' + else: + url += 'Twisted-{0}.tar.gz' + + url = url.format(version) + return url + + @property + def import_modules(self): + modules = ['twisted', + 'twisted.positioning', + 'twisted.positioning.test', + 'twisted.protocols', + 'twisted.protocols.test', + 'twisted.protocols.haproxy', + 'twisted.protocols.haproxy.test', + 'twisted.web', + 'twisted.web._auth', + 'twisted.web.test', + 'twisted.scripts', + 'twisted.scripts.test', + 'twisted.runner', + 'twisted.runner.test', + 'twisted.cred', + 'twisted.cred.test', + 'twisted.plugins', + 'twisted.enterprise', + 'twisted.logger', + 'twisted.logger.test', + 'twisted.persisted', + 'twisted.persisted.test', + 'twisted.names', + 'twisted.names.test', + 'twisted.pair', + 'twisted.pair.test', + 'twisted.test', + 'twisted.tap', + 'twisted.python', + 'twisted.python.test', + 'twisted.trial', + 'twisted.trial._dist', + 'twisted.trial._dist.test', + 'twisted.trial.test', + 'twisted.words', + 'twisted.words.protocols', + 'twisted.words.protocols.jabber', + 'twisted.words.im', + 'twisted.words.test', + 'twisted.words.xish', + 'twisted.spread', + 'twisted.spread.test', + 'twisted.conch', + 'twisted.conch.scripts', + 'twisted.conch.ui', + 'twisted.conch.client', + 'twisted.conch.openssh_compat', + 'twisted.conch.test', + 'twisted.conch.insults', + 'twisted.conch.ssh', + 'twisted.internet', + 'twisted.internet.test'] + + return modules diff --git a/var/spack/repos/builtin/packages/py-uhi/package.py b/var/spack/repos/builtin/packages/py-uhi/package.py new file mode 100644 index 0000000000..f79e9ab1e4 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-uhi/package.py @@ -0,0 +1,22 @@ +# Copyright 2013-2021 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 PyUhi(PythonPackage): + """Unified Histogram Interface: + tools to help library authors work with histograms""" + + homepage = "https://github.com/Scikit-HEP/uhi" + pypi = "uhi/uhi-0.3.0.tar.gz" + + version('0.3.0', sha256='3f441bfa89fae11aa762ae1ef1b1b454362d228e9084477773ffb82d6e9f5d2c') + + depends_on('python@3.6:', type=('build', 'run')) + depends_on('py-numpy@1.13.3:', type=('build', 'run')) + depends_on('py-typing-extensions@3.7:', type=('build', 'run'), when='^python@:3.7') + depends_on('py-setuptools', type='build') + # depends_on('py-poetry-core@1:', type='build') -- WIP diff --git a/var/spack/repos/builtin/packages/py-uproot/package.py b/var/spack/repos/builtin/packages/py-uproot/package.py index 06cccf211a..33bca1742e 100644 --- a/var/spack/repos/builtin/packages/py-uproot/package.py +++ b/var/spack/repos/builtin/packages/py-uproot/package.py @@ -23,6 +23,7 @@ class PyUproot(PythonPackage): tags = ['hep'] + version('4.1.8', sha256='09c46edc864520af50d018055e3d3577a4c6c37489484a664edfa4f1496b6755') version('4.0.11', sha256='5c8f62c7eeaa50e1315e05469580130d0bcc50a6cb4456825777f73cfaf5938a') version('4.0.10', sha256='b7f9786d87227fcdc6b84305a6219cd615844f934e3b7c2509e2d4ed095950ab') version('4.0.9', sha256='345c20dd4e1921e3493200bf9ed4079909fb1277d02faf3136e19f4b90f8aa86') @@ -42,6 +43,7 @@ class PyUproot(PythonPackage): depends_on('python@2.6:2,3.5:', type=('build', 'run')) depends_on('py-setuptools', type='build') + depends_on('py-setuptools@42:', type='build', when='@4.1.8:') depends_on('py-numpy', type=('build', 'run')) depends_on('xrootd', when="+xrootd") diff --git a/var/spack/repos/builtin/packages/py-vector-quantize-pytorch/package.py b/var/spack/repos/builtin/packages/py-vector-quantize-pytorch/package.py new file mode 100644 index 0000000000..747060c868 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-vector-quantize-pytorch/package.py @@ -0,0 +1,22 @@ +# Copyright 2013-2021 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 PyVectorQuantizePytorch(PythonPackage): + """A vector quantization library originally transcribed + from Deepmind's tensorflow implementation, made + conveniently into a package. It uses exponential moving + averages to update the dictionary.""" + + homepage = "https://github.com/lucidrains/vector-quantize-pytorch" + pypi = "vector_quantize_pytorch/vector_quantize_pytorch-0.3.9.tar.gz" + + version('0.3.9', sha256='783ca76251299f0e3eb244062bc05c4416bb29157e57077e4a8969c5277f05ee') + + depends_on('py-setuptools', type='build') + depends_on('py-einops', type=('build', 'run')) + depends_on('py-torch', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-vector/package.py b/var/spack/repos/builtin/packages/py-vector/package.py new file mode 100644 index 0000000000..910d100a09 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-vector/package.py @@ -0,0 +1,24 @@ +# Copyright 2013-2021 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 PyVector(PythonPackage): + """Vector classes and utilities""" + + homepage = "https://github.com/scikit-hep/vector" + pypi = "vector/vector-0.8.4.tar.gz" + + version('0.8.4', sha256='ef97bfec0263766edbb74c290401f89921f8d11ae9e4a0ffd904ae40674f1239') + + depends_on('python@3.6:', type=('build', 'run')) + depends_on('py-setuptools@42:', type='build') + depends_on('py-setuptools-scm@3.4: +toml', type='build') + depends_on('py-wheel', type='build') + depends_on('py-numpy@1.13.3:', type=('build', 'run')) + depends_on('py-packaging@19.0:', type=('build', 'run')) + depends_on('py-importlib-metadata@0.22:', type=('build', 'run'), when='^python@:3.7') + depends_on('py-typing-extensions', type=('build', 'run'), when='^python@:3.7') diff --git a/var/spack/repos/builtin/packages/py-virtualenv-clone/package.py b/var/spack/repos/builtin/packages/py-virtualenv-clone/package.py index 422c6489c8..ee87a76d6f 100644 --- a/var/spack/repos/builtin/packages/py-virtualenv-clone/package.py +++ b/var/spack/repos/builtin/packages/py-virtualenv-clone/package.py @@ -12,8 +12,10 @@ class PyVirtualenvClone(PythonPackage): homepage = "https://github.com/edwardgeorge/virtualenv-clone" pypi = "virtualenv-clone/virtualenv-clone-0.2.6.tar.gz" + version('0.5.7', sha256='418ee935c36152f8f153c79824bb93eaf6f0f7984bae31d3f48f350b9183501a') version('0.2.6', sha256='6b3be5cab59e455f08c9eda573d23006b7d6fb41fae974ddaa2b275c93cc4405') - depends_on('python@2.6:') + depends_on('python@2.6:', type=('build', 'run')) + depends_on('python@2.7:2,3.4:', type=('build', 'run'), when='@0.5.7:') # not just build-time, requires pkg_resources depends_on('py-setuptools', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-virtualenv/package.py b/var/spack/repos/builtin/packages/py-virtualenv/package.py index 6098c804fe..82b500fb75 100644 --- a/var/spack/repos/builtin/packages/py-virtualenv/package.py +++ b/var/spack/repos/builtin/packages/py-virtualenv/package.py @@ -12,6 +12,7 @@ class PyVirtualenv(PythonPackage): homepage = "https://virtualenv.pypa.io/" pypi = "virtualenv/virtualenv-16.7.6.tar.gz" + version('20.10.0', sha256='576d05b46eace16a9c348085f7d0dc8ef28713a2cabaa1cf0aea41e8f12c9218') version('16.7.6', sha256='5d370508bf32e522d79096e8cbea3499d47e624ac7e11e9089f9397a0b3318df') version('16.4.1', sha256='5a3ecdfbde67a4a3b3111301c4d64a5b71cf862c8c42958d30cf3253df1f29dd') version('16.0.0', sha256='ca07b4c0b54e14a91af9f34d0919790b016923d157afda5efdde55c96718f752') @@ -21,6 +22,18 @@ class PyVirtualenv(PythonPackage): version('1.11.6', sha256='3e7a4c151e2ee97f51db0215bfd2a073b04a91e9786df6cb67c916f16abe04f7') depends_on('python@2.7:2.8,3.4:', type=('build', 'run')) + depends_on('python@2.7:2.8,3.5:', type=('build', 'run'), when='@20.10.0:') # not just build-time, requires pkg_resources depends_on('py-setuptools@40.6.3:', type=('build', 'run')) + depends_on('py-setuptools@41.00.03:', type=('build', 'run'), when='@20.10.0:') + depends_on('py-setuptools-scm@2:', type=('build', 'run'), when='@20.10.0:') + + depends_on('py-backports-entry-points-selectable @1.0.4:', type=('build', 'run'), when='@20.10.0:') + depends_on('py-distlib@0.3.1:0', type=('build', 'run'), when='@20.10.0:') + depends_on('py-filelock@3.2:3', type=('build', 'run'), when='@20.10.0:') + depends_on('py-platformdirs@2:2', type=('build', 'run'), when='@20.10.0:') + depends_on('py-six@1.9.0:1', type=('build', 'run'), when='@20.10.0:') + depends_on('py-importlib-metadata@0.12:', type=('build', 'run'), when='@20.10.0: ^python@:3.7') + depends_on('py-importlib-resources@1:', type=('build', 'run'), when='@20.10.0: ^python@:3.6') + depends_on('py-pathlib2', type=('build', 'run'), when='@20.10.0: ^python@:3.3') diff --git a/var/spack/repos/builtin/packages/py-virtualenvwrapper/package.py b/var/spack/repos/builtin/packages/py-virtualenvwrapper/package.py index 61aab2c210..8687fe4375 100644 --- a/var/spack/repos/builtin/packages/py-virtualenvwrapper/package.py +++ b/var/spack/repos/builtin/packages/py-virtualenvwrapper/package.py @@ -16,9 +16,11 @@ class PyVirtualenvwrapper(PythonPackage): homepage = "https://bitbucket.org/virtualenvwrapper/virtualenvwrapper.git" pypi = "virtualenvwrapper/virtualenvwrapper-4.8.2.tar.gz" + version('4.8.4', sha256='51a1a934e7ed0ff221bdd91bf9d3b604d875afbb3aa2367133503fee168f5bfa') version('4.8.2', sha256='18d8e4c500c4c4ee794f704e050cf2bbb492537532a4521d1047e7dd1ee4e374') depends_on('python@2.6:') + depends_on('py-pbr', type='build', when='@4.8.4:') depends_on('py-virtualenv', type=('build', 'run')) depends_on('py-virtualenv-clone', type=('build', 'run')) depends_on('py-stevedore', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-warpx/package.py b/var/spack/repos/builtin/packages/py-warpx/package.py index ba740442c0..e9ef28304d 100644 --- a/var/spack/repos/builtin/packages/py-warpx/package.py +++ b/var/spack/repos/builtin/packages/py-warpx/package.py @@ -18,7 +18,7 @@ class PyWarpx(PythonPackage): """ homepage = "https://ecp-warpx.github.io" - url = "https://github.com/ECP-WarpX/WarpX/archive/refs/tags/21.04.tar.gz" + url = "https://github.com/ECP-WarpX/WarpX/archive/refs/tags/21.12.tar.gz" git = "https://github.com/ECP-WarpX/WarpX.git" maintainers = ['ax3l', 'dpgrote', 'RemiLehe'] @@ -27,6 +27,7 @@ class PyWarpx(PythonPackage): # NOTE: if you update the versions here, also see warpx version('develop', branch='development') + version('21.12', sha256='847c98aac20c73d94c823378803c82be9a14139f1c14ea483757229b452ce4c1') version('21.11', sha256='ce60377771c732033a77351cd3500b24b5d14b54a5adc7a622767b9251c10d0b') version('21.10', sha256='d372c573f0360094d5982d64eceeb0149d6620eb75e8fdbfdc6777f3328fb454') version('21.09', sha256='861a65f11846541c803564db133c8678b9e8779e69902ef1637b21399d257eab') @@ -39,18 +40,20 @@ class PyWarpx(PythonPackage): variant('mpi', default=True, description='Enable MPI support') - for v in ['21.11', '21.10', '21.09', '21.08', '21.07', '21.06', '21.05', - '21.04', 'develop']: + for v in ['21.12', '21.11', '21.10', '21.09', '21.08', '21.07', '21.06', + '21.05', '21.04', 'develop']: depends_on('warpx@{0}'.format(v), when='@{0}'.format(v), type=['build', 'link']) - depends_on('python@3.6:', type=('build', 'run')) + depends_on('python@3.6:3.9', type=('build', 'run')) depends_on('py-numpy@1.15.0:1', type=('build', 'run')) - depends_on('py-mpi4py@2.0.0:', type=('build', 'run'), when='+mpi') + depends_on('py-mpi4py@2.1.0:', type=('build', 'run'), when='+mpi') depends_on('py-periodictable@1.5:1', type=('build', 'run')) - depends_on('py-picmistandard@0.0.14', type=('build', 'run')) - depends_on('py-setuptools@38.6:', type='build') + depends_on('py-picmistandard@0.0.14', type=('build', 'run'), when='@21.03:21.11') + depends_on('py-picmistandard@0.0.16', type=('build', 'run'), when='@21.12') + depends_on('py-setuptools@42:', type='build') + depends_on('py-cmake@3.15:3', type='build') depends_on('py-wheel', type='build') depends_on('warpx +lib ~mpi +shared', type=('build', 'link'), when='~mpi') depends_on('warpx +lib +mpi +shared', type=('build', 'link'), when='+mpi') diff --git a/var/spack/repos/builtin/packages/py-wcwidth/package.py b/var/spack/repos/builtin/packages/py-wcwidth/package.py index 67c05b27c4..56688f1835 100644 --- a/var/spack/repos/builtin/packages/py-wcwidth/package.py +++ b/var/spack/repos/builtin/packages/py-wcwidth/package.py @@ -11,6 +11,8 @@ class PyWcwidth(PythonPackage): pypi = "wcwidth/wcwidth-0.1.7.tar.gz" + version('0.2.5', sha256='c4d647b99872929fdb7bdcaa4fbe7f01413ed3d98077df798530e5b04f116c83') version('0.1.7', sha256='3df37372226d6e63e1b1e1eda15c594bca98a22d33a23832a90998faa96bc65e') depends_on('py-setuptools', type='build') + depends_on('py-backports-functools-lru-cache@1.2.1:', when='@0.2.5: ^python@:3.1') diff --git a/var/spack/repos/builtin/packages/py-websocket-client/package.py b/var/spack/repos/builtin/packages/py-websocket-client/package.py index 3cdef8b4e9..6c26c7b4b0 100644 --- a/var/spack/repos/builtin/packages/py-websocket-client/package.py +++ b/var/spack/repos/builtin/packages/py-websocket-client/package.py @@ -8,14 +8,19 @@ class PyWebsocketClient(PythonPackage): """WebSocket client for Python. hybi13 is supported.""" homepage = "https://github.com/websocket-client/websocket-client.git" - pypi = "websocket_client/websocket_client-0.57.0.tar.gz" + pypi = "websocket-client/websocket-client-0.57.0.tar.gz" - version('0.57.0', sha256='d735b91d6d1692a6a181f2a8c9e0238e5f6373356f561bb9dc4c7af36f452010') - version('0.56.0', sha256='1fd5520878b68b84b5748bb30e592b10d0a91529d5383f74f4964e72b297fd3a') - version('0.48.0', sha256='18f1170e6a1b5463986739d9fd45c4308b0d025c1b2f9b88788d8f69e8a5eb4a') + version('1.2.1', sha256='8dfb715d8a992f5712fff8c843adae94e22b22a99b2c5e6b0ec4a1a981cc4e0d') + version('0.57.0', sha256='d735b91d6d1692a6a181f2a8c9e0238e5f6373356f561bb9dc4c7af36f452010', + url='https://files.pythonhosted.org/packages/source/w/websocket_client/websocket_client-0.57.0.tar.gz') + version('0.56.0', sha256='1fd5520878b68b84b5748bb30e592b10d0a91529d5383f74f4964e72b297fd3a', + url='https://files.pythonhosted.org/packages/source/w/websocket_client/websocket_client-0.56.0.tar.gz') + version('0.48.0', sha256='18f1170e6a1b5463986739d9fd45c4308b0d025c1b2f9b88788d8f69e8a5eb4a', + url='https://files.pythonhosted.org/packages/source/w/websocket_client/websocket_client-0.48.0.tar.gz') depends_on('python@2.6:2.8,3.4:', type=('build', 'run')) + depends_on('python@3.6:', type=('build', 'run'), when='@1.2.1:') depends_on('py-setuptools', type='build') - depends_on('py-six', type=('build', 'run')) + depends_on('py-six', type=('build', 'run'), when='@:1.2.0') depends_on('py-backports-ssl-match-hostname', when='^python@2.6:2.7.9', type=('build', 'run')) depends_on('py-argparse', when='^python@:2.6', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-werkzeug/package.py b/var/spack/repos/builtin/packages/py-werkzeug/package.py index 8d4f3c0e84..8d54551bc9 100644 --- a/var/spack/repos/builtin/packages/py-werkzeug/package.py +++ b/var/spack/repos/builtin/packages/py-werkzeug/package.py @@ -12,6 +12,7 @@ class PyWerkzeug(PythonPackage): homepage = "http://werkzeug.pocoo.org" pypi = "Werkzeug/Werkzeug-0.16.0.tar.gz" + version('2.0.2', sha256='aa2bb6fc8dee8d6c504c0ac1e7f5f7dc5810a9903e793b6f715a9f015bdadb9a') version('0.16.0', sha256='7280924747b5733b246fe23972186c6b348f9ae29724135a6dfc1e53cea433e7') version('0.15.6', sha256='0a24d43be6a7dce81bae05292356176d6c46d63e42a0dd3f9504b210a9cfaa43') version('0.15.5', sha256='a13b74dd3c45f758d4ebdb224be8f1ab8ef58b3c0ffc1783a8c7d9f4f50227e6') @@ -23,5 +24,7 @@ class PyWerkzeug(PythonPackage): version('0.11.15', sha256='455d7798ac263266dbd38d4841f7534dd35ca9c3da4a8df303f8488f38f3bcc0') version('0.11.11', sha256='e72c46bc14405cba7a26bd2ce28df734471bc9016bc8b4cb69466c2c14c2f7e5') + depends_on('python@3.6:', when='@2:', type=('build', 'run')) depends_on('python@2.7:2.8,3.4:', type=('build', 'run')) depends_on('py-setuptools', type='build') + depends_on('py-dataclasses', when='@2: ^python@:3.6', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-wheel/package.py b/var/spack/repos/builtin/packages/py-wheel/package.py index a5737d5b92..f90ac695c0 100644 --- a/var/spack/repos/builtin/packages/py-wheel/package.py +++ b/var/spack/repos/builtin/packages/py-wheel/package.py @@ -12,6 +12,7 @@ class PyWheel(PythonPackage): homepage = "https://github.com/pypa/wheel" pypi = "wheel/wheel-0.34.2.tar.gz" + version('0.37.0', sha256='e2ef7239991699e3355d54f8e968a21bb940a1dbf34a4d226741e64462516fad') version('0.36.2', sha256='e11eefd162658ea59a60a0f6c7d493a7190ea4b9a85e335b33489d9f17e0245e') version('0.35.1', sha256='99a22d87add3f634ff917310a3d87e499f19e663413a52eb9232c447aa646c9f') version('0.34.2', sha256='8788e9155fe14f54164c1b9eb0a319d98ef02c160725587ad60f14ddc57b6f96') diff --git a/var/spack/repos/builtin/packages/py-wrapt/package.py b/var/spack/repos/builtin/packages/py-wrapt/package.py index 6d2aec630e..48f085ed08 100644 --- a/var/spack/repos/builtin/packages/py-wrapt/package.py +++ b/var/spack/repos/builtin/packages/py-wrapt/package.py @@ -12,7 +12,12 @@ class PyWrapt(PythonPackage): homepage = "https://github.com/GrahamDumpleton/wrapt" pypi = "wrapt/wrapt-1.11.2.tar.gz" + version('1.13.3', sha256='1fea9cd438686e6682271d36f3481a9f3636195578bab9ca3382e2f5f01fc185') version('1.12.1', sha256='b62ffa81fb85f4332a4f609cab4ac40709470da05643a082ec1eb88e6d9b97d7') - version('1.11.2', sha256='565a021fd19419476b9362b05eeaa094178de64f8361e44468f9e9d7843901e1') - version('1.11.1', sha256='4aea003270831cceb8a90ff27c4031da6ead7ec1886023b80ce0dfe0adf61533') + version('1.11.2', sha256='565a021fd19419476b9362b05eeaa094178de64f8361e44468f9e9d7843901e1') + version('1.11.1', sha256='4aea003270831cceb8a90ff27c4031da6ead7ec1886023b80ce0dfe0adf61533') version('1.10.10', sha256='42160c91b77f1bc64a955890038e02f2f72986c01d462d53cb6cb039b995cdd9') + + depends_on('python@2.7:2,3.5:', when='@1.13.1:', type=('build', 'run')) + depends_on('python@2.7:2,3.3:', when='@1.13:', type=('build', 'run')) + depends_on('py-setuptools@38.3:', when='@1.13:', type='build') diff --git a/var/spack/repos/builtin/packages/py-wurlitzer/package.py b/var/spack/repos/builtin/packages/py-wurlitzer/package.py new file mode 100644 index 0000000000..6924ce16b0 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-wurlitzer/package.py @@ -0,0 +1,23 @@ +# Copyright 2013-2021 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 PyWurlitzer(PythonPackage): + """Capture C-level stdout/stderr pipes in Python via os.dup2.""" + + pypi = 'wurlitzer/wurlitzer-3.0.2.tar.gz' + + maintainers = ['sethrj'] + + version('3.0.2', sha256='36051ac530ddb461a86b6227c4b09d95f30a1d1043de2b4a592e97ae8a84fcdf') + + depends_on('python+ctypes@3.5:', type=('build', 'run')) + depends_on('py-setuptools', type='build') + # In some circumstances (unclear exactly what) Wurlitzer is unable to get + # stdout/stderr pointers from ctypes, so it falls back to trying to use + # cffi. If you encounter this, please add the dependency below. + # depends_on('py-cffi', type='run', when='...????') diff --git a/var/spack/repos/builtin/packages/py-xrootdpyfs/package.py b/var/spack/repos/builtin/packages/py-xrootdpyfs/package.py new file mode 100644 index 0000000000..1b9a635469 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-xrootdpyfs/package.py @@ -0,0 +1,19 @@ +# Copyright 2013-2021 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 PyXrootdpyfs(PythonPackage): + """XRootDPyFS is a PyFilesystem interface to XRootD.""" + + homepage = "http://github.com/inveniosoftware/xrootdpyfs/" + pypi = "xrootdpyfs/xrootdpyfs-0.2.2.tar.gz" + + version('0.2.2', sha256='43698c260f3ec52320c6bfac8dd3e7c2be7d28e9e9f58edf4f916578114e82bf') + + depends_on('py-setuptools', type='build') + depends_on('py-fs@0.5.4:1', type=('build', 'run')) + depends_on('xrootd@4.8.4:4 +python', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-yarl/package.py b/var/spack/repos/builtin/packages/py-yarl/package.py index ccd33ef75a..6208fbf766 100644 --- a/var/spack/repos/builtin/packages/py-yarl/package.py +++ b/var/spack/repos/builtin/packages/py-yarl/package.py @@ -10,19 +10,27 @@ class PyYarl(PythonPackage): homepage = "https://github.com/aio-libs/yarl" url = "https://github.com/aio-libs/yarl/archive/v1.4.2.tar.gz" + version('1.7.2', sha256='19b94c68e8eda5731f87d79e3c34967a11e69695965113c4724d2491f76ad461') version('1.4.2', sha256='a400eb3f54f7596eeaba8100a8fa3d72135195423c52808dc54a43c6b100b192') depends_on('python@3.5:', type=('build', 'run')) depends_on('py-setuptools', type='build') + depends_on('py-setuptools@40:', type='build', when='@1.7.2:') depends_on('py-cython', type='build') depends_on('py-multidict@4.0:', type=('build', 'run')) depends_on('py-idna@2.0:', type=('build', 'run')) + depends_on('py-typing-extensions@3.7.4:', type=('build', 'run'), when='@1.7.2: ^python@:3.7') @run_before('build') def fix_cython(self): + if self.spec.satisfies('@1.7.2:'): + pyxfile = 'yarl/_quoting_c' + else: + pyxfile = 'yarl/_quoting' + cython = self.spec['py-cython'].command cython('-3', '-o', - 'yarl/_quoting.c', - 'yarl/_quoting.pyx', + pyxfile + '.c', + pyxfile + '.pyx', '-Iyarl') diff --git a/var/spack/repos/builtin/packages/py-yq/package.py b/var/spack/repos/builtin/packages/py-yq/package.py new file mode 100644 index 0000000000..08b6068e79 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-yq/package.py @@ -0,0 +1,23 @@ +# Copyright 2013-2021 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 PyYq(PythonPackage): + """yq takes YAML input, converts it to JSON, and pipes it to jq""" + + homepage = "https://github.com/kislyuk/yq" + pypi = "yq/yq-2.12.2.tar.gz" + + maintainers = ['qwertos'] + + version('2.12.2', sha256='2f156d0724b61487ac8752ed4eaa702a5737b804d5afa46fa55866951cd106d2') + + depends_on('py-setuptools', type=('build', 'run')) + depends_on('py-toml@0.10.0:', type=('build', 'run')) + depends_on('py-pyyaml@3.11:', type=('build', 'run')) + depends_on('py-argcomplete@1.8.1:', type=('build', 'run')) + depends_on('py-xmltodict@0.11.0:', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-ytopt-autotune/package.py b/var/spack/repos/builtin/packages/py-ytopt-autotune/package.py new file mode 100644 index 0000000000..19f90a2aa8 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-ytopt-autotune/package.py @@ -0,0 +1,24 @@ +# Copyright 2013-2021 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 PyYtoptAutotune(PythonPackage): + """Common interface for autotuning search space and method definition.""" + + maintainers = ['Kerilk', 'liuyangzhuan'] + + homepage = "https://github.com/ytopt-team/autotune" + url = "https://github.com/ytopt-team/autotune/archive/refs/tags/v1.1.0.tar.gz" + git = "https://github.com/ytopt-team/autotune.git" + + version('master', branch='master') + version('1.1.0', sha256='5ee7fa6a1c83131c5ceba1537b25f00de84182e4d0e6ebd0fd6efa4e8aee1bc4') + + patch('version.patch', when='@1.1.0') + + depends_on('python@3:', type=('build', 'run')) + depends_on('py-setuptools', type='build') diff --git a/var/spack/repos/builtin/packages/py-ytopt-autotune/version.patch b/var/spack/repos/builtin/packages/py-ytopt-autotune/version.patch new file mode 100644 index 0000000000..2e00b9b245 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-ytopt-autotune/version.patch @@ -0,0 +1,10 @@ +diff --git a/autotune/__init__.py b/autotune/__init__.py +index 5636cf1..6c9488d 100644 +--- a/autotune/__init__.py ++++ b/autotune/__init__.py +@@ -1,4 +1,4 @@ +-from autotune.__version__ import __version__, __version_suffix__ ++from autotune.__version__ import __version__ + name = 'autotune' + version = __version__ + diff --git a/var/spack/repos/builtin/packages/py-ytopt/package.py b/var/spack/repos/builtin/packages/py-ytopt/package.py index f5e33b8f18..85d260d35e 100644 --- a/var/spack/repos/builtin/packages/py-ytopt/package.py +++ b/var/spack/repos/builtin/packages/py-ytopt/package.py @@ -10,14 +10,22 @@ class PyYtopt(PythonPackage): """Ytopt package implements search using Random Forest (SuRF), an autotuning search method developed within Y-Tune ECP project.""" - homepage = "https://xgitlab.cels.anl.gov/pbalapra/ytopt" - url = "https://xgitlab.cels.anl.gov/pbalapra/ytopt/raw/release/dist/ytopt-0.1.0.tar.gz" + maintainers = ['Kerilk'] - version('0.1.0', sha256='c7081fe3585a5b7a25bcb84733cd2326b72de3bfc4f84d6ad110341f24c3e612') + homepage = "https://github.com/ytopt-team/ytopt" + url = "https://github.com/ytopt-team/ytopt/archive/refs/tags/v0.0.1.tar.gz" - depends_on('py-scikit-learn', type=('build', 'run')) - depends_on('py-scikit-optimize', type=('build', 'run')) + version('0.0.2', sha256='5a624aa678b976ff6ef867610bafcb0dfd5c8af0d880138ca5d56d3f776e6d71') + version('0.0.1', sha256='3ca616922c8e76e73f695a5ddea5dd91b0103eada726185f008343cc5cbd7744') - def build_args(self, spec, prefix): - args = [] - return args + depends_on('python@3.6:', type=('build', 'run')) + depends_on('py-scikit-learn@0.23.1', type=('build', 'run')) + depends_on('py-dh-scikit-optimize', type=('build', 'run')) + depends_on('py-configspace', type=('build', 'run')) + depends_on('py-numpy', type=('build', 'run')) + depends_on('py-ytopt-autotune@1.1:', type=('build', 'run')) + depends_on('py-joblib', type=('build', 'run')) + depends_on('py-deap', type=('build', 'run')) + depends_on('py-tqdm', type=('build', 'run')) + depends_on('py-ray', type=('build', 'run')) + depends_on('py-mpi4py@3.0.0:', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-zope-event/package.py b/var/spack/repos/builtin/packages/py-zope-event/package.py index 405c2cf2d0..36dbd7bf85 100644 --- a/var/spack/repos/builtin/packages/py-zope-event/package.py +++ b/var/spack/repos/builtin/packages/py-zope-event/package.py @@ -12,6 +12,7 @@ class PyZopeEvent(PythonPackage): homepage = "https://github.com/zopefoundation/zope.event" pypi = "zope.event/zope.event-4.3.0.tar.gz" + version('4.5.0', sha256='5e76517f5b9b119acf37ca8819781db6c16ea433f7e2062c4afc2b6fbedb1330') version('4.3.0', sha256='e0ecea24247a837c71c106b0341a7a997e3653da820d21ef6c08b32548f733e7') - depends_on('py-setuptools', type='build') + depends_on('py-setuptools', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-zope-interface/package.py b/var/spack/repos/builtin/packages/py-zope-interface/package.py index b46605ee62..8e20f5f006 100644 --- a/var/spack/repos/builtin/packages/py-zope-interface/package.py +++ b/var/spack/repos/builtin/packages/py-zope-interface/package.py @@ -15,6 +15,7 @@ class PyZopeInterface(PythonPackage): homepage = "https://github.com/zopefoundation/zope.interface" pypi = "zope.interface/zope.interface-4.5.0.tar.gz" + version('5.4.0', sha256='5dba5f530fec3f0988d83b78cc591b58c0b6eb8431a85edd1569a0539a8a5a0e') version('5.1.0', sha256='40e4c42bd27ed3c11b2c983fecfb03356fae1209de10686d03c02c8696a1d90e') version('4.5.0', sha256='57c38470d9f57e37afb460c399eb254e7193ac7fb8042bd09bdc001981a9c74c') diff --git a/var/spack/repos/builtin/packages/pygmo/package.py b/var/spack/repos/builtin/packages/pygmo/package.py new file mode 100644 index 0000000000..80c5abe893 --- /dev/null +++ b/var/spack/repos/builtin/packages/pygmo/package.py @@ -0,0 +1,35 @@ +# Copyright 2013-2021 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 Pygmo(CMakePackage): + """Parallel Global Multiobjective Optimizer (and its Python alter ego + PyGMO) is a C++ / Python platform to perform parallel computations of + optimisation tasks (global and local) via the asynchronous generalized + island model.""" + + homepage = "https://esa.github.io/pygmo2/" + url = "https://github.com/esa/pygmo2/archive/v2.18.0.tar.gz" + git = "https://github.com/esa/pygmo2.git" + + version('master', branch='master') + version('2.18.0', sha256='9f081cc973297894af09f713f889870ac452bfb32b471f9f7ba08a5e0bb9a125') + + depends_on('pagmo2', type=('build', 'link')) + depends_on('mpi', type='build') + depends_on('py-pybind11@2.6.0:2.6.2', type='build') + depends_on('cmake@3.1:', type='build') + + variant('shared', default=True, description='Build shared libraries') + + def cmake_args(self): + + args = [ + self.define_from_variant('BUILD_SHARED_LIBS', 'shared'), + ] + + return args diff --git a/var/spack/repos/builtin/packages/python/package.py b/var/spack/repos/builtin/packages/python/package.py index 01d0d9a065..141d5c703a 100644 --- a/var/spack/repos/builtin/packages/python/package.py +++ b/var/spack/repos/builtin/packages/python/package.py @@ -27,14 +27,19 @@ class Python(AutotoolsPackage): maintainers = ['adamjstewart', 'skosukhin'] + version('3.10.1', sha256='b76117670e7c5064344b9c138e141a377e686b9063f3a8a620ff674fa8ec90d3') + version('3.10.0', sha256='c4e0cbad57c90690cb813fb4663ef670b4d0f587d8171e2c42bd4c9245bd2758') + version('3.9.9', sha256='2cc7b67c1f3f66c571acc42479cdf691d8ed6b47bee12c9b68430413a17a44ea', preferred=True) + version('3.9.8', sha256='7447fb8bb270942d620dd24faa7814b1383b61fa99029a240025fd81c1db8283') version('3.9.7', sha256='a838d3f9360d157040142b715db34f0218e535333696a5569dc6f854604eb9d1') version('3.9.6', sha256='d0a35182e19e416fc8eae25a3dcd4d02d4997333e4ad1f2eee6010aadc3fe866') version('3.9.5', sha256='e0fbd5b6e1ee242524430dee3c91baf4cbbaba4a72dd1674b90fda87b713c7ab') version('3.9.4', sha256='66c4de16daa74a825cf9da9ddae1fe020b72c3854b73b1762011cc33f9e4592f') + version('3.9.3', sha256='3afeb61a45b5a2e6f1c0f621bd8cf925a4ff406099fdb3d8c97b993a5f43d048') version('3.9.2', sha256='7899e8a6f7946748830d66739f2d8f2b30214dad956e56b9ba216b3de5581519') version('3.9.1', sha256='29cb91ba038346da0bd9ab84a0a55a845d872c341a4da6879f462e94c741f117') version('3.9.0', sha256='df796b2dc8ef085edae2597a41c1c0a63625ebd92487adaef2fed22b567873e8') - version('3.8.12', sha256='316aa33f3b7707d041e73f246efedb297a70898c4b91f127f66dc8d80c596f1a', preferred=True) + version('3.8.12', sha256='316aa33f3b7707d041e73f246efedb297a70898c4b91f127f66dc8d80c596f1a') version('3.8.11', sha256='b77464ea80cec14581b86aeb7fb2ff02830e0abc7bcdc752b7b4bdfcd8f3e393') version('3.8.10', sha256='b37ac74d2cbad2590e7cd0dd2b3826c29afe89a734090a87bf8c03c45066cb65') version('3.8.9', sha256='9779ec1df000bf86914cdd40860b88da56c1e61db59d37784beca14a259ac9e9') @@ -205,7 +210,8 @@ class Python(AutotoolsPackage): patch('tkinter.patch', when='@:2.8,3.3:3.7 platform=darwin') # Patch the setup script to deny that tcl/x11 exists rather than allowing # autodetection of (possibly broken) system components - patch('tkinter-3.8.patch', when='@3.8: ~tkinter') + patch('tkinter-3.8.patch', when='@3.8:3.9 ~tkinter') + patch('tkinter-3.10.patch', when='@3.10: ~tkinter') # Ensure that distutils chooses correct compiler option for RPATH on cray: patch('cray-rpath-2.3.patch', when='@2.3:3.0.1 platform=cray') diff --git a/var/spack/repos/builtin/packages/python/tkinter-3.10.patch b/var/spack/repos/builtin/packages/python/tkinter-3.10.patch new file mode 100644 index 0000000000..e06be826b2 --- /dev/null +++ b/var/spack/repos/builtin/packages/python/tkinter-3.10.patch @@ -0,0 +1,11 @@ +--- a/setup.py 2021-12-06 12:23:39.000000000 -0600 ++++ b/setup.py 2021-12-14 10:30:33.000000000 -0600 +@@ -2099,6 +2099,8 @@ + # + # Detection stops at the first successful method. + ++ return False ++ + # Check for Tcl and Tk at the locations indicated by _TCLTK_INCLUDES + # and _TCLTK_LIBS environment variables. + if self.detect_tkinter_fromenv(): diff --git a/var/spack/repos/builtin/packages/qmcpack/package.py b/var/spack/repos/builtin/packages/qmcpack/package.py index a7124fe946..4445c43f95 100644 --- a/var/spack/repos/builtin/packages/qmcpack/package.py +++ b/var/spack/repos/builtin/packages/qmcpack/package.py @@ -15,7 +15,7 @@ class Qmcpack(CMakePackage, CudaPackage): # Package information homepage = "https://www.qmcpack.org/" git = "https://github.com/QMCPACK/qmcpack.git" - maintainers = ['naromero77'] + maintainers = ['ye-luo'] tags = ['ecp', 'ecp-apps'] # This download method is untrusted, and is not recommended by the @@ -97,6 +97,12 @@ class Qmcpack(CMakePackage, CudaPackage): conflicts('^openblas+ilp64', msg='QMCPACK does not support OpenBLAS 64-bit integer variant') + conflicts('^openblas threads=none', + msg='QMCPACK does not support OpenBLAS without threading') + + conflicts('^openblas threads=pthreads', + msg='QMCPACK does not support OpenBLAS with pthreads') + conflicts('cuda_arch=none', when='+cuda', msg='A value for cuda_arch must be specified. Add cuda_arch=XX') @@ -210,6 +216,13 @@ class Qmcpack(CMakePackage, CudaPackage): return targets + # QMCPACK prefers taking MPI compiler wrappers as CMake compilers. + def setup_build_environment(self, env): + spec = self.spec + if '+mpi' in spec: + env.set('CC', spec['mpi'].mpicc) + env.set('CXX', spec['mpi'].mpicxx) + def cmake_args(self): spec = self.spec args = [] @@ -347,20 +360,11 @@ class Qmcpack(CMakePackage, CudaPackage): return args - # QMCPACK needs custom install method for a couple of reasons: - # Firstly, wee follow the recommendation on the Spack website - # for defining the compilers variables to be the MPI compiler wrappers. - # https://spack.readthedocs.io/en/latest/packaging_guide.html#compiler-wrappers - # + # QMCPACK needs custom install method for the following reason: # Note that 3.6.0 release and later has a functioning 'make install', # but still does not install nexus, manual, etc. So, there is no compelling # reason to use QMCPACK's built-in version at this time. def install(self, spec, prefix): - if '+mpi' in spec: - env['CC'] = spec['mpi'].mpicc - env['CXX'] = spec['mpi'].mpicxx - env['F77'] = spec['mpi'].mpif77 - env['FC'] = spec['mpi'].mpifc # create top-level directory mkdirp(prefix) diff --git a/var/spack/repos/builtin/packages/qt/package.py b/var/spack/repos/builtin/packages/qt/package.py index 2b96ddde3d..0073b1db56 100644 --- a/var/spack/repos/builtin/packages/qt/package.py +++ b/var/spack/repos/builtin/packages/qt/package.py @@ -4,6 +4,7 @@ # SPDX-License-Identifier: (Apache-2.0 OR MIT) import itertools import os +import platform import sys import llnl.util.tty as tty @@ -12,6 +13,7 @@ from spack import * from spack.operating_systems.mac_os import macos_version MACOS_VERSION = macos_version() if sys.platform == 'darwin' else None +LINUX_VERSION = Version(platform.release()) if platform.system() == 'Linux' else None class Qt(Package): @@ -191,10 +193,25 @@ class Qt(Package): depends_on("flex", type='build') depends_on("bison", type='build') depends_on("gperf") - depends_on("python@2.7.5:2", type='build') + + # qtwebengine@5.7:5.15 are based on Google Chromium versions which depend on Py2 + with when('@5.7:5.15'): + depends_on('python@2.7.5:2', type='build') + # mesa inherits MesonPackage (since October 2020) which depends on Py@3. + # The conflicts('mesa') enables a regular build of `qt@5.7:5.15+webkit` + # without having to specify the exact version by causing the concretizer + # to select mesa18 which does not depend on python@3. + conflicts('mesa') + + with when('@5.10:'): + depends_on('nss@3.62:') with when('@5.7:'): - depends_on("nss") + # https://www.linuxfromscratch.org/blfs/view/svn/x/qtwebengine.html + depends_on('ninja', type='build') + + # https://doc.qt.io/qt-5.15/qtwebengine-platform-notes.html + with when('@5.7: platform=linux'): depends_on("libdrm") depends_on("libxcomposite") depends_on("libxcursor") @@ -637,6 +654,20 @@ class Qt(Package): config_args.append('-I{0}/include'.format(spec['libx11'].prefix)) config_args.append('-I{0}/include'.format(spec['xproto'].prefix)) + # If the version of glibc is new enough Qt will configure features that + # may not be supported by the kernel version on the system. This will + # cause errors like: + # error while loading shared libraries: libQt5Core.so.5: cannot open + # shared object file: No such file or directory + # Test the kernel version and disable features that Qt detects in glibc + # but that are not supported in the kernel as determined by information + # in: qtbase/src/corelib/global/minimum-linux_p.h. + if LINUX_VERSION and version >= Version('5.10'): + if LINUX_VERSION < Version('3.16'): + config_args.append('-no-feature-renameat2') + if LINUX_VERSION < Version('3.17'): + config_args.append('-no-feature-getentropy') + if '~webkit' in spec: config_args.extend([ '-skip', diff --git a/var/spack/repos/builtin/packages/quantum-espresso/configure_aocc.patch b/var/spack/repos/builtin/packages/quantum-espresso/configure_aocc.patch index fcfae27854..c6bea9a18b 100644 --- a/var/spack/repos/builtin/packages/quantum-espresso/configure_aocc.patch +++ b/var/spack/repos/builtin/packages/quantum-espresso/configure_aocc.patch @@ -2,14 +2,14 @@ diff --git a/install/configure b/install/configure_aocc index 66337d1..d2c04af 100755 --- a/install/configure +++ b/install/configure_aocc -@@ -3203,6 +3203,7 @@ case "$arch" in +@@ -3199,6 +3199,7 @@ + ifort_version=`$mpif90 -V 2>&1 | grep "Intel(R)"` + pgf_version=`$mpif90 -V 2>&1 | grep "^pgf"` + nvfortran_version=`$mpif90 -V 2>&1 | grep "^nvfortran"` ++ aoccflang_version=`$mpif90 -v 2>&1 | grep "AMD clang version"` + gfortran_version=`$mpif90 -v 2>&1 | grep "gcc version"` nagfor_version=`$mpif90 -v 2>&1 | grep "NAG Fortran"` xlf_version=`$mpif90 -v 2>&1 | grep "xlf"` - armflang_version=`$mpif90 -v 2>&1 | grep "Arm C/C++/Fortran Compiler version"` -+ aoccflang_version=`$mpif90 -v 2>&1 | grep "AMD clang version"` - # - if test "$ifort_version" != "" - then @@ -3215,6 +3216,12 @@ case "$arch" in version=`echo $nvfortran_version | cut -d ' ' -f2` echo "${ECHO_T}nvfortran $version" diff --git a/var/spack/repos/builtin/packages/quantum-espresso/package.py b/var/spack/repos/builtin/packages/quantum-espresso/package.py index 3753504c1e..f2dcd3b666 100644 --- a/var/spack/repos/builtin/packages/quantum-espresso/package.py +++ b/var/spack/repos/builtin/packages/quantum-espresso/package.py @@ -4,7 +4,7 @@ # SPDX-License-Identifier: (Apache-2.0 OR MIT) -class QuantumEspresso(Package): +class QuantumEspresso(CMakePackage): """Quantum ESPRESSO is an integrated suite of Open-Source computer codes for electronic-structure calculations and materials modeling at the nanoscale. It is based on density-functional theory, plane waves, and @@ -15,9 +15,10 @@ class QuantumEspresso(Package): url = 'https://gitlab.com/QEF/q-e/-/archive/qe-6.6/q-e-qe-6.6.tar.gz' git = 'https://gitlab.com/QEF/q-e.git' - maintainers = ['naromero77'] + maintainers = ['ye-luo'] version('develop', branch='develop') + version('6.8', sha256='654855c69864de7ece5ef2f2c0dea2d32698fe51192a8646b1555b0c57e033b2') version('6.7', sha256='fe0ce74ff736b10d2a20c9d59025c01f88f86b00d229c123b1791f1edd7b4315', url='https://gitlab.com/QEF/q-e/-/archive/qe-6.7MaX-Release/q-e-qe-6.7MaX-Release.tar.gz' ) @@ -47,22 +48,28 @@ class QuantumEspresso(Package): destination='.' ) - variant('mpi', default=True, description='Builds with mpi support') - variant('openmp', default=False, description='Enables openMP support') - variant('scalapack', default=True, description='Enables scalapack support') - variant('elpa', default=False, description='Uses elpa as an eigenvalue solver') + variant('cmake', default=True, description='Builds via CMake') + with when('+cmake'): + depends_on("cmake@3.14.0:", type="build") + conflicts('@:6.7', msg='+cmake works since QE v6.8') - # Support for HDF5 has been added starting in version 6.1.0 and is - # still experimental, therefore we default to False for the variant - variant( - 'hdf5', default='none', description='Builds with HDF5 support', - values=('parallel', 'serial', 'none'), multi=False - ) + variant('libxc', default=False, description='Uses libxc') + depends_on('libxc@5.1.2:', when='+libxc') - # Enables building Electron-phonon Wannier 'epw.x' executable - # http://epw.org.uk/Main/About - variant('epw', default=False, - description='Builds Electron-phonon Wannier executable') + # TODO + # variant( + # 'gpu', default='none', description='Builds with GPU support', + # values=('nvidia', 'none'), multi=False + # ) + + variant('openmp', default=False, description='Enables openMP support') + # Need OpenMP threaded FFTW and BLAS libraries when configured + # with OpenMP support + with when('+openmp'): + conflicts('^fftw~openmp') + conflicts('^amdfftw~openmp') + conflicts('^openblas threads=none') + conflicts('^openblas threads=pthreads') # Apply upstream patches by default. Variant useful for 3rd party # patches which are incompatible with upstream patches @@ -70,51 +77,36 @@ class QuantumEspresso(Package): desc = desc + 'to False for third party patches or plugins' variant('patch', default=True, description=desc) - # QMCPACK converter patch - # https://github.com/QMCPACK/qmcpack/tree/develop/external_codes/quantum_espresso - variant('qmcpack', default=False, - description='Build QE-to-QMCPACK wave function converter') + variant('mpi', default=True, description='Builds with mpi support') + with when('+mpi'): + depends_on('mpi') + variant('scalapack', default=True, description='Enables scalapack support') + + with when('+scalapack'): + depends_on('scalapack') + variant('elpa', default=False, description='Uses elpa as an eigenvalue solver') + + with when('+elpa'): + # CMake builds only support elpa without openmp + depends_on('elpa~openmp', when='+cmake') + depends_on('elpa+openmp', when='+openmp~cmake') + depends_on('elpa~openmp', when='~openmp~cmake') + # Elpa is formally supported by @:5.4.0, but QE configure searches + # for it in the wrong folders (or tries to download it within + # the build directory). Instead of patching Elpa to provide the + # folder QE expects as a link, we issue a conflict here. + conflicts('@:5.4.0', msg='+elpa requires QE >= 6.0') - variant('environ', default=False, - description='Enables support for introducing environment effects ' - 'into atomistic first-principles simulations.' - 'See http://quantum-environ.org/about.html') + # Support for HDF5 has been added starting in version 6.1.0 and is + # still experimental, therefore we default to False for the variant + variant( + 'hdf5', default='none', description='Builds with HDF5 support', + values=('parallel', 'serial', 'none'), multi=False + ) - # Dependencies - depends_on('blas') - depends_on('lapack') - depends_on('fftw-api@3') - depends_on('mpi', when='+mpi') - depends_on('scalapack', when='+scalapack+mpi') - depends_on('elpa+openmp', when='+elpa+openmp') - depends_on('elpa~openmp', when='+elpa~openmp') # Versions of HDF5 prior to 1.8.16 lead to QE runtime errors depends_on('hdf5@1.8.16:+fortran+hl+mpi', when='hdf5=parallel') depends_on('hdf5@1.8.16:+fortran+hl~mpi', when='hdf5=serial') - depends_on('hdf5', when='+qmcpack') - # TODO: enable building EPW when ~mpi - depends_on('mpi', when='+epw') - - # CONFLICTS SECTION - # Omitted for now due to concretizer bug - # MKL with 64-bit integers not supported. - # conflicts( - # '^mkl+ilp64', - # msg='Quantum ESPRESSO does not support MKL 64-bit integer variant' - # ) - - # We can't ask for scalapack or elpa if we don't want MPI - conflicts( - '+scalapack', - when='~mpi', - msg='scalapack is a parallel library and needs MPI support' - ) - - conflicts( - '+elpa', - when='~mpi', - msg='elpa is a parallel library and needs MPI support' - ) # HDF5 support introduced in 6.1.0, but the configure had some limitations. # In recent tests (Oct 2019), GCC and Intel work with the HDF5 Spack @@ -140,60 +132,82 @@ class QuantumEspresso(Package): msg='parallel HDF5 requires MPI support' ) - # Elpa is formally supported by @:5.4.0, but QE configure searches - # for it in the wrong folders (or tries to download it within - # the build directory). Instead of patching Elpa to provide the - # folder QE expects as a link, we issue a conflict here. - conflicts('+elpa', when='@:5.4.0') + # QMCPACK converter patch + # https://github.com/QMCPACK/qmcpack/tree/develop/external_codes/quantum_espresso + variant('qmcpack', default=False, + description='Build QE-to-QMCPACK wave function converter') - # Some QMCPACK converters are incompatible with upstream patches. - # HDF5 is a hard requirement. Need to do two HDF5 cases explicitly - # since Spack lacks support for expressing NOT operation. - conflicts( - '@6.4+patch', - when='+qmcpack', - msg='QE-to-QMCPACK wave function converter requires ' - 'deactivatation of upstream patches' - ) - conflicts( - '@6.3:6.4.0 hdf5=serial', - when='+qmcpack', - msg='QE-to-QMCPACK wave function converter only ' - 'supported with parallel HDF5' - ) - conflicts( - 'hdf5=none', - when='+qmcpack', - msg='QE-to-QMCPACK wave function converter requires HDF5' - ) + with when('+qmcpack'): + # Some QMCPACK converters are incompatible with upstream patches. + # HDF5 is a hard requirement. Need to do two HDF5 cases explicitly + # since Spack lacks support for expressing NOT operation. + conflicts( + '@6.4+patch', + msg='QE-to-QMCPACK wave function converter requires ' + 'deactivatation of upstream patches' + ) + conflicts( + '@6.3:6.4.0 hdf5=serial', + msg='QE-to-QMCPACK wave function converter only ' + 'supported with parallel HDF5' + ) + conflicts( + 'hdf5=none', + msg='QE-to-QMCPACK wave function converter requires HDF5' + ) - # The first version of Q-E to feature integrated EPW is 6.0.0, - # as per http://epw.org.uk/Main/DownloadAndInstall . - # Complain if trying to install a version older than this. - conflicts('+epw', when='@:5', - msg='EPW only available from version 6.0.0 and on') + # Enables building Electron-phonon Wannier 'epw.x' executable + # http://epw.org.uk/Main/About + variant('epw', default=False, + description='Builds Electron-phonon Wannier executable') + conflicts('~epw', when='+cmake', msg='epw cannot be turned off when using CMake') + + with when('+epw'): + # The first version of Q-E to feature integrated EPW is 6.0.0, + # as per http://epw.org.uk/Main/DownloadAndInstall . + # Complain if trying to install a version older than this. + conflicts('@:5', msg='EPW only available from version 6.0.0 and on') + + # Below goes some constraints as shown in the link above. + # Constraints may be relaxed as successful reports + # of different compiler+mpi combinations arrive - # Below goes some constraints as shown in the link above. - # Constraints may be relaxed as successful reports - # of different compiler+mpi combinations arrive + # TODO: enable building EPW when ~mpi and ~cmake + conflicts('~mpi', when='~cmake', msg='EPW needs MPI when ~cmake') - # TODO: enable building EPW when ~mpi - conflicts('+epw', when='~mpi', msg='EPW needs MPI') + # EPW doesn't gets along well with OpenMPI 2.x.x + conflicts('^openmpi@2.0.0:2', + msg='OpenMPI version incompatible with EPW') - # EPW doesn't gets along well with OpenMPI 2.x.x - conflicts('+epw', when='^openmpi@2.0.0:2', - msg='OpenMPI version incompatible with EPW') + # EPW also doesn't gets along well with PGI 17.x + OpenMPI 1.10.7 + conflicts('^openmpi@1.10.7%pgi@17.0:17.12', + msg='PGI+OpenMPI version combo incompatible with EPW') - # EPW also doesn't gets along well with PGI 17.x + OpenMPI 1.10.7 - conflicts('+epw', when='^openmpi@1.10.7%pgi@17.0:17.12', - msg='PGI+OpenMPI version combo incompatible with EPW') + variant('environ', default=False, + description='Enables support for introducing environment effects ' + 'into atomistic first-principles simulations.' + 'See http://quantum-environ.org/about.html') + conflicts('+environ', when='+cmake', msg='environ doesn\'t work with CMake') + + # Dependencies not affected by variants + depends_on('blas') + depends_on('lapack') + depends_on('fftw-api@3') + + # CONFLICTS SECTION + # Omitted for now due to concretizer bug + # MKL with 64-bit integers not supported. + # conflicts( + # '^mkl+ilp64', + # msg='Quantum ESPRESSO does not support MKL 64-bit integer variant' + # ) # PATCHES SECTION # THIRD-PARTY PATCHES # NOTE: *SOME* third-party patches will require deactivation of # upstream patches using `~patch` variant - # QMCPACK converter patches for QE 6.7, 6.4.1, 6.4, and 6.3 + # QMCPACK converter patches for QE 6.8, 6.7, 6.4.1, 6.4, and 6.3 conflicts('@:6.2,6.5:6.6', when='+qmcpack', msg='QMCPACK converter NOT available for this version of QE') @@ -204,18 +218,16 @@ class QuantumEspresso(Package): conflicts('@6.5:', when='+environ', msg='6.4.x is the latest QE series supported by Environ') + # 6.8 + patch_url = 'https://raw.githubusercontent.com/QMCPACK/qmcpack/develop/external_codes/quantum_espresso/add_pw2qmcpack_to_qe-6.8.diff' + patch_checksum = '69f7fbd72aba810c35a0b034188e45bea8f9f11d3150c0715e1b3518d5c09248' + patch(patch_url, sha256=patch_checksum, when='@6.8+qmcpack') + # 6.7 patch_url = 'https://raw.githubusercontent.com/QMCPACK/qmcpack/develop/external_codes/quantum_espresso/add_pw2qmcpack_to_qe-6.7.0.diff' patch_checksum = '72564c168231dd4a1279a74e76919af701d47cee9a851db6e205753004fe9bb5' patch(patch_url, sha256=patch_checksum, when='@6.7+qmcpack') - # Need OpenMP threaded FFTW and BLAS libraries when configured - # with OpenMP support - conflicts('^fftw~openmp', when='+openmp') - conflicts('^amdfftw~openmp', when='+openmp') - conflicts('^openblas threads=none', when='+openmp') - conflicts('^openblas threads=pthreads', when='+openmp') - # 6.4.1 patch_url = 'https://raw.githubusercontent.com/QMCPACK/qmcpack/develop/external_codes/quantum_espresso/add_pw2qmcpack_to_qe-6.4.1.diff' patch_checksum = '57cb1b06ee2653a87c3acc0dd4f09032fcf6ce6b8cbb9677ae9ceeb6a78f85e2' @@ -279,7 +291,7 @@ class QuantumEspresso(Package): when='+patch@6.4.1:6.5.0') # Configure updated to work with AOCC compilers - patch('configure_aocc.patch', when='@6.7 %aocc') + patch('configure_aocc.patch', when='@6.7:6.8 %aocc') # Configure updated to work with NVIDIA compilers patch('nvhpc.patch', when='@6.5 %nvhpc') @@ -291,7 +303,41 @@ class QuantumEspresso(Package): # extlibs_makefile updated to work with fujitsu compilers patch('fj-fox.patch', when='+patch %fj') + def cmake_args(self): + spec = self.spec + + cmake_args = [ + self.define_from_variant('QE_ENABLE_MPI', 'mpi'), + self.define_from_variant('QE_ENABLE_OPENMP', 'openmp'), + self.define_from_variant('QE_ENABLE_SCALAPACK', 'scalapack'), + self.define_from_variant('QE_ENABLE_ELPA', 'elpa'), + self.define_from_variant('QE_ENABLE_LIBXC', 'libxc'), + ] + + # QE prefers taking MPI compiler wrappers as CMake compilers. + if '+mpi' in spec: + cmake_args.append(self.define('CMAKE_C_COMPILER', spec['mpi'].mpicc)) + cmake_args.append(self.define('CMAKE_Fortran_COMPILER', spec['mpi'].mpifc)) + + if not spec.satisfies('hdf5=none'): + cmake_args.append(self.define('QE_ENABLE_HDF5', True)) + + if '+qmcpack' in spec: + cmake_args.append(self.define('QE_ENABLE_PW2QMCPACK', True)) + + return cmake_args + + @when("~cmake") + def cmake(self, spec, prefix): + print("Bypass cmake stage when building via configure") + + @when("~cmake") + def build(self, spec, prefix): + print("Bypass build stage when building via configure") + + @when("~cmake") def install(self, spec, prefix): + print("Override install stage when building via configure") prefix_path = prefix.bin if '@:5.4.0' in spec else prefix options = ['-prefix={0}'.format(prefix_path)] diff --git a/var/spack/repos/builtin/packages/r-affy/package.py b/var/spack/repos/builtin/packages/r-affy/package.py index 47722b3496..c84cb7a18f 100644 --- a/var/spack/repos/builtin/packages/r-affy/package.py +++ b/var/spack/repos/builtin/packages/r-affy/package.py @@ -23,7 +23,7 @@ class RAffy(RPackage): version('1.56.0', commit='d36a7b8f05b1ef60162d94e75037d45c48f88871') version('1.54.0', commit='a815f02906fcf491b28ed0a356d6fce95a6bd20e') - depends_on('r@2.8.0:', type=('build', 'run')) + depends_on('r@2.8.0:4.0', type=('build', 'run'), when='@:1.68.0') depends_on('r-biocgenerics@0.1.12:', type=('build', 'run')) depends_on('r-biobase@2.5.5:', type=('build', 'run')) depends_on('r-affyio@1.13.3:', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/r-backports/package.py b/var/spack/repos/builtin/packages/r-backports/package.py index 1d9c9de415..a564d85d46 100644 --- a/var/spack/repos/builtin/packages/r-backports/package.py +++ b/var/spack/repos/builtin/packages/r-backports/package.py @@ -16,10 +16,10 @@ class RBackports(RPackage): functions or arguments by selectively importing specific backports to support older installations.""" - homepage = "https://cloud.r-project.org/package=backports" - url = "https://cloud.r-project.org/src/contrib/backports_1.1.1.tar.gz" - list_url = "https://cloud.r-project.org/src/contrib/Archive/backports" + homepage = "https://github.com/r-lib/backports" + cran = "backports" + version('1.4.0', sha256='e7611565d24a852ad8b08579a7c67ad9121c1bda148bade98c7bec686e8dabbf') version('1.2.1', sha256='a2834bbd57e305e5d8010322f1906ea1789b3b5ba5eca77c5ff4248aceb7c2d5') version('1.1.4', sha256='ee4b5efef22fa7ef27d7983ffcd31db52f81e1fbb7189c6e89ee09b69349ff03') version('1.1.3', sha256='e41bd146824ec921994f1b176d0e4cca0b36dd3db32ca7a954d872a5ba214cc1') diff --git a/var/spack/repos/builtin/packages/r-bh/package.py b/var/spack/repos/builtin/packages/r-bh/package.py index 9c3e58a69e..f0ce70be0a 100644 --- a/var/spack/repos/builtin/packages/r-bh/package.py +++ b/var/spack/repos/builtin/packages/r-bh/package.py @@ -7,7 +7,9 @@ from spack import * class RBh(RPackage): - """Boost provides free peer-reviewed portable C++ source libraries. A large + """Boost C++ Header Files. + + Boost provides free peer-reviewed portable C++ source libraries. A large part of Boost is provided as C++ template code which is resolved entirely at compile-time without linking. This package aims to provide the most useful subset of Boost libraries for template use among CRAN package. By @@ -23,9 +25,9 @@ class RBh(RPackage): 'tuple' 'type_trains' 'typeof' 'unordered' 'utility' 'uuid'.""" homepage = "https://cloud.r-project.org/package=BH" - url = "https://cloud.r-project.org/src/contrib/BH_1.65.0-1.tar.gz" - list_url = "https://cloud.r-project.org/src/contrib/Archive/BH" + cran = "BH" + version('1.75.0-0', sha256='ae4c10992607dd697663f60675a46a5770851da159330bb63c4a68890bdd6f5a') version('1.72.0-3', sha256='888ec1a3316bb69e1ba749b08ba7e0903ebc4742e3a185de8d148c13cddac8ab') version('1.69.0-1', sha256='a0fd4364b7e368f09c56dec030823f52c16da0787580af7e4615eddeb99baca2') version('1.65.0-1', sha256='82baa78afe8f1edc3c7e84e1c9924321047e14c1e990df9b848407baf3f7cb58') diff --git a/var/spack/repos/builtin/packages/r-blob/package.py b/var/spack/repos/builtin/packages/r-blob/package.py index a56c0a5642..2248d05dac 100644 --- a/var/spack/repos/builtin/packages/r-blob/package.py +++ b/var/spack/repos/builtin/packages/r-blob/package.py @@ -14,10 +14,10 @@ class RBlob(RPackage): package provides the blob object, a list of raw vectors, suitable for use as a column in data frame.""" - homepage = "https://cloud.r-project.org/package=blob" - url = "https://cloud.r-project.org/src/contrib/blob_1.1.0.tar.gz" - list_url = "https://cloud.r-project.org/src/contrib/Archive/blob" + homepage = "https://blob.tidyverse.org" + cran = "blob" + version('1.2.2', sha256='4976053c65994c769a4c22b4553bea0bd9c623b3b991dbaf023d2a164770c7fa') version('1.2.1', sha256='ef54bc7a9646c1b73f4d2f60c869b4f1940bc3505874175114297ad7772d8bea') version('1.2.0', sha256='1af1cfa28607bc0e2f1f01598a00a7d5d1385ef160a9e79e568f30f56538e023') version('1.1.0', sha256='16d6603df3ddba177f0ac4d9469c938f89131c4bf8834345db838defd9ffea16') diff --git a/var/spack/repos/builtin/packages/r-brio/package.py b/var/spack/repos/builtin/packages/r-brio/package.py index 4042b85592..6bef8729a6 100644 --- a/var/spack/repos/builtin/packages/r-brio/package.py +++ b/var/spack/repos/builtin/packages/r-brio/package.py @@ -14,7 +14,7 @@ class RBrio(RPackage): explicit control over line endings.""" homepage = "https://github.com/r-lib/brio" - url = "https://cloud.r-project.org/src/contrib/brio_1.1.0.tar.gz" - list_url = "https://cloud.r-project.org/src/contrib/Archive/brio" + cran = "brio" + version('1.1.3', sha256='eaa89041856189bee545bf1c42c7920a0bb0f1f70bb477487c467ee3e8fedcc6') version('1.1.0', sha256='6bb3a3b47bea13f1a1e3dcdc8b9f688502643e4b40a481a34aa04a261aabea38') diff --git a/var/spack/repos/builtin/packages/r-brms/package.py b/var/spack/repos/builtin/packages/r-brms/package.py index 4a26556d94..3fefc3cf5c 100644 --- a/var/spack/repos/builtin/packages/r-brms/package.py +++ b/var/spack/repos/builtin/packages/r-brms/package.py @@ -28,6 +28,7 @@ class RBrms(RPackage): homepage = "https://github.com/paul-buerkner/brms" cran = "brms" + version('2.16.3', sha256='68302b10b5264f72d163d01c17792c002306cf37f0ee778dcec4c7e118f923e1') version('2.16.1', sha256='749efbd9fb061fe207cf2e729c1387d9a8538b922f12ceec4e82a9f8dd9c1bc4') version('2.15.0', sha256='c11701d1d8758590b74bb845b568b736e4455a81b114c7dfde0b27b7bd1bcc2f') @@ -42,7 +43,7 @@ class RBrms(RPackage): depends_on('r-rstantools@2.1.1:', type=('build', 'run')) depends_on('r-bayesplot@1.5.0:', type=('build', 'run')) depends_on('r-shinystan@2.4.0:', type=('build', 'run')) - depends_on('r-projpred@2.0.0:', type=('build', 'run')) + depends_on('r-projpred@2.0.0:', when='@:2.16.1', type=('build', 'run')) depends_on('r-bridgesampling@0.3-0:', type=('build', 'run')) depends_on('r-glue@1.3.0:', type=('build', 'run')) depends_on('r-future@1.19.0:', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/r-car/package.py b/var/spack/repos/builtin/packages/r-car/package.py index 71c4fcaad0..8df0b79598 100644 --- a/var/spack/repos/builtin/packages/r-car/package.py +++ b/var/spack/repos/builtin/packages/r-car/package.py @@ -15,6 +15,7 @@ class RCar(RPackage): homepage = "https://r-forge.r-project.org/projects/car/" cran = "car" + version('3.0-12', sha256='b899a6efae3842a90a2349d381dbcf4b4ed36bd03108ebe7380e81120e457302') version('3.0-11', sha256='b32c927206f515631ff276dbb337b0f22e9b2d851f4abb1d2c272e534c19542c') version('3.0-10', sha256='1ce316d2fee9b47c951d25d096be732489a3c9f6fc9e612a1eca2e50fb5925f1') version('3.0-3', sha256='fa807cb12f6e7fb38ec534cac4eef54747945c2119a7d51155a2492ad778c36f') @@ -32,7 +33,7 @@ class RCar(RPackage): depends_on('r-pbkrtest@0.4-4:', type=('build', 'run')) depends_on('r-quantreg', type=('build', 'run')) depends_on('r-maptools', when='@3.0:', type=('build', 'run')) - depends_on('r-rio', when='@3.0:', type=('build', 'run')) + depends_on('r-rio', when='@3.0:3.0-11', type=('build', 'run')) depends_on('r-lme4@1.1-27.1:', when='@3.0-11:', type=('build', 'run')) depends_on('r-lme4', when='@3.0:', type=('build', 'run')) depends_on('r-nlme', when='@3.0:', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/r-cli/package.py b/var/spack/repos/builtin/packages/r-cli/package.py index c85a832bae..36f7ec07e3 100644 --- a/var/spack/repos/builtin/packages/r-cli/package.py +++ b/var/spack/repos/builtin/packages/r-cli/package.py @@ -19,6 +19,7 @@ class RCli(RPackage): homepage = "https://github.com/r-lib/cli" cran = "cli" + version('3.1.0', sha256='c70a61830bf706a84c59eb74a809978846cee93742198ab4192742a5df1ace11') version('3.0.1', sha256='d89a25b6cd760e157605676e104ce65473a7d8d64c289efdd9640e949968b4fd') version('2.2.0', sha256='39a77af61724f8cc1f5117011e17bb2a488cbac61a7c112db078a675d3ac40b8') version('2.0.2', sha256='490834e5b80eb036befa0e150996bcab1c4d5d168c3d45209926e52d0d5413b6') diff --git a/var/spack/repos/builtin/packages/r-colorspace/package.py b/var/spack/repos/builtin/packages/r-colorspace/package.py index fe71033bda..d7765acb6d 100644 --- a/var/spack/repos/builtin/packages/r-colorspace/package.py +++ b/var/spack/repos/builtin/packages/r-colorspace/package.py @@ -25,10 +25,10 @@ class RColorspace(RPackage): scientific paper: Zeileis et al. (2020, Journal of Statistical Software, <doi:10.18637/jss.v096.i01>).""" - homepage = "https://cloud.r-project.org/package=colorspace" - url = "https://cloud.r-project.org/src/contrib/colorspace_1.3-2.tar.gz" - list_url = "https://cloud.r-project.org/src/contrib/Archive/colorspace" + homepage = "https://colorspace.R-Forge.R-project.org" + cran = "colorspace" + version('2.0-2', sha256='b891cd2ec129ed5f116429345947bcaadc33969758a108521eb0cf36bd12183a') version('2.0-0', sha256='4e6a53af9918db282cefdc71eaa30f507d4d1d682bcfb74cb0dd68a0b282018e') version('1.4-1', sha256='693d713a050f8bfecdb7322739f04b40d99b55aed168803686e43401d5f0d673') version('1.4-0', sha256='ce003c5958dd704697959e9dc8a108c8cb568f8d78ece113235732afc5dff556') diff --git a/var/spack/repos/builtin/packages/r-colourpicker/package.py b/var/spack/repos/builtin/packages/r-colourpicker/package.py index 97620f0d7c..9d312c97db 100644 --- a/var/spack/repos/builtin/packages/r-colourpicker/package.py +++ b/var/spack/repos/builtin/packages/r-colourpicker/package.py @@ -19,6 +19,7 @@ class RColourpicker(RPackage): homepage = "https://github.com/daattali/colourpicker" cran = "colourpicker" + version('1.1.1', sha256='a0d09982b048b143e2c3438ccec039dd20d6f892fa0dedc9fdcb0d40de883ce0') version('1.1.0', sha256='2dfbb6262d187d3b17357ff9c22670ced3621feda5b2a2a500558478e4d551e2') depends_on('r@3.1.0:', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/r-conquer/package.py b/var/spack/repos/builtin/packages/r-conquer/package.py index 9051a0de80..2ed8466cc7 100644 --- a/var/spack/repos/builtin/packages/r-conquer/package.py +++ b/var/spack/repos/builtin/packages/r-conquer/package.py @@ -15,13 +15,14 @@ class RConquer(RPackage): using multiplier bootstrap.""" homepage = "https://github.com/XiaoouPan/conquer" - url = "https://cloud.r-project.org/src/contrib/conquer_1.0.2.tar.gz" - list_url = "https://cloud.r-project.org/src/contrib/Archive/conquer" + cran = "conquer" + version('1.2.1', sha256='1354f90f962a2124e155227cdc0ed2c6e54682f1e08934c49a827e51dc112f45') version('1.0.2', sha256='542f6154ce1ffec0c1b4dd4e1f5b86545015f4b378c4c66a0840c65c57d674ff') depends_on('r@3.5.0:', type=('build', 'run')) depends_on('r-rcpp@1.0.3:', type=('build', 'run')) depends_on('r-matrix', type=('build', 'run')) depends_on('r-matrixstats', type=('build', 'run')) + depends_on('r-caret', when='@1.2:', type=('build', 'run')) depends_on('r-rcpparmadillo@0.9.850.1.0:', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/r-cpp11/package.py b/var/spack/repos/builtin/packages/r-cpp11/package.py index 4f8aec55d0..eeed5e4a6d 100644 --- a/var/spack/repos/builtin/packages/r-cpp11/package.py +++ b/var/spack/repos/builtin/packages/r-cpp11/package.py @@ -17,5 +17,6 @@ class RCpp11(RPackage): homepage = "https://github.com/r-lib/cpp11" cran = "cpp11" + version('0.4.2', sha256='403ce0bf82358d237176053b0fb1e958cb6bfa4d0fb3555bf5801db6a6939b99') version('0.4.0', sha256='1768fd07dc30dfbbf8f3fb1a1183947cb7e1dfd909165c4d612a63c163a41e87') version('0.2.5', sha256='6fef9306c0c3043252c987e77c99ef679b2ea46dffafae318dbeb38ad21a2e20') diff --git a/var/spack/repos/builtin/packages/r-crayon/package.py b/var/spack/repos/builtin/packages/r-crayon/package.py index bd7cd38642..9324f7c43b 100644 --- a/var/spack/repos/builtin/packages/r-crayon/package.py +++ b/var/spack/repos/builtin/packages/r-crayon/package.py @@ -16,6 +16,7 @@ class RCrayon(RPackage): homepage = "https://github.com/r-lib/crayon#readme" cran = "crayon" + version('1.4.2', sha256='ee34397f643e76e30588068d4c93bd3c9afd2193deacccacb3bffcadf141b857') version('1.4.1', sha256='08b6e42e748d096960b2f32b7ffe690c25742e29fe14c19d1834cd6ff43029c7') version('1.3.4', sha256='fc6e9bf990e9532c4fcf1a3d2ce22d8cf12d25a95e4779adfa17713ed836fa68') version('1.3.2', sha256='9a6b75d63c05fe64baf222f1921330ceb727924bcc5fc2753ff0528d42555e68') diff --git a/var/spack/repos/builtin/packages/r-crosstalk/package.py b/var/spack/repos/builtin/packages/r-crosstalk/package.py index ad3abb0342..befa2325e9 100644 --- a/var/spack/repos/builtin/packages/r-crosstalk/package.py +++ b/var/spack/repos/builtin/packages/r-crosstalk/package.py @@ -13,10 +13,10 @@ class RCrosstalk(RPackage): other, with Shiny or without (i.e. static .html files). Currently supports linked brushing and filtering.""" - homepage = "https://cloud.r-project.org/package=crosstalk" - url = "https://cloud.r-project.org/src/contrib/crosstalk_1.0.0.tar.gz" - list_url = "https://cloud.r-project.org/src/contrib/Archive/crosstalk" + homepage = "https://rstudio.github.io/crosstalk" + cran = "crosstalk" + version('1.2.0', sha256='4237baab35cd246a8a98fb9cf4ce53b6ddbc31d00742ded4edea0479613d1ea0') version('1.1.0.1', sha256='36a70b10bc11826e314c05f9579fd791b9ac3b3a2cfed4d4ca74ce1ad991300e') version('1.0.0', sha256='b31eada24cac26f24c9763d9a8cbe0adfd87b264cf57f8725027fe0c7742ca51') diff --git a/var/spack/repos/builtin/packages/r-dbi/package.py b/var/spack/repos/builtin/packages/r-dbi/package.py index e62a09ed2d..013546ea30 100644 --- a/var/spack/repos/builtin/packages/r-dbi/package.py +++ b/var/spack/repos/builtin/packages/r-dbi/package.py @@ -7,14 +7,16 @@ from spack import * class RDbi(RPackage): - """A database interface definition for communication between R and + """R Database Interface. + + A database interface definition for communication between R and relational database management systems. All classes in this package are virtual and need to be extended by the various R/DBMS implementations.""" - homepage = "http://rstats-db.github.io/DBI" - url = "https://cloud.r-project.org/src/contrib/DBI_0.7.tar.gz" - list_url = "https://cloud.r-project.org/src/contrib/Archive/DBI" + homepage = "https://dbi.r-dbi.org" + cran = "DBI" + version('1.1.1', sha256='572ab3b8a6421d0ac3e7665c4c842826f1723af98fca25d4f43edb419e771344') version('1.1.0', sha256='a96db7fa39a58f1ed34c6e78d8f5f7e4cf0882afb301323b5c6975d6729203e4') version('1.0.0', sha256='ff16f118eb3f759183441835e932b87358dd80ab9800ce576a8f3df1b6f01cf5') version('0.4-1', sha256='eff14a9af4975f23f8e1f4347d82c33c32c0b4f4f3e11370c582a89aeb8ac68e') diff --git a/var/spack/repos/builtin/packages/r-desc/package.py b/var/spack/repos/builtin/packages/r-desc/package.py index da96469f53..23e0ed8e17 100644 --- a/var/spack/repos/builtin/packages/r-desc/package.py +++ b/var/spack/repos/builtin/packages/r-desc/package.py @@ -7,16 +7,19 @@ from spack import * class RDesc(RPackage): - """desc: Manipulate DESCRIPTION Files""" + """Manipulate DESCRIPTION Files. - homepage = "https://cloud.r-project.org/package=desc" - url = "https://cloud.r-project.org/src/contrib/desc_1.2.0.tar.gz" - list_url = "https://cloud.r-project.org/src/contrib/Archive/desc/" + Tools to read, write, create, and manipulate DESCRIPTION files. It is + intended for packages that create or manipulate other packages.""" + homepage = "https://github.com/r-lib/desc" + cran = "desc" + + version('1.4.0', sha256='8220e4c706449b8121b822e70b1414f391ef419aed574836a234c63b83e5d649') version('1.2.0', sha256='e66fb5d4fc7974bc558abcdc107a1f258c9177a29dcfcf9164bc6b33dd08dae8') depends_on('r@3.1.0:', type=('build', 'run')) - depends_on('r-assertthat', type=('build', 'run')) depends_on('r-r6', type=('build', 'run')) depends_on('r-crayon', type=('build', 'run')) depends_on('r-rprojroot', type=('build', 'run')) + depends_on('r-assertthat', when='@:1.2', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/r-diffobj/package.py b/var/spack/repos/builtin/packages/r-diffobj/package.py index 6445949014..024895a5a6 100644 --- a/var/spack/repos/builtin/packages/r-diffobj/package.py +++ b/var/spack/repos/builtin/packages/r-diffobj/package.py @@ -13,9 +13,9 @@ class RDiffobj(RPackage): of their differences.""" homepage = "https://github.com/brodieG/diffobj" - url = "https://cloud.r-project.org/src/contrib/diffobj_0.3.3.tar.gz" - list_url = "https://cloud.r-project.org/src/contrib/Archive/diffobj" + cran = "diffobj" + version('0.3.5', sha256='d860a79b1d4c9e369282d7391b539fe89228954854a65ba47181407c53e3cf60') version('0.3.3', sha256='414e5573470b9565b9149a0a61c7e8344fb37f889d23dc4e131acc8aa62e6df4') depends_on('r@3.1.0:', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/r-dt/package.py b/var/spack/repos/builtin/packages/r-dt/package.py index a0fc8655a6..7543f7fb5a 100644 --- a/var/spack/repos/builtin/packages/r-dt/package.py +++ b/var/spack/repos/builtin/packages/r-dt/package.py @@ -15,9 +15,9 @@ class RDt(RPackage): abbreviation of 'DataTables'.""" homepage = "https://rstudio.github.io/DT" - url = "https://cloud.r-project.org/src/contrib/DT_0.1.tar.gz" - list_url = "https://cloud.r-project.org/src/contrib/Archive/DT" + cran = "DT" + version('0.20', sha256='c66d7f49ec101fdbb91c6d26c06fb1373f9ebdefe29fe99f2ae1a641220aba9f') version('0.17', sha256='e3430292421dcc2b6ad5f2deda729f0603da4eb31f86d071833e6e11abf3fb56') version('0.13', sha256='79a073fe96980ce150d790ab76133c9e80bd463270c34d149c03934a622d63b5') version('0.8', sha256='90195054148806cf31c7db5c41f72d5389c75adc0b1183606a9babd2c6ae8e21') @@ -33,4 +33,5 @@ class RDt(RPackage): depends_on('r-jsonlite@0.9.16:', when='@0.8:', type=('build', 'run')) depends_on('r-magrittr', type=('build', 'run')) depends_on('r-crosstalk', type=('build', 'run')) + depends_on('r-jquerylib', when='@0.19:', type=('build', 'run')) depends_on('r-promises', when='@0.5:', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/r-emmeans/package.py b/var/spack/repos/builtin/packages/r-emmeans/package.py index 8543001a23..745ae434a2 100644 --- a/var/spack/repos/builtin/packages/r-emmeans/package.py +++ b/var/spack/repos/builtin/packages/r-emmeans/package.py @@ -21,6 +21,7 @@ class REmmeans(RPackage): homepage = "https://github.com/rvlenth/emmeans" cran = "emmeans" + version('1.7.1-1', sha256='6b01eaad1ea0f96245db8563cc77929a3c3b96cd61c24ce1d452308d6e0250de') version('1.7.0', sha256='d4b654896197dfda8354b33257380a66ee06117d6177b1ed7f1e42176525e9c5') version('1.6.0', sha256='201bb7b008dde94231ed60bcc6a32749442faaab4baeea99ad28b97c951b3c1e') diff --git a/var/spack/repos/builtin/packages/r-htmltools/package.py b/var/spack/repos/builtin/packages/r-htmltools/package.py index ce3ac0dd20..2d3b82e8bd 100644 --- a/var/spack/repos/builtin/packages/r-htmltools/package.py +++ b/var/spack/repos/builtin/packages/r-htmltools/package.py @@ -14,6 +14,7 @@ class RHtmltools(RPackage): homepage = "https://github.com/rstudio/htmltools" cran = "htmltools" + version('0.5.2', sha256='7dc7d50436e5a82a5801f85bcd2f572a06a98b4027d71aa17b4854ec9b2767fb') version('0.5.1.1', sha256='f0bfe72ffe330f3d6c9ead5857f3a4aef80e002e32558074a3e643f2ab67a4ba') version('0.5.1', sha256='6ac82e4451f9558ceb541ea659a736b2ab3245827832b44d3661e7a4d91f6307') version('0.3.6', sha256='44affb82f9c2fd76c9e2b58f9229adb003217932b68c3fdbf1327c8d74c868a2') @@ -22,5 +23,7 @@ class RHtmltools(RPackage): depends_on('r@2.14.1:', type=('build', 'run')) depends_on('r-digest', type=('build', 'run')) depends_on('r-base64enc', when='@0.5.1:', type=('build', 'run')) + depends_on('r-rlang@0.4.10:', when='@0.5.2:', type=('build', 'run')) depends_on('r-rlang', when='@0.5.1:', type=('build', 'run')) + depends_on('r-fastmap', when='@0.5.2:', type=('build', 'run')) depends_on('r-rcpp', when=' @:0.3.6', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/r-jquerylib/package.py b/var/spack/repos/builtin/packages/r-jquerylib/package.py new file mode 100644 index 0000000000..e6c97d2d16 --- /dev/null +++ b/var/spack/repos/builtin/packages/r-jquerylib/package.py @@ -0,0 +1,16 @@ +# Copyright 2013-2021 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 RJquerylib(RPackage): + """Obtain 'jQuery' as an HTML Dependency Object.""" + + cran = "jquerylib" + + version('0.1.4', sha256='f0bcc11dcde3a6ff180277e45c24642d3da3c8690900e38f44495efbc9064411') + + depends_on('r-htmltools', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/r-packrat/package.py b/var/spack/repos/builtin/packages/r-packrat/package.py index 4a897ab431..1b22874f9b 100644 --- a/var/spack/repos/builtin/packages/r-packrat/package.py +++ b/var/spack/repos/builtin/packages/r-packrat/package.py @@ -11,9 +11,9 @@ class RPackrat(RPackage): and reproducible way.""" homepage = "https://github.com/rstudio/packrat/" - url = "https://cloud.r-project.org/src/contrib/packrat_0.4.7-1.tar.gz" - list_url = "https://cloud.r-project.org/src/contrib/Archive/packrat" + cran = "packrat" + version('0.7.0', sha256='e8bce1fd78f28f3a7bf56e65a2ae2c6802e69bf55466c24e1d1a4b8a5f83dcc2') version('0.5.0', sha256='d6a09290fbe037a6c740921c5dcd70b500e5b36e4713eae4010adf0c456bc5f7') version('0.4.9-3', sha256='87299938a751defc54eb00a029aecd3522d6349d900aaa8b3e1aa6bf31e98234') version('0.4.8-1', sha256='a283caf4fda419e6571ae9ca6210a59002a030721feb8a50c0d0787fd6f672f3') diff --git a/var/spack/repos/builtin/packages/r-prettydoc/package.py b/var/spack/repos/builtin/packages/r-prettydoc/package.py index ade056fc5b..1769d30d3a 100644 --- a/var/spack/repos/builtin/packages/r-prettydoc/package.py +++ b/var/spack/repos/builtin/packages/r-prettydoc/package.py @@ -19,5 +19,5 @@ class RPrettydoc(RPackage): version('0.4.1', sha256='1094a69b026238d149435472b4f41c75151c7370a1be6c6332147c88ad4c4829') - depends_on('r-markdown@1.17:', type=('build', 'run')) + depends_on('r-rmarkdown@1.17:', type=('build', 'run')) depends_on('pandoc@1.12.3:', type='build') diff --git a/var/spack/repos/builtin/packages/r-r6/package.py b/var/spack/repos/builtin/packages/r-r6/package.py index 8445c1a792..549f2f2c2a 100644 --- a/var/spack/repos/builtin/packages/r-r6/package.py +++ b/var/spack/repos/builtin/packages/r-r6/package.py @@ -17,9 +17,9 @@ class RR6(RPackage): classes are defined in different packages.""" homepage = "https://github.com/wch/R6/" - url = "https://cloud.r-project.org/src/contrib/R6_2.2.2.tar.gz" - list_url = "https://cloud.r-project.org/src/contrib/Archive/R6" + cran = "R6" + version('2.5.1', sha256='8d92bd29c2ed7bf15f2778618ffe4a95556193d21d8431a7f75e7e5fc102bf48') version('2.5.0', sha256='aec1af9626ec532cb883b544bf9eff4cb2d89c343c7ce0fa31761ec5a7882e02') version('2.4.0', sha256='70be110174fbf5f5304049b186a6f9c05b77bfaec6d8caf980fcef5da6e0abce') version('2.2.2', sha256='087756f471884c3b3ead80215a7cc5636a78b8a956e91675acfe2896426eae8f') diff --git a/var/spack/repos/builtin/packages/r-rcpparmadillo/package.py b/var/spack/repos/builtin/packages/r-rcpparmadillo/package.py index 3482664fa2..a0d88b0b63 100644 --- a/var/spack/repos/builtin/packages/r-rcpparmadillo/package.py +++ b/var/spack/repos/builtin/packages/r-rcpparmadillo/package.py @@ -22,9 +22,9 @@ class RRcpparmadillo(RPackage): that""" homepage = "https://cloud.r-project.org/package=RcppArmadillo" - url = "https://cloud.r-project.org/src/contrib/RcppArmadillo_0.8.100.1.0.tar.gz" - list_url = "https://cloud.r-project.org/src/contrib/Archive/RcppArmadillo" + cran = "RcppArmadillo" + version('0.10.7.3.0', sha256='3710b767708e3b9408723eedb98391daa8651fda53a2c6b033273265512f6262') version('0.10.1.2.2', sha256='38323703fcf2b61f46f2984aafdd3ddf17c3c993d1d27a8f0f4ba5012b99d069') version('0.9.600.4.0', sha256='2057b7aa965a4c821dd734276d8e6a01cd59a1b52536b65cb815fa7e8c114f1e') version('0.9.400.3.0', sha256='56936d501fe8e6f8796ae1a6badb9294d7dad98a0b557c3b3ce6bd4ecaad13b0') diff --git a/var/spack/repos/builtin/packages/r-rio/package.py b/var/spack/repos/builtin/packages/r-rio/package.py index 4c3fbe88e0..c3054a44a4 100644 --- a/var/spack/repos/builtin/packages/r-rio/package.py +++ b/var/spack/repos/builtin/packages/r-rio/package.py @@ -7,7 +7,9 @@ from spack import * class RRio(RPackage): - """Streamlined data import and export by making assumptions that the user + """A Swiss-Army Knife for Data I/O. + + Streamlined data import and export by making assumptions that the user is probably willing to make: 'import()' and 'export()' determine the data structure from the file extension, reasonable defaults are used for data import and export (e.g., 'stringsAsFactors=FALSE'), web-based import is @@ -17,13 +19,14 @@ class RRio(RPackage): provides a simple method for converting between file types.""" homepage = "https://github.com/leeper/rio" - url = "https://cloud.r-project.org/src/contrib/rio_0.5.16.tar.gz" - list_url = "https://cloud.r-project.org/src/contrib/Archive/rio" + cran = "rio" + version('0.5.29', sha256='9fa63187e1814053e6ed2a164665b4924e08c3453adccb78f7211d403dcc5412') version('0.5.16', sha256='d3eb8d5a11e0a3d26169bb9d08f834a51a6516a349854250629072d59c29d465') depends_on('r@2.15.0:', type=('build', 'run')) depends_on('r-foreign', type=('build', 'run')) + depends_on('r-haven@1.1.2:', when='@0.5.26:', type=('build', 'run')) depends_on('r-haven@1.1.0:', type=('build', 'run')) depends_on('r-curl@0.6:', type=('build', 'run')) depends_on('r-data-table@1.9.8:', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/r-rmarkdown/package.py b/var/spack/repos/builtin/packages/r-rmarkdown/package.py index 7d27f56806..14160e2b31 100644 --- a/var/spack/repos/builtin/packages/r-rmarkdown/package.py +++ b/var/spack/repos/builtin/packages/r-rmarkdown/package.py @@ -15,6 +15,7 @@ class RRmarkdown(RPackage): homepage = "https://rmarkdown.rstudio.com/" cran = "rmarkdown" + version('2.11', sha256='9371255300e7ea4cd936978ad2ca3d205d8605e09f4913cb0d4725005a7a9775') version('2.9', sha256='6ce5af8b9a7c282619f74d3999d27ec4de12d3f93cde8fd12cc4c19f02ea8668') version('2.6', sha256='e6e799c472de11e079bc752cca4b4dbd6803650649457bb6ae836cb1edcdf6b0') version('1.14', sha256='f636b1048c5be56e06aa0b2b4342ad5c8192734f1e9b27468fef62be672edc61') @@ -34,6 +35,7 @@ class RRmarkdown(RPackage): depends_on('r-xfun', when='@1.13:', type=('build', 'run')) depends_on('r-xfun@0.15:', when='@2.6:', type=('build', 'run')) depends_on('r-xfun@0.21:', when='@2.8:', type=('build', 'run')) + depends_on('r-jquerylib', when='@2.11:', type=('build', 'run')) depends_on('r-stringr@1.2.0:', when='@1.6:', type=('build', 'run')) depends_on('r-rprojroot', when='@1.3:1.7', type=('build', 'run')) depends_on('r-mime', when='@1.8:1.14', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/r-rpostgresql/package.py b/var/spack/repos/builtin/packages/r-rpostgresql/package.py index 437748d353..a7fd42e594 100644 --- a/var/spack/repos/builtin/packages/r-rpostgresql/package.py +++ b/var/spack/repos/builtin/packages/r-rpostgresql/package.py @@ -27,11 +27,3 @@ class RRpostgresql(RPackage): depends_on('r@2.9.0:', type=('build', 'run')) depends_on('r-dbi@0.3:', type=('build', 'run')) depends_on('postgresql') - - depends_on('automake', type='build') - - patch_config_files = True - - @run_before('install') - def patch_config_guess(self): - AutotoolsPackage._do_patch_config_files(self) diff --git a/var/spack/repos/builtin/packages/r-rsconnect/package.py b/var/spack/repos/builtin/packages/r-rsconnect/package.py index e25a4593c5..115e91bd56 100644 --- a/var/spack/repos/builtin/packages/r-rsconnect/package.py +++ b/var/spack/repos/builtin/packages/r-rsconnect/package.py @@ -16,6 +16,7 @@ class RRsconnect(RPackage): homepage = "https://github.com/rstudio/rsconnect" cran = "rsconnect" + version('0.8.25', sha256='3c055277f745f2ca37a73e2f425249307cea4dc95ecc59fbe05ee8b6cf26d9cf') version('0.8.17', sha256='64767a4d626395b7871375956a9f0455c3d64ff6e779633b0e554921d85da231') depends_on('r@3.0.0:', type=('build', 'run')) @@ -23,6 +24,7 @@ class RRsconnect(RPackage): depends_on('r-digest', type=('build', 'run')) depends_on('r-jsonlite', type=('build', 'run')) depends_on('r-openssl', type=('build', 'run')) + depends_on('r-packrat@0.6:', when='@0.8.18:', type=('build', 'run')) depends_on('r-packrat@0.5:', type=('build', 'run')) depends_on('r-rstudioapi@0.5:', type=('build', 'run')) depends_on('r-yaml@2.1.5:', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/r-tictoc/package.py b/var/spack/repos/builtin/packages/r-tictoc/package.py index 0b56b4d08a..b080c68383 100644 --- a/var/spack/repos/builtin/packages/r-tictoc/package.py +++ b/var/spack/repos/builtin/packages/r-tictoc/package.py @@ -7,8 +7,8 @@ from spack import * class RTictoc(RPackage): - """tictoc: Functions for timing R scripts, as well as implementations of - Stack and List structures + """Functions for timing R scripts, as well as implementations of Stack and + List structures. This package provides the timing functions 'tic' and 'toc' that can be nested. One can record all timings while a @@ -20,9 +20,10 @@ class RTictoc(RPackage): 'push', 'pop', 'first', 'last' and 'clear'.""" homepage = "https://collectivemedia.github.io/tictoc/" - url = "https://cloud.r-project.org/src/contrib/tictoc_1.0.tar.gz" - list_url = "https://cloud.r-project.org/src/contrib/Archive/tictoc" + cran = "tictoc" + version('1.0.1', sha256='a09a1535c417ddf6637bbbda5fca6edab6c7f7b252a64e57e99d4d0748712705') version('1.0', sha256='47da097c1822caa2d8e262381987cfa556ad901131eb96109752742526b2e2fe') - depends_on('r@3.0.3:', type=('build', 'run')) + depends_on('r@3.0.3:', type=('build', 'run'), when='@1.0.1:') + depends_on('r@3.0.3:4.0', type=('build', 'run'), when='@1.0') diff --git a/var/spack/repos/builtin/packages/r-tidyverse/package.py b/var/spack/repos/builtin/packages/r-tidyverse/package.py index b09b4b19f4..268b6d6fe8 100644 --- a/var/spack/repos/builtin/packages/r-tidyverse/package.py +++ b/var/spack/repos/builtin/packages/r-tidyverse/package.py @@ -16,60 +16,89 @@ class RTidyverse(RPackage): <https://tidyverse.org>.""" homepage = "https://tidyverse.tidyverse.org/" - url = "https://cloud.r-project.org/src/contrib/tidyverse_1.2.1.tar.gz" - list_url = "https://cloud.r-project.org/src/contrib/Archive/tidyverse" + cran = "tidyverse" + version('1.3.1', sha256='83cf95109d4606236274f5a8ec2693855bf75d3a1b3bc1ab4426dcc275ed6632') version('1.3.0', sha256='6d8acb81e994f9bef5e4dcf908bcea3786d108adcf982628235b6c8c80f6fe09') version('1.2.1', sha256='ad67a27bb4e89417a15338fe1a40251a7b5dedba60e9b72637963d3de574c37b') - depends_on('r+X', type=('build', 'run')) + depends_on('r@3.3:', when='@1.3.1:', type=('build', 'run')) depends_on('r@3.2:', when='@1.3.0:', type=('build', 'run')) - depends_on('r-broom@0.4.2:', type=('build', 'run')) + depends_on('r+X', type=('build', 'run')) + + depends_on('r-broom@0.7.6:', when='@1.3.1:', type=('build', 'run')) depends_on('r-broom@0.5.2:', when='@1.3.0:', type=('build', 'run')) - depends_on('r-cli@1.0.0:', type=('build', 'run')) + depends_on('r-broom@0.4.2:', type=('build', 'run')) + depends_on('r-cli@2.4.0:', when='@1.3.1:', type=('build', 'run')) depends_on('r-cli@1.1.0:', when='@1.3.0:', type=('build', 'run')) + depends_on('r-cli@1.0.0:', type=('build', 'run')) + depends_on('r-crayon@1.4.1:', when='@1.3.1:', type=('build', 'run')) depends_on('r-crayon@1.3.4:', type=('build', 'run')) - depends_on('r-dbplyr@1.1.0:', type=('build', 'run')) + depends_on('r-dbplyr@2.1.1:', when='@1.3.1:', type=('build', 'run')) depends_on('r-dbplyr@1.4.2:', when='@1.3.0:', type=('build', 'run')) - depends_on('r-dplyr@0.7.4:', type=('build', 'run')) + depends_on('r-dbplyr@1.1.0:', type=('build', 'run')) + depends_on('r-dplyr@1.0.5:', when='@1.3.1:', type=('build', 'run')) depends_on('r-dplyr@0.8.3:', when='@1.3.0:', type=('build', 'run')) - depends_on('r-forcats@0.2.0:', type=('build', 'run')) + depends_on('r-dplyr@0.7.4:', type=('build', 'run')) + depends_on('r-dtplyr@1.1.0:', when='@1.3.1:', type=('build', 'run')) + depends_on('r-forcats@0.5.1:', when='@1.3.1:', type=('build', 'run')) depends_on('r-forcats@0.4.0:', when='@1.3.0:', type=('build', 'run')) - depends_on('r-ggplot2@2.2.1:', type=('build', 'run')) + depends_on('r-forcats@0.2.0:', type=('build', 'run')) + depends_on('r-googledrive@1.0.1:', when='@1.3.1:', type=('build', 'run')) + depends_on('r-googlesheets4@0.3.0:', when='@1.3.1:', type=('build', 'run')) + depends_on('r-ggplot2@3.3.3:', when='@1.3.1:', type=('build', 'run')) depends_on('r-ggplot2@3.2.1:', when='@1.3.0:', type=('build', 'run')) - depends_on('r-haven@1.1.0:', type=('build', 'run')) + depends_on('r-ggplot2@2.2.1:', type=('build', 'run')) + depends_on('r-haven@2.3.1:', when='@1.3.1:', type=('build', 'run')) depends_on('r-haven@2.2.0:', when='@1.3.0:', type=('build', 'run')) - depends_on('r-hms@0.3:', type=('build', 'run')) + depends_on('r-haven@1.1.0:', type=('build', 'run')) + depends_on('r-hms@1.0.0:', when='@1.3.1:', type=('build', 'run')) depends_on('r-hms@0.5.2:', when='@1.3.0:', type=('build', 'run')) - depends_on('r-httr@1.3.1:', type=('build', 'run')) + depends_on('r-hms@0.3:', type=('build', 'run')) + depends_on('r-httr@1.4.2:', when='@1.3.1:', type=('build', 'run')) depends_on('r-httr@1.4.1:', when='@1.3.0:', type=('build', 'run')) - depends_on('r-jsonlite@1.5:', type=('build', 'run')) + depends_on('r-httr@1.3.1:', type=('build', 'run')) + depends_on('r-jsonlite@1.7.2:', when='@1.3.1:', type=('build', 'run')) depends_on('r-jsonlite@1.6:', when='@1.3.0:', type=('build', 'run')) - depends_on('r-lubridate@1.7.1:', type=('build', 'run')) + depends_on('r-jsonlite@1.5:', type=('build', 'run')) + depends_on('r-lubridate@1.7.10:', when='@1.3.1:', type=('build', 'run')) depends_on('r-lubridate@1.7.4:', when='@1.3.0:', type=('build', 'run')) + depends_on('r-lubridate@1.7.1:', type=('build', 'run')) + depends_on('r-magrittr@2.0.1:', when='@1.3.1:', type=('build', 'run')) depends_on('r-magrittr@1.5:', type=('build', 'run')) - depends_on('r-modelr@0.1.1:', type=('build', 'run')) + depends_on('r-modelr@0.1.8:', when='@1.3.1:', type=('build', 'run')) depends_on('r-modelr@0.1.5:', when='@1.3.0:', type=('build', 'run')) + depends_on('r-modelr@0.1.1:', type=('build', 'run')) + depends_on('r-pillar@1.6.0:', when='@1.3.1:', type=('build', 'run')) depends_on('r-pillar@1.4.2:', when='@1.3.0:', type=('build', 'run')) - depends_on('r-purrr@0.2.4:', type=('build', 'run')) + depends_on('r-purrr@0.3.4:', when='@1.3.1:', type=('build', 'run')) depends_on('r-purrr@0.3.3:', when='@1.3.0:', type=('build', 'run')) - depends_on('r-readr@1.1.1:', type=('build', 'run')) + depends_on('r-purrr@0.2.4:', type=('build', 'run')) + depends_on('r-readr@1.4.0:', when='@1.3.1:', type=('build', 'run')) depends_on('r-readr@1.3.1:', when='@1.3.0:', type=('build', 'run')) - depends_on('r-readxl@1.0.0:', type=('build', 'run')) + depends_on('r-readr@1.1.1:', type=('build', 'run')) depends_on('r-readxl@1.3.1:', when='@1.3.0:', type=('build', 'run')) - depends_on('r-reprex@0.1.1:', type=('build', 'run')) + depends_on('r-readxl@1.0.0:', type=('build', 'run')) + depends_on('r-reprex@2.0.0:', when='@1.3.1:', type=('build', 'run')) depends_on('r-reprex@0.3.0:', when='@1.3.0:', type=('build', 'run')) - depends_on('r-rlang@0.1.4:', type=('build', 'run')) + depends_on('r-reprex@0.1.1:', type=('build', 'run')) + depends_on('r-rlang@0.4.10:', when='@1.3.1:', type=('build', 'run')) depends_on('r-rlang@0.4.1:', when='@1.3.0:', type=('build', 'run')) - depends_on('r-rstudioapi@0.7:', type=('build', 'run')) + depends_on('r-rlang@0.1.4:', type=('build', 'run')) + depends_on('r-rstudioapi@0.13:', when='@1.3.1:', type=('build', 'run')) depends_on('r-rstudioapi@0.10:', when='@1.3.0:', type=('build', 'run')) - depends_on('r-rvest@0.3.2:', type=('build', 'run')) + depends_on('r-rstudioapi@0.7:', type=('build', 'run')) + depends_on('r-rvest@1.0.0:', when='@1.3.1:', type=('build', 'run')) depends_on('r-rvest@0.3.5:', when='@1.3.0:', type=('build', 'run')) - depends_on('r-stringr@1.2.0:', type=('build', 'run')) + depends_on('r-rvest@0.3.2:', type=('build', 'run')) depends_on('r-stringr@1.4.0:', when='@1.3.0:', type=('build', 'run')) - depends_on('r-tibble@1.3.4:', type=('build', 'run')) + depends_on('r-stringr@1.2.0:', type=('build', 'run')) + depends_on('r-tibble@3.1.0:', when='@1.3.1:', type=('build', 'run')) depends_on('r-tibble@2.1.3:', when='@1.3.0:', type=('build', 'run')) - depends_on('r-tidyr@0.7.2:', type=('build', 'run')) + depends_on('r-tibble@1.3.4:', type=('build', 'run')) + depends_on('r-tidyr@1.1.3:', when='@1.3.1:', type=('build', 'run')) depends_on('r-tidyr@1.0.0:', when='@1.3.0:', type=('build', 'run')) - depends_on('r-xml2@1.1.1:', type=('build', 'run')) + depends_on('r-tidyr@0.7.2:', type=('build', 'run')) + depends_on('r-xml2@1.3.2:', when='@1.3.1:', type=('build', 'run')) depends_on('r-xml2@1.2.2:', when='@1.3.0:', type=('build', 'run')) + depends_on('r-xml2@1.1.1:', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/r-v8/package.py b/var/spack/repos/builtin/packages/r-v8/package.py index c57a192f61..f1926109bb 100644 --- a/var/spack/repos/builtin/packages/r-v8/package.py +++ b/var/spack/repos/builtin/packages/r-v8/package.py @@ -10,16 +10,18 @@ class RV8(RPackage): """V8: Embedded JavaScript and WebAssembly Engine for R""" homepage = "https://github.com/jeroen/v8" - url = "https://cloud.r-project.org/src/contrib/V8_3.4.0.tar.gz" - list_url = "https://cloud.r-project.org/src/contrib/Archive/V8" + cran = "V8" - version('3.4.0', sha256='f5c8a2a03cc1be9f504f47711a0fcd1b962745139c9fb2a10fbd79c4ae103fbd') + version('3.6.0', sha256='a3969898bf4a7c13d3130fae0d385cd048d46372ff4a412917b914b159261377') + version('3.4.0', sha256='f5c8a2a03cc1be9f504f47711a0fcd1b962745139c9fb2a10fbd79c4ae103fbd', + deprecated=True) - depends_on('r-curl@1.0:', type=('build', 'run')) - depends_on('r-jsonlite@1.0:', type=('build', 'run')) depends_on('r-rcpp@0.12.12:', type=('build', 'run')) + depends_on('r-jsonlite@1.0:', type=('build', 'run')) + depends_on('r-curl@1.0:', type=('build', 'run')) conflicts('@3.4.0', when='target=aarch64:') + conflicts('@3.4.0', when='%gcc@5:') def setup_build_environment(self, env): spec = self.spec diff --git a/var/spack/repos/builtin/packages/r-viridislite/package.py b/var/spack/repos/builtin/packages/r-viridislite/package.py index 352d17d971..6125075cfd 100644 --- a/var/spack/repos/builtin/packages/r-viridislite/package.py +++ b/var/spack/repos/builtin/packages/r-viridislite/package.py @@ -10,9 +10,9 @@ class RViridislite(RPackage): """viridisLite: Default Color Maps from 'matplotlib' (Lite Version)""" homepage = "https://github.com/sjmgarnier/viridisLite" - url = "https://cloud.r-project.org/src/contrib/viridisLite_0.2.0.tar.gz" - list_url = "https://cloud.r-project.org/src/contrib/Archive/viridisLite" + cran = "viridisLite" + version('0.4.0', sha256='849955dc8ad9bc52bdc50ed4867fd92a510696fc8294e6971efa018437c83c6a') version('0.3.0', sha256='780ea12e7c4024d5ba9029f3a107321c74b8d6d9165262f6e64b79e00aa0c2af') version('0.2.0', sha256='2d4d909f21c51e720bd685f05041ba158294e0a4064e0946d0bd916709818694') diff --git a/var/spack/repos/builtin/packages/r-vroom/package.py b/var/spack/repos/builtin/packages/r-vroom/package.py index ad2645bdf5..9019157988 100644 --- a/var/spack/repos/builtin/packages/r-vroom/package.py +++ b/var/spack/repos/builtin/packages/r-vroom/package.py @@ -18,6 +18,7 @@ class RVroom(RPackage): homepage = "https://github.com/r-lib/vroom" cran = "vroom" + version('1.5.7', sha256='d087cb148f71c222fc89199d03df2502689149873414a6d89c2f006d3a109fde') version('1.5.5', sha256='1d45688c08f162a3300eda532d9e87d144f4bc686769a521bf9a12e3d3b465fe') depends_on('r@3.1:', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/racket/package.py b/var/spack/repos/builtin/packages/racket/package.py new file mode 100644 index 0000000000..0b5e9d9a5f --- /dev/null +++ b/var/spack/repos/builtin/packages/racket/package.py @@ -0,0 +1,67 @@ +# Copyright 2013-2021 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 Racket(Package): + """The Racket programming language.""" + + homepage = "https://www.racket-lang.org" + + maintainers = ['arjunguha', 'elfprince13'] + + version('8.3', '3b963cd29ae119e1acc2c6dc4781bd9f25027979589caaae3fdfc021aac2324b') + + depends_on('libffi', type=('build', 'link', 'run')) + depends_on('patchutils') + depends_on('libtool', type=('build')) + + phases = ['configure', 'build', 'install'] + + def url_for_version(self, version): + return "https://mirror.racket-lang.org/installers/{0}/racket-minimal-{0}-src-builtpkgs.tgz".format(version) + + variant('cs', default=True, description='Build Racket CS (new ChezScheme VM)') + variant('bc', default=False, description='Build Racket BC (old MZScheme VM)') + variant('shared', default=True, description="Enable shared") + variant('jit', default=True, description="Just-in-Time Compilation") + + parallel = False + extendable = True + + def toggle(self, spec, variant): + toggle_text = ("enable" if spec.variants[variant].value else "disable") + return "--{0}-{1}".format(toggle_text, variant) + + def configure(self, spec, prefix): + with working_dir('src'): + configure = Executable("./configure") + configure_args = [self.toggle(spec, 'cs'), + self.toggle(spec, 'bc'), + self.toggle(spec, 'jit')] + toggle_shared = self.toggle(spec, 'shared') + if sys.platform == 'darwin': + configure_args += ["--enable-macprefix"] + if "+xonx" in spec: + configure_args += ["--enable-xonx", toggle_shared] + else: + configure_args += [toggle_shared] + configure_args += ["--prefix={0}".format(prefix)] + configure(*configure_args) + + def build(self, spec, prefix): + with working_dir('src'): + if spec.variants["bc"].value: + make("bc") + if spec.variants["cs"].value: + make("cs") + + def install(self, spec, prefix): + with working_dir('src'): + if spec.variants["bc"].value: + make('install-bc') + if spec.variants["cs"].value: + make('install-cs') diff --git a/var/spack/repos/builtin/packages/raja/package.py b/var/spack/repos/builtin/packages/raja/package.py index dc2a2440cb..fd76843ec8 100644 --- a/var/spack/repos/builtin/packages/raja/package.py +++ b/var/spack/repos/builtin/packages/raja/package.py @@ -58,6 +58,8 @@ class Raja(CachedCMakePackage, CudaPackage, ROCmPackage): depends_on('camp@0.2.2', when='@0.14.0:') depends_on('camp@0.1.0', when='@0.12.0:0.13.0') + depends_on('cmake@:3.20', when='+rocm', type='build') + with when('+rocm @0.12.0:'): depends_on('camp+rocm') for arch in ROCmPackage.amdgpu_targets: @@ -126,10 +128,16 @@ class Raja(CachedCMakePackage, CudaPackage, ROCmPackage): entries = [] entries.append(cmake_cache_path("BLT_SOURCE_DIR", spec['blt'].prefix)) - entries.append(cmake_cache_path("camp_DIR", spec['camp'].prefix)) + if 'camp' in self.spec: + entries.append(cmake_cache_path("camp_DIR", spec['camp'].prefix)) entries.append(cmake_cache_option("BUILD_SHARED_LIBS", '+shared' in spec)) entries.append(cmake_cache_option("ENABLE_EXAMPLES", '+examples' in spec)) - entries.append(cmake_cache_option("ENABLE_EXERCISES", '+exercises' in spec)) + if spec.satisfies('@0.14.0:'): + entries.append(cmake_cache_option("RAJA_ENABLE_EXERCISES", + '+exercises' in spec)) + else: + entries.append(cmake_cache_option("ENABLE_EXERCISES", + '+exercises' in spec)) # Work around spack adding -march=ppc64le to SPACK_TARGET_ARGS which # is used by the spack compiler wrapper. This can go away when BLT diff --git a/var/spack/repos/builtin/packages/random123/package.py b/var/spack/repos/builtin/packages/random123/package.py index 7e9a898d23..6c527e0bc0 100644 --- a/var/spack/repos/builtin/packages/random123/package.py +++ b/var/spack/repos/builtin/packages/random123/package.py @@ -13,11 +13,15 @@ class Random123(Package): conventional approach of using N iterations of a stateful transformation.""" homepage = "https://www.deshawresearch.com/resources_random123.html" - url = "https://www.deshawresearch.com/downloads/download_random123.cgi/Random123-1.09.tar.gz" + url = "https://github.com/DEShawResearch/random123/archive/refs/tags/v1.14.0.tar.gz" - version('1.13.2', sha256='74a1c6bb66b2684f03d3b1008642a2e9141909103cd09f428d2c60bcaa51cb40') - version('1.10', sha256='4afdfba4b941e33e23b5de9b7907b7e3ac326cb4d34b5fa8225edd00b5fe053b') - version('1.09', sha256='cf6abf623061bcf3d17e5e49bf3f3f0ae400ee89ae2e97c8cb8dcb918b1ebabe') + version('1.14.0', sha256='effafd8656b18030b2a5b995cd3650c51a7c45052e6e1c21e48b9fa7a59d926e') + version('1.13.2', sha256='74a1c6bb66b2684f03d3b1008642a2e9141909103cd09f428d2c60bcaa51cb40', + url='https://www.deshawresearch.com/downloads/download_random123.cgi/Random123-1.13.2.tar.gz') + version('1.10', sha256='4afdfba4b941e33e23b5de9b7907b7e3ac326cb4d34b5fa8225edd00b5fe053b', + url='https://www.deshawresearch.com/downloads/download_random123.cgi/Random123-1.10.tar.gz') + version('1.09', sha256='cf6abf623061bcf3d17e5e49bf3f3f0ae400ee89ae2e97c8cb8dcb918b1ebabe', + url='https://www.deshawresearch.com/downloads/download_random123.cgi/Random123-1.09.tar.gz') patch('ibmxl.patch', when='@1.09') patch('arm-gcc.patch', when='@1.09') diff --git a/var/spack/repos/builtin/packages/rapidjson/arm.patch b/var/spack/repos/builtin/packages/rapidjson/arm.patch index db14814048..db14814048 100755..100644 --- a/var/spack/repos/builtin/packages/rapidjson/arm.patch +++ b/var/spack/repos/builtin/packages/rapidjson/arm.patch diff --git a/var/spack/repos/builtin/packages/raxml/nox86.patch b/var/spack/repos/builtin/packages/raxml/nox86.patch index 16ad6fa67a..16ad6fa67a 100755..100644 --- a/var/spack/repos/builtin/packages/raxml/nox86.patch +++ b/var/spack/repos/builtin/packages/raxml/nox86.patch diff --git a/var/spack/repos/builtin/packages/rclone/package.py b/var/spack/repos/builtin/packages/rclone/package.py index acef5bd475..7d131e4631 100644 --- a/var/spack/repos/builtin/packages/rclone/package.py +++ b/var/spack/repos/builtin/packages/rclone/package.py @@ -11,10 +11,11 @@ class Rclone(Package): to and from various cloud storage providers""" homepage = "https://rclone.org" - url = "https://github.com/ncw/rclone/releases/download/v1.56.2/rclone-v1.56.2.tar.gz" + url = "https://github.com/ncw/rclone/releases/download/v1.57.0/rclone-v1.57.0.tar.gz" maintainers = ['alecbcs'] + version('1.57.0', sha256='3a762c02c202a9142c2d5c1a3927563a556d1683abadd25d2f695e237e4ea693') version('1.56.2', sha256='a8813d25c4640e52495fee83e525e76283c63f01d1cce8fbb58d8486b0c20c8a') version('1.56.1', sha256='090b4b082caa554812f341ae26ea6758b40338836122595d6283c60c39eb5a97') version('1.56.0', sha256='81d2eda23ebaad0a355aab6ff030712470a42505b94c01c9bb5a9ead9168cedb') diff --git a/var/spack/repos/builtin/packages/reframe/package.py b/var/spack/repos/builtin/packages/reframe/package.py index 18ed0de0be..150d5d5f13 100644 --- a/var/spack/repos/builtin/packages/reframe/package.py +++ b/var/spack/repos/builtin/packages/reframe/package.py @@ -24,6 +24,8 @@ class Reframe(Package): maintainers = ['victorusu', 'vkarak'] version('master', branch='master') + version('3.9.2', sha256='2b60422615d5b52e5dca54ace0f53a712419bcce00a5515775e57e5f5f9d6e92') + version('3.9.1', sha256='8f7f4991d1c32cc23f8b10a7509166030548bfe84e4785d017d8d797e31b0498') version('3.9.0', sha256='ccc36cb1db12148fe7658583e83c2717f5aae0d8c58f6b6ddd398e187c3edc3a') version('3.8.3', sha256='50b05b0952954215ac00a8b2e8944c946f387043660184f2fbf75995d0579d83') version('3.8.2', sha256='89116b320021193156f3d7f27057aeb900936502219e2aefa880bc0311052dbf') diff --git a/var/spack/repos/builtin/packages/rhash/package.py b/var/spack/repos/builtin/packages/rhash/package.py index eee6a50b03..641b3dc4f4 100644 --- a/var/spack/repos/builtin/packages/rhash/package.py +++ b/var/spack/repos/builtin/packages/rhash/package.py @@ -3,6 +3,8 @@ # # SPDX-License-Identifier: (Apache-2.0 OR MIT) +import os + class Rhash(MakefilePackage): """RHash is a console utility for computing and verifying hash sums of @@ -13,11 +15,18 @@ class Rhash(MakefilePackage): homepage = "https://sourceforge.net/projects/rhash/" url = "https://github.com/rhash/RHash/archive/v1.3.5.tar.gz" + version('1.4.2', sha256='600d00f5f91ef04194d50903d3c79412099328c42f28ff43a0bdb777b00bec62') version('1.3.5', sha256='98e0688acae29e68c298ffbcdbb0f838864105f9b2bd8857980664435b1f1f2e') + # configure: fix clang detection on macOS + # Patch accepted and merged upstream, remove on next release + patch('https://github.com/rhash/RHash/commit/4dc506066cf1727b021e6352535a8bb315c3f8dc.patch?full_index=1', + when='@1.4.2', sha256='3fbfe4603d2ec5228fd198fc87ff3ee281e1f68d252c1afceaa15cba76e9b6b4') + # For macOS build instructions, see: # https://github.com/Homebrew/homebrew-core/blob/master/Formula/rhash.rb + @when('@:1.3.5') def build(self, spec, prefix): # Doesn't build shared libraries by default make('PREFIX={0}'.format(prefix)) @@ -27,6 +36,11 @@ class Rhash(MakefilePackage): else: make('PREFIX={0}'.format(prefix), 'lib-shared') + @when('@1.3.6:') + def build(self, spec, prefix): + configure('--prefix=') + make() + def check(self): # Makefile has both `test` and `check` targets: # @@ -36,12 +50,19 @@ class Rhash(MakefilePackage): # Default implmentation is to run both `make test` and `make check`. # `test` passes, but `check` fails, so only run `test`. make('test') - make('test-static-lib') + if self.spec.satisfies('@:1.3.5'): + make('test-static-lib') + else: + make('test-lib-static') - if not self.spec.satisfies('platform=darwin'): + if not self.spec.satisfies('@:1.3.5 platform=darwin'): make('test-shared') - make('test-shared-lib') + if self.spec.satisfies('@:1.3.5'): + make('test-shared-lib') + else: + make('test-lib-shared') + @when('@:1.3.5') def install(self, spec, prefix): # Some things are installed to $(DESTDIR)$(PREFIX) while other things # are installed to $DESTDIR/etc. @@ -52,3 +73,25 @@ class Rhash(MakefilePackage): install('librhash/*.dylib', prefix.lib) else: make('install-lib-shared', 'DESTDIR={0}'.format(prefix), 'PREFIX=') + os.symlink(join_path(prefix.lib, 'librhash.so.0'), + join_path(prefix.lib, 'librhash.so')) + + @when('@1.3.6:') + def install(self, spec, prefix): + # Intermittent issues during installation, prefix.bin directory already exists + make('install', 'DESTDIR={0}'.format(prefix), parallel=False) + make('install-pkg-config', 'DESTDIR={0}'.format(prefix)) + make('install-lib-so-link', 'DESTDIR={0}'.format(prefix)) + make('install-lib-headers', 'DESTDIR={0}'.format(prefix)) + + @run_after('install') + def darwin_fix(self): + # The shared library is not installed correctly on Darwin; fix this + if self.spec.satisfies('@1.3.6: platform=darwin'): + # Fix RPATH for <prefix>/bin/rhash + old = '/lib/librhash.0.dylib' + new = self.prefix.lib.join('librhash.dylib') + install_name_tool = Executable('install_name_tool') + install_name_tool('-change', old, new, self.prefix.bin.rhash) + # Fix RPATH for <prefix>/lib/librhash.dylib + fix_darwin_install_name(self.prefix.lib) diff --git a/var/spack/repos/builtin/packages/rivet/package.py b/var/spack/repos/builtin/packages/rivet/package.py index 2ca4014449..6a1df5cf3a 100644 --- a/var/spack/repos/builtin/packages/rivet/package.py +++ b/var/spack/repos/builtin/packages/rivet/package.py @@ -168,7 +168,7 @@ class Rivet(AutotoolsPackage): if self.spec.variants['hepmc'].value == '2': args += ['--with-hepmc=' + self.spec['hepmc'].prefix] else: - args += ['--with-hepmc3=' + self.spec['hepmc'].prefix] + args += ['--with-hepmc3=' + self.spec['hepmc3'].prefix] if self.spec.satisfies('@:1'): args += ['--with-boost-incpath=' + self.spec['boost'].includes] diff --git a/var/spack/repos/builtin/packages/rocm-openmp-extras/package.py b/var/spack/repos/builtin/packages/rocm-openmp-extras/package.py index 32af84d329..baf58a7a3c 100644 --- a/var/spack/repos/builtin/packages/rocm-openmp-extras/package.py +++ b/var/spack/repos/builtin/packages/rocm-openmp-extras/package.py @@ -19,7 +19,8 @@ aomp = [ "808fca9bdefb109d5bcbbc9f5b59c564a6d422488869e986516f2a7233eda235", "aa75455cf1d333419e5310117678e5789c5222f7cb05b05e3dfacef855c55d84", "9e6ed2c7bdc3b4af069751b5d3e92913fd5ac318ae844f68bd78c5def990a8f7", - "c368d39ba9c1bc8b0edbe66edaa3f2a4ff5649c2bd16f499ac19dfd1591dec5a" + "c368d39ba9c1bc8b0edbe66edaa3f2a4ff5649c2bd16f499ac19dfd1591dec5a", + "c2b1a61a15fdf8d50c7c7a1ad75512f059c53a7bd5afe85f69e984f1174aa74a" ] devlib = [ @@ -27,7 +28,8 @@ devlib = [ "bca9291385d6bdc91a8b39a46f0fd816157d38abb1725ff5222e6a0daa0834cc", "d0aa495f9b63f6d8cf8ac668f4dc61831d996e9ae3f15280052a37b9d7670d2a", "f5f5aa6bfbd83ff80a968fa332f80220256447c4ccb71c36f1fbd2b4a8e9fc1b", - "34a2ac39b9bb7cfa8175cbab05d30e7f3c06aaffce99eed5f79c616d0f910f5f" + "34a2ac39b9bb7cfa8175cbab05d30e7f3c06aaffce99eed5f79c616d0f910f5f", + "055a67e63da6491c84cd45865500043553fb33c44d538313dd87040a6f3826f2" ] llvm = [ @@ -35,7 +37,8 @@ llvm = [ "8262aff88c1ff6c4deb4da5a4f8cda1bf90668950e2b911f93f73edaee53b370", "aa1f80f429fded465e86bcfaef72255da1af1c5c52d58a4c979bc2f6c2da5a69", "244e38d824fa7dfa8d0edf3c036b3c84e9c17a16791828e4b745a8d31eb374ae", - "751eca1d18595b565cfafa01c3cb43efb9107874865a60c80d6760ba83edb661" + "751eca1d18595b565cfafa01c3cb43efb9107874865a60c80d6760ba83edb661", + "1567d349cd3bcd2c217b3ecec2f70abccd5e9248bd2c3c9f21d4cdb44897fc87" ] flang = [ @@ -43,7 +46,8 @@ flang = [ "3990d39ff1c908b150f464f0653a123d94be30802f9cad6af18fbb560c4b412e", "f3e19699ce4ac404f41ffe08ef4546e31e2e741d8deb403b5477659e054275d5", "f41f661425534b5cfb20e2c0efd9d0800609dc3876ee9c3f76f026d36abbfa35", - "d6c3f3aaa289251a433d99d1cffe432812093089ae876a6863295a15066c1eaf" + "d6c3f3aaa289251a433d99d1cffe432812093089ae876a6863295a15066c1eaf", + "13d3525078fd1c569f7c8ea7fce439b04f6b03814bbe88600c08f95c788e7802" ] extras = [ @@ -51,10 +55,11 @@ extras = [ "5d98d34aff97416d8b5b9e16e7cf474580f8de8a73bd0e549c4440a3c5df4ef5", "51cc8a7c5943e1d9bc657fc9b9797f45e3ce6a4e544d3d3a967c7cd0185a0510", "91fdfadb94aa6afc1942124d0953ddc80c297fa75de1897fb42ac8e7dea51ab9", - "31bbe70b51c259a54370d021ae63528a1740b5477a22412685afd14150fff6f4" + "31bbe70b51c259a54370d021ae63528a1740b5477a22412685afd14150fff6f4", + "ec6cc4a9c24f098496de3206714dafe9a714f06afacfe21d53a4e6344f9cb4c9" ] -versions = ['3.9.0', '3.10.0', '4.0.0', '4.1.0', '4.2.0'] +versions = ['3.9.0', '3.10.0', '4.0.0', '4.1.0', '4.2.0', '4.3.0'] versions_dict = dict() components = ['aomp', 'devlib', 'llvm', 'flang', 'extras'] component_hashes = [aomp, devlib, llvm, flang, extras] @@ -70,9 +75,10 @@ class RocmOpenmpExtras(Package): """OpenMP support for ROCm LLVM.""" homepage = tools_url + "/aomp" - url = tools_url + "/aomp/archive/rocm-4.2.0.tar.gz" + url = tools_url + "/aomp/archive/rocm-4.3.0.tar.gz" maintainers = ['srekolam', 'arjun-raj-kuppala', 'estewart08'] + version('4.3.0', sha256=versions_dict['4.3.0']['aomp']) version('4.2.0', sha256=versions_dict['4.2.0']['aomp']) version('4.1.0', sha256=versions_dict['4.1.0']['aomp']) version('4.0.0', sha256=versions_dict['4.0.0']['aomp']) @@ -88,13 +94,11 @@ class RocmOpenmpExtras(Package): depends_on('elfutils', type=('build', 'link')) depends_on('libffi', type=('build', 'link')) - for ver in ['3.9.0', '3.10.0', '4.0.0', '4.1.0', '4.2.0']: + for ver in ['3.9.0', '3.10.0', '4.0.0', '4.1.0', '4.2.0', '4.3.0']: depends_on('hsakmt-roct@' + ver, when='@' + ver) depends_on('comgr@' + ver, when='@' + ver) depends_on('hsa-rocr-dev@' + ver, when='@' + ver) - # standalone rocm-device-libs - depends_on('rocm-device-libs@' + ver, when='@' + ver) - depends_on('llvm-amdgpu@{0} ~rocm-device-libs ~openmp'.format(ver), + depends_on('llvm-amdgpu@{0} ~openmp'.format(ver), when='@' + ver) # tag changed to 'rocm-' in 4.0.0 @@ -141,7 +145,7 @@ class RocmOpenmpExtras(Package): when='@' + ver) def setup_run_environment(self, env): - devlibs_prefix = self.spec['rocm-device-libs'].prefix + devlibs_prefix = self.spec['llvm-amdgpu'].prefix openmp_extras_prefix = self.spec['rocm-openmp-extras'].prefix llvm_prefix = self.spec['llvm-amdgpu'].prefix env.set('AOMP', '{0}'.format(llvm_prefix)) @@ -169,22 +173,22 @@ class RocmOpenmpExtras(Package): def patch(self): src = self.stage.source_path - flang_warning = '-Wno-incompatible-pointer-types-discards-qualifiers)' aomp_extras = '{0}/rocm-openmp-extras/aomp-extras/aomp-device-libs' libomptarget = \ '{0}/rocm-openmp-extras/llvm-project/openmp/libomptarget' flang = '{0}/rocm-openmp-extras/flang/' + # If not in a git repo the STRIP command will have an empty + # argument. This is fixed in later versions. + if self.spec.version == Version('4.3.0'): + filter_file('STRIP ${FLANG_SHA}', 'STRIP 0', + flang.format(src) + 'CMakeLists.txt', string=True) + if self.spec.version < Version('4.1.0'): plugin = '/plugins/hsa/CMakeLists.txt' else: - # Spack thinks some warnings from the flang build are errors. - # Disable those warnings. - filter_file('PRIVATE -fPIC)', - 'PRIVATE -fPIC PRIVATE ' + flang_warning, - flang.format(src) + 'runtime/flang/CMakeLists.txt', - string=True) plugin = '/plugins/amdgpu/CMakeLists.txt' + filter_file( '{ROCM_DIR}/amdgcn/bitcode', '{DEVICE_LIBS_DIR}', aomp_extras.format(src) + '/aompextras/CMakeLists.txt', @@ -257,7 +261,7 @@ class RocmOpenmpExtras(Package): src = self.stage.source_path gfx_list = "gfx700;gfx701;gfx801;gfx803;gfx900;gfx902;gfx906;gfx908" openmp_extras_prefix = self.spec['rocm-openmp-extras'].prefix - devlibs_prefix = self.spec['rocm-device-libs'].prefix + devlibs_prefix = self.spec['llvm-amdgpu'].prefix devlibs_src = '{0}/rocm-openmp-extras/rocm-device-libs'.format(src) hsa_prefix = self.spec['hsa-rocr-dev'].prefix hsakmt_prefix = self.spec['hsakmt-roct'].prefix @@ -268,22 +272,30 @@ class RocmOpenmpExtras(Package): omp_lib_dir = '{0}/lib'.format(openmp_extras_prefix) bin_dir = '{0}/bin'.format(llvm_prefix) lib_dir = '{0}/lib'.format(llvm_prefix) + flang_warning = '-Wno-incompatible-pointer-types-discards-qualifiers' + libpgmath = '/rocm-openmp-extras/flang/runtime/libpgmath/lib/common' + elfutils_inc = spec['elfutils'].prefix.include # flang1 and flang2 symlink needed for build of flang-runtime # libdevice symlink to rocm-openmp-extras for runtime # libdebug symlink to rocm-openmp-extras for runtime - if not (os.path.islink((os.path.join(bin_dir, 'flang1')))): - os.symlink(os.path.join(omp_bin_dir, 'flang1'), - os.path.join(bin_dir, 'flang1')) - if not (os.path.islink((os.path.join(bin_dir, 'flang2')))): - os.symlink(os.path.join(omp_bin_dir, 'flang2'), - os.path.join(bin_dir, 'flang2')) - if not (os.path.islink((os.path.join(lib_dir, 'libdevice')))): - os.symlink(os.path.join(omp_lib_dir, 'libdevice'), - os.path.join(lib_dir, 'libdevice')) - if not (os.path.islink((os.path.join(llvm_prefix, 'lib-debug')))): - os.symlink(os.path.join(openmp_extras_prefix, 'lib-debug'), - os.path.join(llvm_prefix, 'lib-debug')) + if (os.path.islink((os.path.join(bin_dir, 'flang1')))): + os.unlink(os.path.join(bin_dir, 'flang1')) + if (os.path.islink((os.path.join(bin_dir, 'flang2')))): + os.unlink(os.path.join(bin_dir, 'flang2')) + if (os.path.islink((os.path.join(lib_dir, 'libdevice')))): + os.unlink(os.path.join(lib_dir, 'libdevice')) + if (os.path.islink((os.path.join(llvm_prefix, 'lib-debug')))): + os.unlink(os.path.join(llvm_prefix, 'lib-debug')) + + os.symlink(os.path.join(omp_bin_dir, 'flang1'), + os.path.join(bin_dir, 'flang1')) + os.symlink(os.path.join(omp_bin_dir, 'flang2'), + os.path.join(bin_dir, 'flang2')) + os.symlink(os.path.join(omp_lib_dir, 'libdevice'), + os.path.join(lib_dir, 'libdevice')) + os.symlink(os.path.join(openmp_extras_prefix, 'lib-debug'), + os.path.join(llvm_prefix, 'lib-debug')) # Set cmake args components = dict() @@ -299,6 +311,11 @@ class RocmOpenmpExtras(Package): ] # Shared cmake configuration for openmp, openmp-debug + # Due to hsa-rocr-dev using libelf instead of elfutils + # the build of openmp fails because the include path + # for libelf is placed before elfutils in SPACK_INCLUDE_DIRS. + # Passing the elfutils include path via cmake options is a + # workaround until hsa-rocr-dev switches to elfutils. openmp_common_args = [ '-DROCM_DIR={0}'.format(hsa_prefix), '-DDEVICE_LIBS_DIR={0}/amdgcn/bitcode'.format(devlibs_prefix), @@ -316,7 +333,9 @@ class RocmOpenmpExtras(Package): '-DOPENMP_ENABLE_LIBOMPTARGET=1', '-DOPENMP_ENABLE_LIBOMPTARGET_HSA=1', '-DLLVM_MAIN_INCLUDE_DIR={0}{1}'.format(src, llvm_inc), - '-DLLVM_INSTALL_PREFIX={0}'.format(llvm_prefix) + '-DLLVM_INSTALL_PREFIX={0}'.format(llvm_prefix), + '-DCMAKE_C_FLAGS=-isystem{0}'.format(elfutils_inc), + '-DCMAKE_CXX_FLAGS=-isystem{0}'.format(elfutils_inc) ] if self.spec.version < Version('4.1.0'): @@ -349,6 +368,15 @@ class RocmOpenmpExtras(Package): '-DCMAKE_Fortran_COMPILER={0}/flang'.format(bin_dir), '-DLLVM_TARGETS_TO_BUILD=AMDGPU;x86' ] + if self.spec.version >= Version('4.2.0'): + # Spack thinks some warnings from the flang build are errors. + # Disable those warnings in C and CXX flags. + flang_common_args += [ + '-DCMAKE_CXX_FLAGS={0}'.format(flang_warning) + + ' -I{0}{1}'.format(src, libpgmath), + '-DCMAKE_C_FLAGS={0}'.format(flang_warning) + + ' -I{0}{1}'.format(src, libpgmath) + ] components['pgmath'] = [ '../rocm-openmp-extras/flang/runtime/libpgmath' diff --git a/var/spack/repos/builtin/packages/rocm-tensile/package.py b/var/spack/repos/builtin/packages/rocm-tensile/package.py index 07ff61f007..ca4ce6ade6 100644 --- a/var/spack/repos/builtin/packages/rocm-tensile/package.py +++ b/var/spack/repos/builtin/packages/rocm-tensile/package.py @@ -27,12 +27,15 @@ class RocmTensile(CMakePackage): version('3.7.0', sha256='488a7f76ea42a7601d0557f53068ec4832a2c7c06bb1b511470a4e35599a5a4d') version('3.5.0', sha256='71eb3eed6625b08a4cedb539dd9b596e3d4cc82a1a8063d37d94c0765b6f8257') - tensile_architecture = ('all', 'gfx803', 'gfx900', 'gfx906', 'gfx908') + tensile_architecture = ('all', 'gfx906', 'gfx908', 'gfx000', 'gfx900', + 'gfx906:xnack-', 'gfx908:xnack-', 'gfx90a:xnack-', + 'gfx1010', 'gfx1011', 'gfx1012', 'gfx1030') variant('build_type', default='Release', values=("Release", "Debug", "RelWithDebInfo"), description='CMake build type') - variant('tensile_architecture', default='all', values=tensile_architecture, multi=False) + variant('tensile_architecture', default='all', values=tensile_architecture, multi=True) variant('openmp', default=True, description='Enable OpenMP') - + conflicts('tensile_architecture=gfx906', when='@4.0.1:') + conflicts('tensile_architecture=gfx908', when='@4.0.1:') depends_on('cmake@3:', type='build') # This is the default library format since 3.7.0 depends_on('msgpack-c@3:', when='@3.7:') @@ -62,8 +65,20 @@ class RocmTensile(CMakePackage): def setup_build_environment(self, env): env.set('CXX', self.spec['hip'].hipcc) - def cmake_args(self): + def get_gpulist_for_tensile_support(self): arch = self.spec.variants['tensile_architecture'].value + if arch[0] == 'all': + if self.spec.satisfies('@:4.0.0'): + arch_value = self.tensile_architecture[1:4] + elif self.spec.satisfies('@4.1.0:4.2.0'): + arch_value = self.tensile_architecture[3:6] + elif self.spec.satisfies('@4.3.0:'): + arch_value = self.tensile_architecture[3:] + return arch_value + else: + return arch + + def cmake_args(self): args = [ self.define('amd_comgr_DIR', self.spec['comgr'].prefix), self.define('Tensile_COMPILER', 'hipcc'), @@ -80,10 +95,8 @@ class RocmTensile(CMakePackage): if '@3.7.0:' in self.spec: args.append(self.define('Tensile_LIBRARY_FORMAT', 'msgpack')) - if self.spec.satisfies('@4.1.0:'): - if arch == 'gfx906' or arch == 'gfx908': - arch = arch + ':xnack-' - args.append(self.define('Tensile_ARCHITECTURE', arch)) + args.append(self.define('Tensile_ARCHITECTURE', + self.get_gpulist_for_tensile_support())) if self.spec.satisfies('^cmake@3.21.0:3.21.2'): args.append(self.define('__skip_rocmclang', 'ON')) diff --git a/var/spack/repos/builtin/packages/rocm-validation-suite/004-remove-git-download-yaml-cpp-use-yaml-cpp-recipe.patch b/var/spack/repos/builtin/packages/rocm-validation-suite/004-remove-git-download-yaml-cpp-use-yaml-cpp-recipe.patch new file mode 100644 index 0000000000..6224329bab --- /dev/null +++ b/var/spack/repos/builtin/packages/rocm-validation-suite/004-remove-git-download-yaml-cpp-use-yaml-cpp-recipe.patch @@ -0,0 +1,50 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index ff77558..278a732 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -207,36 +207,7 @@ if ( NOT DEFINED CMAKE_PACKAGING_INSTALL_PREFIX ) + endif () + + ################################################################################ +-# Download and unpack yaml-cpp at configure time +-configure_file(CMakeYamlDownload.cmake yaml-download/CMakeLists.txt) +-execute_process(COMMAND ${CMAKE_COMMAND} -G "${CMAKE_GENERATOR}" . +- RESULT_VARIABLE result +- WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/yaml-download ) +-if(result) +- message(FATAL_ERROR "CMake step for yaml-download failed: ${result}") +-endif() +-execute_process(COMMAND ${CMAKE_COMMAND} --build . +- RESULT_VARIABLE result +- WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/yaml-download ) +-if(result) +- message(FATAL_ERROR "Build step for yaml-download failed: ${result}") +-endif() +-execute_process(COMMAND ${CMAKE_COMMAND} ${CMAKE_BINARY_DIR}/yaml-src -B${CMAKE_BINARY_DIR}/yaml-build +- RESULT_VARIABLE result +- WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/yaml-src ) +-if(result) +- message(FATAL_ERROR "Config step for yaml-src failed: ${result}") +-endif() + +-add_custom_target(rvs_yaml_target +- DEPENDS ${CMAKE_BINARY_DIR}/yaml-build/libyaml-cpp.a +-) +- +-add_custom_command(OUTPUT ${CMAKE_BINARY_DIR}/yaml-build/libyaml-cpp.a +- COMMAND make -C ${CMAKE_BINARY_DIR}/yaml-build +- WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/yaml-src +- COMMENT "Generating yaml-cpp targets" +- VERBATIM) + + ################################################################################ + ## GOOGLE TEST +@@ -446,7 +417,7 @@ if (RVS_BUILD_TESTS) + add_subdirectory(testif.so) + endif() + +-add_dependencies(rvshelper rvs_bin_folder rvs_doc rvs_yaml_target) ++add_dependencies(rvshelper rvs_bin_folder rvs_doc) + + + add_dependencies(pesm rvslib rvslibrt) diff --git a/var/spack/repos/builtin/packages/rocm-validation-suite/package.py b/var/spack/repos/builtin/packages/rocm-validation-suite/package.py index 137b9aa1a5..833cce2fe5 100644 --- a/var/spack/repos/builtin/packages/rocm-validation-suite/package.py +++ b/var/spack/repos/builtin/packages/rocm-validation-suite/package.py @@ -35,9 +35,11 @@ class RocmValidationSuite(CMakePackage): patch('001-fixes-for-rocblas-rocm-smi-install-prefix-path.patch') patch('002-remove-force-setting-hip-inc-path.patch', when='@4.1.0:') patch('003-cmake-change-to-remove-installs-and-sudo.patch', when='@4.1.0:') + patch('004-remove-git-download-yaml-cpp-use-yaml-cpp-recipe.patch', when='@4.3.0:') depends_on('cmake@3.5:', type='build') depends_on('zlib', type='link') + depends_on('yaml-cpp~shared') def setup_build_environment(self, build_env): spec = self.spec @@ -55,5 +57,7 @@ class RocmValidationSuite(CMakePackage): return [ self.define('HIP_INC_DIR', self.spec['hip'].prefix), self.define('ROCM_SMI_DIR', self.spec['rocm-smi-lib'].prefix), - self.define('ROCBLAS_DIR', self.spec['rocblas'].prefix) + self.define('ROCBLAS_DIR', self.spec['rocblas'].prefix), + self.define('YAML_INC_DIR', self.spec['yaml-cpp'].prefix.include), + self.define('YAML_LIB_DIR', self.spec['yaml-cpp'].libs.directories[0]) ] diff --git a/var/spack/repos/builtin/packages/rocprofiler-dev/package.py b/var/spack/repos/builtin/packages/rocprofiler-dev/package.py index 53070ae524..558a4b63ea 100644 --- a/var/spack/repos/builtin/packages/rocprofiler-dev/package.py +++ b/var/spack/repos/builtin/packages/rocprofiler-dev/package.py @@ -37,6 +37,8 @@ class RocprofilerDev(CMakePackage): depends_on('rocminfo@' + ver, when='@' + ver) depends_on('roctracer-dev-api@' + ver, when='@' + ver) + depends_on('numactl', type='link', when='@4.3.1') + # See https://github.com/ROCm-Developer-Tools/rocprofiler/pull/50 patch('fix-includes.patch') diff --git a/var/spack/repos/builtin/packages/rocsolver/link-clients-blas.patch b/var/spack/repos/builtin/packages/rocsolver/link-clients-blas.patch new file mode 100644 index 0000000000..13dfd31976 --- /dev/null +++ b/var/spack/repos/builtin/packages/rocsolver/link-clients-blas.patch @@ -0,0 +1,22 @@ +diff -r -u a/clients/benchmarks/CMakeLists.txt b/clients/benchmarks/CMakeLists.txt +--- a/clients/benchmarks/CMakeLists.txt 2021-08-14 18:54:53.356456513 -0600 ++++ b/clients/benchmarks/CMakeLists.txt 2021-08-14 18:55:25.125354419 -0600 +@@ -19,6 +19,7 @@ + target_link_libraries( rocsolver-bench PRIVATE + cblas + lapack ++ blas + Threads::Threads + hip::device + rocsolver-common +diff -r -u a/clients/gtest/CMakeLists.txt b/clients/gtest/CMakeLists.txt +--- a/clients/gtest/CMakeLists.txt 2021-08-14 18:54:53.356456513 -0600 ++++ b/clients/gtest/CMakeLists.txt 2021-08-14 18:55:16.581112850 -0600 +@@ -89,6 +89,7 @@ + target_link_libraries( rocsolver-test PRIVATE + cblas + lapack ++ blas + GTest::GTest + hip::device + rocsolver-common diff --git a/var/spack/repos/builtin/packages/rocsolver/package.py b/var/spack/repos/builtin/packages/rocsolver/package.py index 26dbff2759..f5273f545a 100644 --- a/var/spack/repos/builtin/packages/rocsolver/package.py +++ b/var/spack/repos/builtin/packages/rocsolver/package.py @@ -42,6 +42,15 @@ class Rocsolver(CMakePackage): depends_on('cmake@3.8:', type='build', when='@4.1.0:') depends_on('cmake@3.5:', type='build') + depends_on('googletest@1.10.0:', type='test') + depends_on('netlib-lapack@3.7.1:', type='test') + + patch('link-clients-blas.patch', when='@4.3.0:') + + def check(self): + exe = join_path(self.build_directory, 'clients', 'staging', 'rocsolver-test') + self.run_test(exe, options=['--gtest_filter=checkin*']) + for ver in ['3.5.0', '3.7.0', '3.8.0', '3.9.0', '3.10.0', '4.0.0', '4.1.0', '4.2.0', '4.3.0', '4.3.1']: depends_on('hip@' + ver, when='@' + ver) @@ -52,7 +61,7 @@ class Rocsolver(CMakePackage): tgt = self.spec.variants['amdgpu_target'].value args = [ self.define('BUILD_CLIENTS_SAMPLES', 'OFF'), - self.define('BUILD_CLIENTS_TESTS', 'OFF'), + self.define('BUILD_CLIENTS_TESTS', self.run_tests), self.define('BUILD_CLIENTS_BENCHMARKS', 'OFF') ] if self.spec.satisfies('@4.1.0'): diff --git a/var/spack/repos/builtin/packages/roms/package.py b/var/spack/repos/builtin/packages/roms/package.py index 0492e9a492..9ef249a900 100644 --- a/var/spack/repos/builtin/packages/roms/package.py +++ b/var/spack/repos/builtin/packages/roms/package.py @@ -71,7 +71,8 @@ class Roms(MakefilePackage): """ Edit Linux-flang.mk makefile to support AOCC compiler """ - fflags = ['-fveclib=AMDLIBM', '-O3', '-ffast-math'] + fflags = ['-fveclib=AMDLIBM', '-O3', '-ffast-math', + '-funroll-loops', '-Mstack_arrays', '-std=f2008'] make_aocc = join_path('Compilers', '{0}-{1}.mk'.format(self.arch, lib)) diff --git a/var/spack/repos/builtin/packages/runc/package.py b/var/spack/repos/builtin/packages/runc/package.py new file mode 100644 index 0000000000..8afe0eef9d --- /dev/null +++ b/var/spack/repos/builtin/packages/runc/package.py @@ -0,0 +1,24 @@ +# Copyright 2013-2021 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 Runc(MakefilePackage): + """CLI tool for spawning containers on Linux according to the OCI specification""" + + homepage = 'https://github.com/opencontainers/runc' + url = 'https://github.com/opencontainers/runc/releases/download/v1.0.2/runc.tar.xz' + maintainers = ['bernhardkaindl'] + + version('1.0.2', sha256='740acb49e33eaf4958b5109c85363c1d3900f242d4cab47fbdbefa6f8f3c6909') + + depends_on('go', type='build') + depends_on('go-md2man', type='build') + depends_on('pkgconfig', type='build') + depends_on('libseccomp') + + def install(self, spec, prefix): + make('install', 'PREFIX=' + prefix) diff --git a/var/spack/repos/builtin/packages/salmon-tddft/cmakefix.patch b/var/spack/repos/builtin/packages/salmon-tddft/cmakefix.patch index 65ff24bdb4..65ff24bdb4 100755..100644 --- a/var/spack/repos/builtin/packages/salmon-tddft/cmakefix.patch +++ b/var/spack/repos/builtin/packages/salmon-tddft/cmakefix.patch diff --git a/var/spack/repos/builtin/packages/salmon-tddft/fjmpi.patch b/var/spack/repos/builtin/packages/salmon-tddft/fjmpi.patch index 3208d150e8..3208d150e8 100755..100644 --- a/var/spack/repos/builtin/packages/salmon-tddft/fjmpi.patch +++ b/var/spack/repos/builtin/packages/salmon-tddft/fjmpi.patch diff --git a/var/spack/repos/builtin/packages/salmon-tddft/package.py b/var/spack/repos/builtin/packages/salmon-tddft/package.py index ea5e887bb2..ea5e887bb2 100755..100644 --- a/var/spack/repos/builtin/packages/salmon-tddft/package.py +++ b/var/spack/repos/builtin/packages/salmon-tddft/package.py diff --git a/var/spack/repos/builtin/packages/salmon-tddft/v2.0.libxc-5.0.patch b/var/spack/repos/builtin/packages/salmon-tddft/v2.0.libxc-5.0.patch index 956eb93da4..956eb93da4 100755..100644 --- a/var/spack/repos/builtin/packages/salmon-tddft/v2.0.libxc-5.0.patch +++ b/var/spack/repos/builtin/packages/salmon-tddft/v2.0.libxc-5.0.patch diff --git a/var/spack/repos/builtin/packages/samtools/package.py b/var/spack/repos/builtin/packages/samtools/package.py index 58bf1823f8..439475b393 100644 --- a/var/spack/repos/builtin/packages/samtools/package.py +++ b/var/spack/repos/builtin/packages/samtools/package.py @@ -14,6 +14,7 @@ class Samtools(Package): homepage = "https://www.htslib.org" url = "https://github.com/samtools/samtools/releases/download/1.13/samtools-1.13.tar.bz2" + version('1.14', sha256='9341dabaa98b0ea7d60fd47e42af25df43a7d3d64d8e654cdf852974546b7d74') version('1.13', sha256='616ca2e051cc8009a1e9c01cfd8c7caf8b70916ddff66f3b76914079465f8c60') version('1.12', sha256='6da3770563b1c545ca8bdf78cf535e6d1753d6383983c7929245d5dba2902dcb') version('1.10', sha256='7b9ec5f05d61ec17bd9a82927e45d8ef37f813f79eb03fe06c88377f1bd03585') @@ -34,6 +35,7 @@ class Samtools(Package): depends_on('python', type='run') # htslib became standalone @1.3.1, must use corresponding version + depends_on('htslib@1.14', when='@1.14') depends_on('htslib@1.13', when='@1.13') depends_on('htslib@1.12', when='@1.12') depends_on('htslib@1.11', when='@1.11') @@ -68,8 +70,11 @@ class Samtools(Package): make('prefix={0}'.format(prefix), 'install') # Install dev headers and libs for legacy apps depending on them - mkdir(prefix.include) - mkdir(prefix.lib) - install('sam.h', prefix.include) - install('bam.h', prefix.include) - install('libbam.a', prefix.lib) + # per https://github.com/samtools/samtools/releases/tag/1.14 + # these have been removed (bam.h still exists but paired down) + if spec.satisfies('@:1.13'): + mkdir(prefix.include) + mkdir(prefix.lib) + install('sam.h', prefix.include) + install('bam.h', prefix.include) + install('libbam.a', prefix.lib) diff --git a/var/spack/repos/builtin/packages/scale/fj-own_compiler.patch b/var/spack/repos/builtin/packages/scale/fj-own_compiler.patch new file mode 100644 index 0000000000..fb4aa01e85 --- /dev/null +++ b/var/spack/repos/builtin/packages/scale/fj-own_compiler.patch @@ -0,0 +1,51 @@ +diff --git a/sysdep/Makedef.FUGAKU b/sysdep/Makedef.FUGAKU +index 37d41388a..c08707165 100644 +--- a/sysdep/Makedef.FUGAKU ++++ b/sysdep/Makedef.FUGAKU +@@ -7,8 +7,8 @@ + ##### Fortran setting + #FFLAGS is set in Mkinclude. FFLAGS_DEBUG is used if SCALE_DEBUG=T + +-FC = mpifrtpx +-SFC = frtpx ++FC = mpifrt ++SFC = frt + MODDIROPT = -M + + FFLAGS_FAST = -Kfast,parallel,ocl,preex,array_private,noalias=s,mfunc=2 \ +@@ -34,9 +34,9 @@ FFLAGS_DEBUG = -O0 \ + ##### C setting + #CFLAGS is set in Mkinclude. CFLAGS_DEBUG is used if SCALE_DEBUG=T + +-CC = mpifccpx ++CC = mpifcc + +-CFLAGS_FAST = -Kfast,parallel,ocl,preex,array_private,region_extension,restp=all -Ksimd ++CFLAGS_FAST = -Kfast,ocl,preex -Ksimd + CFLAGS_DEBUG = -O0 + + +diff --git a/sysdep/Makedef.FX100 b/sysdep/Makedef.FX100 +index 30077bd21..a26d29928 100644 +--- a/sysdep/Makedef.FX100 ++++ b/sysdep/Makedef.FX100 +@@ -7,8 +7,8 @@ + ##### Fortran setting + #FFLAGS is set in Mkinclude. FFLAGS_DEBUG is used if SCALE_DEBUG=T + +-FC = mpifrtpx +-SFC = frtpx ++FC = mpifrt ++SFC = frt + MODDIROPT = -M + + FFLAGS_FAST = -Kfast,parallel,ocl,preex,array_private,noalias=s,mfunc=2 \ +@@ -35,7 +35,7 @@ FFLAGS_DEBUG = -O0 \ + ##### C setting + #CFLAGS is set in Mkinclude. CFLAGS_DEBUG is used if SCALE_DEBUG=T + +-CC = mpifccpx ++CC = mpifcc + + CFLAGS_FAST = -Kfast,parallel,ocl,preex,array_private,region_extension,restp=all -Ksimd + CFLAGS_DEBUG = -O0 diff --git a/var/spack/repos/builtin/packages/scale/package.py b/var/spack/repos/builtin/packages/scale/package.py new file mode 100644 index 0000000000..460089e123 --- /dev/null +++ b/var/spack/repos/builtin/packages/scale/package.py @@ -0,0 +1,84 @@ +# Copyright 2013-2021 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) + +import os + +from spack import * + + +class Scale(MakefilePackage): + """SCALE (Scalable Computing for Advanced Library and Environment) is + a basic library for weather and climate model of the earth and planets + aimed to be widely used in various models. + The SCALE library is developed with co-design by researchers of + computational science and computer science.""" + homepage = "https://scale.riken.jp/" + url = "https://scale.riken.jp/archives/scale-5.4.4.tar.gz" + + maintainers = ['t-yamaura'] + + version('5.4.4', sha256='7d0ec4069c15d8b9ec7166f32c9a2eda772d975a8e08e420e6b16891ceebb316', preferred=True) + version('5.3.6', sha256='3ab0d42cdb16eee568c65b880899e861e464e92088ceb525066c726f31d04848') + version('5.2.6', sha256='e63141d05810e3f41fc89c9eb15e2319d753832adabdac8f7c8dd7acc0f5f8ed') + + depends_on('openmpi', type=('build', 'link', 'run')) + depends_on('netcdf-c') + depends_on('netcdf-fortran') + depends_on('parallel-netcdf') + + patch('fj-own_compiler.patch', when='%fj') + + parallel = False + + def setup_build_environment(self, build_env): + build_env.set('PREFIX', self.prefix) + + def build(self, spec, prefix): + scale_sys_str = '' + if self.spec.satisfies('platform=linux %gcc'): + scale_sys_str = 'Linux64-gnu-ompi' + elif self.spec.satisfies('platform=linux %intel'): + scale_sys_str = 'Linux64-intel-impi' + elif self.spec.satisfies('platform=linux %pgi'): + scale_sys_str = 'Linux64-pgi-ompi' + elif self.spec.satisfies('platform=linux target=arm %gcc'): + scale_sys_str = 'LinuxARM-gnu-ompi' + elif self.spec.satisfies('platform=linux target=a64fx %fj'): + scale_sys_str = 'FUGAKU' + elif self.spec.satisfies('platform=linux target=s64fx %fj'): + scale_sys_str = 'FX100' + elif self.spec.satisfies('platform=darwin %gcc'): + scale_sys_str = 'MacOSX-gnu-ompi' + + if scale_sys_str == '': + raise InstallError('unsupported arch and compiler combination.') + env['SCALE_SYS'] = scale_sys_str + + # set SCALE_NETCDF_INCLUDE + nc_config = which('nc-config') + nc_str = nc_config('--cflags', '--fflags', output=str) + try: + env['SCALE_NETCDF_INCLUDE'] = nc_str.replace('\n', ' ') + except TypeError: # for python3 + env['SCALE_NETCDF_INCLUDE'] = nc_str.decode().replace('\n', ' ') + + # set SCALE_NETCDF_LIBS + nc_config = which('nc-config') + nc_str = nc_config('--libs', '--flibs', output=str) + try: + env['SCALE_NETCDF_LIBS'] = nc_str.replace('\n', ' ') + except TypeError: # for python3 + env['SCALE_NETCDF_LIBS'] = nc_str.decode().replace('\n', ' ') + + make() + + def install(self, spec, prefix): + make('install') + + install_tree('bin', prefix.bin) + install_tree('lib', prefix.lib) + install_tree('doc', prefix.share.docs) + install_tree(os.path.join('scale-rm', 'test'), + os.path.join(prefix.share, 'test')) diff --git a/var/spack/repos/builtin/packages/seacas/package.py b/var/spack/repos/builtin/packages/seacas/package.py index bc2c4d1592..cd389ce56c 100644 --- a/var/spack/repos/builtin/packages/seacas/package.py +++ b/var/spack/repos/builtin/packages/seacas/package.py @@ -96,6 +96,7 @@ class Seacas(CMakePackage): with when('+metis'): depends_on('metis+int64+real64') depends_on('parmetis+int64', when='+mpi') + depends_on('libx11', when='+x11') # The Faodel TPL is only supported in seacas@2021-04-05: depends_on('faodel@1.2108.1:+mpi', when='+faodel +mpi') @@ -126,6 +127,8 @@ class Seacas(CMakePackage): '-DTPL_ENABLE_MPI:BOOL=ON', '-DMPI_BASE_DIR:PATH=%s' % spec['mpi'].prefix, ]) + else: + '-DTPL_ENABLE_MPI:BOOL=OFF' options.extend([ '-DSEACASProj_ENABLE_TESTS:BOOL=ON', diff --git a/var/spack/repos/builtin/packages/seal/package.py b/var/spack/repos/builtin/packages/seal/package.py new file mode 100644 index 0000000000..3fa81bba0b --- /dev/null +++ b/var/spack/repos/builtin/packages/seal/package.py @@ -0,0 +1,30 @@ +# Copyright 2013-2021 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 Seal(CMakePackage): + """Microsoft SEAL is an easy-to-use open-source (MIT licensed) + homomorphic encryption library developed by the Cryptography and Privacy + Research Group at Microsoft. Microsoft SEAL is written in modern standard + C++ and is easy to compile and run in many different environments. For + more information about the Microsoft SEAL project, see sealcrypto.org.""" + + homepage = "https://github.com/microsoft/SEAL" + url = "https://github.com/microsoft/SEAL/archive/refs/tags/v3.7.1.tar.gz" + + maintainers = ['wohlbier'] + + version('3.7.1', sha256='6737177bfb582cc1a2863ef1e96cc6c39b119257e7192981a3190eb79e0fcfd3') + version('3.7.0', sha256='06ea835d6c9cdbbc4edb72a8db4bd4b1115995f075774043b9f31938d0624543') + version('3.6.6', sha256='85a63188a5ccc8d61b0adbb92e84af9b7223fc494d33260fa17a121433790a0e') + version('3.6.5', sha256='77bfcb4a8b785206c419cdf7aff8c200250691518eeddc958f874d1f567b2872') + version('3.6.4', sha256='7392574fe3b757d5ced8cc973b23a7b69be0cd35b6e778b3c2447598e9ece5b3') + version('3.6.3', sha256='aeecdf79afba5f83d1828b3525760c04e52928614038e9a860773943d5d14558') + version('3.6.2', sha256='1e2a97deb1f5b543640fc37d7b4737cab2a9849f616c13ff40ad3be4cf29fb9c') + version('3.6.1', sha256='e399c0df7fb60ad450a0ccfdc81b99d19308d0fc1f730d4cad4748dfb2fdb516') + version('3.6.0', sha256='79c0e45bf301f4577a7633b14e8b26e37eefc89fd4f6a29d13f87e5f22a372ad') + version('3.5.9', sha256='23bf3bf7ae1dae5dae271244a5baa66fa01856c52e263fe8368c3a40f2399fc7') diff --git a/var/spack/repos/builtin/packages/sensei/package.py b/var/spack/repos/builtin/packages/sensei/package.py index d4ab68964a..1e47210cf7 100644 --- a/var/spack/repos/builtin/packages/sensei/package.py +++ b/var/spack/repos/builtin/packages/sensei/package.py @@ -30,7 +30,6 @@ class Sensei(CMakePackage): version('1.0.0', sha256='5b8609352048e048e065a7b99f615a602f84b3329085e40274341488ef1b9522') variant('shared', default=True, description='Enables shared libraries') - variant('sencore', default=True, description='Enables the SENSEI core library') variant('ascent', default=False, description='Build with ParaView-Catalyst support') variant('catalyst', default=False, description='Build with ParaView-Catalyst support') variant('libsim', default=False, description='Build with VisIt-Libsim support') @@ -39,8 +38,7 @@ class Sensei(CMakePackage): variant('hdf5', default=False, description='Enables HDF5 adaptors and endpoints') variant('vtkm', default=False, description='Enable VTKm adaptors and endpoints') variant('python', default=False, description='Enable Python bindings') - variant('miniapps', default=True, description='Enable the parallel 3D and oscillators miniapps') - variant('cxxstd', default='11', values=('11', '14', '17'), multi=False, description='Use the specified C++ standard when building.') + variant('miniapps', default=False, description='Enable the parallel 3D and oscillators miniapps') # All SENSEI versions up to 2.1.1 support only Python 2, so in this case # Paraview 6 cannot be used since it requires Python 3. Starting from @@ -85,11 +83,8 @@ class Sensei(CMakePackage): # -Ox flags are set by default in CMake based on the build type args = [ self.define_from_variant('BUILD_SHARED_LIBS', 'shared'), - self.define_from_variant('CMAKE_CXX_STANDARD', 'cxxstd'), - self.define('CMAKE_C_STANDARD', 11), self.define('SENSEI_USE_EXTERNAL_pugixml', True), - self.define('CMAKE_POSITION_INDEPENDENT_CODE', True), - self.define_from_variant('ENABLE_SENSEI', 'sencore'), + self.define('ENABLE_SENSEI', True), self.define_from_variant('ENABLE_ASCENT', 'ascent'), self.define_from_variant('ENABLE_VTKM', 'vtkm'), self.define_from_variant('ENABLE_CATALYST', 'catalyst'), diff --git a/var/spack/repos/builtin/packages/sfcio/package.py b/var/spack/repos/builtin/packages/sfcio/package.py index ed9d65ebbe..78d9c612c0 100644 --- a/var/spack/repos/builtin/packages/sfcio/package.py +++ b/var/spack/repos/builtin/packages/sfcio/package.py @@ -18,3 +18,10 @@ class Sfcio(CMakePackage): maintainers = ['t-brown', 'kgerheiser', 'Hang-Lei-NOAA', 'edwardhartnett'] version('1.4.1', sha256='d9f900cf18ec1a839b4128c069b1336317ffc682086283443354896746b89c59') + + def setup_run_environment(self, env): + lib = find_libraries('libsfcio', root=self.prefix, shared=False, recursive=True) + # Only one library version, but still need to set _4 to make NCO happy + for suffix in ('4', ''): + env.set('SFCIO_LIB' + suffix, lib[0]) + env.set('SFCIO_INC' + suffix, join_path(self.prefix, 'include')) diff --git a/var/spack/repos/builtin/packages/sherpa/package.py b/var/spack/repos/builtin/packages/sherpa/package.py new file mode 100644 index 0000000000..e3d5922739 --- /dev/null +++ b/var/spack/repos/builtin/packages/sherpa/package.py @@ -0,0 +1,129 @@ +# 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 Sherpa(AutotoolsPackage): + """Sherpa is a Monte Carlo event generator for the Simulation of + High-Energy Reactions of PArticles in lepton-lepton, lepton-photon, + photon-photon, lepton-hadron and hadron-hadron collisions.""" + + homepage = "https://sherpa-team.gitlab.io" + url = "https://gitlab.com/sherpa-team/sherpa/-/archive/v2.2.11/sherpa-v2.2.11.tar.gz" + list_url = "https://gitlab.com/sherpa-team/sherpa/-/tags" + git = "https://gitlab.com/sherpa-team/sherpa.git" + + tags = ['hep', 'eic'] + + maintainers = ['wdconinc', 'vvolkl'] + version('2.2.12', sha256='4ba78098e45aaac0bc303d1b5abdc15809f30b407abf9457d99b55e63384c83d') + version('2.2.11', sha256='5e12761988b41429f1d104f84fdf352775d233cde7a165eb64e14dcc20c3e1bd') + version('2.2.10', sha256='ae23bc8fdcc9f8c26becc41692822233b62203cd72a7e0dab2ca19316aa0aad7') + version('2.2.9', sha256='ebc836d42269a0c4049d3fc439a983d19d12595d9a06db2d18765bd1e301923e') + version('2.2.8', sha256='ff198cbae5de445e6fe383151021ef24b1628dffc0da6bf3737753f6672a0091') + version('2.0.0', sha256='0e873b27bb1be46ca5ed451d1b8514ca84c10221057b11be5952180076e6f848') + version('1.3.1', sha256='31881207838d341358db64e3fdadfeee1ea2f6d1cb42f370014f622f579159ae') + version('1.3.0', sha256='08b13c65b66f2edde6996d2a06762a12a0682ffb64bca43654df47321e5039a0') + version('1.2.3', sha256='029727337a430d6675a1a12dce3ced0411041e79ddaf4ce3b9466035cf6c8804') + version('1.2.2', sha256='6e7b5ea80b99f1378519009e494030d6cf4c4491f91218d749eabb8ffaad9ac1') + version('1.2.1', sha256='838462f4a1e8768135363aa6b8532fd8f5e5789a269b858f8e3728ab37f6a1d1') + version('1.2.0', sha256='509508fd0ad72aaf55ab484da8b6bc0b31688c955adcda62a3e8f94689cebf99') + version('1.1.3', sha256='6335e5eb1fc304e9618496d3ddb198b3591e57b27db6e876af8fd649a8b98c93') + version('1.1.2', sha256='e1689cad6700dc013af0afb0d33729ac2b5e9841d2f325c85b10d773e7f8a80e') + version('1.1.1', sha256='b80e1d75934be79b73400d2c95d96e88651626ea29ddcb9d8fde9c1812039e29') + version('1.1.0', sha256='8052d137d668353dc710f8691b921e772820d39e20361f0d616ee2da1ac798f2') + version('1.0.9', sha256='fe28db91ea8264364395c7e5efeeae3e5c01ea1343e0db7fe13924c6f17fb963') + version('1.0.8', sha256='6e346bafd13b5b05ad566a73759da6d5e64d65c5036780cc4911d93277e891fa') + version('1.0.7', sha256='d1eeefd96c6822ea8eb926447ca91ec4a1c714e4746323e92b1e17764e51ff0b') + version('1.0.6', sha256='358d417ec3afde24618c222bc9b742bc5102d435622b3cd6f2e3f72d03656255') + + _cxxstd_values = ('11', '14', '17') + variant('cxxstd', default='11', values=_cxxstd_values, multi=False, + description='Use the specified C++ standard when building') + + variant('analysis', default=True, description='Enable analysis components') + variant('mpi', default=False, description='Enable MPI') + variant('python', default=False, description='Enable Python API') + variant('hepmc2', default=True, description='Enable HepMC (version 2.x) support') + variant('hepmc3', default=True, description='Enable HepMC (version 3.x) support') + variant('hepmc3root', default=False, description='Enable HepMC (version 3.1+) ROOT support') + variant('rivet', default=False, description='Enable Rivet support') + variant('fastjet', default=True, description='Enable FASTJET') + variant('openloops', default=False, description='Enable OpenLoops') + variant('recola', default=False, description='Enable Recola') + variant('lhole', default=False, description='Enable Les Houches One-Loop Generator interface') + variant('root', default=False, description='Enable ROOT support') + variant('lhapdf', default=True, description='Enable LHAPDF support') + variant('gzip', default=False, description='Enable gzip support') + variant('pythia', default=True, description='Enable fragmentation/decay interface to Pythia') + + # Note that the delphes integration seems utterly broken: https://sherpa.hepforge.org/trac/ticket/305 + + depends_on('autoconf', type='build') + depends_on('automake', type='build') + depends_on('libtool', type='build') + depends_on('m4', type='build') + depends_on('texinfo', type='build') + depends_on('sqlite') + + depends_on('mpi', when='+mpi') + depends_on('python', when='+python') + depends_on('swig', when='+python', type='build') + depends_on('hepmc', when='+hepmc2') + depends_on('hepmc3', when='+hepmc3') + depends_on('hepmc3 +rootio', when='+hepmc3root') + depends_on('rivet', when='+rivet') + depends_on('fastjet', when='+fastjet') + depends_on('openloops', when='+openloops') + depends_on('recola', when='+recola') + depends_on('root', when='+root') + depends_on('lhapdf', when='+lhapdf') + depends_on('gzip', when='+gzip') + depends_on('pythia6', when='+pythia') + + for std in _cxxstd_values: + depends_on('root cxxstd=' + std, when='+root cxxstd=' + std) + + def patch(self): + filter_file(r'#include <sys/sysctl.h>', + '#ifdef ARCH_DARWIN\n#include <sys/sysctl.h>\n#endif', + 'ATOOLS/Org/Run_Parameter.C') + + def configure_args(self): + args = [] + args.append('--enable-shared') + args.append('--enable-binreloc') + args.append('--enable-static') + args.append('--enable-hepevtsize=200000') + args.append('--with-sqlite3=' + self.spec['sqlite'].prefix) + args.extend(self.enable_or_disable('mpi')) + if self.spec.satisfies('+python'): + args.append('--enable-pyext') + args.extend(self.enable_or_disable('analysis')) + args.extend(self.enable_or_disable('lhole')) + args.extend(self.enable_or_disable('gzip')) + args.extend(self.enable_or_disable('pythia')) + if self.spec.satisfies('+hepmc2'): + args.append('--enable-hepmc2=' + self.spec['hepmc'].prefix) + if self.spec.satisfies('+hepmc3'): + args.append('--enable-hepmc3=' + self.spec['hepmc3'].prefix) + if self.spec.satisfies('+rivet'): + args.append('--enable-rivet=' + self.spec['rivet'].prefix) + if self.spec.satisfies('+fastjet'): + args.append('--enable-fastjet=' + self.spec['fastjet'].prefix) + if self.spec.satisfies('+openloops'): + args.append('--enable-openloops=' + self.spec['openloops'].prefix) + if self.spec.satisfies('+recola'): + args.append('--enable-recola=' + self.spec['recola'].prefix) + if self.spec.satisfies('+root'): + args.append('--enable-root=' + self.spec['root'].prefix) + if self.spec.satisfies('+lhapdf'): + args.append('--enable-lhapdf=' + self.spec['lhapdf'].prefix) + if self.spec.satisfies('+hztool'): + args.append('--enable-hztool=' + self.spec['hztool'].prefix) + if self.spec.satisfies('+cernlib'): + args.append('--enable-cernlib=' + self.spec['cernlib'].prefix) + return args diff --git a/var/spack/repos/builtin/packages/sigio/package.py b/var/spack/repos/builtin/packages/sigio/package.py index ba63a5a013..97fb108848 100644 --- a/var/spack/repos/builtin/packages/sigio/package.py +++ b/var/spack/repos/builtin/packages/sigio/package.py @@ -18,3 +18,10 @@ class Sigio(CMakePackage): maintainers = ['t-brown', 'kgerheiser', 'Hang-Lei-NOAA', 'edwardhartnett'] version('2.3.2', sha256='333f3cf3a97f97103cbafcafc2ad89b24faa55b1332a98adc1637855e8a5b613') + + def setup_run_environment(self, env): + lib = find_libraries('libsigio', root=self.prefix, shared=False, recursive=True) + # Only one library version, but still need to set _4 to make NCO happy + for suffix in ('4', ''): + env.set('SIGIO_LIB' + suffix, lib[0]) + env.set('SIGIO_INC' + suffix, join_path(self.prefix, 'include')) diff --git a/var/spack/repos/builtin/packages/silo/H5EPR_SEMI_COLON.patch b/var/spack/repos/builtin/packages/silo/H5EPR_SEMI_COLON.patch new file mode 100644 index 0000000000..ae74145081 --- /dev/null +++ b/var/spack/repos/builtin/packages/silo/H5EPR_SEMI_COLON.patch @@ -0,0 +1,58 @@ +diff --git a/src/hdf5_drv/H5FDsilo.c b/src/hdf5_drv/H5FDsilo.c +--- a/src/hdf5_drv/H5FDsilo.c ++++ b/src/hdf5_drv/H5FDsilo.c +@@ -243,6 +243,12 @@ + return tmp; + } + ++#if HDF5_VERSION_GE(1,10,8) ++#define H5EPR_SEMI_COLON ; ++#else ++#define H5EPR_SEMI_COLON ++#endif ++ + + #ifdef H5_HAVE_SNPRINTF + #define H5E_PUSH_HELPER(Func,Cls,Maj,Min,Msg,Ret,Errno) \ +@@ -252,13 +258,13 @@ + snprintf(msg, sizeof(msg), Msg "(errno=%d, \"%s\")", \ + Errno, strerror(Errno)); \ + ret_value = Ret; \ +- H5Epush_ret(Func, Cls, Maj, Min, msg, Ret) \ ++ H5Epush_ret(Func, Cls, Maj, Min, msg, Ret) H5EPR_SEMI_COLON \ + } + #else + #define H5E_PUSH_HELPER(Func,Cls,Maj,Min,Msg,Ret,Errno) \ + { \ + ret_value = Ret; \ +- H5Epush_ret(Func, Cls, Maj, Min, Msg, Ret) \ ++ H5Epush_ret(Func, Cls, Maj, Min, Msg, Ret) H5EPR_SEMI_COLON \ + } + #endif + +@@ -1355,7 +1368,7 @@ + assert(sizeof(hsize_t)<=8); + memcpy(p, &file->block_size, sizeof(hsize_t)); + if (H5Tconvert(H5T_NATIVE_HSIZE, H5T_STD_U64LE, 1, buf+8, NULL, H5P_DEFAULT)<0) +- H5Epush_ret(func, H5E_ERR_CLS, H5E_DATATYPE, H5E_CANTCONVERT, "can't convert superblock info", -1) ++ H5Epush_ret(func, H5E_ERR_CLS, H5E_DATATYPE, H5E_CANTCONVERT, "can't convert superblock info", -1) H5EPR_SEMI_COLON + + return 0; + } +@@ -1383,14 +1396,14 @@ + + /* Make sure the name/version number is correct */ + if (strcmp(name, "LLNLsilo")) +- H5Epush_ret(func, H5E_ERR_CLS, H5E_FILE, H5E_BADVALUE, "invalid silo superblock", -1) ++ H5Epush_ret(func, H5E_ERR_CLS, H5E_FILE, H5E_BADVALUE, "invalid silo superblock", -1) H5EPR_SEMI_COLON + + buf += 8; + /* Decode block size */ + assert(sizeof(hsize_t)<=8); + memcpy(x, buf, 8); + if (H5Tconvert(H5T_STD_U64LE, H5T_NATIVE_HSIZE, 1, x, NULL, H5P_DEFAULT)<0) +- H5Epush_ret(func, H5E_ERR_CLS, H5E_DATATYPE, H5E_CANTCONVERT, "can't convert superblock info", -1) ++ H5Epush_ret(func, H5E_ERR_CLS, H5E_DATATYPE, H5E_CANTCONVERT, "can't convert superblock info", -1) H5EPR_SEMI_COLON + ap = (hsize_t*)x; + /*file->block_size = *ap; ignore stored value for now */ + diff --git a/var/spack/repos/builtin/packages/silo/package.py b/var/spack/repos/builtin/packages/silo/package.py index 3f082a6753..0828c1ed7e 100644 --- a/var/spack/repos/builtin/packages/silo/package.py +++ b/var/spack/repos/builtin/packages/silo/package.py @@ -44,7 +44,6 @@ class Silo(AutotoolsPackage): depends_on('automake', type='build', when='+shared') depends_on('libtool', type='build', when='+shared') depends_on('mpi', when='+mpi') - depends_on('hdf5@:1.10', when='@:4.10.2+hdf5') depends_on('hdf5', when='+hdf5') depends_on('qt+gui~framework@4.8:4.9', when='+silex') depends_on('libx11', when='+silex') @@ -55,7 +54,11 @@ class Silo(AutotoolsPackage): patch('remove-mpiposix.patch', when='@4.8:4.10.2') patch('H5FD_class_t-terminate.patch', when='@:4.10.2 ^hdf5@1.10.0:') + # H5EPR_SEMI_COLON.patch should be applied only to silo@4.11 when building + # with hdf5@1.10.8 or later 1.10 or with hdf5@1.12.1 or later 1.12 + patch('H5EPR_SEMI_COLON.patch', when='@:4.11 ^hdf5@1.10.8:1.10,1.12.1:1.12') + conflicts('hdf5@1.10.8:', when="@:4.10.2") conflicts('+hzip', when="@4.11-bsd") conflicts('+fpzip', when="@4.11-bsd") conflicts('+hzip', when="@4.10.2-bsd") diff --git a/var/spack/repos/builtin/packages/simgrid/package.py b/var/spack/repos/builtin/packages/simgrid/package.py index b440eaa5fa..66db5a99f6 100644 --- a/var/spack/repos/builtin/packages/simgrid/package.py +++ b/var/spack/repos/builtin/packages/simgrid/package.py @@ -14,6 +14,10 @@ class Simgrid(CMakePackage): url = "https://github.com/simgrid/simgrid/releases/download/v3.27/simgrid-3.27.tar.gz" git = 'https://framagit.org/simgrid/simgrid.git' + maintainers = ['viniciusvgp'] + + version('3.29', sha256='83e8afd653555eeb70dc5c0737b88036c7906778ecd3c95806c6bf5535da2ccf') + version('3.28', sha256='558276e7f8135ce520d98e1bafa029c6c0f5c2d0e221a3a5e42c378fe0c5ef2c') version('3.27', sha256='51aeb9de0434066e5fec40e785f5ea9fa934afe7f6bfb4aa627246e765f1d6d7') version('3.26', sha256='ac50da1eacc5a53b094a988a8ecde09962c29320f346b45e74dd32ab9d9f3e96') version('3.25', sha256='0b5dcdde64f1246f3daa7673eb1b5bd87663c0a37a2c5dcd43f976885c6d0b46', diff --git a/var/spack/repos/builtin/packages/singularity/package.py b/var/spack/repos/builtin/packages/singularity/package.py index a53605b968..15ca4ec3f7 100644 --- a/var/spack/repos/builtin/packages/singularity/package.py +++ b/var/spack/repos/builtin/packages/singularity/package.py @@ -21,11 +21,12 @@ class Singularity(SingularityBase): ''' homepage = "https://singularity.hpcng.org/" git = "https://github.com/hpcng/singularity.git" - url = "https://github.com/hpcng/singularity/releases/download/v3.8.3/singularity-3.8.3.tar.gz" + url = "https://github.com/hpcng/singularity/releases/download/v3.8.5/singularity-3.8.5.tar.gz" maintainers = ['alalazo'] version('master', branch='master') + version('3.8.5', sha256='7fff78b5c07b5d4d08269bd267ac5e994390f933321e54efd6b7c86683153ce4') version('3.8.3', sha256='2e22eb9ee1b73fdd51b8783149f0e4d83c0d2d8a0c1edf6034157d50eeefb835') version('3.8.0', sha256='e9608b0e0a8c805218bbe795e9176484837b2f7fcb95e5469b853b3809a2412e') version('3.7.4', sha256='c266369a8bf2747f44e0759858c3fc3b2325b975a8818b2668f0b97b124d0164') diff --git a/var/spack/repos/builtin/packages/singularityce/package.py b/var/spack/repos/builtin/packages/singularityce/package.py index 8b4fea32ff..750e15dbd5 100644 --- a/var/spack/repos/builtin/packages/singularityce/package.py +++ b/var/spack/repos/builtin/packages/singularityce/package.py @@ -16,7 +16,7 @@ class SingularityBase(MakefilePackage): variant('network', default=True, description='install network plugins') depends_on('pkgconfig', type='build') - depends_on('go') + depends_on('go@1.16:') depends_on('uuid') depends_on('libgpg-error') depends_on('libseccomp') @@ -25,6 +25,8 @@ class SingularityBase(MakefilePackage): depends_on('shadow', type='run', when='@3.3:') depends_on('cryptsetup', type=('build', 'run'), when='@3.4:') + conflicts('platform=darwin', msg='singularity requires a Linux VM on Windows & Mac') + # Go has novel ideas about how projects should be organized. # We'll point GOPATH at the stage dir, and move the unpacked src # tree into the proper subdir in our overridden do_stage below. @@ -160,10 +162,11 @@ class Singularityce(SingularityBase): ''' homepage = "https://sylabs.io/singularity/" - url = "https://github.com/sylabs/singularity/releases/download/v3.8.0/singularity-ce-3.8.0.tar.gz" + url = "https://github.com/sylabs/singularity/releases/download/v3.9.1/singularity-ce-3.9.1.tar.gz" git = "https://github.com/sylabs/singularity.git" maintainers = ['alalazo'] version('master', branch='master') + version('3.9.1', sha256='1ba3bb1719a420f48e9b0a6afdb5011f6c786d0f107ef272528c632fff9fd153') version('3.8.0', sha256='5fa2c0e7ef2b814d8aa170826b833f91e5031a85d85cd1292a234e6c55da1be1') diff --git a/var/spack/repos/builtin/packages/sirius/package.py b/var/spack/repos/builtin/packages/sirius/package.py index 7574b01048..b5ce00d1f8 100644 --- a/var/spack/repos/builtin/packages/sirius/package.py +++ b/var/spack/repos/builtin/packages/sirius/package.py @@ -21,6 +21,7 @@ class Sirius(CMakePackage, CudaPackage): version('develop', branch='develop') version('master', branch='master') + version('7.3.0', sha256='69b5cf356adbe181be6c919032859c4e0160901ff42a885d7e7ea0f38cc772e2') version('7.2.7', sha256='929bf7f131a4847624858b9c4295532c24b0c06f6dcef5453c0dfc33fb78eb03') version('7.2.6', sha256='e751fd46cdc7c481ab23b0839d3f27fb00b75dc61dc22a650c92fe8e35336e3a') version('7.2.5', sha256='794e03d4da91025f77542d3d593d87a8c74e980394f658a0210a4fd91c011f22') diff --git a/var/spack/repos/builtin/packages/slepc/package.py b/var/spack/repos/builtin/packages/slepc/package.py index 97360e0b19..df705897d7 100644 --- a/var/spack/repos/builtin/packages/slepc/package.py +++ b/var/spack/repos/builtin/packages/slepc/package.py @@ -13,7 +13,7 @@ class Slepc(Package, CudaPackage, ROCmPackage): """Scalable Library for Eigenvalue Problem Computations.""" homepage = "https://slepc.upv.es" - url = "https://slepc.upv.es/download/distrib/slepc-3.16.0.tar.gz" + url = "https://slepc.upv.es/download/distrib/slepc-3.16.1.tar.gz" git = "https://gitlab.com/slepc/slepc.git" maintainers = ['joseeroman', 'balay'] @@ -22,6 +22,7 @@ class Slepc(Package, CudaPackage, ROCmPackage): test_requires_compiler = True version('main', branch='main') + version('3.16.1', sha256='b1a8ad8db1ad88c60616e661ab48fc235d5a8b6965023cb6d691b9a2cfa94efb') version('3.16.0', sha256='be7292b85430e52210eb389c4f434b67164e96d19498585e82d117e850d477f4') version('3.15.2', sha256='15fd317c4dd07bb41a994ad4c27271a6675af5f2abe40b82a64a27eaae2e632a') version('3.15.1', sha256='9c7c3a45f0d9df51decf357abe090ef05114c38a69b7836386a19a96fb203aea') diff --git a/var/spack/repos/builtin/packages/slirp4netns/package.py b/var/spack/repos/builtin/packages/slirp4netns/package.py new file mode 100644 index 0000000000..cf294f7390 --- /dev/null +++ b/var/spack/repos/builtin/packages/slirp4netns/package.py @@ -0,0 +1,25 @@ +# Copyright 2013-2021 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 Slirp4netns(AutotoolsPackage): + """User-mode networking for unprivileged network namespaces""" + + homepage = 'https://github.com/rootless-containers/slirp4netns' + url = 'https://github.com/rootless-containers/slirp4netns/archive/v1.1.12.tar.gz' + maintainers = ['bernhardkaindl'] + + version('1.1.12', sha256='279dfe58a61b9d769f620b6c0552edd93daba75d7761f7c3742ec4d26aaa2962') + + depends_on('autoconf', type='build', when='@1.1.12') + depends_on('automake', type='build', when='@1.1.12') + depends_on('libtool', type='build', when='@1.1.12') + depends_on('pkgconfig', type='build') + depends_on('glib') + depends_on('libcap') + depends_on('libseccomp') + depends_on('libslirp') diff --git a/var/spack/repos/builtin/packages/soapdenovo2/package.py b/var/spack/repos/builtin/packages/soapdenovo2/package.py index 82e0172ab0..1804f34281 100644 --- a/var/spack/repos/builtin/packages/soapdenovo2/package.py +++ b/var/spack/repos/builtin/packages/soapdenovo2/package.py @@ -19,6 +19,14 @@ class Soapdenovo2(MakefilePackage): version('242', sha256='a0043ceb41bc17a1c3fd2b8abe4f9029a60ad3edceb2b15af3c2cfabd36aa11b') version('240', sha256='cc9e9f216072c0bbcace5efdead947e1c3f41f09baec5508c7b90f933a090909') + def flag_handler(self, name, flags): + if self.spec.satisfies('%gcc@10:'): + if name == 'cflags' or name == 'CFLAGS': + flags.append('-fcommon') + if name == 'cxxflags' or name == 'CXXFLAGS': + flags.append('-fcommon') + return (flags, None, None) + def install(self, spec, prefix): mkdirp(prefix.bin) install('SOAPdenovo-63mer', prefix.bin) diff --git a/var/spack/repos/builtin/packages/sollve/package.py b/var/spack/repos/builtin/packages/sollve/package.py index f617f636b6..8acfa7fb9a 100644 --- a/var/spack/repos/builtin/packages/sollve/package.py +++ b/var/spack/repos/builtin/packages/sollve/package.py @@ -133,7 +133,6 @@ class Sollve(CMakePackage): revision=372427, destination='projects', when='@1.0a2+internal_unwind', placement='libunwind') - conflicts('+clang_extra', when='~clang') conflicts('+lldb', when='~clang') conflicts('%gcc@:5.0') diff --git a/var/spack/repos/builtin/packages/sp/package.py b/var/spack/repos/builtin/packages/sp/package.py index c374df97c9..fe90d5b01e 100644 --- a/var/spack/repos/builtin/packages/sp/package.py +++ b/var/spack/repos/builtin/packages/sp/package.py @@ -17,3 +17,10 @@ class Sp(CMakePackage): maintainers = ['t-brown', 'kgerheiser', 'edwardhartnett', 'Hang-Lei-NOAA'] version('2.3.3', sha256='c0d465209e599de3c0193e65671e290e9f422f659f1da928505489a3edeab99f') + + def setup_run_environment(self, env): + for suffix in ('4', '8', 'd'): + lib = find_libraries('libsp_' + suffix, root=self.prefix, + shared=False, recursive=True) + env.set('SP_LIB' + suffix, lib[0]) + env.set('SP_INC' + suffix, 'include_' + suffix) diff --git a/var/spack/repos/builtin/packages/spack/package.py b/var/spack/repos/builtin/packages/spack/package.py index 9149b7ea65..2abe10af61 100644 --- a/var/spack/repos/builtin/packages/spack/package.py +++ b/var/spack/repos/builtin/packages/spack/package.py @@ -21,6 +21,7 @@ class Spack(Package): maintainers = ['haampie'] version('develop', branch='develop') + version('0.17.0', sha256='93df99256a892ceefb153d48e2080c01d18e58e27773da2c2a469063d67cb582') version('0.16.3', sha256='26636a2e2cc066184f12651ac6949f978fc041990dba73934960a4c9c1ea383d') version('0.16.2', sha256='ed3e5d479732b0ba82489435b4e0f9088571604e789f7ab9bc5ce89030793350') version('0.16.1', sha256='8d893036b24d9ee0feee41ac33dd66e4fc68d392918f346f8a7a36a69c567567') @@ -29,7 +30,8 @@ class Spack(Package): variant('development_tools', default=True, description='Build development dependencies') # Python (with spack python -i ipython support) - depends_on('python', type='run') + depends_on('python@2.6.0:2.7,3.5:', type='run') + depends_on('python@2.7.0:2.7,3.5:', type='run', when='@0.18.0:') depends_on('py-ipython', type='run') # Concretizer @@ -68,11 +70,15 @@ class Spack(Package): # See https://github.com/spack/spack/pull/24686 # and #25595, #25726, #25853, #25923, #25924 upstream in python/cpython with when('@:0.16.2'): - conflicts('python@3.10:') - conflicts('python@3.9.6:3.9') - conflicts('python@3.8.11:3.8') - conflicts('python@3.7.11:3.7') - conflicts('python@3.6.14:3.6') + conflicts('^python@3.10:') + conflicts('^python@3.9.6:3.9') + conflicts('^python@3.8.11:3.8') + conflicts('^python@3.7.11:3.7') + conflicts('^python@3.6.14:3.6') + + # https://bugs.python.org/issue45235#msg406121 + # To be fixed in 3.9.9, no other releases are affected + conflicts('^python@3.9.8', when='@:0.17.0') # Development tools with when('+development_tools'): diff --git a/var/spack/repos/builtin/packages/star-ccm-plus/package.py b/var/spack/repos/builtin/packages/star-ccm-plus/package.py index 8067199485..45c4e8a256 100644 --- a/var/spack/repos/builtin/packages/star-ccm-plus/package.py +++ b/var/spack/repos/builtin/packages/star-ccm-plus/package.py @@ -5,6 +5,7 @@ import glob import os +import re from spack import * @@ -16,6 +17,7 @@ class StarCcmPlus(Package): url = "file://{0}/STAR-CCM+11.06.010_02_linux-x86_64.tar.gz".format(os.getcwd()) manual_download = True + version('16.06.008_01', sha256='64577ec0e9a98d971114e68c4eec05bb746e061dfbf77b8d8919583c796c9e4b') version('11.06.010_02', 'd349c6ac8293d8e6e7a53533d695588f') variant('doc', default=False, description='Install the documentation') @@ -47,12 +49,29 @@ class StarCcmPlus(Package): env['PS1'] = '>' env['PROMPT_COMMAND'] = '' - installer = Executable(glob.glob('*.bin')[0]) + if '@:12' in spec: + file_pattern = '*.bin' + else: + file_pattern = '*.sh' + + installer = Executable(join_path(self.stage.source_path, + glob.glob(file_pattern)[0])) installer( '-i', 'silent', '-DINSTALLDIR={0}'.format(prefix), '-DINSTALLFLEX=false', '-DADDSYSTEMPATH=false', + '-DCOMPUTE_NODE=false', '-DNODOC={0}'.format('false' if '+docs' in spec else 'true') ) + + def setup_run_environment(self, env): + # using Version.up_to strips out the 0 padding + version = re.sub('_.*$', '', format(self.spec.version)) + env.prepend_path('PATH', join_path(self.prefix, version, + 'STAR-View+{0}'.format(version), + 'bin')) + env.prepend_path('PATH', join_path(self.prefix, version, + 'STAR-CCM+{0}'.format(version), + 'star', 'bin')) diff --git a/var/spack/repos/builtin/packages/structure/package.py b/var/spack/repos/builtin/packages/structure/package.py index a5880171eb..5c8f1f8a9d 100644 --- a/var/spack/repos/builtin/packages/structure/package.py +++ b/var/spack/repos/builtin/packages/structure/package.py @@ -15,12 +15,14 @@ class Structure(MakefilePackage): version('2.3.4', sha256='f2b72b9189a514f53e921bbdc1aa3dbaca7ac34a8467af1f972c7e4fc9c0bb37') - depends_on('jdk', type=('build', 'run')) - def url_for_version(self, version): url = "http://web.stanford.edu/group/pritchardlab/structure_software/release_versions/v{0}/structure_kernel_source.tar.gz" return url.format(version) + @when('%gcc@10:') + def edit(self, spec, prefix): + filter_file(r'(CFLAGS =.*$)', '\\1 -fcommon', 'Makefile') + def install(self, spec, prefix): mkdirp(prefix.bin) install('structure', prefix.bin) diff --git a/var/spack/repos/builtin/packages/suite-sparse/package.py b/var/spack/repos/builtin/packages/suite-sparse/package.py index 748a598078..7dbd8f3d0d 100644 --- a/var/spack/repos/builtin/packages/suite-sparse/package.py +++ b/var/spack/repos/builtin/packages/suite-sparse/package.py @@ -37,13 +37,14 @@ class SuiteSparse(Package): variant('pic', default=True, description='Build position independent code (required to link with shared libraries)') variant('cuda', default=False, description='Build with CUDA') variant('openmp', default=False, description='Build with OpenMP') + variant('graphblas', default=False, description='Build with GraphBLAS (takes a long time to compile)') depends_on('mpfr@4.0.0:', type=('build', 'link'), when='@5.8.0:') depends_on('gmp', type=('build', 'link'), when='@5.8.0:') depends_on('blas') depends_on('lapack') depends_on('m4', type='build', when='@5.0.0:') - depends_on('cmake', when='@5.2.0:', type='build') + depends_on('cmake', when='+graphblas @5.2.0:', type='build') depends_on('metis@5.1.0', when='@4.5.1:') # in @4.5.1. TBB support in SPQR seems to be broken as TBB-related linkng @@ -60,15 +61,51 @@ class SuiteSparse(Package): # This patch adds '-lm' when linking libgraphblas and when using clang. # Fixes 'libgraphblas.so.2.0.1: undefined reference to `__fpclassify'' - patch('graphblas_libm_dep.patch', when='@5.2.0:5.2%clang') + patch('graphblas_libm_dep.patch', when='+graphblas @5.2.0:5.2%clang') # CUDA-11 dropped sm_30 code generation, remove hardcoded sm_30 from makefile # open issue: https://github.com/DrTimothyAldenDavis/SuiteSparse/issues/56 # Tested only with 5.9.0, previous versions probably work too - patch('fix_cuda11.patch', when='@5.9.0:+cuda ^cuda@11:') + patch('fix_cuda11.patch', when='@5.9.0:5.10.0+cuda ^cuda@11:') conflicts('%gcc@:4.8', when='@5.2.0:', msg='gcc version must be at least 4.9 for suite-sparse@5.2.0:') + # The @2021.x versions of tbb dropped the task_scheduler_init.h header and + # related stuff (which have long been deprecated). This appears to be + # rather problematic for suite-sparse (see e.g. + # https://github.com/DrTimothyAldenDavis/SuiteSparse/blob/master/SPQR/Source/spqr_parallel.cpp) + # Have Spack complain if +tbb and trying to use a 2021.x version of tbb + conflicts('+tbb', when='^intel-oneapi-tbb@2021:', + msg='suite-sparse needs task_scheduler_init.h dropped in ' + 'recent tbb libs') + conflicts('+tbb', when='^intel-tbb@2021:', + msg='suite-sparse needs task_scheduler_init.h dropped in ' + 'recent tbb libs') + + def symbol_suffix_blas(self, spec, args): + """When using BLAS with a special symbol suffix we use defines to + replace blas symbols, e.g. dgemm_ becomes dgemm_64_ when + symbol_suffix=64_.""" + + # Currently only OpenBLAS does this. + if not spec.satisfies('^openblas'): + return + + suffix = spec['openblas'].variants['symbol_suffix'].value + if suffix == 'none': + return + + symbols = ( + 'dtrsv_', 'dgemv_', 'dtrsm_', 'dgemm_', 'dsyrk_', 'dger_', 'dscal_', + 'dpotrf_', 'ztrsv_', 'zgemv_', 'ztrsm_', 'zgemm_', 'zherk_', + 'zgeru_', 'zscal_', 'zpotrf_', + 'dnrm2_', 'dlarf_', 'dlarfg_', 'dlarft_', 'dlarfb_', 'dznrm2_', + 'zlarf_', 'zlarfg_', 'zlarft_', 'zlarfb_' + ) + + for symbol in symbols: + args.append('CFLAGS+=-D{0}={1}{2}'.format(symbol, symbol, suffix)) + def install(self, spec, prefix): # The build system of SuiteSparse is quite old-fashioned. # It's basically a plain Makefile which include an header @@ -124,6 +161,9 @@ class SuiteSparse(Package): spec.satisfies('^intel-parallel-studio+mkl+ilp64')): make_args.append('UMFPACK_CONFIG=-DLONGBLAS="long long"') + # Handle symbol suffix of some BLAS'es (e.g. 64_ or _64 for ilp64) + self.symbol_suffix_blas(spec, make_args) + # SuiteSparse defaults to using '-fno-common -fexceptions' in # CFLAGS, but not all compilers use the same flags for these # optimizations @@ -137,7 +177,7 @@ class SuiteSparse(Package): make_args += ['CFLAGS+=-DBLAS_NO_UNDERSCORE'] # Intel TBB in SuiteSparseQR - if 'tbb' in spec: + if '+tbb' in spec: make_args += [ 'SPQR_CONFIG=-DHAVE_TBB', 'TBB=%s' % spec['tbb'].libs.ld_flags, @@ -151,14 +191,42 @@ class SuiteSparse(Package): 'CMAKE_OPTIONS=-DCMAKE_INSTALL_PREFIX=%s' % prefix + ' -DCMAKE_LIBRARY_PATH=%s' % prefix.lib] - # In those SuiteSparse versions calling "make install" in one go is - # not possible, mainly because of GraphBLAS. Thus compile first and - # install in a second run. - if '@5.4.0:' in self.spec: - make('library', *make_args) - make_args.append('INSTALL=%s' % prefix) - make('install', *make_args) + + # Filter the targets we're interested in + targets = [ + 'SuiteSparse_config', + 'AMD', + 'BTF', + 'CAMD', + 'CCOLAMD', + 'COLAMD', + 'CHOLMOD', + 'CXSparse', + 'LDL', + 'KLU', + 'UMFPACK', + 'RBio', + 'SPQR' + ] + if spec.satisfies('+cuda'): + targets.extend([ + 'SuiteSparse_GPURuntime', + 'GPUQREngine' + ]) + targets.extend([ + 'SPQR' + ]) + if spec.satisfies('+graphblas'): + targets.append('GraphBLAS') + if spec.satisfies('@5.8.0:'): + targets.append('SLIP_LU') + + # Finally make and install + make('-C', 'SuiteSparse_config', 'library', 'config') + for target in targets: + make('-C', target, 'library', *make_args) + make('-C', target, 'install', *make_args) @run_after('install') def fix_darwin_install(self): @@ -179,9 +247,5 @@ class SuiteSparse(Package): 'suitesparseconfig'] query_parameters = self.spec.last_query.extra_parameters comps = all_comps if not query_parameters else query_parameters - libs = find_libraries(['lib' + c for c in comps], root=self.prefix.lib, + return find_libraries(['lib' + c for c in comps], root=self.prefix.lib, shared=True, recursive=False) - if not libs: - return None - libs += find_system_libraries('librt') - return libs diff --git a/var/spack/repos/builtin/packages/sundials/package.py b/var/spack/repos/builtin/packages/sundials/package.py index acb6f993a6..2529b30621 100644 --- a/var/spack/repos/builtin/packages/sundials/package.py +++ b/var/spack/repos/builtin/packages/sundials/package.py @@ -18,7 +18,7 @@ class Sundials(CMakePackage, CudaPackage, ROCmPackage): git = "https://github.com/llnl/sundials.git" tags = ['radiuss', 'e4s'] - maintainers = ['cswoodward', 'gardner48', 'balos1'] + maintainers = ['balos1', 'cswoodward', 'gardner48'] # ========================================================================== # Versions @@ -290,6 +290,7 @@ class Sundials(CMakePackage, CudaPackage, ROCmPackage): if '+rocm' in spec: args.extend([ + '-DCMAKE_C_COMPILER=%s' % (spec['llvm-amdgpu'].prefix + '/bin/clang'), '-DCMAKE_CXX_COMPILER=%s' % spec['hip'].hipcc, '-DENABLE_HIP=ON', '-DHIP_PATH=%s' % spec['hip'].prefix, diff --git a/var/spack/repos/builtin/packages/superlu-dist/package.py b/var/spack/repos/builtin/packages/superlu-dist/package.py index 82aa8f134f..3570243a9a 100644 --- a/var/spack/repos/builtin/packages/superlu-dist/package.py +++ b/var/spack/repos/builtin/packages/superlu-dist/package.py @@ -6,7 +6,7 @@ from spack import * -class SuperluDist(CMakePackage, CudaPackage): +class SuperluDist(CMakePackage, CudaPackage, ROCmPackage): """A general purpose library for the direct solution of large, sparse, nonsymmetric systems of linear equations on high performance machines.""" @@ -16,9 +16,10 @@ class SuperluDist(CMakePackage, CudaPackage): tags = ['e4s'] - maintainers = ['xiaoye', 'gchavez2', 'balay', 'pghysels'] + maintainers = ['xiaoye', 'gchavez2', 'balay', 'pghysels', 'liuyangzhuan'] version('develop', branch='master') + version('amd', branch='amd') version('7.1.1', sha256='558053b3d4a56eb661c4f04d4fcab6604018ce5db97115394c161b56c9c278ff') version('7.1.0', sha256='edbea877562be95fb22c7de1ff484f18685bec4baa8e4f703c414d3c035d4a66') version('6.4.0', sha256='cb9c0b2ba4c28e5ed5817718ba19ae1dd63ccd30bc44c8b8252b54f5f04a44cc') @@ -47,12 +48,16 @@ class SuperluDist(CMakePackage, CudaPackage): depends_on('parmetis') depends_on('metis@5:') depends_on('cmake@3.18.1:', type='build', when='@7.1.0:') + depends_on('hipblas', when='+rocm') + depends_on('rocsolver', when='+rocm') + conflicts('+rocm', when='+cuda') conflicts('+cuda', when='@:6.3') conflicts('^cuda@11.5.0:', when='@7.1.0:') patch('xl-611.patch', when='@:6.1.1 %xl') patch('xl-611.patch', when='@:6.1.1 %xl_r') + patch('superlu-cray-ftn-case.patch', when='@7.1.1 %cce') def cmake_args(self): spec = self.spec @@ -60,6 +65,7 @@ class SuperluDist(CMakePackage, CudaPackage): '-DCMAKE_C_COMPILER=%s' % spec['mpi'].mpicc, '-DCMAKE_CXX_COMPILER=%s' % spec['mpi'].mpicxx, '-DCMAKE_INSTALL_LIBDIR:STRING=%s' % self.prefix.lib, + '-DCMAKE_INSTALL_BINDIR:STRING=%s' % self.prefix.bin, '-DTPL_BLAS_LIBRARIES=%s' % spec['blas'].libs.joined(";"), '-DTPL_LAPACK_LIBRARIES=%s' % spec['lapack'].libs.joined(";"), '-DUSE_XSDK_DEFAULTS=YES', @@ -94,6 +100,15 @@ class SuperluDist(CMakePackage, CudaPackage): args.append( '-DCMAKE_CUDA_FLAGS=-arch=sm_{0}'.format(cuda_arch[0])) + if '+rocm' in spec and spec.satisfies('@amd'): + args.append('-DTPL_ENABLE_HIPLIB=TRUE') + args.append( + '-DHIP_ROOT_DIR={0}'.format(spec['hip'].prefix)) + rocm_archs = spec.variants['amdgpu_target'].value + if 'none' not in rocm_archs: + args.append('-DHIP_HIPCC_FLAGS=--amdgpu-target={0}'. + format(",".join(rocm_archs))) + if '+shared' in spec: args.append('-DBUILD_SHARED_LIBS:BOOL=ON') else: diff --git a/var/spack/repos/builtin/packages/superlu-dist/superlu-cray-ftn-case.patch b/var/spack/repos/builtin/packages/superlu-dist/superlu-cray-ftn-case.patch new file mode 100644 index 0000000000..8f3963656e --- /dev/null +++ b/var/spack/repos/builtin/packages/superlu-dist/superlu-cray-ftn-case.patch @@ -0,0 +1,15 @@ +diff --git a/FORTRAN/CMakeLists.txt b/FORTRAN/CMakeLists.txt +index bf402a9..6a039e1 100644 +--- a/FORTRAN/CMakeLists.txt ++++ b/FORTRAN/CMakeLists.txt +@@ -3,8 +3,8 @@ include_directories(${SuperLU_DIST_SOURCE_DIR}/SRC) + include_directories(${SuperLU_DIST_BINARY_DIR}/FORTRAN) + + set(headers +- ${CMAKE_BINARY_DIR}/FORTRAN/superlu_mod.mod +- ${CMAKE_BINARY_DIR}/FORTRAN/superlupara_mod.mod ++ ${CMAKE_BINARY_DIR}/FORTRAN/SUPERLU_MOD.mod ++ ${CMAKE_BINARY_DIR}/FORTRAN/SUPERLUPARA_MOD.mod + ${CMAKE_BINARY_DIR}/FORTRAN/superlu_dist_config.fh + ) + diff --git a/var/spack/repos/builtin/packages/symengine/package.py b/var/spack/repos/builtin/packages/symengine/package.py index 6163feee43..e6f11000ea 100644 --- a/var/spack/repos/builtin/packages/symengine/package.py +++ b/var/spack/repos/builtin/packages/symengine/package.py @@ -17,6 +17,7 @@ class Symengine(CMakePackage): maintainers = ['HaoZeke'] version('master', branch='master') + version('0.8.1', sha256='41eb6ae6901c09e53d7f61f0758f9201e81fc534bfeecd4b2bd4b4e6f6768693') version('0.7.0', sha256='8b865bb72b71539d9cd2488a0468c6c3ea90cc606062a7880c3ff5af6abd74b1') version('0.6.0', sha256='4d2caa86c03eaaa8ed004084d02f87b5c51b6229f8ba70d161227e22d6302f0a') version('0.5.0', sha256='5d02002f00d16a0928d1056e6ecb8f34fd59f3bfd8ed0009a55700334dbae29b') diff --git a/var/spack/repos/builtin/packages/tangram/package.py b/var/spack/repos/builtin/packages/tangram/package.py index 265cc11574..3c54c07328 100644 --- a/var/spack/repos/builtin/packages/tangram/package.py +++ b/var/spack/repos/builtin/packages/tangram/package.py @@ -22,7 +22,7 @@ class Tangram(CMakePackage): version('1.0.1', sha256='8f2f8c01bb2d726b0f64e5a5bc3aa2bd8057ccaee7a29c68f1439d16e39aaa90') version('master', branch='master', submodules=True) - variant('mpi', default=True, + variant('mpi', default=False, description='Enable interface reconstruction with MPI') variant('thrust', default=False, description='Enable on-node parallelism with NVidia Thrust') @@ -46,15 +46,12 @@ class Tangram(CMakePackage): depends_on('cmake@3.13:', type='build') depends_on('mpi', when='+mpi') +# Wonton depends array + wonton_depends = ['mpi', 'jali', 'openmp', 'thrust', 'kokkos', 'cuda'] - depends_on('wonton') - depends_on('wonton+jali', when='+jali') - depends_on('wonton~mpi', when='~mpi') - depends_on('wonton+mpi', when='+mpi') - depends_on('wonton+thrust', when='+thrust') - depends_on('wonton+kokkos', when='+kokkos') - depends_on('wonton+cuda', when='+cuda') - depends_on('wonton+openmp', when='+openmp') + for _variant in wonton_depends: + depends_on('wonton+' + _variant, when='+' + _variant) + depends_on('wonton~' + _variant, when='~' + _variant) def cmake_args(self): options = [] @@ -87,3 +84,8 @@ class Tangram(CMakePackage): options.append('-DENABLE_APP_TESTS=OFF') return options + + def check(self): + if self.run_tests: + with working_dir(self.build_directory): + make("test") diff --git a/var/spack/repos/builtin/packages/tau/package.py b/var/spack/repos/builtin/packages/tau/package.py index fc5fd0060c..fc94444437 100644 --- a/var/spack/repos/builtin/packages/tau/package.py +++ b/var/spack/repos/builtin/packages/tau/package.py @@ -28,6 +28,7 @@ class Tau(Package): tags = ['e4s'] version('master', branch='master') + version('2.31', sha256='27e73c395dd2a42b91591ce4a76b88b1f67663ef13aa19ef4297c68f45d946c2') version('2.30.2', sha256='43f84a15b71a226f8a64d966f0cb46022bcfbaefb341295ecc6fa80bb82bbfb4') version('2.30.1', sha256='9c20ca1b4f4e80d885f24491cee598068871f0e9dd67906a5e47e4b4147d08fc') version('2.30', sha256='e581c33e21488d69839a00d97fd4451ea579f47249b2750d5c36bea773041eaf') @@ -102,7 +103,8 @@ class Tau(Package): depends_on('elf', when='+elf') # TAU requires the ELF header support, libiberty and demangle. depends_on('binutils@:2.33.1+libiberty+headers+plugins', when='+binutils') - depends_on('python@2.7:', when='+python') + # Build errors with Python 3.9 + depends_on('python@2.7:3.8', when='+python') depends_on('libunwind', when='+libunwind') depends_on('mpi', when='+mpi', type=('build', 'run', 'link')) depends_on('cuda', when='+cuda') diff --git a/var/spack/repos/builtin/packages/thepeg/package.py b/var/spack/repos/builtin/packages/thepeg/package.py index f228f8410f..a0e76d79c3 100644 --- a/var/spack/repos/builtin/packages/thepeg/package.py +++ b/var/spack/repos/builtin/packages/thepeg/package.py @@ -99,7 +99,7 @@ class Thepeg(AutotoolsPackage): if self.spec.satisfies('@2.0.3:'): args += ['--with-rivet=' + self.spec['rivet'].prefix] - if self.spec.satisfies('@:2.1'): + if self.spec.satisfies('@2.1.1:'): args += ['--with-boost=' + self.spec['boost'].prefix] args += ['CFLAGS=-O2', 'CXXFLAGS=-O2', 'FFLAGS=-O2'] diff --git a/var/spack/repos/builtin/packages/tinygltf/package.py b/var/spack/repos/builtin/packages/tinygltf/package.py new file mode 100644 index 0000000000..7c752db898 --- /dev/null +++ b/var/spack/repos/builtin/packages/tinygltf/package.py @@ -0,0 +1,17 @@ +# Copyright 2013-2021 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 Tinygltf(CMakePackage): + """Header only C++11 tiny glTF 2.0 library.""" + + homepage = "https://github.com/syoyo/tinygltf" + url = "https://github.com/syoyo/tinygltf/archive/refs/tags/v2.5.0.tar.gz" + + version('2.5.0', sha256='5d85bd556b60b1b69527189293cfa4902957d67fabb8582b6532f23a5ef27ec1') + + depends_on('cmake@3.6:', type='build') diff --git a/var/spack/repos/builtin/packages/tinyobjloader/package.py b/var/spack/repos/builtin/packages/tinyobjloader/package.py new file mode 100644 index 0000000000..2ce32e29dc --- /dev/null +++ b/var/spack/repos/builtin/packages/tinyobjloader/package.py @@ -0,0 +1,17 @@ +# Copyright 2013-2021 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 Tinyobjloader(CMakePackage): + """Tiny but powerful single file wavefront obj loader.""" + + homepage = "https://github.com/tinyobjloader/tinyobjloader" + url = "https://github.com/tinyobjloader/tinyobjloader/archive/refs/tags/v1.0.6.tar.gz" + + version('1.0.6', sha256='19ee82cd201761954dd833de551edb570e33b320d6027e0d91455faf7cd4c341') + + depends_on('cmake@2.8.11:', type='build') diff --git a/var/spack/repos/builtin/packages/tiptop/NR_perf_counter_open_aarch64.patch b/var/spack/repos/builtin/packages/tiptop/NR_perf_counter_open_aarch64.patch index 7b5aa5a6bb..7b5aa5a6bb 100755..100644 --- a/var/spack/repos/builtin/packages/tiptop/NR_perf_counter_open_aarch64.patch +++ b/var/spack/repos/builtin/packages/tiptop/NR_perf_counter_open_aarch64.patch diff --git a/var/spack/repos/builtin/packages/tree-sitter/package.py b/var/spack/repos/builtin/packages/tree-sitter/package.py new file mode 100644 index 0000000000..c75a0a28ca --- /dev/null +++ b/var/spack/repos/builtin/packages/tree-sitter/package.py @@ -0,0 +1,23 @@ +# Copyright 2013-2021 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 TreeSitter(MakefilePackage): + """Tree-sitter is a parser generator tool and an incremental parsing library. + It can build a concrete syntax tree for a source file and + efficiently update the syntax tree as the source file is edited.""" + + homepage = "https://tree-sitter.github.io/tree-sitter/" + url = "https://github.com/tree-sitter/tree-sitter/archive/refs/tags/v0.20.1.tar.gz" + + maintainers = ['albestro'] + + version('0.20.1', sha256='12a3f7206af3028dbe8a0de50d8ebd6d7010bf762db918acae76fc7585f1258d') + + def edit(self, spec, prefix): + env['PREFIX'] = prefix diff --git a/var/spack/repos/builtin/packages/trilinos/package.py b/var/spack/repos/builtin/packages/trilinos/package.py index ae8cd1a43d..68276b65ca 100644 --- a/var/spack/repos/builtin/packages/trilinos/package.py +++ b/var/spack/repos/builtin/packages/trilinos/package.py @@ -295,6 +295,7 @@ class Trilinos(CMakePackage, CudaPackage): depends_on('hypre~internal-superlu~int64', when='+hypre') depends_on('kokkos-nvcc-wrapper', when='+wrapper') depends_on('lapack') + # depends_on('perl', type=('build',)) # TriBITS finds but doesn't use... depends_on('libx11', when='+x11') depends_on('matio', when='+exodus') depends_on('metis', when='+zoltan') @@ -438,20 +439,18 @@ class Trilinos(CMakePackage, CudaPackage): options.extend([ define('Trilinos_VERBOSE_CONFIGURE', False), define_from_variant('BUILD_SHARED_LIBS', 'shared'), - define_from_variant("CMAKE_CXX_STANDARD", "cxxstd"), - define_trilinos_enable('TESTS', False), - define_trilinos_enable('EXAMPLES', False), + define_from_variant('CMAKE_CXX_STANDARD', 'cxxstd'), + define_trilinos_enable('ALL_OPTIONAL_PACKAGES', False), + define_trilinos_enable('ALL_PACKAGES', False), define_trilinos_enable('CXX11', True), define_trilinos_enable('DEBUG', 'debug'), + define_trilinos_enable('EXAMPLES', False), + define_trilinos_enable('SECONDARY_TESTED_CODE', True), + define_trilinos_enable('TESTS', False), define_trilinos_enable('Fortran'), define_trilinos_enable('OpenMP'), define_trilinos_enable('EXPLICIT_INSTANTIATION', 'explicit_template_instantiation') - # The following can cause problems on systems that don't have - # static libraries available for things like dl and pthreads - # for example when trying to build static libs - # define_from_variant('TPL_FIND_SHARED_LIBS', 'shared') - # define('Trilinos_LINK_SEARCH_START_STATIC', '+shared' not in spec) ]) # ################## Trilinos Packages ##################### @@ -563,7 +562,7 @@ class Trilinos(CMakePackage, CudaPackage): depspec = spec[spack_name] libs = depspec.libs options.extend([ - define(trilinos_name + '_INCLUDE_DIRS', depspec.prefix.include), + define(trilinos_name + '_INCLUDE_DIRS', depspec.headers.directories), define(trilinos_name + '_ROOT', depspec.prefix), define(trilinos_name + '_LIBRARY_NAMES', libs.names), define(trilinos_name + '_LIBRARY_DIRS', libs.directories), @@ -631,10 +630,9 @@ class Trilinos(CMakePackage, CudaPackage): spec['parmetis'].prefix.lib, spec['metis'].prefix.lib ]), define('ParMETIS_LIBRARY_NAMES', ['parmetis', 'metis']), - define('TPL_ParMETIS_INCLUDE_DIRS', [ - spec['parmetis'].prefix.include, - spec['metis'].prefix.include - ]), + define('TPL_ParMETIS_INCLUDE_DIRS', + spec['parmetis'].headers.directories + + spec['metis'].headers.directories), ]) if spec.satisfies('^superlu-dist@4.0:'): diff --git a/var/spack/repos/builtin/packages/umpire/package.py b/var/spack/repos/builtin/packages/umpire/package.py index b5f51b4e38..129d4680fb 100644 --- a/var/spack/repos/builtin/packages/umpire/package.py +++ b/var/spack/repos/builtin/packages/umpire/package.py @@ -73,6 +73,7 @@ class Umpire(CachedCMakePackage, CudaPackage, ROCmPackage): depends_on('cmake@3.8:', type='build') depends_on('cmake@3.9:', when='+cuda', type='build') + depends_on('cmake@:3.20', when='+rocm', type='build') depends_on('blt@0.4.1:', type='build', when='@6.0.0:') depends_on('blt@0.4.0:', type='build', when='@4.1.3:5.0.1') @@ -104,9 +105,8 @@ class Umpire(CachedCMakePackage, CudaPackage, ROCmPackage): # https://github.com/LLNL/Umpire/issues/653 # This range looks weird, but it ensures the concretizer looks at it as a - # range, not as a concrete version, so that it also matches compilers - # specified as `gcc@10.3.0-identifier`. See #8957. - conflicts('%gcc@10.3.0:10.3.0.0', when='+cuda') + # range, not as a concrete version, so that it also matches 10.3.* versions. + conflicts('%gcc@10.3.0:10.3', when='+cuda') def _get_sys_type(self, spec): sys_type = spec.architecture @@ -192,6 +192,7 @@ class Umpire(CachedCMakePackage, CudaPackage, ROCmPackage): entries.append(cmake_cache_option( "ENABLE_BENCHMARKS", 'tests=benchmarks' in spec)) entries.append(cmake_cache_option("ENABLE_EXAMPLES", '+examples' in spec)) + entries.append(cmake_cache_option("ENABLE_DOCS", False)) entries.append(cmake_cache_option("BUILD_SHARED_LIBS", '+shared' in spec)) entries.append(cmake_cache_option("ENABLE_TESTS", 'tests=none' not in spec)) diff --git a/var/spack/repos/builtin/packages/utf8cpp/package.py b/var/spack/repos/builtin/packages/utf8cpp/package.py new file mode 100644 index 0000000000..eb05c6ab62 --- /dev/null +++ b/var/spack/repos/builtin/packages/utf8cpp/package.py @@ -0,0 +1,23 @@ +# Copyright 2013-2021 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 Utf8cpp(Package): + """A simple, portable and lightweight generic library for handling UTF-8 + encoded strings.""" + + homepage = "http://utfcpp.sourceforge.net/" + + version('2.3.4', sha256='3373cebb25d88c662a2b960c4d585daf9ae7b396031ecd786e7bb31b15d010ef') + + def url_for_version(self, version): + url = "https://sourceforge.net/projects/utfcpp/files/utf8cpp_2x/Release%20{0}/utf8_v{1}.zip" + return url.format(version, version.underscored) + + def install(self, spec, prefix): + install_tree('doc', prefix.share.doc) + install_tree('source', prefix.include) diff --git a/var/spack/repos/builtin/packages/utf8proc/package.py b/var/spack/repos/builtin/packages/utf8proc/package.py index 1ec1f0425d..6a8c4a74a8 100644 --- a/var/spack/repos/builtin/packages/utf8proc/package.py +++ b/var/spack/repos/builtin/packages/utf8proc/package.py @@ -13,6 +13,9 @@ class Utf8proc(CMakePackage): homepage = "https://juliastrings.github.io/utf8proc/" url = "https://github.com/JuliaStrings/utf8proc/archive/v2.4.0.tar.gz" + version('2.6.1', sha256='4c06a9dc4017e8a2438ef80ee371d45868bda2237a98b26554de7a95406b283b') + version('2.6.0', sha256='b36ce1534b8035e7febd95c031215ed279ee9d31cf9b464e28b4c688133b22c5') + version('2.5.0', sha256='d4e8dfc898cfd062493cb7f42d95d70ccdd3a4cd4d90bec0c71b47cca688f1be') version('2.4.0', sha256='b2e5d547c1d94762a6d03a7e05cea46092aab68636460ff8648f1295e2cdfbd7') depends_on('cmake@2.8.12:', type='build') diff --git a/var/spack/repos/builtin/packages/vecgeom/package.py b/var/spack/repos/builtin/packages/vecgeom/package.py index a7d48585ea..73122defca 100644 --- a/var/spack/repos/builtin/packages/vecgeom/package.py +++ b/var/spack/repos/builtin/packages/vecgeom/package.py @@ -20,6 +20,7 @@ class Vecgeom(CMakePackage, CudaPackage): maintainers = ['drbenmorgan', 'sethrj'] version('master', branch='master') + version('1.1.18', sha256='2780640233a36e0d3c767140417015be1893c1ad695ccc0bd3ee0767bc9fbed8') version('1.1.17', sha256='2e95429b795311a6986320d785bedcd9dace9f8e7b7f6bd778d23a4ff23e0424') version('1.1.16', sha256='2fa636993156d9d06750586e8a1ac1701ae2be62dea07964e2369698ae521d02') version('1.1.15', sha256='0ee9897eb12d8d560dc0c9e56e8fdb78d0111f651a984df24e983da035bd1c70') diff --git a/var/spack/repos/builtin/packages/vecmem/package.py b/var/spack/repos/builtin/packages/vecmem/package.py new file mode 100644 index 0000000000..e0a920ffd3 --- /dev/null +++ b/var/spack/repos/builtin/packages/vecmem/package.py @@ -0,0 +1,48 @@ +# Copyright 2013-2021 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 Vecmem(CMakePackage, CudaPackage): + """VecMem is a vectorised data model base and helper classes.""" + + homepage = "https://github.com/acts-project/vecmem" + url = "https://github.com/acts-project/vecmem/archive/refs/tags/v0.5.0.tar.gz" + list_url = "https://github.com/acts-project/vecmem/releases" + + maintainers = ['wdconinc', 'HadrienG2'] + + version('0.8.0', sha256='a13f7178c940d6bf3386e7e8f5eb158e6435882533bffe888d3c9775eeb2f20e') + version('0.7.0', sha256='c00266bc80df8f568103f2874ce349fe8f74fb7e361901d562cce41ab7f9b85c') + version('0.6.0', sha256='e6c8262844a5ff7f03df7f849a1e7cf1a68214730ac54c35c14333522ff31723') + version('0.5.0', sha256='b9739e8fcdf27fa9ef509743cd8f8f62f871b53b0a63b93f24ea9865c2b00a3a') + version('0.4.0', sha256='51dfadc2b97f34530c642abdf86dcb6392e753dd68ef011bac89382dcf8aaad4') + version('0.3.0', sha256='4e7851ab46fee925800405c5ae18e99b62644d624d3544277a522a06fb812dbf') + version('0.2.0', sha256='33aea135989684e325cb097e455ff0f9d1a9e85ff32f671e3b3ed6cc036176ac') + version('0.1.0', sha256='19e24e3262aa113cd4242e7b94e2de34a4b362e78553730a358f64351c6a0a01') + + variant('hip', default=False, description='Build the vecmem::hip library') + variant('sycl', default=False, description='Build the vecmem::sycl library') + + depends_on('cmake@3.17:', type='build') + depends_on('hip', when='+hip') + depends_on('sycl', when='+sycl') + + def cmake_args(self): + args = [ + self.define_from_variant('VECMEM_BUILD_CUDA_LIBRARY', 'cuda'), + self.define_from_variant('VECMEM_BUILD_HIP_LIBRARY', 'hip'), + self.define_from_variant('VECMEM_BUILD_SYCL_LIBRARY', 'sycl'), + self.define('VECMEM_BUILD_TESTING', self.run_tests) + ] + + if '+cuda' in self.spec: + cuda_arch_list = self.spec.variants['cuda_arch'].value + cuda_arch = cuda_arch_list[0] + if cuda_arch != 'none': + args.append('-DCUDA_FLAGS=-arch=sm_{0}'.format(cuda_arch)) + + return args diff --git a/var/spack/repos/builtin/packages/visit/package.py b/var/spack/repos/builtin/packages/visit/package.py index 68276b9831..dafa6d43d1 100644 --- a/var/spack/repos/builtin/packages/visit/package.py +++ b/var/spack/repos/builtin/packages/visit/package.py @@ -56,7 +56,7 @@ class Visit(CMakePackage): ############################ homepage = "https://wci.llnl.gov/simulation/computer-codes/visit/" git = "https://github.com/visit-dav/visit.git" - url = "https://github.com/visit-dav/visit/releases/download/v3.1.1/visit3.1.1.tar.gz" + url = "https://github.com/visit-dav/visit/releases/download/v3.2.1/visit3.2.1.tar.gz" tags = ['radiuss'] @@ -67,6 +67,7 @@ class Visit(CMakePackage): executables = ['^visit$'] version('develop', branch='develop') + version('3.2.1', sha256='779d59564c63f31fcbfeff24b14ddd6ac941b3bb7d671d31765a770d193f02e8') version('3.1.1', sha256='0b60ac52fd00aff3cf212a310e36e32e13ae3ca0ddd1ea3f54f75e4d9b6c6cf0') version('3.0.1', sha256='a506d4d83b8973829e68787d8d721199523ce7ec73e7594e93333c214c2c12bd') version('2.13.3', sha256='cf0b3d2e39e1cd102dd886d3ef6da892733445e362fc28f24d9682012cccf2e5') @@ -82,7 +83,7 @@ class Visit(CMakePackage): variant('hdf5', default=True, description='Enable HDF5 file format') variant('silo', default=True, description='Enable Silo file format') variant('python', default=True, description='Enable Python support') - variant('mpi', default=True, description='Enable parallel engine') + variant('mpi', default=False, description='Enable parallel engine') patch('spack-changes-3.1.patch', when="@3.1.0:,develop") patch('spack-changes-3.0.1.patch', when="@3.0.1") @@ -177,19 +178,47 @@ class Visit(CMakePackage): # # ===================================== - depends_on('cmake@3.0:', type='build') + depends_on('cmake@3.14.7', type='build') # https://github.com/visit-dav/visit/issues/3498 - depends_on('vtk@8.1.0:8.1+opengl2~python', when='~python @3.0:3,develop') - depends_on('vtk@8.1.0:8.1+opengl2+python', when='+python @3.0:3,develop') + # The vtk_compiler_visibility patch fixes a bug where + # VTKGenerateExportHeader.cmake fails to recognize gcc versions 10.0 + # or greater. + # The vtk_rendering_opengl2_x11 patch adds include directories to + # Rendering/OpenGL2/CMakeLists.txt for systems that don't have the + # system X libraries and include files installed. + # The vtk_wrapping_python_x11 patch adds include directories to + # Wrapping/Python/CMakelists.txt for systems that don't have the + # system X libraries and include files installed. + depends_on('vtk@8.1.0+opengl2+osmesa~python', + patches=[patch('vtk_compiler_visibility.patch'), + patch('vtk_rendering_opengl2_x11.patch'), + patch('vtk_wrapping_python_x11.patch'), + ], + when='~python @3.2:,develop') + depends_on('vtk@8.1.0+opengl2+osmesa+python', + patches=[patch('vtk_compiler_visibility.patch'), + patch('vtk_rendering_opengl2_x11.patch'), + patch('vtk_wrapping_python_x11.patch'), + ], + when='+python @3.2:,develop') depends_on('glu', when='platform=linux') - depends_on('vtk@6.1.0~opengl2', when='@:2') - depends_on('vtk+python', when='+python @3.0:,develop') + depends_on('vtk+python', when='+python @3.2:,develop') depends_on('vtk~mpi', when='~mpi') depends_on('vtk+qt', when='+gui') - depends_on('qt+gui@4.8.6:4', when='+gui @:2') - depends_on('qt+gui@5.10:', when='+gui @3.0:,develop') + # VisIt doesn't work with later versions of qt. + depends_on('qt+gui@5.14.2:', when='+gui @3.2:,develop') depends_on('qwt', when='+gui') - depends_on('python@2.6:2.8', when='+python') + # python@3.8 doesn't work with VisIt. + depends_on('python@3.7', when='+python') + # llvm@12.0.1, @11.1.0, @10.0.1 fail in build phase with gcc 6.1.0. + # llvm@9.0.1 fails in cmake phase with gcc 6.1.0. + # llvm@12.0.1, llvm@8.0.1 fail in build phase with gcc 11.2.0 + depends_on('llvm@6:', when='^mesa') + depends_on('mesa+glx', when='^mesa') + depends_on('mesa-glu', when='^mesa') + # VisIt doesn't build with hdf5@1.12 and hdf5@1.10 produces files that + # are incompatible with hdf5@1.8. + depends_on('hdf5@1.8', when='+hdf5') # VisIt uses Silo's 'ghost zone' data structures, which are only available # in v4.10+ releases: https://wci.llnl.gov/simulation/computer-codes/silo/releases/release-notes-4.10 depends_on('silo@4.10:+shared', when='+silo') @@ -200,13 +229,9 @@ class Visit(CMakePackage): depends_on('mpi', when='+mpi') depends_on('adios2', when='+adios2') - conflicts('+adios2', when='@:2') - conflicts('+hdf5', when='~gui @:2') - conflicts('+silo', when='~gui @:2') - root_cmakelists_dir = 'src' - @when('@3.0.0:3,develop') + @when('@3.0.0:,develop') def patch(self): # Some of VTK's targets don't create explicit libraries, so there is no # 'vtktiff'. Instead, replace with the library variable defined from @@ -235,6 +260,7 @@ class Visit(CMakePackage): '-DVISIT_USE_GLEW=OFF', '-DCMAKE_CXX_FLAGS=' + ' '.join(cxx_flags), '-DCMAKE_C_FLAGS=' + ' '.join(cc_flags), + '-DVISIT_CONFIG_SITE=NONE', ] # Provide the plugin compilation environment so as to extend VisIt @@ -266,6 +292,12 @@ class Visit(CMakePackage): args.append('-DVISIT_SERVER_COMPONENTS_ONLY=ON') args.append('-DVISIT_ENGINE_ONLY=ON') + if '^mesa' in spec: + args.append( + '-DVISIT_LLVM_DIR:PATH={0}'.format(spec['llvm'].prefix)) + args.append( + '-DVISIT_MESAGL_DIR:PATH={0}'.format(spec['mesa'].prefix)) + if '+hdf5' in spec: args.append( '-DVISIT_HDF5_DIR:PATH={0}'.format(spec['hdf5'].prefix)) diff --git a/var/spack/repos/builtin/packages/visit/vtk_compiler_visibility.patch b/var/spack/repos/builtin/packages/visit/vtk_compiler_visibility.patch new file mode 100644 index 0000000000..51c153440e --- /dev/null +++ b/var/spack/repos/builtin/packages/visit/vtk_compiler_visibility.patch @@ -0,0 +1,12 @@ +diff -u ./CMake/VTKGenerateExportHeader.cmake.orig ./CMake/VTKGenerateExportHeader.cmake +--- ./CMake/VTKGenerateExportHeader.cmake.orig 2021-11-03 14:32:17.607243000 -0700 ++++ ./CMake/VTKGenerateExportHeader.cmake 2021-11-03 14:35:54.896214000 -0700 +@@ -174,7 +174,7 @@ + execute_process(COMMAND ${CMAKE_C_COMPILER} --version + OUTPUT_VARIABLE _gcc_version_info + ERROR_VARIABLE _gcc_version_info) +- string(REGEX MATCH "[3-9]\\.[0-9]\\.[0-9]*" ++ string(REGEX MATCH "[0-9]+\\.[0-9]+\\.[0-9]*" + _gcc_version "${_gcc_version_info}") + # gcc on mac just reports: "gcc (GCC) 3.3 20030304 ..." without the + # patch level, handle this here: diff --git a/var/spack/repos/builtin/packages/visit/vtk_rendering_opengl2_x11.patch b/var/spack/repos/builtin/packages/visit/vtk_rendering_opengl2_x11.patch new file mode 100644 index 0000000000..dd5b2db86d --- /dev/null +++ b/var/spack/repos/builtin/packages/visit/vtk_rendering_opengl2_x11.patch @@ -0,0 +1,12 @@ +diff -u ./Rendering/OpenGL2/CMakeLists.txt.orig ./Rendering/OpenGL2/CMakeLists.txt +--- ./Rendering/OpenGL2/CMakeLists.txt.orig 2021-11-03 14:33:11.582334000 -0700 ++++ ./Rendering/OpenGL2/CMakeLists.txt 2021-11-03 14:36:50.263234000 -0700 +@@ -194,7 +194,7 @@ + if(NOT X11_Xt_FOUND) + message(FATAL_ERROR "X11_Xt_LIB could not be found. Required for VTK X lib.") + endif() +- include_directories(${X11_INCLUDE_DIR} ${X11_Xt_INCLUDE_PATH}) ++ include_directories(${X11_INCLUDE_DIR} ${X11_SM_INCLUDE_PATH} ${X11_ICE_INCLUDE_PATH} ${X11_Xt_INCLUDE_PATH}) + endif() + + # setup factory overrides diff --git a/var/spack/repos/builtin/packages/visit/vtk_wrapping_python_x11.patch b/var/spack/repos/builtin/packages/visit/vtk_wrapping_python_x11.patch new file mode 100644 index 0000000000..93ca157281 --- /dev/null +++ b/var/spack/repos/builtin/packages/visit/vtk_wrapping_python_x11.patch @@ -0,0 +1,14 @@ +diff -u ./Wrapping/Python/CMakeLists.txt.orig ./Wrapping/Python/CMakeLists.txt +--- ./Wrapping/Python/CMakeLists.txt.orig 2021-11-03 14:33:41.413950000 -0700 ++++ ./Wrapping/Python/CMakeLists.txt 2021-11-03 14:37:03.634738000 -0700 +@@ -23,6 +23,10 @@ + + get_property(VTK_PYTHON_MODULES GLOBAL PROPERTY VTK_PYTHON_WRAPPED) + ++include_directories(${X11_Xlib_INCLUDE_PATH}) ++include_directories(${X11_X11_INCLUDE_PATH}) ++include_directories(${X11_Xt_INCLUDE_PATH}) ++ + # Get the include directories for the module and all its dependencies. + macro(vtk_include_recurse module) + _vtk_module_config_recurse("${module}_PYTHON" ${module}) diff --git a/var/spack/repos/builtin/packages/votca-csg-tutorials/package.py b/var/spack/repos/builtin/packages/votca-csg-tutorials/package.py index d544770e9c..a871a3c396 100644 --- a/var/spack/repos/builtin/packages/votca-csg-tutorials/package.py +++ b/var/spack/repos/builtin/packages/votca-csg-tutorials/package.py @@ -20,23 +20,21 @@ class VotcaCsgTutorials(CMakePackage): git = "https://github.com/votca/csg-tutorials.git" maintainers = ['junghans'] - version('master', branch='master') - version('stable', branch='stable') - version('2021.2', sha256='156c5ec55a288e3013d393e66a1d2f09ebf4f14056d50d081535004696e7f5ba') - version('2021.1', sha256='5ea1e6ca370e6e7845f9195495f5fb8bbd72d601980e123ae7852f491f03949a') - version('2021', sha256='2b85c69007bb7d773529020e55fd82fed65651ee21eedccca9a801ab248ece97') - version('1.6.4', sha256='34ef40db6b178a7f513f8a6f43e7caff6ecb498d66d7bf8bc44900bc7aea31dc') - version('1.6.3', sha256='709582b978d84f9de09ae6c3ba4ed28daec886d4e0431bc7d19c7246bd65f0b1') - version('1.6.2', sha256='7c25e76391f3ffdd15f8a91aeed2d3ce7377591f128ed4ae34b36eca20e5af8f') - version('1.6.1', sha256='d8428c4a03ce42d88317045ec555af3defa022fd9a61f05e07b57c5577288c8c') - version('1.6', sha256='54946c647724f1beb95942d47ec7f4cf7a95a59ec7268522693d5ec723585daf') - version('1.5.1', sha256='e35cea92df0e7d05ca7b449c1b5d84d887a3a23c7796abe3b84e4d6feec7faca') - version('1.5', sha256='03b841fb94129cf59781a7a5e3b71936c414aa9dfa17a50d7bc856d46274580c') - version('1.4.1', sha256='623724192c3a7d76b603a74a3326f181045f10f38b9f56dce754a90f1a74556e') - version('1.4', sha256='27d50acd68a9d8557fef18ec2b0c62841ae91c22275ab9afbd65c35e4dd5f719') + version('stable', branch='stable', deprecated=True) + version('2021.2', sha256='156c5ec55a288e3013d393e66a1d2f09ebf4f14056d50d081535004696e7f5ba', deprecated=True) + version('2021.1', sha256='5ea1e6ca370e6e7845f9195495f5fb8bbd72d601980e123ae7852f491f03949a', deprecated=True) + version('2021', sha256='2b85c69007bb7d773529020e55fd82fed65651ee21eedccca9a801ab248ece97', deprecated=True) + version('1.6.4', sha256='34ef40db6b178a7f513f8a6f43e7caff6ecb498d66d7bf8bc44900bc7aea31dc', deprecated=True) + version('1.6.3', sha256='709582b978d84f9de09ae6c3ba4ed28daec886d4e0431bc7d19c7246bd65f0b1', deprecated=True) + version('1.6.2', sha256='7c25e76391f3ffdd15f8a91aeed2d3ce7377591f128ed4ae34b36eca20e5af8f', deprecated=True) + version('1.6.1', sha256='d8428c4a03ce42d88317045ec555af3defa022fd9a61f05e07b57c5577288c8c', deprecated=True) + version('1.6', sha256='54946c647724f1beb95942d47ec7f4cf7a95a59ec7268522693d5ec723585daf', deprecated=True) + version('1.5.1', sha256='e35cea92df0e7d05ca7b449c1b5d84d887a3a23c7796abe3b84e4d6feec7faca', deprecated=True) + version('1.5', sha256='03b841fb94129cf59781a7a5e3b71936c414aa9dfa17a50d7bc856d46274580c', deprecated=True) + version('1.4.1', sha256='623724192c3a7d76b603a74a3326f181045f10f38b9f56dce754a90f1a74556e', deprecated=True) + version('1.4', sha256='27d50acd68a9d8557fef18ec2b0c62841ae91c22275ab9afbd65c35e4dd5f719', deprecated=True) for v in ["1.4", "1.4.1", "1.5", "1.5.1", "1.6", "1.6.1", "1.6.2", - "1.6.3", "1.6.4", "2021", "2021.1", "2021.2", "master", - "stable"]: + "1.6.3", "1.6.4", "2021", "2021.1", "2021.2", "stable"]: depends_on('votca-csg@%s' % v, when="@%s:%s.0" % (v, v)) depends_on("boost") diff --git a/var/spack/repos/builtin/packages/votca-csg/package.py b/var/spack/repos/builtin/packages/votca-csg/package.py index 986d064e87..83ce2cedb2 100644 --- a/var/spack/repos/builtin/packages/votca-csg/package.py +++ b/var/spack/repos/builtin/packages/votca-csg/package.py @@ -20,25 +20,23 @@ class VotcaCsg(CMakePackage): git = "https://github.com/votca/csg.git" maintainers = ['junghans'] - version('master', branch='master') - version('stable', branch='stable') - version('2021.2', sha256='4c58ea90cc1b7fe95f7bc00634faadba945316417e741192d715cea6aa83f4ac') - version('2021.1', sha256='1e9cf90ddd7539e711e795292b721a4ee130a2089e659fa068a12960b77fff14') - version('2021', sha256='d66c9b30ce2a56d630d5db281444447d398be643005ebea70d3735fb60357305') - version('1.6.4', sha256='eae771b623f3c3edb09744030d053f10c75d64bad919df26c4f9bf3bfaa1cf86') - version('1.6.3', sha256='35456b1f3116364b10ada37d99798294bd2d3df2e670cef3936251f88036ef88') - version('1.6.2', sha256='96b244b282005259832ed6ec0dc22dafe132dcfc3d73dcd8e53b62f40befb545') - version('1.6.1', sha256='ed12bcb1ccdf71f54e21cdcc9803add4b8ebdc6b8263cb5b0034f5db01e31dbb') - version('1.6', sha256='8cf6a4ac3ef7347c720a44d8a676f8cbd1462e162f6113de39f27b89354465ea') - version('1.5.1', sha256='7fca1261bd267bf38d2edd26259730fed3126c0c3fd91fb81940dbe17bb568fd') - version('1.5', sha256='160387cdc51f87dd20ff2e2eed97086beee415d48f3c92f4199f6109068c8ff4') - version('1.4.1', sha256='41dccaecadd0165c011bec36a113629e27745a5a133d1a042efe4356acdb5450') - version('1.4', sha256='c13e7febd792de8c3d426203f089bd4d33b8067f9db5e8840e4579c88b61146e') + version('stable', branch='stable', deprecated=True) + version('2021.2', sha256='4c58ea90cc1b7fe95f7bc00634faadba945316417e741192d715cea6aa83f4ac', deprecated=True) + version('2021.1', sha256='1e9cf90ddd7539e711e795292b721a4ee130a2089e659fa068a12960b77fff14', deprecated=True) + version('2021', sha256='d66c9b30ce2a56d630d5db281444447d398be643005ebea70d3735fb60357305', deprecated=True) + version('1.6.4', sha256='eae771b623f3c3edb09744030d053f10c75d64bad919df26c4f9bf3bfaa1cf86', deprecated=True) + version('1.6.3', sha256='35456b1f3116364b10ada37d99798294bd2d3df2e670cef3936251f88036ef88', deprecated=True) + version('1.6.2', sha256='96b244b282005259832ed6ec0dc22dafe132dcfc3d73dcd8e53b62f40befb545', deprecated=True) + version('1.6.1', sha256='ed12bcb1ccdf71f54e21cdcc9803add4b8ebdc6b8263cb5b0034f5db01e31dbb', deprecated=True) + version('1.6', sha256='8cf6a4ac3ef7347c720a44d8a676f8cbd1462e162f6113de39f27b89354465ea', deprecated=True) + version('1.5.1', sha256='7fca1261bd267bf38d2edd26259730fed3126c0c3fd91fb81940dbe17bb568fd', deprecated=True) + version('1.5', sha256='160387cdc51f87dd20ff2e2eed97086beee415d48f3c92f4199f6109068c8ff4', deprecated=True) + version('1.4.1', sha256='41dccaecadd0165c011bec36a113629e27745a5a133d1a042efe4356acdb5450', deprecated=True) + version('1.4', sha256='c13e7febd792de8c3d426203f089bd4d33b8067f9db5e8840e4579c88b61146e', deprecated=True) depends_on("cmake@2.8:", type='build') for v in ["1.4", "1.4.1", "1.5", "1.5.1", "1.6", "1.6.1", "1.6.2", - "1.6.3", "1.6.4", "2021", "2021.1", "2021.2", "master", - "stable"]: + "1.6.3", "1.6.4", "2021", "2021.1", "2021.2", "stable"]: depends_on('votca-tools@%s' % v, when="@%s:%s.0" % (v, v)) depends_on("boost") depends_on("gromacs~mpi@5.1:2019") diff --git a/var/spack/repos/builtin/packages/votca-csgapps/package.py b/var/spack/repos/builtin/packages/votca-csgapps/package.py index 8b90e7ba8a..c2978d9e62 100644 --- a/var/spack/repos/builtin/packages/votca-csgapps/package.py +++ b/var/spack/repos/builtin/packages/votca-csgapps/package.py @@ -20,15 +20,15 @@ class VotcaCsgapps(CMakePackage): git = "https://github.com/votca/csgapps.git" maintainers = ['junghans'] - version('1.6.4', sha256='ef3d6fbc7f2ff2f29af7d170a5351ae3c37f52ca4c2b1697b1d2e30c26ff4eb1') - version('1.6.3', sha256='fdb6a94eabdfe1bfae6002da16e364086d036c2dc24700a941b73d5bb1afc422') - version('1.6.2', sha256='f7db0bda27d4419c570f44dc60d04b1fd7b4cdcf10db6301005fca70111fcfe3') - version('1.6.1', sha256='03c7cef2a76e73cf953b2b5ea2cdca765ec1a2627d0a9d8869d46166e63d197c') - version('1.6', sha256='084bbc5b179bb7eb8f6671d2d5fa13e69e68946570c9120a7e4b10aff1866e2e') - version('1.5.1', sha256='b4946711e88a1745688b6cce5aad872e6e2ea200fededf38d77a864883e3750e') - version('1.5', sha256='18b40ce6222509bc70aa9d56b8c538cd5903edf7294d6f95530668e555206d5b') - version('1.4.1', sha256='095d9ee4cd49d2fd79c10e0e84e6890b755e54dec6a5cd580a2b4241ba230a2b') - version('1.4', sha256='4ea8348c2f7de3cc488f48fbd8652e69b52515441952766c06ff67ed1aaf69a0') + version('1.6.4', sha256='ef3d6fbc7f2ff2f29af7d170a5351ae3c37f52ca4c2b1697b1d2e30c26ff4eb1', deprecated=True) + version('1.6.3', sha256='fdb6a94eabdfe1bfae6002da16e364086d036c2dc24700a941b73d5bb1afc422', deprecated=True) + version('1.6.2', sha256='f7db0bda27d4419c570f44dc60d04b1fd7b4cdcf10db6301005fca70111fcfe3', deprecated=True) + version('1.6.1', sha256='03c7cef2a76e73cf953b2b5ea2cdca765ec1a2627d0a9d8869d46166e63d197c', deprecated=True) + version('1.6', sha256='084bbc5b179bb7eb8f6671d2d5fa13e69e68946570c9120a7e4b10aff1866e2e', deprecated=True) + version('1.5.1', sha256='b4946711e88a1745688b6cce5aad872e6e2ea200fededf38d77a864883e3750e', deprecated=True) + version('1.5', sha256='18b40ce6222509bc70aa9d56b8c538cd5903edf7294d6f95530668e555206d5b', deprecated=True) + version('1.4.1', sha256='095d9ee4cd49d2fd79c10e0e84e6890b755e54dec6a5cd580a2b4241ba230a2b', deprecated=True) + version('1.4', sha256='4ea8348c2f7de3cc488f48fbd8652e69b52515441952766c06ff67ed1aaf69a0', deprecated=True) for v in ["1.4", "1.4.1", "1.5", "1.5.1", "1.6", "1.6.1", "1.6.2", "1.6.3", "1.6.4"]: diff --git a/var/spack/repos/builtin/packages/votca-ctp/package.py b/var/spack/repos/builtin/packages/votca-ctp/package.py index 74c2819810..d3c7db41a7 100644 --- a/var/spack/repos/builtin/packages/votca-ctp/package.py +++ b/var/spack/repos/builtin/packages/votca-ctp/package.py @@ -19,9 +19,8 @@ class VotcaCtp(CMakePackage): url = "https://github.com/votca/ctp/tarball/v1.5" git = "https://github.com/votca/ctp.git" - version('master', branch='master') - version('1.5.1', sha256='ef957c2f6b09335d0d27ecb7e1b80b55e76a100247bc0d0b3cfef7718d2a1126') - version('1.5', sha256='31eb6bcc9339e575116f0c91fe7a4ce7d4189f31f0640329c993fea911401d65') + version('1.5.1', sha256='ef957c2f6b09335d0d27ecb7e1b80b55e76a100247bc0d0b3cfef7718d2a1126', deprecated=True) + version('1.5', sha256='31eb6bcc9339e575116f0c91fe7a4ce7d4189f31f0640329c993fea911401d65', deprecated=True) depends_on("cmake@2.8:", type='build') depends_on('votca-tools@1.5.1') diff --git a/var/spack/repos/builtin/packages/votca-tools/package.py b/var/spack/repos/builtin/packages/votca-tools/package.py index 0c72242b0c..a253b9857d 100644 --- a/var/spack/repos/builtin/packages/votca-tools/package.py +++ b/var/spack/repos/builtin/packages/votca-tools/package.py @@ -20,20 +20,19 @@ class VotcaTools(CMakePackage): git = "https://github.com/votca/tools.git" maintainers = ['junghans'] - version('master', branch='master') - version('stable', branch='stable') - version('2021.2', sha256='2cd3175b65924803aff90dce49f60e1dda9015988a453d60358e51f0dbb4292d') - version('2021.1', sha256='c2fdf5ab72fc75580fb3623182fa88dd0eed856388bdc862aff42148bb0a16e7') - version('2021', sha256='b84f68ba4a8bfae7b06b61e1e078dcbfb3b340c516da3be39ef545152da00ccd') - version('1.6.4', sha256='aa79ef4617a80ba3ca063932d5ee0d5767c0285b4b613abd373ad3c986ab9f4c') - version('1.6.3', sha256='b4ba63861f4342070d81309992f76c4cc798dffeab894bff64799881e75b3cc2') - version('1.6.2', sha256='1b31e0dd7550b80b963e6714d671f3516d68ebc1e75068a5d827a6e8b4f1759a') - version('1.6.1', sha256='3e8f51d484cb3fdfbeb851aab387807ba4c40aecef8317c90182da68ad282dcc') - version('1.6', sha256='cfd0fedc80fecd009f743b5df47777508d76bf3ef294a508a9f11fbb42efe9a5') - version('1.5.1', sha256='4be4fe25a2910e24e1720cd9022d214001d38196033ade8f9d6e618b4f47d5c4') - version('1.5', sha256='a82a6596c24ff06e79eab17ca02f4405745ceeeb66369693a59023ad0b62cf22') - version('1.4.1', sha256='b6b87f6bec8db641a1d8660422ca44919252a69494b32ba6c8c9ac986bae9a65') - version('1.4', sha256='41638122e7e59852af61d391b4ab8c308fd2e16652f768077e13a99d206ec5d3') + version('stable', branch='stable', deprecated=True) + version('2021.2', sha256='2cd3175b65924803aff90dce49f60e1dda9015988a453d60358e51f0dbb4292d', deprecated=True) + version('2021.1', sha256='c2fdf5ab72fc75580fb3623182fa88dd0eed856388bdc862aff42148bb0a16e7', deprecated=True) + version('2021', sha256='b84f68ba4a8bfae7b06b61e1e078dcbfb3b340c516da3be39ef545152da00ccd', deprecated=True) + version('1.6.4', sha256='aa79ef4617a80ba3ca063932d5ee0d5767c0285b4b613abd373ad3c986ab9f4c', deprecated=True) + version('1.6.3', sha256='b4ba63861f4342070d81309992f76c4cc798dffeab894bff64799881e75b3cc2', deprecated=True) + version('1.6.2', sha256='1b31e0dd7550b80b963e6714d671f3516d68ebc1e75068a5d827a6e8b4f1759a', deprecated=True) + version('1.6.1', sha256='3e8f51d484cb3fdfbeb851aab387807ba4c40aecef8317c90182da68ad282dcc', deprecated=True) + version('1.6', sha256='cfd0fedc80fecd009f743b5df47777508d76bf3ef294a508a9f11fbb42efe9a5', deprecated=True) + version('1.5.1', sha256='4be4fe25a2910e24e1720cd9022d214001d38196033ade8f9d6e618b4f47d5c4', deprecated=True) + version('1.5', sha256='a82a6596c24ff06e79eab17ca02f4405745ceeeb66369693a59023ad0b62cf22', deprecated=True) + version('1.4.1', sha256='b6b87f6bec8db641a1d8660422ca44919252a69494b32ba6c8c9ac986bae9a65', deprecated=True) + version('1.4', sha256='41638122e7e59852af61d391b4ab8c308fd2e16652f768077e13a99d206ec5d3', deprecated=True) # https://github.com/votca/tools/pull/229, fix mkl in exported target patch("https://github.com/votca/tools/pull/229.patch", sha256="250d0b679e5d3104e3c8d6adf99751b71386c7ed4cbdae1c75408717ef3f401f", when="@1.6:1.6.0+mkl") diff --git a/var/spack/repos/builtin/packages/votca-xtp/package.py b/var/spack/repos/builtin/packages/votca-xtp/package.py index c9b24f784f..141afdb44c 100644 --- a/var/spack/repos/builtin/packages/votca-xtp/package.py +++ b/var/spack/repos/builtin/packages/votca-xtp/package.py @@ -20,24 +20,23 @@ class VotcaXtp(CMakePackage): git = "https://github.com/votca/xtp.git" maintainers = ['junghans'] - version('master', branch='master') - version('stable', branch='stable') - version('2021.2', sha256='a13180cc05a24c441326a2b209e4d1cc6b176f1b8d7aec1aea46b627e230ff8c') - version('2021.1', sha256='8ce112fc40676690369133188848dfeb3875d57351286cad4c312057a4dd767b') - version('2021', sha256='43bb5a52fec675738f4b5896f0833a1c1090bd7e74f97769697495abf4652e40') - version('1.6.4', sha256='699a835954556cf6b2f20dac7942c1761c6dd6c6c3fbdde62c8bfcfd71ee075b') - version('1.6.3', sha256='757b9a6a470b3c356f638d62269c5b72b8ace374f006658aef8bb6afd1ad1413') - version('1.6.2', sha256='b51a28cddceca6998b981ad61466617ad624d577ce424c0653d92a680f460061') - version('1.6.1', sha256='886af50bc12457bbafb06dc927b7fd4cadc3db1b4615b24a08953f6b358debef') - version('1.6', sha256='695c2d9d3f924103481529f992e3723bdce10b8edfc294421a849cdf51dbbb6e') - version('1.5.1', sha256='17a7722e5a32d236e4f1f6f88b680da4ba5f52bcf65bca3687c6a1c731d10881') - version('1.5', sha256='b40b6d19e13f0650e84b8beebe86ce5c09071624f18d66df826f9d8584b4d3c8') - version('1.4.1', sha256='4b53d371d6cf648c9e9e9bd1f104d349cafeaf10a02866e3f1d05c574b595a21') + version('stable', branch='stable', deprecated=True) + version('2021.2', sha256='a13180cc05a24c441326a2b209e4d1cc6b176f1b8d7aec1aea46b627e230ff8c', deprecated=True) + version('2021.1', sha256='8ce112fc40676690369133188848dfeb3875d57351286cad4c312057a4dd767b', deprecated=True) + version('2021', sha256='43bb5a52fec675738f4b5896f0833a1c1090bd7e74f97769697495abf4652e40', deprecated=True) + version('1.6.4', sha256='699a835954556cf6b2f20dac7942c1761c6dd6c6c3fbdde62c8bfcfd71ee075b', deprecated=True) + version('1.6.3', sha256='757b9a6a470b3c356f638d62269c5b72b8ace374f006658aef8bb6afd1ad1413', deprecated=True) + version('1.6.2', sha256='b51a28cddceca6998b981ad61466617ad624d577ce424c0653d92a680f460061', deprecated=True) + version('1.6.1', sha256='886af50bc12457bbafb06dc927b7fd4cadc3db1b4615b24a08953f6b358debef', deprecated=True) + version('1.6', sha256='695c2d9d3f924103481529f992e3723bdce10b8edfc294421a849cdf51dbbb6e', deprecated=True) + version('1.5.1', sha256='17a7722e5a32d236e4f1f6f88b680da4ba5f52bcf65bca3687c6a1c731d10881', deprecated=True) + version('1.5', sha256='b40b6d19e13f0650e84b8beebe86ce5c09071624f18d66df826f9d8584b4d3c8', deprecated=True) + version('1.4.1', sha256='4b53d371d6cf648c9e9e9bd1f104d349cafeaf10a02866e3f1d05c574b595a21', deprecated=True) depends_on("cmake@2.8:", type='build') for v in ["1.4.1", "1.5", "1.5.1", "1.6", "1.6.1", "1.6.2", "1.6.3", "1.6.4", "2021", "2021.1", "2021.2", - "master", "stable"]: + "stable"]: depends_on('votca-tools@%s' % v, when="@%s:%s.0" % (v, v)) depends_on('votca-csg@%s' % v, when="@%s:%s.0" % (v, v)) depends_on("libxc", when='@stable,1.5:') diff --git a/var/spack/repos/builtin/packages/votca/package.py b/var/spack/repos/builtin/packages/votca/package.py new file mode 100644 index 0000000000..647a5ed13a --- /dev/null +++ b/var/spack/repos/builtin/packages/votca/package.py @@ -0,0 +1,64 @@ +# Copyright 2013-2021 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 Votca(CMakePackage): + """VOTCA is a software package which focuses on the analysis of molecular + dynamics data, the development of systematic coarse-graining techniques + as well as methods used for simulating microscopic charge (and exciton) + transport in disordered semiconductors. + """ + homepage = "https://www.votca.org" + url = "https://github.com/votca/votca/tarball/v2022-rc.1" + git = "https://github.com/votca/xtp.git" + maintainers = ['junghans'] + + version('master', branch='master') + version('stable', branch='stable') + version('2022-rc.2', sha256='eefde51470ec1437d0127fb02c2745f33e434deff53cdaee97691c36ce447fb1') + version('2022-rc.1', sha256='d53ca9fde364a97d91bf3bed15223536ffa598b2dec7bccd459accae265391b1') + + variant('mkl', default=False, description='Build with MKL support') + variant('new-gmx', default=False, description='Build against gromacs>2019 - no tabulated kernels') + conflicts('votca-tools') + conflicts('votca-csg') + conflicts('votca-xtp') + + depends_on("cmake@3.13:", type='build') + depends_on("expat") + depends_on("fftw-api@3") + depends_on("eigen@3.3:") + depends_on("boost") + depends_on('mkl', when='+mkl') + depends_on("libxc") + depends_on("hdf5+cxx~mpi") + depends_on("libint@2.6.0:") + depends_on("libecpint") + depends_on("py-h5py") + depends_on("py-lxml") + depends_on("gromacs~mpi@5.1:") + depends_on("gromacs~mpi@5.1:2019", when="~new-gmx") + depends_on('lammps', type='test') + depends_on('py-espresso', type='test') + depends_on('py-pytest', type='test') + + def cmake_args(self): + args = [ + '-DINSTALL_RC_FILES=OFF', + '-DBUILD_XTP=ON', + '-DBUILD_CSGAPPS=ON', + ] + + if '~mkl' in self.spec: + args.append('-DCMAKE_DISABLE_FIND_PACKAGE_MKL=ON') + + if self.run_tests: + args.append('-DENABLE_TESTING=ON') + args.append('-DENABLE_REGRESSION_TESTING=ON') + + return args diff --git a/var/spack/repos/builtin/packages/vtk-h/package.py b/var/spack/repos/builtin/packages/vtk-h/package.py index 278a6cb373..e876810637 100644 --- a/var/spack/repos/builtin/packages/vtk-h/package.py +++ b/var/spack/repos/builtin/packages/vtk-h/package.py @@ -76,8 +76,9 @@ class VtkH(Package, CudaPackage): depends_on("vtk-m~tbb+openmp", when="+openmp") depends_on("vtk-m~tbb~openmp", when="~openmp") - depends_on("vtk-m+cuda~tbb+openmp", when="+cuda+openmp") - depends_on("vtk-m+cuda~tbb~openmp", when="+cuda~openmp") + for _arch in CudaPackage.cuda_arch_values: + depends_on("vtk-m+cuda~tbb+openmp cuda_arch={0}".format(_arch), when="+cuda+openmp cuda_arch={0}".format(_arch)) + depends_on("vtk-m+cuda~tbb~openmp cuda_arch={0}".format(_arch), when="+cuda~openmp cuda_arch={0}".format(_arch)) depends_on("vtk-m~tbb+openmp~shared", when="+openmp~shared") depends_on("vtk-m~tbb~openmp~shared", when="~openmp~shared") diff --git a/var/spack/repos/builtin/packages/vtk-m/package.py b/var/spack/repos/builtin/packages/vtk-m/package.py index 5eb7a68cdb..ca914fd662 100644 --- a/var/spack/repos/builtin/packages/vtk-m/package.py +++ b/var/spack/repos/builtin/packages/vtk-m/package.py @@ -89,6 +89,9 @@ class VtkM(CMakePackage, CudaPackage): conflicts("+hip", when="+cuda") + conflicts("+cuda", when="cuda_arch=none", + msg="vtk-m +cuda requires that cuda_arch be set") + def cmake_args(self): spec = self.spec options = [] diff --git a/var/spack/repos/builtin/packages/vtk/internal_findHDF5.patch b/var/spack/repos/builtin/packages/vtk/internal_findHDF5.patch new file mode 100644 index 0000000000..82775aefbe --- /dev/null +++ b/var/spack/repos/builtin/packages/vtk/internal_findHDF5.patch @@ -0,0 +1,16 @@ +diff -ru a/CMake/FindHDF5.cmake b/CMake/FindHDF5.cmake +--- a/CMake/FindHDF5.cmake 2019-01-30 11:15:13.000000000 -0600 ++++ b/CMake/FindHDF5.cmake 2021-11-15 18:01:39.314264619 -0600 +@@ -3,11 +3,7 @@ + # (BUG #0014363). + + # include the default FindHDF5.cmake. +-if(CMAKE_VERSION VERSION_LESS 3.6.1) +- include(${CMAKE_CURRENT_LIST_DIR}/NewCMake/FindHDF5.cmake) +-else() +- include(${CMAKE_ROOT}/Modules/FindHDF5.cmake) +-endif() ++include(${CMAKE_CURRENT_LIST_DIR}/NewCMake/FindHDF5.cmake) + + if(HDF5_FOUND AND (HDF5_IS_PARALLEL OR HDF5_ENABLE_PARALLEL)) + include(vtkMPI) diff --git a/var/spack/repos/builtin/packages/vtk/package.py b/var/spack/repos/builtin/packages/vtk/package.py index 49de4e28b3..07c4fc2ad9 100644 --- a/var/spack/repos/builtin/packages/vtk/package.py +++ b/var/spack/repos/builtin/packages/vtk/package.py @@ -21,7 +21,8 @@ class Vtk(CMakePackage): maintainers = ['chuckatkins', 'danlipsa'] - version('9.0.3', sha256='bc3eb9625b2b8dbfecb6052a2ab091fc91405de4333b0ec68f3323815154ed8a') + version('9.1.0', sha256='8fed42f4f8f1eb8083107b68eaa9ad71da07110161a3116ad807f43e5ca5ce96') + version('9.0.3', sha256='bc3eb9625b2b8dbfecb6052a2ab091fc91405de4333b0ec68f3323815154ed8a', preferred=True) version('9.0.1', sha256='1b39a5e191c282861e7af4101eaa8585969a2de05f5646c9199a161213a622c7') version('9.0.0', sha256='15def4e6f84d72f82386617fe595ec124dda3cbd13ea19a0dcd91583197d8715') version('8.2.0', sha256='34c3dc775261be5e45a8049155f7228b6bd668106c72a3c435d95730d17d57bb') @@ -73,6 +74,9 @@ class Vtk(CMakePackage): # Broken downstream FindMPI patch('vtkm-findmpi-downstream.patch', when='@9.0.0') + # use internal FindHDF5 + patch('internal_findHDF5.patch', when='@:8') + # The use of the OpenGL2 backend requires at least OpenGL Core Profile # version 3.2 or higher. depends_on('gl@3.2:', when='+opengl2') @@ -115,6 +119,18 @@ class Vtk(CMakePackage): depends_on('eigen', when='@8.2.0:') depends_on('double-conversion', when='@8.2.0:') depends_on('sqlite', when='@8.2.0:') + depends_on('pugixml', when='@9:') + depends_on('libogg') + depends_on('libtheora') + depends_on('utf8cpp', when='@9:') + depends_on('gl2ps', when='@8.1:') + depends_on('gl2ps@1.4.1:', when='@9:') + depends_on('proj@4', when='@8.2') + depends_on('proj@4:7', when='@9:') + depends_on('cgns@4.1.1:+mpi', when='@9.1: +mpi') + depends_on('cgns@4.1.1:~mpi', when='@9.1: ~mpi') + depends_on('seacas@2021-05-12:+mpi', when='@9.1: +mpi') + depends_on('seacas@2021-05-12:~mpi', when='@9.1: ~mpi') # For finding Fujitsu-MPI wrapper commands patch('find_fujitsu_mpi.patch', when='@:8.2.0%fj') @@ -147,38 +163,45 @@ class Vtk(CMakePackage): # (solves #26314) '-DCMAKE_INSTALL_LIBDIR:PATH=lib', - # In general, we disable use of VTK "ThirdParty" libs, preferring - # spack-built versions whenever possible - '-DVTK_USE_SYSTEM_LIBRARIES:BOOL=ON', - - # However, in a few cases we can't do without them yet - '-DVTK_USE_SYSTEM_GL2PS:BOOL=OFF', - '-DVTK_USE_SYSTEM_LIBHARU=OFF', - - '-DNETCDF_DIR={0}'.format(spec['netcdf-c'].prefix), - '-DNETCDF_C_ROOT={0}'.format(spec['netcdf-c'].prefix), - '-DNETCDF_CXX_ROOT={0}'.format(spec['netcdf-cxx'].prefix), - # Allow downstream codes (e.g. VisIt) to override VTK's classes '-DVTK_ALL_NEW_OBJECT_FACTORY:BOOL=ON', - - # Disable wrappers for other languages. - '-DVTK_WRAP_JAVA=OFF', - '-DVTK_WRAP_TCL=OFF', ] - # Some variable names have changed - if spec.satisfies('@8.2.0:'): + # Disable wrappers for other languages. + cmake_args.append('-DVTK_WRAP_JAVA=OFF') + if spec.satisfies('@:8.1'): + cmake_args.append('-DVTK_WRAP_TCL=OFF') + + # In general, we disable use of VTK "ThirdParty" libs, preferring + # spack-built versions whenever possible but there are exceptions. + if spec.satisfies('@:8'): cmake_args.extend([ - '-DVTK_USE_SYSTEM_OGG:BOOL=OFF', - '-DVTK_USE_SYSTEM_THEORA:BOOL=OFF', - '-DVTK_USE_SYSTEM_LIBPROJ:BOOL=OFF', - '-DVTK_USE_SYSTEM_PUGIXML:BOOL=OFF', + '-DVTK_USE_SYSTEM_LIBRARIES:BOOL=ON', + '-DVTK_USE_SYSTEM_LIBHARU=OFF', ]) + if spec.satisfies('@:8.0'): + cmake_args.append('-DVTK_USE_SYSTEM_GL2PS=OFF') else: cmake_args.extend([ - '-DVTK_USE_SYSTEM_OGGTHEORA:BOOL=OFF', + '-DVTK_USE_EXTERNAL:BOOL=ON', + '-DVTK_MODULE_USE_EXTERNAL_VTK_libharu:BOOL=OFF', + '-DVTK_MODULE_USE_EXTERNAL_VTK_pegtl:BOOL=OFF', + '-DHDF5_ROOT={0}'.format(spec['hdf5'].prefix), + ]) + if spec.satisfies('@9.1:'): + cmake_args.extend([ + '-DVTK_MODULE_USE_EXTERNAL_VTK_exprtk:BOOL=OFF', + # uses an unreleased version of fmt + '-DVTK_MODULE_USE_EXTERNAL_VTK_fmt:BOOL=OFF', + ]) + + # Some variable names have changed + if spec.satisfies('@8.2.0'): + cmake_args.append('-DVTK_USE_SYSTEM_PUGIXML:BOOL=OFF') + elif spec.satisfies('@:8.1'): + cmake_args.extend([ '-DVTK_USE_SYSTEM_LIBPROJ4:BOOL=OFF', + '-DNETCDF_CXX_ROOT={0}'.format(spec['netcdf-cxx'].prefix), ]) if '+mpi' in spec: @@ -191,17 +214,22 @@ class Vtk(CMakePackage): cmake_args.extend([ '-DVTK_USE_MPI=ON' ]) + else: + '-DVTK_USE_MPI=OFF' if '+ffmpeg' in spec: - cmake_args.extend(['-DModule_vtkIOFFMPEG:BOOL=ON']) + if spec.satisfies('@:8'): + cmake_args.append('-DModule_vtkIOFFMPEG:BOOL=ON') + else: + cmake_args.append('-DVTK_MODULE_ENABLE_VTK_IOFFMPEG:STRING=YES') # Enable/Disable wrappers for Python. if '+python' in spec: - cmake_args.extend([ - '-DVTK_WRAP_PYTHON=ON', - '-DPYTHON_EXECUTABLE={0}'.format(spec['python'].command.path), - ]) - if '+mpi' in spec: + cmake_args.append('-DVTK_WRAP_PYTHON=ON') + if spec.satisfies('@:8'): + cmake_args.append( + '-DPYTHON_EXECUTABLE={0}'.format(spec['python'].command.path)) + if '+mpi' in spec and spec.satisfies('@:8'): cmake_args.append('-DVTK_USE_SYSTEM_MPI4PY:BOOL=ON') if spec.satisfies('@9.0.0: ^python@3:'): cmake_args.append('-DVTK_PYTHON_VERSION=3') @@ -218,14 +246,16 @@ class Vtk(CMakePackage): qt_bin = spec['qt'].prefix.bin qmake_exe = os.path.join(qt_bin, 'qmake') - cmake_args.extend([ - # Enable Qt support here. - '-DVTK_QT_VERSION:STRING={0}'.format(qt_ver), - '-DQT_QMAKE_EXECUTABLE:PATH={0}'.format(qmake_exe), - '-DVTK_Group_Qt:BOOL=ON', - ]) # https://github.com/martijnkoopman/Qt-VTK-viewer/blob/master/doc/Build-VTK.md - if spec.satisfies('@9.0.0:'): + # The content of the above link changes over time with versions. + # Older commits have information on VTK-8. + if spec.satisfies('@:8'): + cmake_args.extend([ + '-DVTK_QT_VERSION:STRING={0}'.format(qt_ver), + '-DQT_QMAKE_EXECUTABLE:PATH={0}'.format(qmake_exe), + '-DVTK_Group_Qt:BOOL=ON', + ]) + else: cmake_args.extend([ '-DVTK_GROUP_ENABLE_Qt:STRING=YES', '-DVTK_MODULE_ENABLE_VTK_GUISupportQt:STRING=YES', @@ -235,37 +265,54 @@ class Vtk(CMakePackage): # VTK to build with qt~webkit versions (see the documentation for # more info: http://www.vtk.org/Wiki/VTK/Tutorials/QtSetup). if '~webkit' in spec['qt']: - cmake_args.extend([ - '-DVTK_Group_Qt:BOOL=OFF', - '-DModule_vtkGUISupportQt:BOOL=ON', - '-DModule_vtkGUISupportQtOpenGL:BOOL=ON', - ]) + if spec.satisfies('@:8'): + cmake_args.extend([ + '-DVTK_Group_Qt:BOOL=OFF', + '-DModule_vtkGUISupportQt:BOOL=ON', + '-DModule_vtkGUISupportQtOpenGL:BOOL=ON', + ]) + else: + cmake_args.extend([ + '-DVTK_GROUP_ENABLE_Qt:STRING=NO', + '-DVTK_MODULE_ENABLE_VTK_GUISupportQt:STRING=YES', + ]) if '+xdmf' in spec: if spec.satisfies('^cmake@3.12:'): # This policy exists only for CMake >= 3.12 cmake_args.extend(["-DCMAKE_POLICY_DEFAULT_CMP0074=NEW"]) - cmake_args.extend([ - # Enable XDMF Support here - "-DModule_vtkIOXdmf2:BOOL=ON", - "-DModule_vtkIOXdmf3:BOOL=ON", - "-DBOOST_ROOT={0}".format(spec['boost'].prefix), - "-DBOOST_LIBRARY_DIR={0}".format(spec['boost'].prefix.lib), - "-DBOOST_INCLUDE_DIR={0}".format(spec['boost'].prefix.include), - "-DBOOST_NO_SYSTEM_PATHS:BOOL=ON", - # This is needed because VTK has multiple FindBoost - # and they stick to system boost if there's a system boost - # installed with CMake - "-DBoost_NO_BOOST_CMAKE:BOOL=ON", - "-DHDF5_ROOT={0}".format(spec['hdf5'].prefix), - # The xdmf project does not export any CMake file... - "-DVTK_USE_SYSTEM_XDMF3:BOOL=OFF", - "-DVTK_USE_SYSTEM_XDMF2:BOOL=OFF" - ]) + if spec.satisfies('@:8'): + cmake_args.extend([ + # Enable XDMF Support here + "-DModule_vtkIOXdmf2:BOOL=ON", + "-DModule_vtkIOXdmf3:BOOL=ON", + "-DBOOST_ROOT={0}".format(spec['boost'].prefix), + "-DBOOST_LIBRARY_DIR={0}".format(spec['boost'].prefix.lib), + "-DBOOST_INCLUDE_DIR={0}".format(spec['boost'].prefix.include), + "-DBOOST_NO_SYSTEM_PATHS:BOOL=ON", + # This is needed because VTK has multiple FindBoost + # and they stick to system boost if there's a system boost + # installed with CMake + "-DBoost_NO_BOOST_CMAKE:BOOL=ON", + # The xdmf project does not export any CMake file... + "-DVTK_USE_SYSTEM_XDMF3:BOOL=OFF", + "-DVTK_USE_SYSTEM_XDMF2:BOOL=OFF" + ]) + else: + cmake_args.extend([ + '-DVTK_MODULE_ENABLE_VTK_xdmf2:STRING=YES', + '-DVTK_MODULE_ENABLE_VTK_xdmf3:STRING=YES', + '-DVTK_MODULE_ENABLE_VTK_IOXdmf2:STRING=YES', + '-DVTK_MODULE_ENABLE_VTK_IOXdmf3:STRING=YES', + ]) if '+mpi' in spec: - cmake_args.extend(["-DModule_vtkIOParallelXdmf3:BOOL=ON"]) + if spec.satisfies('@:8'): + cmake_args.append("-DModule_vtkIOParallelXdmf3:BOOL=ON") + else: + cmake_args.append( + '-DVTK_MODULE_ENABLE_VTK_IOParallelXdmf3:STRING=YES') cmake_args.append('-DVTK_RENDERING_BACKEND:STRING=' + opengl_ver) diff --git a/var/spack/repos/builtin/packages/vvtest/package.py b/var/spack/repos/builtin/packages/vvtest/package.py index 3b98602f23..3b98602f23 100755..100644 --- a/var/spack/repos/builtin/packages/vvtest/package.py +++ b/var/spack/repos/builtin/packages/vvtest/package.py diff --git a/var/spack/repos/builtin/packages/w3emc/package.py b/var/spack/repos/builtin/packages/w3emc/package.py index 152d26e634..488d0e9ed3 100644 --- a/var/spack/repos/builtin/packages/w3emc/package.py +++ b/var/spack/repos/builtin/packages/w3emc/package.py @@ -28,3 +28,10 @@ class W3emc(CMakePackage): depends_on('nemsio', when='@2.7.3') depends_on('sigio', when='@2.7.3') depends_on('netcdf-fortran', when='@2.7.3') + + def setup_run_environment(self, env): + for suffix in ('4', '8', 'd'): + lib = find_libraries('libw3emc_' + suffix, root=self.prefix, + shared=False, recursive=True) + env.set('W3EMC_LIB' + suffix, lib[0]) + env.set('W3EMC_INC' + suffix, join_path(self.prefix, 'include_' + suffix)) diff --git a/var/spack/repos/builtin/packages/warpx/2626.patch b/var/spack/repos/builtin/packages/warpx/2626.patch new file mode 100644 index 0000000000..699744b89d --- /dev/null +++ b/var/spack/repos/builtin/packages/warpx/2626.patch @@ -0,0 +1,34 @@ +From 9785e706229622626133c4b03c7abd004f62023f Mon Sep 17 00:00:00 2001 +From: Axel Huebl <axel.huebl@plasma.ninja> +Date: Sat, 4 Dec 2021 15:28:13 -0800 +Subject: [PATCH] Fix: Installed Symlink LIB + +The latest patch to these routines broke our library alias in installs. + +By default, this variable is relative and needs the prefix appended. +In some cases, e.g., if externally set, it can already be absolute. In that +case, we skip adding the prefix. +--- + CMakeLists.txt | 7 ++++++- + 1 file changed, 6 insertions(+), 1 deletion(-) + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 04092ba962..a549546ab9 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -343,9 +343,14 @@ if(WarpX_LIB) + else() + set(mod_ext "so") + endif() ++ if(IS_ABSOLUTE ${CMAKE_INSTALL_LIBDIR}) ++ set(ABS_INSTALL_LIB_DIR ${CMAKE_INSTALL_LIBDIR}) ++ else() ++ set(ABS_INSTALL_LIB_DIR ${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}) ++ endif() + install(CODE "file(CREATE_LINK + $<TARGET_FILE_NAME:shared> +- ${CMAKE_INSTALL_LIBDIR}/libwarpx.${lib_suffix}.${mod_ext} ++ ${ABS_INSTALL_LIB_DIR}/libwarpx.${lib_suffix}.${mod_ext} + COPY_ON_ERROR SYMBOLIC)") + endif() + diff --git a/var/spack/repos/builtin/packages/warpx/package.py b/var/spack/repos/builtin/packages/warpx/package.py index 8306115128..2e67026e07 100644 --- a/var/spack/repos/builtin/packages/warpx/package.py +++ b/var/spack/repos/builtin/packages/warpx/package.py @@ -17,7 +17,7 @@ class Warpx(CMakePackage): """ homepage = "https://ecp-warpx.github.io" - url = "https://github.com/ECP-WarpX/WarpX/archive/refs/tags/21.07.tar.gz" + url = "https://github.com/ECP-WarpX/WarpX/archive/refs/tags/21.12.tar.gz" git = "https://github.com/ECP-WarpX/WarpX.git" maintainers = ['ax3l', 'dpgrote', 'MaxThevenet', 'RemiLehe'] @@ -25,6 +25,8 @@ class Warpx(CMakePackage): # NOTE: if you update the versions here, also see py-warpx version('develop', branch='development') + # 22.01+ requires C++17 or newer + version('21.12', sha256='847c98aac20c73d94c823378803c82be9a14139f1c14ea483757229b452ce4c1') version('21.11', sha256='ce60377771c732033a77351cd3500b24b5d14b54a5adc7a622767b9251c10d0b') version('21.10', sha256='d372c573f0360094d5982d64eceeb0149d6620eb75e8fdbfdc6777f3328fb454') version('21.09', sha256='861a65f11846541c803564db133c8678b9e8779e69902ef1637b21399d257eab') @@ -33,6 +35,7 @@ class Warpx(CMakePackage): version('21.06', sha256='a26039dc4061da45e779dd5002467c67a533fc08d30841e01e7abb3a890fbe30') version('21.05', sha256='f835f0ae6c5702550d23191aa0bb0722f981abb1460410e3d8952bc3d945a9fc') version('21.04', sha256='51d2d8b4542eada96216e8b128c0545c4b7527addc2038efebe586c32c4020a0') + # 20.01+ requires C++14 or newer variant('app', default=True, description='Build the WarpX executable application') @@ -45,7 +48,7 @@ class Warpx(CMakePackage): description='On-node, accelerated computing backend') variant('dims', default='3', - values=('2', '3', 'rz'), + values=('1', '2', '3', 'rz'), multi=False, description='Number of spatial dimensions') variant('eb', default=False, @@ -104,12 +107,19 @@ class Warpx(CMakePackage): depends_on('rocprim') depends_on('rocrand') + conflicts('dims=1', when='@:21.12', + msg='WarpX 1D support starts in 22.01+') conflicts('~qed +qedtablegen', msg='WarpX PICSAR QED table generation needs +qed') conflicts('compute=sycl', when='+psatd', msg='WarpX spectral solvers are not yet tested with SYCL ' '(use "warpx ~psatd")') + # The symbolic aliases for our +lib target were missing in the install + # location + # https://github.com/ECP-WarpX/WarpX/pull/2626 + patch('2626.patch', when='@21.12') + def cmake_args(self): spec = self.spec @@ -135,11 +145,14 @@ class Warpx(CMakePackage): self.define_from_variant('WarpX_QED_TABLE_GEN', 'qedtablegen'), ] + with when('+openpmd'): + args.append('-DWarpX_openpmd_internal=OFF') + return args @property def libs(self): - libsuffix = {'2': '2d', '3': '3d', 'rz': 'rz'} + libsuffix = {'1': '1d', '2': '2d', '3': '3d', 'rz': 'rz'} dims = self.spec.variants['dims'].value return find_libraries( ['libwarpx.' + libsuffix[dims]], root=self.prefix, recursive=True, @@ -155,7 +168,8 @@ class Warpx(CMakePackage): self.install_test_root if post_install else self.stage.source_path, self.examples_src_dir) dims = self.spec.variants['dims'].value - inputs_nD = {'2': 'inputs_2d', '3': 'inputs_3d', 'rz': 'inputs_2d_rz'} + inputs_nD = {'1': 'inputs_1d', '2': 'inputs_2d', '3': 'inputs_3d', + 'rz': 'inputs_2d_rz'} inputs = join_path(examples_dir, inputs_nD[dims]) cli_args = [inputs, "max_step=50", "diag1.intervals=10"] diff --git a/var/spack/repos/builtin/packages/whizard/package.py b/var/spack/repos/builtin/packages/whizard/package.py index 883a18c983..f4ef68b674 100644 --- a/var/spack/repos/builtin/packages/whizard/package.py +++ b/var/spack/repos/builtin/packages/whizard/package.py @@ -58,6 +58,7 @@ class Whizard(AutotoolsPackage): variant('latex', default=False, description="data visualization with latex") + depends_on('libtirpc') depends_on('ocaml@4.02.3:', type='build', when="@3:") depends_on('ocaml@4.02.3:~force-safe-string', type='build', when="@:2") depends_on('hepmc', when="hepmc=2") diff --git a/var/spack/repos/builtin/packages/wi4mpi/package.py b/var/spack/repos/builtin/packages/wi4mpi/package.py new file mode 100644 index 0000000000..93d81cdaeb --- /dev/null +++ b/var/spack/repos/builtin/packages/wi4mpi/package.py @@ -0,0 +1,55 @@ +# Copyright 2013-2021 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 Wi4mpi(CMakePackage):
+ """WI4MPI: Wrapper Interface For MPI performing a light translation between MPI
+ constants and MPI objects from an MPI implementation to another one"""
+
+ homepage = "https://github.com/cea-hpc/wi4mpi"
+ url = "https://github.com/cea-hpc/wi4mpi/archive/v3.4.1.tar.gz"
+ maintainers = ['adrien-cotte', 'marcjoos-cea']
+
+ version('3.4.1', sha256='92bf6738216426069bc07bff19cd7c933e33e397a941ff9f89a639380fab3737')
+ version('3.3.0', sha256='fb7fb3b591144e90b3d688cf844c2246eb185f54e1da6baef857e035ef730d96')
+ version('3.2.2', sha256='23ac69740577d66a68ddd5360670f0a344e3c47a5d146033c63a67e54e56c66f')
+ version('3.2.1', sha256='0d928cb930b6cb1ae648eca241db59812ee0e5c041faf2f57728bbb6ee4e36df')
+ version('3.2.0', sha256='3322f6823dbec1d58a1fcf163b2bcdd7b9cd75dc6c7f78865fc6cb0a91bf6f94')
+ variant('build_type', default='Release',
+ description='The build type to build',
+ values=('Debug', 'Release', 'RelWithDebInfo'))
+
+ depends_on('mpi')
+
+ def cmake_args(self):
+ if '%gcc' in self.spec:
+ compiler = "GNU"
+ elif '%intel' in self.spec:
+ compiler = "INTEL"
+ elif '%clang' in self.spec:
+ compiler = "LLVM"
+ elif '%pgi' in self.spec:
+ compiler = "PGI"
+ else:
+ tty.error("Could not determine compiler used")
+ wi4mpi_build_type = 'RELEASE'
+ if self.spec.variants["build_type"].value == "RelWithDebInfo":
+ wi4mpi_build_type = 'NORMAL'
+ elif self.spec.variants["build_type"].value == "Debug":
+ wi4mpi_build_type = 'DEBUG'
+ args = [
+ self.define('WI4MPI_REALEASE', wi4mpi_build_type),
+ self.define('WI4MPI_COMPILER', compiler)
+ ]
+ return args
+
+ def setup_run_environment(self, env):
+ env.set('WI4MPI_ROOT', self.prefix)
+ env.set('WI4MPI_VERSION', self.version)
+ env.set('WI4MPI_CC', self.compiler.cc)
+ env.set('WI4MPI_CXX', self.compiler.cxx)
+ env.set('WI4MPI_FC', self.compiler.fc)
diff --git a/var/spack/repos/builtin/packages/wiredtiger/package.py b/var/spack/repos/builtin/packages/wiredtiger/package.py new file mode 100644 index 0000000000..a613d9dc46 --- /dev/null +++ b/var/spack/repos/builtin/packages/wiredtiger/package.py @@ -0,0 +1,39 @@ +# Copyright 2013-2021 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 Wiredtiger(AutotoolsPackage): + """WiredTiger is an high performance, scalable, production quality, + NoSQL, Open Source extensible platform for data management.""" + + homepage = "https://source.wiredtiger.com/" + url = "https://github.com/wiredtiger/wiredtiger/releases/download/10.0.0/wiredtiger-10.0.0.tar.bz2" + + version('10.0.0', sha256='4830107ac744c0459ef99697652aa3e655c2122005a469a49d221e692fb834a5') + + depends_on('python@3:', type=('build', 'run'), when='+python') + depends_on('swig', type=('build', 'run'), when='+python') + depends_on('lz4', when='+lz4') + depends_on('snappy', when='+snappy') + depends_on('zlib', when='+zlib') + depends_on('zstd', when='+zstd') + depends_on('rsync', type='build') + + variant('python', default=False, description='Compile Python API') + variant('lz4', default=False, description='Build the lz4 compressor extension') + variant('snappy', default=False, description='Build the snappy compressor extension') + variant('zlib', default=False, description='Build the zlib compressor extension') + variant('zstd', default=False, description='Build the zstd compressor extension') + + def configure_args(self): + args = [] + args += self.enable_or_disable('python') + args += self.enable_or_disable('lz4') + args += self.enable_or_disable('snappy') + args += self.enable_or_disable('zlib') + args += self.enable_or_disable('zstd') + return args diff --git a/var/spack/repos/builtin/packages/wonton/package.py b/var/spack/repos/builtin/packages/wonton/package.py index 9dd5492488..29503a9a10 100644 --- a/var/spack/repos/builtin/packages/wonton/package.py +++ b/var/spack/repos/builtin/packages/wonton/package.py @@ -33,7 +33,7 @@ class Wonton(CMakePackage): variant('kokkos', default=False, description='Enable on-node or device parallelism with Kokkos') variant('openmp', default=False, description="Enable on-node parallelism using OpenMP") variant('cuda', default=False, description="Enable GPU parallelism using CUDA") - + variant('flecsi', default=False, description="Enable FlecSI") # wrappers to external mesh/state libraries variant('jali', default=False, description='Enable Jali mesh wrappers') @@ -47,6 +47,7 @@ class Wonton(CMakePackage): depends_on('netlib-lapack +lapacke', when='+lapacke') depends_on('mpi', when='+mpi') + depends_on('flecsi', when='+flecsi') depends_on('jali +mstk', when='+jali') depends_on('mpi', when='+jali') @@ -113,10 +114,8 @@ class Wonton(CMakePackage): else: options.append('-DWONTON_ENABLE_Jali=OFF') - if '+flecsi' in self.spec: - options.append('-DWONTON_ENABLE_FleCSI=ON') - else: - options.append('-DWONTON_ENABLE_FleCSI=OFF') + # BROKEN DEPENDENCY!!!!!! + options.append(self.define_from_variant('WONTON_ENABLE_FleCSI', 'flecsi')) # Unit test variant if self.run_tests: @@ -127,3 +126,8 @@ class Wonton(CMakePackage): options.append('-DENABLE_APP_TESTS=OFF') return options + + def check(self): + if self.run_tests: + with working_dir(self.build_directory): + make("test") diff --git a/var/spack/repos/builtin/packages/xrootd/no-systemd.patch b/var/spack/repos/builtin/packages/xrootd/no-systemd.patch new file mode 100644 index 0000000000..44099f0b02 --- /dev/null +++ b/var/spack/repos/builtin/packages/xrootd/no-systemd.patch @@ -0,0 +1,17 @@ +--- a/cmake/XRootDFindLibs.cmake 2021-07-29 12:22:48.000000000 +0000 ++++ b/cmake/XRootDFindLibs.cmake 2021-10-25 18:26:07.308918231 +0000 +@@ -26,10 +26,10 @@ + add_definitions( -DHAVE_XML2 ) + endif() + +-find_package( Systemd ) +-if( SYSTEMD_FOUND ) +- add_definitions( -DHAVE_SYSTEMD ) +-endif() ++#find_package( Systemd ) ++#if( SYSTEMD_FOUND ) ++# add_definitions( -DHAVE_SYSTEMD ) ++#endif() + + find_package( CURL ) + diff --git a/var/spack/repos/builtin/packages/xrootd/package.py b/var/spack/repos/builtin/packages/xrootd/package.py index 3b75fb86db..73ce5d99c0 100644 --- a/var/spack/repos/builtin/packages/xrootd/package.py +++ b/var/spack/repos/builtin/packages/xrootd/package.py @@ -14,6 +14,7 @@ class Xrootd(CMakePackage): url = "http://xrootd.org/download/v5.3.1/xrootd-5.3.1.tar.gz" list_url = 'https://xrootd.slac.stanford.edu/dload.html' + version('5.3.2', sha256='e8371fb9e86769bece74b9b9d67cb695023cd6a20a1199386fddd9ed840b0875') version('5.3.1', sha256='7ea3a112ae9d8915eb3a06616141e5a0ee366ce9a5e4d92407b846b37704ee98') version('5.1.0', sha256='c639536f1bdc5b6b365e807f3337ed2d41012cd3df608d40e91ed05f1c568b6d') version('5.0.3', sha256='be40a1897d6c1f153d3e23c39fe96e45063bfafc3cc073db88a1a9531db79ac5') @@ -50,6 +51,9 @@ class Xrootd(CMakePackage): variant('readline', default=True, description='Use readline') + variant('krb5', default=False, + description='Build with KRB5 support') + variant('cxxstd', default='11', values=('98', '11', '14', '17'), @@ -67,10 +71,16 @@ class Xrootd(CMakePackage): depends_on('readline', when='+readline') depends_on('xz') depends_on('zlib') + depends_on('curl') + depends_on('krb5', when='+krb5') + depends_on('json-c') extends('python', when='+python') patch('python-support.patch', level=1, when='@:4.8+python') + # do not use systemd + patch('no-systemd.patch') + def patch(self): """Remove hardcoded -std=c++0x flag """ @@ -86,6 +96,8 @@ class Xrootd(CMakePackage): format('ON' if '+python' in spec else 'OFF'), '-DENABLE_READLINE:BOOL={0}'. format('ON' if '+readline' in spec else 'OFF'), + '-DENABLE_KRB5:BOOL={0}'. + format('ON' if '+krb5' in spec else 'OFF'), '-DENABLE_CEPH:BOOL=OFF' ] # see https://github.com/spack/spack/pull/11581 diff --git a/var/spack/repos/builtin/packages/xsdk/package.py b/var/spack/repos/builtin/packages/xsdk/package.py index 0ee4c05161..b6f496867e 100644 --- a/var/spack/repos/builtin/packages/xsdk/package.py +++ b/var/spack/repos/builtin/packages/xsdk/package.py @@ -5,28 +5,92 @@ import sys +from copy import deepcopy from spack import * -class Xsdk(BundlePackage): +def xsdk_depends_on_accl(accl_name, accl_var, *args, **kwargs): + if accl_name == 'cuda': + accl_arch_name = 'cuda_arch' + accl_arch_values = list(deepcopy(CudaPackage.cuda_arch_values)) + elif accl_name == 'rocm': + accl_arch_name = 'amdgpu_target' + accl_arch_values = list(deepcopy(ROCmPackage.amdgpu_targets)) + # require ~cuda when xsdk~cuda (and '?cuda' not used) + usedep = 1 + args_new = list(deepcopy(args)) + if not isinstance(accl_var, list): + accl_var = [accl_var] + for idx, var in enumerate(accl_var): + # skip variants starting with '?' so that + # that that they are left unspecified by xsdk + if not var.startswith('?'): + args_new[0] += ' ~%s' % var + else: + accl_var[idx] = var.replace('?', '') + # if '?cuda' skip adding '~cuda' dep + if var == '?' + accl_name: + usedep = 0 + kwargs_new = deepcopy(kwargs) + if 'when' in kwargs_new: + kwargs_new['when'] += ' ~' + accl_name + else: + kwargs_new['when'] = '~' + accl_name + if usedep: + depends_on(*args_new, **kwargs_new) + + # require +cuda when xsdk+cuda, and match the arch + for arch in accl_arch_values: + args_new = list(deepcopy(args)) + kwargs_new = deepcopy(kwargs) + args_new[0] += '+%s %s=%s' % ('+'.join(accl_var), accl_arch_name, str(arch)) + if 'when' in kwargs_new: + kwargs_new['when'] += ' +%s %s=%s' % (accl_name, accl_arch_name, str(arch)) + else: + kwargs_new['when'] = '+%s %s=%s' % (accl_name, accl_arch_name, str(arch)) + depends_on(*args_new, **kwargs_new) + + +def xsdk_depends_on(spec, cuda_var='', rocm_var='', **kwargs): + """ + Wrapper for depends_on which can handle propagating cuda and rocm + variants. + + Currently, it propagates +cuda_var when xsdk+cuda and rocm_var + when xsdk+rocm. When xsdk~[cuda|rocm], then ~[cuda|rocm]_var is + selected unless the variant string is prefixed with a '?' + (see the tasmanian use below). When '?' prefix is used, then + the variant is left unspecified. + + [cuda|rocm]_var can be an array of variant strings or just a single + variant string. The spack '+' and '~' symbols should not appear + in the strings. + """ + if bool(cuda_var): + xsdk_depends_on_accl('cuda', cuda_var, spec, **kwargs) + if bool(rocm_var): + xsdk_depends_on_accl('rocm', rocm_var, spec, **kwargs) + if not bool(cuda_var) and not bool(rocm_var): + depends_on(spec, **kwargs) + + +class Xsdk(BundlePackage, CudaPackage, ROCmPackage): """Xsdk is a suite of Department of Energy (DOE) packages for numerical simulation. This is a Spack bundle package that installs the xSDK packages """ homepage = "https://xsdk.info" - - maintainers = ['balay', 'luszczek'] + maintainers = ['balay', 'luszczek', 'balos1'] version('develop') + version('0.7.0') version('0.6.0') - version('0.5.0') + version('0.5.0', deprecated=True) version('0.4.0', deprecated=True) version('0.3.0', deprecated=True) - variant('debug', default=False, description='Compile in debug mode') - variant('cuda', default=False, description='Enable CUDA dependent packages') variant('trilinos', default=True, description='Enable trilinos package build') variant('datatransferkit', default=True, description='Enable datatransferkit package build') variant('omega-h', default=True, description='Enable omega-h package build') @@ -43,133 +107,196 @@ class Xsdk(BundlePackage): variant('slate', default=True, description='Enable slate package build') variant('arborx', default=True, description='Enable ArborX build') - depends_on('hypre@develop+superlu-dist+shared', when='@develop') - depends_on('hypre@2.20.0+superlu-dist+shared', when='@0.6.0') - depends_on('hypre@2.18.2+superlu-dist+shared', when='@0.5.0') - depends_on('hypre@2.15.1~internal-superlu', when='@0.4.0') - depends_on('hypre@2.12.1~internal-superlu', when='@0.3.0') - - depends_on('mfem@develop+mpi+superlu-dist+petsc+sundials+examples+miniapps', when='@develop') - depends_on('mfem@4.2.0+mpi+superlu-dist+petsc+sundials+examples+miniapps', when='@0.6.0') - depends_on('mfem@4.0.1-xsdk+mpi~superlu-dist+petsc+sundials+examples+miniapps', when='@0.5.0') - depends_on('mfem@3.4.0+mpi+superlu-dist+petsc+sundials+examples+miniapps', when='@0.4.0') - depends_on('mfem@3.3.2+mpi+superlu-dist+petsc+sundials+examples+miniapps', when='@0.3.0') - - depends_on('superlu-dist@develop', when='@develop') - depends_on('superlu-dist@6.4.0', when='@0.6.0') - depends_on('superlu-dist@6.1.1', when='@0.5.0') - depends_on('superlu-dist@6.1.0', when='@0.4.0') - depends_on('superlu-dist@5.2.2', when='@0.3.0') - - depends_on('trilinos@develop+hypre+superlu-dist+hdf5~mumps+boost~suite-sparse+tpetra+nox+ifpack2+zoltan+zoltan2+amesos2~exodus~dtk+intrepid2+shards+stratimikos gotype=int cxxstd=14', - when='@develop +trilinos') - depends_on('trilinos@13.0.1+hypre+superlu-dist+hdf5~mumps+boost~suite-sparse+tpetra+nox+ifpack2+zoltan+zoltan2+amesos2~exodus~dtk+intrepid2+shards gotype=int', - when='@0.6.0 +trilinos') - depends_on('trilinos@12.18.1+hypre+superlu-dist+hdf5~mumps+boost~suite-sparse+tpetra+nox+ifpack2+zoltan+zoltan2+amesos2~exodus+dtk+intrepid2+shards', - when='@0.5.0 +trilinos') - depends_on('trilinos@12.14.1+hypre+superlu-dist+hdf5~mumps+boost~suite-sparse+tpetra+nox+ifpack2+zoltan+zoltan2+amesos2~exodus+dtk+intrepid2+shards', - when='@0.4.0 +trilinos') - depends_on('trilinos@12.12.1+hypre+superlu-dist+hdf5~mumps+boost~suite-sparse~tpetra~ifpack2~zoltan~zoltan2~amesos2~exodus', - when='@0.3.0 +trilinos') - - depends_on('datatransferkit@master', when='@develop +trilinos +datatransferkit') - depends_on('datatransferkit@3.1-rc2', when='@0.6.0 +trilinos +datatransferkit') - - depends_on('petsc +trilinos', when='+trilinos') - depends_on('petsc +cuda', when='+cuda @0.6.0:') - depends_on('petsc +batch', when='platform=cray @0.5.0:') - depends_on('petsc@main+mpi+hypre+superlu-dist+metis+hdf5~mumps+double~int64', - when='@develop') - depends_on('petsc@3.14.1+mpi+hypre+superlu-dist+metis+hdf5~mumps+double~int64', - when='@0.6.0') - depends_on('petsc@3.12.1+mpi+hypre+superlu-dist+metis+hdf5~mumps+double~int64', - when='@0.5.0') - depends_on('petsc@3.10.3+mpi+hypre+superlu-dist+metis+hdf5~mumps+double~int64', - when='@0.4.0') - depends_on('petsc@3.8.2+mpi+hypre+superlu-dist+metis+hdf5~mumps+double~int64', - when='@0.3.0') - - depends_on('dealii +trilinos~adol-c', when='+trilinos +dealii') - depends_on('dealii ~trilinos', when='~trilinos +dealii') - depends_on('dealii@master~assimp~python~doc~gmsh+petsc+slepc+mpi~int64+hdf5~netcdf+metis~sundials~ginkgo~symengine~nanoflann', when='@develop +dealii') - depends_on('dealii@9.2.0~assimp~python~doc~gmsh+petsc+slepc+mpi~int64+hdf5~netcdf+metis~sundials~ginkgo~symengine~simplex~arborx', when='@0.6.0 +dealii') - depends_on('dealii@9.1.1~assimp~python~doc~gmsh+petsc+slepc+mpi~int64+hdf5~netcdf+metis~sundials~ginkgo~symengine', when='@0.5.0 +dealii') - depends_on('dealii@9.0.1~assimp~python~doc~gmsh+petsc~slepc+mpi~int64+hdf5~netcdf+metis~ginkgo~symengine', when='@0.4.0 +dealii') - - depends_on('pflotran@develop', when='@develop') - depends_on('pflotran@xsdk-0.6.0', when='@0.6.0') - depends_on('pflotran@xsdk-0.5.0', when='@0.5.0') - depends_on('pflotran@xsdk-0.4.0', when='@0.4.0') - depends_on('pflotran@xsdk-0.3.0', when='@0.3.0') - - depends_on('alquimia@develop', when='@develop +alquimia') - depends_on('alquimia@xsdk-0.6.0', when='@0.6.0 +alquimia') - depends_on('alquimia@xsdk-0.5.0', when='@0.5.0 +alquimia ') - depends_on('alquimia@xsdk-0.4.0', when='@0.4.0 +alquimia') - depends_on('alquimia@xsdk-0.3.0', when='@0.3.0 +alquimia') - - depends_on('sundials +cuda', when='+cuda @0.6.0:') - depends_on('sundials +trilinos', when='+trilinos @0.6.0:') - depends_on('sundials@develop~int64+hypre+petsc+superlu-dist', when='@develop') - depends_on('sundials@5.5.0~int64+hypre+petsc+superlu-dist', when='@0.6.0') - depends_on('sundials@5.0.0~int64+hypre+petsc+superlu-dist', when='@0.5.0') - depends_on('sundials@3.2.1~int64+hypre', when='@0.4.0') - depends_on('sundials@3.1.0~int64+hypre', when='@0.3.0') - - depends_on('plasma@20.9.20:', when='@develop %gcc@6.0:') - depends_on('plasma@20.9.20:', when='@0.6.0 %gcc@6.0:') - depends_on('plasma@19.8.1:', when='@0.5.0 %gcc@6.0:') - depends_on('plasma@18.11.1:', when='@0.4.0 %gcc@6.0:') - - depends_on('magma@2.5.4', when='@develop +cuda') - depends_on('magma@2.5.4', when='@0.6.0 +cuda') - depends_on('magma@2.5.1', when='@0.5.0 +cuda') - depends_on('magma@2.4.0', when='@0.4.0 +cuda') - depends_on('magma@2.2.0', when='@0.3.0 +cuda') - - depends_on('amrex@develop', when='@develop %intel') - depends_on('amrex@develop', when='@develop %gcc') - depends_on('amrex@20.10', when='@0.6.0 %intel') - depends_on('amrex@20.10', when='@0.6.0 %gcc') - depends_on('amrex@19.08', when='@0.5.0 %intel') - depends_on('amrex@19.08', when='@0.5.0 %gcc') - depends_on('amrex@18.10.1', when='@0.4.0 %intel') - depends_on('amrex@18.10.1', when='@0.4.0 %gcc') - - depends_on('slepc@main', when='@develop') - depends_on('slepc@3.14.0', when='@0.6.0') - depends_on('slepc@3.12.0', when='@0.5.0') - depends_on('slepc@3.10.1', when='@0.4.0') - - depends_on('omega-h +trilinos', when='+trilinos +omega-h') - depends_on('omega-h ~trilinos', when='~trilinos +omega-h') - depends_on('omega-h@main', when='@develop +omega-h') - depends_on('omega-h@9.32.5', when='@0.6.0 +omega-h') - depends_on('omega-h@9.29.0', when='@0.5.0 +omega-h') - depends_on('omega-h@9.19.1', when='@0.4.0 +omega-h') - - depends_on('strumpack ~cuda', when='~cuda @0.6.0: +strumpack') - depends_on('strumpack@master~slate~openmp', when='@develop +strumpack') - depends_on('strumpack@5.0.0~slate~openmp', when='@0.6.0 +strumpack') - depends_on('strumpack@3.3.0~slate~openmp', when='@0.5.0 +strumpack') - depends_on('strumpack@3.1.1~slate~openmp', when='@0.4.0 +strumpack') - - depends_on('pumi@master', when='@develop') - depends_on('pumi@2.2.5', when='@0.6.0') - depends_on('pumi@2.2.1', when='@0.5.0') - depends_on('pumi@2.2.0', when='@0.4.0') + xsdk_depends_on('hypre@develop+superlu-dist+shared', when='@develop', + cuda_var='cuda') + xsdk_depends_on('hypre@2.23.0+superlu-dist+shared', when='@0.7.0', + cuda_var='cuda') + xsdk_depends_on('hypre@2.20.0+superlu-dist+shared', when='@0.6.0') + xsdk_depends_on('hypre@2.18.2+superlu-dist+shared', when='@0.5.0') + xsdk_depends_on('hypre@2.15.1~internal-superlu', when='@0.4.0') + xsdk_depends_on('hypre@2.12.1~internal-superlu', when='@0.3.0') + + xsdk_depends_on('mfem@develop+mpi+superlu-dist+petsc+sundials+examples+miniapps', + when='@develop', cuda_var='cuda', rocm_var='rocm') + xsdk_depends_on('mfem@4.3.0+mpi+superlu-dist+petsc+sundials+examples+miniapps', + when='@0.7.0', cuda_var='cuda', rocm_var='rocm') + xsdk_depends_on('mfem@4.2.0+mpi+superlu-dist+petsc+sundials+examples+miniapps', + when='@0.6.0', cuda_var='cuda') + xsdk_depends_on('mfem@4.0.1-xsdk+mpi~superlu-dist+petsc+sundials+examples+miniapps', + when='@0.5.0') + xsdk_depends_on('mfem@3.4.0+mpi+superlu-dist+petsc+sundials+examples+miniapps', + when='@0.4.0') + xsdk_depends_on('mfem@3.3.2+mpi+superlu-dist+petsc+sundials+examples+miniapps', + when='@0.3.0') + + xsdk_depends_on('superlu-dist@develop', when='@develop') + xsdk_depends_on('superlu-dist@7.1.1', when='@0.7.0') + xsdk_depends_on('superlu-dist@6.4.0', when='@0.6.0') + xsdk_depends_on('superlu-dist@6.1.1', when='@0.5.0') + xsdk_depends_on('superlu-dist@6.1.0', when='@0.4.0') + xsdk_depends_on('superlu-dist@5.2.2', when='@0.3.0') + xsdk_depends_on('trilinos@develop+hypre+superlu-dist+hdf5~mumps+boost' + + '~suite-sparse+tpetra+nox+ifpack2+zoltan+zoltan2+amesos2' + + '~exodus~dtk+intrepid2+shards+stratimikos gotype=int' + + ' cxxstd=14', when='@develop +trilinos') + xsdk_depends_on('trilinos@13.2.0+hypre+superlu-dist+hdf5~mumps+boost' + + '~suite-sparse+tpetra+nox+ifpack2+zoltan+zoltan2+amesos2' + + '~exodus~dtk+intrepid2+shards+stratimikos gotype=int' + + ' cxxstd=14', when='@0.7.0 +trilinos') + xsdk_depends_on('trilinos@13.0.1+hypre+superlu-dist+hdf5~mumps+boost' + + '~suite-sparse+tpetra+nox+ifpack2+zoltan+zoltan2+amesos2' + + '~exodus~dtk+intrepid2+shards gotype=int' + + ' cxxstd=11', when='@0.6.0 +trilinos') + xsdk_depends_on('trilinos@12.18.1+hypre+superlu-dist+hdf5~mumps+boost' + + '~suite-sparse+tpetra+nox+ifpack2+zoltan+zoltan2+amesos2' + + '~exodus+dtk+intrepid2+shards', when='@0.5.0 +trilinos') + xsdk_depends_on('trilinos@12.14.1+hypre+superlu-dist+hdf5~mumps+boost' + + '~suite-sparse+tpetra+nox+ifpack2+zoltan+zoltan2+amesos2' + + '~exodus+dtk+intrepid2+shards', when='@0.4.0 +trilinos') + xsdk_depends_on('trilinos@12.12.1+hypre+superlu-dist+hdf5~mumps+boost' + + '~suite-sparse~tpetra~ifpack2~zoltan~zoltan2~amesos2' + '~exodus', when='@0.3.0 +trilinos') + + xsdk_depends_on('datatransferkit@master', + when='@develop +trilinos +datatransferkit') + dtk7ver = '3.1-rc2' if sys.platform == 'darwin' else '3.1-rc3' + xsdk_depends_on('datatransferkit@' + dtk7ver, + when='@0.7.0 +trilinos +datatransferkit') + xsdk_depends_on('datatransferkit@3.1-rc2', + when='@0.6.0 +trilinos +datatransferkit') + + xsdk_depends_on('petsc +trilinos', when='+trilinos @:0.6.0') + xsdk_depends_on('petsc +batch', when='platform=cray @0.5.0:') + xsdk_depends_on('petsc@main+mpi+hypre+superlu-dist+metis+hdf5~mumps+double~int64', + when='@develop', cuda_var='cuda') + xsdk_depends_on('petsc@3.16.1+mpi+hypre+superlu-dist+metis+hdf5~mumps+double~int64', + when='@0.7.0', cuda_var='cuda') + xsdk_depends_on('petsc@3.14.1+mpi+hypre+superlu-dist+metis+hdf5~mumps+double~int64', + when='@0.6.0', cuda_var='cuda') + xsdk_depends_on('petsc@3.12.1+mpi+hypre+superlu-dist+metis+hdf5~mumps+double~int64', + when='@0.5.0') + xsdk_depends_on('petsc@3.10.3+mpi+hypre+superlu-dist+metis+hdf5~mumps+double~int64', + when='@0.4.0') + xsdk_depends_on('petsc@3.8.2+mpi+hypre+superlu-dist+metis+hdf5~mumps+double~int64', + when='@0.3.0') + + xsdk_depends_on('dealii +trilinos~adol-c', when='+trilinos +dealii') + xsdk_depends_on('dealii ~trilinos', when='~trilinos +dealii') + xsdk_depends_on('dealii@master~assimp~python~doc~gmsh+petsc+slepc+mpi~int64+hdf5' + + '~netcdf+metis~sundials~ginkgo~symengine~nanoflann~simplex~arborx', + when='@develop +dealii') + xsdk_depends_on('dealii@9.3.2~assimp~python~doc~gmsh+petsc+slepc+mpi~int64+hdf5' + + '~netcdf+metis~sundials~ginkgo~symengine~simplex~arborx', + when='@0.7.0 +dealii') + xsdk_depends_on('dealii@9.2.0~assimp~python~doc~gmsh+petsc+slepc+mpi~int64+hdf5' + + '~netcdf+metis~sundials~ginkgo~symengine~simplex~arborx', + when='@0.6.0 +dealii') + xsdk_depends_on('dealii@9.1.1~assimp~python~doc~gmsh+petsc+slepc+mpi~int64+hdf5' + + '~netcdf+metis~sundials~ginkgo~symengine', + when='@0.5.0 +dealii') + xsdk_depends_on('dealii@9.0.1~assimp~python~doc~gmsh+petsc~slepc+mpi~int64+hdf5' + + '~netcdf+metis~ginkgo~symengine', + when='@0.4.0 +dealii') + + xsdk_depends_on('pflotran@develop', when='@develop') + xsdk_depends_on('pflotran@3.0.2', when='@0.7.0') + xsdk_depends_on('pflotran@xsdk-0.6.0', when='@0.6.0') + xsdk_depends_on('pflotran@xsdk-0.5.0', when='@0.5.0') + xsdk_depends_on('pflotran@xsdk-0.4.0', when='@0.4.0') + xsdk_depends_on('pflotran@xsdk-0.3.0', when='@0.3.0') + + xsdk_depends_on('alquimia@develop', when='@develop +alquimia') + xsdk_depends_on('alquimia@1.0.9', when='@0.7.0 +alquimia') + xsdk_depends_on('alquimia@xsdk-0.6.0', when='@0.6.0 +alquimia') + xsdk_depends_on('alquimia@xsdk-0.5.0', when='@0.5.0 +alquimia ') + xsdk_depends_on('alquimia@xsdk-0.4.0', when='@0.4.0 +alquimia') + xsdk_depends_on('alquimia@xsdk-0.3.0', when='@0.3.0 +alquimia') + + xsdk_depends_on('sundials +trilinos', when='+trilinos @0.6.0:') + xsdk_depends_on('sundials@develop~int64+hypre+petsc+superlu-dist', + when='@develop', cuda_var='cuda', rocm_var='rocm') + xsdk_depends_on('sundials@5.8.0~int64+hypre+petsc+superlu-dist', + when='@0.7.0', cuda_var='cuda', rocm_var='rocm') + xsdk_depends_on('sundials@5.5.0~int64+hypre+petsc+superlu-dist', + when='@0.6.0', cuda_var='cuda') + xsdk_depends_on('sundials@5.0.0~int64+hypre+petsc+superlu-dist', when='@0.5.0') + xsdk_depends_on('sundials@3.2.1~int64+hypre', when='@0.4.0') + xsdk_depends_on('sundials@3.1.0~int64+hypre', when='@0.3.0') + + xsdk_depends_on('plasma@develop:', when='@develop %gcc@6.0:') + xsdk_depends_on('plasma@21.8.29:', when='@0.7.0 %gcc@6.0:') + xsdk_depends_on('plasma@20.9.20:', when='@0.6.0 %gcc@6.0:') + xsdk_depends_on('plasma@19.8.1:', when='@0.5.0 %gcc@6.0:') + xsdk_depends_on('plasma@18.11.1:', when='@0.4.0 %gcc@6.0:') + + xsdk_depends_on('magma@master', when='@develop', cuda_var='?cuda', rocm_var='?rocm') + xsdk_depends_on('magma@2.6.1', when='@0.7.0', cuda_var='?cuda', rocm_var='?rocm') + xsdk_depends_on('magma@2.5.4', when='@0.6.0', cuda_var='?cuda') + xsdk_depends_on('magma@2.5.1', when='@0.5.0', cuda_var='?cuda') + xsdk_depends_on('magma@2.4.0', when='@0.4.0', cuda_var='?cuda') + xsdk_depends_on('magma@2.2.0', when='@0.3.0', cuda_var='?cuda') + + xsdk_depends_on('amrex@develop+sundials', + when='@develop %intel', cuda_var='cuda', rocm_var='rocm') + xsdk_depends_on('amrex@develop+sundials', + when='@develop %gcc', cuda_var='cuda', rocm_var='rocm') + xsdk_depends_on('amrex@develop+sundials', + when='@develop %cce', cuda_var='cuda', rocm_var='rocm') + xsdk_depends_on('amrex@21.10+sundials', + when='@0.7.0 %intel', cuda_var='cuda', rocm_var='rocm') + xsdk_depends_on('amrex@21.10+sundials', + when='@0.7.0 %gcc', cuda_var='cuda', rocm_var='rocm') + xsdk_depends_on('amrex@21.10+sundials', + when='@0.7.0 %cce', cuda_var='cuda', rocm_var='rocm') + xsdk_depends_on('amrex@20.10', when='@0.6.0 %intel') + xsdk_depends_on('amrex@20.10', when='@0.6.0 %gcc') + xsdk_depends_on('amrex@19.08', when='@0.5.0 %intel') + xsdk_depends_on('amrex@19.08', when='@0.5.0 %gcc') + xsdk_depends_on('amrex@18.10.1', when='@0.4.0 %intel') + xsdk_depends_on('amrex@18.10.1', when='@0.4.0 %gcc') + + xsdk_depends_on('slepc@main', when='@develop') + xsdk_depends_on('slepc@3.16.0', when='@0.7.0') + xsdk_depends_on('slepc@3.14.0', when='@0.6.0') + xsdk_depends_on('slepc@3.12.0', when='@0.5.0') + xsdk_depends_on('slepc@3.10.1', when='@0.4.0') + + xsdk_depends_on('omega-h +trilinos', when='+trilinos +omega-h') + xsdk_depends_on('omega-h ~trilinos', when='~trilinos +omega-h') + xsdk_depends_on('omega-h@main', when='@develop +omega-h') + xsdk_depends_on('omega-h@9.34.1', when='@0.7.0 +omega-h') + xsdk_depends_on('omega-h@9.32.5', when='@0.6.0 +omega-h') + xsdk_depends_on('omega-h@9.29.0', when='@0.5.0 +omega-h') + xsdk_depends_on('omega-h@9.19.1', when='@0.4.0 +omega-h') + + xsdk_depends_on('strumpack ~cuda', when='~cuda @0.6.0: +strumpack') + xsdk_depends_on('strumpack@master~slate~openmp', when='@develop +strumpack') + xsdk_depends_on('strumpack@6.1.0~slate~openmp', when='@0.7.0 +strumpack') + xsdk_depends_on('strumpack@5.0.0~slate~openmp', when='@0.6.0 +strumpack') + xsdk_depends_on('strumpack@3.3.0~slate~openmp', when='@0.5.0 +strumpack') + xsdk_depends_on('strumpack@3.1.1~slate~openmp', when='@0.4.0 +strumpack') + + xsdk_depends_on('pumi@master', when='@develop') + xsdk_depends_on('pumi@2.2.6', when='@0.7.0') + xsdk_depends_on('pumi@2.2.5', when='@0.6.0') + xsdk_depends_on('pumi@2.2.1', when='@0.5.0') + xsdk_depends_on('pumi@2.2.0', when='@0.4.0') tasmanian_openmp = '~openmp' if sys.platform == 'darwin' else '+openmp' - depends_on('tasmanian@develop+xsdkflags+blas' + tasmanian_openmp, when='@develop') - depends_on('tasmanian@develop+xsdkflags+blas+cuda+magma' + tasmanian_openmp, when='@develop +cuda') - depends_on('tasmanian@7.3+xsdkflags+mpi+blas' + tasmanian_openmp, when='@0.6.0') - depends_on('tasmanian@7.3+xsdkflags+mpi+blas+cuda+magma' + tasmanian_openmp, when='@0.6.0 +cuda') - depends_on('tasmanian@7.0+xsdkflags+mpi+blas' + tasmanian_openmp, when='@0.5.0') - depends_on('tasmanian@7.0+xsdkflags+mpi+blas+cuda+magma' + tasmanian_openmp, when='@0.5.0 +cuda') - depends_on('tasmanian@6.0+xsdkflags+blas~openmp', when='@0.4.0') - depends_on('tasmanian@6.0+xsdkflags+blas+cuda+magma~openmp', when='@0.4.0 +cuda') - - depends_on('arborx@1.0', when='@develop +arborx') + xsdk_depends_on('tasmanian@develop+xsdkflags+blas' + tasmanian_openmp, + when='@develop', + cuda_var=['cuda', '?magma'], rocm_var=['rocm', '?magma']) + xsdk_depends_on('tasmanian@7.7+xsdkflags+mpi+blas' + tasmanian_openmp, + when='@0.7.0', cuda_var=['cuda', '?magma']) + xsdk_depends_on('tasmanian@7.3+xsdkflags+mpi+blas' + tasmanian_openmp, + when='@0.6.0', cuda_var=['cuda', '?magma']) + xsdk_depends_on('tasmanian@7.0+xsdkflags+mpi+blas' + tasmanian_openmp, + when='@0.5.0', cuda_var=['cuda', '?magma']) + xsdk_depends_on('tasmanian@6.0+xsdkflags+blas~openmp', when='@0.4.0', + cuda_var=['cuda', '?magma']) + + xsdk_depends_on('arborx@master', when='@develop +arborx') + xsdk_depends_on('arborx@1.1', when='@0.7.0 +arborx') # the Fortran 2003 bindings of phist require python@3:, but this # creates a conflict with other packages like petsc@main. Actually @@ -177,45 +304,54 @@ class Xsdk(BundlePackage): # This will be fixed once the new concretizer becomes available # (says @adamjstewart) - depends_on('phist kernel_lib=tpetra', when='+trilinos +phist') - depends_on('phist kernel_lib=petsc', when='~trilinos +phist') - depends_on('phist@develop ~fortran ~scamac ~openmp ~host ~int64', when='@develop +phist') - depends_on('phist@1.9.3 ~fortran ~scamac ~openmp ~host ~int64', when='@0.6.0 +phist') - depends_on('phist@1.8.0 ~fortran ~scamac ~openmp ~host ~int64', when='@0.5.0 +phist') - depends_on('phist@1.7.5 ~fortran ~scamac ~openmp ~host ~int64', when='@0.4.0 +phist') - - depends_on('ginkgo@develop ~openmp', when='@develop +ginkgo') - depends_on('ginkgo@develop ~openmp+cuda', when='@develop +ginkgo +cuda') - depends_on('ginkgo@1.3.0 ~openmp', when='@0.6.0 +ginkgo') - depends_on('ginkgo@1.3.0 ~openmp+cuda', when='@0.6.0 +cuda +ginkgo') - depends_on('ginkgo@1.1.0 ~openmp', when='@0.5.0 +ginkgo') - depends_on('ginkgo@1.1.0 ~openmp+cuda', when='@0.5.0 +cuda +ginkgo') - - depends_on('py-libensemble@develop+petsc4py', type='run', when='@develop +libensemble') - depends_on('py-petsc4py@main', type='run', when='@develop +libensemble') - depends_on('py-libensemble@0.7.1+petsc4py', type='run', when='@0.6.0 +libensemble') - depends_on('py-petsc4py@3.14.0', type='run', when='@0.6.0 +libensemble') - depends_on('py-libensemble@0.5.2+petsc4py', type='run', when='@0.5.0 +libensemble') - depends_on('py-petsc4py@3.12.0', type='run', when='@0.5.0 +libensemble') - - depends_on('precice ~petsc', when='platform=cray +precice') - depends_on('precice@develop', when='@develop +precice') - depends_on('precice@2.1.1', when='@0.6.0 +precice') - depends_on('precice@1.6.1', when='@0.5.0 +precice') - - depends_on('butterflypack@master', when='@develop +butterflypack') - depends_on('butterflypack@1.2.1', when='@0.6.0 +butterflypack') - depends_on('butterflypack@1.1.0', when='@0.5.0 +butterflypack') - - depends_on('heffte +fftw+cuda+magma', when='+cuda +heffte') - depends_on('openmpi +cuda', when='+cuda +heffte') - depends_on('heffte@develop+fftw', when='@develop +heffte') - depends_on('heffte@2.0.0+fftw', when='@0.6.0 +heffte') - - depends_on('slate@master ~cuda', when='@develop ~cuda +slate %gcc@6.0:') - depends_on('slate@master +cuda', when='@develop +cuda +slate %gcc@6.0:') - depends_on('slate@2020.10.00 ~cuda', when='@0.6.0 ~cuda +slate %gcc@6.0:') - depends_on('slate@2020.10.00 +cuda', when='@0.6.0 +cuda +slate %gcc@6.0:') - - # How do we propagate debug flag to all depends on packages ? - # If I just do spack install xsdk+debug will that propogate it down? + xsdk_depends_on('phist kernel_lib=tpetra', when='+trilinos +phist') + xsdk_depends_on('phist kernel_lib=petsc', when='~trilinos +phist') + xsdk_depends_on('phist@develop ~fortran ~scamac ~openmp ~host ~int64', + when='@develop +phist') + xsdk_depends_on('phist@1.9.5 ~fortran ~scamac ~openmp ~host ~int64', + when='@0.7.0 +phist') + xsdk_depends_on('phist@1.9.3 ~fortran ~scamac ~openmp ~host ~int64', + when='@0.6.0 +phist') + xsdk_depends_on('phist@1.8.0 ~fortran ~scamac ~openmp ~host ~int64', + when='@0.5.0 +phist') + xsdk_depends_on('phist@1.7.5 ~fortran ~scamac ~openmp ~host ~int64', + when='@0.4.0 +phist') + + xsdk_depends_on('ginkgo@develop ~openmp', when='@develop +ginkgo', + cuda_var='cuda', rocm_var='rocm') + xsdk_depends_on('ginkgo@1.4.0 ~openmp', + when='@0.7.0 +ginkgo', cuda_var='cuda', rocm_var='rocm') + xsdk_depends_on('ginkgo@1.3.0 ~openmp', + when='@0.6.0 +ginkgo', cuda_var='cuda') + xsdk_depends_on('ginkgo@1.1.0 ~openmp', when='@0.5.0 +ginkgo') + + xsdk_depends_on('py-libensemble@develop+petsc4py', when='@develop +libensemble') + xsdk_depends_on('py-petsc4py@main', when='@develop +libensemble') + xsdk_depends_on('py-libensemble@0.8.0+petsc4py', when='@0.7.0 +libensemble') + xsdk_depends_on('py-petsc4py@3.16.1', when='@0.7.0 +libensemble') + xsdk_depends_on('py-libensemble@0.7.1+petsc4py', when='@0.6.0 +libensemble') + xsdk_depends_on('py-petsc4py@3.14.0', when='@0.6.0 +libensemble') + xsdk_depends_on('py-libensemble@0.5.2+petsc4py', when='@0.5.0 +libensemble') + xsdk_depends_on('py-petsc4py@3.12.0', when='@0.5.0 +libensemble') + + xsdk_depends_on('precice ~petsc', when='platform=cray +precice') + xsdk_depends_on('precice@develop', when='@develop +precice') + xsdk_depends_on('precice@2.3.0', when='@0.7.0 +precice') + xsdk_depends_on('precice@2.1.1', when='@0.6.0 +precice') + xsdk_depends_on('precice@1.6.1', when='@0.5.0 +precice') + + xsdk_depends_on('butterflypack@master', when='@develop +butterflypack') + xsdk_depends_on('butterflypack@2.0.0', when='@0.7.0 +butterflypack') + xsdk_depends_on('butterflypack@1.2.1', when='@0.6.0 +butterflypack') + xsdk_depends_on('butterflypack@1.1.0', when='@0.5.0 +butterflypack') + + xsdk_depends_on('heffte@develop+fftw', when='@develop +heffte', + cuda_var=['cuda', '?magma'], rocm_var=['rocm', '?magma']) + xsdk_depends_on('heffte@2.2.0+fftw', when='@0.7.0 +heffte', + cuda_var=['cuda', '?magma'], rocm_var=['rocm', '?magma']) + xsdk_depends_on('heffte@2.0.0+fftw', when='@0.6.0 +heffte', + cuda_var=['cuda', '?magma']) + + xsdk_depends_on('slate@master', when='@develop +slate %gcc@6.0:', cuda_var='cuda') + xsdk_depends_on('slate@2021.05.02', when='@0.7.0 +slate %gcc@6.0:', cuda_var='cuda') + xsdk_depends_on('slate@2020.10.00', when='@0.6.0 +slate %gcc@6.0:', cuda_var='cuda') |