diff options
Diffstat (limited to 'var')
644 files changed, 15008 insertions, 1105 deletions
diff --git a/var/spack/repos/builtin.mock/packages/corge/package.py b/var/spack/repos/builtin.mock/packages/corge/package.py index 48f9ac8e6e..3bd8b34e47 100644 --- a/var/spack/repos/builtin.mock/packages/corge/package.py +++ b/var/spack/repos/builtin.mock/packages/corge/package.py @@ -6,6 +6,7 @@ from spack import * import os +import sys class Corge(Package): @@ -101,7 +102,6 @@ main(int argc, char* argv[]) return 0; } ''' - mkdirp(prefix.lib64) mkdirp('%s/corge' % prefix.include) mkdirp('%s/corge' % self.stage.source_path) with open('%s/corge_version.h' % self.stage.source_path, 'w') as f: @@ -113,6 +113,8 @@ main(int argc, char* argv[]) with open('%s/corge/corgegator.cc' % self.stage.source_path, 'w') as f: f.write(corgegator_cc) gpp = which('/usr/bin/g++') + if sys.platform == 'darwin': + gpp = which('/usr/bin/clang++') gpp('-Dcorge_EXPORTS', '-I%s' % self.stage.source_path, '-I%s' % spec['quux'].prefix.include, @@ -127,22 +129,42 @@ main(int argc, char* argv[]) '-O2', '-g', '-DNDEBUG', '-fPIC', '-o', 'corgegator.cc.o', '-c', 'corge/corgegator.cc') - gpp('-fPIC', '-O2', '-g', '-DNDEBUG', '-shared', - '-Wl,-soname,libcorge.so', '-o', 'libcorge.so', 'corge.cc.o', - '-Wl,-rpath,%s:%s::::' % - (spec['quux'].prefix.lib64, spec['garply'].prefix.lib64), - '%s/libquux.so' % spec['quux'].prefix.lib64, - '%s/libgarply.so' % spec['garply'].prefix.lib64) - gpp('-O2', '-g', '-DNDEBUG', '-rdynamic', - 'corgegator.cc.o', '-o', 'corgegator', - '-Wl,-rpath,%s:%s:%s:::' % (prefix.lib64, - spec['quux'].prefix.lib64, - spec['garply'].prefix.lib64), - 'libcorge.so', - '%s/libquux.so' % spec['quux'].prefix.lib64, - '%s/libgarply.so' % spec['garply'].prefix.lib64) + if sys.platform == 'darwin': + gpp('-fPIC', '-O2', '-g', '-DNDEBUG', '-dynamiclib', + '-install_name', '@rpath/libcorge.dylib', + '-o', 'libcorge.dylib', 'corge.cc.o', + '-Wl,-rpath,%s' % spec['quux'].prefix.lib64, + '-Wl,-rpath,%s' % spec['garply'].prefix.lib64, + '%s/libquux.dylib' % spec['quux'].prefix.lib64, + '%s/libgarply.dylib' % spec['garply'].prefix.lib64) + gpp('-O2', '-g', '-DNDEBUG', '-rdynamic', + 'corgegator.cc.o', '-o', 'corgegator', + '-Wl,-rpath,%s' % prefix.lib64, + '-Wl,-rpath,%s' % spec['quux'].prefix.lib64, + '-Wl,-rpath,%s' % spec['garply'].prefix.lib64, + 'libcorge.dylib', + '%s/libquux.dylib' % spec['quux'].prefix.lib64, + '%s/libgarply.dylib' % spec['garply'].prefix.lib64) + mkdirp(prefix.lib64) + copy('libcorge.dylib', '%s/libcorge.dylib' % prefix.lib64) + else: + gpp('-fPIC', '-O2', '-g', '-DNDEBUG', '-shared', + '-Wl,-soname,libcorge.so', '-o', 'libcorge.so', 'corge.cc.o', + '-Wl,-rpath,%s:%s::::' % + (spec['quux'].prefix.lib64, spec['garply'].prefix.lib64), + '%s/libquux.so' % spec['quux'].prefix.lib64, + '%s/libgarply.so' % spec['garply'].prefix.lib64) + gpp('-O2', '-g', '-DNDEBUG', '-rdynamic', + 'corgegator.cc.o', '-o', 'corgegator', + '-Wl,-rpath,%s' % prefix.lib64, + '-Wl,-rpath,%s' % spec['quux'].prefix.lib64, + '-Wl,-rpath,%s' % spec['garply'].prefix.lib64, + 'libcorge.so', + '%s/libquux.so' % spec['quux'].prefix.lib64, + '%s/libgarply.so' % spec['garply'].prefix.lib64) + mkdirp(prefix.lib64) + copy('libcorge.so', '%s/libcorge.so' % prefix.lib64) copy('corgegator', '%s/corgegator' % prefix.lib64) - copy('libcorge.so', '%s/libcorge.so' % prefix.lib64) copy('%s/corge/corge.h' % self.stage.source_path, '%s/corge/corge.h' % prefix.include) mkdirp(prefix.bin) diff --git a/var/spack/repos/builtin.mock/packages/find-externals1/package.py b/var/spack/repos/builtin.mock/packages/find-externals1/package.py index 25e26dcced..9f5f94aaab 100644 --- a/var/spack/repos/builtin.mock/packages/find-externals1/package.py +++ b/var/spack/repos/builtin.mock/packages/find-externals1/package.py @@ -2,12 +2,11 @@ # Spack Project Developers. See the top-level COPYRIGHT file for details. # # SPDX-License-Identifier: (Apache-2.0 OR MIT) - -from spack import * - import os import re +import spack.package + class FindExternals1(AutotoolsPackage): executables = ['find-externals1-exe'] @@ -31,4 +30,6 @@ class FindExternals1(AutotoolsPackage): match = re.search(r'find-externals1.*version\s+(\S+)', output) if match: version_str = match.group(1) - return Spec('find-externals1@{0}'.format(version_str)) + return Spec.from_detection( + 'find-externals1@{0}'.format(version_str) + ) diff --git a/var/spack/repos/builtin.mock/packages/garply/package.py b/var/spack/repos/builtin.mock/packages/garply/package.py index 8fa0778287..289e172c91 100644 --- a/var/spack/repos/builtin.mock/packages/garply/package.py +++ b/var/spack/repos/builtin.mock/packages/garply/package.py @@ -6,6 +6,7 @@ from spack import * import os +import sys class Garply(Package): @@ -73,7 +74,6 @@ main() garply_version_h = '''const int garply_version_major = %s; const int garply_version_minor = %s; ''' - mkdirp(prefix.lib64) mkdirp('%s/garply' % prefix.include) mkdirp('%s/garply' % self.stage.source_path) with open('%s/garply_version.h' % self.stage.source_path, 'w') as f: @@ -86,6 +86,8 @@ const int garply_version_minor = %s; self.stage.source_path, 'w') as f: f.write(garplinator_cc) gpp = which('/usr/bin/g++') + if sys.platform == 'darwin': + gpp = which('/usr/bin/clang++') gpp('-Dgarply_EXPORTS', '-I%s' % self.stage.source_path, '-O2', '-g', '-DNDEBUG', '-fPIC', @@ -96,13 +98,28 @@ const int garply_version_minor = %s; '-O2', '-g', '-DNDEBUG', '-fPIC', '-o', 'garplinator.cc.o', '-c', '%s/garply/garplinator.cc' % self.stage.source_path) - gpp('-fPIC', '-O2', '-g', '-DNDEBUG', '-shared', - '-Wl,-soname,libgarply.so', '-o', 'libgarply.so', 'garply.cc.o') - gpp('-O2', '-g', '-DNDEBUG', '-rdynamic', - 'garplinator.cc.o', '-o', 'garplinator', - '-Wl,-rpath,%s' % prefix.lib64, - 'libgarply.so') - copy('libgarply.so', '%s/libgarply.so' % prefix.lib64) + if sys.platform == 'darwin': + gpp('-fPIC', '-O2', '-g', '-DNDEBUG', '-dynamiclib', + '-Wl,-headerpad_max_install_names', '-o', 'libgarply.dylib', + '-install_name', '@rpath/libgarply.dylib', + 'garply.cc.o') + gpp('-O2', '-g', '-DNDEBUG', '-Wl,-search_paths_first', + '-Wl,-headerpad_max_install_names', + 'garplinator.cc.o', '-o', 'garplinator', + '-Wl,-rpath,%s' % prefix.lib64, + 'libgarply.dylib') + mkdirp(prefix.lib64) + copy('libgarply.dylib', '%s/libgarply.dylib' % prefix.lib64) + else: + gpp('-fPIC', '-O2', '-g', '-DNDEBUG', '-shared', + '-Wl,-soname,libgarply.so', + '-o', 'libgarply.so', 'garply.cc.o') + gpp('-O2', '-g', '-DNDEBUG', '-rdynamic', + 'garplinator.cc.o', '-o', 'garplinator', + '-Wl,-rpath,%s' % prefix.lib64, + 'libgarply.so') + mkdirp(prefix.lib64) + copy('libgarply.so', '%s/libgarply.so' % prefix.lib64) copy('garplinator', '%s/garplinator' % prefix.lib64) copy('%s/garply/garply.h' % self.stage.source_path, '%s/garply/garply.h' % prefix.include) diff --git a/var/spack/repos/builtin.mock/packages/quux/package.py b/var/spack/repos/builtin.mock/packages/quux/package.py index 6db243f154..80508d3b55 100644 --- a/var/spack/repos/builtin.mock/packages/quux/package.py +++ b/var/spack/repos/builtin.mock/packages/quux/package.py @@ -6,6 +6,7 @@ from spack import * import os +import sys class Quux(Package): @@ -87,7 +88,6 @@ main() quux_version_h = '''const int quux_version_major = %s; const int quux_version_minor = %s; ''' - mkdirp(prefix.lib64) mkdirp('%s/quux' % prefix.include) with open('%s/quux_version.h' % self.stage.source_path, 'w') as f: f.write(quux_version_h % (self.version[0], self.version[1:])) @@ -98,6 +98,8 @@ const int quux_version_minor = %s; with open('%s/quux/quuxifier.cc' % self.stage.source_path, 'w') as f: f.write(quuxifier_cc) gpp = which('/usr/bin/g++') + if sys.platform == 'darwin': + gpp = which('/usr/bin/clang++') gpp('-Dquux_EXPORTS', '-I%s' % self.stage.source_path, '-I%s' % spec['garply'].prefix.include, @@ -110,18 +112,36 @@ const int quux_version_minor = %s; '-O2', '-g', '-DNDEBUG', '-fPIC', '-o', 'quuxifier.cc.o', '-c', 'quux/quuxifier.cc') - gpp('-fPIC', '-O2', '-g', '-DNDEBUG', '-shared', - '-Wl,-soname,libquux.so', '-o', 'libquux.so', 'quux.cc.o', - '-Wl,-rpath,%s:%s::::' % (prefix.lib64, - spec['garply'].prefix.lib64), - '%s/libgarply.so' % spec['garply'].prefix.lib64) - gpp('-O2', '-g', '-DNDEBUG', '-rdynamic', - 'quuxifier.cc.o', '-o', 'quuxifier', - '-Wl,-rpath,%s:%s::::' % (prefix.lib64, - spec['garply'].prefix.lib64), - 'libquux.so', - '%s/libgarply.so' % spec['garply'].prefix.lib64) - copy('libquux.so', '%s/libquux.so' % prefix.lib64) + if sys.platform == 'darwin': + gpp('-fPIC', '-O2', '-g', '-DNDEBUG', + '-dynamiclib', '-Wl,-headerpad_max_install_names', + '-o', 'libquux.dylib', + '-install_name', '@rpath/libcorge.dylib', + 'quux.cc.o', '-Wl,-rpath,%s' % prefix.lib64, + '-Wl,-rpath,%s' % spec['garply'].prefix.lib64, + '%s/libgarply.dylib' % spec['garply'].prefix.lib64) + gpp('-O2', '-g', '-DNDEBUG', + 'quuxifier.cc.o', '-o', 'quuxifier', + '-Wl,-rpath,%s' % prefix.lib64, + '-Wl,-rpath,%s' % spec['garply'].prefix.lib64, + 'libquux.dylib', + '%s/libgarply.dylib' % spec['garply'].prefix.lib64) + mkdirp(prefix.lib64) + copy('libquux.dylib', '%s/libquux.dylib' % prefix.lib64) + else: + gpp('-fPIC', '-O2', '-g', '-DNDEBUG', '-shared', + '-Wl,-soname,libquux.so', '-o', 'libquux.so', 'quux.cc.o', + '-Wl,-rpath,%s:%s::::' % (prefix.lib64, + spec['garply'].prefix.lib64), + '%s/libgarply.so' % spec['garply'].prefix.lib64) + gpp('-O2', '-g', '-DNDEBUG', '-rdynamic', + 'quuxifier.cc.o', '-o', 'quuxifier', + '-Wl,-rpath,%s:%s::::' % (prefix.lib64, + spec['garply'].prefix.lib64), + 'libquux.so', + '%s/libgarply.so' % spec['garply'].prefix.lib64) + mkdirp(prefix.lib64) + copy('libquux.so', '%s/libquux.so' % prefix.lib64) copy('quuxifier', '%s/quuxifier' % prefix.lib64) copy('%s/quux/quux.h' % self.stage.source_path, '%s/quux/quux.h' % prefix.include) diff --git a/var/spack/repos/builtin/packages/abinit/package.py b/var/spack/repos/builtin/packages/abinit/package.py index 6f07ffee81..4378c28213 100644 --- a/var/spack/repos/builtin/packages/abinit/package.py +++ b/var/spack/repos/builtin/packages/abinit/package.py @@ -56,6 +56,9 @@ class Abinit(AutotoolsPackage): variant('hdf5', default=False, description='Enables HDF5+Netcdf4 with MPI. WARNING: experimental') + variant('wannier90', default=False, + description='Enables the Wannier90 library') + # Add dependencies # currently one cannot forward options to virtual packages, see #1712. # depends_on('blas', when='~openmp') @@ -84,6 +87,8 @@ class Abinit(AutotoolsPackage): # Cannot ask for +scalapack if it does not depend on MPI conflicts('+scalapack', when='~mpi') + depends_on("wannier90+shared", when='+wannier90') + # Elpa is a substitute for scalapack and needs mpi # conflicts('+elpa', when='~mpi') # conflicts('+elpa', when='+scalapack') @@ -95,12 +100,25 @@ class Abinit(AutotoolsPackage): options = [] oapp = options.append + if '+wannier90' in spec: + oapp('--with-wannier90-libs=-L{0}' + .format(spec['wannier90'].prefix.lib + ' -lwannier -lm')) + oapp('--with-wannier90-incs=-I{0}' + .format(spec['wannier90'].prefix.modules)) + oapp('--with-wannier90-bins={0}' + .format(spec['wannier90'].prefix.bin)) + oapp('--enable-connectors') + oapp('--with-dft-flavor=wannier90') + if '+mpi' in spec: # MPI version: # let the configure script auto-detect MPI support from mpi_prefix oapp('--with-mpi-prefix={0}'.format(spec['mpi'].prefix)) oapp('--enable-mpi=yes') oapp('--enable-mpi-io=yes') + oapp('MPIFC={0}/mpifc'.format(spec['mpi'].prefix.bin)) + if '~wannier90' in spec: + oapp('--with-dft-flavor=atompaw+libxc') # Activate OpenMP in Abinit Fortran code. if '+openmp' in spec: @@ -129,7 +147,6 @@ class Abinit(AutotoolsPackage): '--with-fft-incs=-I%s' % spec['fftw'].prefix.include, '--with-fft-libs=-L%s %s' % (spec['fftw'].prefix.lib, fftlibs), ]) - oapp('--with-dft-flavor=atompaw+libxc') # LibXC library libxc = spec['libxc:fortran'] diff --git a/var/spack/repos/builtin/packages/abseil-cpp/package.py b/var/spack/repos/builtin/packages/abseil-cpp/package.py index c40b2353bf..24ac21fd63 100644 --- a/var/spack/repos/builtin/packages/abseil-cpp/package.py +++ b/var/spack/repos/builtin/packages/abseil-cpp/package.py @@ -10,10 +10,11 @@ class AbseilCpp(CMakePackage): """Abseil Common Libraries (C++) """ homepage = "https://abseil.io/" - url = "https://github.com/abseil/abseil-cpp/archive/20180600.tar.gz" + url = "https://github.com/abseil/abseil-cpp/archive/20200225.2.tar.gz" maintainers = ['jcftang'] + version('20200225.2', sha256='f41868f7a938605c92936230081175d1eae87f6ea2c248f41077c8f88316f111') version('20200225.1', sha256='0db0d26f43ba6806a8a3338da3e646bb581f0ca5359b3a201d8fb8e4752fd5f8') version('20190808', sha256='8100085dada279bf3ee00cd064d43b5f55e5d913be0dfe2906f06f8f28d5b37e') version('20181200', sha256='e2b53bfb685f5d4130b84c4f3050c81bf48c497614dc85d91dbd3ed9129bce6d') diff --git a/var/spack/repos/builtin/packages/abyss/fix_BloomFilter.hpp.patch b/var/spack/repos/builtin/packages/abyss/fix_BloomFilter.hpp.patch new file mode 100644 index 0000000000..b648cb6122 --- /dev/null +++ b/var/spack/repos/builtin/packages/abyss/fix_BloomFilter.hpp.patch @@ -0,0 +1,11 @@ +--- spack-src/lib/bloomfilter/BloomFilter.hpp.org 2018-10-17 07:04:45.000000000 +0900 ++++ spack-src/lib/bloomfilter/BloomFilter.hpp 2020-07-16 15:41:03.607766127 +0900 +@@ -230,7 +230,7 @@ + + void writeHeader(std::ostream& out) const { + FileHeader header; +- strncpy(header.magic, "BlOOMFXX", 8); ++ memcpy(header.magic, "BlOOMFXX", 8); + char magic[9]; + strncpy(magic, header.magic, 8); + magic[8] = '\0'; diff --git a/var/spack/repos/builtin/packages/abyss/package.py b/var/spack/repos/builtin/packages/abyss/package.py index 339441392d..c7eddfd835 100644 --- a/var/spack/repos/builtin/packages/abyss/package.py +++ b/var/spack/repos/builtin/packages/abyss/package.py @@ -3,9 +3,19 @@ # # SPDX-License-Identifier: (Apache-2.0 OR MIT) +import numbers from spack import * +def is_multiple_32(x): + """multiple of 32 """ + try: + return isinstance(int(x), numbers.Integral) and \ + not isinstance(x, bool) and int(x) % 32 == 0 + except ValueError: + return False + + class Abyss(AutotoolsPackage): """ABySS is a de novo, parallel, paired-end sequence assembler that is designed for short reads. The single-processor version @@ -18,9 +28,8 @@ class Abyss(AutotoolsPackage): version('2.0.2', sha256='d87b76edeac3a6fb48f24a1d63f243d8278a324c9a5eb29027b640f7089422df') version('1.5.2', sha256='8a52387f963afb7b63db4c9b81c053ed83956ea0a3981edcad554a895adf84b1') - variant('maxk', values=int, default=0, - description='''set the maximum k-mer length. - This value must be a multiple of 32''') + variant('maxk', default=128, values=is_multiple_32, + description='set the maximum k-mer length.') depends_on('autoconf', type='build') depends_on('automake', type='build') @@ -48,3 +57,5 @@ class Abyss(AutotoolsPackage): if self.spec['mpi'].name == 'mpich': args.append('--enable-mpich') return args + + patch('fix_BloomFilter.hpp.patch', when='@2.0.0:2.1.4') diff --git a/var/spack/repos/builtin/packages/acl/package.py b/var/spack/repos/builtin/packages/acl/package.py index ea9bf4172f..17f916d297 100644 --- a/var/spack/repos/builtin/packages/acl/package.py +++ b/var/spack/repos/builtin/packages/acl/package.py @@ -24,6 +24,10 @@ class Acl(AutotoolsPackage): depends_on('automake', type='build') depends_on('libtool', type='build') depends_on('attr') + depends_on('gettext') + + def setup_build_environment(self, env): + env.append_flags('LDFLAGS', '-lintl') def autoreconf(self, spec, prefix): bash = which('bash') diff --git a/var/spack/repos/builtin/packages/activeharmony/fix_logical_bug_in_slave_list_parsing.patch b/var/spack/repos/builtin/packages/activeharmony/fix_logical_bug_in_slave_list_parsing.patch new file mode 100644 index 0000000000..08141143d9 --- /dev/null +++ b/var/spack/repos/builtin/packages/activeharmony/fix_logical_bug_in_slave_list_parsing.patch @@ -0,0 +1,29 @@ +diff --git a/code-server/code_generator.cxx b/code-server/code_generator.cxx +index df25400..1c213f7 100644 +--- a/code-server/code_generator.cxx ++++ b/code-server/code_generator.cxx +@@ -574,13 +574,13 @@ int parse_slave_list(const char* hostlist) + } + + // Skip leading whitespace. +- while (head < tail && (head == '\0' || isspace(*head))) { ++ while (head < tail && (*head == '\0' || isspace(*head))) { + ++head; + } + host_ptr = head; + + // Find host boundary whitespace. +- while (head < tail && (head != '\0' && !isspace(*head))) { ++ while (head < tail && (*head != '\0' && !isspace(*head))) { + ++head; + } + host = string(host_ptr, head++); +@@ -596,7 +596,7 @@ int parse_slave_list(const char* hostlist) + } + + // Skip trailing whitespace. +- while (head < tail && (head == '\0' || isspace(*head))) { ++ while (head < tail && (*head == '\0' || isspace(*head))) { + ++head; + } + diff --git a/var/spack/repos/builtin/packages/activeharmony/package.py b/var/spack/repos/builtin/packages/activeharmony/package.py index 179a5a68cc..45a55e5600 100644 --- a/var/spack/repos/builtin/packages/activeharmony/package.py +++ b/var/spack/repos/builtin/packages/activeharmony/package.py @@ -6,14 +6,33 @@ from spack import * -class Activeharmony(Package): +class Activeharmony(MakefilePackage): """Active Harmony: a framework for auto-tuning (the automated search for - values to improve the performance of a target application).""" + values to improve the performance of a target application).""" + homepage = "http://www.dyninst.org/harmony" url = "http://www.dyninst.org/sites/default/files/downloads/harmony/ah-4.5.tar.gz" - version('4.5', sha256='31d9990c8dd36724d336707d260aa4d976e11eaa899c4c7cc11f80a56cdac684') + version('4.6.0', sha256='9ce5009cfd8e2f4cf5f3536e1fea9993414fc25920fc90d0a2cb56f044787dbb') + version('4.5', sha256='31d9990c8dd36724d336707d260aa4d976e11eaa899c4c7cc11f80a56cdac684') + + patch('fix_logical_bug_in_slave_list_parsing.patch', sha256='3e000616f84de80b262efcae7559d65eed0efcd53e915580dab63b0ffbbb8bf2', when='@4.6.0') + + cflags = ['-O3', '-fPIC'] + def setup_build_environment(self, spack_env): + spack_env.set('CFLAGS', ' '.join(self.cflags)) + + @when('@:4.5') def install(self, spec, prefix): - make("CFLAGS=-O3") make("install", 'PREFIX=%s' % prefix) + + @when('@4.6.0:') + def install(self, spec, prefix): + make("install") + install_tree("./bin", prefix.bin) + install("./src/harmony.cfg", prefix.bin) + install_tree("./lib", prefix.lib) + install_tree("./libexec", prefix.libexec) + install_tree("./include", prefix.include) + install_tree("./doc", prefix.doc) diff --git a/var/spack/repos/builtin/packages/acts/package.py b/var/spack/repos/builtin/packages/acts/package.py index 849c326b18..3c792e1829 100644 --- a/var/spack/repos/builtin/packages/acts/package.py +++ b/var/spack/repos/builtin/packages/acts/package.py @@ -6,7 +6,7 @@ from spack import * -class Acts(CMakePackage): +class Acts(CMakePackage, CudaPackage): """ A Common Tracking Software (Acts) @@ -35,6 +35,14 @@ class Acts(CMakePackage): # Supported Acts versions version('master', branch='master') + version('0.29.0', commit='33aa3e701728112e8908223c4a7fd521907c8ea4') + version('0.28.0', commit='55626b7401eeb93fc562e79bcf385f0ad0ac48bf') + version('0.27.1', commit='8ba3010a532137bc0ab6cf83a38b483cef646a01') + version('0.27.0', commit='f7b1a1c27d5a95d08bb67236ad0e117fcd1c679f') + version('0.26.0', commit='cf542b108b31fcc349fc18fb0466f889e4e42aa6') + version('0.25.2', commit='76bf1f3e4be51d4d27126b473a2caa8d8a72b320') + version('0.25.1', commit='6e8a1ea6d2c7385a78e3e190efb2a8a0c1fa957f') + version('0.25.0', commit='0aca171951a214299e8ff573682b1c5ecec63d42') version('0.24.0', commit='ef4699c8500bfea59a5fe88bed67fde2f00f0adf') version('0.23.0', commit='dc443dd7e663bc4d7fb3c1e3f1f75aaf57ffd4e4') version('0.22.1', commit='ca1b8b1645db6b552f44c48d2ff34c8c29618f3a') @@ -90,10 +98,11 @@ class Acts(CMakePackage): # Build dependencies depends_on('boost @1.62:1.69.99 +program_options +test', when='@:0.10.3') - depends_on('boost @1.69: +filesystem +program_options +test', when='@0.10.4:') + depends_on('boost @1.69: +filesystem +program_options +test', when='@0.10.4:0.25') + depends_on('boost @1.69: +program_options +test', when='@0.26:') depends_on('cmake @3.11:', type='build') - depends_on('dd4hep @1.10: +xercesc', when='+dd4hep') - depends_on('dd4hep @1.10: +geant4 +xercesc', when='+dd4hep +geant4') + depends_on('dd4hep @1.10:', when='+dd4hep') + depends_on('dd4hep @1.10: +geant4', when='+dd4hep +geant4') depends_on('eigen @3.2.9:', type='build') depends_on('geant4', when='+geant4') depends_on('hepmc3@3.1:', when='+hepmc3') @@ -141,6 +150,7 @@ class Acts(CMakePackage): args = [ cmake_variant("BENCHMARKS", "benchmarks"), + cmake_variant("CUDA_PLUGIN", "cuda"), cmake_variant("DD4HEP_PLUGIN", "dd4hep"), cmake_variant("DIGITIZATION_PLUGIN", "digitization"), cmake_variant("EXAMPLES", "examples"), @@ -157,6 +167,10 @@ class Acts(CMakePackage): cmake_variant("TGEO_PLUGIN", "tgeo") ] + 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)) diff --git a/var/spack/repos/builtin/packages/advancecomp/package.py b/var/spack/repos/builtin/packages/advancecomp/package.py index b429ceda91..149ff1bdb2 100644 --- a/var/spack/repos/builtin/packages/advancecomp/package.py +++ b/var/spack/repos/builtin/packages/advancecomp/package.py @@ -22,3 +22,4 @@ class Advancecomp(AutotoolsPackage): depends_on('automake', type='build') depends_on('libtool', type='build') depends_on('m4', type='build') + depends_on('zlib', type='link') diff --git a/var/spack/repos/builtin/packages/aegean/package.py b/var/spack/repos/builtin/packages/aegean/package.py index 9198280e9a..eea46740a0 100644 --- a/var/spack/repos/builtin/packages/aegean/package.py +++ b/var/spack/repos/builtin/packages/aegean/package.py @@ -21,4 +21,7 @@ class Aegean(MakefilePackage): def edit(self, spec, prefix): makefile = FileFilter('Makefile') + if spec.target.family == 'aarch64': + makefile.filter('-m64', '') + makefile.filter('/usr/local', prefix) diff --git a/var/spack/repos/builtin/packages/alluxio/package.py b/var/spack/repos/builtin/packages/alluxio/package.py index d608af7a05..a0c9be78b0 100644 --- a/var/spack/repos/builtin/packages/alluxio/package.py +++ b/var/spack/repos/builtin/packages/alluxio/package.py @@ -7,17 +7,20 @@ from spack import * class Alluxio(Package): - """ - Alluxio (formerly known as Tachyon) is a virtual distributed storage + """Alluxio (formerly known as Tachyon) is a virtual distributed storage system. It bridges the gap between computation frameworks and storage systems, enabling computation applications to connect to numerous - storage systems through a common interface. - """ + storage systems through a common interface.""" - homepage = "https://github.com/Alluxio/alluxio" - url = "https://github.com/Alluxio/alluxio/archive/v2.1.0.tar.gz" + homepage = "https://www.alluxio.io" + url = "https://downloads.alluxio.io/downloads/files/2.2.1/alluxio-2.2.1-bin.tar.gz" + list_url = "https://downloads.alluxio.io/downloads/files" + list_depth = 1 - version('2.1.0', sha256='c8b5b7848488e0ac10b093eea02ef05fa822250669d184291cc51b2f8aac253e') + version('2.2.1', sha256='0c6b0afcc4013437afb8113e1dfda9777561512269ea349c7fbf353dc0efd28a') + version('2.2.0', sha256='635847ea1a0f8ad04c99518620de035d4962fbfa9e5920bb0911ccf8e5ea82fc') + + depends_on('java@8', type='run') def install(self, spec, prefix): install_tree('.', prefix) diff --git a/var/spack/repos/builtin/packages/aluminum/package.py b/var/spack/repos/builtin/packages/aluminum/package.py index c5d6a45ed8..ee060b8368 100644 --- a/var/spack/repos/builtin/packages/aluminum/package.py +++ b/var/spack/repos/builtin/packages/aluminum/package.py @@ -7,7 +7,7 @@ import os from spack import * -class Aluminum(CMakePackage): +class Aluminum(CMakePackage, CudaPackage): """Aluminum provides a generic interface to high-performance communication libraries, with a focus on allreduce algorithms. Blocking and non-blocking algorithms and GPU-aware @@ -20,6 +20,8 @@ class Aluminum(CMakePackage): git = "https://github.com/LLNL/Aluminum.git" version('master', branch='master') + version('0.5.0', sha256='dc365a5849eaba925355a8efb27005c5f22bcd1dca94aaed8d0d29c265c064c1') + version('0.4.0', sha256='4d6fab5481cc7c994b32fb23a37e9ee44041a9f91acf78f981a97cb8ef57bb7d') version('0.3.3', sha256='26e7f263f53c6c6ee0fe216e981a558dfdd7ec997d0dd2a24285a609a6c68f3b') version('0.3.2', sha256='09b6d1bcc02ac54ba269b1123eee7be20f0104b93596956c014b794ba96b037f') version('0.2.1-1', sha256='066b750e9d1134871709a3e2414b96b166e0e24773efc7d512df2f1d96ee8eef') @@ -27,12 +29,13 @@ class Aluminum(CMakePackage): version('0.2', sha256='fc8f06c6d8faab17a2aedd408d3fe924043bf857da1094d5553f35c4d2af893b') version('0.1', sha256='3880b736866e439dd94e6a61eeeb5bb2abccebbac82b82d52033bc6c94950bdb') - variant('gpu', default=False, description='Builds with support for GPUs via CUDA and cuDNN') variant('nccl', default=False, description='Builds with support for NCCL communication lib') - variant('mpi_cuda', default=False, description='Builds with support for MPI-CUDA enabled library') + variant('ht', default=False, description='Builds with support for host-enabled MPI' + ' communication of accelerator data') + variant('cuda_rma', default=False, description='Builds with support for CUDA intra-node ' + ' Put/Get and IPC RMA functionality') - depends_on('cmake@3.9.0:', type='build') - depends_on('cuda', when='+gpu') + depends_on('cmake@3.16.0:', type='build') depends_on('mpi') depends_on('nccl', when='+nccl') depends_on('hwloc') @@ -43,10 +46,20 @@ class Aluminum(CMakePackage): def cmake_args(self): spec = self.spec args = [ - '-DALUMINUM_ENABLE_CUDA:BOOL=%s' % ('+gpu' in spec), - '-DALUMINUM_ENABLE_MPI_CUDA:BOOL=%s' % ('+mpi_cuda' in spec), + '-DALUMINUM_ENABLE_CUDA:BOOL=%s' % ('+cuda' in spec), '-DALUMINUM_ENABLE_NCCL:BOOL=%s' % ('+nccl' in spec)] + if '@0.5:': + args.extend([ + '-DALUMINUM_ENABLE_HOST_TRANSFER:BOOL=%s' % ('+ht' in spec), + '-DALUMINUM_ENABLE_MPI_CUDA:BOOL=%s' % + ('+cuda_rma' in spec), + '-DALUMINUM_ENABLE_MPI_CUDA_RMA:BOOL=%s' % + ('+cuda_rma' in spec)]) + else: + args.extend([ + '-DALUMINUM_ENABLE_MPI_CUDA:BOOL=%s' % ('+ht' in spec)]) + # Add support for OS X to find OpenMP (LLVM installed via brew) if self.spec.satisfies('%clang platform=darwin'): clang = self.compiler.cc diff --git a/var/spack/repos/builtin/packages/amber/package.py b/var/spack/repos/builtin/packages/amber/package.py index 481377047c..9b772e0a6a 100644 --- a/var/spack/repos/builtin/packages/amber/package.py +++ b/var/spack/repos/builtin/packages/amber/package.py @@ -9,28 +9,41 @@ import shutil class Amber(Package, CudaPackage): - """Amber is a suite of biomolecular simulation programs. - - Note: A manual download is required for Amber. - Spack will search your current directory for the download file. - Alternatively, add this file to a mirror so that Spack can find it. + """Amber is a suite of biomolecular simulation programs together + with Amber tools. + + Note: The version number is composed of the Amber version (major) + and the tools version (minor). A manual download is required for + both Amber and Amber tools. + Spack will search your current directory for the download files. + Alternatively, add the files to a mirror so that Spack can find them. For instructions on how to set up a mirror, see http://spack.readthedocs.io/en/latest/mirrors.html""" homepage = "http://ambermd.org/" - url = "file://{0}/Amber18.tar.bz2".format(os.getcwd()) + url = "file://{0}/Amber18.tar.bz2".format(os.getcwd()) maintainers = ['hseara'] - version('18', sha256='2060897c0b11576082d523fb63a51ba701bc7519ff7be3d299d5ec56e8e6e277') - version('16', sha256='3b7ef281fd3c46282a51b6a6deed9ed174a1f6d468002649d84bfc8a2577ae5d') + def url_for_version(self, version): + url = "file://{0}/Amber{1}.tar.bz2".format( + os.getcwd(), version.up_to(1)) + return url + + version( + '18.20', sha256='2060897c0b11576082d523fb63a51ba701bc7519ff7be3d299d5ec56e8e6e277') + version( + '18.19', sha256='2060897c0b11576082d523fb63a51ba701bc7519ff7be3d299d5ec56e8e6e277') + version( + '16.16', sha256='3b7ef281fd3c46282a51b6a6deed9ed174a1f6d468002649d84bfc8a2577ae5d') resources = [ # [version amber, version ambertools , sha256sum] + ('18', '20', 'b1e1f8f277c54e88abc9f590e788bbb2f7a49bcff5e8d8a6eacfaf332a4890f9'), ('18', '19', '0c86937904854b64e4831e047851f504ec45b42e593db4ded92c1bee5973e699'), ('16', '16', '7b876afe566e9dd7eb6a5aa952a955649044360f15c1f5d4d91ba7f41f3105fa'), ] for ver, ambertools_ver, checksum in resources: - resource(when='@{0}'.format(ver), + resource(when='@{0}.{1}'.format(ver, ambertools_ver), name='AmberTools', url='file://{0}/AmberTools{1}.tar.bz2'.format(os.getcwd(), ambertools_ver), @@ -100,10 +113,14 @@ class Amber(Package, CudaPackage): depends_on('cuda@7.5.18', when='@:16+cuda') # conflicts - conflicts('+x11', when='platform=cray', msg='x11 amber applications not available for cray') - conflicts('+openmp', when='%clang', msg='OpenMP optimizations not available for the clang compiler') - conflicts('+openmp', when='%apple-clang', msg='OpenMP optimizations not available for the Apple clang compiler') - conflicts('+openmp', when='%pgi', msg='OpenMP optimizations not available for the pgi compiler') + conflicts('+x11', when='platform=cray', + msg='x11 amber applications not available for cray') + conflicts('+openmp', when='%clang', + msg='OpenMP not available for the clang compiler') + conflicts('+openmp', when='%apple-clang', + msg='OpenMP not available for the Apple clang compiler') + conflicts('+openmp', when='%pgi', + msg='OpenMP not available for the pgi compiler') def setup_build_environment(self, env): amber_src = self.stage.source_path diff --git a/var/spack/repos/builtin/packages/amdblis/package.py b/var/spack/repos/builtin/packages/amdblis/package.py index 706e7f6bd2..82d1f18938 100644 --- a/var/spack/repos/builtin/packages/amdblis/package.py +++ b/var/spack/repos/builtin/packages/amdblis/package.py @@ -20,4 +20,5 @@ class Amdblis(BlisBase): url = "https://github.com/amd/blis/archive/2.1.tar.gz" git = "https://github.com/amd/blis.git" + version('2.2', sha256='e1feb60ac919cf6d233c43c424f6a8a11eab2c62c2c6e3f2652c15ee9063c0c9') version('2.1', sha256='3b1d611d46f0f13b3c0917e27012e0f789b23dbefdddcf877b20327552d72fb3') diff --git a/var/spack/repos/builtin/packages/amrex/package.py b/var/spack/repos/builtin/packages/amrex/package.py index f6cb778f4b..d8e2ea6b1c 100644 --- a/var/spack/repos/builtin/packages/amrex/package.py +++ b/var/spack/repos/builtin/packages/amrex/package.py @@ -18,6 +18,8 @@ class Amrex(CMakePackage): maintainers = ['mic84', 'asalmgren'] version('develop', branch='development') + version('20.08', sha256='a202430cd8dbef2de29b20fe9b5881cc58ee762326556ec3c0ad9c3f85ddfc2f') + version('20.07', sha256='c386f566f4c57ee56b5630f79ce2c6117d5a612a4aab69b7b26e48d577251165') version('20.06', sha256='be2f2a5107111fcb8b3928b76024b370c7cb01a9e5dd79484cf7fcf59d0b4858') version('20.05', sha256='97d753bb75e845a0a959ec1a044a48e6adb86dd008b5e29ce7a01d49ed276338') version('20.04', sha256='a7ece54d5d89cc00fd555551902a0d4d0fb50db15d2600f441353eed0dddd83b') @@ -57,6 +59,12 @@ class Amrex(CMakePackage): values=('Debug', 'Release')) variant('sundials', default=False, description='Build AMReX with SUNDIALS support') + variant('hdf5', default=False, + description='Enable HDF5-based I/O') + variant('hypre', default=False, + description='Enable Hypre interfaces') + variant('petsc', default=False, + description='Enable PETSc interfaces') # Build dependencies depends_on('mpi', when='+mpi') @@ -68,6 +76,24 @@ class Amrex(CMakePackage): conflicts('%apple-clang') conflicts('%clang') + # Check options compatibility + conflicts('+sundials', when='~fortran', + msg='AMReX SUNDIALS support needs AMReX Fortran API (+fortran)') + conflicts('+hdf5', when='@:20.06', + msg='AMReX HDF5 support needs AMReX newer than version 20.06') + conflicts('+hypre', when='@:20.06', + msg='AMReX Hypre support needs AMReX newer than version 20.06') + conflicts('+hypre', when='~fortran', + msg='AMReX Hypre support needs AMReX Fortran API (+fortran)') + conflicts('+hypre', when='~linear_solvers', + msg='AMReX Hypre support needs variant +linear_solvers') + conflicts('+petsc', when='@:20.06', + msg='AMReX PETSc support needs AMReX newer than version 20.06') + conflicts('+petsc', when='~fortran', + msg='AMReX PETSc support needs AMReX Fortran API (+fortran)') + conflicts('+petsc', when='~linear_solvers', + msg='AMReX PETSc support needs variant +linear_solvers') + def url_for_version(self, version): if version >= Version('20.05'): url = "https://github.com/AMReX-Codes/amrex/releases/download/{0}/amrex-{0}.tar.gz" @@ -89,11 +115,16 @@ class Amrex(CMakePackage): self.spec.variants['precision'].value.upper(), '-DENABLE_EB:BOOL=%s' % self.cmake_is_on('+eb'), '-DXSDK_ENABLE_Fortran:BOOL=%s' % self.cmake_is_on('+fortran'), + '-DENABLE_FORTRAN_INTERFACES:BOOL=%s' + % self.cmake_is_on('+fortran'), '-DENABLE_LINEAR_SOLVERS:BOOL=%s' % self.cmake_is_on('+linear_solvers'), '-DENABLE_AMRDATA:BOOL=%s' % self.cmake_is_on('+amrdata'), '-DENABLE_PARTICLES:BOOL=%s' % self.cmake_is_on('+particles'), - '-DENABLE_SUNDIALS:BOOL=%s' % self.cmake_is_on('+sundials') + '-DENABLE_SUNDIALS:BOOL=%s' % self.cmake_is_on('+sundials'), + '-DENABLE_HDF5:BOOL=%s' % self.cmake_is_on('+hdf5'), + '-DENABLE_HYPRE:BOOL=%s' % self.cmake_is_on('+hypre'), + '-DENABLE_PETSC:BOOL=%s' % self.cmake_is_on('+petsc'), ] if self.spec.satisfies('%fj'): args.append('-DCMAKE_Fortran_MODDIR_FLAG=-M') diff --git a/var/spack/repos/builtin/packages/amrvis/package.py b/var/spack/repos/builtin/packages/amrvis/package.py index 51c5787d4b..0db77c9649 100644 --- a/var/spack/repos/builtin/packages/amrvis/package.py +++ b/var/spack/repos/builtin/packages/amrvis/package.py @@ -16,7 +16,7 @@ class Amrvis(MakefilePackage): homepage = "https://github.com/AMReX-Codes/Amrvis" git = "https://github.com/AMReX-Codes/Amrvis.git" - version('master', tag='master') + version('main', tag='main') variant( 'dims', @@ -69,10 +69,21 @@ class Amrvis(MakefilePackage): # Need to clone AMReX into Amrvis because Amrvis uses AMReX's source resource(name='amrex', git='https://github.com/AMReX-Codes/amrex.git', - tag='master', + tag='development', placement='amrex') def edit(self, spec, prefix): + # libquadmath is only available x86_64 and powerle + # https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85440 + if self.spec.target.family not in ['x86_64', 'ppc64le']: + comps = join_path('amrex', 'Tools', 'GNUMake', 'comps') + maks = [ + join_path(comps, 'gnu.mak'), + join_path(comps, 'llvm.mak'), + ] + for mak in maks: + filter_file('-lquadmath', '', mak) + # Set all available makefile options to values we want makefile = FileFilter('GNUmakefile') makefile.filter( diff --git a/var/spack/repos/builtin/packages/apcomp/package.py b/var/spack/repos/builtin/packages/apcomp/package.py new file mode 100644 index 0000000000..3e66038030 --- /dev/null +++ b/var/spack/repos/builtin/packages/apcomp/package.py @@ -0,0 +1,182 @@ +# 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 * +import os +import socket +import llnl.util.tty as tty + + +def cmake_cache_entry(name, value, vtype=None): + """ + Helper that creates CMake cache entry strings used in + 'host-config' files. + """ + if vtype is None: + if value == "ON" or value == "OFF": + vtype = "BOOL" + else: + vtype = "PATH" + return 'set({0} "{1}" CACHE {2} "")\n\n'.format(name, value, vtype) + + +class Apcomp(Package): + """A multi use-case image compositor""" + + homepage = 'https://github.com/Alpine-DAV/ap_compositor' + git = 'https://github.com/Alpine-DAV/ap_compositor.git' + url = "https://github.com/Alpine-DAV/ap_compositor/releases/download/v0.0.1/apcomp-v0.0.1.tar.gz" + + maintainers = ['mclarsen', 'cyrush'] + + version('master', branch='master', submodules='True') + version('0.0.1', sha256="cbf85fe58d5d5bc2f468d081386cc8b79861046b3bb7e966edfa3f8e95b998b2") + + variant('openmp', default=True, description='Build with openmp support') + variant('mpi', default=True, description='Build with MPI support') + variant('shared', default=True, description='Build Shared Library') + + depends_on('cmake@3.9:', type='build') + depends_on("mpi", when="+mpi") + + root_cmakelists_dir = 'src' + + def install(self, spec, prefix): + """ + Build and install APComp + """ + with working_dir('spack-build', create=True): + host_cfg_fname = self.create_host_config(spec, + prefix) + cmake_args = [] + # if we have a static build, we need to avoid any of + # spack's default cmake settings related to rpaths + # (see: https://github.com/LLNL/spack/issues/2658) + if "+shared" in spec: + cmake_args.extend(std_cmake_args) + else: + for arg in std_cmake_args: + if arg.count("RPATH") == 0: + cmake_args.append(arg) + cmake_args.extend(["-C", host_cfg_fname, "../src"]) + print("Configuring APComp...") + cmake(*cmake_args) + print("Building APComp...") + make() + print("Installing APComp...") + make("install") + # install copy of host config for provenance + install(host_cfg_fname, prefix) + + def create_host_config(self, spec, prefix): + """ + This method creates a 'host-config' file that specifies + all of the options used to configure and build apcomp. + """ + + ####################### + # Compiler Info + ####################### + c_compiler = env["SPACK_CC"] + cpp_compiler = env["SPACK_CXX"] + + ####################################################################### + # We directly fetch the names of the actual compilers to create a + # 'host config' file that works outside of the spack install env. + ####################################################################### + + sys_type = spec.architecture + # if on llnl systems, we can use the SYS_TYPE + if "SYS_TYPE" in env: + sys_type = env["SYS_TYPE"] + + ############################################## + # Find and record what CMake is used + ############################################## + + if "+cmake" in spec: + cmake_exe = spec['cmake'].command.path + else: + cmake_exe = which("cmake") + if cmake_exe is None: + msg = 'failed to find CMake (and cmake variant is off)' + raise RuntimeError(msg) + cmake_exe = cmake_exe.path + + host_cfg_fname = "%s-%s-%s-apcomp.cmake" % (socket.gethostname(), + sys_type, + spec.compiler) + + cfg = open(host_cfg_fname, "w") + cfg.write("##################################\n") + cfg.write("# spack generated host-config\n") + cfg.write("##################################\n") + cfg.write("# {0}-{1}\n".format(sys_type, spec.compiler)) + cfg.write("##################################\n\n") + + # Include path to cmake for reference + cfg.write("# cmake from spack \n") + cfg.write("# cmake executable path: %s\n\n" % cmake_exe) + + ####################### + # Compiler Settings + ####################### + cfg.write("#######\n") + cfg.write("# using %s compiler spec\n" % spec.compiler) + cfg.write("#######\n\n") + cfg.write("# c compiler used by spack\n") + cfg.write(cmake_cache_entry("CMAKE_C_COMPILER", c_compiler)) + cfg.write("# cpp compiler used by spack\n") + cfg.write(cmake_cache_entry("CMAKE_CXX_COMPILER", cpp_compiler)) + + # shared vs static libs + if "+shared" in spec: + cfg.write(cmake_cache_entry("BUILD_SHARED_LIBS", "ON")) + else: + cfg.write(cmake_cache_entry("BUILD_SHARED_LIBS", "OFF")) + + if "+openmp" in spec: + cfg.write(cmake_cache_entry("ENABLE_OPENMP", "ON")) + else: + cfg.write(cmake_cache_entry("ENABLE_OPENMP", "OFF")) + + if "+mpi" in spec: + mpicc_path = spec['mpi'].mpicc + mpicxx_path = spec['mpi'].mpicxx + mpifc_path = spec['mpi'].mpifc + # if we are using compiler wrappers on cray systems + # use those for mpi wrappers, b/c spec['mpi'].mpicxx + # etc make return the spack compiler wrappers + # which can trip up mpi detection in CMake 3.14 + if cpp_compiler == "CC": + mpicc_path = "cc" + mpicxx_path = "CC" + mpifc_path = "ftn" + cfg.write(cmake_cache_entry("ENABLE_MPI", "ON")) + cfg.write(cmake_cache_entry("MPI_C_COMPILER", mpicc_path)) + cfg.write(cmake_cache_entry("MPI_CXX_COMPILER", mpicxx_path)) + cfg.write(cmake_cache_entry("MPI_Fortran_COMPILER", mpifc_path)) + mpiexe_bin = join_path(spec['mpi'].prefix.bin, 'mpiexec') + if os.path.isfile(mpiexe_bin): + # starting with cmake 3.10, FindMPI expects MPIEXEC_EXECUTABLE + # vs the older versions which expect MPIEXEC + if self.spec["cmake"].satisfies('@3.10:'): + cfg.write(cmake_cache_entry("MPIEXEC_EXECUTABLE", + mpiexe_bin)) + else: + cfg.write(cmake_cache_entry("MPIEXEC", + mpiexe_bin)) + else: + cfg.write(cmake_cache_entry("ENABLE_MPI", "OFF")) + + cfg.write("##################################\n") + cfg.write("# end spack generated host-config\n") + cfg.write("##################################\n") + cfg.close() + + host_cfg_fname = os.path.abspath(host_cfg_fname) + tty.info("spack generated conduit host-config file: " + host_cfg_fname) + return host_cfg_fname diff --git a/var/spack/repos/builtin/packages/aperture-photometry/package.py b/var/spack/repos/builtin/packages/aperture-photometry/package.py index 3de6e1d8d7..db2532ed92 100644 --- a/var/spack/repos/builtin/packages/aperture-photometry/package.py +++ b/var/spack/repos/builtin/packages/aperture-photometry/package.py @@ -13,6 +13,7 @@ class AperturePhotometry(Package): homepage = "http://www.aperturephotometry.org/aptool/" url = "http://www.aperturephotometry.org/aptool/wp-content/plugins/download-monitor/download.php?id=1" + version('2.8.4', '28ae136c708a3ebcb83632230e119a03ca1a65499006ab69dc76e21b4921f465', extension='tar.gz') version('2.8.2', 'cb29eb39a630dc5d17c02fb824c69571fe1870a910a6acf9115c5f76fd89dd7e', extension='tar.gz') depends_on('java') diff --git a/var/spack/repos/builtin/packages/apex/package.py b/var/spack/repos/builtin/packages/apex/package.py index edf8ef7fc2..dfc9c55c50 100644 --- a/var/spack/repos/builtin/packages/apex/package.py +++ b/var/spack/repos/builtin/packages/apex/package.py @@ -12,9 +12,9 @@ class Apex(CMakePackage): homepage = "http://github.com/khuck/xpress-apex" url = "http://github.com/khuck/xpress-apex/archive/v0.1.tar.gz" - version('0.1', sha256='bb0be37f8f8133fe492998515bcf66a4df452c28a995d317228fbed9b18e6a92') + version('0.1', sha256='efd10f38a61ebdb9f8adee9dc84acaee22d065b2e6eea1888872a7bfca0f4495') - depends_on("binutils+libiberty") + depends_on("binutils+libiberty@:2.33.1") depends_on("boost@1.54:") depends_on('cmake@2.8.12:', type='build') depends_on("activeharmony@4.5:") diff --git a/var/spack/repos/builtin/packages/apple-libunwind/package.py b/var/spack/repos/builtin/packages/apple-libunwind/package.py index 9d1db5cca8..680560a99d 100644 --- a/var/spack/repos/builtin/packages/apple-libunwind/package.py +++ b/var/spack/repos/builtin/packages/apple-libunwind/package.py @@ -19,7 +19,6 @@ class AppleLibunwind(Package): # Darwin must be expressed by listing a conflict with every # platform that isn't Darwin/macOS conflicts('platform=linux') - conflicts('platform=bgq') conflicts('platform=cray') # Override the fetcher method to throw a useful error message; diff --git a/var/spack/repos/builtin/packages/ascent/package.py b/var/spack/repos/builtin/packages/ascent/package.py index 3b45c69694..158f76f298 100644 --- a/var/spack/repos/builtin/packages/ascent/package.py +++ b/var/spack/repos/builtin/packages/ascent/package.py @@ -35,22 +35,21 @@ class Ascent(Package, CudaPackage): homepage = "https://github.com/Alpine-DAV/ascent" git = "https://github.com/Alpine-DAV/ascent.git" - url = "https://github.com/Alpine-DAV/ascent/releases/download/v0.5.0/ascent-v0.5.0-src-with-blt.tar.gz" + url = "https://github.com/Alpine-DAV/ascent/releases/download/v0.5.1/ascent-v0.5.1-src-with-blt.tar.gz" maintainers = ['cyrush'] version('develop', branch='develop', - submodules=True) - - version('0.5.0', sha256='2837b7371db3ac1bcc31a479d7cf0eb62a503cacadfa4187061502b3c4a89fa0') + submodules=True, + preferred=True) ########################################################################### # package variants ########################################################################### variant("shared", default=True, description="Build Ascent as shared libs") - variant("test", default=True, description='Enable Ascent unit tests') + variant('test', default=True, description='Enable Ascent unit tests') variant("mpi", default=True, description="Build Ascent MPI Support") variant("serial", default=True, description="build serial (non-mpi) libraries") @@ -68,11 +67,15 @@ class Ascent(Package, CudaPackage): variant("cuda", default=False, description="Build cuda support") variant("mfem", default=False, description="Build MFEM filter support") variant("adios", default=False, description="Build Adios filter support") + variant("dray", default=False, description="Build with Devil Ray support") # variants for dev-tools (docs, etc) - variant("doc", default=False, description="Build Conduit's documentation") + variant("doc", default=False, description="Build Ascent's documentation") - ########################################################################### + # variant for BabelFlow runtime + variant("babelflow", default=False, description="Build with BabelFlow") + + ########################################################################## # package dependencies ########################################################################### @@ -102,29 +105,54 @@ class Ascent(Package, CudaPackage): depends_on("mpi", when="+mpi") depends_on("py-mpi4py", when="+mpi+python+shared") + ####################### + # BabelFlow + ####################### + depends_on('babelflow@develop', when='+babelflow+mpi') + depends_on('parallelmergetree@develop', when='+babelflow+mpi') + ############################# # TPLs for Runtime Features ############################# - depends_on("vtk-h@0.5.0", when="+vtkh") - depends_on("vtk-h@0.5.0~openmp", when="+vtkh~openmp") - depends_on("vtk-h@0.5.0+cuda+openmp", when="+vtkh+cuda+openmp") - depends_on("vtk-h@0.5.0+cuda~openmp", when="+vtkh+cuda~openmp") + depends_on("vtk-h", when="+vtkh") + depends_on("vtk-h~openmp", when="+vtkh~openmp") + depends_on("vtk-h+cuda+openmp", when="+vtkh+cuda+openmp") + depends_on("vtk-h+cuda~openmp", when="+vtkh+cuda~openmp") - depends_on("vtk-h@0.5.0~shared", when="~shared+vtkh") - depends_on("vtk-h@0.5.0~shared~openmp", when="~shared+vtkh~openmp") - depends_on("vtk-h@0.5.0~shared+cuda", when="~shared+vtkh+cuda") - depends_on("vtk-h@0.5.0~shared+cuda~openmp", when="~shared+vtkh+cuda~openmp") + depends_on("vtk-h~shared", when="~shared+vtkh") + depends_on("vtk-h~shared~openmp", when="~shared+vtkh~openmp") + depends_on("vtk-h~shared+cuda", when="~shared+vtkh+cuda") + depends_on("vtk-h~shared+cuda~openmp", when="~shared+vtkh+cuda~openmp") # mfem - depends_on("mfem+threadsafe+shared+mpi+conduit", when="+shared+mfem+mpi") - depends_on("mfem+threadsafe~shared+mpi+conduit", when="~shared+mfem+mpi") + depends_on("mfem~threadsafe~openmp+shared+mpi+conduit", when="+shared+mfem+mpi") + depends_on("mfem~threadsafe~openmp~shared+mpi+conduit", when="~shared+mfem+mpi") - depends_on("mfem+threadsafe+shared~mpi+conduit", when="+shared+mfem~mpi") - depends_on("mfem+threadsafe~shared~mpi+conduit", when="~shared+mfem~mpi") + depends_on("mfem~threadsafe~openmp+shared~mpi+conduit", when="+shared+mfem~mpi") + depends_on("mfem~threadsafe~openmp~shared~mpi+conduit", when="~shared+mfem~mpi") depends_on("adios", when="+adios") + # devil ray variants with mpi + # we have to specify both because mfem makes us + depends_on("dray@develop+mpi~test~utils+shared+cuda", when="+dray+mpi+cuda+shared") + depends_on("dray@develop+mpi~test~utils+shared+openmp", when="+dray+mpi+openmp+shared") + depends_on("dray@develop+mpi~test~utils+shared~openmp~cuda", when="+dray+mpi~openmp~cuda+shared") + + depends_on("dray@develop+mpi~test~utils~shared+cuda", when="+dray+mpi+cuda~shared") + depends_on("dray@develop+mpi~test~utils~shared+openmp", when="+dray+mpi+openmp~shared") + depends_on("dray@develop+mpi~test~utils~shared~openmp~cuda", when="+dray+mpi~openmp~cuda~shared") + + # devil ray variants without mpi + depends_on("dray@develop~mpi~test~utils+shared+cuda", when="+dray~mpi+cuda+shared") + depends_on("dray@develop~mpi~test~utils+shared+openmp", when="+dray~mpi+openmp+shared") + depends_on("dray@develop~mpi~test~utils+shared~openmp~cuda", when="+dray~mpi~openmp~cuda+shared") + + depends_on("dray@develop~mpi~test~utils~shared+cuda", when="+dray~mpi+cuda~shared") + depends_on("dray@develop~mpi~test~utils~shared+openmp", when="+dray~mpi+openmp~shared") + depends_on("dray@develop~mpi~test~utils~shared~openmp~cuda", when="+dray~mpi~openmp~cuda~shared") + ####################### # Documentation related ####################### @@ -398,6 +426,16 @@ class Ascent(Package, CudaPackage): else: cfg.write(cmake_cache_entry("MPIEXEC", mpiexe_bin)) + + ################################### + # BABELFLOW (also depends on mpi) + ################################### + if "+babelflow" in spec: + cfg.write(cmake_cache_entry("ENABLE_BABELFLOW", "ON")) + cfg.write(cmake_cache_entry("BabelFlow_DIR", + spec['babelflow'].prefix)) + cfg.write(cmake_cache_entry("PMT_DIR", + spec['parallelmergetree'].prefix)) else: cfg.write(cmake_cache_entry("ENABLE_MPI", "OFF")) @@ -450,6 +488,15 @@ class Ascent(Package, CudaPackage): cfg.write("# mfem not built by spack \n") ####################### + # Devil Ray + ####################### + if "+dray" in spec: + cfg.write("# devil ray from spack \n") + cfg.write(cmake_cache_entry("DRAY_DIR", spec['dray'].prefix)) + else: + cfg.write("# devil ray not built by spack \n") + + ####################### # Adios ####################### diff --git a/var/spack/repos/builtin/packages/aspect/package.py b/var/spack/repos/builtin/packages/aspect/package.py index e3e613d406..08e2b59abd 100644 --- a/var/spack/repos/builtin/packages/aspect/package.py +++ b/var/spack/repos/builtin/packages/aspect/package.py @@ -7,7 +7,7 @@ from spack import * class Aspect(CMakePackage): - """Parallel, extendible finite element code to simulate convection in the + """Parallel and extensible Finite Element code to simulate convection in the Earth's mantle and elsewhere.""" homepage = "https://aspect.geodynamics.org" @@ -17,6 +17,7 @@ class Aspect(CMakePackage): maintainers = ['tjhei'] version('develop', branch='master') + version('2.2.0', sha256='6dc31c4b991c8a96495ba0e9a3c92e57f9305ba94b8dbed3c8c5cfbab91ec5c1') version('2.1.0', sha256='bd574d60ed9df1f4b98e68cd526a074d0527c0792763187c9851912327d861a3') version('2.0.1', sha256='0bf5600c42afce9d39c1d285b0654ecfdeb0f30e9f3421651c95f54ca01ac165') version('2.0.0', sha256='d485c07f54248e824bdfa35f3eec8971b65e8b7114552ffa2c771bc0dede8cc0') @@ -26,9 +27,11 @@ class Aspect(CMakePackage): values=('Debug', 'Release')) variant('gui', default=False, description='Enable the deal.II parameter GUI') variant('fpe', default=False, description='Enable floating point exception checks') + variant('opendap', default=False, description='Enable OPeNDAP support for remote file access') depends_on('dealii+p4est+trilinos+mpi') depends_on('dealii-parameter-gui', when='+gui') + depends_on('libdap4', when='+opendap') def cmake_args(self): return [ diff --git a/var/spack/repos/builtin/packages/atf/package.py b/var/spack/repos/builtin/packages/atf/package.py new file mode 100644 index 0000000000..25fc399fbf --- /dev/null +++ b/var/spack/repos/builtin/packages/atf/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) + +from spack import * + + +class Atf(AutotoolsPackage): + """ATF, or Automated Testing Framework, is a collection of libraries + to write test programs in C, C++ and POSIX shell.""" + + homepage = "https://github.com/jmmv/atf" + url = "https://github.com/jmmv/atf/archive/atf-0.21.tar.gz" + + version('0.21', sha256='da6b02d6e7242f768a7aaa7b7e52378680456e4bd9a913b6636187079c98f3cd') + version('0.20', sha256='3677cf957d7f574835b8bdd385984ba928d5695b3ff28f958e4227f810483ab7') + version('0.19', sha256='f9b1d76dad7c34ae61a75638edc517fc05b10fa4c8f97b1d13d739bffee79b16') + + depends_on('m4', type='build') + depends_on('autoconf', type='build') + depends_on('automake', type='build') + depends_on('libtool', type='build') diff --git a/var/spack/repos/builtin/packages/atmi/0001-Remove-relative-link-paths-to-external-libraries.patch b/var/spack/repos/builtin/packages/atmi/0001-Remove-relative-link-paths-to-external-libraries.patch new file mode 100644 index 0000000000..193cfab620 --- /dev/null +++ b/var/spack/repos/builtin/packages/atmi/0001-Remove-relative-link-paths-to-external-libraries.patch @@ -0,0 +1,29 @@ +From 7445b29108ea2f0b3f28f947a1ca627575173292 Mon Sep 17 00:00:00 2001 +From: Harmen Stoppels <harmenstoppels@gmail.com> +Date: Fri, 7 Aug 2020 13:24:00 +0200 +Subject: [PATCH] Remove relative link paths to external libraries + +--- + src/runtime/core/CMakeLists.txt | 6 ------ + 1 file changed, 6 deletions(-) + +diff --git a/src/runtime/core/CMakeLists.txt b/src/runtime/core/CMakeLists.txt +index 29abffb..f2cd4b4 100644 +--- a/src/runtime/core/CMakeLists.txt ++++ b/src/runtime/core/CMakeLists.txt +@@ -109,12 +109,6 @@ target_link_libraries( + ${amd_comgr_LIBRARIES} + ${LIBELF_LIBRARIES} + ${ROCM_LIBRARIES} +- -L${ROCM_LIBRARIES_DIR}/../hsa/lib +- -L${ROCM_LIBRARIES_DIR} +- -Wl,--enable-new-dtags +- -Wl,-rpath,\$ORIGIN +- -Wl,-rpath,\$ORIGIN/../../hsa/lib +- -Wl,-rpath,\$ORIGIN/../../lib + ) + + # set output dir for .h files +-- +2.25.1 + diff --git a/var/spack/repos/builtin/packages/atmi/package.py b/var/spack/repos/builtin/packages/atmi/package.py new file mode 100644 index 0000000000..c6063b3fde --- /dev/null +++ b/var/spack/repos/builtin/packages/atmi/package.py @@ -0,0 +1,42 @@ +# 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 Atmi(CMakePackage): + """Asynchronous Task and Memory Interface, or ATMI, is a runtime framework + and programming model for heterogeneous CPU-GPU systems. It provides a + consistent, declarative API to create task graphs on CPUs and GPUs + (integrated and discrete).""" + + homepage = "https://github.com/RadeonOpenCompute/atmi" + url = "https://github.com/RadeonOpenCompute/atmi/archive/rocm-3.5.0.tar.gz" + + maintainers = ['srekolam', 'arjun-raj-kuppala'] + + version('3.5.0', sha256='3fb57d2e583fab82bd0582d0c2bccff059ca91122c18ac49a7770a8bb041a37b') + + variant('build_type', default='Release', values=("Release", "Debug"), description='CMake build type') + depends_on('cmake@3:', type='build') + depends_on('libelf@0.8:', type='link', when='@3.5:') + + for ver in ['3.5.0']: + depends_on('comgr@' + ver, type='link', when='@' + ver) + depends_on('hsa-rocr-dev@' + ver, type='link', when='@' + ver) + + root_cmakelists_dir = 'src' + + patch('0001-Remove-relative-link-paths-to-external-libraries.patch') + + def cmake_args(self): + return [ + '-DROCM_VERSION={0}'.format(self.spec.version) + ] + + @run_after('install') + def install_stub(self): + install('include/atmi_interop_hsa.h', self.prefix.include) diff --git a/var/spack/repos/builtin/packages/automake/package.py b/var/spack/repos/builtin/packages/automake/package.py index 0e9d22cb37..aa14dc290e 100644 --- a/var/spack/repos/builtin/packages/automake/package.py +++ b/var/spack/repos/builtin/packages/automake/package.py @@ -2,10 +2,6 @@ # Spack Project Developers. See the top-level COPYRIGHT file for details. # # SPDX-License-Identifier: (Apache-2.0 OR MIT) - -from spack import * - -import os import re @@ -28,23 +24,13 @@ class Automake(AutotoolsPackage, GNUMirrorPackage): build_directory = 'spack-build' - executables = ['automake'] + executables = ['^automake$'] @classmethod - def determine_spec_details(cls, prefix, exes_in_prefix): - exe_to_path = dict( - (os.path.basename(p), p) for p in exes_in_prefix - ) - if 'automake' not in exe_to_path: - return None - - exe = spack.util.executable.Executable(exe_to_path['automake']) - output = exe('--version', output=str) - if output: - match = re.search(r'GNU automake\)\s+(\S+)', output) - if match: - version_str = match.group(1) - return Spec('automake@{0}'.format(version_str)) + def determine_version(cls, exe): + output = Executable(exe)('--version', output=str) + match = re.search(r'GNU automake\)\s+(\S+)', output) + return match.group(1) if match else None def patch(self): # The full perl shebang might be too long diff --git a/var/spack/repos/builtin/packages/aws-parallelcluster/package.py b/var/spack/repos/builtin/packages/aws-parallelcluster/package.py index b9d6524737..8d936a8a3b 100644 --- a/var/spack/repos/builtin/packages/aws-parallelcluster/package.py +++ b/var/spack/repos/builtin/packages/aws-parallelcluster/package.py @@ -12,7 +12,7 @@ class AwsParallelcluster(PythonPackage): tool to deploy and manage HPC clusters in the AWS cloud.""" homepage = "https://github.com/aws/aws-parallelcluster" - url = "https://pypi.io/packages/source/a/aws-parallelcluster/aws-parallelcluster-2.7.0.tar.gz" + url = "https://pypi.io/packages/source/a/aws-parallelcluster/aws-parallelcluster-2.8.1.tar.gz" maintainers = [ 'sean-smith', 'demartinofra', 'enrico-usai', 'lukeseawalker', 'rexcsn', @@ -23,6 +23,8 @@ class AwsParallelcluster(PythonPackage): 'pcluster.config', 'pcluster.networking' ] + version('2.8.1', sha256='c183dc3f053bc2445db724e561cea7f633dd5e7d467a7b3f9b2f2f703f7d5d49') + version('2.8.0', sha256='4e67539d49fe987884a3ed7198dc13bc8a3a1778f0b3656dfe0ae899138678f2') version('2.7.0', sha256='7c34995acfcc256a6996541d330575fc711e1fd5735bf3d734d4e96c1dc8df60') version('2.6.1', sha256='2ce9015d90b5d4dc88b46a44cb8a82e8fb0bb2b4cca30335fc5759202ec1b343') version('2.6.0', sha256='aaed6962cf5027206834ac24b3d312da91e0f96ae8607f555e12cb124b869f0c') diff --git a/var/spack/repos/builtin/packages/axom/package.py b/var/spack/repos/builtin/packages/axom/package.py index add0619a3e..2bb6500cf1 100644 --- a/var/spack/repos/builtin/packages/axom/package.py +++ b/var/spack/repos/builtin/packages/axom/package.py @@ -51,7 +51,7 @@ class Axom(CMakePackage, CudaPackage): homepage = "https://github.com/LLNL/axom" git = "https://github.com/LLNL/axom.git" - version('master', branch='master', submodules=True) + version('main', branch='main', submodules=True) version('develop', branch='develop', submodules=True) version('0.3.3', tag='v0.3.3', submodules="True") version('0.3.2', tag='v0.3.2', submodules="True") @@ -65,6 +65,8 @@ class Axom(CMakePackage, CudaPackage): # ----------------------------------------------------------------------- # Variants # ----------------------------------------------------------------------- + variant('shared', default=True, + description='Enable build of shared libraries') variant('debug', default=False, description='Build debug instead of optimized version') @@ -96,12 +98,10 @@ class Axom(CMakePackage, CudaPackage): depends_on("mpi", when="+mpi") # Libraries - depends_on("conduit~shared+python", when="+python") - depends_on("conduit~shared~python", when="~python") - depends_on("conduit~shared+python+hdf5", when="+hdf5+python") - depends_on("conduit~shared+python~hdf5", when="~hdf5+python") - depends_on("conduit~shared~python+hdf5", when="+hdf5~python") - depends_on("conduit~shared~python~hdf5", when="~hdf5~python") + depends_on("conduit+python", when="+python") + depends_on("conduit~python", when="~python") + depends_on("conduit+hdf5", when="+hdf5") + depends_on("conduit~hdf5", when="~hdf5") # HDF5 needs to be the same as Conduit's depends_on("hdf5@1.8.19:1.8.999~mpi~cxx~shared~fortran", when="+hdf5") @@ -124,7 +124,7 @@ class Axom(CMakePackage, CudaPackage): depends_on('umpire cuda_arch={0}'.format(sm_), when='+umpire cuda_arch={0}'.format(sm_)) - depends_on("mfem~mpi~hypre~metis~zlib", when="+mfem") + depends_on("mfem~mpi~metis~zlib", when="+mfem") depends_on("python", when="+python") @@ -471,6 +471,11 @@ class Axom(CMakePackage, CudaPackage): linker_flags = "${BLT_EXE_LINKER_FLAGS} -Wl,-rpath," + libdir cfg.write(cmake_cache_entry("BLT_EXE_LINKER_FLAGS", linker_flags, description)) + if "+shared" in spec: + linker_flags = "${CMAKE_SHARED_LINKER_FLAGS} -Wl,-rpath," \ + + libdir + cfg.write(cmake_cache_entry("CMAKE_SHARED_LINKER_FLAGS", + linker_flags, description)) if "+cuda" in spec: cfg.write("#------------------{0}\n".format("-" * 60)) @@ -530,10 +535,17 @@ class Axom(CMakePackage, CudaPackage): options = [] options.extend(['-C', host_config_path]) + if self.run_tests is False: options.append('-DENABLE_TESTS=OFF') else: options.append('-DENABLE_TESTS=ON') + + if "+shared" in spec: + options.append('-DBUILD_SHARED_LIBS=ON') + else: + options.append('-DBUILD_SHARED_LIBS=OFF') + return options @run_after('install') diff --git a/var/spack/repos/builtin/packages/babelflow/package.py b/var/spack/repos/builtin/packages/babelflow/package.py new file mode 100644 index 0000000000..568f8bf7c8 --- /dev/null +++ b/var/spack/repos/builtin/packages/babelflow/package.py @@ -0,0 +1,31 @@ +# 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 Babelflow(CMakePackage): + """BabelFlow is an Embedded Domain Specific Language to describe + algorithms using a task graph abstraction which allows them to be + executed on top of one of several available runtime systems.""" + + homepage = "https://github.com/sci-visus/BabelFlow" + git = 'https://github.com/sci-visus/BabelFlow.git' + + maintainers = ['spetruzza'] + + version('develop', + branch='ascent', + submodules=True) + + depends_on('mpi') + + variant("shared", default=True, description="Build Babelflow as shared libs") + + def cmake_args(self): + args = [ + '-DBUILD_SHARED_LIBS:BOOL={0}'.format( + 'ON' if '+shared' in spec else 'OFF')] + return args diff --git a/var/spack/repos/builtin/packages/bazel/package.py b/var/spack/repos/builtin/packages/bazel/package.py index 27f2da0597..b64bdc1ac1 100644 --- a/var/spack/repos/builtin/packages/bazel/package.py +++ b/var/spack/repos/builtin/packages/bazel/package.py @@ -3,9 +3,6 @@ # # SPDX-License-Identifier: (Apache-2.0 OR MIT) -from spack import * -import platform - class Bazel(Package): """Bazel is an open-source build and test tool similar to Make, Maven, and @@ -96,14 +93,7 @@ class Bazel(Package): variant('nodepfail', default=True, description='Disable failing dependency checks due to injected absolute paths - required for most builds using bazel with spack') - # https://docs.bazel.build/versions/master/install-compile-source.html#bootstrap-bazel - # Until https://github.com/spack/spack/issues/14058 is fixed, use jdk to build bazel - # Strict dependency on java@8 as per - # https://docs.bazel.build/versions/master/install-compile-source.html#bootstrap-unix-prereq - if platform.machine() == 'aarch64': - depends_on('java@8:8.999', type=('build', 'run')) - else: - depends_on('jdk@1.8.0:1.8.999', type=('build', 'run')) + depends_on('java', type=('build', 'run')) depends_on('python', type=('build', 'run')) depends_on('zip', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/bbcp/package.py b/var/spack/repos/builtin/packages/bbcp/package.py index 70c453825f..0ea5d88a89 100644 --- a/var/spack/repos/builtin/packages/bbcp/package.py +++ b/var/spack/repos/builtin/packages/bbcp/package.py @@ -9,13 +9,14 @@ from spack import * class Bbcp(Package): """Securely and quickly copy data from source to target""" - homepage = "http://www.slac.stanford.edu/~abh/bbcp/" - git = "http://www.slac.stanford.edu/~abh/bbcp/bbcp.git" + homepage = "https://www.slac.stanford.edu/~abh/bbcp/" + git = "https://www.slac.stanford.edu/~abh/bbcp/bbcp.git" - version('git', branch='master') + version('master', branch='master') depends_on('zlib') depends_on('openssl') + depends_on('libnsl') def install(self, spec, prefix): cd("src") diff --git a/var/spack/repos/builtin/packages/bcache/package.py b/var/spack/repos/builtin/packages/bcache/package.py index 63c42de333..c35493185a 100644 --- a/var/spack/repos/builtin/packages/bcache/package.py +++ b/var/spack/repos/builtin/packages/bcache/package.py @@ -22,6 +22,7 @@ class Bcache(MakefilePackage): depends_on('libuuid') depends_on('util-linux') depends_on('gettext') + depends_on('pkgconfig', type='build') def setup_build_environment(self, env): env.append_flags('LDFLAGS', '-lintl') diff --git a/var/spack/repos/builtin/packages/berkeley-db/package.py b/var/spack/repos/builtin/packages/berkeley-db/package.py index fc2fe3c4a9..52c4206d25 100644 --- a/var/spack/repos/builtin/packages/berkeley-db/package.py +++ b/var/spack/repos/builtin/packages/berkeley-db/package.py @@ -9,26 +9,34 @@ from spack import * class BerkeleyDb(AutotoolsPackage): """Oracle Berkeley DB""" - homepage = "http://www.oracle.com/technetwork/database/database-technologies/berkeleydb/overview/index.html" - url = "http://download.oracle.com/berkeley-db/db-5.3.28.tar.gz" + homepage = "https://www.oracle.com/database/technologies/related/berkeleydb.html" + url = "http://download.oracle.com/berkeley-db/db-18.1.40.tar.gz" + version("18.1.40", sha256="0cecb2ef0c67b166de93732769abdeba0555086d51de1090df325e18ee8da9c8") + version('18.1.32', sha256='fa1fe7de9ba91ad472c25d026f931802597c29f28ae951960685cde487c8d654') version('6.2.32', sha256='a9c5e2b004a5777aa03510cfe5cd766a4a3b777713406b02809c17c8e0e7a8fb') version('6.1.29', sha256='b3c18180e4160d97dd197ba1d37c19f6ea2ec91d31bbfaf8972d99ba097af17d') version('6.0.35', sha256='24421affa8ae436fe427ae4f5f2d1634da83d3d55a5ad6354a98eeedb825de55') version('5.3.28', sha256='e0a992d740709892e81f9d93f06daf305cf73fb81b545afe72478043172c3628') configure_directory = 'dist' - build_directory = 'spack-build' + build_directory = 'build_unix' -# TODO: Gentoo's website removed the BerkeleyDB archives. -# Please update the function bellow with a valid mirror. -# Right now this package will fetch from the Oracle website, -# and versions 5.3.28 and 6.0.35 will fail to download. -# -# def url_for_version(self, version): -# # newer version need oracle login, so get them from gentoo mirror -# url_fmt = 'http://distfiles.gentoo.org/distfiles/db-{0}.tar.gz' -# return url_fmt.format(version) + def patch(self): + # some of the docs are missing in 18.1.40 + if self.spec.satisfies("@18.1.40"): + filter_file(r'bdb-sql', '', 'dist/Makefile.in') + filter_file(r'gsg_db_server', '', 'dist/Makefile.in') def configure_args(self): - return ['--disable-static', '--enable-cxx', '--enable-stl'] + return [ + '--disable-static', + '--enable-cxx', + '--enable-dbm', + '--enable-stl', + # compat with system berkeley-db on darwin + "--enable-compat185", + # SSL support requires OpenSSL, but OpenSSL depends on Perl, which + # depends on Berkey DB, creating a circular dependency + '--with-repmgr-ssl=no', + ] diff --git a/var/spack/repos/builtin/packages/bison/package.py b/var/spack/repos/builtin/packages/bison/package.py index 0a51dd583e..6fe36efed9 100644 --- a/var/spack/repos/builtin/packages/bison/package.py +++ b/var/spack/repos/builtin/packages/bison/package.py @@ -14,8 +14,17 @@ class Bison(AutotoolsPackage, GNUMirrorPackage): generalized LR (GLR) parser employing LALR(1) parser tables.""" homepage = "https://www.gnu.org/software/bison/" - gnu_mirror_path = "bison/bison-3.4.2.tar.gz" - + gnu_mirror_path = "bison/bison-3.6.4.tar.gz" + + version('3.6.4', sha256='8183de64b5383f3634942c7b151bf2577f74273b2731574cdda8a8f3a0ab13e9') + version('3.6.3', sha256='4b4c4943931e811f1073006ce3d8ee022a02b11b501e9cbf4def3613b24a3e63') + version('3.6.2', sha256='e28ed3aad934de2d1df68be209ac0b454f7b6d3c3d6d01126e5cd2cbadba089a') + version('3.6.1', sha256='1120f8bfe2cc13e5e1e3f671dc41b1a535ca5a75a70d5b349c19da9d4389f74d') + version('3.6', sha256='f630645e330bde5847266cc5c8194f0135ced75cced150358d9abe572b95f81c') + version('3.5.3', sha256='34e201d963156618a0ea5bc87220f660a1e08403dd3c7c7903d4f38db3f40039') + version('3.5.2', sha256='b4dbb6dd080f4db7f344f16506502973ca2b15f15c7dbbd1c1c278a456d094fa') + version('3.5.1', sha256='4cef2322d96751be1c0d04f3e57adbb30e7fea83af9c00f98efa6e7509296f25') + version('3.5', sha256='0b36200b9868ee289b78cefd1199496b02b76899bbb7e84ff1c0733a991313d1') version('3.4.2', sha256='ff3922af377d514eca302a6662d470e857bd1a591e96a2050500df5a9d59facf') version('3.4.1', sha256='7007fc89c216fbfaff5525359b02a7e5b612694df5168c74673f67055f015095') version('3.3.2', sha256='0fda1d034185397430eb7b0c9e140fb37e02fbfc53b90252fa5575e382b6dbd1') diff --git a/var/spack/repos/builtin/packages/blaspp/package.py b/var/spack/repos/builtin/packages/blaspp/package.py index bcc5e80292..ddacfa22aa 100644 --- a/var/spack/repos/builtin/packages/blaspp/package.py +++ b/var/spack/repos/builtin/packages/blaspp/package.py @@ -6,7 +6,7 @@ from spack import * -class Blaspp(CMakePackage): +class Blaspp(CMakePackage, CudaPackage): """C++ API for the Basic Linear Algebra Subroutines. Developed by the Innovative Computing Laboratory at the University of Tennessee, Knoxville.""" @@ -62,6 +62,16 @@ class Blaspp(CMakePackage): else: args.append('-DBLAS_LIBRARY_THREADING="sequential"') + # `blaspp` has an implicit CUDA detection mechanism. This disables it + # in cases where it may backfire. One such case is when `cuda` is + # external and marked with `buildable=false`. `blaspp`'s CMake CUDA + # detection mechanism finds CUDA but doesn't set certain paths properly + # which leads to a build issues [1]. + # + # [1]: https://bitbucket.org/icl/blaspp/issues/6/compile-error-due-to-implicit-cuda + if '~cuda' in spec: + args.append('-DCMAKE_CUDA_COMPILER=') + # Missing: # # - acml : BLAS_LIBRARY="AMD ACML" diff --git a/var/spack/repos/builtin/packages/blat/package.py b/var/spack/repos/builtin/packages/blat/package.py index 34c9f0da6b..831329eafb 100644 --- a/var/spack/repos/builtin/packages/blat/package.py +++ b/var/spack/repos/builtin/packages/blat/package.py @@ -21,5 +21,6 @@ class Blat(Package): env.set('MACHTYPE', 'x86_64') def install(self, spec, prefix): + filter_file('CC=.*', 'CC={0}'.format(spack_cc), 'inc/common.mk') mkdirp(prefix.bin) make("BINDIR=%s" % prefix.bin) diff --git a/var/spack/repos/builtin/packages/blaze/package.py b/var/spack/repos/builtin/packages/blaze/package.py index 8801b9b1d6..b8a733f49d 100644 --- a/var/spack/repos/builtin/packages/blaze/package.py +++ b/var/spack/repos/builtin/packages/blaze/package.py @@ -21,6 +21,7 @@ class Blaze(CMakePackage): # Blaze requires at least cmake 3.8.0 for C++14 features. depends_on('cmake@3.8.0:', type='build') + depends_on('blas') version('master', branch='master') version('3.5', sha256='f50d4a57796b8012d3e6d416667d9abe6f4d95994eb9deb86cd4491381dec624') diff --git a/var/spack/repos/builtin/packages/bliss/package.py b/var/spack/repos/builtin/packages/bliss/package.py index 7878f16cb0..b42e9cac9c 100644 --- a/var/spack/repos/builtin/packages/bliss/package.py +++ b/var/spack/repos/builtin/packages/bliss/package.py @@ -24,6 +24,7 @@ class Bliss(Package): patch("Makefile.spack.patch") def install(self, spec, prefix): + filter_file('__DATE__', ' __DATE__ ', 'bliss.cc') # The Makefile isn't portable; use our own instead makeargs = ["-f", "Makefile.spack", "PREFIX=%s" % prefix, "GMP_PREFIX=%s" % spec["gmp"].prefix] diff --git a/var/spack/repos/builtin/packages/blktrace/package.py b/var/spack/repos/builtin/packages/blktrace/package.py index d088439139..bf0b1eae05 100644 --- a/var/spack/repos/builtin/packages/blktrace/package.py +++ b/var/spack/repos/builtin/packages/blktrace/package.py @@ -27,5 +27,12 @@ class Blktrace(MakefilePackage): depends_on('libaio') + def edit(self, spec, prefix): + makefiles = ['Makefile', 'btreplay/Makefile', + 'btt/Makefile', 'iowatcher/Makefile'] + for m in makefiles: + makefile = FileFilter(m) + makefile.filter('CC.*=.*', 'CC = {0}'.format(spack_cc)) + def install(self, spec, prefix): install_tree('.', prefix) diff --git a/var/spack/repos/builtin/packages/boost/package.py b/var/spack/repos/builtin/packages/boost/package.py index d0d8691c33..5c88a86c02 100644 --- a/var/spack/repos/builtin/packages/boost/package.py +++ b/var/spack/repos/builtin/packages/boost/package.py @@ -183,7 +183,7 @@ class Boost(Package): conflicts('+numpy', when='~python') # boost-python in 1.72.0 broken with cxxstd=98 - conflicts('cxxstd=98', when='+mpi+python @1.72.0:') + conflicts('cxxstd=98', when='+mpi+python @1.72.0') # Container's Extended Allocators were not added until 1.56.0 conflicts('+container', when='@:1.55.99') diff --git a/var/spack/repos/builtin/packages/bowtie/fix_narrowing_err_1.3.0.patch b/var/spack/repos/builtin/packages/bowtie/fix_narrowing_err_1.3.0.patch new file mode 100644 index 0000000000..0da7fe0de3 --- /dev/null +++ b/var/spack/repos/builtin/packages/bowtie/fix_narrowing_err_1.3.0.patch @@ -0,0 +1,11 @@ +--- a/alphabet.cpp 2020-07-28 15:02:56.137635525 -0400 ++++ b/alphabet.cpp 2020-07-28 15:05:32.385589360 -0400 +@@ -274,7 +274,7 @@ + const char *iupacs = "!ACMGRSVTWYHKDBN!acmgrsvtwyhkdbn"; + + signed char mask2iupac[16] = { +- -1, ++ static_cast<char>(-1), + 'A', // 0001 + 'C', // 0010 + 'M', // 0011 diff --git a/var/spack/repos/builtin/packages/bowtie/package.py b/var/spack/repos/builtin/packages/bowtie/package.py index ce7f8b03a0..737ae8c893 100644 --- a/var/spack/repos/builtin/packages/bowtie/package.py +++ b/var/spack/repos/builtin/packages/bowtie/package.py @@ -13,6 +13,7 @@ class Bowtie(MakefilePackage): homepage = "https://sourceforge.net/projects/bowtie-bio/" url = "https://github.com/BenLangmead/bowtie/archive/v1.2.0.tar.gz" + version('1.3.0', sha256='d7c2d982a67884909f284a0ff150b56b20127cd7a1ced461c3c4c03e6a6374c5') version('1.2.3', sha256='86402114caeacbb3a3030509cb59f0b7e96361c7b3ee2dd50e2cd68200898823') # The bowtie project git tagged and GitHub released a v1.2.2, # discovered/fixed a bug, git tagged a v1.2.2_p1 and moved the @@ -50,7 +51,8 @@ class Bowtie(MakefilePackage): patch('for_aarch64.patch', when='target=aarch64:') # measures for narrowing error - patch('fix_narrowing_err.patch') + patch('fix_narrowing_err.patch', when='@:1.2.3') + patch('fix_narrowing_err_1.3.0.patch', when='@1.3.0:') def edit(self, spec, prefix): makefile = FileFilter('Makefile') diff --git a/var/spack/repos/builtin/packages/bowtie2/package.py b/var/spack/repos/builtin/packages/bowtie2/package.py index 8100b9dfed..a5752dda48 100644 --- a/var/spack/repos/builtin/packages/bowtie2/package.py +++ b/var/spack/repos/builtin/packages/bowtie2/package.py @@ -14,6 +14,7 @@ class Bowtie2(Package): homepage = "http://bowtie-bio.sourceforge.net/bowtie2/index.shtml" url = "http://downloads.sourceforge.net/project/bowtie-bio/bowtie2/2.3.1/bowtie2-2.3.1-source.zip" + version('2.4.1', sha256='566d6fb01a361883747103d797308ee4bdb70f6db7d27bfc72a520587815df22') version('2.3.5.1', sha256='335c8dafb1487a4a9228ef922fbce4fffba3ce8bc211e2d7085aac092155a53f') version('2.3.5', sha256='2b6b2c46fbb5565ba6206b47d07ece8754b295714522149d92acebefef08347b') version('2.3.4.1', sha256='a1efef603b91ecc11cfdb822087ae00ecf2dd922e03c85eea1ed7f8230c119dc') diff --git a/var/spack/repos/builtin/packages/brltty/package.py b/var/spack/repos/builtin/packages/brltty/package.py index 25757b259f..d31d7ae3bf 100644 --- a/var/spack/repos/builtin/packages/brltty/package.py +++ b/var/spack/repos/builtin/packages/brltty/package.py @@ -24,6 +24,7 @@ class Brltty(AutotoolsPackage): depends_on('libtool', type='build') depends_on('m4', type='build') depends_on('expat') + depends_on('alsa-lib', type='link') def autoreconf(self, spec, prefix): bash = which('bash') diff --git a/var/spack/repos/builtin/packages/brpc/package.py b/var/spack/repos/builtin/packages/brpc/package.py index ba1417babf..d5481d300b 100644 --- a/var/spack/repos/builtin/packages/brpc/package.py +++ b/var/spack/repos/builtin/packages/brpc/package.py @@ -22,5 +22,6 @@ class Brpc(CMakePackage): depends_on('gflags') depends_on('protobuf') depends_on('leveldb') + depends_on('openssl') patch('narrow.patch', sha256='d7393029443853ddda6c09e3d2185ac2f60920a36a8b685eb83b6b80c1535539', when='@:0.9.7') diff --git a/var/spack/repos/builtin/packages/bwa/bwa_for_aarch64.patch b/var/spack/repos/builtin/packages/bwa/bwa_for_aarch64.patch new file mode 100644 index 0000000000..2bebcb5023 --- /dev/null +++ b/var/spack/repos/builtin/packages/bwa/bwa_for_aarch64.patch @@ -0,0 +1,13 @@ +diff --git a/ksw.c b/ksw.c +index 9793e5e..2eecef4 100644 +--- a/ksw.c ++++ b/ksw.c +@@ -26,7 +26,7 @@ + #include <stdlib.h> + #include <stdint.h> + #include <assert.h> +-#include <emmintrin.h> ++#include <SSE2NEON.h> + #include "ksw.h" + + #ifdef USE_MALLOC_WRAPPERS diff --git a/var/spack/repos/builtin/packages/bwa/package.py b/var/spack/repos/builtin/packages/bwa/package.py index 8447f7848f..5f2d3ff178 100644 --- a/var/spack/repos/builtin/packages/bwa/package.py +++ b/var/spack/repos/builtin/packages/bwa/package.py @@ -4,6 +4,7 @@ # SPDX-License-Identifier: (Apache-2.0 OR MIT) from spack import * +import platform class Bwa(Package): @@ -19,10 +20,20 @@ class Bwa(Package): url='https://github.com/lh3/bwa/archive/0.7.12.tar.gz') depends_on('zlib') + depends_on('sse2neon', when='target=aarch64:') + + patch('bwa_for_aarch64.patch', sha256='b77213b16cf8760f01e32f9a0b2cd8988cf7bac48a11267100f703cbd55c4bfd', when='target=aarch64:') def install(self, spec, prefix): - filter_file(r'^INCLUDES=', - "INCLUDES=-I%s" % spec['zlib'].prefix.include, 'Makefile') + zlib_inc_path = spec['zlib'].prefix.include + if platform.machine() == 'aarch64': + sse2neon_inc_path = spec['sse2neon'].prefix.include + filter_file(r'^INCLUDES=', "INCLUDES=-I%s -I%s" % + (zlib_inc_path, sse2neon_inc_path), + 'Makefile') + else: + filter_file(r'^INCLUDES=', "INCLUDES=-I%s" % + zlib_inc_path, 'Makefile') filter_file(r'^LIBS=', "LIBS=-L%s " % spec['zlib'].prefix.lib, 'Makefile') make() diff --git a/var/spack/repos/builtin/packages/caliper/package.py b/var/spack/repos/builtin/packages/caliper/package.py index fb12a78704..3aca96fbe8 100644 --- a/var/spack/repos/builtin/packages/caliper/package.py +++ b/var/spack/repos/builtin/packages/caliper/package.py @@ -19,6 +19,7 @@ class Caliper(CMakePackage): git = "https://github.com/LLNL/Caliper.git" version('master') + version('2.4.0', tag='v2.4.0') version('2.3.0', tag='v2.3.0') version('2.2.0', tag='v2.2.0') version('2.1.1', tag='v2.1.1') @@ -45,22 +46,21 @@ class Caliper(CMakePackage): description='Enable PAPI service') variant('libpfm', default=is_linux, description='Enable libpfm (perf_events) service') - # gotcha doesn't work on Mac - variant('gotcha', default=sys.platform != 'darwin', + # Gotcha is Linux-only + variant('gotcha', default=is_linux, description='Enable GOTCHA support') variant('sampler', default=is_linux, description='Enable sampling support on Linux') variant('sosflow', default=False, description='Enable SOSflow support') - depends_on('adiak@0.1:', when='@2.2: +adiak') - - depends_on('gotcha@1.0.2:1.0.99', when='+gotcha') + depends_on('adiak@0.1:0.99', when='@2.2: +adiak') depends_on('dyninst@9.3.0:9.99', when='@:1.99 +dyninst') depends_on('dyninst@10.0:10.99', when='@2: +dyninst') - depends_on('papi@5.3:5.99', when='+papi') + depends_on('papi@5.3:5.99', when='@:2.2 +papi') + depends_on('papi@5.3:6.99', when='@2.3: +papi') depends_on('libpfm4@4.8:4.99', when='+libpfm') @@ -69,11 +69,11 @@ class Caliper(CMakePackage): depends_on('sosflow@spack', when='@1.0:1.99+sosflow') - depends_on('cmake', type='build') - depends_on('python@3:', type='build') + depends_on('cmake', type='build') + depends_on('python', type='build') # sosflow support not yet in 2.0 - conflicts('+sosflow', '@2.0.0:2.3.99') + conflicts('+sosflow', '@2.0.0:2.4.99') conflicts('+adiak', '@:2.1.99') def cmake_args(self): @@ -96,8 +96,6 @@ class Caliper(CMakePackage): '-DWITH_MPI=%s' % ('On' if '+mpi' in spec else 'Off') ] - if '+gotcha' in spec: - args.append('-DUSE_EXTERNAL_GOTCHA=True') if '+papi' in spec: args.append('-DPAPI_PREFIX=%s' % spec['papi'].prefix) if '+libpfm' in spec: diff --git a/var/spack/repos/builtin/packages/camx/package.py b/var/spack/repos/builtin/packages/camx/package.py index b65ffeaf38..473c60ca05 100644 --- a/var/spack/repos/builtin/packages/camx/package.py +++ b/var/spack/repos/builtin/packages/camx/package.py @@ -60,6 +60,10 @@ class Camx(MakefilePackage): def edit(self, spec, prefix): makefile = FileFilter('Makefile') + if spec.target.family == 'aarch64': + makefile.filter('-mcmodel=medium', '-mcmodel=large') + makefile = FileFilter('./MPI/util/Makefile') + makefile.filter('-mcmodel=medium', '-mcmodel=large') # Support Intel MPI. if spec['mpi'].name == 'intel-mpi': diff --git a/var/spack/repos/builtin/packages/cantera/package.py b/var/spack/repos/builtin/packages/cantera/package.py index 4b38ccc7b3..773cc6d8cf 100644 --- a/var/spack/repos/builtin/packages/cantera/package.py +++ b/var/spack/repos/builtin/packages/cantera/package.py @@ -30,7 +30,7 @@ class Cantera(SConsPackage): depends_on('googletest+gmock', when='@2.3.0:') depends_on('eigen', when='@2.3.0:') depends_on('boost') - depends_on('sundials@:3.1.2', when='+sundials') # must be compiled with -fPIC + depends_on('sundials@:3.1.2+lapack', when='+sundials') # must be compiled with -fPIC depends_on('blas') depends_on('lapack') diff --git a/var/spack/repos/builtin/packages/canu/package.py b/var/spack/repos/builtin/packages/canu/package.py index 2ab5cd0084..09faac1e76 100644 --- a/var/spack/repos/builtin/packages/canu/package.py +++ b/var/spack/repos/builtin/packages/canu/package.py @@ -19,8 +19,10 @@ class Canu(MakefilePackage): version('1.5', sha256='06e2c6d7b9f6d325b3b468e9c1a5de65e4689aed41154f2cee5ccd2cef0d5cf6') depends_on('gnuplot', type='run') - depends_on('jdk', type='run') + depends_on('java', type='run') depends_on('perl', type='run') + # build fail when using boost@1.71.0:1.73.0 by canu@1.8:2.0 + depends_on('boost@:1.70.0') build_directory = 'src' build_targets = ['clean'] diff --git a/var/spack/repos/builtin/packages/cardioid/package.py b/var/spack/repos/builtin/packages/cardioid/package.py index c95035b5bf..6395620d6e 100644 --- a/var/spack/repos/builtin/packages/cardioid/package.py +++ b/var/spack/repos/builtin/packages/cardioid/package.py @@ -25,8 +25,8 @@ class Cardioid(CMakePackage): depends_on('lapack') depends_on('mpi') depends_on('cuda', when="+cuda") - depends_on('mfem+hypre+superlu-dist+lapack', when="+mfem~cuda") - depends_on('mfem+hypre+superlu-dist+lapack^hypre+cuda', when="+mfem+cuda") + depends_on('mfem+mpi+superlu-dist+lapack', when="+mfem~cuda") + depends_on('mfem+mpi+superlu-dist+lapack^hypre+cuda', when="+mfem+cuda") depends_on('cmake@3.1:', type='build') depends_on('perl', type='build') diff --git a/var/spack/repos/builtin/packages/cassandra/package.py b/var/spack/repos/builtin/packages/cassandra/package.py index d6c4781cb4..f80b3c173b 100644 --- a/var/spack/repos/builtin/packages/cassandra/package.py +++ b/var/spack/repos/builtin/packages/cassandra/package.py @@ -17,7 +17,7 @@ class Cassandra(Package): version('4.0-alpha2', sha256='6a8e99d8bc51efd500981c85c6aa547387b2fdbedecd692308f4632dbc1de3ba') version('4.0-alpha1', sha256='2fdf5e3d6c03a29d24a09cd52bb17575e5faccdc4c75a07edd63a9bf4f740105') - version('3.11.6', sha256='ce34edebd1b6bb35216ae97bd06d3efc338c05b273b78267556a99f85d30e45b', preferred=True) + version('3.11.6', sha256='a739ad036d58f95b5526c481b20773cfcc9ccf3c9dc0b50943d9f2306b56e824', preferred=True) version('3.11.5', sha256='0ee3da12a2be86d7e03203fcc56c3589ddb38347b9cd031495a2b7fcf639fea6') depends_on('java', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/cctools/package.py b/var/spack/repos/builtin/packages/cctools/package.py index ade997bbb8..b92bc65187 100644 --- a/var/spack/repos/builtin/packages/cctools/package.py +++ b/var/spack/repos/builtin/packages/cctools/package.py @@ -45,6 +45,10 @@ class Cctools(AutotoolsPackage): f = 'dttools/src/memfdexe.c' kwargs = {'ignore_absent': False, 'backup': True, 'string': True} filter_file(before, after, f, **kwargs) + if self.spec.satisfies('%fj'): + makefiles = ['chirp/src/Makefile', 'grow/src/Makefile'] + for m in makefiles: + filter_file('-fstack-protector-all', '', m) def configure_args(self): args = [] diff --git a/var/spack/repos/builtin/packages/chai/package.py b/var/spack/repos/builtin/packages/chai/package.py new file mode 100644 index 0000000000..66296f5ddf --- /dev/null +++ b/var/spack/repos/builtin/packages/chai/package.py @@ -0,0 +1,61 @@ +# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack import * + + +class Chai(CMakePackage, CudaPackage): + """ + Copy-hiding array interface for data migration between memory spaces + """ + + homepage = "https://github.com/LLNL/CHAI" + git = "https://github.com/LLNL/CHAI.git" + + version('develop', branch='develop', submodules='True') + version('master', branch='main', submodules='True') + version('2.1.1', tag='v2.1.1', submodules='True') + version('2.1.0', tag='v2.1.0', submodules='True') + version('2.0.0', tag='v2.0.0', submodules='True') + version('1.2.0', tag='v1.2.0', submodules='True') + version('1.1.0', tag='v1.1.0', submodules='True') + version('1.0', tag='v1.0', submodules='True') + + variant('shared', default=True, description='Build Shared Libs') + variant('raja', default=False, description='Build plugin for RAJA') + + depends_on('cmake@3.8:', type='build') + depends_on('umpire') + depends_on('raja', when="+raja") + + depends_on('cmake@3.9:', type='build', when="+cuda") + depends_on('umpire+cuda', when="+cuda") + depends_on('raja+cuda', when="+raja+cuda") + + def cmake_args(self): + spec = self.spec + + options = [] + + if '+cuda' in spec: + options.extend([ + '-DENABLE_CUDA=ON', + '-DCUDA_TOOLKIT_ROOT_DIR=%s' % (spec['cuda'].prefix)]) + + if not spec.satisfies('cuda_arch=none'): + cuda_arch = spec.variants['cuda_arch'].value + options.append('-DCUDA_ARCH=sm_{0}'.format(cuda_arch[0])) + flag = '-arch sm_{0}'.format(cuda_arch[0]) + options.append('-DCMAKE_CUDA_FLAGS:STRING={0}'.format(flag)) + else: + options.append('-DENABLE_CUDA=OFF') + + options.append('-Dumpire_DIR:PATH=' + + spec['umpire'].prefix.share.umpire.cmake) + + options.append('-DENABLE_TESTS={0}'.format( + 'ON' if self.run_tests else 'OFF')) + + return options diff --git a/var/spack/repos/builtin/packages/changa/fix_configure_path.patch b/var/spack/repos/builtin/packages/changa/fix_configure_path.patch new file mode 100644 index 0000000000..f986927209 --- /dev/null +++ b/var/spack/repos/builtin/packages/changa/fix_configure_path.patch @@ -0,0 +1,13 @@ +diff --git a/configure b/configure +index 04f1a59..602c6cc 100755 +--- a/configure ++++ b/configure +@@ -2434,7 +2434,7 @@ if test $($CHARMC -V | awk '{print $3}') -lt $MINIMUM_CHARM_VERSION; then + fi + + CHARM_PATH=${CHARMC%/bin/charmc} +-CONV_CONFIG=${CHARM_PATH}/tmp/conv-config.sh ++CONV_CONFIG=${CHARM_PATH}/include/conv-config.sh + CHARMINC=${CHARM_PATH}/include + + . ${CONV_CONFIG} diff --git a/var/spack/repos/builtin/packages/changa/package.py b/var/spack/repos/builtin/packages/changa/package.py new file mode 100644 index 0000000000..a6adb48c38 --- /dev/null +++ b/var/spack/repos/builtin/packages/changa/package.py @@ -0,0 +1,46 @@ +# 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 Changa(AutotoolsPackage): + """ChaNGa (Charm N-body GrAvity solver) is a code to perform collisionless + N-body simulations. It can perform cosmological simulations with periodic + boundary conditions in comoving coordinates or simulations of isolated + stellar systems. It also can include hydrodynamics using the Smooth + Particle Hydrodynamics (SPH) technique. It uses a Barnes-Hut tree to + calculate gravity, with hexadecapole expansion of nodes and + Ewald summation for periodic forces. Timestepping is done with a leapfrog + integrator with individual timesteps for each particle.""" + + homepage = "http://faculty.washington.edu/trq/hpcc/tools/changa.html" + url = "https://github.com/N-BodyShop/changa/archive/v3.4.tar.gz" + git = "https://github.com/N-BodyShop/changa.git" + + version('master', branch='master') + version('3.4', sha256='c2bceb6ac00025dfd704bb6960bc17c6df7c746872185845d1e75f47e6ce2a94') + patch("fix_configure_path.patch") + + resource( + name="utility", + url="https://github.com/N-BodyShop/utility/archive/v3.4.tar.gz", + sha256="19f9f09023ce9d642e848a36948788fb29cd7deb8e9346cdaac4c945f1416667", + placement="utility" + ) + + depends_on("charmpp build-target=ChaNGa") + + def configure_args(self): + args = [] + args.append("STRUCT_DIR={0}/utility/structures" + .format(self.stage.source_path)) + return args + + def install(self, spec, prefix): + with working_dir(self.build_directory): + mkdirp(prefix.bin) + install('ChaNGa', prefix.bin) + install('charmrun', prefix.bin) diff --git a/var/spack/repos/builtin/packages/charliecloud/package.py b/var/spack/repos/builtin/packages/charliecloud/package.py index 119e014176..17e76b21a4 100644 --- a/var/spack/repos/builtin/packages/charliecloud/package.py +++ b/var/spack/repos/builtin/packages/charliecloud/package.py @@ -15,6 +15,7 @@ class Charliecloud(AutotoolsPackage): git = "https://github.com/hpc/charliecloud.git" version('master', branch='master') + version('0.17', sha256='9ccb34243e17cbb9c65e44fba66293ed65c39db0422c7d9bd6d1c314c3896723') version('0.16', sha256='6cdc21d414b6173090ac0a4c2c62a2a038c81659a75ae8f837b332bb7e6e9090') version('0.15', sha256='2163420d43c934151c4f44a188313bdb7f79e576d5a86ba64b9ea45f784b9921') version('0.14', sha256='4ae23c2d6442949e16902f9d5604dbd1d6059aeb5dd461b11fc5c74d49dcb194') @@ -25,7 +26,7 @@ class Charliecloud(AutotoolsPackage): depends_on('automake', type='build') depends_on('libtool', type='build') - # Use skopeo and umoci for older ch-grow version dependencies. + # Use skopeo and umoci for older (unsupported) ch-grow versions. depends_on('skopeo', type='run', when='@0.10:0.13') depends_on('umoci', type='run', when='@0.10:0.13') depends_on('python+libxml2', type='run', when='@0.10:0.13') @@ -51,9 +52,22 @@ class Charliecloud(AutotoolsPackage): def configure_args(self): args = [] + py_path = self.spec['python'].command.path + + if (self.spec.satisfies('@0.13')): + args.append('--with-python-shebang={0}'.format(py_path)) + else: + args.append('--with-python={0}'.format(py_path)) if '+docs' in self.spec: - args.append('--enable-html') + sphinx_bin = '{0}'.format(self.spec['py-sphinx'].prefix.bin) + if (self.spec.satisfies('@0.13')): + # 0.13 fails when we try to build it with html. + args.append('--disable-html') + else: + args.append('--enable-html') + args.append('--with-sphinx-build={0}'.format(sphinx_bin.join( + 'sphinx-build'))) else: args.append('--disable-html') diff --git a/var/spack/repos/builtin/packages/charmpp/package.py b/var/spack/repos/builtin/packages/charmpp/package.py index a6c60ef11d..3afeb6cadb 100644 --- a/var/spack/repos/builtin/packages/charmpp/package.py +++ b/var/spack/repos/builtin/packages/charmpp/package.py @@ -23,6 +23,7 @@ class Charmpp(Package): version("develop", branch="master") + version('6.10.2', sha256='7abb4cace8aebdfbb8006eac03eb766897c009cfb919da0d0a33f74c3b4e6deb') version('6.10.1', sha256='ab96198105daabbb8c8bdf370f87b0523521ce502c656cb6cd5b89f69a2c70a8') version('6.10.0', sha256='7c526a78aa0c202b7f0418b345138e7dc40496f0bb7b9e301e0381980450b25c') version("6.9.0", sha256="85ed660e46eeb7a6fc6b32deab08226f647c244241948f6b592ebcd2b6050cbd") @@ -52,7 +53,7 @@ class Charmpp(Package): "build-target", default="LIBS", # AMPI also builds charm++, LIBS also builds AMPI and charm++ - values=("charm++", "AMPI", "LIBS"), + values=("charm++", "AMPI", "LIBS", "ChaNGa"), description="Specify the target to build" ) @@ -168,9 +169,6 @@ class Charmpp(Package): ("win", "x86_64", "netlrts"): "netlrts-win-x86_64", ("cnl", "x86_64", "gni"): "gni-crayxc", ("cnl", "x86_64", "mpi"): "mpi-crayxc", - ("cnk", "x86_64", "mpi"): "mpi-bluegeneq", - ("cnk", "x86_64", "pami"): "pami-bluegeneq", - ("cnk", "x86_64", "pamilrts"): "pamilrts-bluegeneq", } if (plat, mach, comm) not in versions: raise InstallError( @@ -217,7 +215,7 @@ class Charmpp(Package): present on the system") target = spec.variants["build-target"].value - builddir = prefix + "/" + str(self.charmarch) + builddir = prefix # We assume that Spack's compiler wrappers make this work. If # not, then we need to query the compiler vendor from Spack diff --git a/var/spack/repos/builtin/packages/clamav/package.py b/var/spack/repos/builtin/packages/clamav/package.py index 567fd38555..cb67e39c1b 100644 --- a/var/spack/repos/builtin/packages/clamav/package.py +++ b/var/spack/repos/builtin/packages/clamav/package.py @@ -22,6 +22,7 @@ class Clamav(AutotoolsPackage): depends_on('yara') depends_on('zlib') depends_on('bzip2') + depends_on('curl', type='link') def configure_args(self): spec = self.spec diff --git a/var/spack/repos/builtin/packages/claw/package.py b/var/spack/repos/builtin/packages/claw/package.py index b15f5324e7..0c43205a82 100644 --- a/var/spack/repos/builtin/packages/claw/package.py +++ b/var/spack/repos/builtin/packages/claw/package.py @@ -15,6 +15,7 @@ class Claw(CMakePackage): git = 'https://github.com/claw-project/claw-compiler.git' maintainers = ['clementval'] + version('2.0.2', commit='8c012d58484d8caf79a4fe45597dc74b4367421c', submodules=True) version('2.0.1', commit='f5acc929df74ce66a328aa4eda9cc9664f699b91', submodules=True) version('2.0', commit='53e705b8bfce40a5c5636e8194a7622e337cf4f5', submodules=True) version('1.2.3', commit='eaf5e5fb39150090e51bec1763170ce5c5355198', submodules=True) diff --git a/var/spack/repos/builtin/packages/cmake/intel-cxx-bootstrap.patch b/var/spack/repos/builtin/packages/cmake/intel-cxx-bootstrap.patch new file mode 100644 index 0000000000..d5475b2e54 --- /dev/null +++ b/var/spack/repos/builtin/packages/cmake/intel-cxx-bootstrap.patch @@ -0,0 +1,11 @@ +--- a/bootstrap 2020-07-24 11:02:56.488414260 +0200 ++++ b/bootstrap 2020-07-24 11:03:20.763775094 +0200 +@@ -1179,7 +1179,7 @@ + } + #endif + +-#if (__cplusplus >= 201703L || defined(__INTEL_COMPILER) && defined(__cpp_if_constexpr)) ++#if (__cplusplus >= 201703L || defined(__INTEL_COMPILER) && defined(__cpp_deduction_guides)) + #include <optional> + template <typename T, + typename std::invoke_result<decltype(&T::get), T>::type = nullptr> diff --git a/var/spack/repos/builtin/packages/cmake/package.py b/var/spack/repos/builtin/packages/cmake/package.py index 20ade16950..b687f75870 100644 --- a/var/spack/repos/builtin/packages/cmake/package.py +++ b/var/spack/repos/builtin/packages/cmake/package.py @@ -2,26 +2,26 @@ # Spack Project Developers. See the top-level COPYRIGHT file for details. # # SPDX-License-Identifier: (Apache-2.0 OR MIT) - -from spack import * - import re -import os class Cmake(Package): """A cross-platform, open-source build system. CMake is a family of - tools designed to build, test and package software.""" + tools designed to build, test and package software. + """ homepage = 'https://www.cmake.org' - url = 'https://github.com/Kitware/CMake/releases/download/v3.15.5/cmake-3.15.5.tar.gz' + url = 'https://github.com/Kitware/CMake/releases/download/v3.15.5/cmake-3.15.5.tar.gz' maintainers = ['chuckatkins'] - executables = ['cmake'] + executables = ['^cmake$'] + version('3.18.1', sha256='c0e3338bd37e67155b9d1e9526fec326b5c541f74857771b7ffed0c46ad62508') + version('3.18.0', sha256='83b4ffcb9482a73961521d2bafe4a16df0168f03f56e6624c419c461e5317e29') version('3.17.3', sha256='0bd60d512275dc9f6ef2a2865426a184642ceb3761794e6b65bff233b91d8c40') version('3.17.1', sha256='3aa9114485da39cbd9665a0bfe986894a282d5f0882b1dea960a739496620727') version('3.17.0', sha256='b74c05b55115eacc4fa2b77a814981dbda05cdc95a53e279fe16b7b272f00847') version('3.16.5', sha256='5f760b50b8ecc9c0c37135fae5fbf00a2fef617059aa9d61c1bb91653e5a8bfc') + version('3.16.3', sha256='e54f16df9b53dac30fd626415833a6e75b0e47915393843da1825b096ee60668') version('3.16.2', sha256='8c09786ec60ca2be354c29829072c38113de9184f29928eb9da8446a5f2ce6a9') version('3.16.1', sha256='a275b3168fa8626eca4465da7bb159ff07c8c6cb0fb7179be59e12cbdfa725fd') version('3.16.0', sha256='6da56556c63cab6e9a3e1656e8763ed4a841ac9859fefb63cbe79472e67e8c5f') @@ -135,6 +135,10 @@ class Cmake(Package): # https://gitlab.kitware.com/cmake/cmake/issues/16226 patch('intel-c-gnu11.patch', when='@3.6.0:3.6.1') + # Cannot build with Intel again, should be fixed in 3.17.4 and 3.18.1 + # https://gitlab.kitware.com/cmake/cmake/-/issues/21013 + patch('intel-cxx-bootstrap.patch', when='@3.17.0:3.17.3,3.18.0') + # https://gitlab.kitware.com/cmake/cmake/issues/18232 patch('nag-response-files.patch', when='@3.7:3.12') @@ -157,20 +161,10 @@ class Cmake(Package): phases = ['bootstrap', 'build', 'install'] @classmethod - def determine_spec_details(cls, prefix, exes_in_prefix): - exe_to_path = dict( - (os.path.basename(p), p) for p in exes_in_prefix - ) - if 'cmake' not in exe_to_path: - return None - - cmake = spack.util.executable.Executable(exe_to_path['cmake']) - output = cmake('--version', output=str) - if output: - match = re.search(r'cmake.*version\s+(\S+)', output) - if match: - version_str = match.group(1) - return Spec('cmake@{0}'.format(version_str)) + def determine_version(cls, exe): + output = Executable(exe)('--version', output=str) + match = re.search(r'cmake.*version\s+(\S+)', output) + return match.group(1) if match else None def flag_handler(self, name, flags): if name == 'cxxflags' and self.compiler.name == 'fj': diff --git a/var/spack/repos/builtin/packages/comgr/package.py b/var/spack/repos/builtin/packages/comgr/package.py new file mode 100644 index 0000000000..04af80ada6 --- /dev/null +++ b/var/spack/repos/builtin/packages/comgr/package.py @@ -0,0 +1,34 @@ +# 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 Comgr(CMakePackage): + """This provides various Lightning Compiler related services. It currently + contains one library, the Code Object Manager (Comgr)""" + + homepage = "https://github.com/RadeonOpenCompute/ROCm-CompilerSupport" + url = "https://github.com/RadeonOpenCompute/ROCm-CompilerSupport/archive/rocm-3.5.0.tar.gz" + + maintainers = ['srekolam', 'arjun-raj-kuppala'] + + version('3.5.0', sha256='25c963b46a82d76d55b2302e0e18aac8175362656a465549999ad13d07b689b9') + + variant('build_type', default='Release', values=("Release", "Debug"), description='CMake build type') + + depends_on('cmake@3:', type='build') + + for ver in ['3.5.0']: + depends_on('llvm-amdgpu@' + ver, type='build', when='@' + ver) + depends_on('rocm-device-libs@' + ver, type='build', when='@' + ver) + depends_on('rocm-cmake@' + ver, type='build', when='@' + ver) + + depends_on('zlib', type='link') + depends_on('z3', type='link') + depends_on('ncurses', type='link') + + root_cmakelists_dir = 'lib/comgr' diff --git a/var/spack/repos/builtin/packages/conduit/package.py b/var/spack/repos/builtin/packages/conduit/package.py index 0e2ae11f58..8aae3db8b2 100644 --- a/var/spack/repos/builtin/packages/conduit/package.py +++ b/var/spack/repos/builtin/packages/conduit/package.py @@ -85,7 +85,7 @@ class Conduit(Package): # CMake ####################### # cmake 3.8.2 or newer - depends_on("cmake@3.8.2:", type='build') + depends_on("cmake@3.8.2:3.17.9999", type='build') ####################### # Python @@ -408,7 +408,7 @@ class Conduit(Package): cfg.write(cmake_cache_entry("CMAKE_Fortran_COMPILER_ID", "XL")) - if 'xl@coral' in os.getenv('SPACK_COMPILER_SPEC', ""): + if (f_compiler is not None) and ("xlf" in f_compiler): # Fix missing std linker flag in xlc compiler flags = "-WF,-C! -qxlf2003=polymorphic" cfg.write(cmake_cache_entry("BLT_FORTRAN_FLAGS", @@ -416,10 +416,15 @@ class Conduit(Package): # Grab lib directory for the current fortran compiler libdir = os.path.join(os.path.dirname( os.path.dirname(f_compiler)), "lib") - flags = "${BLT_EXE_LINKER_FLAGS} -lstdc++ " - flags += "-Wl,-rpath,{0} -Wl,-rpath,{0}64".format(libdir) + rpaths = "-Wl,-rpath,{0} -Wl,-rpath,{0}64".format(libdir) + + flags = "${BLT_EXE_LINKER_FLAGS} -lstdc++ " + rpaths cfg.write(cmake_cache_entry("BLT_EXE_LINKER_FLAGS", flags)) + if "+shared" in spec: + flags = "${CMAKE_SHARED_LINKER_FLAGS} " + rpaths + cfg.write(cmake_cache_entry( + "CMAKE_SHARED_LINKER_FLAGS", flags)) ####################### # Python diff --git a/var/spack/repos/builtin/packages/couchdb/package.py b/var/spack/repos/builtin/packages/couchdb/package.py new file mode 100644 index 0000000000..c151b963f4 --- /dev/null +++ b/var/spack/repos/builtin/packages/couchdb/package.py @@ -0,0 +1,41 @@ +# 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 Couchdb(AutotoolsPackage): + """A CouchDB server hosts named databases, which store documents. Each document + is uniquely named in the database, and CouchDB provides a RESTful HTTP API + for reading and updating (add, edit, delete) database documents.""" + + homepage = "https://couchdb.apache.org/" + url = "http://archive.apache.org/dist/couchdb/source/3.1.0/apache-couchdb-3.1.0.tar.gz" + + version('3.1.0', sha256='4867c796a1ff6f0794b7bd3863089ea6397bd5c47544f9b97db8cdacff90f8ed') + version('3.0.1', sha256='08d61d5c779957d074d5097f28a2dfc9eb518af3c479d5318135ff31212cc522') + version('3.0.0', sha256='d109bb1a70fe746c04a9bf79a2bb1096cb949c750c29dbd196e9c2efd4167fd9') + + depends_on('icu4c') + depends_on('openssl') + depends_on('curl') + depends_on('node-js@6:') + depends_on('mozjs@1.8.5') + depends_on('gmake', type='build') + depends_on('help2man', type='build') + depends_on('python', type=('build', 'run')) + depends_on('erlang@:22.99', type=('build', 'run')) + + def setup_build_environment(self, env): + env.set('CPATH', self.spec['mozjs'].prefix.include.js) + + def configure_args(self): + args = ['--disable-docs'] + return args + + def install(self, spec, prefix): + make('release') + with working_dir('rel/couchdb/'): + install_tree('.', prefix) diff --git a/var/spack/repos/builtin/packages/cp2k/package.py b/var/spack/repos/builtin/packages/cp2k/package.py index 18c721220a..1ea4d44640 100644 --- a/var/spack/repos/builtin/packages/cp2k/package.py +++ b/var/spack/repos/builtin/packages/cp2k/package.py @@ -34,6 +34,8 @@ class Cp2k(MakefilePackage, CudaPackage): variant('smm', default='libxsmm', values=('libxsmm', 'libsmm', 'blas'), description='Library for small matrix multiplications') variant('plumed', default=False, description='Enable PLUMED support') + variant('libint', default=True, + description='Use libint, required for HFX (and possibly others)') variant('libxc', default=True, description='Support additional functionals via libxc') variant('pexsi', default=False, @@ -82,14 +84,15 @@ class Cp2k(MakefilePackage, CudaPackage): # use pkg-config (support added in libxsmm-1.10) to link to libxsmm depends_on('pkgconfig', type='build', when='smm=libxsmm') # ... and in CP2K 7.0+ for linking to libint2 - depends_on('pkgconfig', type='build', when='@7.0:') + depends_on('pkgconfig', type='build', when='+libint@7.0:') + depends_on('pkgconfig', type='build', when='+libxc@7.0:') # libint & libxc are always statically linked - depends_on('libint@1.1.4:1.2', when='@3.0:6.9', type='build') + depends_on('libint@1.1.4:1.2', when='+libint@3.0:6.9', type='build') for lmax in HFX_LMAX_RANGE: # libint2 can be linked dynamically again depends_on('libint@2.6.0:+fortran tune=cp2k-lmax-{0}'.format(lmax), - when='@7.0: lmax={0}'.format(lmax)) + when='+libint@7.0: lmax={0}'.format(lmax)) depends_on('libxc@2.2.2:', when='+libxc@:5.5999', type='build') depends_on('libxc@4.0.3:', when='+libxc@6.0:6.9', type='build') @@ -145,6 +148,10 @@ class Cp2k(MakefilePackage, CudaPackage): conflicts('%clang') conflicts('%nag') + # please set variants: smm=blas by configuring packages.yaml or install + # cp2k with option smm=blas on aarch64 + conflicts('smm=libxsmm', when='target=aarch64:', msg='libxsmm is not available on arm') + @property def makefile_architecture(self): return '{0.architecture}-{0.compiler.name}'.format(self.spec) @@ -218,17 +225,10 @@ class Cp2k(MakefilePackage, CudaPackage): dflags = ['-DNDEBUG'] cppflags = [ - '-D__LIBINT', '-D__FFTW3', '-I{0}'.format(fftw_header_dir), ] - if '@:6.9' in spec: - cppflags += [ - '-D__LIBINT_MAX_AM=6', - '-D__LIBDERIV_MAX_AM1=5', - ] - if '^mpi@3:' in spec: cppflags.append('-D__MPI_VERSION=3') elif '^mpi@2:' in spec: @@ -287,19 +287,6 @@ class Cp2k(MakefilePackage, CudaPackage): if 'superlu-dist@4.3' in spec: ldflags.insert(0, '-Wl,--allow-multiple-definition') - if '@:6.9' in spec: - # libint-1.x.y has to be linked statically to work around - # inconsistencies in its Fortran interface definition - # (short-int vs int) which otherwise causes segfaults at runtime - # due to wrong offsets into the shared library symbols. - libs.extend([ - os.path.join(spec['libint'].libs.directories[0], 'libderiv.a'), - os.path.join(spec['libint'].libs.directories[0], 'libint.a'), - ]) - else: - fcflags += pkgconf('--cflags', 'libint2', output=str).split() - libs += pkgconf('--libs', 'libint2', output=str).split() - if '+plumed' in self.spec: dflags.extend(['-D__PLUMED2']) cppflags.extend(['-D__PLUMED2']) @@ -363,6 +350,30 @@ class Cp2k(MakefilePackage, CudaPackage): ) libs.append(wannier) + if '+libint' in spec: + cppflags += ['-D__LIBINT'] + + if '@:6.9' in spec: + cppflags += [ + '-D__LIBINT_MAX_AM=6', + '-D__LIBDERIV_MAX_AM1=5', + ] + + # libint-1.x.y has to be linked statically to work around + # inconsistencies in its Fortran interface definition + # (short-int vs int) which otherwise causes segfaults at + # runtime due to wrong offsets into the shared library + # symbols. + libs.extend([ + os.path.join( + spec['libint'].libs.directories[0], 'libderiv.a'), + os.path.join( + spec['libint'].libs.directories[0], 'libint.a'), + ]) + else: + fcflags += pkgconf('--cflags', 'libint2', output=str).split() + libs += pkgconf('--libs', 'libint2', output=str).split() + if '+libxc' in spec: cppflags += ['-D__LIBXC'] diff --git a/var/spack/repos/builtin/packages/cpio/package.py b/var/spack/repos/builtin/packages/cpio/package.py index ecaf2531ea..d5238cff1c 100644 --- a/var/spack/repos/builtin/packages/cpio/package.py +++ b/var/spack/repos/builtin/packages/cpio/package.py @@ -20,6 +20,12 @@ class Cpio(AutotoolsPackage, GNUMirrorPackage): build_directory = 'spack-build' def flag_handler(self, name, flags): - if self.spec.satisfies('%intel') and name == 'cflags': + spec = self.spec + + if '%intel' in spec and name == 'cflags': flags.append('-no-gcc') + + if '%clang' in spec and name == 'cflags': + flags.append('--rtlib=compiler-rt') + return (flags, None, None) diff --git a/var/spack/repos/builtin/packages/cppcheck/package.py b/var/spack/repos/builtin/packages/cppcheck/package.py index fc943e9517..7d00ca4969 100644 --- a/var/spack/repos/builtin/packages/cppcheck/package.py +++ b/var/spack/repos/builtin/packages/cppcheck/package.py @@ -11,6 +11,7 @@ class Cppcheck(MakefilePackage): homepage = "http://cppcheck.sourceforge.net/" url = "https://downloads.sourceforge.net/project/cppcheck/cppcheck/1.78/cppcheck-1.78.tar.bz2" + version('2.1', sha256='ab26eeef039e5b58aac01efb8cb664f2cc16bf9879c61bc93cd00c95be89a5f7') version('1.87', sha256='e3b0a46747822471df275417d4b74b56ecac88367433e7428f39288a32c581ca') version('1.81', sha256='bb694f37ae0b5fed48c6cdc2fb5e528daf32cefc64e16b1a520c5411323cf27e') version('1.78', sha256='e42696f7d6321b98cb479ad9728d051effe543b26aca8102428f60b9850786b1') diff --git a/var/spack/repos/builtin/packages/cpprestsdk/package.py b/var/spack/repos/builtin/packages/cpprestsdk/package.py index 3bfbf52c29..70425ed7db 100644 --- a/var/spack/repos/builtin/packages/cpprestsdk/package.py +++ b/var/spack/repos/builtin/packages/cpprestsdk/package.py @@ -15,13 +15,22 @@ class Cpprestsdk(CMakePackage): homepage = "https://github.com/Microsoft/cpprestsdk" url = "https://github.com/Microsoft/cpprestsdk/archive/v2.9.1.tar.gz" + version('2.10.16', git='https://github.com/Microsoft/cpprestsdk', branch='v2.10.16', submodules=True) version('2.9.1', sha256='537358760acd782f4d2ed3a85d92247b4fc423aff9c85347dc31dbb0ab9bab16') depends_on('boost@:1.69.0') + depends_on('openssl') # Ref: https://github.com/microsoft/cpprestsdk/commit/f9f518e4ad84577eb684ad8235181e4495299af4 # Ref: https://github.com/Microsoft/cpprestsdk/commit/6b2e0480018530b616f61d5cdc786c92ba148bb7 # Ref: https://github.com/microsoft/cpprestsdk/commit/70c1b14f39f5d47984fdd8a31fc357ebb5a37851 - patch('Release.patch') + patch('Release.patch', when='@2.9.1') root_cmakelists_dir = 'Release' + + def cmake_args(self): + args = [ + '-DWERROR:BOOL=Off' + ] + + return args diff --git a/var/spack/repos/builtin/packages/csa-c/package.py b/var/spack/repos/builtin/packages/csa-c/package.py new file mode 100644 index 0000000000..9bc09f49fd --- /dev/null +++ b/var/spack/repos/builtin/packages/csa-c/package.py @@ -0,0 +1,19 @@ +# 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 CsaC(AutotoolsPackage): + """csa: Cubic Spline Approximation. csa is a C code for + cubic spline approximation of 2D scattered data. It provides + a C library and a command line utility csabathy.""" + + homepage = "https://github.com/sakov/csa-c" + git = "https://github.com/sakov/csa-c.git" + + version('master', branch='master') + + configure_directory = 'csa' diff --git a/var/spack/repos/builtin/packages/cub/package.py b/var/spack/repos/builtin/packages/cub/package.py index 5c1764e345..dba0d2e980 100644 --- a/var/spack/repos/builtin/packages/cub/package.py +++ b/var/spack/repos/builtin/packages/cub/package.py @@ -11,9 +11,13 @@ class Cub(Package): and other utilities for CUDA kernel programming.""" homepage = "https://nvlabs.github.com/cub" - url = "https://github.com/NVlabs/cub/archive/v1.7.1.zip" + url = "https://github.com/NVlabs/cub/archive/1.7.1.zip" git = "https://github.com/NVlabs/cub.git" + version('1.9.10', sha256='063fea7c9bf87677a5fc5889e3fcd51582b77a2b3af9fa599d846a9c98ce9407') + version('1.9.9', sha256='162514b3cc264ac89d91898b58450190b8192e2af1142cf8ccac2d59aa160dda') + version('1.9.8-1', sha256='f61d05367bd8fe8bfb0eafa20f7b14d27deb8b25a398c53d8a97a01a2399431b') + version('1.9.8', sha256='694845bdca04fcc67d52c14d1fe6d9b627f41e6bfec0e0987d846a4e93a136f4') version('1.8.0', sha256='6bfa06ab52a650ae7ee6963143a0bbc667d6504822cbd9670369b598f18c58c3') version('1.7.5', sha256='8f8e0b101324a9839003ff1154c8439137cd38b2039f403a92e76d5c52cee23f') version('1.7.4', sha256='20a1a39fd97e5da7f40f5f2e7fd73fd2ea59f9dc4bb8a6c5f228aa543e727e31') diff --git a/var/spack/repos/builtin/packages/cuda/package.py b/var/spack/repos/builtin/packages/cuda/package.py index 6d1332c9ad..785f7c3c0c 100644 --- a/var/spack/repos/builtin/packages/cuda/package.py +++ b/var/spack/repos/builtin/packages/cuda/package.py @@ -7,6 +7,7 @@ from spack import * from glob import glob from llnl.util.filesystem import LibraryList import os +import re import platform import llnl.util.tty as tty @@ -22,6 +23,9 @@ import llnl.util.tty as tty # format returned by platform.system() and 'arch' by platform.machine() _versions = { + '11.0.2': { + 'Linux-x86_64': ('48247ada0e3f106051029ae8f70fbd0c238040f58b0880e55026374a959a69c1', 'http://developer.download.nvidia.com/compute/cuda/11.0.2/local_installers/cuda_11.0.2_450.51.05_linux.run'), + 'Linux-ppc64le': ('db06d0f3fbf6f7aa1f106fc921ad1c86162210a26e8cb65b171c5240a3bf75da', 'http://developer.download.nvidia.com/compute/cuda/11.0.2/local_installers/cuda_11.0.2_450.51.05_linux_ppc64le.run')}, '10.2.89': { 'Linux-x86_64': ('560d07fdcf4a46717f2242948cd4f92c5f9b6fc7eae10dd996614da913d5ca11', 'http://developer.download.nvidia.com/compute/cuda/10.2/Prod/local_installers/cuda_10.2.89_440.33.01_linux.run'), 'Linux-ppc64le': ('5227774fcb8b10bd2d8714f0a716a75d7a2df240a9f2a49beb76710b1c0fc619', 'http://developer.download.nvidia.com/compute/cuda/10.2/Prod/local_installers/cuda_10.2.89_440.33.01_linux_ppc64le.run')}, @@ -57,6 +61,8 @@ class Cuda(Package): homepage = "https://developer.nvidia.com/cuda-zone" + executables = ['^nvcc$'] + for ver, packages in _versions.items(): key = "{0}-{1}".format(platform.system(), platform.machine()) pkg = packages.get(key) @@ -76,6 +82,13 @@ class Cuda(Package): depends_on('libxml2', when='@10.1.243:') + @classmethod + def determine_version(cls, exe): + output = Executable(exe)('--version', output=str, error=str) + match = re.search(r'Cuda compilation tools, release .*?, V(\S+)', + output) + return match.group(1) if match else None + def setup_build_environment(self, env): if self.spec.satisfies('@10.1.243:'): libxml2_home = self.spec['libxml2'].prefix @@ -136,6 +149,7 @@ class Cuda(Package): # CUDA 10.0 provides Compatability libraries for running newer versions # of CUDA with older drivers. These do not work with newer drivers. for lib in libs: - if 'compat' not in lib.split(os.sep): + parts = lib.split(os.sep) + if 'compat' not in parts and 'stubs' not in parts: filtered_libs.append(lib) return LibraryList(filtered_libs) diff --git a/var/spack/repos/builtin/packages/cudnn/package.py b/var/spack/repos/builtin/packages/cudnn/package.py index f0e8904e34..0d0e49d9e5 100644 --- a/var/spack/repos/builtin/packages/cudnn/package.py +++ b/var/spack/repos/builtin/packages/cudnn/package.py @@ -22,6 +22,20 @@ class Cudnn(Package): maintainers = ['adamjstewart'] + # cuDNN 8.0.2 + version('8.0.2.39-11.0-linux-x64', + sha256='672f46288b8edd98f8d156a4f1ff518201ca6de0cff67915ceaa37f6d6d86345') + version('8.0.2.39-11.0-linux-ppc64le', + sha256='b7c1ce5b1191eb007ba3455ea5f497fdce293a646545d8a6ed93e9bb06d7f057') + version('8.0.2.39-10.2-linux-x64', + sha256='c9cbe5c211360f3cfbc0fb104f0e9096b37e53f89392525679f049276b2f701f') + version('8.0.2.39-10.2-linux-ppc64le', + sha256='c32325ff84a8123491f2e58b3694885a9a672005bc21764b38874688c0e43262') + version('8.0.2.39-10.1-linux-x64', + sha256='82148a68bd6bdaab93af5e05bb1842b8ccb3ab7de7bed41f609a7616c102213d') + version('8.0.2.39-10.1-linux-ppc64le', + sha256='8196ec4f031356317baeccefbc4f61c8fccb2cf0bdef0a6431438918ddf68fb9') + # cuDNN 8.0 version('8.0.0.180-11.0-linux-x64', sha256='9e75ea70280a77de815e0bdc85d08b67e081bc99a708b574092142344d2ba07e') @@ -36,6 +50,8 @@ class Cudnn(Package): version('7.6.5.32-10.2-linux-x64', sha256='600267f2caaed2fd58eb214ba669d8ea35f396a7d19b94822e6b36f9f7088c20', preferred=True) + version('7.6.5.32-10.2-linux-ppc64le', + sha256='7dc08b6ab9331bfd12207d4802c61db1ad7cace7395b67a6e7b16efa0335668b') version('7.6.5.32-10.1-linux-x64', sha256='7eaec8039a2c30ab0bc758d303588767693def6bf49b22485a2c00bf2e136cb3') version('7.6.5.32-10.1-osx-x64', diff --git a/var/spack/repos/builtin/packages/curl/package.py b/var/spack/repos/builtin/packages/curl/package.py index e0e964893f..abb09d78e1 100644 --- a/var/spack/repos/builtin/packages/curl/package.py +++ b/var/spack/repos/builtin/packages/curl/package.py @@ -15,6 +15,7 @@ class Curl(AutotoolsPackage): # URL must remain http:// so Spack can bootstrap curl url = "http://curl.haxx.se/download/curl-7.60.0.tar.bz2" + version('7.71.0', sha256='600f00ac2481a89548a4141ddf983fd9386165e1960bac91d0a1c81dca5dd341') version('7.68.0', sha256='207f54917dd6a2dc733065ccf18d61bb5bebeaceb5df49cd9445483e8623eeb9') version('7.63.0', sha256='9bab7ed4ecff77020a312d84cc5fb7eb02d58419d218f267477a724a17fd8dd8') version('7.60.0', sha256='897dfb2204bd99be328279f88f55b7c61592216b0542fcbe995c60aa92871e9b') @@ -51,6 +52,7 @@ class Curl(AutotoolsPackage): conflicts('platform=linux', when='+darwinssl') depends_on('openssl', when='~darwinssl') + depends_on('libidn2') depends_on('zlib') depends_on('nghttp2', when='+nghttp2') depends_on('libssh2', when='+libssh2') @@ -61,6 +63,8 @@ class Curl(AutotoolsPackage): spec = self.spec args = ['--with-zlib={0}'.format(spec['zlib'].prefix)] + args.append('--with-libidn2={0}'.format(spec['libidn2'].prefix)) + if spec.satisfies('+darwinssl'): args.append('--with-darwinssl') else: diff --git a/var/spack/repos/builtin/packages/darshan-runtime/package.py b/var/spack/repos/builtin/packages/darshan-runtime/package.py index c58bc9edd5..1c81045e69 100644 --- a/var/spack/repos/builtin/packages/darshan-runtime/package.py +++ b/var/spack/repos/builtin/packages/darshan-runtime/package.py @@ -29,12 +29,13 @@ class DarshanRuntime(Package): version('3.1.0', sha256='b847047c76759054577823fbe21075cfabb478cdafad341d480274fb1cef861c') version('3.0.0', sha256='95232710f5631bbf665964c0650df729c48104494e887442596128d189da43e0') - depends_on('mpi') + depends_on('mpi', when='+mpi') depends_on('zlib') variant('slurm', default=False, description='Use Slurm Job ID') variant('cobalt', default=False, description='Use Coblat Job Id') variant('pbs', default=False, description='Use PBS Job Id') + variant('mpi', default=True, description='Compile with MPI support') def install(self, spec, prefix): @@ -47,11 +48,15 @@ class DarshanRuntime(Package): job_id = 'PBS_JOBID' # TODO: BG-Q and other platform configure options - options = ['CC=%s' % spec['mpi'].mpicc, - '--with-mem-align=8', - '--with-log-path-by-env=DARSHAN_LOG_DIR_PATH', - '--with-jobid-env=%s' % job_id, - '--with-zlib=%s' % spec['zlib'].prefix] + options = [] + if '+mpi' in spec: + options = ['CC=%s' % spec['mpi'].mpicc] + else: + options = ['--without-mpi'] + options.extend(['--with-mem-align=8', + '--with-log-path-by-env=DARSHAN_LOG_DIR_PATH', + '--with-jobid-env=%s' % job_id, + '--with-zlib=%s' % spec['zlib'].prefix]) with working_dir('spack-build', create=True): configure = Executable('../darshan-runtime/configure') diff --git a/var/spack/repos/builtin/packages/dcmtk/package.py b/var/spack/repos/builtin/packages/dcmtk/package.py index 2bf3db66d1..7b5fab7f64 100644 --- a/var/spack/repos/builtin/packages/dcmtk/package.py +++ b/var/spack/repos/builtin/packages/dcmtk/package.py @@ -37,6 +37,16 @@ class Dcmtk(CMakePackage): variant('cxx11', default=False, description="Enable c++11 features") variant('stl', default=True, description="Use native STL implementation") + def patch(self): + # Backport 3.6.4 + if self.spec.satisfies('@:3.6.3 %fj'): + filter_file( + 'OFintegral_constant<size_t,-1>', + 'OFintegral_constant<size_t,~OFstatic_cast(size_t,0)>', + 'ofstd/include/dcmtk/ofstd/variadic/helpers.h', + string=True + ) + def cmake_args(self): args = ["-DDCMTK_WITH_OPENSSL={0}".format( 'ON' if '+ssl' in self.spec else 'OFF')] diff --git a/var/spack/repos/builtin/packages/dd4hep/package.py b/var/spack/repos/builtin/packages/dd4hep/package.py index 76de6090c5..112536afab 100644 --- a/var/spack/repos/builtin/packages/dd4hep/package.py +++ b/var/spack/repos/builtin/packages/dd4hep/package.py @@ -22,6 +22,8 @@ class Dd4hep(CMakePackage): maintainers = ['vvolkl', 'drbenmorgan'] version('master', branch='master') + version('1.13.1', sha256='83fa70cd74ce93b2f52f098388dff58d179f05ace5b50aea3f408bb8abf7cb73') + version('1.13.0', sha256='0b1f9d902ebe21a9178c1e41204c066b29f68c8836fd1d03a9ce979811ddb295') version('1.12.1', sha256='85e8c775ec03c499ce10911e228342e757c81ce9ef2a9195cb253b85175a2e93') version('1.12.0', sha256='133a1fb8ce0466d2482f3ebb03e60b3bebb9b2d3e33d14ba15c8fbb91706b398') version('1.11.2', sha256='96a53dd26cb8df11c6dae54669fbc9cc3c90dd47c67e07b24be9a1341c95abc4') @@ -37,6 +39,7 @@ class Dd4hep(CMakePackage): 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") depends_on('cmake @3.12:', type='build') depends_on('boost @1.49:') @@ -45,6 +48,7 @@ class Dd4hep(CMakePackage): depends_on('xerces-c', when='+xercesc') depends_on('geant4@10.2.2:', when='+geant4') depends_on('assimp', when='+assimp') + depends_on('hepmc3', when="+hepmc3") def cmake_args(self): spec = self.spec @@ -57,6 +61,7 @@ class Dd4hep(CMakePackage): "-DDD4HEP_USE_XERCESC={0}".format(spec.satisfies('+xercesc')), "-DDD4HEP_USE_GEANT4={0}".format(spec.satisfies('+geant4')), "-DDD4HEP_LOAD_ASSIMP={0}".format(spec.satisfies('+assimp')), + "-DDD4HEP_USE_HEPMC3={0}".format(spec.satisfies('+hepmc3')), "-DBUILD_TESTING={0}".format(self.run_tests), "-DBOOST_ROOT={0}".format(spec['boost'].prefix), "-DBoost_NO_BOOST_CMAKE=ON", diff --git a/var/spack/repos/builtin/packages/delphes/package.py b/var/spack/repos/builtin/packages/delphes/package.py index b3b511a00f..5c37df8684 100644 --- a/var/spack/repos/builtin/packages/delphes/package.py +++ b/var/spack/repos/builtin/packages/delphes/package.py @@ -18,7 +18,8 @@ class Delphes(CMakePackage): maintainers = ['drbenmorgan', 'vvolkl', 'selvaggi'] version('master', branch='master') - version('3.4.2', sha256='d46a7c5474de650befdb89377115feee31f1743107ceb3d8da699be9d48c097b') + version('3.4.3pre04', tag='3.4.3pre04') + version('3.4.2', sha256='d46a7c5474de650befdb89377115feee31f1743107ceb3d8da699be9d48c097b', preferred=True) version('3.4.1', sha256='4b5a2aeac326643f45b6d45c39ba2302e323eeb86d8cb58843c6e73949b1208a') version('3.4.0', sha256='c0f9500663a0c3a5c1eddcee598a67b5bcfc9318303195c6cacc0590b4023fa1') version('3.3.3', sha256='404de818a6b7852b01187ccf598d8ac19d308b9361f128751ef003cde248ff00') @@ -38,13 +39,8 @@ class Delphes(CMakePackage): version('3.0.6', sha256='9e225731d57d2a76d35886841f8eff121bb3a45560b16077bd8c351151581d88') version('3.0.5', sha256='ab64ec6d2476fbfa40562e7edb510a8ab4c4fe5be77a4353ebf315c2af181a80') - depends_on('cmake', type='build') - depends_on('root cxxstd=14', when='cxxstd=14') - depends_on('root cxxstd=17', when='cxxstd=17') - - variant('build_type', default='Release', - description='The build type to build', - values=('Debug', 'Release')) + variant('pythia8', default=True, + description="build with pythia8") variant('cxxstd', default='17', @@ -52,6 +48,11 @@ class Delphes(CMakePackage): multi=False, description='Use the specified C++ standard when building.') + depends_on('cmake', type='build') + depends_on('root cxxstd=14', when='cxxstd=14') + depends_on('root cxxstd=17', when='cxxstd=17') + depends_on('pythia8', when="+pythia8") + def cmake_args(self): args = [] # C++ Standard diff --git a/var/spack/repos/builtin/packages/dftbplus/package.py b/var/spack/repos/builtin/packages/dftbplus/package.py new file mode 100644 index 0000000000..a8b313988e --- /dev/null +++ b/var/spack/repos/builtin/packages/dftbplus/package.py @@ -0,0 +1,147 @@ +# 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 * +import os + + +class Dftbplus(MakefilePackage): + """DFTB+ is an implementation of the + Density Functional based Tight Binding (DFTB) method, + containing many extensions to the original method.""" + + homepage = "https://www.dftbplus.org" + url = "https://github.com/dftbplus/dftbplus/archive/19.1.tar.gz" + + version('19.1', sha256='4d07f5c6102f06999d8cfdb1d17f5b59f9f2b804697f14b3bc562e3ea094b8a8') + + resource(name='slakos', + url='https://github.com/dftbplus/testparams/archive/dftbplus-18.2.tar.gz', + sha256='bd191b3d240c1a81a8754a365e53a78b581fc92eb074dd5beb8b56a669a8d3d1', + destination='external/slakos', + when='@18.2:') + + variant('mpi', default=True, + description="Build an MPI-paralelised version of the code.") + + variant('gpu', default=False, + description="Use the MAGMA library " + "for GPU accelerated computation") + + variant('elsi', default=False, + description="Use the ELSI library for large scale systems. " + "Only has any effect if you build with '+mpi'") + + variant('sockets', default=False, + description="Whether the socket library " + "(external control) should be linked") + + variant('arpack', default=False, + description="Use ARPACK for excited state DFTB functionality") + + variant('transport', default=False, + description="Whether transport via libNEGF should be included. " + "Only affects parallel build. " + "(serial version is built without libNEGF/transport)") + + variant('dftd3', default=False, + description="Use DftD3 dispersion library " + "(if you need this dispersion model)") + + depends_on('lapack') + depends_on('blas') + depends_on('scalapack', when="+mpi") + depends_on('mpi', when="+mpi") + depends_on('elsi', when="+elsi") + depends_on('magma', when="+gpu") + depends_on('arpack-ng', when="+arpack") + depends_on('dftd3-lib@0.9.2', when="+dftd3") + + def edit(self, spec, prefix): + """ + First, change the ROOT variable, because, for some reason, + the Makefile and the spack install script run in different directories + + Then, if using GCC, rename the file 'sys/make.x86_64-linux-gnu' + to make.arch. + + After that, edit the make.arch to point to the dependencies + + And the last thing we do here is to set the installdir + """ + dircwd = os.getcwd() + makefile = FileFilter("makefile") + makefile.filter("ROOT := .*", "ROOT := {0}".format(dircwd)) + + archmake = join_path(".", "sys", "make.x86_64-linux-gnu") + copy(archmake, join_path(dircwd, "make.arch")) + + march = FileFilter(join_path(dircwd, 'make.arch')) + + mconfig = FileFilter(join_path(dircwd, 'make.config')) + + mconfig.filter('INSTALLDIR := .*', 'INSTALLDIR := {0}'.format(prefix)) + + if '+gpu' in self.spec: + march.filter('MAGMADIR = .*', + 'MAGMADIR = {0}'.format(spec['magma'].prefix)) + + mconfig.filter('WITH_GPU := .*', 'WITH_GPU := 1') + + if '+mpi' in self.spec: + march.filter('SCALAPACKDIR = .*', + 'SCALAPACKDIR = {0}'.format(spec['scalapack'].prefix)) + + march.filter('LIB_LAPACK = -l.*', + 'LIB_LAPACK = {0}'.format(spec['blas'].libs.ld_flags)) + + march.filter('mpifort', '{0}'.format(spec['mpi'].mpifc)) + + mconfig.filter('WITH_MPI := .*', 'WITH_MPI := 1') + + if '+elsi' in self.spec: + mconfig.filter('WITH_ELSI := .*', 'WITH_ELSI := 1') + + has_pexsi = '+enable_pexsi' in spec['elsi'] + + mconfig.filter('WITH_PEXSI := .*', 'WITH_PEXSI := {0}'.format( + '1' if has_pexsi is True else '0' + )) + + march.filter("ELSIINCDIR .*", "ELSIINCDIR = {0}".format( + spec['elsi'].prefix.include + )) + + march.filter("ELSIDIR .*", + "ELSIDIR = {0}".format(spec['elsi'].prefix)) + + else: + march.filter('LIB_LAPACK += -l.*', 'LIB_LAPACK += {0}'.format( + spec['blas'].libs.ld_flags)) + + if '+sockets' in self.spec: + mconfig.filter('WITH_SOCKETS := .*', 'WITH_SOCKETS := 1') + + if '+transport' in self.spec: + mconfig.filter('WITH_TRANSPORT := .*', 'WITH_TRANSPORT := 1') + + if '+arpack' in self.spec: + march.filter('ARPACK_LIBS = .*', 'ARPACK_LIBS = {0}'.format( + spec['arpack-ng'].libs.ld_flags + )) + + mconfig.filter('WITH_ARPACK := .*', 'WITH_ARPACK := 1') + + if '+dftd3' in self.spec: + march.filter('COMPILE_DFTD3 = .*', 'COMPILE_DFTD3 = 0') + march.filter('DFTD3_INCS = .*', 'DFTD3_INCS = -I{0}'.format( + spec['dftd3-lib'].prefix.include + )) + + march.filter('DFTD3_LIBS = .*', + 'DFTD3_LIBS = -L{0} -ldftd3'.format( + spec['dftd3-lib'].prefix)) + + mconfig.filter('WITH_DFTD3 := .*', 'WITH_DFTD3 := 1') diff --git a/var/spack/repos/builtin/packages/dftd3-lib/package.py b/var/spack/repos/builtin/packages/dftd3-lib/package.py new file mode 100644 index 0000000000..793a312342 --- /dev/null +++ b/var/spack/repos/builtin/packages/dftd3-lib/package.py @@ -0,0 +1,38 @@ +# 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 Dftd3Lib(MakefilePackage): + """A dispersion correction for density functionals, + Hartree-Fock and semi-empirical quantum chemical methods""" + + homepage = "https://www.chemie.uni-bonn.de/pctc/mulliken-center/software/dft-d3/dft-d3" + url = "https://github.com/dftbplus/dftd3-lib/archive/0.9.2.tar.gz" + + version('0.9.2', sha256='4178f3cf2f3e7e982a7084ec66bac92b4fdf164537d9fc0ada840a11b784f0e0') + + # This fixes a concurrency bug, where make would try to start compiling + # the dftd3 target before the lib target ended. + # Since the library is small, disabling causes not much harm + parallel = False + + def edit(self, spec, prefix): + makefile = FileFilter('make.arch') + makefile.filter("FC = gfortran", "") + makefile.filter("LN = gfortran", "LN = $(FC)") + + def install(self, spec, prefix): + mkdir(prefix.lib) + mkdir(prefix.bin) + mkdir(prefix.include) + install("lib/libdftd3.a", prefix.lib) + install("prg/dftd3", prefix.bin) + install("lib/dftd3_api.mod", prefix.include) + install("lib/dftd3_common.mod", prefix.include) + install("lib/dftd3_core.mod", prefix.include) + install("lib/dftd3_pars.mod", prefix.include) + install("lib/dftd3_sizes.mod", prefix.include) diff --git a/var/spack/repos/builtin/packages/dihydrogen/package.py b/var/spack/repos/builtin/packages/dihydrogen/package.py index 6de0cfb516..92d19950a2 100644 --- a/var/spack/repos/builtin/packages/dihydrogen/package.py +++ b/var/spack/repos/builtin/packages/dihydrogen/package.py @@ -14,6 +14,7 @@ class Dihydrogen(CMakePackage, CudaPackage): needs of the distributed machine learning effort, LBANN.""" homepage = "https://github.com/LLNL/DiHydrogen.git" + url = "https://github.com/LLNL/DiHydrogen.git" git = "https://github.com/LLNL/DiHydrogen.git" maintainers = ['bvanessen'] @@ -36,12 +37,23 @@ class Dihydrogen(CMakePackage, CudaPackage): description='Enable ROCm/HIP language features.') variant('shared', default=True, description='Enables the build of shared libraries') + variant('docs', default=False, + description='Builds with support for building documentation') + + # Variants related to BLAS + variant('openmp_blas', default=False, + description='Use OpenMP for threading in the BLAS library') + variant('int64_blas', default=False, + description='Use 64bit integers for BLAS.') + variant('blas', default='openblas', values=('openblas', 'mkl', 'accelerate', 'essl'), + description='Enable the use of OpenBlas/MKL/Accelerate/ESSL') # Override the default set of CUDA architectures with the relevant # subset from lib/spack/spack/build_systems/cuda.py cuda_arch_values = [ '60', '61', '62', '70', '72', '75', + '80' ] variant('cuda_arch', description='CUDA architecture', @@ -51,12 +63,32 @@ class Dihydrogen(CMakePackage, CudaPackage): depends_on('catch2', type='test') depends_on('aluminum', when='+al ~cuda') - depends_on('aluminum +gpu +nccl +mpi_cuda', when='+al +cuda') + depends_on('aluminum +cuda +nccl +ht +cuda_rma', when='+al +cuda') depends_on('cuda', when=('+cuda' or '+legacy')) depends_on('cudnn', when=('+cuda' or '+legacy')) depends_on('cub', when=('+cuda' or '+legacy')) + # Note that #1712 forces us to enumerate the different blas variants + depends_on('openblas', when='blas=openblas ~openmp_blas ~int64_blas') + depends_on('openblas +ilp64', when='blas=openblas ~openmp_blas +int64_blas') + depends_on('openblas threads=openmp', when='blas=openblas +openmp_blas ~int64_blas') + depends_on('openblas threads=openmp +lip64', when='blas=openblas +openmp_blas +int64_blas') + + depends_on('intel-mkl', when="blas=mkl ~openmp_blas ~int64_blas") + depends_on('intel-mkl +ilp64', when="blas=mkl ~openmp_blas +int64_blas") + depends_on('intel-mkl threads=openmp', when='blas=mkl +openmp_blas ~int64_blas') + depends_on('intel-mkl@2017.1 +openmp +ilp64', when='blas=mkl +openmp_blas +int64_blas') + + depends_on('veclibfort', when='blas=accelerate') + conflicts('blas=accelerate +openmp_blas') + + depends_on('essl -cuda', when='blas=essl -openmp_blas ~int64_blas') + depends_on('essl -cuda +ilp64', when='blas=essl -openmp_blas +int64_blas') + depends_on('essl threads=openmp', when='blas=essl +openmp_blas ~int64_blas') + depends_on('essl threads=openmp +ilp64', when='blas=essl +openmp_blas +int64_blas') + depends_on('netlib-lapack +external-blas', when='blas=essl') + # Legacy builds require cuda conflicts('~cuda', when='+legacy') @@ -64,7 +96,10 @@ class Dihydrogen(CMakePackage, CudaPackage): generator = 'Ninja' depends_on('ninja', type='build') - depends_on('cmake@3.14.0:', type='build') + depends_on('cmake@3.16.0:', type='build') + + depends_on('py-breathe', type='build', when='+docs') + depends_on('doxygen', type='build', when='+docs') illegal_cuda_arch_values = [ '10', '11', '12', '13', diff --git a/var/spack/repos/builtin/packages/dire/package.py b/var/spack/repos/builtin/packages/dire/package.py new file mode 100644 index 0000000000..9b0fde818c --- /dev/null +++ b/var/spack/repos/builtin/packages/dire/package.py @@ -0,0 +1,39 @@ +# 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 Dire(Package): + """DIRE (short for dipole resummation) a C++ program for all-order + radiative corrections to scattering processes in high-energy particle + collisions.""" + + homepage = "http://dire.gitlab.io/" + url = "http://dire.gitlab.io/Downloads/DIRE-2.004.tar.gz" + git = "http://gitlab.com/dire/direforpythia" + list_url = "http://dire.gitlab.io/Downloads.html" + + maintainer = ['mdiefent'] + + version('2.004', sha256='8cc1213b58fec744fdaa50834560a14b141de99efb2c3e3d3d47f3d6d84b179f') + + depends_on('zlib') + depends_on('boost') + depends_on('lhapdf') + depends_on('hepmc') + depends_on('pythia8@8226:') + + def install(self, spec, prefix): + configure_args = ['--prefix={0}'.format(prefix)] + configure_args.append( + '--with-pythia8={0}'.format(spec['pythia8'].prefix)) + configure(*configure_args) + make() + # Open bug: https://gitlab.com/wdconinc/direforpythia/-/merge_requests/1 + filter_file('-Wl,-rpath ', + self.compiler.cc_rpath_arg, + 'bin/dire-config') + make('install') diff --git a/var/spack/repos/builtin/packages/dray/package.py b/var/spack/repos/builtin/packages/dray/package.py new file mode 100644 index 0000000000..9dbf66afd9 --- /dev/null +++ b/var/spack/repos/builtin/packages/dray/package.py @@ -0,0 +1,318 @@ +# 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 * + +import os +import socket + +import llnl.util.tty as tty + + +def cmake_cache_entry(name, value, vtype=None): + """ + Helper that creates CMake cache entry strings used in + 'host-config' files. + """ + if vtype is None: + if value == "ON" or value == "OFF": + vtype = "BOOL" + else: + vtype = "PATH" + return 'set({0} "{1}" CACHE {2} "")\n\n'.format(name, value, vtype) + + +class Dray(Package, CudaPackage): + """High-Order Mesh Ray Tracer.""" + + homepage = "https://github.com/LLNL/devil_ray" + git = "https://github.com/LLNL/devil_ray.git" + url = "https://github.com/LLNL/devil_ray/releases/download/v0.1.2/dray-v0.1.2.tar.gz" + + maintainers = ['mclarsen', 'cyrush'] + + version('develop', branch='develop', submodules='True') + version('0.1.2', sha256='46937f20124b28dc78a634e8e063a3e7a3bbfd9f424ce2680b08417010c376da') + version('0.1.1', sha256='e5daa49ee3367c087f5028dc5a08655298beb318014c6f3f65ef4a08fcbe346c') + version('0.1.0', sha256='8b341138e1069361351e0a94478608c5af479cca76e2f97d556229aed45c0169') + + variant('cuda', default=False, description='Build with CUDA backend') + variant('openmp', default=True, description='Build OpenMP backend') + variant("shared", default=True, description="Build as shared libs") + variant("test", default=True, description='Build unit tests') + variant("utils", default=True, description='Build utilities') + variant("logging", default=False, description='Enable logging') + variant("stats", default=False, description='Enable stats') + variant("mpi", default=True, description='Enable MPI compiler') + + depends_on('cuda', when='+cuda') + depends_on('mpi', when='+mpi') + + depends_on('cmake@3.9:', type='build') + depends_on('cmake@3.14:', when='+cuda', type='build') + + depends_on("conduit~shared", when="~shared") + depends_on("conduit+shared", when="+shared") + + depends_on("apcomp~shared+openmp+mpi", when="~shared+openmp+mpi") + depends_on("apcomp+shared+openmp+mpi", when="+shared+openmp+mpi") + depends_on("apcomp~shared~openmp+mpi", when="~shared~openmp+mpi") + depends_on("apcomp+shared~openmp+mpi", when="+shared~openmp+mpi") + depends_on("apcomp~shared+openmp~mpi", when="~shared+openmp~mpi") + depends_on("apcomp+shared+openmp~mpi", when="+shared+openmp~mpi") + depends_on("apcomp~shared~openmp~mpi", when="~shared~openmp~mpi") + depends_on("apcomp+shared~openmp~mpi", when="+shared~openmp~mpi") + + depends_on("raja@0.9.0+cuda~openmp+shared", when="+cuda~openmp+shared") + depends_on("raja@0.9.0+cuda+openmp+shared", when="+cuda+openmp+shared") + depends_on("raja@0.9.0+cuda~openmp~shared", when="+cuda~openmp~shared") + depends_on("raja@0.9.0+cuda+openmp~shared", when="+cuda+openmp~shared") + + depends_on("raja@0.9.0~cuda~openmp+shared", when="~cuda~openmp+shared") + depends_on("raja@0.9.0~cuda+openmp+shared", when="~cuda+openmp+shared") + depends_on("raja@0.9.0~cuda~openmp~shared", when="~cuda~openmp~shared") + depends_on("raja@0.9.0~cuda+openmp~shared", when="~cuda+openmp~shared") + + depends_on("umpire@1.0.0+cuda+shared", when="+cuda+shared") + depends_on("umpire@1.0.0+cuda~shared", when="+cuda~shared") + depends_on("umpire@1.0.0~cuda+shared", when="~cuda+shared") + depends_on("umpire@1.0.0~cuda~shared", when="~cuda~shared") + + depends_on("mfem+shared+conduit~threadsafe", when="+shared") + depends_on("mfem~shared+conduit~threadsafe", when="~shared") + + def setup_build_environment(self, env): + env.set('CTEST_OUTPUT_ON_FAILURE', '1') + + def install(self, spec, prefix): + """ + Build and install Devil Ray. + """ + with working_dir('spack-build', create=True): + host_cfg_fname = self.create_host_config(spec, + prefix) + cmake_args = [] + # if we have a static build, we need to avoid any of + # spack's default cmake settings related to rpaths + # (see: https://github.com/LLNL/spack/issues/2658) + if "+shared" in spec: + cmake_args.extend(std_cmake_args) + else: + for arg in std_cmake_args: + if arg.count("RPATH") == 0: + cmake_args.append(arg) + cmake_args.extend(["-C", host_cfg_fname, "../src"]) + print("Configuring Devil Ray...") + cmake(*cmake_args) + print("Building Devil Ray...") + make() + # run unit tests if requested + if "+test" in spec and self.run_tests: + print("Running Devil Ray Unit Tests...") + make("test") + print("Installing Devil Ray...") + make("install") + # install copy of host config for provenance + install(host_cfg_fname, prefix) + + def create_host_config(self, spec, prefix): + """ + This method creates a 'host-config' file that specifies + all of the options used to configure and build ascent. + + For more details about 'host-config' files see: + http://ascent.readthedocs.io/en/latest/BuildingAscent.html + """ + + ####################### + # Compiler Info + ####################### + c_compiler = env["SPACK_CC"] + cpp_compiler = env["SPACK_CXX"] + + ####################################################################### + # By directly fetching the names of the actual compilers we appear + # to doing something evil here, but this is necessary to create a + # 'host config' file that works outside of the spack install env. + ####################################################################### + + sys_type = spec.architecture + # if on llnl systems, we can use the SYS_TYPE + if "SYS_TYPE" in env: + sys_type = env["SYS_TYPE"] + + ############################################## + # Find and record what CMake is used + ############################################## + + if "+cmake" in spec: + cmake_exe = spec['cmake'].command.path + else: + cmake_exe = which("cmake") + if cmake_exe is None: + msg = 'failed to find CMake (and cmake variant is off)' + raise RuntimeError(msg) + cmake_exe = cmake_exe.path + + host_cfg_fname = "%s-%s-%s-devil_ray.cmake" % (socket.gethostname(), + sys_type, + spec.compiler) + + cfg = open(host_cfg_fname, "w") + cfg.write("##################################\n") + cfg.write("# spack generated host-config\n") + cfg.write("##################################\n") + cfg.write("# {0}-{1}\n".format(sys_type, spec.compiler)) + cfg.write("##################################\n\n") + + # Include path to cmake for reference + cfg.write("# cmake from spack \n") + cfg.write("# cmake executable path: %s\n\n" % cmake_exe) + + ####################### + # Compiler Settings + ####################### + cfg.write("#######\n") + cfg.write("# using %s compiler spec\n" % spec.compiler) + cfg.write("#######\n\n") + + if "+mpi" in spec: + cfg.write(cmake_cache_entry("ENABLE_MPI", "ON")) + mpicc_path = spec['mpi'].mpicc + mpicxx_path = spec['mpi'].mpicxx + # if we are using compiler wrappers on cray systems + # use those for mpi wrappers, b/c spec['mpi'].mpicxx + # etc make return the spack compiler wrappers + # which can trip up mpi detection in CMake 3.14 + if cpp_compiler == "CC": + mpicc_path = "cc" + mpicxx_path = "CC" + + cfg.write(cmake_cache_entry("CMAKE_C_COMPILER", mpicc_path)) + cfg.write(cmake_cache_entry("CMAKE_CXX_COMPILER", mpicxx_path)) + else: + cfg.write(cmake_cache_entry("ENABLE_MPI", "OFF")) + cfg.write("# c compiler used by spack\n") + cfg.write(cmake_cache_entry("CMAKE_C_COMPILER", c_compiler)) + cfg.write("# cpp compiler used by spack\n") + cfg.write(cmake_cache_entry("CMAKE_CXX_COMPILER", cpp_compiler)) + + ####################### + # Backends + ####################### + + cfg.write("# CUDA Support\n") + + if "+cuda" in spec: + cfg.write(cmake_cache_entry("ENABLE_CUDA", "ON")) + if 'cuda_arch' in spec.variants: + cuda_value = spec.variants['cuda_arch'].value + cuda_arch = cuda_value[0] + cfg.write(cmake_cache_entry('CUDA_ARCH', + 'sm_{0}'.format(cuda_arch))) + else: + cfg.write(cmake_cache_entry("ENABLE_CUDA", "OFF")) + + if "+openmp" in spec: + cfg.write(cmake_cache_entry("ENABLE_OPENMP", "ON")) + else: + cfg.write(cmake_cache_entry("ENABLE_OPENMP", "OFF")) + + # shared vs static libs + if "+shared" in spec: + cfg.write(cmake_cache_entry("BUILD_SHARED_LIBS", "ON")) + else: + cfg.write(cmake_cache_entry("BUILD_SHARED_LIBS", "OFF")) + + ####################### + # Unit Tests + ####################### + if "+test" in spec: + cfg.write(cmake_cache_entry("DRAY_ENABLE_TESTS", "ON")) + else: + cfg.write(cmake_cache_entry("DRAY_ENABLE_TESTS", "OFF")) + + ####################### + # Utilities + ####################### + if "+utils" in spec: + cfg.write(cmake_cache_entry("DRAY_ENABLE_UTILS", "ON")) + else: + cfg.write(cmake_cache_entry("DRAY_ENABLE_UTILS", "OFF")) + + ####################### + # Logging + ####################### + if "+logging" in spec: + cfg.write(cmake_cache_entry("ENABLE_LOGGING", "ON")) + else: + cfg.write(cmake_cache_entry("ENABLE_LOGGING", "OFF")) + + ####################### + # Logging + ####################### + if "+stats" in spec: + cfg.write(cmake_cache_entry("ENABLE_STATS", "ON")) + else: + cfg.write(cmake_cache_entry("ENABLE_STATS", "OFF")) + + ####################################################################### + # Core Dependencies + ####################################################################### + + cfg.write("# conduit from spack \n") + cfg.write(cmake_cache_entry("CONDUIT_DIR", spec['conduit'].prefix)) + + cfg.write("# mfem from spack \n") + cfg.write(cmake_cache_entry("MFEM_DIR", spec['mfem'].prefix)) + + cfg.write("# raja from spack \n") + cfg.write(cmake_cache_entry("RAJA_DIR", spec['raja'].prefix)) + + cfg.write("# umpire from spack \n") + cfg.write(cmake_cache_entry("UMPIRE_DIR", spec['umpire'].prefix)) + + cfg.write("# apcompositor from spack \n") + cfg.write(cmake_cache_entry("APCOMP_DIR", spec['apcomp'].prefix)) + + cfg.write("##################################\n") + cfg.write("# end spack generated host-config\n") + cfg.write("##################################\n") + cfg.close() + + host_cfg_fname = os.path.abspath(host_cfg_fname) + tty.info("spack generated conduit host-config file: " + host_cfg_fname) + return host_cfg_fname + + def cmake_args(self): + spec = self.spec + + options = [] + + if '+openmp' in spec: + options.extend([ + '-DENABLE_OPENMP=On']) + + if '+cuda' in spec: + options.extend([ + '-DENABLE_CUDA=On', + '-DCUDA_TOOLKIT_ROOT_DIR=%s' % (spec['cuda'].prefix)]) + if 'cuda_arch' in spec.variants: + cuda_value = spec.variants['cuda_arch'].value + cuda_arch = cuda_value[0] + options.append('-DCUDA_ARCH=sm_{0}'.format(cuda_arch)) + else: + options.extend(['-DENABLE_CUDA=OFF']) + + options.extend(['-DRAJA_DIR=%s' % (spec['raja'].prefix)]) + options.extend(['-DMFEM_DIR=%s' % (spec['mfem'].prefix)]) + options.extend(['-DUMPIRE_DIR=%s' % (spec['umpire'].prefix)]) + options.extend(['-DCONDUIT_DIR=%s' % (spec['conduit'].prefix)]) + options.extend(['-DDRAY_ENABLE_TESTS=OFF']) + options.extend(['-DENABLE_LOGGING=OFF']) + options.extend(['-DENABLE_STATS=OFF']) + options.extend(['../src']) + + return options diff --git a/var/spack/repos/builtin/packages/dyninst/package.py b/var/spack/repos/builtin/packages/dyninst/package.py index 6f43c1eb7b..b6d1fa540f 100644 --- a/var/spack/repos/builtin/packages/dyninst/package.py +++ b/var/spack/repos/builtin/packages/dyninst/package.py @@ -13,8 +13,10 @@ class Dyninst(CMakePackage): homepage = "https://dyninst.org" git = "https://github.com/dyninst/dyninst.git" + maintainers = ['hainest'] - version('develop', branch='master') + version('master', branch='master') + version('10.2.0', tag='v10.2.0') version('10.1.0', tag='v10.1.0') version('10.0.0', tag='v10.0.0') version('9.3.2', tag='v9.3.2') @@ -89,6 +91,11 @@ class Dyninst(CMakePackage): else: args.append('-DENABLE_STATIC_LIBS=NO') + # Make sure Dyninst doesn't try to build its own dependencies + # outside of Spack + if spec.satisfies('@10.2.0:'): + args.append('-DSTERILE_BUILD=ON') + return args # Old style cmake args, up through 10.0. diff --git a/var/spack/repos/builtin/packages/eagle/package.py b/var/spack/repos/builtin/packages/eagle/package.py index 81e0be6f90..0509f32cd4 100644 --- a/var/spack/repos/builtin/packages/eagle/package.py +++ b/var/spack/repos/builtin/packages/eagle/package.py @@ -33,6 +33,13 @@ class Eagle(MakefilePackage): # add htslib link to ldflags filter_file('-lcurl', '-lcurl -lhts', 'Makefile', string=True) + # use spack C compiler + filter_file('CC=.*', 'CC={0}'.format(spack_cc), 'Makefile') + + # remove march=native %fj + if self.spec.satisfies('%fj'): + filter_file('-march=native', '', 'Makefile', string=True) + def install(self, spec, prefix): mkdirp(prefix.bin) diff --git a/var/spack/repos/builtin/packages/elfutils/package.py b/var/spack/repos/builtin/packages/elfutils/package.py index cd6b961227..00647d2d4e 100644 --- a/var/spack/repos/builtin/packages/elfutils/package.py +++ b/var/spack/repos/builtin/packages/elfutils/package.py @@ -21,6 +21,7 @@ class Elfutils(AutotoolsPackage, SourcewarePackage): list_url = "https://sourceware.org/elfutils/ftp" list_depth = 1 + version('0.180', sha256='b827b6e35c59d188ba97d7cf148fa8dc6f5c68eb6c5981888dfdbb758c0b569d') version('0.179', sha256='25a545566cbacaa37ae6222e58f1c48ea4570f53ba991886e2f5ce96e22a23a2') version('0.178', sha256='31e7a00e96d4e9c4bda452e1f2cdac4daf8abd24f5e154dee232131899f3a0f2') version('0.177', sha256='fa489deccbcae7d8c920f60d85906124c1989c591196d90e0fd668e3dc05042e') diff --git a/var/spack/repos/builtin/packages/elmerfem/package.py b/var/spack/repos/builtin/packages/elmerfem/package.py index 464611eaf4..24433a58f8 100644 --- a/var/spack/repos/builtin/packages/elmerfem/package.py +++ b/var/spack/repos/builtin/packages/elmerfem/package.py @@ -13,32 +13,47 @@ class Elmerfem(CMakePackage): homepage = "https://www.csc.fi/web/elmer" url = "https://github.com/ElmerCSC/elmerfem/archive/release-8.4.tar.gz" + git = "https://github.com/ElmerCSC/elmerfem.git" + version('ice', branch='elmerice') + version('devel', branch='devel') version('8.4', sha256='cc3ce807d76798361592cc14952cdc3db1ad8f9bac038017514033ce9badc5b3') - version('devel', git='https://github.com/ElmerCSC/elmerfem.git', branch='devel') + variant('mpi', default=True, description='Enable MPI support.') variant('openmp', default=True, description='Enable OpenMP support.') variant('mumps', default=False, description='Enable MUMPS support.') variant('hypre', default=False, description='Enable Hypre support.') variant('trilinos', default=False, description='Enable Trilinos support.') variant('zoltan', default=False, description='Enable Zoltan support.') variant('lua', default=False, description='Enable Lua support.') + variant('scatt2d', default=False, description='Build Scattered2DDataInterpolator solver.') depends_on('mpi') depends_on('netcdf-fortran') depends_on('blas') depends_on('lapack') + depends_on('scalapack', when='+mpi') depends_on('mumps', when='+mumps') depends_on('hypre', when='+hypre') depends_on('trilinos~hypre~zoltan~zoltan2', when='+trilinos') depends_on('zoltan+fortran', when='+zoltan') depends_on('lua@5.1.5', when='+lua') + depends_on('nn-c', when='+scatt2d') + depends_on('csa-c', when='+scatt2d') def cmake_args(self): spec = self.spec - args = ['-DWITH_ElmerIce=ON', '-DWITH_CONTRIB=ON', '-DWITH_MPI=ON'] + args = ['-DWITH_ElmerIce=ON', '-DWITH_CONTRIB=ON'] + + if '+mpi' in spec: + args.append('-DWITH_MPI=ON') + else: + args.append('-DWITH_MPI=OFF') + + if self.spec.satisfies('^intel-mkl'): + args.append('-DWITH_MKL:BOOL=TRUE') if '+openmp' in spec: args.append('-DWITH_OpenMP=ON') @@ -82,7 +97,21 @@ class Elmerfem(CMakePackage): else: args.append('-DWITH_Zoltan=OFF') + if '+scatt2d' in spec: + args.extend([ + '-DWITH_ScatteredDataInterpolator=ON', + '-DNN_LIBRARY=' + + join_path(self.spec['nn-c'].prefix, 'lib', 'libnn.a'), + '-DNN_INCLUDE_DIR=' + + join_path(self.spec['nn-c'].prefix, 'include'), + '-DCSA_LIBRARY=' + + join_path(self.spec['csa-c'].prefix, 'lib', 'libcsa.so'), + '-DCSA_INCLUDE_DIR=' + + join_path(self.spec['csa-c'].prefix, 'include') + ]) + return args def setup_run_environment(self, env): env.set('ELMER_HOME', self.prefix) + env.set('ELMER_Fortran_COMPILER', self.compiler.fc) diff --git a/var/spack/repos/builtin/packages/elpa/package.py b/var/spack/repos/builtin/packages/elpa/package.py index 3aad567fe5..66054e434f 100644 --- a/var/spack/repos/builtin/packages/elpa/package.py +++ b/var/spack/repos/builtin/packages/elpa/package.py @@ -8,15 +8,16 @@ import os from spack import * -class Elpa(AutotoolsPackage): +class Elpa(AutotoolsPackage, CudaPackage): """Eigenvalue solvers for Petaflop-Applications (ELPA)""" homepage = 'http://elpa.mpcdf.mpg.de/' url = 'http://elpa.mpcdf.mpg.de/elpa-2015.11.001.tar.gz' + version('2020.05.001', sha256='66ff1cf332ce1c82075dc7b5587ae72511d2bcb3a45322c94af6b01996439ce5') + version('2019.11.001', sha256='10374a8f042e23c7e1094230f7e2993b6f3580908a213dbdf089792d05aff357') version('2019.05.002', sha256='d2eab5e5d74f53601220b00d18185670da8c00c13e1c1559ecfb0cd7cb2c4e8d') - version('2018.11.001', - sha256='cc27fe8ba46ce6e6faa8aea02c8c9983052f8e73a00cfea38abf7613cb1e1b16') + version('2018.11.001', sha256='cc27fe8ba46ce6e6faa8aea02c8c9983052f8e73a00cfea38abf7613cb1e1b16') version('2018.05.001.rc1', sha256='598c01da20600a4514ea4d503b93e977ac0367e797cab7a7c1b0e0e3e86490db') version('2017.11.001', sha256='59f99c3abe2190fac0db8a301d0b9581ee134f438669dbc92551a54f6f861820') version('2017.05.003', sha256='bccd49ce35a323bd734b17642aed8f2588fea4cc78ee8133d88554753bc3bf1b') @@ -33,6 +34,7 @@ class Elpa(AutotoolsPackage): depends_on('blas') depends_on('lapack') depends_on('scalapack') + depends_on('libtool', type='build') def url_for_version(self, version): t = 'http://elpa.mpcdf.mpg.de/html/Releases/{0}/elpa-{0}.tar.gz' @@ -61,14 +63,14 @@ class Elpa(AutotoolsPackage): return hlist build_directory = 'spack-build' + parallel = False def configure_args(self): spec = self.spec options = [] - # TODO: add --enable-gpu, --disable-sse-assembly, --enable-sparc64 - # and --enable-neon-arch64 - simd_features = ['vsx', 'sse', 'avx', 'avx2', 'avx512', 'bgp', 'bgq'] + # TODO: --disable-sse-assembly, --enable-sparc64, --enable-neon-arch64 + simd_features = ['vsx', 'sse', 'avx', 'avx2', 'avx512'] for feature in simd_features: msg = '--enable-{0}' if feature in spec.target else '--disable-{0}' @@ -84,6 +86,20 @@ class Elpa(AutotoolsPackage): 'CFLAGS=-O2' ]) + if '+cuda' in spec: + prefix = spec['cuda'].prefix + options.append('--enable-gpu') + options.append('--with-cuda-path={0}'.format(prefix)) + options.append('--with-cuda-sdk-path={0}'.format(prefix)) + + cuda_arch = spec.variants['cuda_arch'].value[0] + + if cuda_arch != 'none': + options.append('--with-GPU-compute-capability=sm_{0}'. + format(cuda_arch)) + else: + options.append('--disable-gpu') + if '+openmp' in spec: options.append('--enable-openmp') else: @@ -98,4 +114,6 @@ class Elpa(AutotoolsPackage): 'SCALAPACK_LDFLAGS={0}'.format(spec['scalapack'].libs.joined()) ]) + options.append('--disable-silent-rules') + return options diff --git a/var/spack/repos/builtin/packages/elsi/package.py b/var/spack/repos/builtin/packages/elsi/package.py index db5d4714f6..578bc73c91 100644 --- a/var/spack/repos/builtin/packages/elsi/package.py +++ b/var/spack/repos/builtin/packages/elsi/package.py @@ -25,7 +25,7 @@ class Elsi(CMakePackage): ) variant( 'elpa2_kernel', default="none", description="ELPA2 Kernel", - values=('BGQ', 'AVX', 'AVX2', 'AVX512'), multi=False + values=('AVX', 'AVX2', 'AVX512'), multi=False ) variant( 'enable_pexsi', default=False, description='Enable PEXSI support' diff --git a/var/spack/repos/builtin/packages/energyplus/package.py b/var/spack/repos/builtin/packages/energyplus/package.py index ca534999f9..d781f24452 100644 --- a/var/spack/repos/builtin/packages/energyplus/package.py +++ b/var/spack/repos/builtin/packages/energyplus/package.py @@ -17,6 +17,8 @@ class Energyplus(Package): homepage = "https://energyplus.net" # versions require explicit URLs as they contain hashes + version('9.3.0', sha256='c939dc4f867224e110485a8e0712ce4cfb1e06f8462bc630b54f83a18c93876c', + url="https://github.com/NREL/EnergyPlus/releases/download/v9.3.0/EnergyPlus-9.3.0-baff08990c-Linux-x86_64.tar.gz") version('8.9.0', sha256='13a5192b25815eb37b3ffd019ce3b99fd9f854935f8cc4362814f41c56e9ca98', url="https://github.com/NREL/EnergyPlus/releases/download/v8.9.0-WithIDDFixes/EnergyPlus-8.9.0-eba93e8e1b-Linux-x86_64.tar.gz") @@ -25,13 +27,14 @@ class Energyplus(Package): # and then symlink the appropriate targets # there is only one folder with a semi-predictable name so we glob it - install_tree(glob.glob('EnergyPlus*')[0], - join_path(prefix.lib, 'energyplus')) + source_dir = '.' + + if spec.satisfies('@:8.9.9'): + source_dir = glob.glob('EnergyPlus*')[0] + + install_tree(source_dir, prefix.lib.enregyplus) mkdirp(prefix.bin) - os.symlink(join_path(prefix.lib, 'energyplus/energyplus'), - join_path(prefix.bin, 'energyplus')) - os.symlink(join_path(prefix.lib, 'energyplus/EPMacro'), - join_path(prefix.bin, 'EPMacro')) - os.symlink(join_path(prefix.lib, 'energyplus/ExpandObjects'), - join_path(prefix.bin, 'ExpandObjects')) + for b in ['energyplus', 'EPMacro', 'ExpandObjects']: + os.symlink(join_path(prefix.lib.energyplus, b), + join_path(prefix.bin, b)) diff --git a/var/spack/repos/builtin/packages/environment-modules/package.py b/var/spack/repos/builtin/packages/environment-modules/package.py index 3a756a0d8c..d2d1853304 100644 --- a/var/spack/repos/builtin/packages/environment-modules/package.py +++ b/var/spack/repos/builtin/packages/environment-modules/package.py @@ -12,10 +12,11 @@ class EnvironmentModules(Package): """ homepage = 'https://cea-hpc.github.io/modules/' - url = 'https://github.com/cea-hpc/modules/releases/download/v4.5.1/modules-4.5.1.tar.gz' + url = 'https://github.com/cea-hpc/modules/releases/download/v4.5.2/modules-4.5.2.tar.gz' maintainers = ['xdelaruelle'] + version('4.5.2', sha256='74ccc9ab0fea0064ff3f4c5841435cef13cc6d9869b3c2b25e5ca4efa64a69a1') version('4.5.1', sha256='7d4bcc8559e7fbbc52e526fc86a15b161ff4422aa49eee37897ee7a48eb64ac2') version('4.5.0', sha256='5f46336f612553af5553d99347f387f733de0aaa0d80d4572e67615289382ec8') version('4.4.1', sha256='3c20cfb2ff8a4d74ac6d566e7b5fa9dd220d96d17e6d8a4ae29b1ec0107ee407') diff --git a/var/spack/repos/builtin/packages/eospac/frt.patch b/var/spack/repos/builtin/packages/eospac/frt.patch new file mode 100644 index 0000000000..f5f04a3a45 --- /dev/null +++ b/var/spack/repos/builtin/packages/eospac/frt.patch @@ -0,0 +1,63 @@ +diff -u -r -N a/Source/config/Makefile.-linux-gnu.detect b/Source/config/Makefile.-linux-gnu.detect +--- a/Source/config/Makefile.-linux-gnu.detect 2020-08-07 14:05:03.000000000 +0900 ++++ b/Source/config/Makefile.-linux-gnu.detect 2020-08-07 14:09:43.000000000 +0900 +@@ -18,7 +18,7 @@ + ################################################################## + # Compiler suite configurations based upon F90 ### + ################################################################## +-F90_List = gfortran pgfortran pgf90 lf95 f90 ifort g95 ftn pathf90 flang ++F90_List = gfortran pgfortran pgf90 lf95 f90 ifort g95 ftn pathf90 flang frt + + # Default: use the first F90 compiler found from F90_List + F90_Found_List = $(call memoize,create_F90_Found_List_once,$(F90_List)) +diff -u -r -N a/Source/config/Makefile.-linux-gnu.hashes b/Source/config/Makefile.-linux-gnu.hashes +--- a/Source/config/Makefile.-linux-gnu.hashes 2020-08-07 14:05:03.000000000 +0900 ++++ b/Source/config/Makefile.-linux-gnu.hashes 2020-08-07 14:24:53.000000000 +0900 +@@ -33,6 +33,7 @@ + $(call set,_CC,gfortran, gcc ) # gfortran + $(call set,_CC,ftn, cc gcc ) # Cray Computing Environment (cce) + $(call set,_CC,flang, clang gcc ) # flang/clang ++$(call set,_CC,frt, fcc gcc ) # Fujitsu + + $(call set,_CXX,pgfortran, pgCC pgc++ g++ ) # PGI + $(call set,_CXX,pgf90, pgCC pgc++ g++ ) # PGI +@@ -44,6 +45,7 @@ + $(call set,_CXX,gfortran, g++ ) # gfortran + $(call set,_CXX,ftn, CC g++ ) # Cray Computing Environment (cce) + $(call set,_CXX,flang, clang++ g++ ) # flang/clang++ ++$(call set,_CXX,frt, FCC g++ ) # Fujitsu + + $(call set,_F77,pgfortran, pgfortran pgf77 pgf90 ) # PGI + $(call set,_F77,pgf90, pgfortran pgf77 pgf90 ) # PGI +@@ -55,6 +57,7 @@ + $(call set,_F77,gfortran, $(F90) ) # gfortran + $(call set,_F77,ftn, $(F90) ) # Cray Computing Environment (cce) + $(call set,_F77,flang, flang ) # flang ++$(call set,_F77,frt, frt ) # Fujitsu + + ################################################################## + ### Define CC, CXX and F77 according to $(F90_Key). ### +@@ -101,6 +104,7 @@ + $(call set,_COMP_FLAGS,ppu-gfortran, -I"$(INCDIR)" ) # ppu-gfortran + $(call set,_COMP_FLAGS,ftn, -e m -I"$(INCDIR)" -hfp0 ) # Cray Computing Environment (cce) + $(call set,_COMP_FLAGS,flang, -I"$(INCDIR)" ) # flang ++$(call set,_COMP_FLAGS,frt, -I"$(INCDIR)" ) # Fujitsu + + # define define_module_subdir script options + $(call set,_DEFINE_MODULE_SUBDIR_FLAGS,f90,) # Absoft f90 +@@ -113,6 +117,7 @@ + $(call set,_DEFINE_MODULE_SUBDIR_FLAGS,gfortran,) # gfortran + $(call set,_DEFINE_MODULE_SUBDIR_FLAGS,ftn,) # Cray Computing Environment (cce) + $(call set,_DEFINE_MODULE_SUBDIR_FLAGS,flang,) # flang ++$(call set,_DEFINE_MODULE_SUBDIR_FLAGS,frt,) # Fujitsu + + # define define_module_subdir script patterns + $(call set,_DEFINE_MODULE_SUBDIR_PATTS,f90,absoft) # Absoft f90 +@@ -125,6 +130,7 @@ + $(call set,_DEFINE_MODULE_SUBDIR_PATTS,gfortran,gcc) # gfortran + $(call set,_DEFINE_MODULE_SUBDIR_PATTS,ftn,cce) # Cray Computing Environment (cce) + $(call set,_DEFINE_MODULE_SUBDIR_PATTS,flang,flang) # flang ++$(call set,_DEFINE_MODULE_SUBDIR_PATTS,frt,frt) # Fujitsu + + # define optional modules for cross-compiling + X_Compile_Module_List = craype-haswell craype-mic-knl diff --git a/var/spack/repos/builtin/packages/eospac/package.py b/var/spack/repos/builtin/packages/eospac/package.py index 0d9221e7df..eece080dc9 100644 --- a/var/spack/repos/builtin/packages/eospac/package.py +++ b/var/spack/repos/builtin/packages/eospac/package.py @@ -30,20 +30,26 @@ class Eospac(Package): # This patch allows the use of spack's compile wrapper 'flang' patch('flang.patch', when='@:6.4.0beta.2%clang') + patch('frt.patch', when='%fj') def install(self, spec, prefix): with working_dir('Source'): + compilerArgs = [] + compilerArgs.append('CC={0}'.format(spack_cc)) + compilerArgs.append('CXX={0}'.format(spack_cxx)) + compilerArgs.append('F77={0}'.format(spack_f77)) + compilerArgs.append('F90={0}'.format(spack_fc)) + # Eospac depends on fcommon behavior + # but gcc@10 flipped to default fno-common + if "%gcc@10:" in spec: + compilerArgs.append('CFLAGS=-fcommon') make('install', - 'CC={0}'.format(spack_cc), - 'CXX={0}'.format(spack_cxx), - 'F77={0}'.format(spack_f77), - 'F90={0}'.format(spack_fc), 'prefix={0}'.format(prefix), 'INSTALLED_LIBRARY_DIR={0}'.format(prefix.lib), 'INSTALLED_INCLUDE_DIR={0}'.format(prefix.include), 'INSTALLED_EXAMPLE_DIR={0}'.format(prefix.example), - 'INSTALLED_BIN_DIR={0}'.format(prefix.bin)) - + 'INSTALLED_BIN_DIR={0}'.format(prefix.bin), + *compilerArgs) # fix conflict with linux's getopt for 6.4.0beta.2 if spec.satisfies('@6.4.0beta.2'): with working_dir(prefix.bin): diff --git a/var/spack/repos/builtin/packages/erfa/package.py b/var/spack/repos/builtin/packages/erfa/package.py index dd2e838c18..b500089352 100644 --- a/var/spack/repos/builtin/packages/erfa/package.py +++ b/var/spack/repos/builtin/packages/erfa/package.py @@ -7,15 +7,11 @@ from spack import * class Erfa(AutotoolsPackage): - """ERFA(Essential Routines for Fundamental Astronomy) + """ERFA (Essential Routines for Fundamental Astronomy) is a C library containing key algorithms for astronomy.""" homepage = "https://github.com/liberfa/erfa" - url = "https://github.com/liberfa/erfa/archive/v1.4.0.tar.gz" + url = "https://github.com/liberfa/erfa/releases/download/v1.7.0/erfa-1.7.0.tar.gz" - version('1.4.0', sha256='90113f18a1a05a3d26970a95b70a71ec52d71156b967ffd6c26dd1626d92e946') - - depends_on('m4', type='build') - depends_on('autoconf', type='build') - depends_on('automake', type='build') - depends_on('libtool', type='build') + version('1.7.0', sha256='f0787e30e848750c0cbfc14827de6fc7f69a2d5ef0fc653504e74b8967a764e0') + version('1.4.0', sha256='035b7f0ad05c1191b8588191ba4b19ba0f31afa57ad561d33bd5417d9f23e460') diff --git a/var/spack/repos/builtin/packages/erlang/package.py b/var/spack/repos/builtin/packages/erlang/package.py index f1fc027ae0..02d097fbd3 100644 --- a/var/spack/repos/builtin/packages/erlang/package.py +++ b/var/spack/repos/builtin/packages/erlang/package.py @@ -27,3 +27,4 @@ class Erlang(AutotoolsPackage): depends_on('automake', type='build') depends_on('m4', type='build') depends_on('libtool', type='build') + depends_on('ncurses', type='link') diff --git a/var/spack/repos/builtin/packages/esmf/package.py b/var/spack/repos/builtin/packages/esmf/package.py index b533851228..3055b4446e 100644 --- a/var/spack/repos/builtin/packages/esmf/package.py +++ b/var/spack/repos/builtin/packages/esmf/package.py @@ -169,7 +169,7 @@ class Esmf(MakefilePackage): os.environ['ESMF_CXXLINKLIBS'] = '-lmpifort' elif '^openmpi' in spec: os.environ['ESMF_COMM'] = 'openmpi' - elif '^intel-parallel-studio+mpi' in spec: + elif '^intel-parallel-studio+mpi' in spec or '^intel-mpi' in spec: os.environ['ESMF_COMM'] = 'intelmpi' else: # Force use of the single-processor MPI-bypass library. diff --git a/var/spack/repos/builtin/packages/espanso/package.py b/var/spack/repos/builtin/packages/espanso/package.py new file mode 100644 index 0000000000..b820a14be8 --- /dev/null +++ b/var/spack/repos/builtin/packages/espanso/package.py @@ -0,0 +1,32 @@ +# 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 Espanso(Package): + """Cross-platform Text Expander written in Rust""" + + homepage = "https://github.com/federico-terzi/espanso" + url = "https://github.com/federico-terzi/espanso/releases/download/v0.6.3/espanso-linux.tar.gz" + + maintainers = ['zicklag'] + + version('0.6.3', sha256='eb9f9563ed0924d1494f0b406b6d3df9d7df00e81affaf15023d1c82dd8ac561') + version('0.6.2', sha256='db2e53c8e0a17575f69739e53dd6a486dd0e912abbc7ac7c33d98567bd1f0e18') + version('0.6.1', sha256='0917d4a990bfc5ced368ce9fbc3aa4bc4dac4d39ddea88359dc628fee16daf87') + version('0.6.0', sha256='97689b734235224dde2fb4723bee24324a53355a6b549fb9d024a0c8ddb3cd98') + version('0.5.5', sha256='94687a3049a43ed4c2ed3814afb4e32e09dec8ec396e54a7b012de936f0260e9') + version('0.5.4', sha256='87e4c4a8a7bfb95a3ee987e34af3a37ca4d962bec3f863ef74be7fc8cdd1a9dd') + version('0.5.3', sha256='1db21f74385b1eb94ac6d27def550d02dce8da34bce1f8f4a0c4eb9bfd80d135') + version('0.5.2', sha256='69c8d3460ae497a2224cbf290c334c9151fc756053f65cbaf9ce8e9284ad50fd') + version('0.5.1', sha256='e68d90256f9eb26b57085b5170e238752bfbfcf3d50ccaa5693974460cb19deb') + version('0.5.0', sha256='f85c098a20b1022d8a6b751e3a56431caa01c796ce88ab95aae8950a1233da55') + + depends_on('xclip') + depends_on('xdotool') + + def install(self, spec, prefix): + mkdir(prefix.bin) + install('espanso', prefix.bin) diff --git a/var/spack/repos/builtin/packages/examl/package.py b/var/spack/repos/builtin/packages/examl/package.py new file mode 100644 index 0000000000..d5f115b9be --- /dev/null +++ b/var/spack/repos/builtin/packages/examl/package.py @@ -0,0 +1,50 @@ +# 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 Examl(MakefilePackage): + """ + Exascale Maximum Likelihood (ExaML) code for phylogenetic inference + using MPI. This code implements the popular RAxML search algorithm + for maximum likelihood based inference of phylogenetic trees. + """ + + homepage = "https://github.com/stamatak/ExaML" + url = "https://github.com/stamatak/ExaML/archive/v3.0.22.tar.gz" + + maintainers = ['robqiao'] + + version('3.0.22', sha256='802e673b0c2ea83fdbe6b060048d83f22b6978933a04be64fb9b4334fe318ca3') + version('3.0.21', sha256='6c7e6c5d7bf4ab5cfbac5cc0d577885272a803c142e06b531693a6a589102e2e') + version('3.0.20', sha256='023681248bbc7f19821b509948d79301e46bbf275aa90bf12e9f4879639a023b') + version('3.0.19', sha256='3814230bf7578b8396731dc87ce665d0b1a671d8effd571f924c5b7936ae1c9e') + version('3.0.18', sha256='1bacb5124d943d921e7beae52b7062626d0ce3cf2f83e3aa3acf6ea26cf9cd87') + version('3.0.17', sha256='90a859e0b8fff697722352253e748f03c57b78ec5fbc1ae72f7e702d299dac67') + version('3.0.16', sha256='abc922994332d40892e30f077e4644db08cd59662da8e2a9197d1bd8bcb9aa5f') + version('3.0.15', sha256='da5e66a63d6fa34b640535c359d8daf67f23bd2fcc958ac604551082567906b0') + version('3.0.14', sha256='698b538996946ae23a2d6fa1e230c210832e59080da33679ff7d6b342a9e6180') + version('3.0.13', sha256='893aecb5545798235a17975aa07268693d3526d0aee0ed59a2d6e791248791ed') + + variant('mpi', default=True, description='Enable MPI parallel support') + + depends_on('mpi', when='+mpi') + + def build(self, spec, prefix): + ##################### + # Build Directories # + ##################### + with working_dir('examl'): + make('-f', 'Makefile.SSE3.gcc') + with working_dir('parser'): + make('-f', 'Makefile.SSE3.gcc') + + def install(self, spec, prefix): + mkdirp(prefix.bin) + install("examl/examl", prefix.bin) + install("parser/parse-examl", prefix.bin) + install_tree("manual", prefix.manual) + install_tree("testData", prefix.testData) diff --git a/var/spack/repos/builtin/packages/express/package.py b/var/spack/repos/builtin/packages/express/package.py index d434a866c1..d54dec85c7 100644 --- a/var/spack/repos/builtin/packages/express/package.py +++ b/var/spack/repos/builtin/packages/express/package.py @@ -27,6 +27,7 @@ class Express(CMakePackage): # patch from the debian package repo: # https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=811859 patch('gcc-6.patch', when='%gcc@6.0.0:') + patch('gcc-6.patch', when='%fj') def patch(self): with working_dir('src'): diff --git a/var/spack/repos/builtin/packages/eztrace/package.py b/var/spack/repos/builtin/packages/eztrace/package.py index ddf9808f7b..f73087de99 100644 --- a/var/spack/repos/builtin/packages/eztrace/package.py +++ b/var/spack/repos/builtin/packages/eztrace/package.py @@ -21,6 +21,26 @@ class Eztrace(AutotoolsPackage): # Does not work on Darwin due to MAP_POPULATE conflicts('platform=darwin') + def patch(self): + filter_file( + '"DEFAULT_OUTFILE"', + '" DEFAULT_OUTFILE "', + 'extlib/gtg/extlib/otf/tools/otfshrink/otfshrink.cpp', + string=True + ) + + def setup_build_environment(self, env): + if self.spec.satisfies('%fj'): + env.set('LDFLAGS', '--linkfortran') + def configure_args(self): args = ["--with-mpi={0}".format(self.spec["mpi"].prefix)] return args + + @run_before('build') + def fix_libtool(self): + if self.spec.satisfies('%fj'): + libtools = ['extlib/gtg/libtool', + 'extlib/opari2/build-frontend/libtool'] + for f in libtools: + filter_file('wl=""', 'wl="-Wl,"', f, string=True) diff --git a/var/spack/repos/builtin/packages/fenics-dolfinx/package.py b/var/spack/repos/builtin/packages/fenics-dolfinx/package.py new file mode 100644 index 0000000000..30f37b304a --- /dev/null +++ b/var/spack/repos/builtin/packages/fenics-dolfinx/package.py @@ -0,0 +1,53 @@ +# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack import * + + +class FenicsDolfinx(CMakePackage): + """Next generation FEniCS problem solving environment""" + + homepage = "https://github.com/FEniCS/dolfinx" + git = "https://github.com/FEniCS/dolfinx.git" + maintainers = ["js947", "chrisrichardson"] + + version("master", branch="master") + + variant("kahip", default=False, description="kahip support") + variant("parmetis", default=False, description="parmetis support") + variant("slepc", default=False, description="slepc support") + + depends_on("cmake@3.9:", type="build") + depends_on("pkgconfig", type="build") + depends_on("mpi") + depends_on("hdf5+hl+fortran") + depends_on("boost") + depends_on("eigen@3.3.7:") + depends_on("petsc+mpi+shared+hypre+metis") + depends_on("scotch+mpi") + + depends_on("kahip", when="+kahip") + depends_on("parmetis", when="+parmetis") + depends_on("slepc", when="+slepc") + + depends_on("py-fenics-ffcx", type=["build", "run"]) + + conflicts('%gcc@:6', msg='C++17 support required') + + root_cmakelists_dir = "cpp" + + def cmake_args(self): + args = [ + "-DDOLFINX_SKIP_BUILD_TESTS=True", + "-DDOLFINX_ENABLE_KAHIP=%s" % ( + 'ON' if "+kahip" in self.spec else 'OFF'), + "-DDOLFINX_ENABLE_PARMETIS=%s" % ( + 'ON' if "+parmetis" in self.spec else 'OFF'), + "-DDOLFINX_ENABLE_SLEPC=%s" % ( + 'ON' if "+slepc" in self.spec else 'OFF'), + "-DPython3_ROOT_DIR=%s" % self.spec['python'].home, + "-DPython3_FIND_STRATEGY=LOCATION", + ] + return args diff --git a/var/spack/repos/builtin/packages/ferret/package.py b/var/spack/repos/builtin/packages/ferret/package.py index 1ad1978240..5878403e26 100644 --- a/var/spack/repos/builtin/packages/ferret/package.py +++ b/var/spack/repos/builtin/packages/ferret/package.py @@ -13,10 +13,18 @@ class Ferret(Package): designed to meet the needs of oceanographers and meteorologists analyzing large and complex gridded data sets.""" homepage = "http://ferret.pmel.noaa.gov/Ferret/home" - url = "ftp://ftp.pmel.noaa.gov/ferret/pub/source/fer_source.v696.tar.gz" + url = "https://github.com/NOAA-PMEL/Ferret/archive/v7.6.0.tar.gz" - version('7.2', sha256='21c339b1bafa6939fc869428d906451f130f7e77e828c532ab9488d51cf43095') - version('6.96', sha256='7eb87156aa586cfe838ab83f08b2102598f9ab62062d540a5da8c9123816331a') + maintainers = ['RemiLacroix-IDRIS'] + + version('7.6.0', sha256='69832d740bd44c9eadd198a5de4d96c4c01ae90ae28c2c3414c1bb9f43e475d1') + version('7.5.0', sha256='2a038c547e6e80e6bd0645a374c3247360cf8c94ea56f6f3444b533257eb16db') + version('7.4', sha256='5167bb9e6ef441ae9cf90da555203d2155e3fcf929e7b8dddb237de0d58c5e5f') + version('7.3', sha256='ae80a732c34156b5287a23696cf4ae4faf4de1dd705ff43cbb4168b05c6faaf4') + version('7.2', sha256='21c339b1bafa6939fc869428d906451f130f7e77e828c532ab9488d51cf43095') + version('6.96', sha256='7eb87156aa586cfe838ab83f08b2102598f9ab62062d540a5da8c9123816331a') + + variant('datasets', default=False, description="Install Ferret standard datasets") depends_on("hdf5+hl") depends_on("netcdf-c") @@ -24,53 +32,128 @@ class Ferret(Package): depends_on("readline") depends_on("zlib") depends_on("libx11") + depends_on("curl") + + # Make Java dependency optional with older versions of Ferret + patch('https://github.com/NOAA-PMEL/Ferret/commit/c7eb70a0b17045c8ca7207d586bfea77a5340668.patch', + sha256='5bd581db4578c013faed375844b206fbe71f93fe9ce60f8f9f41d64abc6a5972', + level=1, working_dir='FERRET', when='@:6.99') + + resource(name='datasets', + url='https://github.com/NOAA-PMEL/FerretDatasets/archive/v7.6.tar.gz', + sha256='b2fef758ec1817c1c19e6225857ca3a82c727d209ed7fd4697d45c5533bb2c72', + placement='fer_dsets', when='+datasets') def url_for_version(self, version): - return "ftp://ftp.pmel.noaa.gov/ferret/pub/source/fer_source.v{0}.tar.gz".format( - version.joined) + if version <= Version('7.2'): + return 'ftp://ftp.pmel.noaa.gov/ferret/pub/source/fer_source.v{0}.tar.gz'.format( + version.joined) + else: + return 'https://github.com/NOAA-PMEL/Ferret/archive/v{0}.tar.gz'.format(version) def patch(self): - hdf5_prefix = self.spec['hdf5'].prefix - netcdff_prefix = self.spec['netcdf-fortran'].prefix - readline_prefix = self.spec['readline'].prefix - libz_prefix = self.spec['zlib'].prefix - - filter_file(r'^BUILDTYPE.+', - 'BUILDTYPE = x86_64-linux', - 'FERRET/site_specific.mk') - filter_file(r'^INSTALL_FER_DIR.+', - 'INSTALL_FER_DIR = %s' % self.spec.prefix, - 'FERRET/site_specific.mk') - filter_file(r'^HDF5_DIR.+', - 'HDF5_DIR = %s' % hdf5_prefix, - 'FERRET/site_specific.mk') - filter_file(r'^NETCDF4_DIR.+', - 'NETCDF4_DIR = %s' % netcdff_prefix, - 'FERRET/site_specific.mk') - filter_file(r'^READLINE_DIR.+', - 'READLINE_DIR = %s' % readline_prefix, - 'FERRET/site_specific.mk') - filter_file(r'^LIBZ_DIR.+', - 'LIBZ_DIR = %s' % libz_prefix, - 'FERRET/site_specific.mk') - filter_file(r'^JAVA_HOME.+', - ' ', - 'FERRET/site_specific.mk') - filter_file(r'-lm', - '-lgfortran -lm', - 'FERRET/platform_specific.mk.x86_64-linux') - filter_file(r'\$\(NETCDF4_DIR\)/lib64/libnetcdff.a', - "-L%s -lnetcdff" % self.spec['netcdf-fortran'].prefix.lib, - 'FERRET/platform_specific.mk.x86_64-linux') - filter_file(r'\$\(NETCDF4_DIR\)/lib64/libnetcdf.a', - "-L%s -lnetcdf" % self.spec['netcdf-c'].prefix.lib, - 'FERRET/platform_specific.mk.x86_64-linux') - filter_file(r'\$\(HDF5_DIR\)/lib64/libhdf5_hl.a', - "-L%s -lhdf5_hl" % self.spec['hdf5'].prefix.lib, - 'FERRET/platform_specific.mk.x86_64-linux') - filter_file(r'\$\(HDF5_DIR\)/lib64/libhdf5.a', - "-L%s -lhdf5" % self.spec['hdf5'].prefix.lib, - 'FERRET/platform_specific.mk.x86_64-linux') + spec = self.spec + hdf5_prefix = spec['hdf5'].prefix + netcdff_prefix = spec['netcdf-fortran'].prefix + readline_prefix = spec['readline'].prefix + libz_prefix = spec['zlib'].prefix + + work_dir = 'FERRET' if '@:7.2' in spec else '.' + with working_dir(work_dir, create=False): + if '@7.3:' in spec: + copy('site_specific.mk.in', 'site_specific.mk') + copy('external_functions/ef_utility/site_specific.mk.in', + 'external_functions/ef_utility/site_specific.mk') + + filter_file(r'^DIR_PREFIX.+', + 'DIR_PREFIX = %s' % self.stage.source_path, + 'site_specific.mk') + # Setting this to blank not to force + # using the static version of readline + filter_file(r'^(READLINE_(LIB)?DIR).+', + '\\1 = ', + 'site_specific.mk') + else: + filter_file(r'^LIBZ_DIR.+', + 'LIBZ_DIR = %s' % libz_prefix, + 'site_specific.mk') + filter_file(r'^JAVA_HOME.+', + ' ', + 'site_specific.mk') + filter_file(r'^READLINE_DIR.+', + 'READLINE_DIR = %s' % readline_prefix, + 'site_specific.mk') + + filter_file(r'^BUILDTYPE.+', + 'BUILDTYPE = x86_64-linux', + 'site_specific.mk') + filter_file(r'^INSTALL_FER_DIR.+', + 'INSTALL_FER_DIR = %s' % spec.prefix, + 'site_specific.mk') + filter_file(r'^(HDF5_(LIB)?DIR).+', + '\\1 = %s' % hdf5_prefix, + 'site_specific.mk') + filter_file(r'^(NETCDF4?_(LIB)?DIR).+', + '\\1 = %s' % netcdff_prefix, + 'site_specific.mk') + + if '@:7.3' in spec: + # Don't force using the static version of libz + filter_file(r'\$\(LIBZ_DIR\)/lib64/libz.a', + '-lz', + 'platform_specific.mk.x86_64-linux') + + # Don't force using the static version of libgfortran + filter_file(r'-Wl,-Bstatic -lgfortran -Wl,-Bdynamic', + '-lgfortran', + 'platform_specific.mk.x86_64-linux') + + # This prevents the rpaths to be properly set + # by Spack's compiler wrappers + filter_file(r'-v --verbose', + '', + 'platform_specific.mk.x86_64-linux') + + filter_file(r'^[ \t]*LD[ \t]*=.+', + 'LD = %s' % spack_cc, + 'platform_specific.mk.x86_64-linux') + else: + # Don't force using the static version of libgfortran + filter_file(r'-static-libgfortran', + '', + 'platform_specific.mk.x86_64-linux') + + if '@:7.4' in spec: + compilers_spec_file = 'platform_specific.mk.x86_64-linux' + else: + compilers_spec_file = 'site_specific.mk' + + # Make sure Ferret uses Spack's compiler wrappers + filter_file(r'^[ \t]*CC[ \t]*=.+', + 'CC = %s' % spack_cc, + compilers_spec_file) + filter_file(r'^[ \t]*CXX[ \t]*=.+', + 'CXX = %s' % spack_cxx, + compilers_spec_file) + filter_file(r'^[ \t]*FC[ \t]*=.+', + 'FC = %s' % spack_fc, + compilers_spec_file) + filter_file(r'^[ \t]*F77[ \t]*=.+', + 'F77 = %s' % spack_f77, + compilers_spec_file) + + filter_file(r'\$\(NETCDF4?_(LIB)?DIR\).*/libnetcdff.a', + "-L%s -lnetcdff" % spec['netcdf-fortran'].prefix.lib, + 'platform_specific.mk.x86_64-linux') + filter_file(r'\$\(NETCDF4?_(LIB)?DIR\).*/libnetcdf.a', + "-L%s -lnetcdf" % spec['netcdf-c'].prefix.lib, + 'platform_specific.mk.x86_64-linux') + filter_file(r'\$\(HDF5_(LIB)?DIR\).*/libhdf5_hl.a', + "-L%s -lhdf5_hl" % spec['hdf5'].prefix.lib, + 'platform_specific.mk.x86_64-linux') + filter_file(r'\$\(HDF5_(LIB)?DIR\).*/libhdf5.a', + "-L%s -lhdf5" % spec['hdf5'].prefix.lib, + 'platform_specific.mk.x86_64-linux') def install(self, spec, prefix): if 'LDFLAGS' in env and env['LDFLAGS']: @@ -78,8 +161,37 @@ class Ferret(Package): else: env['LDFLAGS'] = '-lquadmath' - with working_dir('FERRET', create=False): + work_dir = 'FERRET' if '@:7.2' in self.spec else '.' + with working_dir(work_dir, create=False): os.environ['LD_X11'] = '-L%s -lX11' % spec['libx11'].prefix.lib os.environ['HOSTTYPE'] = 'x86_64-linux' make(parallel=False) make("install") + + if '+datasets' in self.spec: + mkdir(self.prefix.fer_dsets) + install_tree('fer_dsets', self.prefix.fer_dsets) + + def setup_run_environment(self, env): + env.set('FER_DIR', self.prefix) + env.set('FER_GO', ' '.join(['.', self.prefix.go, self.prefix.examples, + self.prefix.contrib])) + env.set('FER_EXTERNAL_FUNCTIONS', self.prefix.ext_func.libs) + env.set('FER_PALETTE', ' '.join(['.', self.prefix.ppl])) + env.set('FER_FONTS', self.prefix.ppl.fonts) + + fer_data = ['.'] + fer_descr = ['.'] + fer_grids = ['.'] + + if '+datasets' in self.spec: + env.set('FER_DSETS', self.prefix.fer_dsets) + + fer_data.append(self.prefix.fer_dsets.data) + fer_descr.append(self.prefix.fer_dsets.descr) + fer_grids.append(self.prefix.fer_dsets.grids) + + fer_data.extend([self.prefix.go, self.prefix.examples]) + env.set('FER_DATA', ' '.join(fer_data)) + env.set('FER_DESCR', ' '.join(fer_descr)) + env.set('FER_GRIDS', ' '.join(fer_grids)) diff --git a/var/spack/repos/builtin/packages/fftw/intel-configure.patch b/var/spack/repos/builtin/packages/fftw/intel-configure.patch new file mode 100644 index 0000000000..21b95c0efe --- /dev/null +++ b/var/spack/repos/builtin/packages/fftw/intel-configure.patch @@ -0,0 +1,54 @@ +--- configure 2020-08-07 15:58:51.343052000 +0200 ++++ configure 2020-08-07 16:03:16.202984102 +0200 +@@ -14858,51 +14858,6 @@ + + + case "${ax_cv_c_compiler_vendor}" in +- intel) # Stop icc from defining __GNUC__, except on MacOS where this fails +- case "${host_os}" in +- *darwin*) ;; # icc -no-gcc fails to compile some system headers +- *) +- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether C compiler accepts -no-gcc" >&5 +-$as_echo_n "checking whether C compiler accepts -no-gcc... " >&6; } +-if ${ax_cv_c_flags__no_gcc+:} false; then : +- $as_echo_n "(cached) " >&6 +-else +- +- ax_save_FLAGS=$CFLAGS +- CFLAGS="-no-gcc" +- cat confdefs.h - <<_ACEOF >conftest.$ac_ext +-/* end confdefs.h. */ +- +-int +-main () +-{ +- +- ; +- return 0; +-} +-_ACEOF +-if ac_fn_c_try_compile "$LINENO"; then : +- ax_cv_c_flags__no_gcc=yes +-else +- ax_cv_c_flags__no_gcc=no +-fi +-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +- CFLAGS=$ax_save_FLAGS +-fi +- +-eval ax_check_compiler_flags=$ax_cv_c_flags__no_gcc +-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_check_compiler_flags" >&5 +-$as_echo "$ax_check_compiler_flags" >&6; } +-if test "x$ax_check_compiler_flags" = xyes; then +- CC="$CC -no-gcc" +-else +- : +-fi +- +- ;; +- esac +- ;; +- + hp) # must (sometimes) manually increase cpp limits to handle fftw3.h + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether C compiler accepts -Wp,-H128000" >&5 + $as_echo_n "checking whether C compiler accepts -Wp,-H128000... " >&6; } diff --git a/var/spack/repos/builtin/packages/fftw/package.py b/var/spack/repos/builtin/packages/fftw/package.py index b644677fd1..c9544add21 100644 --- a/var/spack/repos/builtin/packages/fftw/package.py +++ b/var/spack/repos/builtin/packages/fftw/package.py @@ -33,6 +33,7 @@ class Fftw(AutotoolsPackage): patch('pfft-3.3.5.patch', when="@3.3.5:+pfft_patches", level=0) patch('pfft-3.3.4.patch', when="@3.3.4+pfft_patches", level=0) patch('pgi-3.3.6-pl2.patch', when="@3.3.6-pl2%pgi", level=0) + patch('intel-configure.patch', when="@3:3.3.8%intel", level=0) variant( 'precision', values=any_combination_of( diff --git a/var/spack/repos/builtin/packages/findbugs/package.py b/var/spack/repos/builtin/packages/findbugs/package.py new file mode 100644 index 0000000000..e81b3247dd --- /dev/null +++ b/var/spack/repos/builtin/packages/findbugs/package.py @@ -0,0 +1,26 @@ +# 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 Findbugs(Package): + """a program which uses static analysis to look for bugs in Java code. + It is free software, distributed under the terms of the Lesser GNU + Public License.""" + + homepage = "https://findbugs.sourceforge.net/" + url = "https://sourceforge.net/projects/findbugs/files/findbugs/3.0.1/findbugs-3.0.1.tar.gz" + list_url = "https://sourceforge.net/projects/findbugs/files/findbugs" + list_depth = 1 + + version('3.0.1', sha256='e80e0da0c213a27504ef3188ef25f107651700ffc66433eac6a7454bbe336419') + version('3.0.0', sha256='31c75797ead68dbb334fd57bf16f4b7b99c9e266447171453e06fdf673335f33') + version('2.0.3', sha256='59ba2a64d786ae5b3fa46e9f9c7bb3ea91c24d43d383c8ef594217f6f51e499f') + + depends_on('java', type=('run')) + + def install(self, spec, prefix): + install_tree('.', prefix) diff --git a/var/spack/repos/builtin/packages/flang/package.py b/var/spack/repos/builtin/packages/flang/package.py index f0f49ae506..4fd754eab3 100644 --- a/var/spack/repos/builtin/packages/flang/package.py +++ b/var/spack/repos/builtin/packages/flang/package.py @@ -71,6 +71,11 @@ class Flang(CMakePackage, CudaPackage): spec['python'].command.path) ] + # Make sure llvm-flang can find GCC's libstdc++ + if self.compiler.name == "gcc": + gcc_prefix = ancestor(self.compiler.cc, 2) + options.append('-DGCC_INSTALL_PREFIX=' + gcc_prefix) + if '+cuda' in spec: options.append('-DFLANG_OPENMP_GPU_NVIDIA=ON') else: diff --git a/var/spack/repos/builtin/packages/flatbuffers/package.py b/var/spack/repos/builtin/packages/flatbuffers/package.py index 72ad2e599c..c0a0ef4ee2 100644 --- a/var/spack/repos/builtin/packages/flatbuffers/package.py +++ b/var/spack/repos/builtin/packages/flatbuffers/package.py @@ -13,6 +13,7 @@ class Flatbuffers(CMakePackage): homepage = "http://google.github.io/flatbuffers/" url = "https://github.com/google/flatbuffers/archive/v1.9.0.tar.gz" + version('1.12.0', sha256='62f2223fb9181d1d6338451375628975775f7522185266cd5296571ac152bc45') version('1.11.0', sha256='3f4a286642094f45b1b77228656fbd7ea123964f19502f9ecfd29933fd23a50b') version('1.10.0', sha256='3714e3db8c51e43028e10ad7adffb9a36fc4aa5b1a363c2d0c4303dd1be59a7c') version('1.9.0', sha256='5ca5491e4260cacae30f1a5786d109230db3f3a6e5a0eb45d0d0608293d247e3') diff --git a/var/spack/repos/builtin/packages/flatcc/package.py b/var/spack/repos/builtin/packages/flatcc/package.py index ce3fc222fc..a9d3617c9b 100644 --- a/var/spack/repos/builtin/packages/flatcc/package.py +++ b/var/spack/repos/builtin/packages/flatcc/package.py @@ -37,6 +37,9 @@ class Flatcc(CMakePackage): spec = self.spec args = [] + # allow flatcc to be built with more compilers + args.append('-DFLATCC_ALLOW_WERROR=OFF') + if '+shared' in spec: args.append('-DBUILD_SHARED_LIBS=ON') args.append('-DFLATCC_INSTALL=ON') diff --git a/var/spack/repos/builtin/packages/flecsph/package.py b/var/spack/repos/builtin/packages/flecsph/package.py index fee1e36c64..0ab3623c14 100644 --- a/var/spack/repos/builtin/packages/flecsph/package.py +++ b/var/spack/repos/builtin/packages/flecsph/package.py @@ -17,19 +17,28 @@ class Flecsph(CMakePackage): homepage = "http://flecsi.lanl.com" git = "https://github.com/laristra/flecsph.git" - version('develop', branch='master', submodules=True) + version('master', branch='master', submodules=True, preferred=True) - depends_on('cmake@3.1:', type='build') - depends_on('boost@1.59.0: cxxstd=11 +program_options') + variant('test', default=True, description='Adding tests') + + depends_on('cmake@3.15:', type='build') + depends_on('boost@1.70.0: cxxstd=17 +program_options') depends_on('mpi') - depends_on('hdf5@1.10.5 +mpi') - depends_on('flecsi backend=mpi') + depends_on('hdf5+hl@1.8:') + depends_on('flecsi@1 +cinch backend=mpi') depends_on('gsl') + depends_on('googletest', when='+test') + depends_on("pkgconfig", type='build') + + def setup_run_environment(self, env): + env.set('HDF5_ROOT', self.spec['hdf5'].prefix) def cmake_args(self): options = ['-DCMAKE_BUILD_TYPE=debug'] - options.append('-DENABLE_MPI=ON') - options.append('-DENABLE_OPENMP=ON') - options.append('-DENABLE_CLOG=ON') - options.append('-DCXX_CONFORMANCE_STANDARD=c++17') + options.append('-DENABLE_UNIT_TESTS=ON') + options.append('-DENABLE_DEBUG=OFF') + options.append('-DLOG_STRIP_LEVEL=1') + options.append('-DENABLE_UNIT_TESTS=ON') + options.append('-DENABLE_DEBUG_TREE=OFF') + # add option to build the tests return options diff --git a/var/spack/repos/builtin/packages/frontistr/package.py b/var/spack/repos/builtin/packages/frontistr/package.py index ebdfa0a3e3..e59da46324 100644 --- a/var/spack/repos/builtin/packages/frontistr/package.py +++ b/var/spack/repos/builtin/packages/frontistr/package.py @@ -15,6 +15,7 @@ class Frontistr(CMakePackage): git = "https://gitlab.com/FrontISTR-Commons/FrontISTR.git" maintainers = ['hiroshi.okuda', 'kgoto', 'morita', 'inagaki', 'michioga'] + version('5.1', tag='v5.1') version('5.0', tag='v5.0') version('master', tag='master') diff --git a/var/spack/repos/builtin/packages/gaudi/package.py b/var/spack/repos/builtin/packages/gaudi/package.py index 0c44036dc6..cea1b046da 100644 --- a/var/spack/repos/builtin/packages/gaudi/package.py +++ b/var/spack/repos/builtin/packages/gaudi/package.py @@ -16,6 +16,7 @@ class Gaudi(CMakePackage): version('master', branch='master') # major cmake config overhaul already in use by some version('develop', git='https://gitlab.cern.ch/clemenci/Gaudi.git', branch='cmake-modernisation') + version('34.0', sha256='28fc4abb5a6b08da5a6b1300451c7e8487f918b055939877219d454abf7668ae') version('33.2', sha256='26aaf9c4ff237a60ec79af9bd18ad249fc91c16e297ba77e28e4a256123db6e5') version('33.1', sha256='7eb6b2af64aeb965228d4b6ea66c7f9f57f832f93d5b8ad55c9105235af5b042') version('33.0', sha256='76a967c41f579acc432593d498875dd4dc1f8afd5061e692741a355a9cf233c8') diff --git a/var/spack/repos/builtin/packages/gcc/package.py b/var/spack/repos/builtin/packages/gcc/package.py index 3072402dab..dc7b13742d 100644 --- a/var/spack/repos/builtin/packages/gcc/package.py +++ b/var/spack/repos/builtin/packages/gcc/package.py @@ -2,16 +2,17 @@ # Spack Project Developers. See the top-level COPYRIGHT file for details. # # SPDX-License-Identifier: (Apache-2.0 OR MIT) - -from spack import * -from spack.operating_systems.mac_os import macos_version, macos_sdk_path -from llnl.util import tty - import glob import itertools import os +import re import sys +import llnl.util.tty as tty +import spack.util.executable + +from spack.operating_systems.mac_os import macos_version, macos_sdk_path + class Gcc(AutotoolsPackage, GNUMirrorPackage): """The GNU Compiler Collection includes front ends for C, C++, Objective-C, @@ -27,6 +28,7 @@ class Gcc(AutotoolsPackage, GNUMirrorPackage): version('master', branch='master') + version('10.2.0', sha256='b8dd4368bb9c7f0b98188317ee0254dd8cc99d1e3a18d0ff146c855fe16c1d8c') version('10.1.0', sha256='b6898a23844b656f1b68691c5c012036c2e694ac4b53a8918d4712ad876e7ea2') version('9.3.0', sha256='71e197867611f6054aa1119b13a0c0abac12834765fe2d81f35ac57f84f742d1') @@ -268,6 +270,105 @@ class Gcc(AutotoolsPackage, GNUMirrorPackage): build_directory = 'spack-build' + @property + def executables(self): + names = [r'gcc', r'[^\w]?g\+\+', r'gfortran'] + suffixes = [r'', r'-mp-\d+\.\d', r'-\d+\.\d', r'-\d+', r'\d\d'] + return [r''.join(x) for x in itertools.product(names, suffixes)] + + @classmethod + def filter_detected_exes(cls, prefix, exes_in_prefix): + result = [] + for exe in exes_in_prefix: + # clang++ matches g++ -> clan[g++] + if any(x in exe for x in ('clang', 'ranlib')): + continue + # Filter out links in favor of real executables + if os.path.islink(exe): + continue + result.append(exe) + return result + + @classmethod + def determine_version(cls, exe): + version_regex = re.compile(r'([\d\.]+)') + for vargs in ('-dumpfullversion', '-dumpversion'): + try: + output = spack.compiler.get_compiler_version_output(exe, vargs) + match = version_regex.search(output) + if match: + return match.group(1) + except spack.util.executable.ProcessError: + pass + except Exception as e: + tty.debug(e) + + return None + + @classmethod + def determine_variants(cls, exes, version_str): + languages, compilers = set(), {} + for exe in exes: + basename = os.path.basename(exe) + if 'gcc' in basename: + languages.add('c') + compilers['c'] = exe + elif 'g++' in basename: + languages.add('c++') + compilers['cxx'] = exe + elif 'gfortran' in basename: + languages.add('fortran') + compilers['fortran'] = exe + variant_str = 'languages={0}'.format(','.join(languages)) + return variant_str, {'compilers': compilers} + + @classmethod + def validate_detected_spec(cls, spec, extra_attributes): + # For GCC 'compilers' is a mandatory attribute + msg = ('the extra attribute "compilers" must be set for ' + 'the detected spec "{0}"'.format(spec)) + assert 'compilers' in extra_attributes, msg + + compilers = extra_attributes['compilers'] + for constraint, key in { + 'languages=c': 'c', + 'languages=c++': 'cxx', + 'languages=fortran': 'fortran' + }.items(): + if spec.satisfies(constraint, strict=True): + msg = '{0} not in {1}' + assert key in compilers, msg.format(key, spec) + + @property + def cc(self): + msg = "cannot retrieve C compiler [spec is not concrete]" + assert self.spec.concrete, msg + if self.spec.external: + return self.spec.extra_attributes['compilers'].get('c', None) + return self.spec.prefix.bin.gcc if 'languages=c' in self.spec else None + + @property + def cxx(self): + msg = "cannot retrieve C++ compiler [spec is not concrete]" + assert self.spec.concrete, msg + if self.spec.external: + return self.spec.extra_attributes['compilers'].get('cxx', None) + result = None + if 'languages=c++' in self.spec: + result = os.path.join(self.spec.prefix.bin, 'g++') + return result + + @property + def fortran(self): + msg = "cannot retrieve Fortran compiler [spec is not concrete]" + assert self.spec.concrete, msg + if self.spec.external: + return self.spec.extra_attributes['compilers'].get('fortran', None) + result = None + if 'languages=fortran' in self.spec: + result = self.spec.prefix.bin.gfortran + return result + def url_for_version(self, version): # This function will be called when trying to fetch from url, before # mirrors are tried. It takes care of modifying the suffix of gnu diff --git a/var/spack/repos/builtin/packages/gdal/package.py b/var/spack/repos/builtin/packages/gdal/package.py index b3678bed32..e5a727b66d 100644 --- a/var/spack/repos/builtin/packages/gdal/package.py +++ b/var/spack/repos/builtin/packages/gdal/package.py @@ -18,7 +18,7 @@ class Gdal(AutotoolsPackage): """ homepage = "https://www.gdal.org/" - url = "https://download.osgeo.org/gdal/3.1.1/gdal-3.1.1.tar.xz" + url = "https://download.osgeo.org/gdal/3.1.2/gdal-3.1.2.tar.xz" list_url = "https://download.osgeo.org/gdal/" list_depth = 1 @@ -29,6 +29,7 @@ class Gdal(AutotoolsPackage): 'osgeo.gdal_array', 'osgeo.gdalconst' ] + version('3.1.2', sha256='767c8d0dfa20ba3283de05d23a1d1c03a7e805d0ce2936beaff0bb7d11450641') version('3.1.1', sha256='97154a606339a6c1d87c80fb354d7456fe49828b2ef9a3bc9ed91771a03d2a04') version('3.1.0', sha256='e754a22242ccbec731aacdb2333b567d4c95b9b02d3ba1ea12f70508d244fcda') version('3.0.4', sha256='5569a4daa1abcbba47a9d535172fc335194d9214fdb96cd0f139bb57329ae277') diff --git a/var/spack/repos/builtin/packages/gdb/package.py b/var/spack/repos/builtin/packages/gdb/package.py index e6aef7d671..bef6540a30 100644 --- a/var/spack/repos/builtin/packages/gdb/package.py +++ b/var/spack/repos/builtin/packages/gdb/package.py @@ -15,6 +15,7 @@ class Gdb(AutotoolsPackage, GNUMirrorPackage): homepage = "https://www.gnu.org/software/gdb" gnu_mirror_path = "gdb/gdb-7.10.tar.gz" + version('9.2', sha256='38ef247d41ba7cc3f6f93a612a78bab9484de9accecbe3b0150a3c0391a3faf0') version('9.1', sha256='fcda54d4f35bc53fb24b50009a71ca98410d71ff2620942e3c829a7f5d614252') version('8.3.1', sha256='26ce655216cd03f4611518a7a1c31d80ec8e884c16715e9ba8b436822e51434b') version('8.3', sha256='b2266ec592440d0eec18ee1790f8558b3b8a2845b76cc83a872e39b501ce8a28') diff --git a/var/spack/repos/builtin/packages/gdk-pixbuf/package.py b/var/spack/repos/builtin/packages/gdk-pixbuf/package.py index 04fd4d6030..585bd2de81 100644 --- a/var/spack/repos/builtin/packages/gdk-pixbuf/package.py +++ b/var/spack/repos/builtin/packages/gdk-pixbuf/package.py @@ -14,13 +14,17 @@ class GdkPixbuf(Package): preparation for the change to GTK+ 3.""" homepage = "https://developer.gnome.org/gdk-pixbuf/" - url = "https://ftp.acc.umu.se/pub/gnome/sources/gdk-pixbuf/2.38/gdk-pixbuf-2.38.0.tar.xz" + url = "https://ftp.acc.umu.se/pub/gnome/sources/gdk-pixbuf/2.40/gdk-pixbuf-2.40.0.tar.xz" list_url = "https://ftp.acc.umu.se/pub/gnome/sources/gdk-pixbuf/" list_depth = 1 + version('2.40.0', sha256='1582595099537ca8ff3b99c6804350b4c058bb8ad67411bbaae024ee7cead4e6') + version('2.38.2', sha256='73fa651ec0d89d73dd3070b129ce2203a66171dfc0bd2caa3570a9c93d2d0781') version('2.38.0', sha256='dd50973c7757bcde15de6bcd3a6d462a445efd552604ae6435a0532fbbadae47') version('2.31.2', sha256='9e467ed09894c802499fb2399cd9a89ed21c81700ce8f27f970a833efb1e47aa') + variant('x11', default=False, description="Enable X11 support") + depends_on('meson@0.46.0:', type='build', when='@2.37.92:') depends_on('meson@0.45.0:', type='build', when='@2.37.0:') depends_on('ninja', type='build', when='@2.37.0:') @@ -37,6 +41,7 @@ class GdkPixbuf(Package): depends_on('zlib') depends_on('libtiff') depends_on('gobject-introspection') + depends_on('libx11', when='+x11') # Replace the docbook stylesheet URL with the one that our # docbook-xsl package uses/recognizes. @@ -54,7 +59,9 @@ class GdkPixbuf(Package): def install(self, spec, prefix): with working_dir('spack-build', create=True): - meson('..', *std_meson_args) + meson_args = std_meson_args + meson_args += ['-Dx11={0}'.format('+x11' in spec)] + meson('..', *meson_args) ninja('-v') if self.run_tests: ninja('test') diff --git a/var/spack/repos/builtin/packages/geant4-vmc/package.py b/var/spack/repos/builtin/packages/geant4-vmc/package.py new file mode 100644 index 0000000000..8a5adc7c43 --- /dev/null +++ b/var/spack/repos/builtin/packages/geant4-vmc/package.py @@ -0,0 +1,34 @@ +# 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 Geant4Vmc(CMakePackage): + """Geant4 VMC implements the Virtual Monte Carlo (VMC) for Geant4.""" + + homepage = "http://github.com/vmc-project/geant4_vmc" + url = "http://github.com/vmc-project/geant4_vmc/archive/v5-1-p1.tar.gz" + git = "http://github.com/vmc-project/geant4_vmc.git" + + maintainer = ['wdconinc'] + + version('master', branch='master') + version('5-2', sha256='5bd0e4a4f938048b35724f06075952ecfbc8a97ffc979630cfe2788323845b13') + version('5-1-p1', sha256='2e3e4705134ea464e993156f71d478cb7d3817f5b6026bf8d9a37d32ec97590b') + version('5-1', sha256='ede71f360397dc4d045ec0968acf23b564fa81059c94eb40942b552eea8b5e00') + version('5-0-p5', sha256='296340042b0bbfab0dec8f7f15a3b15cfab3fdb34aff97f80c1d52c2a25200cb') + version('5-0-p4', sha256='0c13848b5cf5951e3d5d2d5abcc4082c75ea37c83bb92a15b82ecae03045fe1e') + version('5-0-p3', sha256='91df73e992bf9ae7e1b6b3c3deb12cd6661c7dd5153fa233eb28b8d8e1164ccb') + version('5-0-p2', sha256='34578c5468173615de3fc077e85be3bf68f4aff4b4f37523ab67304dbc153d5f') + version('5-0-p1', sha256='b66cbf86a96b6efe1643753a7606b1c4ebb9d45cca9f6b8e933762920f32831f') + version('5-0', sha256='9a3820ea4b68b5a0697c340bbbc0972b9c8e4205ceecdd87258a9bdfd249cd8b') + version('4-0-p3', sha256='ec6699aa0deca903f143c593affec09832c33be736d9cddfa8d6f5cdfc3bc288') + version('4-0-p2', sha256='cdd73c499cd296f13b6c0d37e161e7d94343f85617b2a7577ded8312248f9b9b') + version('3-6-p6', sha256='e62a62ff7075ff9afb2ffe420610374f62136094a447bbbc5f739a2238ddb0f0') + + depends_on('cmake@3.3:', type='build') + depends_on('geant4') + depends_on('vmc') diff --git a/var/spack/repos/builtin/packages/ginkgo/CAS-HIP-NVCC-1.2.0.patch b/var/spack/repos/builtin/packages/ginkgo/CAS-HIP-NVCC-1.2.0.patch new file mode 100644 index 0000000000..d562b0315b --- /dev/null +++ b/var/spack/repos/builtin/packages/ginkgo/CAS-HIP-NVCC-1.2.0.patch @@ -0,0 +1,10 @@ +diff --git a/third_party/CMakeLists.txt b/third_party/CMakeLists.txt +index 884e50bf6..40618311a 100644 +--- a/third_party/CMakeLists.txt ++++ b/third_party/CMakeLists.txt +@@ -1,4 +1,4 @@ +-if(GINKGO_BUILD_CUDA) ++if(GINKGO_BUILD_CUDA OR (GINKGO_BUILD_HIP AND GINKGO_HIP_PLATFORM STREQUAL "nvcc")) + enable_language(CUDA) + if (GINKGO_USE_EXTERNAL_CAS) + include(CudaArchitectureSelector RESULT_VARIABLE GINKGO_CAS_FILE) diff --git a/var/spack/repos/builtin/packages/ginkgo/package.py b/var/spack/repos/builtin/packages/ginkgo/package.py index 8440be2516..d0ee354256 100644 --- a/var/spack/repos/builtin/packages/ginkgo/package.py +++ b/var/spack/repos/builtin/packages/ginkgo/package.py @@ -18,6 +18,8 @@ class Ginkgo(CMakePackage, CudaPackage): version('develop', branch='develop') version('master', branch='master') + version('1.2.0', commit='b4be2be961fd5db45c3d02b5e004d73550722e31') # v1.2.0 + version('1.1.1', commit='08d2c5200d3c78015ac8a4fd488bafe1e4240cf5') # v1.1.1 version('1.1.0', commit='b9bec8225442b3eb2a85a870efa112ab767a17fb') # v1.1.0 version('1.0.0', commit='45244641e0c2b19ba33aecd25153c0bddbcbe1a0') # v1.0.0 @@ -44,6 +46,8 @@ class Ginkgo(CMakePackage, CudaPackage): 'ON' if '+full_optimizations' in spec else 'OFF'), '-DGINKGO_DEVEL_TOOLS=%s' % ( 'ON' if '+develtools' in spec else 'OFF'), + # Drop HIP support for now + '-DGINKGO_BUILD_HIP=OFF', # As we are not exposing benchmarks, examples, tests nor doc # as part of the installation, disable building them altogether. '-DGINKGO_BUILD_BENCHMARKS=OFF', diff --git a/var/spack/repos/builtin/packages/giraph/package.py b/var/spack/repos/builtin/packages/giraph/package.py new file mode 100644 index 0000000000..1e33b76736 --- /dev/null +++ b/var/spack/repos/builtin/packages/giraph/package.py @@ -0,0 +1,34 @@ +# 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 Giraph(Package): + """Apache Giraph is an iterative graph processing system built + for high scalability.""" + + homepage = "https://giraph.apache.org/" + url = "https://downloads.apache.org/giraph/giraph-1.0.0/giraph-dist-1.0.0-src.tar.gz" + list_url = "https://downloads.apache.org/giraph/" + list_depth = 1 + + version('1.2.0', sha256='6206f4ad220ea42aa0c4abecce343e36026cf9c6e0a2853f1eb08543da452ad1') + version('1.1.0', sha256='181d94b8198c0f312d4611e24b0056b5181c8358a7ec89b0393661736cd19a4c') + + depends_on('maven', type='build') + depends_on('java@8', type=('build', 'run')) + + def install(self, spec, prefix): + mvn = which('mvn') + mvn('clean', 'package', '-DskipTests') + giraph_path = join_path(self.stage.source_path, + 'giraph-dist', 'target', + 'giraph-{0}-for-hadoop-1.2.1-bin' + .format(spec.version), + 'giraph-{0}-for-hadoop-1.2.1' + .format(spec.version)) + with working_dir(giraph_path): + install_tree('.', prefix) diff --git a/var/spack/repos/builtin/packages/git/package.py b/var/spack/repos/builtin/packages/git/package.py index 1094e3373d..8ecedd8c89 100644 --- a/var/spack/repos/builtin/packages/git/package.py +++ b/var/spack/repos/builtin/packages/git/package.py @@ -24,6 +24,11 @@ class Git(AutotoolsPackage): # You can find the source here: https://mirrors.edge.kernel.org/pub/software/scm/git/sha256sums.asc releases = [ { + 'version': '2.28.0', + 'sha256': 'f914c60a874d466c1e18467c864a910dd4ea22281ba6d4d58077cb0c3f115170', + 'sha256_manpages': '3cfca28a88d5b8112ea42322b797a500a14d0acddea391aed0462aff1ab11bf7' + }, + { 'version': '2.27.0', 'sha256': '77ded85cbe42b1ffdc2578b460a1ef5d23bcbc6683eabcafbb0d394dffe2e787', 'sha256_manpages': '414e4b17133e54d846f6bfa2479f9757c50e16c013eb76167a492ae5409b8947' @@ -193,6 +198,7 @@ class Git(AutotoolsPackage): depends_on('pcre2', when='@2.14:') depends_on('perl') depends_on('zlib') + depends_on('openssh', type='run') depends_on('autoconf', type='build') depends_on('automake', type='build') diff --git a/var/spack/repos/builtin/packages/glew/package.py b/var/spack/repos/builtin/packages/glew/package.py index a5ca6f65da..1b701a21c0 100644 --- a/var/spack/repos/builtin/packages/glew/package.py +++ b/var/spack/repos/builtin/packages/glew/package.py @@ -16,6 +16,8 @@ class Glew(Package): depends_on("cmake", type='build') depends_on("gl") + depends_on('libsm') + depends_on('libice') def install(self, spec, prefix): options = [] diff --git a/var/spack/repos/builtin/packages/global/package.py b/var/spack/repos/builtin/packages/global/package.py index 7a252e7add..5ad3d72520 100644 --- a/var/spack/repos/builtin/packages/global/package.py +++ b/var/spack/repos/builtin/packages/global/package.py @@ -13,6 +13,7 @@ class Global(Package): homepage = "http://www.gnu.org/software/global" url = "http://tamacom.com/global/global-6.5.tar.gz" + version('6.6.4', sha256='987e8cb956c53f8ebe4453b778a8fde2037b982613aba7f3e8e74bcd05312594') version('6.5', sha256='4afd12db1aa600277b39113cc2d61dc59bd6c6b4ee8033da8bb6dd0c39a4c6a9') depends_on('exuberant-ctags', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/glusterfs/package.py b/var/spack/repos/builtin/packages/glusterfs/package.py index 89024cf977..95c482da2f 100644 --- a/var/spack/repos/builtin/packages/glusterfs/package.py +++ b/var/spack/repos/builtin/packages/glusterfs/package.py @@ -34,6 +34,7 @@ class Glusterfs(AutotoolsPackage): depends_on('libuuid') depends_on('libtirpc') depends_on('userspace-rcu') + depends_on('pkgconfig', type='build') def url_for_version(self, version): url = 'https://download.gluster.org/pub/gluster/glusterfs/{0}/{1}/glusterfs-{1}.tar.gz' diff --git a/var/spack/repos/builtin/packages/gmt/package.py b/var/spack/repos/builtin/packages/gmt/package.py index 003c0d24be..02400cb66e 100644 --- a/var/spack/repos/builtin/packages/gmt/package.py +++ b/var/spack/repos/builtin/packages/gmt/package.py @@ -15,12 +15,13 @@ class Gmt(Package): """ homepage = "https://www.generic-mapping-tools.org/" - url = "https://github.com/GenericMappingTools/gmt/archive/6.0.0.tar.gz" + url = "https://github.com/GenericMappingTools/gmt/archive/6.1.0.tar.gz" git = "https://github.com/GenericMappingTools/gmt.git" maintainers = ['adamjstewart'] version('master', branch='master') + version('6.1.0', sha256='f76ad7f444d407dfd7e5762644eec3a719c6aeb06d877bf746fe51abd79b1a9e') version('6.0.0', sha256='7a733e670f01d99f8fc0da51a4337320d764c06a68746621f83ccf2e3453bcb7') version('5.4.4', sha256='b593dfb101e6507c467619f3d2190a9f78b09d49fe2c27799750b8c4c0cd2da0') version('4.5.9', sha256='9b13be96ccf4bbd38c14359c05dfa7eeeb4b5f06d6f4be9c33d6c3ea276afc86', @@ -41,7 +42,7 @@ class Gmt(Package): # https://github.com/GenericMappingTools/gmt/blob/master/MAINTENANCE.md # Required dependencies - depends_on('cmake@2.8.7:', type='build', when='@5:') + depends_on('cmake@2.8.12:', type='build', when='@5:') depends_on('netcdf-c@4:') depends_on('curl', when='@5.4:') @@ -59,6 +60,8 @@ class Gmt(Package): depends_on('graphicsmagick', type='test') + # https://github.com/GenericMappingTools/gmt/pull/3603 + patch('regexp.patch', when='@6.1.0') patch('type.patch', when='@4.5.9') @when('@5:') diff --git a/var/spack/repos/builtin/packages/gmt/regexp.patch b/var/spack/repos/builtin/packages/gmt/regexp.patch new file mode 100644 index 0000000000..00011591a9 --- /dev/null +++ b/var/spack/repos/builtin/packages/gmt/regexp.patch @@ -0,0 +1,11 @@ +--- a/src/gmt_regexp.c 2020-07-04 15:13:40.000000000 -0500 ++++ b/src/gmt_regexp.c 2020-07-05 18:35:02.000000000 -0500 +@@ -217,7 +217,7 @@ + /* this is when errors have been encountered */ + regerror(status, &re, err_msg, MAX_ERR_LENGTH); + GMT_Report (GMT->parent, GMT_MSG_ERROR, "gmtlib_regexp_match: POSIX ERE matching error: %s\n", err_msg); /* Report error. */ +- return (-GMT_RUNTIME_ERROR;) ++ return (-GMT_RUNTIME_ERROR); + } + return (0); /* No match */ + diff --git a/var/spack/repos/builtin/packages/gnuplot/package.py b/var/spack/repos/builtin/packages/gnuplot/package.py index 59e527fcde..0f1689b6cf 100644 --- a/var/spack/repos/builtin/packages/gnuplot/package.py +++ b/var/spack/repos/builtin/packages/gnuplot/package.py @@ -63,6 +63,7 @@ class Gnuplot(AutotoolsPackage): depends_on('cairo@1.2:', when='+cairo') depends_on('wxwidgets', when='+wx') depends_on('pango@1.10:', when='+wx') + depends_on('libsm', when='+wx') depends_on('pango@1.10:', when='+cairo') depends_on('libx11', when='+X') depends_on('qt@5.7:+opengl', when='+qt') diff --git a/var/spack/repos/builtin/packages/gnutls/package.py b/var/spack/repos/builtin/packages/gnutls/package.py index aa9c863499..4d56fab7fe 100644 --- a/var/spack/repos/builtin/packages/gnutls/package.py +++ b/var/spack/repos/builtin/packages/gnutls/package.py @@ -17,6 +17,7 @@ class Gnutls(AutotoolsPackage): homepage = "http://www.gnutls.org" url = "https://www.gnupg.org/ftp/gcrypt/gnutls/v3.5/gnutls-3.5.19.tar.xz" + version('3.6.14', sha256='5630751adec7025b8ef955af4d141d00d252a985769f51b4059e5affa3d39d63') version('3.6.8', sha256='aa81944e5635de981171772857e72be231a7e0f559ae0292d2737de475383e83') version('3.6.7.1', sha256='881b26409ecd8ea4c514fd3fbdb6fae5fab422ca7b71116260e263940a4bbbad') version('3.5.19', sha256='1936eb64f03aaefd6eb16cef0567457777618573826b94d03376bb6a4afadc44') diff --git a/var/spack/repos/builtin/packages/go/package.py b/var/spack/repos/builtin/packages/go/package.py index d0f515e94c..1d7982f866 100644 --- a/var/spack/repos/builtin/packages/go/package.py +++ b/var/spack/repos/builtin/packages/go/package.py @@ -4,9 +4,9 @@ # SPDX-License-Identifier: (Apache-2.0 OR MIT) import os +import platform import llnl.util.tty as tty from spack import * -import platform # - vanilla CentOS 7, and possibly other systems, fail a test: # TestCloneNEWUSERAndRemapRootDisableSetgroups @@ -36,11 +36,15 @@ class Go(Package): extendable = True + version('1.14.6', sha256='73fc9d781815d411928eccb92bf20d5b4264797be69410eac854babe44c94c09') + version('1.14.5', sha256='ca4c080c90735e56152ac52cd77ae57fe573d1debb1a58e03da9cc362440315c') version('1.14.4', sha256='7011af3bbc2ac108d1b82ea8abb87b2e63f78844f0259be20cde4d42c5c40584') version('1.14.3', sha256='93023778d4d1797b7bc6a53e86c3a9b150c923953225f8a48a2d5fabc971af56') version('1.14.2', sha256='98de84e69726a66da7b4e58eac41b99cbe274d7e8906eeb8a5b7eb0aadee7f7c') version('1.14.1', sha256='2ad2572115b0d1b4cb4c138e6b3a31cee6294cb48af75ee86bec3dca04507676') version('1.14', sha256='6d643e46ad565058c7a39dac01144172ef9bd476521f42148be59249e4b74389') + version('1.13.14', sha256='197333e97290e9ea8796f738d61019dcba1c377c2f3961fd6a114918ecc7ab06') + version('1.13.13', sha256='ab7e44461e734ce1fd5f4f82c74c6d236e947194d868514d48a2b1ea73d25137') version('1.13.12', sha256='17ba2c4de4d78793a21cc659d9907f4356cd9c8de8b7d0899cdedcef712eba34') version('1.13.11', sha256='89ed1abce25ad003521c125d6583c93c1280de200ad221f961085200a6c00679') version('1.13.10', sha256='eb9ccc8bf59ed068e7eff73e154e4f5ee7eec0a47a610fb864e3332a2fdc8b8c') diff --git a/var/spack/repos/builtin/packages/gotcha/arm.patch b/var/spack/repos/builtin/packages/gotcha/arm.patch deleted file mode 100644 index 0790c257b5..0000000000 --- a/var/spack/repos/builtin/packages/gotcha/arm.patch +++ /dev/null @@ -1,19 +0,0 @@ -commit 6f494384b0f00513d950b94a60c14ad1c20eb353 -Author: David Poliakoff <david.poliakoff@gmail.com> -Date: Thu Sep 20 10:59:54 2018 -0700 - - Pushed fix to help build on ARM systems - -diff --git a/src/libc_wrappers.c b/src/libc_wrappers.c -index 504e31a..5937e5a 100644 ---- a/src/libc_wrappers.c -+++ b/src/libc_wrappers.c -@@ -358,7 +358,7 @@ int gotcha_open(const char *pathname, int flags, ...) - } - va_end(args); - -- result = syscall(SYS_open, pathname, flags, mode); -+ result = syscall(SYS_openat, AT_FDCWD, pathname, flags, mode); - if (result >= 0) - return (int) result; - diff --git a/var/spack/repos/builtin/packages/gotcha/package.py b/var/spack/repos/builtin/packages/gotcha/package.py index f0cb3a7233..7c78f6c300 100644 --- a/var/spack/repos/builtin/packages/gotcha/package.py +++ b/var/spack/repos/builtin/packages/gotcha/package.py @@ -20,7 +20,10 @@ class Gotcha(CMakePackage): version('0.0.2', tag='0.0.2') variant('test', default=False, description='Build tests for Gotcha') - patch('arm.patch', when='@1.0.2') + patch( + 'https://github.com/LLNL/GOTCHA/commit/e82b4a1ecb634075d8f5334b796c888c86da0427.patch', + sha256='9f7814fd3c3362c156bc617c755e7e50c2f9125ed4540e36f60e4d93884f1ce6', + when='@0.0.2:1.0.2') def configure_args(self): spec = self.spec diff --git a/var/spack/repos/builtin/packages/gpdb/package.py b/var/spack/repos/builtin/packages/gpdb/package.py index 07ced439bd..98683b271c 100644 --- a/var/spack/repos/builtin/packages/gpdb/package.py +++ b/var/spack/repos/builtin/packages/gpdb/package.py @@ -27,6 +27,7 @@ class Gpdb(AutotoolsPackage): version('5.23.0', sha256='b06a797eb941362d5473b84d5def349b5ce12ce87ab116bea7c74ad193738ae9') depends_on('zstd') + depends_on('py-setuptools@:44.99.99') depends_on('apr') depends_on('libevent') depends_on('curl') @@ -35,7 +36,17 @@ class Gpdb(AutotoolsPackage): depends_on('libxml2') depends_on('flex') depends_on('readline') + depends_on('py-subprocess32', type=('build', 'run')) + depends_on('python@:2.8.0', type=('build', 'run')) + depends_on('py-lockfile', type=('build', 'run')) + depends_on('py-psutil', type=('build', 'run')) + depends_on('py-utils@:1.0.0', type=('build', 'run')) def configure_args(self): - args = ['--disable-orca'] + args = ['--with-python', '--disable-orca', '--enable-depend', + '--with-libxml'] return args + + def setup_run_environment(self, env): + env.append_path('GPHOME', self.prefix) + env.append_path('PYTHONPATH', self.prefix.lib.python) diff --git a/var/spack/repos/builtin/packages/gpi-2/package.py b/var/spack/repos/builtin/packages/gpi-2/package.py new file mode 100644 index 0000000000..299fba0a1a --- /dev/null +++ b/var/spack/repos/builtin/packages/gpi-2/package.py @@ -0,0 +1,79 @@ +# 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 Gpi2(AutotoolsPackage): + """GPI-2 is an API for the development of scalable, asynchronous and fault + tolerant parallel applications. It implements the GASPI specification + (www.gaspi.de)""" + + homepage = "http://www.gpi-site.com" + url = "https://github.com/cc-hpc-itwm/GPI-2/archive/v1.4.0.tar.gz" + git = "https://github.com/cc-hpc-itwm/GPI-2.git" + maintainers = ['robert-mijakovic'] + + version('develop', branch='next') + version('master', branch='master') + version('1.4.0', sha256='3b8ffb45346b2fe56aaa7ba15a515e62f9dff45a28e6a014248e20094bbe50a1') + + variant('mpi', default=False, description='Enable MPI support') + variant('fortran', default=True, description='Enable Fortran modules') + variant( + 'fabrics', + values=disjoint_sets( + ('auto',), ('verbs',), ('ethernet',), + ).with_non_feature_values('auto', 'none'), + description="List of fabrics that are enabled; " + "'auto' lets gpi-2 determine", + ) + + variant( + 'schedulers', + values=disjoint_sets( + ('auto',), ('loadleveler',), ('pbs',), ('slurm',) + ).with_non_feature_values('auto', 'none'), + description="List of schedulers for which support is enabled; " + "'auto' lets gpi-2 determine", + ) + + depends_on('autoconf', type='build') # autogen.sh - autoreconf + depends_on('automake', type='build') # autogen.sh - automake + depends_on('libtool', type='build') + depends_on('m4', type='build') + depends_on('mpi', when='+mpi') + + depends_on('rdma-core', when='fabrics=verbs') + + depends_on('slurm', when='schedulers=slurm') + + def with_or_without_verbs(self, activated): + opt = 'infiniband' + # If the option has not been activated return + # --without-infiniband + if not activated: + return '--without-{0}'.format(opt) + return '--with-{0}={1}'.format(opt, self.spec['rdma-core'].prefix) + + def autoreconf(self, spec, prefix): + bash = which('bash') + bash('./autogen.sh') + + def configure_args(self): + spec = self.spec + config_args = [] + config_args.extend(self.with_or_without('mpi')) + config_args.extend(self.with_or_without('fortran')) + + # Fabrics + if 'fabrics=auto' not in spec: + config_args.extend(self.with_or_without('fabrics')) + # Schedulers + if 'schedulers=auto' not in spec: + config_args.extend(self.with_or_without('schedulers')) + + return config_args diff --git a/var/spack/repos/builtin/packages/grads/package.py b/var/spack/repos/builtin/packages/grads/package.py new file mode 100644 index 0000000000..889ad5c7e3 --- /dev/null +++ b/var/spack/repos/builtin/packages/grads/package.py @@ -0,0 +1,65 @@ +# 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 Grads(AutotoolsPackage): + """The Grid Analysis and Display System (GrADS) is an interactive + desktop tool that is used for easy access, manipulation, and visualization + of earth science data. GrADS has two data models for handling gridded and + station data. GrADS supports many data file formats, including + binary (stream or sequential), GRIB (version 1 and 2), NetCDF, + HDF (version 4 and 5), and BUFR (for station data).""" + + homepage = "http://cola.gmu.edu/grads/grads.php" + url = "ftp://cola.gmu.edu/grads/2.2/grads-2.2.1-src.tar.gz" + + version('2.2.1', sha256='695e2066d7d131720d598bac0beb61ac3ae5578240a5437401dc0ffbbe516206') + + variant('geotiff', default=True, description="Enable GeoTIFF support") + variant('shapefile', default=True, description="Enable Shapefile support") + + """ + # FIXME: Fails with undeclared functions (tdefi, tdef, ...) in gauser.c + variant('hdf5', default=False, description="Enable HDF5 support") + variant('hdf4', default=False, description="Enable HDF4 support") + variant('netcdf', default=False, description="Enable NetCDF support") + depends_on('hdf5', when='+hdf5') + depends_on('hdf', when='+hdf4') + depends_on('netcdf-c', when='+netcdf') + """ + + depends_on('libgeotiff', when='+geotiff') + depends_on('shapelib', when='+shapefile') + depends_on('udunits') + depends_on('libgd') + depends_on('libxmu') + depends_on('cairo +X +pdf +fc +ft') + depends_on('readline') + depends_on('pkgconfig', type='build') + + def setup_build_environment(self, env): + env.set('SUPPLIBS', '/') + + def setup_run_environment(self, env): + env.set('GADDIR', self.prefix.data) + + @run_after('install') + def copy_data(self): + with working_dir(self.build_directory): + install_tree('data', self.prefix.data) + with working_dir(self.package_dir): + install('udpt', self.prefix.data) + filter_file( + r'({lib})', + self.prefix.lib, + self.prefix.data.udpt + ) + + def configure_args(self): + args = [] + args.extend(self.with_or_without('geotiff')) + return args diff --git a/var/spack/repos/builtin/packages/grads/udpt b/var/spack/repos/builtin/packages/grads/udpt new file mode 100644 index 0000000000..5bfc99ba33 --- /dev/null +++ b/var/spack/repos/builtin/packages/grads/udpt @@ -0,0 +1,2 @@ +gxdisplay Cairo {lib}/libgxdCairo.so +gxprint Cairo {lib}/libgxpCairo.so diff --git a/var/spack/repos/builtin/packages/gromacs/package.py b/var/spack/repos/builtin/packages/gromacs/package.py index 31b5d701fe..8042e38864 100644 --- a/var/spack/repos/builtin/packages/gromacs/package.py +++ b/var/spack/repos/builtin/packages/gromacs/package.py @@ -24,6 +24,7 @@ class Gromacs(CMakePackage): maintainers = ['junghans', 'marvinbernhardt'] version('master', branch='master') + version('2020.3', sha256='903183691132db14e55b011305db4b6f4901cc4912d2c56c131edfef18cc92a9') version('2020.2', sha256='7465e4cd616359d84489d919ec9e4b1aaf51f0a4296e693c249e83411b7bd2f3') version('2020.1', sha256='e1666558831a3951c02b81000842223698016922806a8ce152e8f616e29899cf') version('2020', sha256='477e56142b3dcd9cb61b8f67b24a55760b04d1655e8684f979a75a5eec40ba01') @@ -58,23 +59,37 @@ class Gromacs(CMakePackage): description='Produces a double precision version of the executables') variant('plumed', default=False, description='Enable PLUMED support') variant('cuda', default=False, description='Enable CUDA 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('rdtscp', default=True, description='Enable RDTSCP instruction usage') + variant('rdtscp', default=True, + description='Enable RDTSCP instruction usage') variant('mdrun_only', default=False, description='Enables the build of a cut-down version' ' of libgromacs and/or the mdrun program') - variant('openmp', default=True, description='Enables OpenMP at configure time') - variant('double_precision', default=False, description='Enables a double-precision configuration') - variant('hwloc', default=True, description='Use the hwloc portable hardware locality library') + variant('openmp', default=True, + description='Enables OpenMP at configure time') + variant('double_precision', default=False, + description='GMX_RELAXED_DOUBLE_PRECISION for Fujitsu PRIMEHPC') + variant('hwloc', default=True, + description='Use the hwloc portable hardware locality library') depends_on('mpi', when='+mpi') + # define matching plumed versions + depends_on('plumed@2.6.0:2.6.9+mpi', when='@2020.2+plumed+mpi') + depends_on('plumed@2.6.0:2.6.9~mpi', when='@2020.2+plumed~mpi') + depends_on('plumed@2.6.0:2.6.9+mpi', when='@2019.6+plumed+mpi') + depends_on('plumed@2.6.0:2.6.9~mpi', when='@2019.6+plumed~mpi') + depends_on('plumed@2.5.0:2.5.9+mpi', when='@2019.4+plumed+mpi') + depends_on('plumed@2.5.0:2.5.9~mpi', when='@2019.4+plumed~mpi') + depends_on('plumed@2.5.0:2.5.9+mpi', when='@2018.6+plumed+mpi') + depends_on('plumed@2.5.0:2.5.9~mpi', when='@2018.6+plumed~mpi') depends_on('plumed+mpi', when='+plumed+mpi') depends_on('plumed~mpi', when='+plumed~mpi') - depends_on('fftw+mpi', when='+mpi') - depends_on('fftw~mpi', when='~mpi') + depends_on('fftw-api@3', when='~cuda') + depends_on('mkl', when='fft=mkl') depends_on('cmake@2.8.8:3.99.99', type='build') depends_on('cmake@3.4.3:3.99.99', type='build', when='@2018:') depends_on('cmake@3.13.0:3.99.99', type='build', when='@master') @@ -104,6 +119,9 @@ class Gromacs(CMakePackage): if '+double' in self.spec: options.append('-DGMX_DOUBLE:BOOL=ON') + if '+nosuffix' in self.spec: + options.append('-DGMX_DEFAULT_SUFFIX:BOOL=OFF') + if '~shared' in self.spec: options.append('-DBUILD_SHARED_LIBS:BOOL=OFF') @@ -174,4 +192,18 @@ class Gromacs(CMakePackage): else: options.append('-DGMX_RELAXED_DOUBLE_PRECISION:BOOL=OFF') + if '^mkl' in self.spec: + # fftw-api@3 is provided by intel-mkl or intel-parllel-studio + # we use the mkl interface of gromacs + options.append('-DGMX_FFT_LIBRARY=mkl') + options.append('-DMKL_INCLUDE_DIR={0}'. + format(self.spec['mkl'].headers.directories[0])) + # The 'blas' property provides a minimal set of libraries + # that is sufficient for fft. Using full mkl fails the cmake test + options.append('-DMKL_LIBRARIES={0}'. + format(self.spec['blas'].libs.joined(';'))) + else: + # we rely on the fftw-api@3 + options.append('-DGMX_FFT_LIBRARY=fftw3') + return options diff --git a/var/spack/repos/builtin/packages/grpc/package.py b/var/spack/repos/builtin/packages/grpc/package.py index a7eff3e07f..010cffb6f3 100644 --- a/var/spack/repos/builtin/packages/grpc/package.py +++ b/var/spack/repos/builtin/packages/grpc/package.py @@ -11,8 +11,14 @@ class Grpc(CMakePackage): maintainers = ['nazavode'] homepage = "https://grpc.io" - url = "https://github.com/grpc/grpc/archive/v1.27.0.tar.gz" - + url = "https://github.com/grpc/grpc/archive/v1.30.0.tar.gz" + + version('1.30.0', sha256='419dba362eaf8f1d36849ceee17c3e2ff8ff12ac666b42d3ff02a164ebe090e9') + version('1.29.1', sha256='0343e6dbde66e9a31c691f2f61e98d79f3584e03a11511fad3f10e3667832a45') + version('1.29.0', sha256='c0a6b40a222e51bea5c53090e9e65de46aee2d84c7fa7638f09cb68c3331b983') + version('1.28.2', sha256='4bec3edf82556b539f7e9f3d3801cba540e272af87293a3f4178504239bd111e') + version('1.28.1', sha256='4cbce7f708917b6e58b631c24c59fe720acc8fef5f959df9a58cdf9558d0a79b') + version('1.28.0', sha256='d6277f77e0bb922d3f6f56c0f93292bb4cfabfc3c92b31ee5ccea0e100303612') version('1.27.0', sha256='3ccc4e5ae8c1ce844456e39cc11f1c991a7da74396faabe83d779836ef449bce') version('1.26.0', sha256='2fcb7f1ab160d6fd3aaade64520be3e5446fc4c6fa7ba6581afdc4e26094bd81') version('1.25.0', sha256='ffbe61269160ea745e487f79b0fd06b6edd3d50c6d9123f053b5634737cf2f69') @@ -29,7 +35,7 @@ class Grpc(CMakePackage): depends_on('openssl') depends_on('zlib') depends_on('c-ares') - depends_on('abseil-cpp', when='@1.27.0:') + depends_on('abseil-cpp', when='@1.27:') def cmake_args(self): args = [ diff --git a/var/spack/repos/builtin/packages/gunrock/package.py b/var/spack/repos/builtin/packages/gunrock/package.py index f47c1bf635..391b31b723 100644 --- a/var/spack/repos/builtin/packages/gunrock/package.py +++ b/var/spack/repos/builtin/packages/gunrock/package.py @@ -12,7 +12,10 @@ class Gunrock(CMakePackage, CudaPackage): homepage = "https://gunrock.github.io/docs/" git = "https://github.com/gunrock/gunrock.git" - version('master', submodules=True) + # tagged versions are broken. See + # https://github.com/gunrock/gunrock/issues/777 + # Hence, prefer master version. + version('master', submodules=True, preferred=True) version('1.1', submodules=True, tag='v1.1') version('1.0', submodules=True, tag='v1.0') version('0.5.1', submodules=True, tag='v0.5.1') @@ -23,9 +26,100 @@ class Gunrock(CMakePackage, CudaPackage): version('0.2', submodules=True, tag='v0.2') version('0.1', submodules=True, tag='v0.1') - depends_on('cuda') + variant('cuda', default=True, description="Build with Cuda support") + + variant('lib', default=True, description='Build main gunrock library') + variant('shared_libs', default=True, description='Turn off to build for static libraries') + variant('tests', default=True, description='Build functional tests / examples') + variant('mgpu_tests', default=False, description='Builds Gunrock applications and enables the ctest framework for single GPU implementations') + variant('cuda_verbose_ptxas', default=False, description='Enable verbose output from the PTXAS assembler') + variant('google_tests', default=False, description='Build unit tests using googletest') + variant('code_coverage', default=False, description="run code coverage on Gunrock's source code") + # apps + msg = 'select either all or individual applications' + variant( + "applications", + values=disjoint_sets( + ('all',), ('bc', 'bfs', 'cc', 'pr', 'sssp', 'dobfs', 'hits', + 'salsa', 'mst', 'wtf', 'topk') + ).allow_empty_set().with_default('all').with_error(msg), + description="Application to be built" + ) + + variant('boost', default=True, description='Build with Boost') + variant('metis', default=False, description='Build with Metis support') + + depends_on('googletest', when='+google_tests') + depends_on('lcov', when='+code_coverage') + depends_on('boost@1.58.0:', when='+boost') + depends_on('metis', when='+metis') + + conflicts('cuda_arch=none', when='+cuda', + msg='Must specify CUDA compute capabilities of your GPU. \ +See "spack info gunrock"') + + def cmake_args(self): + spec = self.spec + args = [] + args.extend([ + '-DGUNROCK_BUILD_LIB={0}'.format( + 'ON' if '+lib' in spec else 'OFF'), + '-DGUNROCK_BUILD_SHARED_LIBS={0}'.format( + 'ON' if '+shared_libs' in spec else 'OFF'), + '-DGUNROCK_BUILD_TESTS={0}'.format( + 'ON' if '+tests' in spec else 'OFF'), + '-DGUNROCK_MGPU_TESTS={0}'.format( + 'ON' if '+mgpu_tests' in spec else 'OFF'), + '-DCUDA_VERBOSE_PTXAS={0}'.format( + 'ON' if '+cuda_verbose_ptxas' in spec else 'OFF'), + '-DGUNROCK_GOOGLE_TESTS={0}'.format( + 'ON' if '+google_tests' in spec else 'OFF'), + '-DGUNROCK_CODE_COVERAGE={0}'.format( + 'ON' if '+code_coverage' in spec else 'OFF'), + ]) + + # turn off auto detect, which undoes custom cuda arch options + args.append('-DCUDA_AUTODETECT_GENCODE=OFF') + + cuda_arch_list = self.spec.variants['cuda_arch'].value + if cuda_arch_list[0] != 'none': + for carch in cuda_arch_list: + args.append('-DGUNROCK_GENCODE_SM' + carch + '=ON') + + app_list = self.spec.variants['applications'].value + if app_list[0] != 'none': + args.extend([ + '-DGUNROCK_BUILD_APPLICATIONS={0}'.format( + 'ON' if spec.satisfies('applications=all') else 'OFF'), + '-DGUNROCK_APP_BC={0}'.format( + 'ON' if spec.satisfies('applications=bc') else 'OFF'), + '-DGUNROCK_APP_BFS={0}'.format( + 'ON' if spec.satisfies('applications=bfs') else 'OFF'), + '-DGUNROCK_APP_CC={0}'.format( + 'ON' if spec.satisfies('applications=cc') else 'OFF'), + '-DGUNROCK_APP_PR={0}'.format( + 'ON' if spec.satisfies('applications=pr') else 'OFF'), + '-DGUNROCK_APP_SSSP={0}'.format( + 'ON' if spec.satisfies('applications=sssp') else 'OFF'), + '-DGUNROCK_APP_DOBFS={0}'.format( + 'ON' if spec.satisfies('applications=dobfs') else 'OFF'), + '-DGUNROCK_APP_HITS={0}'.format( + 'ON' if spec.satisfies('applications=hits') else 'OFF'), + '-DGUNROCK_APP_SALSA={0}'.format( + 'ON' if spec.satisfies('applications=salsa') else 'OFF'), + '-DGUNROCK_APP_MST={0}'.format( + 'ON' if spec.satisfies('applications=mst') else 'OFF'), + '-DGUNROCK_APP_WTF={0}'.format( + 'ON' if spec.satisfies('applications=wtf') else 'OFF'), + '-DGUNROCK_APP_TOPK={0}'.format( + 'ON' if spec.satisfies('applications=topk') else 'OFF'), + ]) + + return args def install(self, spec, prefix): with working_dir(self.build_directory): - install_tree('bin', prefix.bin) install_tree('lib', prefix.lib) + # bin dir is created only if tests/examples are built + if '+tests' in spec: + install_tree('bin', prefix.bin) diff --git a/var/spack/repos/builtin/packages/harfbuzz/package.py b/var/spack/repos/builtin/packages/harfbuzz/package.py index 4ab6005dbf..2a303bc97e 100644 --- a/var/spack/repos/builtin/packages/harfbuzz/package.py +++ b/var/spack/repos/builtin/packages/harfbuzz/package.py @@ -8,9 +8,11 @@ from spack import * class Harfbuzz(AutotoolsPackage): """The Harfbuzz package contains an OpenType text shaping engine.""" - homepage = "http://www.freedesktop.org/wiki/Software/HarfBuzz/" + homepage = "https://github.com/harfbuzz/harfbuzz" url = "http://www.freedesktop.org/software/harfbuzz/release/harfbuzz-0.9.37.tar.bz2" + git = "https://github.com/harfbuzz/harfbuzz.git" + version('2.6.8', sha256='6648a571a27f186e47094121f0095e1b809e918b3037c630c7f38ffad86e3035') version('2.3.1', sha256='f205699d5b91374008d6f8e36c59e419ae2d9a7bb8c5d9f34041b9a5abcae468') version('2.1.3', sha256='613264460bb6814c3894e3953225c5357402915853a652d40b4230ce5faf0bee') version('1.9.0', sha256='11eca62bf0ac549b8d6be55f4e130946399939cdfe7a562fdaee711190248b00') @@ -30,6 +32,14 @@ class Harfbuzz(AutotoolsPackage): conflicts('%intel', when='@2.3.1:', msg='harfbuzz-2.3.1 does not build with the Intel compiler') + def url_for_version(self, version): + if version > Version('2.3.1'): + url = "https://github.com/harfbuzz/harfbuzz/releases/download/{0}/harfbuzz-{0}.tar.xz" + else: + url = "http://www.freedesktop.org/software/harfbuzz/release/harfbuzz-{0}.tar.bz2" + + return url.format(version) + def configure_args(self): args = [] # disable building of gtk-doc files following #9771 diff --git a/var/spack/repos/builtin/packages/hazelcast/package.py b/var/spack/repos/builtin/packages/hazelcast/package.py new file mode 100644 index 0000000000..c903b29c0c --- /dev/null +++ b/var/spack/repos/builtin/packages/hazelcast/package.py @@ -0,0 +1,29 @@ +# 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 Hazelcast(Package): + """Hazelcast is an open-source distributed in-memory data + store and computation platform. It provides a wide variety + of distributed data structures and concurrency primitives.""" + + homepage = "http://www.hazelcast.com/" + url = "https://github.com/hazelcast/hazelcast/archive/v3.12.8.tar.gz" + + version('4.0.2', sha256='4f01682583ae6603365ac7a24c568d7598cc3c1cbd736e5c6ed98bd75e39ffa3') + version('4.0.1', sha256='c9c7d5cbcf70c5e1eb72890df2b4104639f7543f11c6ac5d3e80cd2d4a0d2181') + version('3.12.8', sha256='65d0e131fc993f9517e8ce9ae5af9515f1b8038304abaaf9da535bdef1d71726') + version('3.12.7', sha256='0747de968082bc50202f825b4010be28a3885b3dbcee4b83cbe21b2f8b26a7e0') + version('3.11.7', sha256='c9f636b8813027d4cc24459bd27740549f89b4f11f62a868079bcb5b41d9b2bb') + + depends_on('maven', type='build') + depends_on('java', type=('build', 'run')) + + def install(self, spec, prefix): + mvn = which('mvn') + mvn('package', '-DskipTests') + install_tree('.', prefix) diff --git a/var/spack/repos/builtin/packages/hbase/package.py b/var/spack/repos/builtin/packages/hbase/package.py index d34fe2f9f1..1e87f8a297 100644 --- a/var/spack/repos/builtin/packages/hbase/package.py +++ b/var/spack/repos/builtin/packages/hbase/package.py @@ -7,21 +7,24 @@ from spack import * class Hbase(Package): - """ - Apache HBase is an open-source, distributed, versioned, column-oriented + """Apache HBase is an open-source, distributed, versioned, column-oriented store modeled after Google' Bigtable: A Distributed Storage System for Structured Data by Chang et al. Just as Bigtable leverages the distributed data storage provided by the Google File System, HBase provides - Bigtable-like capabilities on top of Apache Hadoop. - """ + Bigtable-like capabilities on top of Apache Hadoop.""" - homepage = "https://github.com/apache/hbase" - url = "https://github.com/apache/hbase/archive/rel/2.2.2.tar.gz" + homepage = "https://archive.apache.org/" + url = "https://archive.apache.org/dist/hbase/2.2.4/hbase-2.2.4-bin.tar.gz" + list_url = "https://archive.apache.org/dist/hbase" + list_depth = 1 - version('2.2.2', sha256='e9a58946e9adff1cac23a0b261ecf32da32f8d2ced0706af1d04e8a67d582926') - version('2.1.8', sha256='121cea4c554879c8401f676c8eb49e39bd35d41c358e919379ad4a318844c8de') + version('2.2.5', sha256='25d08f8f038d9de5beb43dfb0392e8a8b34eae7e0f2670d6c2c172abc3855194') + version('2.2.4', sha256='ec91b628352931e22a091a206be93061b6bf5364044a28fb9e82f0023aca3ca4') + version('2.2.3', sha256='ea8fa72aa6220e038e30bd7c439d181b10bd7225383f7f2d224ebb5f5397310a') + version('2.2.2', sha256='97dcca3a031925a379a0ee6bbfb6007533fb4fdb982c23345e5fc04d6c52bebc') + version('2.1.8', sha256='d8296e8405b1c39c73f0dd03fc6b4d2af754035724168fd56e8f2a0ff175ad90') - depends_on('java@7:', type='run') + depends_on('java@8', type='run') def install(self, spec, prefix): install_tree('.', prefix) diff --git a/var/spack/repos/builtin/packages/hdf5/package.py b/var/spack/repos/builtin/packages/hdf5/package.py index c81ffb74dc..ba02bda8e0 100644 --- a/var/spack/repos/builtin/packages/hdf5/package.py +++ b/var/spack/repos/builtin/packages/hdf5/package.py @@ -57,6 +57,7 @@ class Hdf5(AutotoolsPackage): variant('hl', default=False, description='Enable the high-level library') variant('cxx', default=False, description='Enable C++ support') variant('fortran', default=False, description='Enable Fortran support') + variant('java', default=False, description='Enable Java support') variant('threadsafe', default=False, description='Enable thread-safe capabilities') @@ -78,6 +79,7 @@ class Hdf5(AutotoolsPackage): depends_on('m4', type='build', when='@develop') depends_on('mpi', when='+mpi') + depends_on('java', when='+java') # numactl does not currently build on darwin if sys.platform != 'darwin': depends_on('numactl', when='+mpi+fortran') @@ -237,6 +239,7 @@ class Hdf5(AutotoolsPackage): extra_args += self.enable_or_disable('cxx') extra_args += self.enable_or_disable('hl') extra_args += self.enable_or_disable('fortran') + extra_args += self.enable_or_disable('java') api = self.spec.variants['api'].value if api != 'none': diff --git a/var/spack/repos/builtin/packages/hdfview/fix_build.patch b/var/spack/repos/builtin/packages/hdfview/fix_build.patch new file mode 100644 index 0000000000..d4e3ce7480 --- /dev/null +++ b/var/spack/repos/builtin/packages/hdfview/fix_build.patch @@ -0,0 +1,12 @@ +diff --git a/build.xml b/build_fixed.xml +index f0f2c3f..c486cbb 100644 +--- a/build.xml ++++ b/build_fixed.xml +@@ -943,7 +943,6 @@ + <!-- Generate list of needed Java modules by using `jdeps` on all JAR files in the release directory --> + <apply executable="@{java.bindir}/jdeps" output="${build.dir}/jdeps.pre" append="true" > + <arg value="--print-module-deps" /> +- <arg value="--ignore-missing-deps" /> + <fileset dir="${release.dir}/lib" includes="**/*.jar" /> + </apply> + diff --git a/var/spack/repos/builtin/packages/hdfview/package.py b/var/spack/repos/builtin/packages/hdfview/package.py new file mode 100644 index 0000000000..fd21cb9dca --- /dev/null +++ b/var/spack/repos/builtin/packages/hdfview/package.py @@ -0,0 +1,49 @@ +# 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 * +import os + + +class Hdfview(Package): + """HDFView is a visual tool written in Java for browsing + and editing HDF (HDF5 and HDF4) files.""" + + homepage = "https://www.hdfgroup.org/downloads/hdfview/" + url = "https://s3.amazonaws.com/hdf-wordpress-1/wp-content/uploads/manual/HDFView/hdfview-3.0.tar.gz" + + version('3.1.1', sha256='1cfd127ebb4c3b0ab1cfe54649a410fc7a1c2d73f45564697d3729f4aa6b0ba3', + url='https://support.hdfgroup.org/ftp/HDF5/releases/HDF-JAVA/hdfview-3.1.1/src/hdfview-3.1.1.tar.gz') + version('3.0', sha256='e2a16d3842d8947f3d4f154ee9f48a106c7f445914a9e626a53976d678a0e934') + + # unknown flag: --ignore-missing-deps + patch('fix_build.patch', when='@3.1.1') + + depends_on('ant', type='build') + depends_on('hdf5 +java') + depends_on('hdf +java -external-xdr +shared') + + def install(self, spec, prefix): + env['HDF5LIBS'] = spec['hdf5'].prefix + env['HDFLIBS'] = spec['hdf'].prefix + + ant = which('ant') + ant('-Dbuild.debug=false', 'deploy') + + dir_version = os.listdir('build/HDF_Group/HDFView/')[0] + path = 'build/HDF_Group/HDFView/{0}/'.format(dir_version) + hdfview = '{0}/{1}'.format(path, 'hdfview.sh') + + filter_file( + r'\$dir', + prefix, + hdfview + ) + + mkdirp(prefix.bin) + install(hdfview, prefix.bin.hdfview) + chmod = which('chmod') + chmod('+x', self.prefix.bin.hdfview) + install_tree(path, prefix) diff --git a/var/spack/repos/builtin/packages/heputils/package.py b/var/spack/repos/builtin/packages/heputils/package.py new file mode 100644 index 0000000000..e856d7b5d0 --- /dev/null +++ b/var/spack/repos/builtin/packages/heputils/package.py @@ -0,0 +1,36 @@ +# 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 Heputils(MakefilePackage): + """Generic tools for high energy physics, e.g. vectors, event records, + math and other util functions.""" + + homepage = "https://bitbucket.org/andybuckley/heputils/src/default/" + url = "https://bitbucket.org/andybuckley/heputils/get/heputils-1.3.2.tar.gz" + + version('1.3.2', sha256='be43586979ab1a81a55348d795c2f63a5da19fc6367d5f66f354217c76c809c0') + version('1.3.1', sha256='7f33ef44364a3d3a39cc65005fb6aa9dfd06bd1b18b41151c0e5e3d28d6ba15b') + version('1.3.0', sha256='1ec9d9d71d409ce6b2e668e4927b1090ddf2ee9acf25457f767925cf89b24852') + version('1.2.1', sha256='99f0b27cddffb98977d37418d53f3386e5defda547aeb4c4fda00ab6fcf2cc31') + version('1.2.0', sha256='0f9f96bd7589f9aec8f1271524b8622291216fe2294ffed772b84d010759eaef') + version('1.1.0', sha256='671374641cdb6dc093327b69da2d2854df805b6eb8e90f0efefb0788ee4a2edd') + version('1.0.8', sha256='9b9a45ebff1367cd2ab1ec4ee8c0e124a9b7ed66c75d8961412163ade1962d91') + version('1.0.7', sha256='481a26755d4e2836563d1f8fcdad663bfa7e21b9878c01bd8a73a67876726b81') + version('1.0.6', sha256='1ecd8597ef7921a63606b21136900a05a818c9342da7994a42aae768ecca507f') + version('1.0.5', sha256='efff3d7d6973822f1dced903017f86661e2d054ff3f0d4fe926de2347160e329') + version('1.0.4', sha256='aeca00c1012bce469c6fe6393edbf4f33043ab671c97a8283a21861caee8b1b4') + version('1.0.3', sha256='8e7ebe0ad5e87a97cbbff7097092ed8afe5a2d1ecae0f4d4f9a7bf694e221d40') + version('1.0.2', sha256='83ba7876d884406463cc8ae42214038b7d6c40ead77a1532d64bc96887173f75') + version('1.0.1', sha256='4bfccc4f4380becb776343e546deb2474deeae79f053ba8ca22287827b8bd4b1') + version('1.0.0', sha256='4f71c2bee6736ed87d0151e62546d2fc9ff639db58172c26dcf033e5bb1ea04c') + + def build(self, spec, prefix): + return + + def install(self, spec, prefix): + make('install', 'PREFIX={0}'.format(prefix)) diff --git a/var/spack/repos/builtin/packages/herwigpp/herwig++-2.7.1.patch b/var/spack/repos/builtin/packages/herwigpp/herwig++-2.7.1.patch new file mode 100644 index 0000000000..1690f362ad --- /dev/null +++ b/var/spack/repos/builtin/packages/herwigpp/herwig++-2.7.1.patch @@ -0,0 +1,66 @@ +--- Utilities/Histogram.h.orig 2018-11-07 14:46:18.967689784 +0100 ++++ Utilities/Histogram.h 2018-11-07 14:46:32.755601195 +0100 +@@ -111,7 +111,7 @@ + * Function to add a weighted point to the histogram + */ + void addWeighted(double input, double weight) { +- if(isnan(input)) return; ++ if(std::isnan(input)) return; + unsigned int ibin; + for(ibin=1; ibin<_bins.size(); ++ibin) { + if(input<_bins[ibin].limit) +--- Contrib/AlpGen/BasicLesHouchesFileReader.cc.orig 2018-11-07 15:38:46.819306762 +0100 ++++ Contrib/AlpGen/BasicLesHouchesFileReader.cc 2018-11-07 15:39:04.927190111 +0100 +@@ -383,9 +383,9 @@ + >> hepeup.PUP[i][3] >> hepeup.PUP[i][4] + >> hepeup.VTIMUP[i] >> hepeup.SPINUP[i] ) ) + return false; +- if(isnan(hepeup.PUP[i][0])||isnan(hepeup.PUP[i][1])|| +- isnan(hepeup.PUP[i][2])||isnan(hepeup.PUP[i][3])|| +- isnan(hepeup.PUP[i][4])) ++ if(std::isnan(hepeup.PUP[i][0])||std::isnan(hepeup.PUP[i][1])|| ++ std::isnan(hepeup.PUP[i][2])||std::isnan(hepeup.PUP[i][3])|| ++ std::isnan(hepeup.PUP[i][4])) + throw Exception() + << "nan's as momenta in Les Houches file " + << Exception::eventerror; +--- DipoleShower/Base/DipoleChain.cc.orig 2018-12-14 16:51:47.597597788 +0100 ++++ DipoleShower/Base/DipoleChain.cc 2018-12-14 16:52:09.450796951 +0100 +@@ -15,6 +15,7 @@ + #include "Herwig++/DipoleShower/Utility/DipolePartonSplitter.h" + + #include <boost/utility.hpp> ++#include <boost/next_prior.hpp> + + using namespace Herwig; + +--- Exsample2/exsample/config.h.orig 2018-12-14 16:56:31.729186139 +0100 ++++ Exsample2/exsample/config.h 2018-12-14 16:56:55.969406851 +0100 +@@ -25,6 +25,7 @@ + #include <limits> + + #include <boost/utility.hpp> ++#include <boost/next_prior.hpp> + #include <boost/scoped_array.hpp> + #include <boost/scoped_ptr.hpp> + +--- DipoleShower/Base/DipoleEventRecord.cc.orig 2018-12-14 16:58:33.878298134 +0100 ++++ DipoleShower/Base/DipoleEventRecord.cc 2018-12-14 16:58:47.983426512 +0100 +@@ -19,6 +19,7 @@ + #include "ThePEG/PDF/PartonExtractor.h" + + #include <boost/utility.hpp> ++#include <boost/next_prior.hpp> + + #include <algorithm> + +--- ./Exsample2/BinnedStatistics.h.orig 2018-12-14 17:11:37.396421246 +0100 ++++ ./Exsample2/BinnedStatistics.h 2018-12-14 17:12:00.762633435 +0100 +@@ -16,6 +16,7 @@ + #include "ThePEG/Repository/UseRandom.h" + + #include <boost/utility.hpp> ++#include <boost/next_prior.hpp> + + namespace Herwig { + diff --git a/var/spack/repos/builtin/packages/herwigpp/package.py b/var/spack/repos/builtin/packages/herwigpp/package.py new file mode 100644 index 0000000000..c3cdf7791d --- /dev/null +++ b/var/spack/repos/builtin/packages/herwigpp/package.py @@ -0,0 +1,52 @@ +# 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 Herwigpp(AutotoolsPackage): + """Herwig is a multi-purpose particle physics event generator. + This package provides old Herwig++ 2 generator""" + + homepage = "https://herwig.hepforge.org/" + url = "http://lcgpackages.web.cern.ch/lcgpackages/tarFiles/sources/MCGeneratorsTarFiles/Herwig++-2.7.1.tar.bz2" + + version('2.7.1', '80a189376bb65f5ec4e64f42e76c00ea9102d8224010563a424fc11e619a6ad6') + patch('herwig++-2.7.1.patch', when='@2.7.1', level=0) + + depends_on('gsl') + depends_on('boost') + depends_on('fastjet') + depends_on('thepeg@1.9.2', when='@2.7.1') + + def configure_args(self): + args = ['--with-gsl=' + self.spec['gsl'].prefix, + '--with-thepeg=' + self.spec['thepeg'].prefix, + '--with-fastjet=' + self.spec['fastjet'].prefix, + '--with-boost=' + self.spec['boost'].prefix] + return args + + def build(self, spec, prefix): + make() + with working_dir('Contrib'): + make() + + with working_dir('Contrib/AlpGen'): + make('BasicLesHouchesFileReader.so', + "HERWIGINCLUDE=-I{0}/include".format(self.stage.source_path)) + make('AlpGenHandler.so', + "HERWIGINCLUDE=-I{0}/include".format(self.stage.source_path)) + + def install(self, spec, prefix): + make('install') + install( + join_path(self.stage.source_path, + 'Contrib', 'AlpGen', 'AlpGenHandler.so'), + join_path(prefix.lib, 'Herwig++', 'AlpGenHandler.so')) + + install( + join_path(self.stage.source_path, + 'Contrib', 'AlpGen', 'BasicLesHouchesFileReader.so'), + join_path(prefix.lib, 'Herwig++', 'BasicLesHouchesFileReader.so')) diff --git a/var/spack/repos/builtin/packages/hibench/package.py b/var/spack/repos/builtin/packages/hibench/package.py new file mode 100644 index 0000000000..c36cc27659 --- /dev/null +++ b/var/spack/repos/builtin/packages/hibench/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) + +from spack import * + + +class Hibench(Package): + """HiBench is a big data benchmark suite that helps evaluate different big + data frameworks in terms of speed, throughput and system resource + utilizations. It contains a set of Hadoop,Spark and streaming workloads, + including Sort, WordCount, TeraSort, Repartition, Sleep, SQL,PageRank, + Nutch indexing, Bayes, Kmeans, NWeight and enhanced DFSIO, etc.""" + + homepage = "https://github.com/Intel-bigdata/HiBench" + url = "https://github.com/Intel-bigdata/HiBench/archive/HiBench-7.1.tar.gz" + + version('7.1', sha256='96572a837d747fb6347f2b906fd5f7fb97a62095435326ccfee5e75777a5c210') + version('7.0', sha256='89b01f3ad90b758f24afd5ea2bee997c3d700ce9244b8a2b544acc462ab0e847') + version('6.0', sha256='179f5415903f4029bd0ea1101a3d4c67faf88ca46a993d8179582299ad730f79') + version('5.0', sha256='32d6a7bc1010d90b2f22906896a03cd1980e617beb07b01716e3d04de5760ed4') + version('4.1', sha256='07551763aa30f04d32870c323524b5fc0fc2e968d7081d8916575bdeb4fd1381') + version('4.0', sha256='de58ed5e9647ffe28c2a905a8830b661bbd09db334eb5b3472c8186553407e0e') + version('3.0.0', sha256='869771e73593caac3a9b2fb14a10041a485d248074ba38cca812c934897db63d') + version('2.2.1', sha256='f8531cbaff8d93bfd1c0742fec5dbb375bfeeb9ec1b39b4e857120e933a2c9ec') + version('2.2', sha256='5f68e22339cdd141b846d8b1d7134b2b8ff5fbd5e847e406214dc845f5d005cf') + + depends_on('maven', type='build') + depends_on('java@8', type=('build', 'run')) + + def install(self, spec, prefix): + mvn = which('mvn') + mvn('package', '-DskipTests') + install_tree('.', prefix) diff --git a/var/spack/repos/builtin/packages/hip/0001-Make-it-possible-to-specify-the-package-folder-of-ro.patch b/var/spack/repos/builtin/packages/hip/0001-Make-it-possible-to-specify-the-package-folder-of-ro.patch new file mode 100644 index 0000000000..53f2bea672 --- /dev/null +++ b/var/spack/repos/builtin/packages/hip/0001-Make-it-possible-to-specify-the-package-folder-of-ro.patch @@ -0,0 +1,27 @@ +From cf5f9124a629e0594c71daa6ea12ee823bf6a9fb Mon Sep 17 00:00:00 2001 +From: Harmen Stoppels <harmenstoppels@gmail.com> +Date: Fri, 7 Aug 2020 23:09:43 +0200 +Subject: [PATCH] Make it possible to specify the package folder of + rocm_agent_enumerator from the command line + +--- + bin/hipcc | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +diff --git a/bin/hipcc b/bin/hipcc +index 8c0a4796..48192ed1 100755 +--- a/bin/hipcc ++++ b/bin/hipcc +@@ -684,7 +684,8 @@ if($HIP_PLATFORM eq "hcc" or $HIP_PLATFORM eq "clang"){ + $targetsStr = $ENV{HCC_AMDGPU_TARGET}; + } else { + # Else try using rocm_agent_enumerator +- $ROCM_AGENT_ENUM = "${ROCM_PATH}/bin/rocm_agent_enumerator"; ++ $ROCMINFO_PATH = $ENV{'ROCMINFO_PATH'} // $ROCM_PATH; ++ $ROCM_AGENT_ENUM = "${ROCMINFO_PATH}/bin/rocm_agent_enumerator"; + $targetsStr = `${ROCM_AGENT_ENUM} -t GPU`; + $targetsStr =~ s/\n/,/g; + } +-- +2.25.1 + diff --git a/var/spack/repos/builtin/packages/hip/0002-Fix-detection-of-HIP_CLANG_ROOT.patch b/var/spack/repos/builtin/packages/hip/0002-Fix-detection-of-HIP_CLANG_ROOT.patch new file mode 100644 index 0000000000..61ad05873a --- /dev/null +++ b/var/spack/repos/builtin/packages/hip/0002-Fix-detection-of-HIP_CLANG_ROOT.patch @@ -0,0 +1,28 @@ +From 4f324ddc12f358de47ea0ef1872c61b1dc4c46e2 Mon Sep 17 00:00:00 2001 +From: Harmen Stoppels <harmenstoppels@gmail.com> +Date: Mon, 10 Aug 2020 15:00:06 +0200 +Subject: [PATCH] Fix detection of HIP_CLANG_ROOT + +--- + hip-config.cmake.in | 5 +++-- + 1 file changed, 3 insertions(+), 2 deletions(-) + +diff --git a/hip-config.cmake.in b/hip-config.cmake.in +index 859e2fa0..4baafbde 100644 +--- a/hip-config.cmake.in ++++ b/hip-config.cmake.in +@@ -58,8 +58,9 @@ if(HIP_COMPILER STREQUAL "clang") + execute_process(COMMAND ${HIP_CXX_COMPILER} --version + OUTPUT_STRIP_TRAILING_WHITESPACE + OUTPUT_VARIABLE HIP_CLANG_CXX_COMPILER_VERSION_OUTPUT) +- if(HIP_CLANG_CXX_COMPILER_VERSION_OUTPUT MATCHES "InstalledDir:[\t\r\n][\t\r\n]*([^\t\r\n])") +- set(HIP_CLANG_ROOT ${CMAKE_MATCH_1}) ++ if(HIP_CLANG_CXX_COMPILER_VERSION_OUTPUT MATCHES "InstalledDir: ([^\t\r\n]+)") ++ # InstalledDir points to the bin/ directory, so the root is the parent dir ++ get_filename_component(HIP_CLANG_ROOT ${CMAKE_MATCH_1} DIRECTORY) + else() + set(HIP_CLANG_ROOT /opt/rocm/llvm) + endif() +-- +2.25.1 + diff --git a/var/spack/repos/builtin/packages/hip/package.py b/var/spack/repos/builtin/packages/hip/package.py new file mode 100644 index 0000000000..80eb95c5f5 --- /dev/null +++ b/var/spack/repos/builtin/packages/hip/package.py @@ -0,0 +1,83 @@ +# 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 Hip(CMakePackage): + """HIP is a C++ Runtime API and Kernel Language that allows developers to + create portable applications for AMD and NVIDIA GPUs from + single source code.""" + + homepage = "https://github.com/ROCm-Developer-Tools/HIP" + url = "https://github.com/ROCm-Developer-Tools/HIP/archive/rocm-3.5.0.tar.gz" + + maintainers = ['srekolam', 'arjun-raj-kuppala'] + + version('3.5.0', sha256='ae8384362986b392288181bcfbe5e3a0ec91af4320c189bd83c844ed384161b3') + + depends_on('cmake@3:', type='build') + depends_on('perl@5.10:', type=('build', 'run')) + + depends_on('rocclr@3.5.0', when='@3.5.0') + depends_on('hsakmt-roct@3.5.0', type='build', when='@3.5.0') + depends_on('hsa-rocr-dev@3.5.0', type='link', when='@3.5.0') + depends_on('comgr@3.5.0', type='build', when='@3.5.0') + depends_on('llvm-amdgpu@3.5.0', type='build', when='@3.5.0') + depends_on('rocm-device-libs', type='build') + depends_on('rocminfo@3.5.0', type='build', when='@3.5.0') + + # Note: the ROCm ecosystem expects `lib/` and `bin/` folders with symlinks + # in the parent directory of the package, which is incompatible with spack. + # In hipcc the ROCM_PATH variable is used to point to the parent directory + # of the package. With the following patch we should never hit code that + # uses the ROCM_PATH variable again; just to be sure we set it to an empty + # string. + patch('0001-Make-it-possible-to-specify-the-package-folder-of-ro.patch', when='@3.5.0') + + # See https://github.com/ROCm-Developer-Tools/HIP/pull/2141 + patch('0002-Fix-detection-of-HIP_CLANG_ROOT.patch', when='@3.5.0') + + def setup_dependent_build_environment(self, env, dependent_spec): + env.set('ROCM_PATH', '') + env.set('HIP_COMPILER', 'clang') + env.set('HIP_PLATFORM', 'hcc') + env.set('HIP_CLANG_PATH', self.spec['llvm-amdgpu'].prefix.bin) + env.set('HSA_PATH', self.spec['hsa-rocr-dev'].prefix) + env.set('ROCMINFO_PATH', self.spec['rocminfo'].prefix) + env.set('DEVICE_LIB_PATH', self.spec['rocm-device-libs'].prefix.lib) + + def setup_dependent_package(self, module, dependent_spec): + self.spec.hipcc = join_path(self.prefix.bin, 'hipcc') + + def patch(self): + filter_file( + 'INTERFACE_INCLUDE_DIRECTORIES "${_IMPORT_PREFIX}/../include"', + 'INTERFACE_INCLUDE_DIRECTORIES "${_IMPORT_PREFIX}/include"', + 'hip-config.cmake.in', string=True) + + @run_before('install') + def filter_sbang(self): + perl = self.spec['perl'].command + kwargs = {'ignore_absent': False, 'backup': False, 'string': False} + + with working_dir('bin'): + match = '^#!/usr/bin/perl' + substitute = "#!{perl}".format(perl=perl) + files = [ + 'hipify-perl', 'hipcc', 'extractkernel', + 'hipconfig', 'hipify-cmakefile' + ] + filter_file(match, substitute, *files, **kwargs) + + def cmake_args(self): + args = [ + '-DHIP_COMPILER=clang', + '-DHIP_PLATFORM=rocclr', + '-DHSA_PATH={0}'.format(self.spec['hsa-rocr-dev'].prefix), + '-DLIBROCclr_STATIC_DIR={0}/lib'.format(self.spec['rocclr'].prefix) + ] + return args diff --git a/var/spack/repos/builtin/packages/hipsycl/package.py b/var/spack/repos/builtin/packages/hipsycl/package.py index 18ea5895fc..02c59bc791 100644 --- a/var/spack/repos/builtin/packages/hipsycl/package.py +++ b/var/spack/repos/builtin/packages/hipsycl/package.py @@ -21,7 +21,7 @@ class Hipsycl(CMakePackage): provides("sycl") - version("master", branch="master", submodules=True) + version("stable", branch="stable", submodules=True) version( "0.8.0", commit="2daf8407e49dd32ebd1c266e8e944e390d28b22a", diff --git a/var/spack/repos/builtin/packages/hisat2/package.py b/var/spack/repos/builtin/packages/hisat2/package.py index 93b54e9ed5..ab03df4ce5 100644 --- a/var/spack/repos/builtin/packages/hisat2/package.py +++ b/var/spack/repos/builtin/packages/hisat2/package.py @@ -14,13 +14,18 @@ class Hisat2(MakefilePackage): exome sequencing data) against the general human population (as well as against a single reference genome).""" - homepage = "http://ccb.jhu.edu/software/hisat2" + homepage = "https://daehwankimlab.github.io/hisat2/" url = "ftp://ftp.ccb.jhu.edu/pub/infphilo/hisat2/downloads/hisat2-2.1.0-source.zip" + version('2.2.0', sha256='0dd55168853b82c1b085f79ed793dd029db163773f52272d7eb51b3b5e4a4cdd', + url='https://cloud.biohpc.swmed.edu/index.php/s/hisat2-220-source/download', + extension='zip') version('2.1.0', sha256='89a276eed1fc07414b1601947bc9466bdeb50e8f148ad42074186fe39a1ee781') def install(self, spec, prefix): - install_tree('doc', prefix.doc) + if spec.satisfies('@:2.1.0'): + install_tree('doc', prefix.doc) + install_tree('example', prefix.example) install_tree('hisatgenotype_modules', prefix.hisatgenotype_modules) install_tree('hisatgenotype_scripts', prefix.hisatgenotype_scripts) diff --git a/var/spack/repos/builtin/packages/hpcg/package.py b/var/spack/repos/builtin/packages/hpcg/package.py new file mode 100644 index 0000000000..4de150cda2 --- /dev/null +++ b/var/spack/repos/builtin/packages/hpcg/package.py @@ -0,0 +1,78 @@ +# 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 * +import os +import platform + + +class Hpcg(AutotoolsPackage): + """HPCG is a software package that performs a fixed number of multigrid + preconditioned (using a symmetric Gauss-Seidel smoother) conjugate gradient + (PCG) iterations using double precision (64 bit) floating point values.""" + + homepage = "https://www.hpcg-benchmark.org" + url = "http://www.hpcg-benchmark.org/downloads/hpcg-3.1.tar.gz" + git = "https://github.com/hpcg-benchmark/hpcg.git" + + version('develop', branch='master') + version('3.1', sha256='33a434e716b79e59e745f77ff72639c32623e7f928eeb7977655ffcaade0f4a4') + + variant('openmp', default=True, description='Enable OpenMP support') + + patch('https://github.com/hpcg-benchmark/hpcg/commit/e9e0b7e6cae23e1f30dd983c2ce2d3bd34d56f75.patch', sha256='23b9de83042eb7a8207fdddcfa79ae2cc1a17e8e623e2224c7751d7c328ee482', when='%gcc@9:') + + depends_on('mpi@1.1:') + + arch = '{0}-{1}'.format(platform.system(), platform.processor()) + build_targets = ['arch={0}'.format(arch)] + + def configure(self, spec, prefix): + CXXFLAGS = '-O3 -ffast-math ' + CXXFLAGS += '-ftree-vectorize -ftree-vectorizer-verbose=0 ' + if '+openmp' in self.spec: + CXXFLAGS += self.compiler.openmp_flag + config = [ + # Shell + 'SHELL = /bin/sh', + 'CD = cd', + 'CP = cp', + 'LN_S = ln -fs', + 'MKDIR = mkdir -p', + 'RM = /bin/rm -f', + 'TOUCH = touch', + # Platform identifier + 'ARCH = {0}'.format(self.arch), + # HPCG Directory Structure / HPCG library + 'TOPdir = {0}'.format(os.getcwd()), + 'SRCdir = $(TOPdir)/src', + 'INCdir = $(TOPdir)/src', + 'BINdir = $(TOPdir)/bin', + # Message Passing library (MPI) + 'MPinc = -I{0}'.format(spec['mpi'].prefix.include), + 'MPlib = -L{0}'.format(spec['mpi'].prefix.lib), + # HPCG includes / libraries / specifics + 'HPCG_INCLUDES = -I$(INCdir) -I$(INCdir)/$(arch) $(MPinc)', + 'HPCG_LIBS =', + 'HPCG_OPTS =', + 'HPCG_DEFS = $(HPCG_OPTS) $(HPCG_INCLUDES)', + # Compilers / linkers - Optimization flags + 'CXX = {0}'.format(spec['mpi'].mpicxx), + 'CXXFLAGS = $(HPCG_DEFS) {0}'.format(CXXFLAGS), + 'LINKER = $(CXX)', + 'LINKFLAGS = $(CXXFLAGS)', + 'ARCHIVER = ar', + 'ARFLAGS = r', + 'RANLIB = echo', + ] + + # Write configuration options to include file + with open('setup/Make.{0}'.format(self.arch), 'w') as makefile: + for var in config: + makefile.write('{0}\n'.format(var)) + + def install(self, spec, prefix): + # Manual installation + install_tree('bin', prefix.bin) diff --git a/var/spack/repos/builtin/packages/hpctoolkit/package.py b/var/spack/repos/builtin/packages/hpctoolkit/package.py index 9de2184d92..89a7a4b641 100644 --- a/var/spack/repos/builtin/packages/hpctoolkit/package.py +++ b/var/spack/repos/builtin/packages/hpctoolkit/package.py @@ -20,6 +20,8 @@ class Hpctoolkit(AutotoolsPackage): version('develop', branch='develop') version('master', branch='master') + version('2020.08.03', commit='d9d13c705d81e5de38e624254cf0875cce6add9a') + version('2020.07.21', commit='4e56c780cffc53875aca67d6472a2fb3678970eb') version('2020.06.12', commit='ac6ae1156e77d35596fea743ed8ae768f7222f19') version('2020.03.01', commit='94ede4e6fa1e05e6f080be8dc388240ea027f769') version('2019.12.28', commit='b4e1877ff96069fd8ed0fdf0e36283a5b4b62240') @@ -36,10 +38,6 @@ class Hpctoolkit(AutotoolsPackage): description='Build for Cray compute nodes, including ' 'hpcprof-mpi.') - variant('bgq', default=False, - description='Build for Blue Gene compute nodes, including ' - 'hpcprof-mpi (up to 2019.12.28 only).') - variant('mpi', default=False, description='Build hpcprof-mpi, the MPI version of hpcprof.') @@ -71,8 +69,7 @@ class Hpctoolkit(AutotoolsPackage): depends_on('gotcha@1.0.3:') depends_on('intel-tbb+shared') depends_on('libdwarf') - depends_on('libmonitor+hpctoolkit+bgq', when='+bgq') - depends_on('libmonitor+hpctoolkit~bgq', when='~bgq') + depends_on('libmonitor+hpctoolkit') depends_on('libunwind@1.4: +xz') depends_on('mbedtls+pic') depends_on('xerces-c transcoder=iconv') @@ -94,9 +91,6 @@ class Hpctoolkit(AutotoolsPackage): conflicts('+cuda', when='@2018.0.0:2019.99.99', msg='cuda requires 2020.03.01 or later') - conflicts('+bgq', when='@2020.03.01:', - msg='blue gene requires 2019.12.28 or earlier') - flag_handler = AutotoolsPackage.build_system_flags def configure_args(self): @@ -120,11 +114,7 @@ class Hpctoolkit(AutotoolsPackage): ] if '+cuda' in spec: - cupti_path = join_path(spec['cuda'].prefix, 'extras', 'CUPTI') - args.extend([ - '--with-cuda=%s' % spec['cuda'].prefix, - '--with-cupti=%s' % cupti_path, - ]) + args.append('--with-cuda=%s' % spec['cuda'].prefix) if spec.target.family == 'x86_64': args.append('--with-xed=%s' % spec['intel-xed'].prefix) @@ -140,12 +130,6 @@ class Hpctoolkit(AutotoolsPackage): '--enable-mpi-search=cray', '--enable-all-static', ]) - elif '+bgq' in spec: - args.extend([ - '--enable-mpi-search=bgq', - '--enable-all-static', - '--enable-bgq', - ]) elif '+mpi' in spec: args.append('MPICXX=%s' % spec['mpi'].mpicxx) diff --git a/var/spack/repos/builtin/packages/hpcviewer/package.py b/var/spack/repos/builtin/packages/hpcviewer/package.py index f14f55d787..0de66bbf83 100644 --- a/var/spack/repos/builtin/packages/hpcviewer/package.py +++ b/var/spack/repos/builtin/packages/hpcviewer/package.py @@ -37,6 +37,9 @@ class Hpcviewer(Package): maintainers = ['mwkrentel'] viewer_sha = { + ('2020.07', 'x86_64'): '19951662626c7c9817c4a75269c85810352dc48ae9a62dfb6ce4a5b502de2118', + ('2020.07', 'ppc64'): '3f5d9358ef8ff9ba4f6dcaa4d7132f41ba55f0c132d9fd1e2f6da18341648a4e', + ('2020.07', 'ppc64le'): 'e236a8578dc247279d1021aa35bac47e2d4864b906efcef76c0610ee0086b353', ('2020.05', 'x86_64'): '27f99c94a69abd005303fb58360b0d1b3eb7d223cab81c38ae6ccdd83ec15106', ('2020.05', 'ppc64'): '469bce07a75476c132d3791ca49e38db015917c9c36b4810e477bc1c54a13d68', ('2020.05', 'ppc64le'): 'fc4491bf6d9eaf2b7f2d39b722c978597a881ece557fb05a4cf27caabb9e0b99', @@ -70,6 +73,9 @@ class Hpcviewer(Package): } trace_sha = { + ('2020.07', 'x86_64'): '52aea55b1d40b9453c106ac5a83020a08839b9be1e71dbd1a9f471e5f3a55d43', + ('2020.07', 'ppc64'): '3d9222310a18618704015aecbcab7f7c5a2cedbd5ecd8ace1bfc7e98d11b8d36', + ('2020.07', 'ppc64le'): '2f0a8b95033a5816d468b87c8c139f08a307714e2e27a1cb4a35e1c5a8083cca', ('2020.05', 'x86_64'): 'a0b925099a00c10fcb38e937068e50937175fd46dc086121525e546a63a7fd83', ('2020.05', 'ppc64'): '40526f62f36e5b6438021c2b557256638d41a6b8f4e101534b5230ac644a9b85', ('2020.05', 'ppc64le'): 'c16e83b59362adcebecd4231374916a2b3a3c016f75a45b24e8398f777a24f89', diff --git a/var/spack/repos/builtin/packages/hpx/package.py b/var/spack/repos/builtin/packages/hpx/package.py index 028019864c..56d2ee0461 100644 --- a/var/spack/repos/builtin/packages/hpx/package.py +++ b/var/spack/repos/builtin/packages/hpx/package.py @@ -5,6 +5,7 @@ from spack import * +import sys class Hpx(CMakePackage, CudaPackage): @@ -48,6 +49,14 @@ class Hpx(CMakePackage, CudaPackage): description="Support for networking through parcelports", ) + default_generic_coroutines = True + if sys.platform.startswith('linux') or sys.platform == 'win32': + default_generic_coroutines = False + variant( + "generic_coroutines", default=default_generic_coroutines, + description='Use Boost.Context as the underlying coroutines' + ' context switch implementation.') + variant('tools', default=False, description='Build HPX tools') variant('examples', default=False, description='Build examples') @@ -69,6 +78,15 @@ class Hpx(CMakePackage, CudaPackage): # https://github.com/STEllAR-GROUP/hpx/issues/4728#issuecomment-640685308 depends_on('boost@:1.72.0', when='@:1.4') + # COROUTINES + # ~generic_coroutines conflict is not fully implemented + # for additional information see: + # https://github.com/spack/spack/pull/17654 + # https://github.com/STEllAR-GROUP/hpx/issues/4829 + depends_on('boost+context', when='+generic_coroutines') + _msg_generic_coroutines = 'This platform requires +generic_coroutines' + conflicts('~generic_coroutines', when='platform=darwin', msg=_msg_generic_coroutines) + # CXX Standard depends_on('boost cxxstd=11', when='cxxstd=11') depends_on('boost cxxstd=14', when='cxxstd=14') @@ -92,79 +110,51 @@ class Hpx(CMakePackage, CudaPackage): # Patches APEX patch('git_external.patch', when='@1.3.0 instrumentation=apex') - def cxx_standard(self): - value = self.spec.variants['cxxstd'].value - return '-DHPX_WITH_CXX{0}=ON'.format(value) - def instrumentation_args(self): for value in self.variants['instrumentation'].values: if value == 'none': continue condition = 'instrumentation={0}'.format(value) - yield '-DHPX_WITH_{0}={1}'.format( - str(value).upper(), 'ON' if condition in self.spec else 'OFF' - ) + yield self.define( + 'HPX_WITH_{0}'.format(value.upper()), condition in self.spec) def cmake_args(self): spec, args = self.spec, [] - # CXX Standard - args.append(self.cxx_standard()) + args += [ + self.define( + 'HPX_WITH_CXX{0}'.format(spec.variants['cxxstd'].value), True), + + self.define_from_variant('HPX_WITH_MALLOC', 'malloc'), + self.define_from_variant('HPX_WITH_CUDA', 'cuda'), + self.define_from_variant('HPX_WITH_TOOLS', 'tools'), + self.define_from_variant('HPX_WITH_EXAMPLES', 'examples'), + self.define('HPX_WITH_TESTS', self.run_tests), + + self.define('HPX_WITH_NETWORKING', 'networking=none' not in spec), + self.define('HPX_WITH_PARCELPORT_TCP', 'networking=tcp' in spec), + self.define('HPX_WITH_PARCELPORT_MPI', 'networking=mpi' in spec), + + self.define_from_variant( + 'HPX_WITH_MAX_CPU_COUNT', 'max_cpu_count'), + self.define_from_variant( + 'HPX_WITH_GENERIC_CONTEXT_COROUTINES', 'generic_coroutines'), - # Malloc - selected_malloc = spec.variants['malloc'].value - args.append('-DHPX_WITH_MALLOC={0}'.format(selected_malloc)) + self.define('BOOST_ROOT', spec['boost'].prefix), + self.define('HWLOC_ROOT', spec['hwloc'].prefix), + self.define('HPX_WITH_BOOST_ALL_DYNAMIC_LINK', True), + self.define('BUILD_SHARED_LIBS', True), + self.define('HPX_DATASTRUCTURES_WITH_ADAPT_STD_TUPLE', False), + ] # Instrumentation - args.extend(self.instrumentation_args()) + args += self.instrumentation_args() if 'instrumentation=apex' in spec: - args += ['-DAPEX_WITH_OTF2=ON' - '-DOTF2_ROOT={0}'.format(spec['otf2'].prefix)] - - # Networking - args.append('-DHPX_WITH_NETWORKING={0}'.format( - 'OFF' if 'networking=none' in spec else 'ON' - )) - args.append('-DHPX_WITH_PARCELPORT_TCP={0}'.format( - 'ON' if 'networking=tcp' in spec else 'OFF' - )) - args.append('-DHPX_WITH_PARCELPORT_MPI={0}'.format( - 'ON' if 'networking=mpi' in spec else 'OFF' - )) - - # Cuda support - args.append('-DHPX_WITH_CUDA={0}'.format( - 'ON' if '+cuda' in spec else 'OFF' - )) - - # Tests - args.append('-DHPX_WITH_TESTS={0}'.format( - 'ON' if self.run_tests else 'OFF' - )) - - # Tools - args.append('-DHPX_WITH_TOOLS={0}'.format( - 'ON' if '+tools' in spec else 'OFF' - )) - - # MAX_CPU_COUNT - args.append('-DHPX_WITH_MAX_CPU_COUNT={0}'.format( - spec.variants['max_cpu_count'].value - )) - - # Examples - args.append('-DHPX_WITH_EXAMPLES={0}'.format( - 'ON' if '+examples' in spec else 'OFF' - )) - - args.extend([ - '-DBOOST_ROOT={0}'.format(spec['boost'].prefix), - '-DHWLOC_ROOT={0}'.format(spec['hwloc'].prefix), - '-DHPX_WITH_BOOST_ALL_DYNAMIC_LINK=ON', - '-DBUILD_SHARED_LIBS=ON', - '-DHPX_DATASTRUCTURES_WITH_ADAPT_STD_TUPLE=OFF' - ]) + args += [ + self.define('APEX_WITH_OTF2', True), + self.define('OTF2_ROOT', spec['otf2'].prefix), + ] return args diff --git a/var/spack/repos/builtin/packages/hsa-rocr-dev/0001-Do-not-set-an-explicit-rpath-by-default-since-packag.patch b/var/spack/repos/builtin/packages/hsa-rocr-dev/0001-Do-not-set-an-explicit-rpath-by-default-since-packag.patch new file mode 100644 index 0000000000..6b73f81635 --- /dev/null +++ b/var/spack/repos/builtin/packages/hsa-rocr-dev/0001-Do-not-set-an-explicit-rpath-by-default-since-packag.patch @@ -0,0 +1,28 @@ +From 905b812fffdf109f767e1dc079ac1d32d5cf5838 Mon Sep 17 00:00:00 2001 +From: Harmen Stoppels <harmenstoppels@gmail.com> +Date: Wed, 5 Aug 2020 17:44:05 +0200 +Subject: [PATCH] Do not set an explicit rpath by default, since package + managers cannot override them + +--- + src/CMakeLists.txt | 4 +++- + 1 file changed, 3 insertions(+), 1 deletion(-) + +diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt +index 7174044..10c6fcc 100644 +--- a/src/CMakeLists.txt ++++ b/src/CMakeLists.txt +@@ -114,7 +114,9 @@ include_directories ( ${CMAKE_CURRENT_SOURCE_DIR}/libamdhsacode ) + add_definitions ( -DROCR_BUILD_ID=${PACKAGE_VERSION_STRING} ) + + ## Set RUNPATH - ../../lib covers use of the legacy symlink in /hsa/lib/ +-set(CMAKE_INSTALL_RPATH "$ORIGIN;$ORIGIN/../../lib;$ORIGIN/../../lib64;$ORIGIN/../lib64") ++if (NOT CMAKE_INSTALL_RPATH) ++ set(CMAKE_INSTALL_RPATH "$ORIGIN;$ORIGIN/../../lib;$ORIGIN/../../lib64;$ORIGIN/../lib64") ++endif () + + ## ------------------------- Linux Compiler and Linker options ------------------------- + set ( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Werror -fexceptions -fno-rtti -fvisibility=hidden -Wno-error=sign-compare -Wno-sign-compare -Wno-write-strings -Wno-conversion-null -fno-math-errno -fno-threadsafe-statics -fmerge-all-constants -fms-extensions -Wno-error=comment -Wno-comment -Wno-error=pointer-arith -Wno-pointer-arith -Wno-error=unused-variable -Wno-error=unused-function" ) +-- +2.25.1 + diff --git a/var/spack/repos/builtin/packages/hsa-rocr-dev/package.py b/var/spack/repos/builtin/packages/hsa-rocr-dev/package.py new file mode 100644 index 0000000000..af355f241d --- /dev/null +++ b/var/spack/repos/builtin/packages/hsa-rocr-dev/package.py @@ -0,0 +1,33 @@ +# 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 HsaRocrDev(CMakePackage): + """This repository includes the user mode API nterfaces and libraries + necessary for host applications to launch computer kernels to available + HSA ROCm kernel agents.AMD Heterogeneous System Architecture HSA - + Linux HSA Runtime for Boltzmann (ROCm) platforms.""" + + homepage = "https://github.com/RadeonOpenCompute/ROCR-Runtime" + url = "https://github.com/RadeonOpenCompute/ROCR-Runtime/archive/rocm-3.5.0.tar.gz" + + maintainers = ['srekolam', 'arjun-raj-kuppala'] + + version('3.5.0', sha256='52c12eec3e3404c0749c70f156229786ee0c3e6d3c979aed9bbaea500fa1f3b8') + + variant('build_type', default='Release', values=("Release", "Debug"), description='CMake build type') + + for ver in ['3.5.0']: + depends_on('hsakmt-roct@' + ver, type=('link', 'run'), when='@' + ver) + depends_on('libelf@0.8:', type='link', when="@" + ver) + + depends_on('cmake@3:', type="build") + + patch('0001-Do-not-set-an-explicit-rpath-by-default-since-packag.patch', when='@3.5.0') + + root_cmakelists_dir = 'src' diff --git a/var/spack/repos/builtin/packages/hsakmt-roct/package.py b/var/spack/repos/builtin/packages/hsakmt-roct/package.py new file mode 100644 index 0000000000..89ffe616a0 --- /dev/null +++ b/var/spack/repos/builtin/packages/hsakmt-roct/package.py @@ -0,0 +1,33 @@ +# 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 HsakmtRoct(CMakePackage): + """This is a thunk python recipe to build and install Thunk Interface. + Thunk Interface is a user-mode API interfaces used to interact + with the ROCk driver.""" + + homepage = "https://github.com/RadeonOpenCompute/ROCT-Thunk-Interface" + url = "https://github.com/RadeonOpenCompute/ROCT-Thunk-Interface/archive/rocm-3.5.0.tar.gz" + + maintainers = ['srekolam', 'arjun-raj-kuppala'] + + version('3.5.0', sha256='d9f458c16cb62c3c611328fd2f2ba3615da81e45f3b526e45ff43ab4a67ee4aa') + + variant('build_type', default='Release', values=("Release", "Debug"), description='CMake build type') + + depends_on('cmake@3:', type='build') + depends_on('numactl') + + install_targets = ['install', 'install-dev'] + + def cmake_args(self): + args = [ + '-DBUILD_SHARED_LIBS="on"', + ] + return args diff --git a/var/spack/repos/builtin/packages/hydrogen/package.py b/var/spack/repos/builtin/packages/hydrogen/package.py index 9d12235d72..8d0bc9398d 100644 --- a/var/spack/repos/builtin/packages/hydrogen/package.py +++ b/var/spack/repos/builtin/packages/hydrogen/package.py @@ -7,7 +7,7 @@ import os from spack import * -class Hydrogen(CMakePackage): +class Hydrogen(CMakePackage, CudaPackage): """Hydrogen: Distributed-memory dense and sparse-direct linear algebra and optimization library. Based on the Elemental library.""" @@ -18,6 +18,7 @@ class Hydrogen(CMakePackage): maintainers = ['bvanessen'] version('develop', branch='hydrogen') + version('1.4.0', sha256='c13374ff4a6c4d1076e47ba8c8d91a7082588b9958d1ed89cffb12f1d2e1452e') version('1.3.4', sha256='7979f6656f698f0bbad6798b39d4b569835b3013ff548d98089fce7c283c6741') version('1.3.3', sha256='a51a1cfd40ac74d10923dfce35c2c04a3082477683f6b35e7b558ea9f4bb6d51') version('1.3.2', sha256='50bc5e87955f8130003d04dfd9dcad63107e92b82704f8107baf95b0ccf98ed6') @@ -62,6 +63,8 @@ class Hydrogen(CMakePackage): variant('half', default=True, description='Builds with support for FP16 precision data types') + depends_on('cmake@3.16.0:', type='build') + # Note that #1712 forces us to enumerate the different blas variants depends_on('openblas', when='blas=openblas ~openmp_blas ~int64_blas') depends_on('openblas +ilp64', when='blas=openblas ~openmp_blas +int64_blas') @@ -83,7 +86,7 @@ class Hydrogen(CMakePackage): depends_on('netlib-lapack +external-blas', when='blas=essl') depends_on('aluminum', when='+al ~cuda') - depends_on('aluminum +gpu +nccl', when='+al +cuda') + depends_on('aluminum +cuda +nccl +ht +cuda_rma', when='+al +cuda') # Note that this forces us to use OpenBLAS until #1712 is fixed depends_on('lapack', when='blas=openblas ~openmp_blas') diff --git a/var/spack/repos/builtin/packages/hypre/package.py b/var/spack/repos/builtin/packages/hypre/package.py index cf0ffb1896..b66a9abb86 100644 --- a/var/spack/repos/builtin/packages/hypre/package.py +++ b/var/spack/repos/builtin/packages/hypre/package.py @@ -20,6 +20,7 @@ class Hypre(Package): maintainers = ['ulrikeyang', 'osborn9', 'balay'] version('develop', branch='master') + version('2.19.0', sha256='466b19d8a86c69989a237f6f03f20d35c0c63a818776d2cd071b0a084cffeba5') version('2.18.2', sha256='28007b5b584eaf9397f933032d8367788707a2d356d78e47b99e551ab10cc76a') version('2.18.1', sha256='220f9c4ad024e815add8dad8950eaa2d8f4f231104788cf2a3c5d9da8f94ba6e') version('2.18.0', sha256='62591ac69f9cc9728bd6d952b65bcadd2dfe52b521081612609804a413f49b07') diff --git a/var/spack/repos/builtin/packages/ibm-databroker/fixes_in_v0.6.1.patch b/var/spack/repos/builtin/packages/ibm-databroker/fixes_in_v0.6.1.patch new file mode 100644 index 0000000000..d2922d2710 --- /dev/null +++ b/var/spack/repos/builtin/packages/ibm-databroker/fixes_in_v0.6.1.patch @@ -0,0 +1,39 @@ +From f89161c15d3c84cd9b661740aaf803cc9acbb1a2 Mon Sep 17 00:00:00 2001 +From: Harsh Bhatia <bhatia4@llnl.gov> +Date: Thu, 16 Jul 2020 14:57:37 -0700 +Subject: [PATCH] small fixes + +--- + bindings/python/CMakeLists.txt | 2 +- + bindings/python/setup.py.in | 2 +- + 2 files changed, 2 insertions(+), 2 deletions(-) + +diff --git a/bindings/python/CMakeLists.txt b/bindings/python/CMakeLists.txt +index 6a203ce..7e61668 100644 +--- a/bindings/python/CMakeLists.txt ++++ b/bindings/python/CMakeLists.txt +@@ -45,7 +45,7 @@ if (PYTHON) + COMMAND ${CMAKE_COMMAND} -E touch ${OUTPUT} + DEPENDS ${DEPS}) + +- set( INSTALL_CMD "${PYTHON} ${CMAKE_CURRENT_BINARY_DIR}/${SETUP_PY} install") ++ set( INSTALL_CMD "${PYTHON} ${CMAKE_CURRENT_BINARY_DIR}/${SETUP_PY} install --prefix ${CMAKE_INSTALL_PREFIX}") + + add_custom_target(pydbr ALL DEPENDS ${OUTPUT}) + FILE(COPY examples DESTINATION .) +diff --git a/bindings/python/setup.py.in b/bindings/python/setup.py.in +index 0d61f1d..3501c78 100644 +--- a/bindings/python/setup.py.in ++++ b/bindings/python/setup.py.in +@@ -17,7 +17,7 @@ from setuptools import setup, find_packages + import os, sys + + setup(name='PyDBR', +- version='0.5.1', ++ version='0.6.1', + description='Python wrapper to the Data Broker C API', + author='Claudia Misale', + author_email='c.misale@ibm.com', +-- +1.8.3.1 + diff --git a/var/spack/repos/builtin/packages/ibm-databroker/fixes_in_v0.7.0.patch b/var/spack/repos/builtin/packages/ibm-databroker/fixes_in_v0.7.0.patch new file mode 100644 index 0000000000..9ec35ae2de --- /dev/null +++ b/var/spack/repos/builtin/packages/ibm-databroker/fixes_in_v0.7.0.patch @@ -0,0 +1,25 @@ +From e4367787e3ae712217a231c9d4866e89005f053c Mon Sep 17 00:00:00 2001 +From: Harsh Bhatia <bhatia4@llnl.gov> +Date: Fri, 17 Jul 2020 09:01:50 -0700 +Subject: [PATCH] fix 0.7.0 + +--- + bindings/python/CMakeLists.txt | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/bindings/python/CMakeLists.txt b/bindings/python/CMakeLists.txt +index 6a203ce..7e61668 100644 +--- a/bindings/python/CMakeLists.txt ++++ b/bindings/python/CMakeLists.txt +@@ -45,7 +45,7 @@ if (PYTHON) + COMMAND ${CMAKE_COMMAND} -E touch ${OUTPUT} + DEPENDS ${DEPS}) + +- set( INSTALL_CMD "${PYTHON} ${CMAKE_CURRENT_BINARY_DIR}/${SETUP_PY} install") ++ set( INSTALL_CMD "${PYTHON} ${CMAKE_CURRENT_BINARY_DIR}/${SETUP_PY} install --prefix ${CMAKE_INSTALL_PREFIX}") + + add_custom_target(pydbr ALL DEPENDS ${OUTPUT}) + FILE(COPY examples DESTINATION .) +-- +1.8.3.1 + diff --git a/var/spack/repos/builtin/packages/ibm-databroker/package.py b/var/spack/repos/builtin/packages/ibm-databroker/package.py new file mode 100644 index 0000000000..898179253c --- /dev/null +++ b/var/spack/repos/builtin/packages/ibm-databroker/package.py @@ -0,0 +1,46 @@ +# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + + +from spack import * + + +class IbmDatabroker(CMakePackage, PythonPackage): + """The Data Broker (DBR) is a distributed, in-memory container of key-value + stores enabling applications in a workflow to exchange data through one or + more shared namespaces. Thanks to a small set of primitives, applications + in a workflow deployed in a (possibly) shared nothing distributed cluster, + can easily share and exchange data and messages with applications.""" + + homepage = "https://github.com/IBM/data-broker" + git = "https://github.com/IBM/data-broker" + url = 'https://github.com/IBM/data-broker/archive/0.6.1.tar.gz' + + # IBM dev team should take over + maintainers = ['bhatiaharsh'] + + version('master', branch='master') + version('0.7.0', sha256='5460fa1c5c05ad25c759b2ee4cecee92980d4dde5bc7c5f6da9242806cf22bb8') + version('0.6.1', sha256='2c7d6c6a269d4ae97aad4d770533e742f367da84758130c283733f25df83e535') + version('0.6.0', sha256='5856209d965c923548ebb69119344f1fc596d4c0631121b230448cc91bac4290') + + variant('python', default=False, description='Build Python bindings') + + depends_on('cmake@2.8:', type='build') + depends_on('redis@5.0.2:', type='run') + depends_on('libevent@2.1.8', type=('build', 'run')) + + extends('python@3.7:', when='+python') + depends_on('py-setuptools', when='+python') + + patch('fixes_in_v0.6.1.patch', when='@0.6.1') + patch('fixes_in_v0.7.0.patch', when='@0.7.0') + + def cmake_args(self): + args = [] + args.append('-DDEFAULT_BE=redis') + if '+python' in self.spec: + args.append('-DPYDBR=1') + return args diff --git a/var/spack/repos/builtin/packages/ibm-java/package.py b/var/spack/repos/builtin/packages/ibm-java/package.py index 72739240d5..952fa16a7b 100644 --- a/var/spack/repos/builtin/packages/ibm-java/package.py +++ b/var/spack/repos/builtin/packages/ibm-java/package.py @@ -22,6 +22,8 @@ class IbmJava(Package): # not be available for download. version_list = [ + ('8.0.6.11', 'ppc64', '6fd17a6b9a34bb66e0db37f6402dc1b7612d54084c94b859f4a42f445fd174d4'), + ('8.0.6.11', 'ppc64le', 'd69ff7519e32e89db88a9a4d4d88d1881524073ac940f35d3860db2c6647be2e'), ('8.0.6.10', 'ppc64', 'ff5151ead88f891624eefe33d80d56c325ca0aa4b93bd96c135cad326993eda2'), ('8.0.6.10', 'ppc64le', 'ea99ab28dd300b08940882d178247e99aafe5a998b1621cf288dfb247394e067'), ('8.0.6.7', 'ppc64', 'a1accb461a039af4587ea86511e317fea1d423e7f781459a17ed3947afed2982'), diff --git a/var/spack/repos/builtin/packages/icu4c/package.py b/var/spack/repos/builtin/packages/icu4c/package.py index 29307a4522..0663ae6edf 100644 --- a/var/spack/repos/builtin/packages/icu4c/package.py +++ b/var/spack/repos/builtin/packages/icu4c/package.py @@ -14,10 +14,15 @@ class Icu4c(AutotoolsPackage): homepage = "http://site.icu-project.org/" url = "https://github.com/unicode-org/icu/releases/download/release-65-1/icu4c-65_1-src.tgz" + version('67.1', sha256='94a80cd6f251a53bd2a997f6f1b5ac6653fe791dfab66e1eb0227740fb86d5dc') + version('66.1', sha256='52a3f2209ab95559c1cf0a14f24338001f389615bf00e2585ef3dbc43ecf0a2e') version('65.1', sha256='53e37466b3d6d6d01ead029e3567d873a43a5d1c668ed2278e253b683136d948') version('64.1', sha256='92f1b7b9d51b396679c17f35a2112423361b8da3c1b9de00aa94fd768ae296e6') + version('60.3', sha256='476287b17db6e0b7da230dce4b58e8e5669b1510847f82cab3647920f1374390') version('60.1', sha256='f8f5a6c8fbf32c015a467972bdb1477dc5f5d5dfea908b6ed218715eeb5ee225') + version('58.3', sha256='2680f3c547cd26cba1d7ebd819cd336ff92cf444a270e195fd3b10bfdf22276c') version('58.2', sha256='2b0a4410153a9b20de0e20c7d8b66049a72aef244b53683d0d7521371683da0c') + version('57.2', sha256='623f04b921827a041f42d52495a6f8eee6565a9b7557051ac68e099123ff28dc') version('57.1', sha256='ff8c67cb65949b1e7808f2359f2b80f722697048e90e7cfc382ec1fe229e9581') variant('cxxstd', @@ -30,16 +35,18 @@ class Icu4c(AutotoolsPackage): conflicts('%intel@:16', when='@60.1:', msg="Intel compilers have immature C++11 and multibyte support") + conflicts('%gcc@:4', when='@67.1:', + msg="Older GCC compilers have immature C++11 support") + + patch('https://github.com/unicode-org/icu/commit/ddfc30860354cbcb78c2c0bcf800be5ab44a9e4f.patch', + sha256='dfc501d78ddfabafe09dc1a7aa70f96b799164b18f6a57d616a9d48aaf989333', + level=2, when='@58.0:59.99') configure_directory = 'source' def url_for_version(self, version): - if version >= Version('65'): - url = "https://github.com/unicode-org/icu/releases/download/release-{0}/icu4c-{1}-src.tgz" - return url.format(version.dashed, version.underscored) - else: - url = "http://download.icu-project.org/files/icu4c/{0}/icu4c-{1}-src.tgz" - return url.format(version.dotted, version.underscored) + url = "https://github.com/unicode-org/icu/releases/download/release-{0}/icu4c-{1}-src.tgz" + return url.format(version.dashed, version.underscored) def flag_handler(self, name, flags): if name == 'cxxflags': diff --git a/var/spack/repos/builtin/packages/idl/package.py b/var/spack/repos/builtin/packages/idl/package.py new file mode 100644 index 0000000000..21804ed11a --- /dev/null +++ b/var/spack/repos/builtin/packages/idl/package.py @@ -0,0 +1,41 @@ +# 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 * +import os + + +class Idl(Package): + """IDL Software: Interactive Data Visulation. + + Note: IDL is a licensed software. You will also need an existing + downloaded tarball of IDL in your current directory or in a + spack mirror in order to install.""" + + homepage = "https://www.harrisgeospatial.com/Software-Technology/IDL" + manual_download = True + url = "file://{0}/idl8.7-linux.tar.gz".format(os.getcwd()) + + maintainers = ['francinelapid'] + + license_required = True + + def install(self, spec, prefix): + + # replace default install dir to self.prefix by editing answer file + filter_file('/usr/local/harris', prefix, 'silent/idl_answer_file') + + # execute install script + install_script = Executable('./install.sh') + install_script('-s', input='silent/idl_answer_file') + + def setup_run_environment(self, env): + + # set necessary environment variables + env.prepend_path('EXELIS_DIR', self.prefix) + env.prepend_path('IDL_DIR', self.prefix.idl) + + # add bin to path + env.prepend_path('PATH', self.prefix.idl.bin) diff --git a/var/spack/repos/builtin/packages/imagemagick/package.py b/var/spack/repos/builtin/packages/imagemagick/package.py index bf13380928..63543ca552 100644 --- a/var/spack/repos/builtin/packages/imagemagick/package.py +++ b/var/spack/repos/builtin/packages/imagemagick/package.py @@ -27,6 +27,7 @@ class Imagemagick(AutotoolsPackage): depends_on('libtiff') depends_on('ghostscript') depends_on('ghostscript-fonts') + depends_on('libsm') def configure_args(self): spec = self.spec diff --git a/var/spack/repos/builtin/packages/intel-daal/package.py b/var/spack/repos/builtin/packages/intel-daal/package.py index 8ac099e65d..67eccff1fa 100644 --- a/var/spack/repos/builtin/packages/intel-daal/package.py +++ b/var/spack/repos/builtin/packages/intel-daal/package.py @@ -11,6 +11,8 @@ class IntelDaal(IntelPackage): homepage = "https://software.intel.com/en-us/daal" + version('2020.2.254', sha256='08528bc150dad312ff2ae88ce12d6078ed8ba2f378f4bf3daf0fbbb9657dce1e', + url='http://registrationcenter-download.intel.com/akdlm/irc_nas/tec/16822/l_daal_2020.2.254.tgz') version('2020.1.217', sha256='3f84dea0ce1038ac1b9c25b3e2c02e9fac440fa36cc8adfce69edfc06fe0edda', url='http://registrationcenter-download.intel.com/akdlm/irc_nas/tec/16536/l_daal_2020.1.217.tgz') version('2020.0.166', sha256='695166c9ab32ac5d3006d6d35162db3c98734210507144e315ed7c3b7dbca9c1', diff --git a/var/spack/repos/builtin/packages/intel-ipp/package.py b/var/spack/repos/builtin/packages/intel-ipp/package.py index 04df142bf5..8201779bce 100644 --- a/var/spack/repos/builtin/packages/intel-ipp/package.py +++ b/var/spack/repos/builtin/packages/intel-ipp/package.py @@ -11,6 +11,8 @@ class IntelIpp(IntelPackage): homepage = "https://software.intel.com/en-us/intel-ipp" + version('2020.2.254', sha256='18266ad1eec9b5b17e76da24f1aa9a9147300e5bd345e6bdad58d7187392fa77', + url='http://registrationcenter-download.intel.com/akdlm/irc_nas/tec/16846/l_ipp_2020.2.254.tgz') version('2020.1.217', sha256='0bf8ac7e635e7e602cf201063a1a7dea3779b093104563fdb15e6b7ecf2f00a7', url='http://registrationcenter-download.intel.com/akdlm/irc_nas/tec/16534/l_ipp_2020.1.217.tgz') version('2020.0.166', sha256='6844007892ba524e828f245355cee44e8149f4c233abbbea16f7bb55a7d6ecff', diff --git a/var/spack/repos/builtin/packages/intel-mpi-benchmarks/package.py b/var/spack/repos/builtin/packages/intel-mpi-benchmarks/package.py index a619d0d8cb..32ef76d2d9 100644 --- a/var/spack/repos/builtin/packages/intel-mpi-benchmarks/package.py +++ b/var/spack/repos/builtin/packages/intel-mpi-benchmarks/package.py @@ -19,6 +19,7 @@ class IntelMpiBenchmarks(MakefilePackage): maintainers = ['carsonwoods'] + version('2019.6', sha256='1cd0bab9e947228fced4666d907f77c51336291533919896a923cff5fcad62e9') version('2019.5', sha256='61f8e872a3c3076af53007a68e4da3a8d66be2ba7a051dc21e626a4e2d26e651') version('2019.4', sha256='aeb336be10275c1a2f579b491b6631122876b461ac7148b1d0764f13b7552690') version('2019.3', sha256='4f256d11bfed9ca6166548486d61a062e67be61f13dd9f30690232720e185f31') diff --git a/var/spack/repos/builtin/packages/intel-mpi/package.py b/var/spack/repos/builtin/packages/intel-mpi/package.py index 65e7d6d4ce..532b7ab864 100644 --- a/var/spack/repos/builtin/packages/intel-mpi/package.py +++ b/var/spack/repos/builtin/packages/intel-mpi/package.py @@ -11,6 +11,8 @@ class IntelMpi(IntelPackage): homepage = "https://software.intel.com/en-us/intel-mpi-library" + version('2019.8.254', sha256='fa163b4b79bd1b7509980c3e7ad81b354fc281a92f9cf2469bf4d323899567c0', + url='http://registrationcenter-download.intel.com/akdlm/irc_nas/tec/16814/l_mpi_2019.8.254.tgz') version('2019.7.217', sha256='90383b0023f84ac003a55d8bb29dbcf0c639f43a25a2d8d8698a16e770ac9c07', url='http://registrationcenter-download.intel.com/akdlm/irc_nas/tec/16546/l_mpi_2019.7.217.tgz') version('2019.6.166', sha256='119be69f1117c93a9e5e9b8b4643918e55d2a55a78ad9567f77d16cdaf18cd6e', diff --git a/var/spack/repos/builtin/packages/intel-parallel-studio/package.py b/var/spack/repos/builtin/packages/intel-parallel-studio/package.py index 31b77d355a..3010fdb4d3 100644 --- a/var/spack/repos/builtin/packages/intel-parallel-studio/package.py +++ b/var/spack/repos/builtin/packages/intel-parallel-studio/package.py @@ -20,6 +20,7 @@ class IntelParallelStudio(IntelPackage): # in the 'intel' package. # Cluster Edition (top tier; all components included) + version('cluster.2020.2', sha256='4795c44374e8988b91da20ac8f13022d7d773461def4a26ca210a8694f69f133', url='http://registrationcenter-download.intel.com/akdlm/irc_nas/tec/16744/parallel_studio_xe_2020_update2_cluster_edition.tgz') version('cluster.2020.1', sha256='fd11d8de72b2bd60474f8bce7b463e4cbb2255969b9eaf24f689575aa2a2abab', url='http://registrationcenter-download.intel.com/akdlm/irc_nas/tec/16526/parallel_studio_xe_2020_update1_cluster_edition.tgz') version('cluster.2020.0', sha256='573b1d20707d68ce85b70934cfad15b5ad9cc14124a261c17ddd7717ba842c64', url='http://registrationcenter-download.intel.com/akdlm/irc_nas/tec/16225/parallel_studio_xe_2020_cluster_edition.tgz') # @@ -59,6 +60,7 @@ class IntelParallelStudio(IntelPackage): # NB: Pre-2018 download packages for Professional are the same as for # Cluster; differences manifest only in the tokens present in the license # file delivered as part of the purchase. + version('professional.2020.2', sha256='96f9bca551a43e09d9648e8cba357739a759423adb671d1aa5973b7a930370c5', url='http://registrationcenter-download.intel.com/akdlm/irc_nas/tec/16756/parallel_studio_xe_2020_update2_professional_edition.tgz') version('professional.2020.1', sha256='5b547be92ecf50cb338b3038a565f5609135b27aa98a8b7964879eb2331eb29a', url='http://registrationcenter-download.intel.com/akdlm/irc_nas/tec/16527/parallel_studio_xe_2020_update1_professional_edition.tgz') version('professional.2020.0', sha256='e88cad18d28da50ed9cb87b12adccf13efd91bf94731dc33290481306c6f15ac', url='http://registrationcenter-download.intel.com/akdlm/irc_nas/tec/16226/parallel_studio_xe_2020_professional_edition.tgz') # @@ -94,6 +96,7 @@ class IntelParallelStudio(IntelPackage): version('professional.2015.1', sha256='84fdf48d1de20e1d580ba5d419a5bc1c55d217a4f5dc1807190ecffe0229a62b', url='http://registrationcenter-download.intel.com/akdlm/irc_nas/tec/4992/parallel_studio_xe_2015_update1.tgz') # Composer Edition (basic tier; excluded: MPI/..., Advisor/Inspector/Vtune) + version('composer.2020.2', sha256='42af16e9a91226978bb401d9f17b628bc279aa8cb104d4a38ba0808234a79bdd', url='http://registrationcenter-download.intel.com/akdlm/irc_nas/tec/16759/parallel_studio_xe_2020_update2_composer_edition.tgz') version('composer.2020.1', sha256='26c7e7da87b8a83adfd408b2a354d872be97736abed837364c1bf10f4469b01e', url='http://registrationcenter-download.intel.com/akdlm/irc_nas/tec/16530/parallel_studio_xe_2020_update1_composer_edition.tgz') version('composer.2020.0', sha256='9168045466139b8e280f50f0606b9930ffc720bbc60bc76f5576829ac15757ae', url='http://registrationcenter-download.intel.com/akdlm/irc_nas/tec/16229/parallel_studio_xe_2020_composer_edition.tgz') # diff --git a/var/spack/repos/builtin/packages/intel-pin/package.py b/var/spack/repos/builtin/packages/intel-pin/package.py index 4378d8e7dd..f9cf6ea111 100644 --- a/var/spack/repos/builtin/packages/intel-pin/package.py +++ b/var/spack/repos/builtin/packages/intel-pin/package.py @@ -15,6 +15,8 @@ class IntelPin(Package): homepage = "http://www.pintool.org" maintainers = ['matthiasdiener'] + version('3.15', sha256='51ab5a381ff477335050b20943133965c5c515d074ad6afb801a898dae8af642', url='https://software.intel.com/sites/landingpage/pintool/downloads/pin-3.15-98253-gb56e429b1-gcc-linux.tar.gz') + version('3.14', sha256='6c3b477c88673e0285fcd866a37a4fa47537d461a8bf48416ae3e9667eb7529b', url='https://software.intel.com/sites/landingpage/pintool/downloads/pin-3.14-98223-gb010a12c6-gcc-linux.tar.gz') version('3.13', sha256='04a36e91f3f85119c3496f364a8806c82bb675f7536a8ab45344c9890b5e2714', url='https://software.intel.com/sites/landingpage/pintool/downloads/pin-3.13-98189-g60a6ef199-gcc-linux.tar.gz') version('3.11', sha256='aa5abca475a6e106a75e6ed4ba518fb75a57549a59f00681e6bd6e3f221bd23a', url='https://software.intel.com/sites/landingpage/pintool/downloads/pin-3.11-97998-g7ecce2dac-gcc-linux.tar.gz') version('3.10', sha256='7c8f14c3a0654bab662b58aba460403138fa44517bd40052501e8e0075b2702a', url='https://software.intel.com/sites/landingpage/pintool/downloads/pin-3.10-97971-gc5e41af74-gcc-linux.tar.gz') diff --git a/var/spack/repos/builtin/packages/intel-tbb/package.py b/var/spack/repos/builtin/packages/intel-tbb/package.py index 4c652f6fce..65973d1dd4 100644 --- a/var/spack/repos/builtin/packages/intel-tbb/package.py +++ b/var/spack/repos/builtin/packages/intel-tbb/package.py @@ -23,6 +23,7 @@ class IntelTbb(Package): # Note: when adding new versions, please check and update the # patches, filters and url_for_version() below as needed. + version('2020.3', sha256='ebc4f6aa47972daed1f7bf71d100ae5bf6931c2e3144cf299c8cc7d041dca2f3') version('2020.2', sha256='4804320e1e6cbe3a5421997b52199e3c1a3829b2ecb6489641da4b8e32faf500') version('2020.1', sha256='7c96a150ed22bc3c6628bc3fef9ed475c00887b26d37bca61518d76a56510971') version('2020.0', sha256='57714f2d2cf33935db33cee93af57eb3ecd5a7bef40c1fb7ca4a41d79684b118') diff --git a/var/spack/repos/builtin/packages/intel/package.py b/var/spack/repos/builtin/packages/intel/package.py index 2808f6e885..7d9363e98f 100644 --- a/var/spack/repos/builtin/packages/intel/package.py +++ b/var/spack/repos/builtin/packages/intel/package.py @@ -13,8 +13,10 @@ class Intel(IntelPackage): # Same as in ../intel-parallel-studio/package.py, Composer Edition, # but the version numbering in Spack differs. + version('20.0.2', sha256='42af16e9a91226978bb401d9f17b628bc279aa8cb104d4a38ba0808234a79bdd', url='http://registrationcenter-download.intel.com/akdlm/irc_nas/tec/16759/parallel_studio_xe_2020_update2_composer_edition.tgz') version('20.0.1', sha256='26c7e7da87b8a83adfd408b2a354d872be97736abed837364c1bf10f4469b01e', url='http://registrationcenter-download.intel.com/akdlm/irc_nas/tec/16530/parallel_studio_xe_2020_update1_composer_edition.tgz') version('20.0.0', sha256='9168045466139b8e280f50f0606b9930ffc720bbc60bc76f5576829ac15757ae', url='http://registrationcenter-download.intel.com/akdlm/irc_nas/tec/16229/parallel_studio_xe_2020_composer_edition.tgz') + version('19.1.2', sha256='42af16e9a91226978bb401d9f17b628bc279aa8cb104d4a38ba0808234a79bdd', url='http://registrationcenter-download.intel.com/akdlm/irc_nas/tec/16759/parallel_studio_xe_2020_update2_composer_edition.tgz') version('19.1.1', sha256='26c7e7da87b8a83adfd408b2a354d872be97736abed837364c1bf10f4469b01e', url='http://registrationcenter-download.intel.com/akdlm/irc_nas/tec/16530/parallel_studio_xe_2020_update1_composer_edition.tgz') version('19.1.0', sha256='9168045466139b8e280f50f0606b9930ffc720bbc60bc76f5576829ac15757ae', url='http://registrationcenter-download.intel.com/akdlm/irc_nas/tec/16229/parallel_studio_xe_2020_composer_edition.tgz') version('19.0.5', sha256='e8c8e4b9b46826a02c49325c370c79f896858611bf33ddb7fb204614838ad56c', url='http://registrationcenter-download.intel.com/akdlm/irc_nas/tec/15813/parallel_studio_xe_2019_update5_composer_edition.tgz') diff --git a/var/spack/repos/builtin/packages/iq-tree/package.py b/var/spack/repos/builtin/packages/iq-tree/package.py index 9058a66f10..010ccdcae0 100644 --- a/var/spack/repos/builtin/packages/iq-tree/package.py +++ b/var/spack/repos/builtin/packages/iq-tree/package.py @@ -14,10 +14,12 @@ class IqTree(CMakePackage): git = "https://github.com/Cibiv/IQ-TREE.git" url = "https://github.com/Cibiv/IQ-TREE/archive/v1.6.12.tar.gz" + version('2.0.6', tag='v2.0.6', submodules=True) version('1.6.12', sha256='9614092de7a157de82c9cc402b19cc8bfa0cb0ffc93b91817875c2b4bb46a284') variant('openmp', default=True, description='Enable OpenMP support.') variant('mpi', default=False, description='Enable MPI support.') + variant('lsd2', default=True, description='Axctivate Least Squares Dating.') maintainers = ['ilbiondo'] @@ -30,13 +32,13 @@ class IqTree(CMakePackage): def cmake_args(self): - # Note that one has to specify "single" to get a single - # threaded build. Otherwise OpenMP is assumed - spec = self.spec args = [] iqflags = [] + if '+lsd2' in spec: + args.append('-DUSE_LSD2=ON') + if '+openmp' in spec: iqflags.append('omp') diff --git a/var/spack/repos/builtin/packages/isaac-server/package.py b/var/spack/repos/builtin/packages/isaac-server/package.py index af693a339c..da78398d1e 100644 --- a/var/spack/repos/builtin/packages/isaac-server/package.py +++ b/var/spack/repos/builtin/packages/isaac-server/package.py @@ -29,7 +29,7 @@ class IsaacServer(CMakePackage): depends_on('cmake@3.3:', type='build') depends_on('jpeg', type='link') - depends_on('jansson', type='link') + depends_on('jansson@:2.9', type='link') depends_on('boost@1.56.0:', type='link') depends_on('libwebsockets@2.1.1:', type='link') # depends_on('gstreamer@1.0', when='+gstreamer') diff --git a/var/spack/repos/builtin/packages/isescan/package.py b/var/spack/repos/builtin/packages/isescan/package.py new file mode 100644 index 0000000000..1d4b607046 --- /dev/null +++ b/var/spack/repos/builtin/packages/isescan/package.py @@ -0,0 +1,71 @@ +# 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 Isescan(Package): + """A python pipeline to identify IS (Insertion Sequence) elements in + genome and metagenome""" + + homepage = "https://github.com/xiezhq/ISEScan" + url = "https://github.com/xiezhq/ISEScan/archive/v1.7.2.1.tar.gz" + + version('1.7.2.1', sha256='b971a3e86a8cddaa4bcd520ba9e75425bbe93190466f81a3791ae0cb4baf5e5d') + + depends_on('python@3.3.3:', type='run') + depends_on('py-numpy@1.8.0:', type='run') + depends_on('py-scipy@0.13.1:', type='run') + depends_on('py-biopython@1.62:', type='run') + 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('hmmer@3.1b2:', type='run') + + def setup_run_environment(self, env): + env.prepend_path('PATH', self.prefix) + env.prepend_path('LD_LIBRARY_PATH', + join_path(self.prefix, 'ssw201507')) + + def install(self, spec, prefix): + # build bundled SSW library + with working_dir('ssw201507'): + Executable(spack_cc)( + '-O3', '-pipe', self.compiler.cc_pic_flag, '-shared', + '-rdynamic', '-o', 'libssw.' + dso_suffix, 'ssw.c', 'ssw.h', + ) + + # set paths to required programs + blast_pfx = self.spec['blast-plus'].prefix.bin + blastn_path = blast_pfx.blastn + blastp_path = blast_pfx.blastp + makeblastdb_path = blast_pfx.makeblastdb + + hmmer_pfx = self.spec['hmmer'].prefix.bin + phmmer_path = hmmer_pfx.phmmer + hmmsearch_path = hmmer_pfx.hmmsearch + + fgs_pfx = self.spec['fraggenescan'].prefix.bin + fgs_path = join_path(fgs_pfx, 'run_FragGeneScan.pl') + + constants = FileFilter('constants.py') + + constants.filter('/apps/inst/FragGeneScan1.30/run_FragGeneScan.pl', + fgs_path, string=True) + constants.filter('/apps/inst/hmmer-3.3/bin/phmmer', + phmmer_path, string=True) + constants.filter('/apps/inst/hmmer-3.3/bin/hmmsearch', + hmmsearch_path, string=True) + constants.filter('/apps/inst/ncbi-blast-2.10.0+/bin/blastn', + blastn_path, string=True) + constants.filter('/apps/inst/ncbi-blast-2.10.0+/bin/blastp', + blastp_path, string=True) + constants.filter('/apps/inst/ncbi-blast-2.10.0+/bin/makeblastdb', + makeblastdb_path, string=True) + + # install the whole tree + install_tree('.', prefix) + set_executable(join_path(prefix, 'isescan.py')) diff --git a/var/spack/repos/builtin/packages/jali/package.py b/var/spack/repos/builtin/packages/jali/package.py index e75dc7fb92..7c36ed7fdd 100644 --- a/var/spack/repos/builtin/packages/jali/package.py +++ b/var/spack/repos/builtin/packages/jali/package.py @@ -13,11 +13,12 @@ class Jali(CMakePackage): homepage = "https://github.com/lanl/jali" git = "https://github.com/lanl/jali" - url = "https://github.com/lanl/jali/archive/1.1.4.tar.gz" + url = "https://github.com/lanl/jali/archive/1.1.5.tar.gz" maintainers = ['raovgarimella'] version('master', branch='master') + version('1.1.5', sha256='4f18f3e8b50f20a89918e99596a7226c215944d84df642bc1fb2d6c31464b95b') version('1.1.4', sha256='135ab02be1487fcdfb039613cbed630bce336d581a66468c66209db0a9d8a104') version('1.1.1', sha256='c96c000b3893ea7f15bbc886524476dd466ae145e77deedc27e412fcc3541207') version('1.1.0', sha256='783dfcd6a9284af83bb380ed257fa8b0757dc2f7f9196d935eb974fb6523c644') diff --git a/var/spack/repos/builtin/packages/jmol/package.py b/var/spack/repos/builtin/packages/jmol/package.py index 6bbe7e28cd..9da452f396 100644 --- a/var/spack/repos/builtin/packages/jmol/package.py +++ b/var/spack/repos/builtin/packages/jmol/package.py @@ -4,6 +4,7 @@ # SPDX-License-Identifier: (Apache-2.0 OR MIT) from spack import * +import os.path class Jmol(Package): @@ -11,15 +12,26 @@ class Jmol(Package): with features for chemicals, crystals, materials and biomolecules.""" homepage = "http://jmol.sourceforge.net/" - url = "https://sourceforge.net/projects/jmol/files/Jmol/Version%2014.8/Jmol%2014.8.0/Jmol-14.8.0-binary.tar.gz" + url = "https://sourceforge.net/projects/jmol/files/Jmol/Version%2014.8/Jmol%2014.8.0/Jmol-14.8.0-binary.tar.gz" + version('14.31.0', sha256='eee0703773607c8bd6d51751d0d062c3e10ce44c11e1d7828e4ea3d5f710e892') version('14.8.0', sha256='8ec45e8d289aa0762194ca71848edc7d736121ddc72276031a253a3651e6d588') + def url_for_version(self, version): + url = 'https://sourceforge.net/projects/jmol/files/Jmol/Version%20{0}/Jmol%20{1}/Jmol-{1}-binary.tar.gz' + return url.format(version.up_to(2), version) + depends_on('java', type='run') def install(self, spec, prefix): - install_tree('jmol-{0}'.format(self.version), prefix) + if os.path.exists('jmol-{0}'.format(self.version)): + # tar ball contains subdir with different versions + install_tree('jmol-{0}'.format(self.version), prefix) + else: + # no subdirs - tarball was unpacked in spack-src + install_tree('./', prefix) def setup_run_environment(self, env): env.prepend_path('PATH', self.prefix) env.set('JMOL_HOME', self.prefix) + env.prepend_path('PATH', self.spec['java'].prefix.bin) diff --git a/var/spack/repos/builtin/packages/jube/package.py b/var/spack/repos/builtin/packages/jube/package.py index dae9fc2932..aff47bc55e 100644 --- a/var/spack/repos/builtin/packages/jube/package.py +++ b/var/spack/repos/builtin/packages/jube/package.py @@ -14,6 +14,8 @@ class Jube(PythonPackage): homepage = "https://www.fz-juelich.de/jsc/jube/" url = "https://apps.fz-juelich.de/jsc/jube/jube2/download.php?version=2.2.2" + version('2.4.0', sha256='87c02555f3d1a8ecaff139cf8e7a7167cabd1049c8cc77f1bd8f4484e210d524', extension='tar.gz') + version('2.3.0', sha256='6051d45af2ff35031ccc460185fbfa61f7f36ea14f17a0d51a9e62cd7af3709a', extension="tar.gz") version('2.2.2', sha256='135bc03cf07c4624ef2cf581ba5ec52eb44ca1dac15cffb83637e86170980477', extension="tar.gz") version('2.2.1', sha256='68751bf2e17766650ccddb7a5321dd1ac8b34ffa3585db392befbe9ff180ddd9', extension="tar.gz") version('2.2.0', sha256='bc825884fc8506d0fb7b3b5cbb5ad4c7e82b1fe1d7ec861ca33699adfc8100f1', extension="tar.gz") diff --git a/var/spack/repos/builtin/packages/kahip/fix-sconstruct-for-py3-v2.00.patch b/var/spack/repos/builtin/packages/kahip/fix-sconstruct-for-py3-v2.00.patch new file mode 100644 index 0000000000..8a75032e19 --- /dev/null +++ b/var/spack/repos/builtin/packages/kahip/fix-sconstruct-for-py3-v2.00.patch @@ -0,0 +1,30 @@ +diff -Naur spack-src/SConstruct spack-src.patched/SConstruct +--- spack-src/SConstruct 2017-07-25 08:41:27.000000000 -0400 ++++ spack-src.patched/SConstruct 2020-07-21 13:26:11.212509775 -0400 +@@ -55,11 +55,11 @@ + + env = Environment(options=opts, ENV=os.environ) + if not env['variant'] in ['optimized','optimized_output','debug']: +- print 'Illegal value for variant: %s' % env['variant'] ++ print('Illegal value for variant: %s' % env['variant']) + sys.exit(1) + + if not env['program'] in ['kaffpa', 'kaffpaE', 'partition_to_vertex_separator','improve_vertex_separator','library','graphchecker','label_propagation','evaluator','node_separator']: +- print 'Illegal value for program: %s' % env['program'] ++ print('Illegal value for program: %s' % env['program']) + sys.exit(1) + + # Special configuration for 64 bit machines. +@@ -104,10 +104,10 @@ + + #by D. Luxen + #if not conf.CheckLibWithHeader('argtable2', 'argtable2.h', 'CXX'): +- #print "argtable library not found. Exiting" ++ #print("argtable library not found. Exiting") + #Exit(-1) + #if not conf.CheckCXXHeader('mpi.h'): +- #print "openmpi header not found. Exiting" ++ #print("openmpi header not found. Exiting") + #Exit(-1) + # + # diff --git a/var/spack/repos/builtin/packages/kahip/fix-sconstruct-for-py3.patch b/var/spack/repos/builtin/packages/kahip/fix-sconstruct-for-py3.patch new file mode 100644 index 0000000000..2cd61650af --- /dev/null +++ b/var/spack/repos/builtin/packages/kahip/fix-sconstruct-for-py3.patch @@ -0,0 +1,101 @@ +diff -Naur spack-src/interface/SConstruct spack-src.patched/interface/SConstruct +--- spack-src/interface/SConstruct 2017-07-25 08:41:27.000000000 -0400 ++++ spack-src.patched/interface/SConstruct 2020-07-21 13:25:41.586597330 -0400 +@@ -33,7 +33,7 @@ + + env = Environment(options=opts, ENV=os.environ) + if not env['variant'] in ['debug', 'optimized', 'pdebug', 'profilingoptimized']: +- print 'Illegal value for variant: %s' % env['variant'] ++ print('Illegal value for variant: %s' % env['variant']) + sys.exit(1) + + # Special configuration for 64 bit machines. +diff -Naur spack-src/misc/example_library_call/SConstruct spack-src.patched/misc/example_library_call/SConstruct +--- spack-src/misc/example_library_call/SConstruct 2017-07-25 08:41:27.000000000 -0400 ++++ spack-src.patched/misc/example_library_call/SConstruct 2020-07-21 12:06:05.543455286 -0400 +@@ -53,11 +53,11 @@ + + env = Environment(options=opts, ENV=os.environ) + if not env['variant'] in ['optimized','optimized_output','debug']: +- print 'Illegal value for variant: %s' % env['variant'] ++ print('Illegal value for variant: %s' % env['variant']) + sys.exit(1) + + if not env['program'] in ['interfacetest']: +- print 'Illegal value for program: %s' % env['program'] ++ print('Illegal value for program: %s' % env['program']) + sys.exit(1) + + # Special configuration for 64 bit machines. +diff -Naur spack-src/parallel/modified_kahip/interface/SConstruct spack-src.patched/parallel/modified_kahip/interface/SConstruct +--- spack-src/parallel/modified_kahip/interface/SConstruct 2017-07-25 08:41:27.000000000 -0400 ++++ spack-src.patched/parallel/modified_kahip/interface/SConstruct 2020-07-21 12:06:36.461407930 -0400 +@@ -33,7 +33,7 @@ + + env = Environment(options=opts, ENV=os.environ) + if not env['variant'] in ['debug', 'optimized', 'pdebug', 'profilingoptimized']: +- print 'Illegal value for variant: %s' % env['variant'] ++ print('Illegal value for variant: %s' % env['variant']) + sys.exit(1) + + # Special configuration for 64 bit machines. +diff -Naur spack-src/parallel/modified_kahip/SConstruct spack-src.patched/parallel/modified_kahip/SConstruct +--- spack-src/parallel/modified_kahip/SConstruct 2017-07-25 08:41:27.000000000 -0400 ++++ spack-src.patched/parallel/modified_kahip/SConstruct 2020-07-21 13:23:37.148764755 -0400 +@@ -55,11 +55,11 @@ + + env = Environment(options=opts, ENV=os.environ) + if not env['variant'] in ['optimized','optimized_output','debug']: +- print 'Illegal value for variant: %s' % env['variant'] ++ print('Illegal value for variant: %s' % env['variant']) + sys.exit(1) + + if not env['program'] in ['kaffpa', 'kaffpaE', 'partition_to_vertex_separator','library','graphchecker','label_propagation','interfacetest']: +- print 'Illegal value for program: %s' % env['program'] ++ print('Illegal value for program: %s' % env['program']) + sys.exit(1) + + # Special configuration for 64 bit machines. +@@ -98,10 +98,10 @@ + + #by D. Luxen + #if not conf.CheckLibWithHeader('argtable2', 'argtable2.h', 'CXX'): +- #print "argtable library not found. Exiting" ++ #print("argtable library not found. Exiting") + #Exit(-1) + #if not conf.CheckCXXHeader('mpi.h'): +- #print "openmpi header not found. Exiting" ++ #print("openmpi header not found. Exiting") + #Exit(-1) + # + # +diff -Naur spack-src/parallel/parallel_src/SConstruct spack-src.patched/parallel/parallel_src/SConstruct +--- spack-src/parallel/parallel_src/SConstruct 2017-07-25 08:41:27.000000000 -0400 ++++ spack-src.patched/parallel/parallel_src/SConstruct 2020-07-21 13:25:13.102720046 -0400 +@@ -55,11 +55,11 @@ + + env = Environment(options=opts, ENV=os.environ) + if not env['variant'] in ['optimized','optimized_nooutput','debug']: +- print 'Illegal value for variant: %s' % env['variant'] ++ print('Illegal value for variant: %s' % env['variant']) + sys.exit(1) + + if not env['program'] in ['parhip','edge_list_to_metis_graph','friendster_list_to_metis_graph','parallel_label_compress_reps','yahoo_to_metis','parmetis_driver','graph2binary','graph2binary_external','readbgf','toolbox']: +- print 'Illegal value for program: %s' % env['program'] ++ print('Illegal value for program: %s' % env['program']) + sys.exit(1) + + # Special configuration for 64 bit machines. +@@ -104,10 +104,10 @@ + + #by D. Luxen + #if not conf.CheckLibWithHeader('argtable2', 'argtable2.h', 'CXX'): +- #print "argtable library not found. Exiting" ++ #print("argtable library not found. Exiting") + #Exit(-1) + #if not conf.CheckCXXHeader('mpi.h'): +- #print "openmpi header not found. Exiting" ++ #print("openmpi header not found. Exiting") + #Exit(-1) + # + # diff --git a/var/spack/repos/builtin/packages/kahip/package.py b/var/spack/repos/builtin/packages/kahip/package.py index e2ca1aeaa1..3a31455c75 100644 --- a/var/spack/repos/builtin/packages/kahip/package.py +++ b/var/spack/repos/builtin/packages/kahip/package.py @@ -35,6 +35,15 @@ class Kahip(SConsPackage): conflicts('%apple-clang') conflicts('%clang') + # Fix SConstruct files to be python3 friendly (convert print from a + # statement to a function) + # Split into 2 patch files: + # *) first file patches Sconstruct files present in all versions (from + # 2.00 to 2.11) + # *) second is for files only present in 2.00 + patch('fix-sconstruct-for-py3.patch', when='@2: ^python@3:') + patch('fix-sconstruct-for-py3-v2.00.patch', when='@2.00 ^python@3:') + def patch(self): """Internal compile.sh scripts hardcode number of cores to build with. Filter these out so Spack can control it.""" diff --git a/var/spack/repos/builtin/packages/kallisto/package.py b/var/spack/repos/builtin/packages/kallisto/package.py index d33bd970a2..25e5fcb9a0 100644 --- a/var/spack/repos/builtin/packages/kallisto/package.py +++ b/var/spack/repos/builtin/packages/kallisto/package.py @@ -18,7 +18,6 @@ class Kallisto(CMakePackage): depends_on('zlib') depends_on('hdf5') - depends_on('mpich') # htslib isn't built in time to be used.... parallel = False diff --git a/var/spack/repos/builtin/packages/kassiopeia/package.py b/var/spack/repos/builtin/packages/kassiopeia/package.py new file mode 100644 index 0000000000..90d085acb8 --- /dev/null +++ b/var/spack/repos/builtin/packages/kassiopeia/package.py @@ -0,0 +1,65 @@ +# 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 Kassiopeia(CMakePackage): + """Simulation of electric and magnetic fields and particle tracking.""" + + homepage = "https://katrin-experiment.github.io/Kassiopeia/" + url = "https://github.com/KATRIN-Experiment/Kassiopeia/archive/v3.6.1.tar.gz" + git = "https://github.com/KATRIN-Experiment/Kassiopeia.git" + + maintainers = ['wdconinc'] + + version('3.7.5', sha256='8f28d08c7ef51e64221e0a4705f3cee3a5d738b8cdde5ce9fa58a3a0dd14ae05') + version('3.7.4', sha256='c1514163a084530930be10dbe487fb1950ccbc9662a4a190bdecffbd84a71fd4') + version('3.7.3', sha256='a8753585b9fa0903e1f5f821c4ced3cddd72792ad7e6075a7e25318f81ad9eaa') + version('3.7.2', sha256='bdfdf8c26fa5ad19e8b9c6eb600dfbd3c8218cd695ce067f10633b63bd192f92') + version('3.7.1', sha256='b22ae2fe5c2271bdf6aaf65d9ecf57ff0d6a88d28ad26d176e1129f0e58faea4') + version('3.7.0', sha256='32a3e98c77d1b97fe9862cf1d8c6ba8e6c82fb9295a6a217c7ce77cbec751046') + version('3.6.1', sha256='30193d5384ad81b8570fdcd1bb35b15cc365ab84712819ac0d989c6f5cf6f790') + version('3.5.0', sha256='b704d77bd182b2806dc8323f642d3197ce21dba3d456430f594b19a7596bda22') + version('3.4.0', sha256='4e2bca61011e670186d49048aea080a06c3c95dacf4b79e7549c36960b4557f4') + + variant("root", default=False, + description="Include support for writing ROOT files") + variant("vtk", default=False, + description="Include visualization support through VTK") + variant("mpi", default=False, + description="Include MPI support for field calculations") + variant("tbb", default=False, + description="Include Intel TBB support for field calculations") + variant("opencl", default=False, + description="Include OpenCL support for field calculations") + + depends_on('cmake@3.13:', type='build') + depends_on('zlib') + depends_on('root@6.0.0:', when='+root') + depends_on('vtk@6.1:', when='+vtk') + depends_on('mpi', when='+mpi') + depends_on('tbb', when='+tbb') + depends_on('opencl', when='+opencl') + + def cmake_args(self): + args = [] + if self.spec.satisfies('+vtk'): + args.append('-DKASPER_USE_VTK=ON') + else: + args.append('-DKASPER_USE_VTK=OFF') + if self.spec.satisfies('+tbb'): + args.append('-DKASPER_USE_TBB=ON') + else: + args.append('-DKASPER_USE_TBB=OFF') + if self.spec.satisfies('+mpi'): + args.append('-DKEMField_USE_MPI=ON') + else: + args.append('-DKEMField_USE_MPI=OFF') + if self.spec.satisfies('+opencl'): + args.append('-DKEMField_USE_OPENCL=ON') + else: + args.append('-DKEMField_USE_OPENCL=OFF') + return args diff --git a/var/spack/repos/builtin/packages/keepalived/package.py b/var/spack/repos/builtin/packages/keepalived/package.py index bb6cf01337..2b1e9f7b07 100644 --- a/var/spack/repos/builtin/packages/keepalived/package.py +++ b/var/spack/repos/builtin/packages/keepalived/package.py @@ -25,4 +25,4 @@ class Keepalived(AutotoolsPackage): version('2.0.12', sha256='fd50e433d784cfd948de5726752cf89ab7001f587fe10a5110c6c7cbda4b7b5e') version('2.0.11', sha256='a298b0c02a20959cfc365b62c14f45abd50d5e0595b2869f5bce10ec2392fa48') - depends_on('openssl', type='build') + depends_on('openssl') diff --git a/var/spack/repos/builtin/packages/kibana/package.py b/var/spack/repos/builtin/packages/kibana/package.py index 6bf2562394..f0e6f53988 100644 --- a/var/spack/repos/builtin/packages/kibana/package.py +++ b/var/spack/repos/builtin/packages/kibana/package.py @@ -15,7 +15,7 @@ class Kibana(Package): version('6.4.0', sha256='df2056105a08c206a1adf9caed09a152a53429a0f1efc1ba3ccd616092d78aee') - depends_on('jdk', type='run') + depends_on('java', type='run') def install(self, spec, prefix): install_tree('.', join_path(prefix, '.')) diff --git a/var/spack/repos/builtin/packages/knem/package.py b/var/spack/repos/builtin/packages/knem/package.py index 473a178319..def620ab4f 100644 --- a/var/spack/repos/builtin/packages/knem/package.py +++ b/var/spack/repos/builtin/packages/knem/package.py @@ -11,18 +11,26 @@ class Knem(AutotoolsPackage): communication for large messages.""" homepage = "http://knem.gforge.inria.fr" - url = "http://gforge.inria.fr/frs/download.php/37186/knem-1.1.3.tar.gz" - list_url = "http://knem.gforge.inria.fr/download" + url = "https://gitlab.inria.fr/knem/knem/uploads/4a43e3eb860cda2bbd5bf5c7c04a24b6/knem-1.1.4.tar.gz" + list_url = "https://knem.gitlabpages.inria.fr/download" + git = "https://gitlab.inria.fr/knem/knem.git" maintainers = ['skosukhin'] - version('1.1.3', sha256='50d3c4a20c140108b8ce47aaafd0ade0927d6f507e1b5cc690dd6bddeef30f60') + version('master', branch='master') + version('1.1.4', sha256='9f0e360579ae7655e07d6644583fd325515e9ff2b42ef5decb5421a003510937', + url="https://gitlab.inria.fr/knem/knem/uploads/4a43e3eb860cda2bbd5bf5c7c04a24b6/knem-1.1.4.tar.gz") + version('1.1.3', sha256='50d3c4a20c140108b8ce47aaafd0ade0927d6f507e1b5cc690dd6bddeef30f60', + url="https://gitlab.inria.fr/knem/knem/uploads/59375c38537e6ff2d94209f190c54aa6/knem-1.1.3.tar.gz") variant('hwloc', default=True, description='Enable hwloc in the user-space tools') - depends_on('hwloc', when='+hwloc') + depends_on('hwloc', when='+hwloc') depends_on('pkgconfig', type='build', when='+hwloc') + depends_on('autoconf', type='build', when='@master') + depends_on('automake', type='build', when='@master') + depends_on('m4', type='build', when='@master') # The support for hwloc was added in 0.9.1: conflicts('+hwloc', when='@:0.9.0') @@ -44,3 +52,7 @@ class Knem(AutotoolsPackage): def configure_args(self): return self.enable_or_disable('hwloc') + + @when('@master') + def autoreconf(self, spec, prefix): + Executable('./autogen.sh')() diff --git a/var/spack/repos/builtin/packages/kokkos/package.py b/var/spack/repos/builtin/packages/kokkos/package.py index b5277e40a8..cf949befbd 100644 --- a/var/spack/repos/builtin/packages/kokkos/package.py +++ b/var/spack/repos/builtin/packages/kokkos/package.py @@ -172,6 +172,8 @@ class Kokkos(CMakePackage, CudaPackage): conflicts("+wrapper", when="~cuda") variant("std", default="11", values=["11", "14", "17", "20"], multi=False) + variant("pic", default=False, description="Build position independent code") + # nvcc does not currently work with C++17 or C++20 conflicts("+cuda", when="std=17") conflicts("+cuda", when="std=20") @@ -208,6 +210,9 @@ class Kokkos(CMakePackage, CudaPackage): if isdiy: options.append("-DSpack_WORKAROUND=On") + if "+pic" in spec: + options.append("-DCMAKE_POSITION_INDEPENDENT_CODE=ON") + spack_microarches = [] if "+cuda" in spec: # this is a list diff --git a/var/spack/repos/builtin/packages/krb5/package.py b/var/spack/repos/builtin/packages/krb5/package.py index 24cf72f6d7..93367a3461 100644 --- a/var/spack/repos/builtin/packages/krb5/package.py +++ b/var/spack/repos/builtin/packages/krb5/package.py @@ -9,11 +9,24 @@ from spack import * class Krb5(AutotoolsPackage): """Network authentication protocol""" - homepage = "https://kerberos.org" - url = "https://kerberos.org/dist/krb5/1.16/krb5-1.16.1.tar.gz" - + homepage = "https://kerberos.org" + url = "https://kerberos.org/dist/krb5/1.16/krb5-1.16.1.tar.gz" + list_url = "https://kerberos.org/dist/krb5/" + list_depth = 1 + + version('1.18.2', sha256='c6e4c9ec1a98141c3f5d66ddf1a135549050c9fab4e9a4620ee9b22085873ae0') + version('1.18.1', sha256='02a4e700f10936f937cd1a4c303cab8687a11abecc6107bd4b706b9329cd5400') + version('1.18', sha256='73913934d711dcf9d5f5605803578edb44b9a11786df3c1b2711f4e1752f2c88') + version('1.17.1', sha256='3706d7ec2eaa773e0e32d3a87bf742ebaecae7d064e190443a3acddfd8afb181') + version('1.17', sha256='5a6e2284a53de5702d3dc2be3b9339c963f9b5397d3fbbc53beb249380a781f5') + version('1.16.3', sha256='e40499df7c6dbef0cf9b11870a0e167cde827737d8b2c06a9436334f08ab9b0d') + version('1.16.2', sha256='9f721e1fe593c219174740c71de514c7228a97d23eb7be7597b2ae14e487f027') version('1.16.1', sha256='214ffe394e3ad0c730564074ec44f1da119159d94281bbec541dc29168d21117') + def url_for_version(self, version): + url = 'https://kerberos.org/dist/krb5/{0}/krb5-{1}.tar.gz' + return url.format(version.up_to(2), version) + depends_on('bison', type='build') depends_on('openssl') diff --git a/var/spack/repos/builtin/packages/lammps/package.py b/var/spack/repos/builtin/packages/lammps/package.py index 928a7fddab..550bf51de1 100644 --- a/var/spack/repos/builtin/packages/lammps/package.py +++ b/var/spack/repos/builtin/packages/lammps/package.py @@ -21,6 +21,8 @@ class Lammps(CMakePackage, CudaPackage): tags = ['ecp', 'ecp-apps'] version('master', branch='master') + version('20200721', sha256='845bfeddb7b667799a1a5dbc166b397d714c3d2720316604a979d3465b4190a9') + version('20200630', sha256='413cbfabcc1541a339c7a4ab5693fbeb768f46bb1250640ba94686c6e90922fc') version('20200505', sha256='c49d77fd602d28ebd8cf10f7359b9fc4d14668c72039028ed7792453d416de73') version('20200303', sha256='9aa56dfb8673a06e6c88588505ec1dfc01dd94f9d60e719ed0c605e48cc06c58') version('20200227', sha256='1aabcf38bc72285797c710b648e906151a912c36b634a9c88ac383aacf85516e') @@ -92,11 +94,12 @@ class Lammps(CMakePackage, CudaPackage): depends_on('netcdf-c+mpi', when='+user-netcdf') depends_on('blas', when='+user-atc') depends_on('lapack', when='+user-atc') - depends_on('latte@1.0.1', when='@:20180222+latte') - depends_on('latte@1.1.1:', when='@20180316:20180628+latte') depends_on('opencl', when='+opencl') - depends_on('latte@1.2.1:', when='@20180629:+latte') + depends_on('latte@1.0.1', when='@:20180222+latte') + depends_on('latte@1.1.1:', when='@20180316:20180628+latte') + depends_on('latte@1.2.1:', when='@20180629:20200505+latte') + depends_on('latte@1.2.2:', when='@20200602:+latte') depends_on('blas', when='+latte') depends_on('lapack', when='+latte') depends_on('python', when='+python') diff --git a/var/spack/repos/builtin/packages/latte/package.py b/var/spack/repos/builtin/packages/latte/package.py index 87d10fa152..d67f98397e 100644 --- a/var/spack/repos/builtin/packages/latte/package.py +++ b/var/spack/repos/builtin/packages/latte/package.py @@ -16,7 +16,8 @@ class Latte(CMakePackage): tags = ['ecp', 'ecp-apps'] - version('develop', branch='master') + version('master', branch='master') + version('1.2.2', sha256='ab1346939dbd70ffd89c5e5bf8d24946cb3655dc25b203bec7fc59c6c63e4c79') version('1.2.1', sha256='a21dda5ebdcefa56e9ff7296d74ef03f89c200d2e110a02af7a84612668bf702') variant('mpi', default=True, diff --git a/var/spack/repos/builtin/packages/lbann/package.py b/var/spack/repos/builtin/packages/lbann/package.py index bc0da109ec..8eacb2fb71 100644 --- a/var/spack/repos/builtin/packages/lbann/package.py +++ b/var/spack/repos/builtin/packages/lbann/package.py @@ -8,7 +8,7 @@ import sys from spack import * -class Lbann(CMakePackage): +class Lbann(CMakePackage, CudaPackage): """LBANN: Livermore Big Artificial Neural Network Toolkit. A distributed memory, HPC-optimized, model and data parallel training toolkit for deep neural networks.""" @@ -20,7 +20,8 @@ class Lbann(CMakePackage): maintainers = ['bvanessen'] version('develop', branch='develop') - version('0.99', branch='develop') + version('0.100', sha256='d1bab4fb6f1b80ae83a7286cc536a32830890f6e5b0c3107a17c2600d0796912') + version('0.99', sha256='3358d44f1bc894321ce07d733afdf6cb7de39c33e3852d73c9f31f530175b7cd') version('0.98.1', sha256='9a2da8f41cd8bf17d1845edf9de6d60f781204ebd37bffba96d8872036c10c66') version('0.98', sha256='8d64b9ac0f1d60db553efa4e657f5ea87e790afe65336117267e9c7ae6f68239') version('0.97.1', sha256='2f2756126ac8bb993202cf532d72c4d4044e877f4d52de9fdf70d0babd500ce4') @@ -32,7 +33,6 @@ class Lbann(CMakePackage): version('0.92', sha256='9187c5bcbc562c2828fe619d53884ab80afb1bcd627a817edb935b80affe7b84') version('0.91', sha256='b69f470829f434f266119a33695592f74802cff4b76b37022db00ab32de322f5') - variant('gpu', default=False, description='Builds with support for GPUs via CUDA and cuDNN') variant('nccl', default=False, description='Builds with support for NCCL communication lib') variant('opencv', default=True, description='Builds with support for image processing routines with OpenCV') variant('seq_init', default=False, description='Force serial initialization of weight matrices.') @@ -52,6 +52,8 @@ class Lbann(CMakePackage): conflicts('@:0.90,0.99:', when='~conduit') + depends_on('cmake@3.16.0:', type='build') + # It seems that there is a need for one statement per version bounds depends_on('hydrogen +openmp_blas +shared +int64', when='@:0.90,0.95: ~al') depends_on('hydrogen +openmp_blas +shared +int64 +al', when='@:0.90,0.95: +al') @@ -77,12 +79,11 @@ class Lbann(CMakePackage): when='build_type=Debug @0.91:0.94') depends_on('aluminum', when='@:0.90,0.95: +al ~gpu') - depends_on('aluminum +gpu +mpi_cuda', when='@:0.90,0.95: +al +gpu ~nccl') - depends_on('aluminum +gpu +nccl +mpi_cuda', when='@:0.90,0.95: +al +gpu +nccl') + depends_on('aluminum +cuda +ht', when='@:0.90,0.95: +al +cuda ~nccl') + depends_on('aluminum +cuda +nccl +ht', when='@:0.90,0.95: +al +cuda +nccl') - depends_on('cuda', when='+gpu') - depends_on('cudnn', when='+gpu') - depends_on('cub', when='@0.94:0.98.2 +gpu') + depends_on('cudnn', when='+cuda') + depends_on('cub', when='@0.94:0.98.2 +cuda') depends_on('mpi') depends_on('hwloc') @@ -98,7 +99,7 @@ class Lbann(CMakePackage): '~videostab ~videoio ~vtk', when='+opencv') depends_on('cnpy') - depends_on('nccl', when='@0.94:0.98.2 +gpu +nccl') + depends_on('nccl', when='@0.94:0.98.2 +cuda +nccl') depends_on('conduit@0.4.0: +hdf5', when='@0.94:0.99 +conduit') depends_on('conduit@0.4.0: +hdf5', when='@:0.90,0.99:') @@ -118,6 +119,7 @@ class Lbann(CMakePackage): depends_on('py-protobuf+cpp@3.6.1:', type=('build', 'run'), when='@:0.90,0.99:') depends_on('py-breathe', type='build', when='+docs') + depends_on('doxygen', type='build', when='+docs') depends_on('py-m2r', type='build', when='+docs') depends_on('cereal') @@ -135,7 +137,6 @@ class Lbann(CMakePackage): cppflags.append('-DLBANN_SET_EL_RNG -ldl') return [ - '-DCMAKE_INSTALL_MESSAGE=LAZY', '-DCMAKE_CXX_FLAGS=%s' % ' '.join(cppflags), '-DLBANN_VERSION=spack', '-DCNPY_DIR={0}'.format(spec['cnpy'].prefix), @@ -148,12 +149,12 @@ class Lbann(CMakePackage): spec = self.spec args = self.common_config_args args.extend([ - '-DLBANN_WITH_TOPO_AWARE:BOOL=%s' % ('+gpu +nccl' in spec), + '-DLBANN_WITH_TOPO_AWARE:BOOL=%s' % ('+cuda +nccl' in spec), '-DLBANN_WITH_ALUMINUM:BOOL=%s' % ('+al' in spec), '-DLBANN_WITH_CONDUIT:BOOL=%s' % ('+conduit' in spec), - '-DLBANN_WITH_CUDA:BOOL=%s' % ('+gpu' in spec), - '-DLBANN_WITH_CUDNN:BOOL=%s' % ('+gpu' in spec), - '-DLBANN_WITH_SOFTMAX_CUDA:BOOL=%s' % ('+gpu' in spec), + '-DLBANN_WITH_CUDA:BOOL=%s' % ('+cuda' in spec), + '-DLBANN_WITH_CUDNN:BOOL=%s' % ('+cuda' in spec), + '-DLBANN_WITH_SOFTMAX_CUDA:BOOL=%s' % ('+cuda' in spec), '-DLBANN_SEQUENTIAL_INITIALIZATION:BOOL=%s' % ('+seq_init' in spec), '-DLBANN_WITH_TBINF=OFF', @@ -174,7 +175,8 @@ class Lbann(CMakePackage): spec['elemental'].prefix)]) if spec.satisfies('@0.94:0.98.2'): - args.extend(['-DLBANN_WITH_NCCL:BOOL=%s' % ('+gpu +nccl' in spec)]) + args.extend(['-DLBANN_WITH_NCCL:BOOL=%s' % + ('+cuda +nccl' in spec)]) if '+vtune' in spec: args.extend(['-DVTUNE_DIR={0}'.format(spec['vtune'].prefix)]) @@ -203,7 +205,7 @@ class Lbann(CMakePackage): args.extend(['-DOpenCV_DIR:STRING={0}'.format( spec['opencv'].prefix)]) - if '+gpu' in spec: + if '+cuda' in spec: args.extend([ '-DCUDA_TOOLKIT_ROOT_DIR={0}'.format( spec['cuda'].prefix)]) @@ -225,8 +227,8 @@ class Lbann(CMakePackage): spec = self.spec args = self.common_config_args args.extend([ - '-DWITH_CUDA:BOOL=%s' % ('+gpu' in spec), - '-DWITH_CUDNN:BOOL=%s' % ('+gpu' in spec), + '-DWITH_CUDA:BOOL=%s' % ('+cuda' in spec), + '-DWITH_CUDNN:BOOL=%s' % ('+cuda' in spec), '-DELEMENTAL_USE_CUBLAS:BOOL=%s' % ( '+cublas' in spec['elemental']), '-DWITH_TBINF=OFF', diff --git a/var/spack/repos/builtin/packages/lcals/package.py b/var/spack/repos/builtin/packages/lcals/package.py index ebf5411d00..9305c3dcb3 100644 --- a/var/spack/repos/builtin/packages/lcals/package.py +++ b/var/spack/repos/builtin/packages/lcals/package.py @@ -46,7 +46,7 @@ class Lcals(MakefilePackage): arch = 'MIC' elif arch == 'x86_64' or arch == 'x86_32': arch = 'x86' - elif arch != 'bgq': + else: raise InstallError('unknown architecture.') if self.compiler.name == 'intel': @@ -72,24 +72,7 @@ class Lcals(MakefilePackage): cxxflags += '-DLCALS_PLATFORM_X86_AVX -DLCALS_COMPILER_GNU ' cxx_compile += '-Ofast -mavx -finline-functions' ' -finline-limit=10000 -std=c++11' - elif arch == 'bgq': - cxxflags += '-DLCALS_PLATFORM_BGQ -DLCALS_COMPILER_GNU ' - cxx_compile += '-O3 -finline-functions -finline-limit=10000' - ' -std=c++0x' cxxflags += self.compiler.openmp_flag - elif self.compiler.name == 'xl' and arch == 'bgp': - if self.compiler.version == Version('9') and arch == 'bgp': - cxxflags += '-DLCALS_PLATFORM_BGP -DLCALS_COMPILER_XLC9 ' - cxx_compile += 'O3 -qarch=450d -qtune=450 -qalias=allp -qhot' - ' -qsmp=omp ' - elif self.compiler.version == Version('12') and arch == 'bgq': - cxxflags += '-DLCALS_PLATFORM_BGQ -DLCALS_COMPILER_XLC12 ' - cxx_compile += '-O3 -qarch=qp -qhot=novector -qsimd=auto' - ' -qlanglvl=extended0x -qnostrict -qinline=10000 -qsmp=omp ' - elif self.compiler.name == 'clang': - if arch == 'bgq': - cxxflags += '-DLCALS_PLATFORM_BGQ -DLCALS_COMPILER_CLANG ' - cxx_compile += '-O3 -finline-functions -ffast-math -std=c++0x' targets.append('LCALS_ARCH=') cxx_compile += ' ' + cxxflags diff --git a/var/spack/repos/builtin/packages/lcio/package.py b/var/spack/repos/builtin/packages/lcio/package.py new file mode 100644 index 0000000000..4319774b15 --- /dev/null +++ b/var/spack/repos/builtin/packages/lcio/package.py @@ -0,0 +1,74 @@ +# 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 Lcio(CMakePackage): + """HEP Library for Linear Collider Input/Output""" + + homepage = "http://lcio.desy.de" + git = "https://github.com/iLCSoft/LCIO.git" + url = "https://github.com/iLCSoft/LCIO/archive/v02-13-03.tar.gz" + + maintainers = ['gaede', 'vvolkl'] + + version('master', branch='master') + version('2.14.2', sha256='e64f4bf932edf6d6cdaf0162e5104f8fbf3e5fd9737c7a080c48859009621919') + version('2.13.3', sha256='35aaa7989be33574a7c44ea7e6d7780ab26ef8bd4aa29d495f3831a3cd269304') + version('2.13.2', sha256='9f153ba13e56ee16795378f9192678d40df1faca51d00aaa8fb80547bfecb8d8') + + variant('cxxstd', + default='17', + values=('11', '14', '17'), + multi=False, + description='Use the specified C++ standard when building.') + variant("jar", default=False, + description="Turn on to build/install lcio.jar") + variant("rootdict", default=True, + description="Turn on to build/install ROOT dictionary.") + variant("examples", default=False, + description="Turn on to build LCIO examples") + + depends_on('root@6.04:', when="+rootdict") + depends_on('openjdk', when="+jar") + # build error with +termlib, to be investigated + depends_on('ncurses~termlib', when="+examples") + depends_on('delphes', when="+examples") + depends_on('readline', when="+examples") + + def cmake_args(self): + args = [ + self.define('CMAKE_CXX_STANDARD', + self.spec.variants['cxxstd'].value), + self.define('BUILD_TESTING', self.run_tests), + self.define_from_variant("BUILD_LCIO_EXAMPLES", 'examples'), + self.define_from_variant("BUILD_ROOTDICT", 'rootdict'), + self.define_from_variant("INSTALL_JAR", 'jar'), + ] + return args + + def url_for_version(self, version): + base_url = self.url.rsplit('/', 1)[0] + major = str(version[0]).zfill(2) + minor = str(version[1]).zfill(2) + # handle the different cases for the patch version: + # first case, no patch version is given in spack, i.e 0.1 + if len(version) == 2: + url = base_url + "/v%s-%s.tar.gz" % (major, minor) + # a patch version is specified in spack, i.e. 0.1.x ... + elif len(version) == 3: + patch = str(version[2]).zfill(2) + # ... but it is zero, and not part of the ilc release url + if version[2] == 0: + url = base_url + "/v%s-%s.tar.gz" % (major, minor) + # ... if it is non-zero, it is part of the release url + else: + url = base_url + "/v%s-%s-%s.tar.gz" % (major, minor, patch) + else: + print('Error - Wrong version format provided') + return + return url diff --git a/var/spack/repos/builtin/packages/legion/package.py b/var/spack/repos/builtin/packages/legion/package.py index cac38dd030..f98e48e187 100644 --- a/var/spack/repos/builtin/packages/legion/package.py +++ b/var/spack/repos/builtin/packages/legion/package.py @@ -47,6 +47,8 @@ class Legion(CMakePackage): description='Build on top of ibv conduit for InfiniBand support') variant('shared', default=True, description='Build shared libraries') variant('hdf5', default=True, description='Enable HDF5 support') + variant('spy', default=False, + description='Enable detailed logging for Legion Spy') variant('build_type', default='Release', values=('Debug', 'Release', 'RelWithDebInfo', 'MinSizeRel'), description='The build type to build', multi=False) @@ -87,4 +89,7 @@ class Legion(CMakePackage): else: options.append('-DLegion_USE_HDF5=OFF') + if '+spy' in self.spec: + options.append('-DLegion_SPY=ON') + return options diff --git a/var/spack/repos/builtin/packages/lhapdf/package.py b/var/spack/repos/builtin/packages/lhapdf/package.py index 10a69aba75..13adae4818 100644 --- a/var/spack/repos/builtin/packages/lhapdf/package.py +++ b/var/spack/repos/builtin/packages/lhapdf/package.py @@ -13,6 +13,7 @@ class Lhapdf(AutotoolsPackage): homepage = "https://lhapdf.hepforge.org/" url = "https://lhapdf.hepforge.org/downloads/?f=LHAPDF-6.2.3.tar.gz" + version('6.3.0', sha256='ed4d8772b7e6be26d1a7682a13c87338d67821847aa1640d78d67d2cef8b9b5d') version('6.2.3', sha256='d6e63addc56c57b6286dc43ffc56d901516f4779a93a0f1547e14b32cfd82dd1') depends_on('autoconf', type='build') diff --git a/var/spack/repos/builtin/packages/lhapdf5/package.py b/var/spack/repos/builtin/packages/lhapdf5/package.py new file mode 100644 index 0000000000..6506f9da76 --- /dev/null +++ b/var/spack/repos/builtin/packages/lhapdf5/package.py @@ -0,0 +1,46 @@ +# 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 Lhapdf5(AutotoolsPackage): + """LHAPDF is a general purpose Fortran 77/90 interpolator, + used for evaluating PDFs from discretised data files.""" + + homepage = "http://lhapdf.hepforge.org/lhapdf5/" + url = "http://lhapdf.hepforge.org/downloads?f=old/lhapdf-5.9.1.tar.gz" + + version('5.9.1', sha256='86b9b046d7f25627ce2aab6847ef1c5534972f4bae18de98225080cf5086919c') + version('5.9.0', sha256='64b9018ce6102ae7b6a92c990ca6afa841fb992d87b1abf5756c3d04c4d46b9c') + version('5.8.9', sha256='b90a83512fc5f51e4cd419f1e79ad6e6fcd0e19636bb07464e41f47ee0509d3c') + version('5.8.8', sha256='fe4c7148b1858c3c534c5e80ea1a8766b4407d19c44c40578da54e390af228f8') + version('5.8.7', sha256='4c6effdcc74c8b60aaa18bf60e224de3c5f3c2e5b0efc08d38338f01bec7db47') + version('5.8.6', sha256='689800b2ad6d822e2da0435f9303457feaa9102bff8ef9dbfd708e13afceeef2') + version('5.8.5', sha256='f37d87c70a65a770bb2d013c4d1d9aa5d90c0f52b9430d56bab578fd221e8e41') + version('5.8.4', sha256='75a3b44bd4509bec47806fb5ad4baaa6334a2aa8f51cf2f7195d4f08bd353ca2') + version('5.8.3', sha256='e9b5e72bab65adef9ef78a5e0ee526a6ee673bed142f5e3617c0a27029b84275') + version('5.8.2', sha256='c54b4153b43453426510fd8aa322de66a80a33137ad251124345309615f6a3a6') + version('5.8.1', sha256='e113818541e976be69a9524007c2db19059da9af7abfebf7c53d86eafa2109c9') + version('5.8.0', sha256='8381ea5f785dde95772a2b6d5890f1cb72012e223e6861823fd81b09eedaa7a3') + version('5.7.1', sha256='40529629351598317fbf7b5905661e51b23778019d50451eee78d7b1118e2559') + + variant('python2', default=False, + description="Enable Python2 extension") + + depends_on('python@2.3:2.7.99', when='+python2') + + def setup_build_environment(self, env): + env.append_flags('FFLAGS', '-std=legacy') + if self.spec.satisfies('+python2'): + env.append_flags( + 'PYTHON', + join_path(self.spec['python'].prefix.bin, 'python')) + + def configure_args(self): + args = [] + if self.spec.satisfies('-python2'): + args.append('--disable-pyext') + return args diff --git a/var/spack/repos/builtin/packages/libcroco/package.py b/var/spack/repos/builtin/packages/libcroco/package.py index ef89961555..254d7973b7 100644 --- a/var/spack/repos/builtin/packages/libcroco/package.py +++ b/var/spack/repos/builtin/packages/libcroco/package.py @@ -16,3 +16,4 @@ class Libcroco(AutotoolsPackage): depends_on('glib') depends_on('libxml2') + depends_on('pkgconfig', type='build') diff --git a/var/spack/repos/builtin/packages/libelf/package.py b/var/spack/repos/builtin/packages/libelf/package.py index 9054753c48..2f59c61dfa 100644 --- a/var/spack/repos/builtin/packages/libelf/package.py +++ b/var/spack/repos/builtin/packages/libelf/package.py @@ -19,7 +19,11 @@ class Libelf(AutotoolsPackage): # homepage = "http://www.mr511.de/software/english.html" homepage = "https://directory.fsf.org/wiki/Libelf" - url = "https://fossies.org/linux/misc/old/libelf-0.8.13.tar.gz" + + urls = [ + 'https://fossies.org/linux/misc/old/libelf-0.8.13.tar.gz', + 'https://ftp.osuosl.org/pub/blfs/conglomeration/libelf/libelf-0.8.13.tar.gz' + ] version('0.8.13', sha256='591a9b4ec81c1f2042a97aa60564e0cb79d041c52faa7416acb38bc95bd2c76d') diff --git a/var/spack/repos/builtin/packages/libgd/package.py b/var/spack/repos/builtin/packages/libgd/package.py index d4907ae3e1..697ccd22a4 100644 --- a/var/spack/repos/builtin/packages/libgd/package.py +++ b/var/spack/repos/builtin/packages/libgd/package.py @@ -36,3 +36,12 @@ class Libgd(AutotoolsPackage): depends_on('jpeg') depends_on('libtiff') depends_on('fontconfig') + + def patch(self): + p = self.spec['jpeg'].libs.search_flags + filter_file( + 'LIBJPEG_LIBS " -ljpeg"', + 'LIBJPEG_LIBS "{0} -ljpeg"'.format(p), + 'configure', + string=True + ) diff --git a/var/spack/repos/builtin/packages/libglvnd/package.py b/var/spack/repos/builtin/packages/libglvnd/package.py index 84f5440f27..5834c7b9b6 100644 --- a/var/spack/repos/builtin/packages/libglvnd/package.py +++ b/var/spack/repos/builtin/packages/libglvnd/package.py @@ -26,7 +26,6 @@ class Libglvnd(AutotoolsPackage): version('1.1.1', sha256='71918ed1261e4eece18c0b74b50dc62c0237b8d526e83277ef078554544720b9') conflicts('platform=darwin', msg='libglvnd is linux specific') - conflicts('platform=bgq', msg='libglvnd is linux specific') depends_on('libxext') depends_on('libx11') diff --git a/var/spack/repos/builtin/packages/libhugetlbfs/package.py b/var/spack/repos/builtin/packages/libhugetlbfs/package.py new file mode 100644 index 0000000000..9a9ac380aa --- /dev/null +++ b/var/spack/repos/builtin/packages/libhugetlbfs/package.py @@ -0,0 +1,19 @@ +# 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 Libhugetlbfs(MakefilePackage): + """libhugetlbfs is a library which provides easy access + to huge pages of memory.""" + + homepage = "https://github.com/libhugetlbfs/libhugetlbfs" + url = "https://github.com/libhugetlbfs/libhugetlbfs/releases/download/2.22/libhugetlbfs-2.22.tar.gz" + + version('2.22', sha256='94dca9ea2c527cd77bf28904094fe4708865a85122d416bfccc8f4b73b9a6785') + + def install(self, spec, prefix): + make('install', "PREFIX=%s" % prefix) diff --git a/var/spack/repos/builtin/packages/libimagequant/package.py b/var/spack/repos/builtin/packages/libimagequant/package.py new file mode 100644 index 0000000000..1e8f7752e3 --- /dev/null +++ b/var/spack/repos/builtin/packages/libimagequant/package.py @@ -0,0 +1,25 @@ +# 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) + + +class Libimagequant(Package): + """Small, portable C library for high-quality conversion of RGBA images to + 8-bit indexed-color (palette) images.""" + + homepage = "https://pngquant.org/lib/" + url = "https://github.com/ImageOptim/libimagequant/archive/2.12.6.tar.gz" + + version('2.12.6', sha256='b34964512c0dbe550c5f1b394c246c42a988cd73b71a76c5838aa2b4a96e43a0') + + phases = ['configure', 'build', 'install'] + + def configure(self, spec, prefix): + configure('--prefix=' + prefix) + + def build(self, spec, prefix): + make() + + def install(self, spec, prefix): + make('install') diff --git a/var/spack/repos/builtin/packages/libint/package.py b/var/spack/repos/builtin/packages/libint/package.py index 27fdc3b41d..38cd2f677c 100644 --- a/var/spack/repos/builtin/packages/libint/package.py +++ b/var/spack/repos/builtin/packages/libint/package.py @@ -13,6 +13,10 @@ TUNE_VARIANTS = ( 'cp2k-lmax-5', 'cp2k-lmax-6', 'cp2k-lmax-7', + 'molgw-lmax-4', + 'molgw-lmax-5', + 'molgw-lmax-6', + 'molgw-lmax-7', ) @@ -136,6 +140,25 @@ class Libint(AutotoolsPackage): '--enable-generic-code', '--disable-unrolling', ] + if tune_value.startswith('molgw'): + lmax = int(tune_value.split('-lmax-')[1]) + config_args += [ + '--enable-1body=1', + '--enable-eri=0', + '--enable-eri2=0', + '--enable-eri3=0', + '--with-multipole-max-order=0', + '--with-max-am={0}'.format(lmax), + '--with-eri-max-am={0}'.format(lmax), + '--with-eri2-max-am={0}'.format(lmax), + '--with-eri3-max-am={0}'.format(lmax), + '--with-opt-am=2', + '--enable-contracted-ints', + # keep code-size at an acceptable limit, + # cf. https://github.com/evaleev/libint/wiki#program-specific-notes: + '--enable-generic-code', + '--disable-unrolling', + ] return config_args diff --git a/var/spack/repos/builtin/packages/libmodbus/package.py b/var/spack/repos/builtin/packages/libmodbus/package.py new file mode 100644 index 0000000000..bb58528993 --- /dev/null +++ b/var/spack/repos/builtin/packages/libmodbus/package.py @@ -0,0 +1,26 @@ +# 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 Libmodbus(AutotoolsPackage): + """libmodbus is a free software library to send/receive data + according to the Modbus protocol.This library is written in C + and supports RTU (serial) and TCP (Ethernet) communications.""" + + homepage = "https://libmodbus.org/" + url = "https://libmodbus.org/releases/libmodbus-3.0.8.tar.gz" + + version('3.1.6', sha256='d7d9fa94a16edb094e5fdf5d87ae17a0dc3f3e3d687fead81835d9572cf87c16') + version('3.1.5', sha256='f7a9538f23a8786b1ee62a4b75879b5c0e194e728350de1b741ce7d595970f06') + version('3.1.4', sha256='c8c862b0e9a7ba699a49bc98f62bdffdfafd53a5716c0e162696b4bf108d3637') + version('3.1.3', sha256='9e02d79d715522e03b61c313c7278fcf80860816718587819318b8ad9c3fd0ce') + version('3.1.2', sha256='661e14f9dc904f3f1b034464ddaa5fd4b8472f8f5d1ea10a1148af85591b7ee9') + version('3.1.1', sha256='76d93aff749d6029f81dcf1fb3fd6abe10c9b48d376f3a03a4f41c5197c95c99') + version('3.0.8', sha256='022f0691d920b8aee3ee49d7af0f69b7ef80fc3c849a8e0281d5bc27db7a24ea') + version('3.0.7', sha256='6c26850cd5dedcf5dad40977ac7f2ee990a3667f6959a1e05e22959bdf537961') + version('3.0.6', sha256='046d63f10f755e2160dc56ef681e5f5ad3862a57c1955fd82e0ce036b69471b6') + version('3.0.5', sha256='19aad5d55fa315602d6e836a858a3802f1608f9d824afba05fa12a58a1b1e656') diff --git a/var/spack/repos/builtin/packages/libmonitor/package.py b/var/spack/repos/builtin/packages/libmonitor/package.py index 5a199ee333..e396d0c80b 100644 --- a/var/spack/repos/builtin/packages/libmonitor/package.py +++ b/var/spack/repos/builtin/packages/libmonitor/package.py @@ -24,9 +24,6 @@ class Libmonitor(AutotoolsPackage): variant('hpctoolkit', default=False, description='Configure for HPCToolkit') - variant('bgq', default=False, - description='Configure for Blue Gene/Q') - # Configure for Krell and OpenSpeedshop. variant('krellpatch', default=False, description="Build with openspeedshop based patch.") @@ -58,21 +55,4 @@ class Libmonitor(AutotoolsPackage): if '+hpctoolkit' in self.spec: args.append('--enable-client-signals=%s' % self.signals) - # TODO: Spack has trouble finding cross-compilers; the +bgq variant - # manually specifies the appropriate compiler to build for BGQ (by - # setting that here, Spack's choice of CC is overridden). - # If the user manually defines an entry in compilers.yaml, the bgq - # variant should not be required if the user specifies the bgq - # architecture for the libmonitor package. See #8860 - # TODO: users want to build this for the backend and dependents for the - # frontend. Spack ought to make that easy by finding the appropriate - # compiler for each if the root and libmonitor are designated to build - # on the frontend and backend, respectively. As of now though, there - # is an issue with compiler concretization such that spack will attempt - # to assign the compiler chosen for libmonitor to the root (unless the - # user specifies the compiler for each in addition to the arch). - # See #8859 - if '+bgq' in self.spec: - args.append('CC=powerpc64-bgq-linux-gcc') - return args diff --git a/var/spack/repos/builtin/packages/libpciaccess/package.py b/var/spack/repos/builtin/packages/libpciaccess/package.py index 4f1337db76..b79e5e9ee7 100644 --- a/var/spack/repos/builtin/packages/libpciaccess/package.py +++ b/var/spack/repos/builtin/packages/libpciaccess/package.py @@ -12,6 +12,7 @@ class Libpciaccess(AutotoolsPackage, XorgPackage): homepage = "http://cgit.freedesktop.org/xorg/lib/libpciaccess/" xorg_mirror_path = "lib/libpciaccess-0.13.5.tar.gz" + version('0.16', sha256='84413553994aef0070cf420050aa5c0a51b1956b404920e21b81e96db6a61a27') version('0.13.5', sha256='fe26ec788732b4ef60b550f2d3fa51c605d27f646e18ecec878f061807a3526e') version('0.13.4', sha256='74d92bda448e6fdb64fee4e0091255f48d625d07146a121653022ed3a0ca1f2f') diff --git a/var/spack/repos/builtin/packages/librsb/package.py b/var/spack/repos/builtin/packages/librsb/package.py index 2a292b9479..58f74af62f 100644 --- a/var/spack/repos/builtin/packages/librsb/package.py +++ b/var/spack/repos/builtin/packages/librsb/package.py @@ -11,9 +11,10 @@ class Librsb(AutotoolsPackage): library for the Recursive Sparse Blocks format""" homepage = "http://librsb.sourceforge.net/" - url = "http://download.sourceforge.net/librsb/librsb-1.2.0.8.tar.gz" + url = "http://download.sourceforge.net/librsb/librsb-1.2.0.9.tar.gz" list_url = "https://sourceforge.net/projects/librsb/files/" + version('1.2.0.9', 'f421f5d572461601120933e3c1cfee2ca69e6ecc92cbb11baa4e86bdedd3d9fa') version('1.2.0.8', '8bebd19a1866d80ade13eabfdd0f07ae7e8a485c0b975b5d15f531ac204d80cb') depends_on('zlib') diff --git a/var/spack/repos/builtin/packages/libtirpc/package.py b/var/spack/repos/builtin/packages/libtirpc/package.py index f38e8fa8d6..4b6647a50f 100644 --- a/var/spack/repos/builtin/packages/libtirpc/package.py +++ b/var/spack/repos/builtin/packages/libtirpc/package.py @@ -16,11 +16,10 @@ class Libtirpc(AutotoolsPackage): version('1.2.6', sha256='4278e9a5181d5af9cd7885322fdecebc444f9a3da87c526e7d47f7a12a37d1cc') version('1.1.4', sha256='2ca529f02292e10c158562295a1ffd95d2ce8af97820e3534fe1b0e3aec7561d') + depends_on('krb5') + provides('rpc') # FIXME: build error on macOS # auth_none.c:81:9: error: unknown type name 'mutex_t' conflicts('platform=darwin', msg='Does not build on macOS') - - def configure_args(self): - return ['--disable-gssapi'] diff --git a/var/spack/repos/builtin/packages/libtool/package.py b/var/spack/repos/builtin/packages/libtool/package.py index decc4b114e..60a922c881 100644 --- a/var/spack/repos/builtin/packages/libtool/package.py +++ b/var/spack/repos/builtin/packages/libtool/package.py @@ -3,7 +3,8 @@ # # SPDX-License-Identifier: (Apache-2.0 OR MIT) -from spack import * +import os +import re class Libtool(AutotoolsPackage, GNUMirrorPackage): @@ -30,6 +31,14 @@ class Libtool(AutotoolsPackage, GNUMirrorPackage): build_directory = 'spack-build' + executables = ['^g?libtool(ize)?$'] + + @classmethod + def determine_version(cls, exe): + output = Executable(exe)('--version', output=str, error=os.devnull) + match = re.search(r'\(GNU libtool\)\s+(\S+)', output) + return match.group(1) if match else None + @when('@2.4.2,develop') def autoreconf(self, spec, prefix): Executable('./bootstrap')() diff --git a/var/spack/repos/builtin/packages/libtree/package.py b/var/spack/repos/builtin/packages/libtree/package.py index 10ca8db31d..e44a4a8661 100644 --- a/var/spack/repos/builtin/packages/libtree/package.py +++ b/var/spack/repos/builtin/packages/libtree/package.py @@ -15,9 +15,9 @@ class Libtree(CMakePackage): maintainers = ['haampie'] - version('1.2.0', sha256='4316a52aed7c8d2f7d2736c935bbda952204be92e56948110a143283764c427c') - version('1.1.4', sha256='cfafb24c8f5e0d356c82777c338d58730ca6f3cb76dfe8a6857ee3ad65bf8be7') - version('1.1.3', sha256='7baf5aaecd3a076bf1e7a1aa86979e7b841ab3f678ca8ac0e2a22bbbccf0dd06') + version('1.2.0', sha256='3e74655f22b1dcc19e8a1b9e7796b8ad44bc37f29e9a99134119e8521e28be97') + version('1.1.4', sha256='38648f67c8fa72c3a4a3af2bb254b5fd6989c0f1362387ab298176db5cbbcc4e') + version('1.1.3', sha256='4c681d7b67ef3d62f95450fb7eb84e33ff10a3b9db1f7e195b965b2c3c58226b') version('1.1.2', sha256='31641c6bf6c2980ffa7b4c57392460434f97ba66fe51fe6346867430b33a0374') version('1.1.1', sha256='3e8543145a40a94e9e2ce9fed003d2bf68294e1fce9607028a286bc132e17dc4') version('1.1.0', sha256='6cf36fb9a4c8c3af01855527d4931110732bb2d1c19be9334c689f1fd1c78536') diff --git a/var/spack/repos/builtin/packages/libunwind/package.py b/var/spack/repos/builtin/packages/libunwind/package.py index dcabc86ec5..69f34f7504 100644 --- a/var/spack/repos/builtin/packages/libunwind/package.py +++ b/var/spack/repos/builtin/packages/libunwind/package.py @@ -25,6 +25,9 @@ class Libunwind(AutotoolsPackage): version('1.2.1', sha256='3f3ecb90e28cbe53fba7a4a27ccce7aad188d3210bb1964a923a731a27a75acb') version('1.1', sha256='9dfe0fcae2a866de9d3942c66995e4b460230446887dbdab302d41a8aee8d09a') + variant('pic', default=False, + description='Compile with position independent code.') + variant('xz', default=False, description='Support xz (lzma) compressed symbol tables.') @@ -48,12 +51,15 @@ class Libunwind(AutotoolsPackage): provides('unwind') def flag_handler(self, name, flags): - wrapper_flags = None + wrapper_flags = [] if name == 'cflags': # https://github.com/libunwind/libunwind/pull/166 if self.spec.satisfies('@:1.4 %gcc@10:'): - wrapper_flags = ['-fcommon'] + wrapper_flags.append('-fcommon') + + if '+pic' in self.spec: + wrapper_flags.append(self.compiler.cc_pic_flag) return (wrapper_flags, None, flags) diff --git a/var/spack/repos/builtin/packages/libxc/0001-Bugfix-avoid-implicit-pointer-cast-to-make-libxc-com.patch b/var/spack/repos/builtin/packages/libxc/0001-Bugfix-avoid-implicit-pointer-cast-to-make-libxc-com.patch new file mode 100644 index 0000000000..366f680168 --- /dev/null +++ b/var/spack/repos/builtin/packages/libxc/0001-Bugfix-avoid-implicit-pointer-cast-to-make-libxc-com.patch @@ -0,0 +1,26 @@ +From 205a08a30ee0d057d173f9eaa6fc6414f6960c22 Mon Sep 17 00:00:00 2001 +From: Xavier Andrade <xavier@tddft.org> +Date: Wed, 27 May 2020 15:42:32 -0700 +Subject: [PATCH] Bugfix: avoid implicit pointer cast to make libxc compile + with a C++ compiler. + +--- + src/functionals.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/functionals.c b/src/functionals.c +index 3f668292..293f7f9b 100644 +--- a/src/functionals.c ++++ b/src/functionals.c +@@ -324,7 +324,7 @@ xc_func_set_ext_params_name(xc_func_type *p, const char *name, double par) + + assert(p != NULL && p->info->ext_params.n > 0); + +- ext_params = libxc_malloc(p->info->ext_params.n*sizeof(double)); ++ ext_params = (double *) libxc_malloc(p->info->ext_params.n*sizeof(double)); + for(ii=0; ii<p->info->ext_params.n; ii++){ + if(strcmp(p->info->ext_params.names[ii], name) == 0) + ext_params[ii] = par; +-- +2.25.1 + diff --git a/var/spack/repos/builtin/packages/libxc/0002-Mark-xc_erfcx-a-GPU_FUNCTION.patch b/var/spack/repos/builtin/packages/libxc/0002-Mark-xc_erfcx-a-GPU_FUNCTION.patch new file mode 100644 index 0000000000..a4e4f104a3 --- /dev/null +++ b/var/spack/repos/builtin/packages/libxc/0002-Mark-xc_erfcx-a-GPU_FUNCTION.patch @@ -0,0 +1,33 @@ +From 11b90a0a477925f19dfeb7e1f672058f25d83387 Mon Sep 17 00:00:00 2001 +From: Harmen Stoppels <harmenstoppels@gmail.com> +Date: Fri, 31 Jul 2020 13:54:39 +0200 +Subject: [PATCH] Mark xc_erfcx a GPU_FUNCTION + +--- + src/faddeeva.c | 3 +++ + 1 file changed, 3 insertions(+) + +diff --git a/src/faddeeva.c b/src/faddeeva.c +index ceec4736..03484713 100644 +--- a/src/faddeeva.c ++++ b/src/faddeeva.c +@@ -29,6 +29,8 @@ + + #include "config.h" + ++#include "util.h" ++ + #include <math.h> + + /* erfcx(x) = exp(x^2) erfc(x) function, for real x, written by +@@ -477,6 +479,7 @@ return 0.97771701335885035464e0 + (0.22000938572830479551e-1 + (0.27951610702682 + return 1.0; + } + ++GPU_FUNCTION + double xc_erfcx(double x) + { + if (x >= 0) { +-- +2.25.1 + diff --git a/var/spack/repos/builtin/packages/libxc/package.py b/var/spack/repos/builtin/packages/libxc/package.py index 6803488e48..61597ebaa0 100644 --- a/var/spack/repos/builtin/packages/libxc/package.py +++ b/var/spack/repos/builtin/packages/libxc/package.py @@ -6,19 +6,29 @@ from spack import * -class Libxc(AutotoolsPackage): +class Libxc(AutotoolsPackage, CudaPackage): """Libxc is a library of exchange-correlation functionals for density-functional theory.""" 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.0.0', sha256='1cdc57930f7b57da4eb9b2c55a50ba1c2c385936ddaf5582fee830994461a892') + version('4.3.4', sha256='a8ee37ddc5079339854bd313272856c9d41a27802472ee9ae44b58ee9a298337') version('4.3.2', sha256='bc159aea2537521998c7fb1199789e1be71e04c4b7758d58282622e347603a6f') version('4.2.3', sha256='02e49e9ba7d21d18df17e9e57eae861e6ce05e65e966e1e832475aa09e344256') version('3.0.0', sha256='5542b99042c09b2925f2e3700d769cda4fb411b476d446c833ea28c6bfa8792a') version('2.2.2', sha256='6ca1d0bb5fdc341d59960707bc67f23ad54de8a6018e19e02eee2b16ea7cc642') version('2.2.1', sha256='ade61c1fa4ed238edd56408fd8ee6c2e305a3d5753e160017e2a71817c98fd00') + variant('shared', default=True, description='Build shared libraries') + + conflicts('+shared +cuda', msg='Only ~shared supported with +cuda') + conflicts('+cuda', when='@:4', msg='CUDA support only in libxc 5.0.0 and above') + + patch('0001-Bugfix-avoid-implicit-pointer-cast-to-make-libxc-com.patch', when='@5.0.0') + patch('0002-Mark-xc_erfcx-a-GPU_FUNCTION.patch', when='@5.0.0') + @property def libs(self): """Libxc can be queried for the following parameters: @@ -35,7 +45,8 @@ class Libxc(AutotoolsPackage): # Libxc installs both shared and static libraries. # If a client ask for static explicitly then return # the static libraries - shared = ('static' not in query_parameters) + shared = (self.spec.variants['shared'].value and + 'static' not in query_parameters) # Libxc has a fortran90 interface: give clients the # possibility to query for it @@ -81,8 +92,24 @@ class Libxc(AutotoolsPackage): env.append_flags('CFLAGS', optflags) env.append_flags('FCFLAGS', optflags) + if '+cuda' in self.spec: + nvcc = self.spec['cuda'].prefix.bin.nvcc + env.set('CCLD', '{0} -ccbin {1}'.format(nvcc, spack_cc)) + env.set('CC', '{0} -x cu -ccbin {1}'.format(nvcc, spack_cc)) + + cuda_arch = self.spec.variants['cuda_arch'].value[0] + + if cuda_arch != 'none': + env.append_flags('CFLAGS', '-arch=sm_{0}'.format(cuda_arch)) + def configure_args(self): - args = ['--enable-shared'] + spec = self.spec + + args = [ + '--enable-shared' if '+shared' in spec else '--disable-shared', + '--enable-cuda' if '+cuda' in spec else '--disable-cuda' + ] + return args def check(self): diff --git a/var/spack/repos/builtin/packages/libxscrnsaver/package.py b/var/spack/repos/builtin/packages/libxscrnsaver/package.py index f00dad3f91..077e74e9a7 100644 --- a/var/spack/repos/builtin/packages/libxscrnsaver/package.py +++ b/var/spack/repos/builtin/packages/libxscrnsaver/package.py @@ -18,6 +18,6 @@ class Libxscrnsaver(AutotoolsPackage, XorgPackage): depends_on('libxext') depends_on('xextproto', type='build') - depends_on('scrnsaverproto@1.2:', type='build') + depends_on('scrnsaverproto@1.2:') depends_on('pkgconfig', type='build') depends_on('util-macros', type='build') diff --git a/var/spack/repos/builtin/packages/libyogrt/package.py b/var/spack/repos/builtin/packages/libyogrt/package.py index 3590193516..a1ed17b3f1 100644 --- a/var/spack/repos/builtin/packages/libyogrt/package.py +++ b/var/spack/repos/builtin/packages/libyogrt/package.py @@ -38,6 +38,9 @@ class Libyogrt(AutotoolsPackage): conflicts('scheduler=lsf', when='@:1.22') + variant('static', default='False', + description="build static library") + def url_for_version(self, version): if version < Version(1.21): return "https://github.com/LLNL/libyogrt/archive/%s.tar.gz" % version @@ -51,4 +54,7 @@ class Libyogrt(AutotoolsPackage): if sched != "system": args.append('--with-%s=%s' % (sched, self.spec[sched].prefix)) + if '+static' in self.spec: + args.append('--enable-static=yes') + return args diff --git a/var/spack/repos/builtin/packages/ligra/package.py b/var/spack/repos/builtin/packages/ligra/package.py new file mode 100644 index 0000000000..8df4bbabae --- /dev/null +++ b/var/spack/repos/builtin/packages/ligra/package.py @@ -0,0 +1,44 @@ +# 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 Ligra(MakefilePackage): + """A Lightweight Graph Processing Framework for Shared Memory""" + + homepage = "http://jshun.github.io/ligra/" + url = "https://github.com/jshun/ligra/archive/v.1.5.tar.gz" + + version('1.5', sha256='74113a5a3c19a0e319a5b9ebefc8a67c5d18d4d2a9670363092a966f4163f6b7') + version('1.4', sha256='bb70a1428c71cf2f7e1512cdedcd8330c754f5a2c8309ab9d9666591cff6a4e1') + version('1.3', sha256='df848038734bb9724d6c9bd95595c91eb6b07027642be93bff161f020ff257e4') + version('1.2', sha256='ec8778b0762772fc78437243ccaee72066d67a310bc352d6665dd2de520c04cc') + version('1.1', sha256='a7311b96fabc286a8f1250d8a6e2d1b1e4545c720fa6bb4acf7ed31211fcc99a') + version('1.0', sha256='fb39ae0a3eddb26f37b8cc0a543648575a50bcc488cecd4a5f1beaaf2458736c') + + variant('openmp', default=True, description="Build with OpenMP") + variant('mkl', default=False, description="Build with Intel MKL") + # TODO: Add cilk variant when spack has a cilk plus package created. + + depends_on('mkl', when='+mkl') + + def setup_build_environment(self, env): + if '+openmp' in self.spec: + env.set('OPENMP', '1') + # when +mkl, MKLROOT will be defined by intel-mkl package, + # triggering a build with mkl support + + def setup_run_environment(self, env): + env.prepend_path('PATH', self.prefix.apps) + env.prepend_path('PATH', self.prefix.utils) + + def build(self, spec, prefix): + make('-C', 'apps') + make('-C', 'utils') + + def install(self, spec, prefix): + install_tree('.', prefix) + install_tree('ligra', prefix.include) diff --git a/var/spack/repos/builtin/packages/likwid/package.py b/var/spack/repos/builtin/packages/likwid/package.py index a104b67003..0bbf69a89b 100644 --- a/var/spack/repos/builtin/packages/likwid/package.py +++ b/var/spack/repos/builtin/packages/likwid/package.py @@ -32,6 +32,8 @@ class Likwid(Package): patch('https://github.com/RRZE-HPC/likwid/commit/e0332ace8fe8ca7dcd4b4477a25e37944f173a5c.patch', sha256='c3b8f939a46b425665577ce764d4fba080a23cab5999c53db71655fd54d7e0b1', when='@5.0.1') patch('https://github.com/RRZE-HPC/likwid/commit/d2d0ef333b5e0997d7c80fc6ac1a473b5e47d084.patch', sha256='636cbf40669261fdb36379d67253be2b731cfa7b6d610d232767d72fbdf08bc0', when='@4.3.4') + variant('fortran', default=True, description='with fortran interface') + # NOTE: There is no way to use an externally provided hwloc with Likwid. # The reason is that the internal hwloc is patched to contain extra # functionality and functions are prefixed with "likwid_". @@ -96,6 +98,20 @@ class Likwid(Package): 'BUILDDAEMON = false', 'config.mk') + if '+fortran' in self.spec: + filter_file('^FORTRAN_INTERFACE .*', + 'FORTRAN_INTERFACE = true', + 'config.mk') + if self.compiler.name == 'gcc': + filter_file('ifort', 'gfortran', + join_path('make', 'include_GCC.mk')) + filter_file('-module', '-I', join_path('make', + 'include_GCC.mk')) + else: + filter_file('^FORTRAN_INTERFACE .*', + 'FORTRAN_INTERFACE = false', + 'config.mk') + if spec.satisfies('^lua'): filter_file('^#LUA_INCLUDE_DIR.*', 'LUA_INCLUDE_DIR = {0}'.format( diff --git a/var/spack/repos/builtin/packages/llvm-amdgpu/fix-system-zlib-ncurses.patch b/var/spack/repos/builtin/packages/llvm-amdgpu/fix-system-zlib-ncurses.patch new file mode 100644 index 0000000000..64d429a7e9 --- /dev/null +++ b/var/spack/repos/builtin/packages/llvm-amdgpu/fix-system-zlib-ncurses.patch @@ -0,0 +1,60 @@ +From 0f5e8e4368199ab993470dc4e7df5d91b806c557 Mon Sep 17 00:00:00 2001 +From: Harmen Stoppels <harmenstoppels@gmail.com> +Date: Tue, 11 Aug 2020 15:06:24 +0200 +Subject: [PATCH] Use find_library for zlib and ncurses + +find_library makes it easier to use a non-system version of zlib and +ncurses, since it respects *_ROOT and CMAKE_PREFIX_PATH. +--- + llvm/cmake/config-ix.cmake | 28 ++++++++++------------------ + 1 file changed, 10 insertions(+), 18 deletions(-) + +diff --git a/llvm/cmake/config-ix.cmake b/llvm/cmake/config-ix.cmake +index 612ce5bdbcb..e748e5ef8c1 100644 +--- a/llvm/cmake/config-ix.cmake ++++ b/llvm/cmake/config-ix.cmake +@@ -120,15 +120,11 @@ endif() + if(NOT LLVM_USE_SANITIZER MATCHES "Memory.*") + set(HAVE_LIBZ 0) + if(LLVM_ENABLE_ZLIB) +- foreach(library z zlib_static zlib) +- string(TOUPPER ${library} library_suffix) +- check_library_exists(${library} compress2 "" HAVE_LIBZ_${library_suffix}) +- if(HAVE_LIBZ_${library_suffix}) +- set(HAVE_LIBZ 1) +- set(ZLIB_LIBRARIES "${library}") +- break() +- endif() +- endforeach() ++ find_library(FIND_ZLIB NAMES z zlib_static zlib) ++ if(FIND_ZLIB) ++ set(HAVE_LIBZ 1) ++ set(ZLIB_LIBRARIES "${FIND_ZLIB}") ++ endif() + endif() + + # Don't look for these libraries on Windows. +@@ -141,15 +137,11 @@ if(NOT LLVM_USE_SANITIZER MATCHES "Memory.*") + endif() + if(LLVM_ENABLE_TERMINFO) + set(HAVE_TERMINFO 0) +- foreach(library terminfo tinfo curses ncurses ncursesw) +- string(TOUPPER ${library} library_suffix) +- check_library_exists(${library} setupterm "" HAVE_TERMINFO_${library_suffix}) +- if(HAVE_TERMINFO_${library_suffix}) +- set(HAVE_TERMINFO 1) +- set(TERMINFO_LIBS "${library}") +- break() +- endif() +- endforeach() ++ find_library(FIND_TERMINFO NAMES terminfo tinfo curses ncurses ncursesw) ++ if(FIND_TERMINFO) ++ set(HAVE_TERMINFO 1) ++ set(TERMINFO_LIBS "${FIND_TERMINFO}") ++ endif() + else() + set(HAVE_TERMINFO 0) + endif() +-- +2.25.1 + diff --git a/var/spack/repos/builtin/packages/llvm-amdgpu/package.py b/var/spack/repos/builtin/packages/llvm-amdgpu/package.py new file mode 100644 index 0000000000..acd384441e --- /dev/null +++ b/var/spack/repos/builtin/packages/llvm-amdgpu/package.py @@ -0,0 +1,45 @@ +# 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 LlvmAmdgpu(CMakePackage): + """Toolkit for the construction of highly optimized compilers, + optimizers, and run-time environments.""" + + homepage = "https://github.com/RadeonOpenCompute/llvm-project" + url = "https://github.com/RadeonOpenCompute/llvm-project/archive/rocm-3.5.0.tar.gz" + + maintainers = ['srekolam', 'arjun-raj-kuppala'] + + version('3.5.0', sha256='4878fa85473b24d88edcc89938441edc85d2e8a785e567b7bd7ce274ecc2fd9c') + + variant('build_type', default='Release', values=("Release", "Debug"), description='CMake build type') + + depends_on('cmake@3:', type='build') + depends_on('python', type='build') + depends_on('z3', type='link') + depends_on('zlib', type='link') + depends_on('ncurses+termlib', type='link') + + patch('fix-system-zlib-ncurses.patch') + + root_cmakelists_dir = 'llvm' + + install_targets = ['clang-tidy', 'install'] + + def cmake_args(self): + args = [ + '-DLLVM_ENABLE_PROJECTS=clang;lld;clang-tools-extra;compiler-rt', + '-DLLVM_ENABLE_ASSERTIONS=1' + ] + + if self.compiler.name == "gcc": + gcc_prefix = ancestor(self.compiler.cc, 2) + args.append("-DGCC_INSTALL_PREFIX=" + gcc_prefix) + + return args diff --git a/var/spack/repos/builtin/packages/llvm-flang/package.py b/var/spack/repos/builtin/packages/llvm-flang/package.py index 99948fd76f..d5b9370169 100644 --- a/var/spack/repos/builtin/packages/llvm-flang/package.py +++ b/var/spack/repos/builtin/packages/llvm-flang/package.py @@ -195,6 +195,11 @@ class LlvmFlang(CMakePackage, CudaPackage): args.append('-DLIBOMP_FORTRAN_MODULES=ON') args.append('-DLIBOMP_ENABLE_SHARED=TRUE') + # Make sure llvm-flang can find GCC's libstdc++ + if self.compiler.name == "gcc": + gcc_prefix = ancestor(self.compiler.cc, 2) + args.append('-DGCC_INSTALL_PREFIX=' + gcc_prefix) + # used by libomptarget for NVidia gpu if '+cuda' in spec: args.append('-DOPENMP_ENABLE_LIBOMPTARGET=ON') diff --git a/var/spack/repos/builtin/packages/llvm/package.py b/var/spack/repos/builtin/packages/llvm/package.py index 53ce3e12c2..95ffcc51fd 100644 --- a/var/spack/repos/builtin/packages/llvm/package.py +++ b/var/spack/repos/builtin/packages/llvm/package.py @@ -2,10 +2,13 @@ # Spack Project Developers. See the top-level COPYRIGHT file for details. # # SPDX-License-Identifier: (Apache-2.0 OR MIT) - -from spack import * +import os.path +import re import sys +import llnl.util.tty as tty +import spack.util.executable + class Llvm(CMakePackage, CudaPackage): """The LLVM Project is a collection of modular and reusable compiler and @@ -25,6 +28,7 @@ class Llvm(CMakePackage, CudaPackage): # fmt: off version('master', branch='master') + version('10.0.1', sha256='c7ccb735c37b4ec470f66a6c35fbae4f029c0f88038f6977180b1a8ddc255637') version('10.0.0', sha256='b81c96d2f8f40dc61b14a167513d87c0d813aae0251e06e11ae8a4384ca15451') version('9.0.1', sha256='be7b034641a5fda51ffca7f5d840b1a768737779f75f7c4fd18fe2d37820289a') version('9.0.0', sha256='7807fac25330e24e9955ca46cd855dd34bbc9cc4fdba8322366206654d1036f2') @@ -135,9 +139,6 @@ class Llvm(CMakePackage, CudaPackage): depends_on("python", when="@5:+python") depends_on("z3", when="@9:") - # CUDA dependency - depends_on("cuda", when="+cuda") - # openmp dependencies depends_on("perl-data-dumper", type=("build")) depends_on("hwloc") @@ -159,7 +160,6 @@ class Llvm(CMakePackage, CudaPackage): depends_on("gmp", when="@:3.6.999 +polly") depends_on("isl", when="@:3.6.999 +polly") - conflicts("+clang_extra", when="~clang") conflicts("+lldb", when="~clang") conflicts("+libcxx", when="~clang") conflicts("+internal_unwind", when="~clang") @@ -180,7 +180,6 @@ class Llvm(CMakePackage, CudaPackage): # code signing is only necessary on macOS", conflicts('+code_signing', when='platform=linux') - conflicts('+code_signing', when='platform=bgq') conflicts('+code_signing', when='platform=cray') conflicts( @@ -208,6 +207,108 @@ class Llvm(CMakePackage, CudaPackage): # https://bugs.llvm.org/show_bug.cgi?id=39696 patch("thread-p9.patch", when="@develop+libcxx") + # The functions and attributes below implement external package + # detection for LLVM. See: + # + # https://spack.readthedocs.io/en/latest/packaging_guide.html#making-a-package-discoverable-with-spack-external-find + executables = ['clang', 'ld.lld', 'lldb'] + + @classmethod + def filter_detected_exes(cls, prefix, exes_in_prefix): + result = [] + for exe in exes_in_prefix: + # Executables like lldb-vscode-X are daemon listening + # on some port and would hang Spack during detection. + # clang-cl and clang-cpp are dev tools that we don't + # need to test + if any(x in exe for x in ('vscode', 'cpp', '-cl', '-gpu')): + continue + result.append(exe) + return result + + @classmethod + def determine_version(cls, exe): + version_regex = re.compile( + # Normal clang compiler versions are left as-is + r'clang version ([^ )]+)-svn[~.\w\d-]*|' + # Don't include hyphenated patch numbers in the version + # (see https://github.com/spack/spack/pull/14365 for details) + r'clang version ([^ )]+?)-[~.\w\d-]*|' + r'clang version ([^ )]+)|' + # LLDB + r'lldb version ([^ )\n]+)|' + # LLD + r'LLD ([^ )\n]+) \(compatible with GNU linkers\)' + ) + try: + compiler = Executable(exe) + output = compiler('--version', output=str, error=str) + if 'Apple' in output: + return None + match = version_regex.search(output) + if match: + return match.group(match.lastindex) + except spack.util.executable.ProcessError: + pass + except Exception as e: + tty.debug(e) + + return None + + @classmethod + def determine_variants(cls, exes, version_str): + variants, compilers = ['+clang'], {} + lld_found, lldb_found = False, False + for exe in exes: + if 'clang++' in exe: + compilers['cxx'] = exe + elif 'clang' in exe: + compilers['c'] = exe + elif 'ld.lld' in exe: + lld_found = True + compilers['ld'] = exe + elif 'lldb' in exe: + lldb_found = True + compilers['lldb'] = exe + + variants.append('+lld' if lld_found else '~lld') + variants.append('+lldb' if lldb_found else '~lldb') + + return ''.join(variants), {'compilers': compilers} + + @classmethod + def validate_detected_spec(cls, spec, extra_attributes): + # For LLVM 'compilers' is a mandatory attribute + msg = ('the extra attribute "compilers" must be set for ' + 'the detected spec "{0}"'.format(spec)) + assert 'compilers' in extra_attributes, msg + compilers = extra_attributes['compilers'] + for key in ('c', 'cxx'): + msg = '{0} compiler not found for {1}' + assert key in compilers, msg.format(key, spec) + + @property + def cc(self): + msg = "cannot retrieve C compiler [spec is not concrete]" + assert self.spec.concrete, msg + if self.spec.external: + return self.spec.extra_attributes['compilers'].get('c', None) + result = None + if '+clang' in self.spec: + result = os.path.join(self.spec.prefix.bin, 'clang') + return result + + @property + def cxx(self): + msg = "cannot retrieve C++ compiler [spec is not concrete]" + assert self.spec.concrete, msg + if self.spec.external: + return self.spec.extra_attributes['compilers'].get('cxx', None) + result = None + if '+clang' in self.spec: + result = os.path.join(self.spec.prefix.bin, 'clang++') + return result + @run_before('cmake') def codesign_check(self): if self.spec.satisfies("+code_signing"): diff --git a/var/spack/repos/builtin/packages/lmbench/fix_results_path_for_aarch64.patch b/var/spack/repos/builtin/packages/lmbench/fix_results_path_for_aarch64.patch new file mode 100644 index 0000000000..dc0f7026a0 --- /dev/null +++ b/var/spack/repos/builtin/packages/lmbench/fix_results_path_for_aarch64.patch @@ -0,0 +1,13 @@ +diff --git a/scripts/results b/scripts/results +index cd07c15..282ed19 100755 +--- a/scripts/results ++++ b/scripts/results +@@ -27,7 +27,7 @@ cd ../bin/$OS + PATH=.:${PATH}; export PATH + export SYNC_MAX + export OUTPUT +-lmbench $CONFIG 2>../${RESULTS} ++lmbench $CONFIG 2>${RESULTS} + + if [ X$MAIL = Xyes ] + then echo Mailing results diff --git a/var/spack/repos/builtin/packages/lmbench/package.py b/var/spack/repos/builtin/packages/lmbench/package.py index e38ca29e24..e0b5fe3620 100644 --- a/var/spack/repos/builtin/packages/lmbench/package.py +++ b/var/spack/repos/builtin/packages/lmbench/package.py @@ -19,6 +19,8 @@ class Lmbench(MakefilePackage): depends_on('libtirpc') + patch('fix_results_path_for_aarch64.patch', sha256='2af57abc9058c56b6dd0697bb01a98902230bef92b117017e318faba148eef60', when='target=aarch64:') + def setup_build_environment(self, env): env.prepend_path('CPATH', self.spec['libtirpc'].prefix.include.tirpc) env.append_flags('LDFLAGS', '-ltirpc') diff --git a/var/spack/repos/builtin/packages/lmod/package.py b/var/spack/repos/builtin/packages/lmod/package.py index 2f12d47587..f211405179 100644 --- a/var/spack/repos/builtin/packages/lmod/package.py +++ b/var/spack/repos/builtin/packages/lmod/package.py @@ -46,8 +46,8 @@ class Lmod(AutotoolsPackage): depends_on('lua-luafilesystem', type=('build', 'run')) depends_on('tcl', type=('build', 'link', 'run')) - variant('auto_swap', default=False, description='Enable auto swapping conflicting modules') - variant('redirect', default=True, description='Enables redirect instead of pager') + variant('auto_swap', default=True, description='Auto swapping of compilers, etc.') + variant('redirect', default=False, description='Redirect messages to stdout (instead of stderr)') patch('fix_tclsh_paths.patch', when='@:6.4.3') patch('0001-fix-problem-with-MODULESHOME-and-issue-271.patch', when='@7.3.28:7.4.10') diff --git a/var/spack/repos/builtin/packages/looptools/package.py b/var/spack/repos/builtin/packages/looptools/package.py new file mode 100644 index 0000000000..7d31173dcf --- /dev/null +++ b/var/spack/repos/builtin/packages/looptools/package.py @@ -0,0 +1,25 @@ +# 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 Looptools(AutotoolsPackage): + """LoopTools is a package for evaluation of scalar and tensor one-loop + integrals based on the FF package by G.J. van Oldenborgh. It + features an easy Fortran, C++, and Mathematica interface to the + scalar one-loop functions of FF and in addition provides + the 2-, 3-, and 4-point tensor coefficient functions. """ + + homepage = "http://www.feynarts.de/looptools/" + url = "http://www.feynarts.de/looptools/LoopTools-2.15.tar.gz" + + version('2.15', sha256='a065ffdc4fe6882aa3bb926134ba8ec875d6c0a633c3d4aa5f70db26542713f2') + version('2.8', sha256='2395518d0eac9b0883a2c249b9a5ba80df443929c520c45e60f5a4284166eb42') + + def configure_args(self): + args = ["FFLAGS=" + self.compiler.f77_pic_flag, + "CFLAGS=" + self.compiler.cc_pic_flag] + return args diff --git a/var/spack/repos/builtin/packages/ltrace/package.py b/var/spack/repos/builtin/packages/ltrace/package.py index 01f0e4fd86..9e0b72804f 100644 --- a/var/spack/repos/builtin/packages/ltrace/package.py +++ b/var/spack/repos/builtin/packages/ltrace/package.py @@ -17,3 +17,8 @@ class Ltrace(AutotoolsPackage): version('0.7.3', sha256='0e6f8c077471b544c06def7192d983861ad2f8688dd5504beae62f0c5f5b9503') conflicts('platform=darwin', msg='ltrace runs only on Linux.') + + def configure_args(self): + # Disable -Werror since some functions used by ltrace + # have been deprecated in recent version of glibc + return ['--disable-werror'] diff --git a/var/spack/repos/builtin/packages/lustre/package.py b/var/spack/repos/builtin/packages/lustre/package.py new file mode 100644 index 0000000000..2ce6a1ad55 --- /dev/null +++ b/var/spack/repos/builtin/packages/lustre/package.py @@ -0,0 +1,30 @@ +# 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 Lustre(Package): + """Lustre is a type of parallel distributed file system, + generally used for large-scale cluster computing.""" + + homepage = 'http://lustre.org/' + has_code = False + + version('2.12') + + # Lustre is filesystem and needs to be installed on system. + # To have it as external package in SPACK, follow below: + # config file packages.yaml needs to be adjusted: + # lustre: + # version: [2.12] + # paths: + # lustre@2.12: /usr (Usual Lustre library path) + # buildable: False + + def install(self, spec, prefix): + raise InstallError( + self.spec.format('{name} is not installable, you need to specify ' + 'it as an external package in packages.yaml')) diff --git a/var/spack/repos/builtin/packages/m4/package.py b/var/spack/repos/builtin/packages/m4/package.py index 7b649656d0..daf89aed16 100644 --- a/var/spack/repos/builtin/packages/m4/package.py +++ b/var/spack/repos/builtin/packages/m4/package.py @@ -36,6 +36,9 @@ class M4(AutotoolsPackage, GNUMirrorPackage): spec = self.spec args = ['--enable-c++'] + if spec.satisfies('%cce@9:'): + args.append('LDFLAGS=-rtlib=compiler-rt') + if spec.satisfies('%clang') and not spec.satisfies('platform=darwin'): args.append('LDFLAGS=-rtlib=compiler-rt') diff --git a/var/spack/repos/builtin/packages/magics/package.py b/var/spack/repos/builtin/packages/magics/package.py index c9c331eeb5..902ac0db13 100644 --- a/var/spack/repos/builtin/packages/magics/package.py +++ b/var/spack/repos/builtin/packages/magics/package.py @@ -19,7 +19,12 @@ class Magics(CMakePackage): # The policy on which minor releases remain available and which get deleted # after a newer version becomes available is unclear. - version('4.2.4', sha256='920c7dbb1aaabe65a31c6c18010829210f8b2f8d614b6c405dc5a4530e346f07') + version('4.4.0', sha256='544058cd334f3e28a16d00ea7811e13cdf282f9c1ebec2ad7868171d925abd24') + version('4.3.3', sha256='27d3de71cf41f3d557fd85dabaea2baaab34c4c6422a5b5b15071a6a53387601') + version('4.3.1', sha256='b1995e2f5bf24943715446d1302cc5d7de4cacfe4cee7c3cfd1037ac183cd181') + version('4.3.0', sha256='f6c0d32c243913e53320dd94ce8e1e6a64bd9a44af77d5ac32c062bc18355b8a') + version('4.2.6', sha256='9b34a375d9125ab6e8a715b970da2e479f96370bac6a5bb8a015a079ed9e027c') + version('4.2.4', sha256='920c7dbb1aaabe65a31c6c18010829210f8b2f8d614b6c405dc5a4530e346f07') version('4.1.0', sha256='da626c31f53716990754dd72ab7b2f3902a8ad924b23ef3309bd14900d170541') version('2.34.3', sha256='38487562e83c0470f94d9c7fb9418cbadf92f1e643033237baba2abdc77e6238') version('2.34.1', sha256='8df27f8f262ebc32a61f8696df15a7b4a6e4203b2a8e53fe7aa13caa1c4e3fa4') @@ -59,7 +64,10 @@ class Magics(CMakePackage): depends_on('perl-xml-parser', type='build') # Non-optional dependencies - depends_on('proj@:5') + # change of proj4 api starting from version 4.3.0 + # https://github.com/OSGeo/PROJ/wiki/proj.h-adoption-status + depends_on('proj@:5', when='@:4.2.6') + depends_on('proj@6:', when='@4.3:') depends_on('boost') depends_on('expat') @@ -79,6 +87,10 @@ class Magics(CMakePackage): depends_on('eccodes', when='grib=eccodes') depends_on('grib-api', when='grib=grib-api') + # Even if netcdf is disabled and -DENABLE_NETCDF=OFF is set, building + # magics still requires legacy netcdf-cxx + depends_on('netcdf-cxx', when='@4.1.0:4.3.1') + # Optional dependencies depends_on('netcdf-cxx', when='+netcdf') depends_on('pango', when='+cairo') @@ -129,7 +141,8 @@ class Magics(CMakePackage): if self.spec.satisfies('@2.29.1:'): args.append('-DENABLE_ECCODES=OFF') - if '+netcdf' in self.spec: + # magics@4.2.4:4.3.1 cannot be built without netcdf + if '+netcdf' in self.spec or self.spec.satisfies('@4.1.0:4.3.1'): args.append('-DENABLE_NETCDF=ON') else: args.append('-DENABLE_NETCDF=OFF') diff --git a/var/spack/repos/builtin/packages/magma/package.py b/var/spack/repos/builtin/packages/magma/package.py index 16b7c777c1..ec2324290a 100644 --- a/var/spack/repos/builtin/packages/magma/package.py +++ b/var/spack/repos/builtin/packages/magma/package.py @@ -36,6 +36,9 @@ class Magma(CMakePackage, CudaPackage): depends_on('blas') depends_on('lapack') depends_on('cuda@8:', when='@2.5.1:') # See PR #14471 + depends_on('cuda@:10.99999') # incompatible with CUDA 11 + # The previous line would ideally include "when='@:2.5.3'", but this + # doesn't work due to a problem with the concretizer. conflicts('~cuda', msg='Magma requires cuda') conflicts('cuda_arch=none', diff --git a/var/spack/repos/builtin/packages/mapnik/package.py b/var/spack/repos/builtin/packages/mapnik/package.py index 2fc61f568d..880bd3bc13 100644 --- a/var/spack/repos/builtin/packages/mapnik/package.py +++ b/var/spack/repos/builtin/packages/mapnik/package.py @@ -15,11 +15,12 @@ class Mapnik(AutotoolsPackage): homepage = "https://mapnik.org/" url = "https://github.com/mapnik/mapnik/releases/download/v3.0.22/mapnik-v3.0.22.tar.bz2" + version('3.0.23', sha256='4b1352e01f7ce25ab099e586d7ae98e0b74145a3bf94dd365cb0a2bdab3b9dc2') version('3.0.22', sha256='930612ad9e604b6a29b9cea1bc1de85cf7cf2b2b8211f57ec8b6b94463128ab9') depends_on('python', type=('build', 'run')) - # Build fails with boost@1.70 - depends_on('boost@:1.69.0+regex+filesystem+system+icu+program_options cxxstd=11') + depends_on('boost@:1.72.0 +regex+filesystem+system+icu+program_options cxxstd=11', when='@3.0.23') + depends_on('boost@:1.69.0 +regex+filesystem+system+icu+program_options cxxstd=11', when='@3.0.22') depends_on('icu4c') depends_on('zlib') depends_on('freetype') diff --git a/var/spack/repos/builtin/packages/mariadb/package.py b/var/spack/repos/builtin/packages/mariadb/package.py index 11df1fc728..a16919192a 100644 --- a/var/spack/repos/builtin/packages/mariadb/package.py +++ b/var/spack/repos/builtin/packages/mariadb/package.py @@ -52,6 +52,7 @@ class Mariadb(CMakePackage): depends_on('msgpack-c') depends_on('openssl') depends_on('openssl@:1.0', when='@:10.1') + depends_on('krb5') conflicts('%gcc@9.1.0:', when='@:5.5') diff --git a/var/spack/repos/builtin/packages/mbedtls/package.py b/var/spack/repos/builtin/packages/mbedtls/package.py index bbe2bd0412..0d79e25af4 100644 --- a/var/spack/repos/builtin/packages/mbedtls/package.py +++ b/var/spack/repos/builtin/packages/mbedtls/package.py @@ -15,7 +15,9 @@ class Mbedtls(CMakePackage): homepage = "https://tls.mbed.org" url = "https://github.com/ARMmbed/mbedtls/archive/mbedtls-2.2.1.tar.gz" + maintainers = ['mwkrentel'] + version('2.16.7', sha256='4786b7d1676f5e4d248f3a7f2d28446876d64962634f060ff21b92c690cfbe86') version('2.16.1', sha256='daf0d40f3016c34eb42d1e4b3b52be047e976d566aba8668977723c829af72f3') version('2.7.10', sha256='42b19b30b86a798bdb69c5da2f8bbd7d72ffede9a35b888ab986a29480f9dc3e') version('2.3.0', sha256='1614ee70be99a18ca8298148308fb725aad4ad31c569438bb51655a4999b14f9') @@ -33,7 +35,8 @@ class Mbedtls(CMakePackage): variant('pic', default=False, description='Compile with position independent code.') - depends_on('cmake@2.6:', type='build') + depends_on('cmake@3.1.0:', type='build', when='@2.8.0:') + depends_on('cmake@2.6:', type='build', when='@:2.7.99') depends_on('perl', type='build') def flag_handler(self, name, flags): diff --git a/var/spack/repos/builtin/packages/mcutils/package.py b/var/spack/repos/builtin/packages/mcutils/package.py new file mode 100644 index 0000000000..3065f70fe0 --- /dev/null +++ b/var/spack/repos/builtin/packages/mcutils/package.py @@ -0,0 +1,34 @@ +# 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 Mcutils(MakefilePackage): + """A collection of routines for classification and manipulation of + particle physics simulated HepMC event records.""" + + homepage = "https://bitbucket.org/andybuckley/mcutils" + url = "https://bitbucket.org/andybuckley/mcutils/get/mcutils-1.3.4.tar.gz" + + version('1.3.4', sha256='0bf9795cc248871ab2b663d2eef647311eacaea4982997950096de68747e65a3') + version('1.3.3', sha256='bfb2f0e0e6de358928436f309f3f1b084d3d652073c440f262de878332116ecb') + version('1.3.2', sha256='e17d417e8d4f8d17a6879ea18dcd2cd76e161d37eae08b84893504d1b08f9708') + version('1.3.1', sha256='081263ee6844fccedad780e6a2fbaf1ad0073a6706bc4b34109050b72c2c4b27') + version('1.3.0', sha256='20a89ce536547dc8f56e7779a3ec8cfe9987edb1646009ecfc682ff1ddf0277b') + version('1.2.1', sha256='004325be41925d97e711ffe4311d9c8aa8e88873541bcc1a385d2e1ce1d17a96') + version('1.2.0', sha256='f9589d45bff06d8c8742d35d78d1ed570a0d181fd7ee5d6f97ab9e48f0ee32f4') + version('1.1.2', sha256='5a5781caf2d81c21f4b040a1d31975c354526bcf7c8c9067543f7303c8155844') + version('1.1.1', sha256='3e5c47d2264886613fc9423b020cf50dc7031a02b752da3a84f794c36ba7443a') + version('1.1.0', sha256='96fc2586430032ed4b378edb02150c5c9db405e1767dbf847ffe9ac043daf6e9') + version('1.0.3', sha256='b5bec5a4b2146b6987b351d632119c3b4c449c2ee53ae0ddc8cb1d3672907df5') + version('1.0.2', sha256='74e2c381f5f3719888b15a2e00075051bb2b84b3d73633d429818a77de66ca7c') + version('1.0.1', sha256='bb884a4cfb56b5139c08df0be554466e504e9c46096a858f904d659894a62131') + version('1.0.0', sha256='d08dea19fb42b1846e0a7134e2347648b037bf82b2d75086d018734bc2996b06') + + depends_on('heputils', when='@1.1.0:') + + def install(self, spec, prefix): + make('install', 'PREFIX={0}'.format(prefix)) diff --git a/var/spack/repos/builtin/packages/mesa/multiple-symbols_hash.patch b/var/spack/repos/builtin/packages/mesa/multiple-symbols_hash.patch new file mode 100644 index 0000000000..7c92326f37 --- /dev/null +++ b/var/spack/repos/builtin/packages/mesa/multiple-symbols_hash.patch @@ -0,0 +1,22 @@ +--- a/src/gallium/auxiliary/util/u_debug_stack.c 2019-11-07 17:57:36.000000000 -0700 ++++ b/src/gallium/auxiliary/util/u_debug_stack.c 2020-07-23 15:30:46.033145497 -0600 +@@ -46,7 +46,7 @@ + #include "os/os_thread.h" + #include "u_hash_table.h" + +-struct util_hash_table* symbols_hash; ++static struct util_hash_table* symbols_hash; + static mtx_t symbols_mutex = _MTX_INITIALIZER_NP; + + static unsigned hash_ptr(void* p) +--- a/src/gallium/auxiliary/util/u_debug_symbol.c 2019-11-07 17:58:53.000000000 -0700 ++++ b/src/gallium/auxiliary/util/u_debug_symbol.c 2020-07-23 15:31:06.400146072 -0600 +@@ -270,7 +270,7 @@ + debug_printf("\t%s\n", buf); + } + +-struct util_hash_table* symbols_hash; ++static struct util_hash_table* symbols_hash; + static mtx_t symbols_mutex = _MTX_INITIALIZER_NP; + + static unsigned hash_ptr(void* p) diff --git a/var/spack/repos/builtin/packages/mesa/package.py b/var/spack/repos/builtin/packages/mesa/package.py index b277a03d19..953e5b0034 100644 --- a/var/spack/repos/builtin/packages/mesa/package.py +++ b/var/spack/repos/builtin/packages/mesa/package.py @@ -79,6 +79,9 @@ class Mesa(AutotoolsPackage): # Prevent an unnecessary xcb-dri dependency patch('autotools-x11-nodri.patch') + # Backport Mesa MR#6053 to prevent multiply-defined symbols + patch('multiple-symbols_hash.patch', when='@:20.1.4%gcc@10:') + def autoreconf(self, spec, prefix): which('autoreconf')('--force', '--verbose', '--install') diff --git a/var/spack/repos/builtin/packages/meson/package.py b/var/spack/repos/builtin/packages/meson/package.py index 8ff3ddf32e..6d879ce67c 100644 --- a/var/spack/repos/builtin/packages/meson/package.py +++ b/var/spack/repos/builtin/packages/meson/package.py @@ -16,6 +16,7 @@ class Meson(PythonPackage): maintainers = ['michaelkuhn'] + version('0.55.0', sha256='9034c943c8cf4d734c0e18e5ba038dd762fcdcc614c45b41703305da8382e90c') version('0.54.3', sha256='c25caff342b5368bfe33fab6108f454fcf12e2f2cef70817205872ddef669e8b') version('0.54.2', sha256='85cafdc70ae7d1d9d506e7356b917c649c4df2077bd6a0382db37648aa4ecbdb') version('0.54.1', sha256='854e8b94ab36e5aece813d2b2aee8a639bd52201dfea50890722ac9128e2f59e') diff --git a/var/spack/repos/builtin/packages/mfem/package.py b/var/spack/repos/builtin/packages/mfem/package.py index 3a4abab49b..1a90ef31b9 100644 --- a/var/spack/repos/builtin/packages/mfem/package.py +++ b/var/spack/repos/builtin/packages/mfem/package.py @@ -92,12 +92,6 @@ class Mfem(Package): # Can we make the default value for 'metis' to depend on the 'mpi' value? variant('metis', default=True, description='Enable METIS support') - # TODO: The 'hypre' variant is the same as 'mpi', we may want to remove it. - # For now, keep the 'hypre' variant while ignoring its setting. This - # is done to preserve compatibility with other packages that refer to - # it, e.g. xSDK. - variant('hypre', default=True, - description='Required for MPI parallelism') variant('openmp', default=False, description='Enable OpenMP parallelism') variant('cuda', default=False, description='Enable CUDA support') diff --git a/var/spack/repos/builtin/packages/minio/package.py b/var/spack/repos/builtin/packages/minio/package.py new file mode 100644 index 0000000000..4485f650e7 --- /dev/null +++ b/var/spack/repos/builtin/packages/minio/package.py @@ -0,0 +1,29 @@ +# 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 Minio(MakefilePackage): + """MinIO is a High Performance Object Storage released under Apache + License v2.0. It is API compatible with Amazon S3 cloud storage + service. Use MinIO to build high performance infrastructure for + machine learning, analytics and application data workloads.""" + + homepage = "https://min.io/" + url = "https://github.com/minio/minio/archive/RELEASE.2020-07-13T18-09-56Z.tar.gz" + + version('2020-07-13T18-09-56Z', sha256='147fca3930389162cc7306a0fa5cf478ee2deba4b31a9317f3d35e82aa58d41e') + version('2020-07-12T19-14-17Z', sha256='bb8ba5d93215ab37788171d8b9ce68e78d64e7b7c74aea508c15958158d85b03') + version('2020-07-02T00-15-09Z', sha256='4255c4d95a3e010f16a3f1e974768dc68509075403a97a9b9882f7d9e89fedc5') + + depends_on('go', type='build') + + def url_for_version(self, version): + return ("https://github.com/minio/minio/archive/RELEASE.{0}.tar.gz".format(version)) + + def install(self, spec, prefix): + mkdirp(prefix.bin) + install('minio', prefix.bin) diff --git a/var/spack/repos/builtin/packages/mongodb-async-driver/package.py b/var/spack/repos/builtin/packages/mongodb-async-driver/package.py new file mode 100644 index 0000000000..77449297f4 --- /dev/null +++ b/var/spack/repos/builtin/packages/mongodb-async-driver/package.py @@ -0,0 +1,24 @@ +# 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 MongodbAsyncDriver(Package): + """The MongoDB Asynchronous Java Driver.""" + + homepage = "http://www.allanbank.com/mongodb-async-driver/" + url = "https://github.com/allanbank/mongodb-async-driver/archive/rel_2.0.1.tar.gz" + + version('2.0.1', sha256='87f22c16f3744a847eeb8276ed132bf235f025db0b7dee0d0f239d5cdcab720c') + version('2.0.0', sha256='8cffe4c960d42550be30c27d66f5de6df4edb5ee7a094c50519986dc5cbcf9b8') + + depends_on('maven', type='build') + depends_on('java@8', type=('build', 'run')) + + def install(self, spec, prefix): + mvn = which('mvn') + mvn('package', '-DskipTests') + install_tree('.', prefix) diff --git a/var/spack/repos/builtin/packages/mozjs/Bug-638056-Avoid-The-cacheFlush-support-is-missing-o.patch b/var/spack/repos/builtin/packages/mozjs/Bug-638056-Avoid-The-cacheFlush-support-is-missing-o.patch new file mode 100644 index 0000000000..bbd62276e1 --- /dev/null +++ b/var/spack/repos/builtin/packages/mozjs/Bug-638056-Avoid-The-cacheFlush-support-is-missing-o.patch @@ -0,0 +1,20 @@ +From: Mike Hommey <mh@glandium.org> +Date: Fri, 18 Mar 2011 09:25:57 +0100 +Subject: Bug 638056 - Avoid "The cacheFlush support is missing on this + platform" error on exotic platforms + +--- + js/src/Makefile.in | 2 +- + 1 files changed, 1 insertions(+), 1 deletions(-) + +--- a/js/src/Makefile.in ++++ b/js/src/Makefile.in +@@ -382,7 +382,7 @@ CPPSRCS += checks.cc \ + # END enclude sources for V8 dtoa + ############################################# + +-ifeq (,$(filter-out powerpc sparc,$(TARGET_CPU))) ++ifeq (,$(filter arm %86 x86_64,$(TARGET_CPU))) + + VPATH += $(srcdir)/assembler \ + $(srcdir)/assembler/wtf \ diff --git a/var/spack/repos/builtin/packages/mozjs/fix-811665.patch b/var/spack/repos/builtin/packages/mozjs/fix-811665.patch new file mode 100644 index 0000000000..a3e06d8bb4 --- /dev/null +++ b/var/spack/repos/builtin/packages/mozjs/fix-811665.patch @@ -0,0 +1,153 @@ +Description: Fix FTBFS with gcc6 + Most fixes are returning NULL instead of false and a narrowing issues. +Author: Tobias Frost <tobi@debian.org> +Bug-Debian: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=811665 +Last-Update: 2016-09-25 +--- +This patch header follows DEP-3: http://dep.debian.net/deps/dep3/ +--- a/js/src/ctypes/CTypes.cpp ++++ b/js/src/ctypes/CTypes.cpp +@@ -4753,7 +4753,7 @@ NewFunctionInfo(JSContext* cx, + for (JSUint32 i = 0; i < argLength; ++i) { + bool isEllipsis; + if (!IsEllipsis(cx, argTypes[i], &isEllipsis)) +- return false; ++ return NULL; + if (isEllipsis) { + fninfo->mIsVariadic = true; + if (i < 1) { +--- a/js/src/jsapi.cpp ++++ b/js/src/jsapi.cpp +@@ -3985,7 +3985,7 @@ JS_Enumerate(JSContext *cx, JSObject *ob + AutoIdVector props(cx); + JSIdArray *ida; + if (!GetPropertyNames(cx, obj, JSITER_OWNONLY, &props) || !VectorToIdArray(cx, props, &ida)) +- return false; ++ return NULL; + for (size_t n = 0; n < size_t(ida->length); ++n) + JS_ASSERT(js_CheckForStringIndex(ida->vector[n]) == ida->vector[n]); + return ida; +--- a/js/src/jsfun.cpp ++++ b/js/src/jsfun.cpp +@@ -2051,7 +2051,7 @@ fun_toStringHelper(JSContext *cx, JSObje + + JSString *str = JS_DecompileFunction(cx, fun, indent); + if (!str) +- return false; ++ return NULL; + + if (!indent) + cx->compartment->toSourceCache.put(fun, str); +@@ -2657,7 +2657,7 @@ LookupInterpretedFunctionPrototype(JSCon + const Shape *shape = funobj->nativeLookup(id); + if (!shape) { + if (!ResolveInterpretedFunctionPrototype(cx, funobj)) +- return false; ++ return NULL; + shape = funobj->nativeLookup(id); + } + JS_ASSERT(!shape->configurable()); +--- a/js/src/jsiter.cpp ++++ b/js/src/jsiter.cpp +@@ -425,7 +425,7 @@ NewIteratorObject(JSContext *cx, uintN f + */ + JSObject *obj = js_NewGCObject(cx, FINALIZE_OBJECT0); + if (!obj) +- return false; ++ return NULL; + obj->init(cx, &js_IteratorClass, NULL, NULL, NULL, false); + obj->setMap(cx->compartment->emptyEnumeratorShape); + return obj; +--- a/js/src/jsparse.cpp ++++ b/js/src/jsparse.cpp +@@ -3352,7 +3352,7 @@ Parser::functionDef(JSAtom *funAtom, Fun + if (!outertc->inFunction() && bodyLevel && funAtom && !lambda && outertc->compiling()) { + JS_ASSERT(pn->pn_cookie.isFree()); + if (!DefineGlobal(pn, outertc->asCodeGenerator(), funAtom)) +- return false; ++ return NULL; + } + + pn->pn_blockid = outertc->blockid(); +--- a/js/src/jsstr.cpp ++++ b/js/src/jsstr.cpp +@@ -1734,7 +1734,7 @@ class RegExpGuard + if (flat) { + patstr = flattenPattern(cx, fm.patstr); + if (!patstr) +- return false; ++ return NULL; + } else { + patstr = fm.patstr; + } +@@ -3408,7 +3408,7 @@ js_InitStringClass(JSContext *cx, JSObje + UndefinedValue(), NULL, NULL, + JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_SHARED, 0, 0, + NULL)) { +- return JS_FALSE; ++ return NULL; + } + + return proto; +--- a/js/src/jstypedarray.cpp ++++ b/js/src/jstypedarray.cpp +@@ -1334,7 +1334,7 @@ class TypedArrayTemplate + if (size != 0 && count >= INT32_MAX / size) { + JS_ReportErrorNumber(cx, js_GetErrorMessage, NULL, + JSMSG_NEED_DIET, "size and count"); +- return false; ++ return NULL; + } + + int32 bytelen = size * count; +@@ -1668,7 +1668,7 @@ TypedArrayConstruct(JSContext *cx, jsint + + default: + JS_NOT_REACHED("shouldn't have gotten here"); +- return false; ++ return NULL; + } + } + +--- a/js/src/jsxml.cpp ++++ b/js/src/jsxml.cpp +@@ -282,7 +282,7 @@ NewXMLNamespace(JSContext *cx, JSLinearS + + obj = NewBuiltinClassInstanceXML(cx, &js_NamespaceClass); + if (!obj) +- return JS_FALSE; ++ return NULL; + JS_ASSERT(JSVAL_IS_VOID(obj->getNamePrefixVal())); + JS_ASSERT(JSVAL_IS_VOID(obj->getNameURIVal())); + JS_ASSERT(JSVAL_IS_VOID(obj->getNamespaceDeclared())); +@@ -431,7 +431,7 @@ ConvertQNameToString(JSContext *cx, JSOb + size_t length = str->length(); + jschar *chars = (jschar *) cx->malloc((length + 2) * sizeof(jschar)); + if (!chars) +- return JS_FALSE; ++ return NULL; + *chars = '@'; + const jschar *strChars = str->getChars(cx); + if (!strChars) { +--- a/js/src/methodjit/InvokeHelpers.cpp ++++ b/js/src/methodjit/InvokeHelpers.cpp +@@ -728,7 +728,7 @@ AtSafePoint(JSContext *cx) + { + JSStackFrame *fp = cx->fp(); + if (fp->hasImacropc()) +- return false; ++ return NULL; + + JSScript *script = fp->script(); + return script->maybeNativeCodeForPC(fp->isConstructing(), cx->regs->pc); +--- a/js/src/nanojit/NativeX64.cpp ++++ b/js/src/nanojit/NativeX64.cpp +@@ -1899,7 +1899,7 @@ namespace nanojit + } + } + +- static const AVMPLUS_ALIGN16(int64_t) negateMask[] = {0x8000000000000000LL,0}; ++ static const AVMPLUS_ALIGN16(int64_t) negateMask[] = {(int64_t) 0x8000000000000000ULL,0}; + + void Assembler::asm_fneg(LIns *ins) { + Register rr, ra; diff --git a/var/spack/repos/builtin/packages/mozjs/package.py b/var/spack/repos/builtin/packages/mozjs/package.py index 664ba0a08a..4ba1faaa6a 100644 --- a/var/spack/repos/builtin/packages/mozjs/package.py +++ b/var/spack/repos/builtin/packages/mozjs/package.py @@ -25,17 +25,24 @@ class Mozjs(AutotoolsPackage): depends_on('python@2.7.3:2.8', type='build') depends_on('nspr', when='@:27') depends_on('libffi@3.0.9:') - depends_on('readline') + depends_on('readline', when='@17.0.0:') depends_on('zlib@1.2.3') configure_directory = 'js/src' build_directory = 'js/src/spack-build' patch('perl-bug.patch') + # Note: According to https://github.com/apache/couchdb-pkg/tree/master/js/rpm/SOURCES + # There is some patch for mozjs@1.8.5 to fix compile issue. + # Patches required to fix the issue:https://bugzilla.mozilla.org/show_bug.cgi?id=638056 + patch('Bug-638056-Avoid-The-cacheFlush-support-is-missing-o.patch', + sha256='b1c869a65f5ebc10741d4631cc2e1e166c6ed53035cfa56bede55a4c19b7b118', when='@1.8.5') + patch('fix-811665.patch', + sha256='2b298b8a693865b38e2b0d33277bb5ffe152c6ecf43648e85113fec586aa4752', when='@1.8.5') def configure_args(self): spec = self.spec - return [ + config_args = [ '--enable-readline', # enables readline support in JS shell '--enable-threadsafe', # enables support for multiple threads '--enable-system-ffi', @@ -43,3 +50,8 @@ class Mozjs(AutotoolsPackage): '--with-system-nspr', '--with-nspr-prefix={0}'.format(spec['nspr'].prefix), ] + if spec.target.family == 'aarch64': + config_args.append('--host=aarch64-linux-gnu') + if spec.satisfies('@1.8.5'): + config_args.append('--disable-readline') + return config_args diff --git a/var/spack/repos/builtin/packages/mpich/package.py b/var/spack/repos/builtin/packages/mpich/package.py index a485124476..af24802b90 100644 --- a/var/spack/repos/builtin/packages/mpich/package.py +++ b/var/spack/repos/builtin/packages/mpich/package.py @@ -67,6 +67,8 @@ spack package at this time.''', variant('libxml2', default=True, description='Use libxml2 for XML support instead of the custom ' 'minimalistic implementation') + variant('argobots', default=False, + description='Enable Argobots support') provides('mpi') provides('mpi@:3.0', when='@3:') @@ -141,6 +143,9 @@ spack package at this time.''', depends_on('pmix', when='pmi=pmix') + # +argobots variant requires Argobots + depends_on('argobots', when='+argobots') + # building from git requires regenerating autotools files depends_on('automake@1.15:', when='@develop', type=("build")) depends_on('libtool@2.4.4:', when='@develop', type=("build")) @@ -182,7 +187,8 @@ spack package at this time.''', # their run environments the code to make the compilers available. # For Cray MPIs, the regular compiler wrappers *are* the MPI wrappers. # Cray MPIs always have cray in the module name, e.g. "cray-mpich" - if self.spec.external_module and 'cray' in self.spec.external_module: + external_modules = self.spec.external_modules + if external_modules and 'cray' in external_modules[0]: env.set('MPICC', spack_cc) env.set('MPICXX', spack_cxx) env.set('MPIF77', spack_fc) @@ -205,7 +211,8 @@ spack package at this time.''', def setup_dependent_package(self, module, dependent_spec): # For Cray MPIs, the regular compiler wrappers *are* the MPI wrappers. # Cray MPIs always have cray in the module name, e.g. "cray-mpich" - if self.spec.external_module and 'cray' in self.spec.external_module: + external_modules = self.spec.external_modules + if external_modules and 'cray' in external_modules[0]: self.spec.mpicc = spack_cc self.spec.mpicxx = spack_cxx self.spec.mpifc = spack_fc @@ -307,4 +314,9 @@ spack package at this time.''', # for hydra, for hydra2, and for MPICH itself). config_args += self.enable_or_disable('libxml2') + # If +argobots specified, add argobots option + if '+argobots' in spec: + config_args.append('--with-thread-package=argobots') + config_args.append('--with-argobots=' + spec['argobots'].prefix) + return config_args diff --git a/var/spack/repos/builtin/packages/mpifileutils/package.py b/var/spack/repos/builtin/packages/mpifileutils/package.py index 30fc982505..c0130e554d 100644 --- a/var/spack/repos/builtin/packages/mpifileutils/package.py +++ b/var/spack/repos/builtin/packages/mpifileutils/package.py @@ -21,9 +21,10 @@ class Mpifileutils(Package): git = "https://github.com/hpc/mpifileutils.git" version('develop', branch='master') - version('0.10', sha256='5a71a9acd9841c3c258fc0eaea942f18abcb40098714cc90462b57696c07e3c5') - version('0.9.1', sha256='15a22450f86b15e7dc4730950b880fda3ef6f59ac82af0b268674d272aa61c69') - version('0.9', sha256='1b8250af01aae91c985ca5d61521bfaa4564e46efa15cee65cd0f82cf5a2bcfb') + version('0.10.1', sha256='4c8409ef4140f6f557d0e93f0c1267baf5d893c203b29fb7a33d9bc3c5a5d25c') + version('0.10', sha256='5a71a9acd9841c3c258fc0eaea942f18abcb40098714cc90462b57696c07e3c5') + version('0.9.1', sha256='15a22450f86b15e7dc4730950b880fda3ef6f59ac82af0b268674d272aa61c69') + version('0.9', sha256='1b8250af01aae91c985ca5d61521bfaa4564e46efa15cee65cd0f82cf5a2bcfb') conflicts('platform=darwin') diff --git a/var/spack/repos/builtin/packages/mumax/package.py b/var/spack/repos/builtin/packages/mumax/package.py new file mode 100644 index 0000000000..ac9183c45e --- /dev/null +++ b/var/spack/repos/builtin/packages/mumax/package.py @@ -0,0 +1,62 @@ +# 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 * +import os +import shutil + + +class Mumax(MakefilePackage, CudaPackage): + """GPU accelerated micromagnetic simulator.""" + + homepage = "http://mumax.github.io" + url = "https://github.com/mumax/3/archive/3.10beta.tar.gz" + + version('3.10beta', sha256='f20fbd90a4b531fe5a0d8acc3d4505a092a5e426f5f53218a22a87d445daf0e9') + + variant('cuda', default=True, + description='Use CUDA; must be true') + variant('cuda_arch', 'N/A', + description='Mumax will build GPU kernels that it supports') + variant('gnuplot', default=False, + description='Use gnuplot for graphs') + + depends_on('cuda') + depends_on('go', type='build') + depends_on('gnuplot', type='run', when='+gnuplot') + + conflicts('~cuda', msg='mumax requires cuda') + + patch('https://github.com/mumax/3/commit/2cf5c9a6985c9eb16a124c6bd96aed75b4a30c24.patch', + sha256='a43b2ca6c9f9edfb1fd6d916a599f85a57c8bb3f9ee38148b1988fd82feec8ad') + + @property + def gopath(self): + return self.stage.path + + @property + def mumax_gopath_dir(self): + return join_path(self.gopath, 'src/github.com/mumax/3') + + def do_stage(self, mirror_only=False): + super(Mumax, self).do_stage(mirror_only) + if not os.path.exists(self.mumax_gopath_dir): + # Need to move source to $GOPATH and then symlink the original + # stage directory + shutil.move(self.stage.source_path, self.mumax_gopath_dir) + force_symlink(self.mumax_gopath_dir, self.stage.source_path) + + # filter out targets that do not exist + def edit(self, spec, prefix): + filter_file(r'(^ln -sf .*)', r'#\1', 'make.bash') + filter_file(r'(^\(cd test)', r'#\1', 'make.bash') + + def setup_build_environment(self, env): + env.prepend_path('GOPATH', self.gopath) + + def install(self, spec, prefix): + make() + with working_dir(self.gopath): + install_tree('bin', prefix.bin) diff --git a/var/spack/repos/builtin/packages/mvapich2/package.py b/var/spack/repos/builtin/packages/mvapich2/package.py index 0e0ab26a22..0f25cb7111 100644 --- a/var/spack/repos/builtin/packages/mvapich2/package.py +++ b/var/spack/repos/builtin/packages/mvapich2/package.py @@ -8,11 +8,16 @@ import sys class Mvapich2(AutotoolsPackage): - """MVAPICH2 is an MPI implementation for Infiniband networks.""" + """Mvapich2 is a High-Performance MPI Library for clusters with diverse + networks (InfiniBand, Omni-Path, Ethernet/iWARP, and RoCE) and computing + platforms (x86 (Intel and AMD), ARM and OpenPOWER)""" + homepage = "http://mvapich.cse.ohio-state.edu/" url = "http://mvapich.cse.ohio-state.edu/download/mvapich/mv2/mvapich2-2.3.4.tar.gz" list_url = "http://mvapich.cse.ohio-state.edu/downloads/" + maintainers = ['nithintsk', 'harisubramoni'] + # Prefer the latest stable release version('2.3.4', sha256='7226a45c7c98333c8e5d2888119cce186199b430c13b7b1dca1769909e68ea7a') version('2.3.3', sha256='41d3261be57e5bc8aabf4e32981543c015c5443ff032a26f18205985e18c2b73') @@ -235,7 +240,8 @@ class Mvapich2(AutotoolsPackage): def setup_compiler_environment(self, env): # For Cray MPIs, the regular compiler wrappers *are* the MPI wrappers. # Cray MPIs always have cray in the module name, e.g. "cray-mvapich" - if self.spec.external_module and 'cray' in self.spec.external_module: + external_modules = self.spec.external_modules + if external_modules and 'cray' in external_modules[0]: env.set('MPICC', spack_cc) env.set('MPICXX', spack_cxx) env.set('MPIF77', spack_fc) @@ -249,7 +255,8 @@ class Mvapich2(AutotoolsPackage): def setup_dependent_package(self, module, dependent_spec): # For Cray MPIs, the regular compiler wrappers *are* the MPI wrappers. # Cray MPIs always have cray in the module name, e.g. "cray-mvapich" - if self.spec.external_module and 'cray' in self.spec.external_module: + external_modules = self.spec.external_modules + if external_modules and 'cray' in external_modules[0]: self.spec.mpicc = spack_cc self.spec.mpicxx = spack_cxx self.spec.mpifc = spack_fc diff --git a/var/spack/repos/builtin/packages/nag/package.py b/var/spack/repos/builtin/packages/nag/package.py index ae191f9c08..c484350570 100644 --- a/var/spack/repos/builtin/packages/nag/package.py +++ b/var/spack/repos/builtin/packages/nag/package.py @@ -12,7 +12,7 @@ class Nag(Package): homepage = "http://www.nag.com/nagware/np.asp" maintainers = ['ThemosTsikas'] - version('7.0', sha256='bd53c988efe4bfd476a5f556ebd2b8924dc2a039f485e8e017581bca4e12ba01') + version('7.0', sha256='ef65805004255881a4ed27fe7bdb5b05dbbe5fde5bad287f71258fce1f02be77') version('6.2', sha256='9b60f6ffa4f4be631079676963e74eea25e8824512e5c864eb06758b2a3cdd2d') version('6.1', sha256='32580e0004e6798abf1fa52f0070281b28abeb0da2387530a4cc41218e813c7c') diff --git a/var/spack/repos/builtin/packages/namd/package.py b/var/spack/repos/builtin/packages/namd/package.py index a85dd7fd42..e14e92347e 100644 --- a/var/spack/repos/builtin/packages/namd/package.py +++ b/var/spack/repos/builtin/packages/namd/package.py @@ -19,8 +19,9 @@ class Namd(MakefilePackage): manual_download = True version("develop", branch="master") + version('2.14b2', sha256='cb4bd918d2d545bb618e4b4a20023a53916f0aa362d9e57f3de1562c36240b00') version('2.14b1', sha256='9407e54f5271b3d3039a5a9d2eae63c7e108ce31b7481e2197c19e1125b43919') - version('2.13', '9e3323ed856e36e34d5c17a7b0341e38') + version('2.13', '9e3323ed856e36e34d5c17a7b0341e38', preferred=True) version('2.12', '2a1191909b1ab03bf0205971ad4d8ee9') variant('fftw', default='3', values=('none', '2', '3', 'mkl'), diff --git a/var/spack/repos/builtin/packages/nccl/package.py b/var/spack/repos/builtin/packages/nccl/package.py index d1f4de962d..f805f55b1c 100644 --- a/var/spack/repos/builtin/packages/nccl/package.py +++ b/var/spack/repos/builtin/packages/nccl/package.py @@ -14,6 +14,9 @@ class Nccl(MakefilePackage, CudaPackage): maintainers = ['adamjstewart'] + version('2.7.8-1', sha256='fa2bec307270f30fcf6280a85f24ea8801e0ce3b3027937c7325260a890b07e0') + version('2.7.6-1', sha256='60dd9b1743c2db6c05f60959edf98a4477f218115ef910d7ec2662f2fb5cf626') + version('2.7.5-1', sha256='26a8dec6fa0a776eb71205d618d58e26d372621719788a23b33db6fdce4426bf') version('2.7.3-1', sha256='dc7b8794373306e323363314c3327796e416f745e8003490fc1407a22dd7acd6') version('2.6.4-1', sha256='ed8c9dfd40e013003923ae006787b1a30d3cb363b47d2e4307eaa2624ebba2ba') version('2.5.7-1', sha256='781a6bb2278566be4abbdf22b2fa19afc7306cff4b312c82bd782979b368014e') diff --git a/var/spack/repos/builtin/packages/ncl/package.py b/var/spack/repos/builtin/packages/ncl/package.py index 4d9980ecc5..046dd9b3a8 100644 --- a/var/spack/repos/builtin/packages/ncl/package.py +++ b/var/spack/repos/builtin/packages/ncl/package.py @@ -144,7 +144,9 @@ class Ncl(Package): c2f_flags.extend(['-lgfortran', '-lm']) elif self.compiler.name == 'intel': fc_flags.append('-fp-model precise') - cc_flags.append('-fp-model precise') + cc_flags.append('-fp-model precise' + ' -std=c99' + ' -D_POSIX_C_SOURCE=2 -D_GNU_SOURCE') c2f_flags.extend(['-lifcore', '-lifport']) if self.spec.satisfies('%gcc@10:'): diff --git a/var/spack/repos/builtin/packages/nco/package.py b/var/spack/repos/builtin/packages/nco/package.py index 859dac6ab7..cd30f8742a 100644 --- a/var/spack/repos/builtin/packages/nco/package.py +++ b/var/spack/repos/builtin/packages/nco/package.py @@ -13,6 +13,12 @@ class Nco(AutotoolsPackage): homepage = "http://nco.sourceforge.net/" url = "https://github.com/nco/nco/archive/4.6.7.tar.gz" + version('4.9.3', sha256='eade5b79f3814b11ae3f52c34159567e76a73f05f0ab141eccaac68f0ca94aee') + version('4.9.2', sha256='1a98c37c946c00232fa7319d00d1d80f77603adda7c9239d10d68a8a3545a4d5') + version('4.9.1', sha256='9592efaf0dfd6ccdefd0b417d990cfccae7e89c20d90fb44ead6263009778834') + version('4.9.0', sha256='21dd53f427793cbc52d1c007e9b7339c83f6944a937a1acfbbe733e49b65378b') + version('4.8.1', sha256='ddae3fed46c266798ed1176d6a70b36376d2d320fa933c716a623172d1e13c68') + version('4.8.0', sha256='91f95ebfc9baa888adaec3016ca18a6297e2881b1429d74543a27fdfbe15fcab') version('4.7.9', sha256='048f6298bceb40913c3ae433f875dea1e9129b1c86019128e7271d08f274a879') version('4.6.7', sha256='2fe2dabf14a60bface694307cbe719df57103682b715348e9d77bfe8d31487f3') version('4.6.6', sha256='079d83f800b73d9b12b8de1634a88c2cbe40a639aaf7bc056cd2e836c6047697') diff --git a/var/spack/repos/builtin/packages/ncview/package.py b/var/spack/repos/builtin/packages/ncview/package.py index f142a435f2..3eb944ce9c 100644 --- a/var/spack/repos/builtin/packages/ncview/package.py +++ b/var/spack/repos/builtin/packages/ncview/package.py @@ -11,6 +11,7 @@ class Ncview(AutotoolsPackage): homepage = "http://meteora.ucsd.edu/~pierce/ncview_home_page.html" url = "ftp://cirrus.ucsd.edu/pub/ncview/ncview-2.1.7.tar.gz" + version('2.1.8', sha256='e8badc507b9b774801288d1c2d59eb79ab31b004df4858d0674ed0d87dfc91be') version('2.1.7', sha256='a14c2dddac0fc78dad9e4e7e35e2119562589738f4ded55ff6e0eca04d682c82') depends_on('netcdf-c') diff --git a/var/spack/repos/builtin/packages/netlib-scalapack/gcc10-compatibility.patch b/var/spack/repos/builtin/packages/netlib-scalapack/gcc10-compatibility.patch new file mode 100644 index 0000000000..d852742d12 --- /dev/null +++ b/var/spack/repos/builtin/packages/netlib-scalapack/gcc10-compatibility.patch @@ -0,0 +1,33 @@ +From 6dff04cc6f5ad2c35e76dec18b7eec86943a3ed1 Mon Sep 17 00:00:00 2001 +From: DesWurstes <DesWurstes@users.noreply.github.com> +Date: Fri, 15 May 2020 15:54:14 +0100 +Subject: [PATCH] Set -fallow-argument-mismatch + +--- + CMakeLists.txt | 6 ++++++ + 1 file changed, 6 insertions(+) + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 638dbdc..93fc34b 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -14,6 +14,9 @@ if (UNIX) + if ("${CMAKE_Fortran_COMPILER_ID}" STREQUAL "Intel") + set( CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -fltconsistency -fp_port" ) + endif () ++ if ("${CMAKE_Fortran_COMPILER_ID}" STREQUAL "GNU" AND CMAKE_Fortran_COMPILER_VERSION VERSION_GREATER_EQUAL 10) ++ set( CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -fallow-argument-mismatch" ) ++ endif() + endif () + + # +@@ -79,6 +82,9 @@ if (UNIX) + if ("${CMAKE_Fortran_COMPILER_ID}" STREQUAL "Intel") + set( CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -fltconsistency -fp_port" ) + endif () ++ if ("${CMAKE_Fortran_COMPILER_ID}" STREQUAL "GNU" AND CMAKE_Fortran_COMPILER_VERSION VERSION_GREATER_EQUAL 10) ++ set( CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -fallow-argument-mismatch" ) ++ endif() + endif () + + macro(SCALAPACK_install_library lib) diff --git a/var/spack/repos/builtin/packages/netlib-scalapack/package.py b/var/spack/repos/builtin/packages/netlib-scalapack/package.py index 26fe53190a..64381c5b28 100644 --- a/var/spack/repos/builtin/packages/netlib-scalapack/package.py +++ b/var/spack/repos/builtin/packages/netlib-scalapack/package.py @@ -46,6 +46,8 @@ class NetlibScalapack(CMakePackage): patch("mpi2-compatibility.patch", when='@2.0.2:2.0.99') # See: https://github.com/Reference-ScaLAPACK/scalapack/pull/16 patch("int_overflow.patch", when='@2.0.0:2.1.0') + # See: https://github.com/Reference-ScaLAPACK/scalapack/pull/23 + patch("gcc10-compatibility.patch", when='@2.0.0:2.1.0') @property def libs(self): diff --git a/var/spack/repos/builtin/packages/neuron/package.py b/var/spack/repos/builtin/packages/neuron/package.py index 8f3371a159..a3c6cbec05 100644 --- a/var/spack/repos/builtin/packages/neuron/package.py +++ b/var/spack/repos/builtin/packages/neuron/package.py @@ -81,11 +81,6 @@ class Neuron(Package): '--without-memacs', '--without-nmodl']) - # need to enable bg-q arch - if 'bgq' in self.spec.architecture: - options.extend(['--enable-bluegeneQ', - '--host=powerpc64']) - # on os-x disable building carbon 'click' utility if 'darwin' in self.spec.architecture: options.append('macdarwin=no') @@ -119,9 +114,6 @@ class Neuron(Package): def get_compiler_options(self, spec): flags = '-O2 -g' - if 'bgq' in self.spec.architecture: - flags = '-O3 -qtune=qp -qarch=qp -q64 -qstrict -qnohot -g' - if self.spec.satisfies('%pgi'): flags += ' ' + self.compiler.cc_pic_flag @@ -134,11 +126,6 @@ class Neuron(Package): '--with-nmodl-only', '--without-x'] - if 'bgq' in self.spec.architecture: - flags = '-qarch=ppc64' - options.extend(['CFLAGS=%s' % flags, - 'CXXFLAGS=%s' % flags]) - if 'cray' in self.spec.architecture: flags = '-target-cpu=x86_64 -target-network=none' options.extend(['CFLAGS=%s' % flags, diff --git a/var/spack/repos/builtin/packages/nlcglib/package.py b/var/spack/repos/builtin/packages/nlcglib/package.py new file mode 100644 index 0000000000..af001a6bd6 --- /dev/null +++ b/var/spack/repos/builtin/packages/nlcglib/package.py @@ -0,0 +1,64 @@ +# 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 Nlcglib(CMakePackage, CudaPackage): + """Nonlinear CG methods for wave-function optimization in DFT.""" + + homepage = "https://github.com/simonpintarelli/nlcglib" + git = "https://github.com/simonpintarelli/nlcglib.git" + url = "https://github.com/simonpintarelli/nlcglib/archive/v0.9.tar.gz" + + maintainers = ['simonpintarelli'] + + version('master', branch='master') + version('develop', branch='develop') + + version('0.9', sha256='8d5bc6b85ee714fb3d6480f767e7f43e5e7d569116cf60e48f533a7f50a37a08') + + variant('wrapper', default=False, + description='Use nvcc-wrapper for CUDA build') + variant('openmp', default=False) + variant('build_type', default='Release', + description='CMake build type', + values=('Debug', 'Release', 'RelWithDebInfo')) + + depends_on('lapack') + depends_on('kokkos +cuda~cuda_relocatable_device_code+cuda_lambda') + depends_on('kokkos-nvcc-wrapper', when='+wrapper') + depends_on('kokkos +cuda~cuda_relocatable_device_code+cuda_lambda+wrapper', when='+wrapper') + depends_on("cmake@3.15:", type='build') + depends_on('kokkos+cuda~cuda_relocatable_device_code+cuda_lambda+openmp+wrapper', when='+openmp+wrapper') + + def cmake_args(self): + options = [] + + if '+openmp' in self.spec: + options.append('-DUSE_OPENMP=On') + else: + options.append('-DUSE_OPENMP=Off') + if self.spec['blas'].name in ['intel-mkl', 'intel-parallel-studio']: + options.append('-DLAPACK_VENDOR=MKL') + elif self.spec['blas'].name in ['openblas']: + options.append('-DLAPACK_VENDOR=OpenBLAS') + else: + raise Exception('blas/lapack must be either openblas or mkl.') + + options.append('-DBUILD_TESTS=OFF') + + if '+wrapper' in self.spec: + options.append('-DCMAKE_CXX_COMPILER=%s' % + self.spec['kokkos-nvcc-wrapper'].kokkos_cxx) + + if '+cuda' in self.spec: + cuda_arch = self.spec.variants['cuda_arch'].value + if cuda_arch[0] != 'none': + options += [ + '-DCMAKE_CUDA_FLAGS=-arch=sm_{0}'.format(cuda_arch[0]) + ] + + return options diff --git a/var/spack/repos/builtin/packages/nn-c/package.py b/var/spack/repos/builtin/packages/nn-c/package.py new file mode 100644 index 0000000000..20fa95054d --- /dev/null +++ b/var/spack/repos/builtin/packages/nn-c/package.py @@ -0,0 +1,33 @@ +# 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 NnC(AutotoolsPackage): + """nn: Natural Neighbours interpolation. nn is a C code + for Natural Neighbours interpolation of 2D scattered data. + It provides a C library and a command line utility nnbathy.""" + + homepage = "https://github.com/sakov/nn-c" + git = "https://github.com/sakov/nn-c.git" + + version('master', branch='master') + version('1.86.2', commit='343c7784d38d3270d75d450569fc0b64767c37e9') + + variant('pic', default=True, + description='Produce position-independent code (for shared libs)') + + configure_directory = 'nn' + + def configure_args(self): + args = [] + if '+pic' in self.spec: + args.extend([ + 'CFLAGS={0}'.format(self.compiler.pic_flag), + 'CXXFLAGS={0}'.format(self.compiler.pic_flag), + 'FFLAGS={0}'.format(self.compiler.pic_flag) + ]) + return args diff --git a/var/spack/repos/builtin/packages/node-js/package.py b/var/spack/repos/builtin/packages/node-js/package.py index 0089ec6dac..ff1ee2e1f8 100644 --- a/var/spack/repos/builtin/packages/node-js/package.py +++ b/var/spack/repos/builtin/packages/node-js/package.py @@ -26,6 +26,7 @@ class NodeJs(Package): version('12.14.0', sha256='5c1939867228f3845c808ef84a89c8ee93cc35f857bf7587ecee1b5a6d9da67b') version('11.1.0', sha256='3f53b5ac25b2d36ad538267083c0e603d9236867a936c22a9116d95fa10c60d5') version('10.13.0', sha256='aa06825fff375ece7c0d881ae0de5d402a857e8cabff9b4a50f2f0b7b44906be') + version('8.11.4', sha256='459144e361d64ca7362c37cc9717c044ef909d348cb5aa3f2b62538560a6085a') version('8.9.1', sha256='32491b7fcc4696b2cdead45c47e52ad16bbed8f78885d32e873952fee0f971e1') version('7.1.0', sha256='595e7e2a37d1e0573044a90077bb12c0f750e5d8851899ffa74038238da9a983') version('6.3.0', sha256='4ed7a99985f8afee337cc22d5fef61b495ab4238dfff3750ac9019e87fc6aae6') @@ -105,7 +106,10 @@ class NodeJs(Package): return args def configure(self, spec, prefix): - python('configure.py', *self.configure_args()) + if self.version >= Version('10.11.0'): + python('configure.py', *self.configure_args()) + else: + python('configure', *self.configure_args()) def build(self, spec, prefix): make() diff --git a/var/spack/repos/builtin/packages/nwchem/package.py b/var/spack/repos/builtin/packages/nwchem/package.py index afc1451c0d..5bcc98cb19 100644 --- a/var/spack/repos/builtin/packages/nwchem/package.py +++ b/var/spack/repos/builtin/packages/nwchem/package.py @@ -11,22 +11,23 @@ import os class Nwchem(Package): """High-performance computational chemistry software""" - homepage = "http://www.nwchem-sw.org" - url = "http://www.nwchem-sw.org/images/Nwchem-6.6.revision27746-src.2015-10-20.tar.gz" + homepage = "http://nwchemgit.github.io" + url = "https://github.com/nwchemgit/nwchem/releases/download/v7.0.0-release/nwchem-7.0.0-release.revision-2c9a1c7c-srconly.2020-02-26.tar.bz2" tags = ['ecp', 'ecp-apps'] + version('7.0.0', sha256='e3c6510627345be596f4079047e5e7b59e6c20599798ecfe122e3527f8ad6eb0', + url='https://github.com/nwchemgit/nwchem/releases/download/v7.0.0-release/nwchem-7.0.0-release.revision-2c9a1c7c-srconly.2020-02-26.tar.bz2') 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') - version('6.8', sha256='8401d9f4cce2f653a38639df61260b06be580ff0e1b8d77ed3262da159b372a6', - url='https://github.com/nwchemgit/nwchem/archive/v6.8-release.tar.gz') depends_on('blas') depends_on('lapack') depends_on('mpi') depends_on('scalapack') - - depends_on('python@2.7:2.8', type=('build', 'link', 'run')) + 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') # first hash is sha256 of the patch (required for URL patches), # second is sha256 for the archive. @@ -72,18 +73,20 @@ class Nwchem(Package): 'CC=%s' % os.path.basename(spack_cc), 'FC=%s' % os.path.basename(spack_fc), 'USE_MPI=y', - 'MPI_LOC=%s' % spec['mpi'].prefix, - 'USE_PYTHONCONFIG=y', 'PYTHONVERSION=%s' % spec['python'].version.up_to(2), - 'PYTHONHOME=%s' % spec['python'].home, 'BLASOPT=%s' % ((lapack + blas).ld_flags), 'BLAS_LIB=%s' % blas.ld_flags, 'LAPACK_LIB=%s' % lapack.ld_flags, - 'USE_SCALAPACK=y', - 'SCALAPACK=%s' % scalapack.ld_flags, + 'SCALAPACK_LIB=%s' % scalapack.ld_flags, 'NWCHEM_MODULES=all python', 'NWCHEM_LONG_PATHS=Y' # by default NWCHEM_TOP is 64 char max ]) + if spec.version < Version('7.0.0'): + args.extend([ + 'PYTHONVERSION=%s' % spec['python'].version.up_to(2), + 'PYTHONHOME=%s' % spec['python'].home, + 'USE_PYTHONCONFIG=Y', + ]) # TODO: query if blas/lapack/scalapack uses 64bit Ints # A flag to distinguish between 32bit and 64bit integers in linear @@ -155,3 +158,11 @@ class Nwchem(Package): with open(".nwchemrc", 'w') as f: f.write(nwchemrc) install(".nwchemrc", share_path) + + def setup_run_environment(self, env): + env.set('NWCHEM_BASIS_LIBRARY', join_path( + self.prefix, + 'share/nwchem/libraries/')) + env.set('NWCHEM_NWPW_LIBRARY', join_path( + self.prefix, + 'share/nwchem/libraryps/')) diff --git a/var/spack/repos/builtin/packages/octopus/package.py b/var/spack/repos/builtin/packages/octopus/package.py index bed1c1a256..b4cac8fbd5 100644 --- a/var/spack/repos/builtin/packages/octopus/package.py +++ b/var/spack/repos/builtin/packages/octopus/package.py @@ -4,6 +4,7 @@ # SPDX-License-Identifier: (Apache-2.0 OR MIT) from spack import * +import llnl.util.tty as tty class Octopus(Package): @@ -13,6 +14,7 @@ class Octopus(Package): homepage = "https://octopus-code.org/" url = "http://octopus-code.org/down.php?file=6.0/octopus-6.0.tar.gz" + version('10.0', sha256='ccf62200e3f37911bfff6d127ebe74220996e9c09383a10b1420c81d931dcf23') version('7.3', sha256='ad843d49d4beeed63e8b9a2ca6bfb2f4c5a421f13a4f66dc7b02f6d6a5c4d742') version('6.0', sha256='4a802ee86c1e06846aa7fa317bd2216c6170871632c9e03d020d7970a08a8198') version('5.0.1', sha256='3423049729e03f25512b1b315d9d62691cd0a6bd2722c7373a61d51bfbee14e0') @@ -31,9 +33,13 @@ class Octopus(Package): depends_on('blas') depends_on('gsl@1.9:') depends_on('lapack') - depends_on('libxc') + depends_on('libxc@2:2.99', when='@:5.99') + depends_on('libxc@2:3.99', when='@6:7.99') + depends_on('libxc@2:4.99', when='@8:9.99') + depends_on('libxc@3:5.0.0', when='@10.0') depends_on('mpi') - depends_on('fftw@3:+mpi+openmp') + depends_on('fftw@3:+mpi+openmp', when='@:9.99') + depends_on('fftw-api@3:', when='@10.0:') depends_on('metis@5:', when='+metis') depends_on('parmetis', when='+parmetis') depends_on('scalapack', when='+scalapack') @@ -57,8 +63,25 @@ class Octopus(Package): 'CC=%s' % spec['mpi'].mpicc, 'FC=%s' % spec['mpi'].mpifc, '--enable-mpi', - '--with-fftw-prefix==%s' % spec['fftw'].prefix, ]) + if '^fftw' in spec: + args.extend([ + '--with-fftw-prefix=%s' % spec['fftw'].prefix, + ]) + elif '^mkl' in spec: + # As of version 10.0, Octopus depends on fftw-api instead + # of FFTW. If FFTW is not in the dependency tree, then + # it ought to be MKL as it is currently the only providers + # available for fftw-api. + args.extend([ + 'FCFLAGS_FFTW=-I%s' % spec['mkl'].prefix.include.fftw + ]) + else: + # To be foolproof, fail with a proper error message + # if neither FFTW nor MKL are in the dependency tree. + tty.die('Unsupported "fftw-api" provider, ' + 'currently only FFTW and MKL are supported.\n' + "Please report this issue on Spack's repository.") if '+metis' in spec: args.extend([ '--with-metis-prefix=%s' % spec['metis'].prefix, diff --git a/var/spack/repos/builtin/packages/onednn/package.py b/var/spack/repos/builtin/packages/onednn/package.py index 82d22296f9..2805399256 100644 --- a/var/spack/repos/builtin/packages/onednn/package.py +++ b/var/spack/repos/builtin/packages/onednn/package.py @@ -12,10 +12,13 @@ class Onednn(CMakePackage): Formerly known as Intel MKL-DNN and DNNL.""" homepage = "https://01.org/dnnl" - url = "https://github.com/oneapi-src/oneDNN/archive/v1.5.tar.gz" + url = "https://github.com/oneapi-src/oneDNN/archive/v1.6.1.tar.gz" maintainers = ['adamjstewart'] + version('1.6.1', sha256='6686d01d9493905c9c8bcfabcf5b2cc9ced7de7a41c52bba99e569fd5b63464d') + version('1.6', sha256='f54893e487ccd99586725afdd19f526bb84e3251222586850782e3c7eedb7c4f') + version('1.5.1', sha256='aef4d2a726f76f5b98902491a1a4ac69954039aa8e5a1d67ef6ce58ed00e23a6') version('1.5', sha256='2aacc00129418185e0bc1269d3ef82f93f08de2c336932989c0c360279129edb') version('1.4', sha256='54737bcb4dc1961d32ee75da3ecc529fa48198f8b2ca863a079e19a9c4adb70f') version('1.3', sha256='b87c23b40a93ef5e479c81028db71c4847225b1a170f82af5e79f1cda826d3bf') diff --git a/var/spack/repos/builtin/packages/open-iscsi/package.py b/var/spack/repos/builtin/packages/open-iscsi/package.py index 73b792340f..0261105867 100644 --- a/var/spack/repos/builtin/packages/open-iscsi/package.py +++ b/var/spack/repos/builtin/packages/open-iscsi/package.py @@ -28,5 +28,9 @@ class OpenIscsi(MakefilePackage): def setup_build_environment(self, env): env.set('CFLAGS', '-DNO_SYSTEMD') + def setup_run_environment(self, env): + env.prepend_path('PATH', self.prefix.sbin) + env.prepend_path('LD_LIBRARY_PATH', self.prefix.usr.lib64) + def install(self, spec, prefix): make('install', 'DESTDIR={0}'.format(prefix)) diff --git a/var/spack/repos/builtin/packages/openblas/openblas_fujitsu2.patch b/var/spack/repos/builtin/packages/openblas/openblas_fujitsu2.patch new file mode 100644 index 0000000000..bfda30cced --- /dev/null +++ b/var/spack/repos/builtin/packages/openblas/openblas_fujitsu2.patch @@ -0,0 +1,13 @@ +--- OpenBLAS-0.3.10/f_check 2020-07-04 00:02:19.000000000 +0900 ++++ OpenBLAS-0.3.10/f_check_fix 2020-07-04 00:00:52.000000000 +0900 +@@ -337,8 +337,8 @@ + && ($flags !~ /kernel32/) + && ($flags !~ /advapi32/) + && ($flags !~ /shell32/) +- && ($flags !~ /omp/ || ($vendor !~ /PGI/ && $flags =~ /omp/)) +- && ($flags !~ /[0-9]+/) ++ && ($flags !~ /omp/ || ($vendor !~ /PGI/ && $vendor !~ /FUJITSU/ && $flags =~ /omp/)) ++ && ($flags !~ /[0-9]+/ || ($vendor == FUJITSU && $flags =~ /^-lfj90/)) + && ($flags !~ /^\-l$/) + ) { + $linker_l .= $flags . " "; diff --git a/var/spack/repos/builtin/packages/openblas/package.py b/var/spack/repos/builtin/packages/openblas/package.py index 61a530b37f..ad0a6c82f8 100644 --- a/var/spack/repos/builtin/packages/openblas/package.py +++ b/var/spack/repos/builtin/packages/openblas/package.py @@ -99,6 +99,7 @@ class Openblas(MakefilePackage): # Add conditions to f_check to determine the Fujitsu compiler patch('openblas_fujitsu.patch', when='%fj') + patch('openblas_fujitsu2.patch', when='@0.3.10 %fj') # See https://github.com/spack/spack/issues/3036 conflicts('%intel@16', when='@0.2.15:0.2.19') diff --git a/var/spack/repos/builtin/packages/opencascade/package.py b/var/spack/repos/builtin/packages/opencascade/package.py index 8267716e78..7df9668f01 100644 --- a/var/spack/repos/builtin/packages/opencascade/package.py +++ b/var/spack/repos/builtin/packages/opencascade/package.py @@ -16,6 +16,8 @@ class Opencascade(CMakePackage): homepage = "https://www.opencascade.com" url = "http://git.dev.opencascade.org/gitweb/?p=occt.git;a=snapshot;h=refs/tags/V7_4_0;sf=tgz" + version('7.4.0p1', extension='tar.gz', + sha256='e00fedc221560fda31653c23a8f3d0eda78095c87519f338d4f4088e2ee9a9c0') version('7.4.0', extension='tar.gz', sha256='655da7717dac3460a22a6a7ee68860c1da56da2fec9c380d8ac0ac0349d67676') @@ -32,6 +34,14 @@ class Opencascade(CMakePackage): depends_on('vtk', when='+vtk') depends_on('freeimage', when='+freeimage') depends_on('rapidjson', when='+rapidjson') + depends_on('freetype') + depends_on('tcl') + depends_on('tk') + depends_on('gl') + + def url_for_version(self, version): + url = "http://git.dev.opencascade.org/gitweb/?p=occt.git;a=snapshot;h=refs/tags/V{0};sf=tgz" + return url.format(version.underscored) def cmake_args(self): args = [] diff --git a/var/spack/repos/builtin/packages/openfoam-org/package.py b/var/spack/repos/builtin/packages/openfoam-org/package.py index dc9b5673ee..e2859dc838 100644 --- a/var/spack/repos/builtin/packages/openfoam-org/package.py +++ b/var/spack/repos/builtin/packages/openfoam-org/package.py @@ -332,15 +332,17 @@ class OpenfoamOrg(Package): # Having wmake and ~source is actually somewhat pointless... # Install 'etc' before 'bin' (for symlinks) - dirs = ['etc', 'bin', 'wmake'] + # META-INFO for 1812 and later (or backported) + dirs = ['META-INFO', 'etc', 'bin', 'wmake'] if '+source' in spec: dirs.extend(['applications', 'src', 'tutorials']) for d in dirs: - install_tree( - d, - join_path(self.projectdir, d), - symlinks=True) + if os.path.isdir(d): + install_tree( + d, + join_path(self.projectdir, d), + symlinks=True) dirs = ['platforms'] if '+source' in spec: diff --git a/var/spack/repos/builtin/packages/openfoam/package.py b/var/spack/repos/builtin/packages/openfoam/package.py index 275af6045f..1d04ecd02e 100644 --- a/var/spack/repos/builtin/packages/openfoam/package.py +++ b/var/spack/repos/builtin/packages/openfoam/package.py @@ -214,11 +214,12 @@ def mplib_content(spec, pre=None): """The mpi settings (from spack) for the OpenFOAM wmake includes, which allows later reuse within OpenFOAM. - Optional parameter 'pre' to provide alternative prefix + Optional parameter 'pre' to provide alternative prefix for + bin and lib directories. """ mpi_spec = spec['mpi'] bin = mpi_spec.prefix.bin - inc = mpi_spec.prefix.include + inc = mpi_spec.headers.directories[0] # Currently only need first one lib = pkglib(mpi_spec) libname = 'mpi' @@ -283,6 +284,8 @@ class Openfoam(Package): variant('float32', default=False, description='Use single-precision') + variant('spdp', default=False, + description='Use single/double mixed precision') variant('int64', default=False, description='With 64-bit labels') variant('knl', default=False, @@ -317,6 +320,7 @@ class Openfoam(Package): # introduced by the restriction within scotch! depends_on('flex@:2.6.1,2.6.4:') depends_on('cmake', type='build') + depends_on('m4', type='build') # Require scotch with ptscotch - corresponds to standard OpenFOAM setup depends_on('scotch~metis+mpi~int64', when='+scotch~int64') @@ -349,7 +353,7 @@ class Openfoam(Package): # kahip patch (wmake) patch('https://develop.openfoam.com/Development/openfoam/commit/8831dfc58b0295d0d301a78341dd6f4599073d45.patch', when='@1806', - sha256='21f1ab68c82dfa41ed1a4439427c94c43ddda02c84175c30da623d905d3e5d61' + sha256='531146be868dd0cda70c1cf12a22110a38a30fd93b5ada6234be3d6c9256c6cf' ) # Some user config settings @@ -773,15 +777,17 @@ class Openfoam(Package): # Having wmake and ~source is actually somewhat pointless... # Install 'etc' before 'bin' (for symlinks) - dirs = ['etc', 'bin', 'wmake'] + # META-INFO for 1812 and later (or backported) + dirs = ['META-INFO', 'etc', 'bin', 'wmake'] if '+source' in spec: dirs.extend(['applications', 'src', 'tutorials']) for d in dirs: - install_tree( - d, - join_path(self.projectdir, d), - symlinks=True) + if os.path.isdir(d): + install_tree( + d, + join_path(self.projectdir, d), + symlinks=True) dirs = ['platforms'] if '+source' in spec: @@ -846,7 +852,7 @@ class OpenfoamArch(object): self.compiler = None # <- %compiler self.arch_option = '' # Eg, -march=knl self.label_size = None # <- +int64 - self.precision_option = 'DP' # <- +float32 + self.precision_option = 'DP' # <- +float32 | +spdp self.compile_option = kwargs.get('compile-option', '-spack') self.arch = None self.options = None @@ -858,12 +864,11 @@ class OpenfoamArch(object): elif kwargs.get('label-size', True): self.label_size = '32' - if '+float32' in spec: + if '+spdp' in spec: + self.precision_option = 'SPDP' + elif '+float32' in spec: self.precision_option = 'SP' - # TDB: mixed precision? - # self.precision_option = 'SPDP' - # Processor/architecture-specific optimizations if '+knl' in spec: self.arch_option = '-march=knl' diff --git a/var/spack/repos/builtin/packages/openfst/package.py b/var/spack/repos/builtin/packages/openfst/package.py index d8f6b01475..8399c6fcb9 100644 --- a/var/spack/repos/builtin/packages/openfst/package.py +++ b/var/spack/repos/builtin/packages/openfst/package.py @@ -16,6 +16,7 @@ class Openfst(AutotoolsPackage): url = "http://www.openfst.org/twiki/pub/FST/FstDownload/openfst-1.6.1.tar.gz" list_url = "http://www.openfst.org/twiki/bin/view/FST/FstDownload" + version('1.7.9', sha256='9319aeb31d1e2950ae25449884e255cc2bc9dfaf987f601590763e61a10fbdde') version('1.6.7', sha256='e21a486d827cde6a592c8e91721e4540ad01a5ae35a60423cf17be4d716017f7') version('1.6.1', sha256='5245af8ebccb96208eec2dfe3b3a81143d3565a4d41220bff299287fb3333f7d') version('1.6.0', sha256='c03467951631af3f74a6f33ffd50f04285bc4562f79127afd95785120379d293') @@ -30,7 +31,7 @@ class Openfst(AutotoolsPackage): version('1.4.0', sha256='eb557f37560438f03912b4e43335c4c9e72aa486d4f2046127131185eb88f17a') conflicts('%intel@16:') - conflicts('%gcc@6:') + conflicts('%gcc@6:', when='@:1.6.7') variant('far', default=False, description="Enable FAR support") diff --git a/var/spack/repos/builtin/packages/openloops/package.py b/var/spack/repos/builtin/packages/openloops/package.py new file mode 100644 index 0000000000..9a1081c2b6 --- /dev/null +++ b/var/spack/repos/builtin/packages/openloops/package.py @@ -0,0 +1,124 @@ +# 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 * +import os + + +class Openloops(Package): + """The OpenLoops 2 program is a fully automated implementation of the + Open Loops algorithm combined with on-the-fly reduction methods, + which allows for the fast and stable numerical evaluation of tree + and one-loop matrix elements for any Standard Model process + at NLO QCD and NLO EW. """ + + homepage = "https://openloops.hepforge.org/" + url = "https://openloops.hepforge.org/downloads?f=OpenLoops-2.1.1.tar.gz" + + version('2.1.1', sha256='f1c47ece812227eab584e2c695fef74423d2f212873f762b8658f728685bcb91') + + all_processes = ( + "tbln", "tbln_ew", "tbqq", "tbw", "pptttt", "pptttt_ew", "pptt", + "pptt_ew", "ppttbb", "ppttj", "ppttj_ew", "ppttjj", + "pptaj", "pptajj", "pptllj", "pptlljj", "pptln", "pptw", "pptwj", + "pptzj", "pptzjj", "ppthj", "ppthjj", "pptj", + "pptjj", "ppjj", "ppjj_ew", "ppjjj", "ppjjj_ew", "ppjjj_nf5", "ppjjjj", + "pplllvvv_ew", "ppatt", "ppatt_ew", + "ppattj", "pplltt", "pplltt_ew", "ppllttj", "ppllttj_ew", "pplntt", + "pplnttj", "ppwtt", "ppwtt_ew", "ppwttj", + "ppwttj_ew", "ppztt", "ppztt_ew", "ppzttj", "ppaatt", "ppwwtt", + "ppzatt", "ppzztt", "ppvvvv", "ppaaaj2", "ppllaa", + "ppllaaj", "pplllla", "ppvvv", "ppvvv2", "ppvvv_ew", "ppvvvj", + "ppaajj", "ppaajj2", "ppaajjj", "pplla", "pplla2", + "pplla_ew", "ppllaj", "ppllaj2", "ppllaj_ew", "ppllaj_nf5", "ppllajj", + "ppllll", "ppllll2", "ppllll2_nf5", + "ppllll2_onlyh", "ppllll_ew", "ppllllj", "ppllllj2", "ppllllj2_nf5", + "ppllllj2_nf5_notridr", "ppllllj2_nf5_sr", + "ppllllj2_onlyh", "ppllnnjj_ew", "ppllnnjj_vbs", "pplnajj", "ppvv", + "ppvv2", "ppvv_ew", "ppvvj", "ppvvj2", + "ppvvj_ew", "ppwajj", "ppwwjj", "ppzajj", "ppzwj_ew", "ppzwjj", + "ppzzjj", "ppajj", "ppajj2", "ppajj_ew", "ppajjj", + "ppllj", "ppllj2", "ppllj_ew", "ppllj_nf5", "pplljj", "pplljj_ew", + "pplljjj", "pplnj_ckm", "pplnjj", "pplnjj_ckm", + "pplnjj_ew", "pplnjjj", "ppnnjj_ew", "ppnnjjj", "ppvj", "ppvj2", + "ppvj_ew", "ppwj_ckm", "ppwjj", "ppwjj_ckm", + "ppwjj_ew", "ppwjjj", "ppzjj", "ppzjj_ew", "ppzjjj", "pphtt", + "pphtt_ew", "pphttj", "pphlltt", "pphll", "pphll2", + "pphll_ew", "pphllj", "pphllj2", "pphllj_ew", "pphlljj", "pphlljj_top", + "pphlnj_ckm", "pphlnjj", "pphv", "pphv_ew", + "pphwjj", "pphz2", "pphzj2", "pphzjj", "pphhtt", "pphhv", "pphhh2", + "heftpphh", "heftpphhj", "heftpphhjj", "pphh2", + "pphhj2", "pphhjj2", "pphhjj_vbf", "bbhj", "heftpphj", "heftpphjj", + "heftpphjjj", "pphbb", "pphbbj", "pphj2", + "pphjj2", "pphjj_vbf", "pphjj_vbf_ew", "pphjjj2", "eetttt", "eettttj", + "eellllbb", "eett", "eett_ew", "eettj", + "eettjj", "eevtt", "eevttj", "eevttjj", "eevvtt", "eevvttj", + "eellll_ew", "eevv_ew", "eevvjj", "eell_ew", "eevjj", + "eehtt", "eehttj", "eehll_ew", "eehvtt", "eehhtt", "heftppllj", + "heftpplljj", "heftpplljjj") + + variant('compile_extra', default=False, + description='Compile real radiation tree amplitudes') + variant('processes', description='Processes to install. See https://' + + 'openloops.hepforge.org/process_' + + 'library.php?repo=public for details', + values=disjoint_sets(('all.coll',), ('lhc.coll',), ('lcg.coll',), + all_processes).with_default('lhc.coll')) + + variant('num_jobs', description='Number of parallel jobs to run. ' + + 'Set to 1 if compiling a large number' + + 'of processes (e.g. lcg.coll)', default=0) + depends_on('python', type=("build", "run")) + + phases = ['configure', 'build', 'build_processes', 'install'] + + def configure(self, spec, prefix): + spack_env = ('PATH LD_LIBRARY_PATH CPATH C_INCLUDE_PATH' + + 'CPLUS_INCLUDE_PATH INTEL_LICENSE_FILE').split() + for k in env.keys(): + if k.startswith('SPACK_'): + spack_env.append(k) + + spack_env = ' '.join(spack_env) + is_intel = self.spec.satisfies('%intel') + njobs = self.spec.variants['num_jobs'].value + + with open('openloops.cfg', 'w') as f: + f.write('[OpenLoops]\n') + f.write('import_env={0}\n'.format(spack_env)) + f.write('num_jobs = {0}\n'.format(njobs)) + f.write('process_lib_dir = {0}\n'.format(self.spec.prefix.proclib)) + f.write('cc = {0}\n'.format(env['SPACK_CC'])) + f.write('cxx = {0}\n'.format(env['SPACK_CXX'])) + f.write('fortran_compiler = {0}\n'.format(env['SPACK_FC'])) + if self.spec.satisfies('@1.3.1') and not is_intel: + f.write('gfortran_f_flags = -ffree-line-length-none\n') + if self.spec.satisfies('@2.1.1') and not is_intel: + f.write('gfortran_f_flags = -ffree-line-length-none ' + + '-fdollar-ok -mcmodel=medium\n') + + if self.spec.satisfies('@:1.999.999 processes=lcg.coll'): + copy(join_path(os.path.dirname(__file__), 'sft1.coll'), 'lcg.coll') + elif self.spec.satisfies('@2:2.999.999 processes=lcg.coll'): + copy(join_path(os.path.dirname(__file__), 'sft2.coll'), 'lcg.coll') + + def build(self, spec, prefix): + scons = Executable('./scons') + scons('generator=1', 'compile=2') + + def build_processes(self, spec, prefix): + ol = Executable('./openloops') + processes = self.spec.variants['processes'].value + if '+compile_extra' in self.spec: + ce = 'compile_extra=1' + else: + ce = '' + + ol('libinstall', ce, *processes) + + def install(self, spec, prefix): + install_tree(join_path(self.stage.path, 'spack-src'), + self.prefix, + ignore=lambda x: x in ('process_obj', 'process_src')) diff --git a/var/spack/repos/builtin/packages/openloops/sft1.coll b/var/spack/repos/builtin/packages/openloops/sft1.coll new file mode 100644 index 0000000000..1a4bb5d404 --- /dev/null +++ b/var/spack/repos/builtin/packages/openloops/sft1.coll @@ -0,0 +1,26 @@ +ppll +ppllj +pplljj +ppln +pplnj +pplnjj +pptt +ppttj +ppttjj +pptj +pptjj +ppjj +ppjjj +ppjjjj +ppaa +ppaaj +ppaajj +ppw +ppwj +ppwjj +ppz +ppzj +ppzjj +tbw +eevvjj +eett diff --git a/var/spack/repos/builtin/packages/openloops/sft2.coll b/var/spack/repos/builtin/packages/openloops/sft2.coll new file mode 100644 index 0000000000..b7d9b2423c --- /dev/null +++ b/var/spack/repos/builtin/packages/openloops/sft2.coll @@ -0,0 +1,76 @@ +pptttt +pptt +pptt_ew +ppttbb +ppttj +ppttj_ew +pptw +pptj +pptjj +ppjj +ppjj_ew +ppjjj +ppjjj_ew +ppatt +ppattj +pplltt +ppllttj +pplntt +pplnttj +ppwtt +ppwttj +ppllaa +pplllla +ppvvv +ppvvv_ew +ppvvvj +ppaaj +ppaaj2 +pplla +pplla_ew +ppllaj +ppllll +ppllll2 +ppllll2_onlyh +ppllll_ew +ppllllj +ppllllj2 +ppllllj2_onlyh +ppllnnjj_ew +ppllnnjj_vbs +pplnajj +ppvv +ppvv2 +ppvv_ew +ppvvj +ppvvj2 +ppvvj_ew +ppajj +ppajj_ew +ppllj +ppllj_ew +pplljj +pplljj_ew +pplnjj +pplnjj_ew +ppnnjj_ew +ppvj +ppvj_ew +ppwjj +ppwjj_ew +ppzjj +ppzjj_ew +pphtt +pphtt_ew +pphttj +bbhj +heftpphj +heftpphjj +pph2 +pphbb +pphbbj +pphj2 +pphjj_vbf +pphjj_vbf_ew +eett +tbw diff --git a/var/spack/repos/builtin/packages/openmpi/package.py b/var/spack/repos/builtin/packages/openmpi/package.py index 4184e64f02..1d19b1fbfd 100644 --- a/var/spack/repos/builtin/packages/openmpi/package.py +++ b/var/spack/repos/builtin/packages/openmpi/package.py @@ -219,6 +219,10 @@ class Openmpi(AutotoolsPackage): variant('cxx', default=False, description='Enable C++ MPI bindings') variant('cxx_exceptions', default=False, description='Enable C++ Exception support') variant('gpfs', default=True, description='Enable GPFS support (if present)') + variant('singularity', default=False, + description="Build support for the Singularity container") + variant('lustre', default=False, + description="Lustre filesystem library support") # Adding support to build a debug version of OpenMPI that activates # Memchecker, as described here: # @@ -265,6 +269,9 @@ class Openmpi(AutotoolsPackage): depends_on('sqlite', when='+sqlite3@:1.11') depends_on('zlib', when='@3.0.0:') depends_on('valgrind~mpi', when='+memchecker') + # Singularity release 3 works better + depends_on('singularity@3.0.0:', when='+singularity') + depends_on('lustre', when='+lustre') depends_on('opa-psm2', when='fabrics=psm2') depends_on('rdma-core', when='fabrics=verbs') @@ -317,6 +324,8 @@ class Openmpi(AutotoolsPackage): conflicts('schedulers=loadleveler', when='@3.0.0:', msg='The loadleveler scheduler is not supported with ' 'openmpi(>=3.0.0).') + conflicts('+singularity', when='@5:', + msg='singularity support has been dropped in OpenMPI 5') filter_compiler_wrappers('openmpi/*-wrapper-data*', relative_root='share') @@ -528,6 +537,15 @@ class Openmpi(AutotoolsPackage): '--with-valgrind={0}'.format(spec['valgrind'].prefix), ]) + # Singularity container support + if spec.satisfies('+singularity @:4.9'): + singularity_opt = '--with-singularity={0}'.format( + spec['singularity'].prefix) + config_args.append(singularity_opt) + # Lustre filesystem support + if spec.satisfies('+lustre'): + lustre_opt = '--with-lustre={0}'.format(spec['lustre'].prefix) + config_args.append(lustre_opt) # Hwloc support if spec.satisfies('@1.5.2:'): config_args.append('--with-hwloc={0}'.format(spec['hwloc'].prefix)) diff --git a/var/spack/repos/builtin/packages/openslide/package.py b/var/spack/repos/builtin/packages/openslide/package.py index d86af5a1aa..c41da2461b 100644 --- a/var/spack/repos/builtin/packages/openslide/package.py +++ b/var/spack/repos/builtin/packages/openslide/package.py @@ -19,3 +19,6 @@ class Openslide(AutotoolsPackage): depends_on('libtiff') depends_on('libxml2') depends_on('sqlite@3.6:') + depends_on('glib') + depends_on('cairo+pdf') + depends_on('gdk-pixbuf') diff --git a/var/spack/repos/builtin/packages/openssl/package.py b/var/spack/repos/builtin/packages/openssl/package.py index ae47568ce8..3bee1ea0a1 100644 --- a/var/spack/repos/builtin/packages/openssl/package.py +++ b/var/spack/repos/builtin/packages/openssl/package.py @@ -9,6 +9,7 @@ from spack import * import spack.architecture import os +import re class Openssl(Package): # Uses Fake Autotools, should subclass Package @@ -23,6 +24,8 @@ class Openssl(Package): # Uses Fake Autotools, should subclass Package list_url = "http://www.openssl.org/source/old/" list_depth = 1 + executables = ['openssl'] + # The latest stable version is the 1.1.1 series. This is also our Long Term # Support (LTS) version, supported until 11th September 2023. version('1.1.1g', sha256='ddb04774f1e32f0c49751e21b67216ac87852ceb056b75209af2443400636d46') @@ -75,7 +78,11 @@ class Openssl(Package): # Uses Fake Autotools, should subclass Package depends_on('perl@5.14.0:', type=('build', 'test')) - parallel = False + @classmethod + def determine_version(cls, exe): + output = Executable(exe)('version', output=str) + match = re.search(r'OpenSSL.(\S+)*', output) + return match.group(1) if match else None @property def libs(self): @@ -119,8 +126,10 @@ class Openssl(Package): # Uses Fake Autotools, should subclass Package make() if self.run_tests: - make('test') # 'VERBOSE=1' - make('install') + make('test', parallel=False) # 'VERBOSE=1' + + # See https://github.com/openssl/openssl/issues/7466#issuecomment-432148137 + make('install', parallel=False) @run_after('install') def link_system_certs(self): diff --git a/var/spack/repos/builtin/packages/parallelmergetree/package.py b/var/spack/repos/builtin/packages/parallelmergetree/package.py new file mode 100644 index 0000000000..36069e755f --- /dev/null +++ b/var/spack/repos/builtin/packages/parallelmergetree/package.py @@ -0,0 +1,34 @@ +# 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 Parallelmergetree(CMakePackage): + """A multi-runtime implementation of a distributed merge tree + segmentation algorithm. The implementation relies on the framework + BabelFlow, which allows to execute the algorithm on different runtime + systems.""" + + homepage = "https://bitbucket.org/cedmav/parallelmergetree" + git = "https://bitbucket.org/cedmav/parallelmergetree.git" + + maintainers = ['spetruzza'] + + version('develop', + commit='6774ed74fd13b9747ac792978a676ce6e8b05cab', + submodules=True) + + depends_on('babelflow@develop') + + variant("shared", default=True, description="Build ParallelMergeTree as shared libs") + + def cmake_args(self): + args = [ + '-DBUILD_SHARED_LIBS:BOOL={0}'.format( + 'ON' if '+shared' in spec else 'OFF'), + '-DLIBRARY_ONLY=ON' + ] + return args diff --git a/var/spack/repos/builtin/packages/paraview/package.py b/var/spack/repos/builtin/packages/paraview/package.py index bb8b140b74..018cc68290 100644 --- a/var/spack/repos/builtin/packages/paraview/package.py +++ b/var/spack/repos/builtin/packages/paraview/package.py @@ -20,6 +20,7 @@ class Paraview(CMakePackage, CudaPackage): maintainers = ['chuckatkins', 'danlipsa'] version('develop', branch='master', submodules=True) + version('5.8.1', sha256='7653950392a0d7c0287c26f1d3a25cdbaa11baa7524b0af0e6a1a0d7d487d034') version('5.8.0', sha256='219e4107abf40317ce054408e9c3b22fb935d464238c1c00c0161f1c8697a3f9') version('5.7.0', sha256='e41e597e1be462974a03031380d9e5ba9a7efcdb22e4ca2f3fec50361f310874') version('5.6.2', sha256='1f3710b77c58a46891808dbe23dc59a1259d9c6b7bb123aaaeaa6ddf2be882ea') @@ -51,7 +52,8 @@ class Paraview(CMakePackage, CudaPackage): description='Use module kits') conflicts('+python', when='+python3') - conflicts('+python', when='@5.6:') + # Python 2 support dropped with 5.9.0 + conflicts('+python', when='@5.9:') conflicts('+python3', when='@:5.5') conflicts('+shared', when='+cuda') # Legacy rendering dropped in 5.5 @@ -110,6 +112,11 @@ class Paraview(CMakePackage, CudaPackage): depends_on('zlib') depends_on('cmake@3.3:', type='build') + # Can't contretize with python2 and py-setuptools@45.0.0: + depends_on('py-setuptools@:44.99.99', when='+python') + # Can't contretize with python2 and py-pillow@7.0.0: + depends_on('py-pillow@:6', when='+python') + patch('stl-reader-pv440.patch', when='@4.4.0') # Broken gcc-detection - improved in 5.1.0, redundant later @@ -232,13 +239,20 @@ class Paraview(CMakePackage, CudaPackage): '-DPARAVIEW_QT_VERSION=%s' % spec['qt'].version[0], ]) + # CMake flags for python have changed with newer ParaView versions + # Make sure Spack uses the right cmake flags if '+python' in spec or '+python3' in spec: + py_use_opt = 'USE' if spec.satisfies('@5.8:') else 'ENABLE' + py_ver_opt = 'PARAVIEW' if spec.satisfies('@5.7:') else 'VTK' + py_ver_val = 3 if '+python3' in spec else 2 cmake_args.extend([ - '-DPARAVIEW_ENABLE_PYTHON:BOOL=ON', + '-DPARAVIEW_%s_PYTHON:BOOL=ON' % py_use_opt, '-DPYTHON_EXECUTABLE:FILEPATH=%s' % spec['python'].command.path, - '-DVTK_USE_SYSTEM_MPI4PY:BOOL=%s' % variant_bool('+mpi') + '-DVTK_USE_SYSTEM_MPI4PY:BOOL=%s' % variant_bool('+mpi'), + '-D%s_PYTHON_VERSION:STRING=%d' % (py_ver_opt, py_ver_val) ]) + else: cmake_args.append('-DPARAVIEW_ENABLE_PYTHON:BOOL=OFF') diff --git a/var/spack/repos/builtin/packages/pbbam/package.py b/var/spack/repos/builtin/packages/pbbam/package.py index 26622715e9..03be8f3b61 100644 --- a/var/spack/repos/builtin/packages/pbbam/package.py +++ b/var/spack/repos/builtin/packages/pbbam/package.py @@ -34,9 +34,10 @@ class Pbbam(CMakePackage): return options def install(self, spec, prefix): - install_tree('spack-build/bin', prefix.bin) - install_tree('spack-build/lib', prefix.lib) install_tree('include/pbbam', prefix.include.pbbam) + with working_dir(self.build_directory): + install_tree('bin', prefix.bin) + install_tree('lib', prefix.lib) def setup_dependent_build_environment(self, env, dependent_spec): env.set('PacBioBAM_LIBRARIES', self.prefix.lib) diff --git a/var/spack/repos/builtin/packages/perl/package.py b/var/spack/repos/builtin/packages/perl/package.py index ae47c8ce03..a68b97eac6 100644 --- a/var/spack/repos/builtin/packages/perl/package.py +++ b/var/spack/repos/builtin/packages/perl/package.py @@ -11,6 +11,7 @@ # Author: Justin Too <justin@doubleotoo.com> # Date: September 6, 2015 # +import re import os from contextlib import contextmanager @@ -27,6 +28,8 @@ class Perl(Package): # Perl doesn't use Autotools, it should subclass Package # URL must remain http:// so Spack can bootstrap curl url = "http://www.cpan.org/src/5.0/perl-5.24.1.tar.gz" + executables = [r'^perl(-?\d+.*)?$'] + # see http://www.cpan.org/src/README.html for # explanation of version numbering scheme @@ -59,6 +62,7 @@ class Perl(Package): # Perl doesn't use Autotools, it should subclass Package extendable = True depends_on('gdbm') + depends_on('berkeley-db') # there has been a long fixed issue with 5.22.0 with regard to the ccflags # definition. It is well documented here: @@ -92,6 +96,40 @@ class Perl(Package): # Perl doesn't use Autotools, it should subclass Package phases = ['configure', 'build', 'install'] + @classmethod + def determine_version(cls, exe): + perl = spack.util.executable.Executable(exe) + output = perl('--version', output=str) + if output: + match = re.search(r'perl.*\(v([0-9.]+)\)', output) + if match: + return match.group(1) + return None + + @classmethod + def determine_variants(cls, exes, version): + for exe in exes: + perl = spack.util.executable.Executable(exe) + output = perl('-V', output=str) + variants = '' + if output: + match = re.search(r'-Duseshrplib', output) + if match: + variants += '+shared' + else: + variants += '~shared' + match = re.search(r'-Duse.?threads', output) + if match: + variants += '+threads' + else: + variants += '~threads' + path = os.path.dirname(exe) + if 'cpanm' in os.listdir(path): + variants += '+cpanm' + else: + variants += '~cpanm' + return variants + # On a lustre filesystem, patch may fail when files # aren't writeable so make pp.c user writeable # before patching. This should probably walk the diff --git a/var/spack/repos/builtin/packages/petsc/package.py b/var/spack/repos/builtin/packages/petsc/package.py index 9da9740674..0a44765056 100644 --- a/var/spack/repos/builtin/packages/petsc/package.py +++ b/var/spack/repos/builtin/packages/petsc/package.py @@ -19,6 +19,9 @@ class Petsc(Package): version('develop', branch='master') version('xsdk-0.2.0', tag='xsdk-0.2.0') + version('3.13.4', sha256='8d470cba1ceb9638694550134a2f23aac85ed7249cb74992581210597d978b94') + version('3.13.3', sha256='dc744895ee6b9c4491ff817bef0d3abd680c5e3c25e601be44240ce65ab4f337') + version('3.13.2', sha256='6083422a7c5b8e89e5e4ccf64acade9bf8ab70245e25bca3a3da03caf74602f1') version('3.13.1', sha256='74a895e44e2ff1146838aaccb7613e7626d99e0eed64ca032c87c72d084efac3') version('3.13.0', sha256='f0ea543a54145c5d1387e25b121c3fd1b1ca834032c5a33f6f1d929e95bdf0e5') version('3.12.5', sha256='d676eb67e79314d6cca6422d7c477d2b192c830b89d5edc6b46934f7453bcfc0') @@ -101,10 +104,47 @@ class Petsc(Package): description='Enable when mpiexec is not available to run binaries') variant('valgrind', default=False, description='Enable Valgrind Client Request mechanism') + variant('jpeg', default=False, + description='Activates support for JPEG') + variant('libpng', default=False, + description='Activates support for PNG') + variant('giflib', default=False, + description='Activates support for GIF') + variant('mpfr', default=False, + description='Activates support for MPFR') + variant('moab', default=False, + description='Acivates support for MOAB (only parallel)') + variant('random123', default=False, + description='Activates support for Random123') + variant('exodusii', default=False, + description='Activates support for ExodusII (only parallel)') + variant('cgns', default=False, + description='Activates support for CGNS (only parallel)') + variant('memkind', default=False, + description='Activates support for Memkind') + variant('p4est', default=False, + description='Activates support for P4Est (only parallel)') + variant('saws', default=False, + description='Activates support for Saws') + variant('libyaml', default=False, + description='Activates support for YAML') # 3.8.0 has a build issue with MKL - so list this conflict explicitly conflicts('^intel-mkl', when='@3.8.0') + # These require +mpi + mpi_msg = 'Requires +mpi' + conflicts('+cgns', when='~mpi', msg=mpi_msg) + conflicts('+exodusii', when='~mpi', msg=mpi_msg) + conflicts('+fftw', when='~mpi', msg=mpi_msg) + conflicts('+hdf5', when='~mpi', msg=mpi_msg) + conflicts('+hypre', when='~mpi', msg=mpi_msg) + conflicts('+moab', when='~mpi', msg=mpi_msg) + conflicts('+mumps', when='~mpi', msg=mpi_msg) + conflicts('+p4est', when='~mpi', msg=mpi_msg) + conflicts('+superlu-dist', when='~mpi', msg=mpi_msg) + conflicts('+trilinos', when='~mpi', msg=mpi_msg) + filter_compiler_wrappers( 'petscvariables', relative_root='lib/petsc/conf' ) @@ -119,6 +159,8 @@ class Petsc(Package): patch('xlf_fix-dup-petscfecreate.patch', when='@3.11.0') + depends_on('diffutils', type='build') + # Virtual dependencies # Git repository needs sowing to build Fortran interface depends_on('sowing', when='@develop') @@ -146,21 +188,27 @@ class Petsc(Package): depends_on('hdf5@:1.10.99+mpi', when='@:3.12.99+hdf5+mpi') depends_on('hdf5+mpi', when='@3.13:+hdf5+mpi') + depends_on('hdf5+mpi', when='+exodusii+mpi') + depends_on('hdf5+mpi', when='+cgns+mpi') depends_on('zlib', when='+hdf5') + depends_on('zlib', when='+libpng') + depends_on('zlib', when='+p4est') depends_on('parmetis', when='+metis+mpi') depends_on('valgrind', when='+valgrind') # Hypre does not support complex numbers. # Also PETSc prefer to build it without internal superlu, likely due to # conflict in headers see # https://bitbucket.org/petsc/petsc/src/90564b43f6b05485163c147b464b5d6d28cde3ef/config/BuildSystem/config/packages/hypre.py - depends_on('hypre@:2.13.99~internal-superlu~int64', when='@:3.8.99+hypre+mpi~complex~int64') - depends_on('hypre@:2.13.99~internal-superlu+int64', when='@:3.8.99+hypre+mpi~complex+int64') - depends_on('hypre@2.14:~internal-superlu~int64', when='@3.9:+hypre+mpi~complex~int64') - depends_on('hypre@2.14:~internal-superlu+int64', when='@3.9:+hypre+mpi~complex+int64') - depends_on('hypre@xsdk-0.2.0~internal-superlu+int64', when='@xsdk-0.2.0+hypre+mpi~complex+int64') - depends_on('hypre@xsdk-0.2.0~internal-superlu~int64', when='@xsdk-0.2.0+hypre+mpi~complex~int64') - depends_on('hypre@develop~internal-superlu+int64', when='@develop+hypre+mpi~complex+int64') - depends_on('hypre@develop~internal-superlu~int64', when='@develop+hypre+mpi~complex~int64') + depends_on('hypre@:2.13.99+mpi~internal-superlu~int64', when='@:3.8.99+hypre+mpi~complex~int64') + depends_on('hypre@:2.13.99+mpi~internal-superlu+int64', when='@:3.8.99+hypre+mpi~complex+int64') + depends_on('hypre@2.14:2.18.2+mpi~internal-superlu~int64', when='@3.9:3.13.99+hypre+mpi~complex~int64') + depends_on('hypre@2.14:2.18.2+mpi~internal-superlu+int64', when='@3.9:3.13.99+hypre+mpi~complex+int64') + depends_on('hypre@2.14:+mpi~internal-superlu~int64', when='@3.14:+hypre+mpi~complex~int64') + depends_on('hypre@2.14:+mpi~internal-superlu+int64', when='@3.14:+hypre+mpi~complex+int64') + depends_on('hypre@xsdk-0.2.0+mpi~internal-superlu+int64', when='@xsdk-0.2.0+hypre+mpi~complex+int64') + depends_on('hypre@xsdk-0.2.0+mpi~internal-superlu~int64', when='@xsdk-0.2.0+hypre+mpi~complex~int64') + depends_on('hypre@develop+mpi~internal-superlu+int64', when='@develop+hypre+mpi~complex+int64') + depends_on('hypre@develop+mpi~internal-superlu~int64', when='@develop+hypre+mpi~complex~int64') depends_on('superlu-dist@:4.3~int64', when='@3.4.4:3.6.4+superlu-dist+mpi~int64') depends_on('superlu-dist@:4.3+int64', when='@3.4.4:3.6.4+superlu-dist+mpi+int64') depends_on('superlu-dist@5.0.0:5.1.3~int64', when='@3.7:3.7.99+superlu-dist+mpi~int64') @@ -179,12 +227,27 @@ class Petsc(Package): depends_on('superlu-dist@develop+int64', when='@develop+superlu-dist+mpi+int64') depends_on('mumps+mpi', when='+mumps+mpi~int64') depends_on('scalapack', when='+mumps+mpi~int64') - depends_on('trilinos@12.6.2:', when='@3.7.0:+trilinos+mpi') - depends_on('trilinos@xsdk-0.2.0', when='@xsdk-0.2.0+trilinos+mpi') - depends_on('trilinos@develop', when='@xdevelop+trilinos+mpi') + depends_on('trilinos@12.6.2:+mpi', when='@3.7.0:+trilinos+mpi') + depends_on('trilinos@xsdk-0.2.0+mpi', when='@xsdk-0.2.0+trilinos+mpi') + depends_on('trilinos@develop+mpi', when='@xdevelop+trilinos+mpi') depends_on('fftw+mpi', when='+fftw+mpi') depends_on('suite-sparse', when='+suite-sparse') depends_on('libx11', when='+X') + depends_on('mpfr', when='+mpfr') + depends_on('gmp', when='+mpfr') + depends_on('jpeg', when='+jpeg') + depends_on('libpng', when='+libpng') + depends_on('giflib', when='+giflib') + depends_on('exodusii+mpi', when='+exodusii+mpi') + depends_on('netcdf-c+mpi', when='+exodusii+mpi') + depends_on('parallel-netcdf', when='+exodusii+mpi') + depends_on('random123', when='+random123') + depends_on('moab+mpi', when='+moab+mpi') + depends_on('cgns+mpi', when='+cgns+mpi') + depends_on('memkind', when='+memkind') + depends_on('p4est+mpi', when='+p4est+mpi') + depends_on('saws', when='+saws') + depends_on('libyaml', when='+libyaml') def url_for_version(self, version): if version >= Version('3.13.0'): @@ -203,18 +266,6 @@ class Petsc(Package): if self.compiler.fc is not None else '0'), '--with-mpi=0' ] - error_message_fmt = \ - '\t{library} support requires "+mpi" to be activated' - - # If mpi is disabled (~mpi), it's an error to have any of these - # enabled. This generates a list of any such errors. - errors = [ - error_message_fmt.format(library=x) - for x in ('hdf5', 'hypre', 'mumps', 'superlu-dist') - if ('+' + x) in self.spec] - if errors: - errors = ['incompatible variants given'] + errors - raise RuntimeError('\n'.join(errors)) else: compiler_opts = [ '--with-cc=%s' % self.spec['mpi'].mpicc, @@ -291,20 +342,36 @@ class Petsc(Package): ]) # Activates library support if needed (i.e. direct dependency) - for library in ('cuda', 'metis', 'hypre', 'parmetis', - 'mumps', 'trilinos', 'fftw', 'valgrind'): + if '^libjpeg-turbo' in spec: + jpeg_library = 'libjpeg-turbo' + else: + jpeg_library = 'libjpeg' + + for library in ('cuda', 'metis', 'hypre', 'parmetis', 'mumps', + 'trilinos', 'fftw', 'valgrind', 'gmp', 'libpng', + 'giflib', 'mpfr', 'netcdf-c', 'parallel-netcdf', + 'moab', 'random123', 'exodusii', 'cgns', 'memkind', + 'p4est', 'saws', 'libyaml', jpeg_library): # Cannot check `library in spec` because of transitive deps # Cannot check variants because parmetis keys on +metis library_requested = library in spec.dependencies_dict() options.append( '--with-{library}={value}'.format( - library=library, + library=('libjpeg' if library == 'libjpeg-turbo' + else 'netcdf' if library == 'netcdf-c' + else 'pnetcdf' if library == 'parallel-netcdf' + else 'yaml' if library == 'libyaml' + else library), value=('1' if library_requested else '0')) ) if library_requested: options.append( '--with-{library}-dir={path}'.format( - library=library, path=spec[library].prefix) + library=('libjpeg' if library == 'libjpeg-turbo' + else 'netcdf' if library == 'netcdf-c' + else 'pnetcdf' if library == 'parallel-netcdf' + else 'yaml' if library == 'libyaml' + else library), path=spec[library].prefix) ) # PETSc does not pick up SuperluDist from the dir as they look for diff --git a/var/spack/repos/builtin/packages/pgi/package.py b/var/spack/repos/builtin/packages/pgi/package.py index bc5f809109..1ad53bb20b 100644 --- a/var/spack/repos/builtin/packages/pgi/package.py +++ b/var/spack/repos/builtin/packages/pgi/package.py @@ -20,6 +20,7 @@ class Pgi(Package): homepage = "http://www.pgroup.com/" + version('20.4', sha256='f3ecc2104b304cd5c8b20e3ffdb5da88f2b5f7cc148e8daf00561928a5cbbc2e') version('19.10', sha256='ac9db73ba80a66fe3bc875f63aaa9e16f54674a4e88b25416432430ba8cf203d') version('19.7', sha256='439692aeb51eff464b968c3bfed4536ed7bd3ba6f8174bc0ebe2219a78fe62ae') version('19.4', sha256='23eee0d4da751dd6f247d624b68b03538ebd172e63a053c41bb67013f07cf68e') diff --git a/var/spack/repos/builtin/packages/plumed/package.py b/var/spack/repos/builtin/packages/plumed/package.py index b51d3c12c2..0eae1ac429 100644 --- a/var/spack/repos/builtin/packages/plumed/package.py +++ b/var/spack/repos/builtin/packages/plumed/package.py @@ -25,8 +25,10 @@ class Plumed(AutotoolsPackage): git = 'https://github.com/plumed/plumed2.git' version('master', branch='master') + version('2.6.1', sha256='c1b3c397b2d971140aa240dde50e48a04ce78e3dedb02b6dca80fa53f8026e4e') version('2.6.0', sha256='3d57ae460607a49547ef38a52c4ac93493a3966857c352280a9c05f5dcdb1820') - version('2.5.4', preferred=True, sha256='a1647e598191f261e75d06351e607475d395af481315052a4c28563ac9989a7f') + version('2.5.5', preferred=True, sha256='70faa9ff1938e286dc388cb793b39840953e5646855b684f48df1bc864b737e8') + version('2.5.4', sha256='a1647e598191f261e75d06351e607475d395af481315052a4c28563ac9989a7f') version('2.5.3', sha256='543288be667dc4201fc461ecd2dd4878ddfbeac682d0c021c99ea8e501c7c9dc') version('2.5.2', sha256='85d10cc46e2e37c7719cf51c0931278f56c2c8f8a9d86188b2bf97c2535a2ab4') version('2.5.1', sha256='de309980dcfd6f6e0e70e138856f4bd9eb4d8a513906a5e6389f18a5af7f2eba') diff --git a/var/spack/repos/builtin/packages/podio/package.py b/var/spack/repos/builtin/packages/podio/package.py index 7211cdf111..8667dec94e 100644 --- a/var/spack/repos/builtin/packages/podio/package.py +++ b/var/spack/repos/builtin/packages/podio/package.py @@ -17,6 +17,7 @@ class Podio(CMakePackage): maintainers = ['vvolkl', 'drbenmorgan'] version('master', branch='master') + version('0.11.0', sha256='4b2765566a14f0ddece2c894634e0a8e4f42f3e44392addb9110d856f6267fb6') version('0.10.0', sha256='b5b42770ec8b96bcd2748abc05669dd3e4d4cc84f81ed57d57d2eda1ade90ef2') version('0.9.2', sha256='8234d1b9636029124235ef81199a1220968dcc7fdaeab81cdc96a47af332d240') version('0.9.0', sha256='3cde67556b6b76fd2d004adfaa3b3b6173a110c0c209792bfdb5f9353e21076f') @@ -35,6 +36,7 @@ class Podio(CMakePackage): depends_on('cmake@3.8:', type='build') depends_on('python', type=('build', 'run')) depends_on('py-pyyaml', type=('build', 'run')) + depends_on('py-jinja2@2.10.1:', type=('build', 'run'), when='@0.12:') def cmake_args(self): args = [] @@ -44,15 +46,6 @@ class Podio(CMakePackage): args.append('-DBUILD_TESTING=%s' % self.run_tests) return args - def setup_build_environment(self, spack_env): - spack_env.prepend_path('LD_LIBRARY_PATH', self.spec['root'].prefix.lib) - - def setup_dependent_build_environment(self, env, dependent_spec): - env.set('PODIO', self.prefix) - - def setup_dependent_run_environment(self, env, dependent_spec): - env.set('PODIO', self.prefix) - def url_for_version(self, version): # podio releases are dashes and padded with a leading zero # the patch version is omitted when 0 diff --git a/var/spack/repos/builtin/packages/poppler/package.py b/var/spack/repos/builtin/packages/poppler/package.py index 2848c81eb1..6ecab70351 100644 --- a/var/spack/repos/builtin/packages/poppler/package.py +++ b/var/spack/repos/builtin/packages/poppler/package.py @@ -15,6 +15,7 @@ class Poppler(CMakePackage): git = "https://gitlab.freedesktop.org/poppler/poppler.git" version('master', branch='master') + version('0.90.1', sha256='984d82e72e91418d280885298c8bdc855a2fd92665fd52a1345b27235e0c71c4') version('0.87.0', sha256='6f602b9c24c2d05780be93e7306201012e41459f289b8279a27a79431ad4150e') version('0.79.0', sha256='f985a4608fe592d2546d9d37d4182e502ff6b4c42f8db4be0a021a1c369528c8') version('0.77.0', sha256='7267eb4cbccd64a58244b8211603c1c1b6bf32c7f6a4ced2642865346102f36b') diff --git a/var/spack/repos/builtin/packages/precice/package.py b/var/spack/repos/builtin/packages/precice/package.py index 45548275c8..36e7811d81 100644 --- a/var/spack/repos/builtin/packages/precice/package.py +++ b/var/spack/repos/builtin/packages/precice/package.py @@ -19,6 +19,7 @@ class Precice(CMakePackage): maintainers = ['fsimonis', 'MakisH'] version('develop', branch='develop') + version('2.1.0', sha256='1e6432724f70d0c6c05fdd645e0026754edbc547719a35bf1d3c12a779b1d00e') version('2.0.2', sha256='72864480f32696e7b6da94fd404ef5cd6586e2e1640613e46b75f1afac8569ed') version('2.0.1', sha256='e4fe2d2063042761ab325f8c802f88ae088c90862af288ad1a642967d074bd50') version('2.0.0', sha256='c8979d366f06e35626a8da08a1c589df77ec13972eb524a1ba99a011e245701f') @@ -48,6 +49,7 @@ class Precice(CMakePackage): depends_on('libxml2') depends_on('mpi', when='+mpi') depends_on('petsc@3.6:', when='+petsc') + depends_on('petsc@3.12:', when='+petsc@2.1.0:') # Python 3 support was added in version 2.0 depends_on('python@2.7:2.8', when='@:1.9+python', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/profugusmc/package.py b/var/spack/repos/builtin/packages/profugusmc/package.py new file mode 100644 index 0000000000..0922b3f470 --- /dev/null +++ b/var/spack/repos/builtin/packages/profugusmc/package.py @@ -0,0 +1,24 @@ +# 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 Profugusmc(CMakePackage, CudaPackage): + """ProfugusMC is a Monte Carlo radiation transport mini-app. It is designed + to be a minimal, self-contained version of the Profugus application.""" + + homepage = "https://code.ornl.gov/ProfugusMC/ProfugusMC" + git = "https://code.ornl.gov/ProfugusMC/ProfugusMC.git" + url = "https://code.ornl.gov/ProfugusMC/ProfugusMC/-/archive/master/ProfugusMC-master.tar.gz" + + version('master', branch='master') + + variant('mpi', default=True, description='Enable MPI') + variant('cuda', default=False, description='Enable CUDA') + + depends_on('blas') + depends_on('lapack') + depends_on('mpi', when='+mpi') + depends_on('cuda', when='+cuda') diff --git a/var/spack/repos/builtin/packages/prometheus/package.py b/var/spack/repos/builtin/packages/prometheus/package.py new file mode 100644 index 0000000000..10a9e956c3 --- /dev/null +++ b/var/spack/repos/builtin/packages/prometheus/package.py @@ -0,0 +1,34 @@ +# 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 Prometheus(MakefilePackage): + """Prometheus, a Cloud Native Computing Foundation project, is a + systems and service monitoring system.""" + + homepage = "https://prometheus.io/" + url = "https://github.com/prometheus/prometheus/archive/v2.19.2.tar.gz" + + version('2.19.2', sha256='d4e84cae2fed6761bb8a80fcc69b6e0e9f274d19dffc0f38fb5845f11da1bbc3') + version('2.19.1', sha256='b72b9b6bdbae246dcc29ef354d429425eb3c0a6e1596fc8b29b502578a4ce045') + version('2.18.2', sha256='a26c106c97d81506e3a20699145c11ea2cce936427a0e96eb2fd0dc7cd1945ba') + version('2.17.1', sha256='d0b53411ea0295c608634ca7ef1d43fa0f5559e7ad50705bf4d64d052e33ddaf') + version('2.17.0', sha256='b5e508f1c747aaf50dd90a48e5e2a3117fec2e9702d0b1c7f97408b87a073009') + + depends_on('go', type='build') + depends_on('node-js@11.10.1:', type='build') + depends_on('yarn', type='build') + + def build(self, spec, prefix): + make('build', parallel=False) + + def install(self, spec, prefix): + mkdirp(prefix.bin) + install('prometheus', prefix.bin) + install('promtool', prefix.bin) + install('tsdb/tsdb', prefix.bin) + install_tree('documentation', prefix.documentation) diff --git a/var/spack/repos/builtin/packages/protobuf/package.py b/var/spack/repos/builtin/packages/protobuf/package.py index 1cbd94b314..060d345b45 100644 --- a/var/spack/repos/builtin/packages/protobuf/package.py +++ b/var/spack/repos/builtin/packages/protobuf/package.py @@ -12,8 +12,13 @@ class Protobuf(Package): """Google's data interchange format.""" homepage = "https://developers.google.com/protocol-buffers" - url = "https://github.com/protocolbuffers/protobuf/archive/v3.10.1.tar.gz" + url = "https://github.com/protocolbuffers/protobuf/archive/v3.12.2.tar.gz" + version('3.12.2', sha256='bb8ce9ba11eb7bccf080599fe7cad9cc461751c8dd1ba61701c0070d58cde973') + version('3.12.1', sha256='cb9b3f9d625b5739a358268eb3421de11cacd90025f5f7672c3930553eca810e') + version('3.12.0', sha256='946ba5371e423e1220d2cbefc1f65e69a1e81ca5bab62a03d66894172983cfcd') + version('3.11.4', sha256='a79d19dcdf9139fa4b81206e318e33d245c4c9da1ffed21c87288ed4380426f9') + version('3.11.3', sha256='cf754718b0aa945b00550ed7962ddc167167bd922b842199eeb6505e6f344852') version('3.11.2', sha256='e8c7601439dbd4489fe5069c33d374804990a56c2f710e00227ee5d8fd650e67') version('3.11.1', sha256='4f8e805825c53bbc3c9f6b6abc009b5b5679e4702bccfca1121c42ff5ec801c7') version('3.11.0', sha256='6d356a6279cc76d2d5c4dfa6541641264b59eae0bc96b852381361e3400d1f1c') diff --git a/var/spack/repos/builtin/packages/psi4/package.py b/var/spack/repos/builtin/packages/psi4/package.py index 64cb85a5ee..bc2e6db011 100644 --- a/var/spack/repos/builtin/packages/psi4/package.py +++ b/var/spack/repos/builtin/packages/psi4/package.py @@ -51,7 +51,7 @@ class Psi4(CMakePackage): ] @run_after('install') - def filter_compilers(self, spec, prefix): + def filter_compilers(self): """Run after install to tell the configuration files to use the compilers that Spack built the package with. @@ -59,6 +59,9 @@ class Psi4(CMakePackage): Spack's generic cxx. We want it to be bound to whatever compiler it was built with.""" + spec = self.spec + prefix = spec.prefix + kwargs = {'ignore_absent': True, 'backup': False, 'string': True} cc_files = ['bin/psi4-config'] diff --git a/var/spack/repos/builtin/packages/py-aiohttp/package.py b/var/spack/repos/builtin/packages/py-aiohttp/package.py new file mode 100644 index 0000000000..e29f467c29 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-aiohttp/package.py @@ -0,0 +1,26 @@ +# 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) + + +class PyAiohttp(PythonPackage): + """Supports both client and server side of HTTP protocol. + Supports both client and server Web-Sockets out-of-the-box and + avoids Callbacks. Provides Web-server with middlewares and + plugable routing.""" + + homepage = "https://github.com/aio-libs/aiohttp" + url = "https://github.com/aio-libs/aiohttp/archive/v3.6.2.tar.gz" + + version('3.6.2', sha256='4ad2d8393843ea0c7b50a93bf04fb1cf20b93c0a5e958de128efcd2e5f8adf80') + + depends_on('py-setuptools', type='build') + depends_on('python@3.5.3:', type=('build', 'run')) + depends_on('py-attrs@17.3.0:', type=('build', 'run')) + depends_on('py-chardet@2.0:3.999', type=('build', 'run')) + depends_on('py-multidict@4.5:4.999', type=('build', 'run')) + depends_on('py-async-timeout@3.0:3.999', type=('build', 'run')) + depends_on('py-yarl@1.0:1.999', type=('build', 'run')) + depends_on('py-idna-ssl@1.0:', type=('build', 'run'), when='^python@:3.6') + depends_on('py-typing-extensions@3.6.5:', type=('build', 'run'), when='^python@:3.6') diff --git a/var/spack/repos/builtin/packages/py-argcomplete/package.py b/var/spack/repos/builtin/packages/py-argcomplete/package.py index 6a4ad018bd..f1362da76f 100644 --- a/var/spack/repos/builtin/packages/py-argcomplete/package.py +++ b/var/spack/repos/builtin/packages/py-argcomplete/package.py @@ -9,9 +9,11 @@ from spack import * class PyArgcomplete(PythonPackage): """Bash tab completion for argparse.""" - homepage = "https://pypi.python.org/pypi/argcomplete" - url = "https://pypi.io/packages/source/a/argcomplete/argcomplete-1.1.1.tar.gz" + homepage = "https://github.com/kislyuk/argcomplete" + url = "https://pypi.io/packages/source/a/argcomplete/argcomplete-1.12.0.tar.gz" - version('1.1.1', sha256='cca45b5fe07000994f4f06a0b95bd71f7b51b04f81c3be0b4ea7b666e4f1f084') + version('1.12.0', sha256='2fbe5ed09fd2c1d727d4199feca96569a5b50d44c71b16da9c742201f7cc295c') + version('1.1.1', sha256='cca45b5fe07000994f4f06a0b95bd71f7b51b04f81c3be0b4ea7b666e4f1f084') depends_on('py-setuptools', type='build') + depends_on('py-importlib-metadata@0.23:1.999', when='@1.12: ^python@:3.7', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-astropy-healpix/package.py b/var/spack/repos/builtin/packages/py-astropy-healpix/package.py new file mode 100644 index 0000000000..8dee2f92be --- /dev/null +++ b/var/spack/repos/builtin/packages/py-astropy-healpix/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) + + +class PyAstropyHealpix(PythonPackage): + """HEALPix (Hierarchical Equal Area isoLatitude Pixelisation) is + an algorithm for pixellizing a sphere that is sometimes used in + Astronomy to store data from all-sky surveys, but the general + algorithm can apply to any field that has to deal with + representing data on a sphere.""" + + homepage = 'https://astropy-healpix.readthedocs.io/en/latest/' + url = 'https://pypi.io/packages/source/a/astropy-healpix/astropy-healpix-0.5.tar.gz' + + version('0.5', sha256='5ae15da796a840f221fb83e25de791e827b6921bc21a365d99bc1a59c7c0cdad') + + depends_on('python@3.6:', type=('build', 'run')) + depends_on('py-astropy@2.0:', type=('build', 'run')) + depends_on('py-numpy@1.11:', 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 1e85cbf070..6e5dc8282b 100644 --- a/var/spack/repos/builtin/packages/py-astropy/package.py +++ b/var/spack/repos/builtin/packages/py-astropy/package.py @@ -4,6 +4,7 @@ # SPDX-License-Identifier: (Apache-2.0 OR MIT) from spack import * +import os class PyAstropy(PythonPackage): @@ -11,9 +12,12 @@ class PyAstropy(PythonPackage): package for Astronomy in Python and foster interoperability between Python astronomy packages.""" - homepage = 'http://www.astropy.org/' - url = 'https://pypi.io/packages/source/a/astropy/astropy-3.2.1.tar.gz' + homepage = 'https://astropy.org/' + url = 'https://pypi.io/packages/source/a/astropy/astropy-4.0.1.post1.tar.gz' + install_time_test_callbacks = ['install_test', 'import_module_test'] + + version('4.0.1.post1', sha256='5c304a6c1845ca426e7bc319412b0363fccb4928cb4ba59298acd1918eec44b5') version('3.2.1', sha256='706c0457789c78285e5464a5a336f5f0b058d646d60f4e5f5ba1f7d5bf424b28') version('2.0.14', sha256='618807068609a4d8aeb403a07624e9984f566adc0dc0f5d6b477c3658f31aeb6') version('1.1.2', sha256='6f0d84cd7dfb304bb437dda666406a1d42208c16204043bc920308ff8ffdfad1') @@ -28,14 +32,17 @@ class PyAstropy(PythonPackage): depends_on('python@2.7:2.8,3.3:', when='@1.2:', type=('build', 'run')) depends_on('python@2.6:', type=('build', 'run')) depends_on('py-setuptools', type='build') + depends_on('py-cython@0.29.13:', type='build') + depends_on('py-numpy@1.16:', when='@4.0:', type=('build', 'run')) depends_on('py-numpy@1.13:', when='@3.1:', type=('build', 'run')) depends_on('py-numpy@1.10:', when='@3.0:', type=('build', 'run')) depends_on('py-numpy@1.9:', when='@2.0:', type=('build', 'run')) depends_on('py-numpy@1.7:', when='@1.2:', type=('build', 'run')) depends_on('py-numpy', type=('build', 'run')) + depends_on('pkgconfig', type='build') # Optional dependencies - depends_on('py-scipy', when='+extras', type=('build', 'run')) + depends_on('py-scipy@0.18:', when='+extras', type=('build', 'run')) depends_on('py-h5py', when='+extras', type=('build', 'run')) depends_on('py-beautifulsoup4', when='+extras', type=('build', 'run')) depends_on('py-html5lib', when='+extras', type=('build', 'run')) @@ -59,6 +66,13 @@ class PyAstropy(PythonPackage): depends_on('cfitsio') depends_on('expat') + def patch(self): + # forces the rebuild of files with cython + # avoids issues with PyCode_New() in newer + # versions of python in the distributed + # cython-ized files + os.remove('astropy/cython_version.py') + def build_args(self, spec, prefix): args = [ '--use-system-libraries', @@ -72,3 +86,7 @@ class PyAstropy(PythonPackage): args.extend(['-j', str(make_jobs)]) return args + + def install_test(self): + with working_dir('spack-test', create=True): + python('-c', 'import astropy; astropy.test()') diff --git a/var/spack/repos/builtin/packages/py-async-timeout/package.py b/var/spack/repos/builtin/packages/py-async-timeout/package.py new file mode 100644 index 0000000000..dd7ca9943c --- /dev/null +++ b/var/spack/repos/builtin/packages/py-async-timeout/package.py @@ -0,0 +1,16 @@ +# 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) + + +class PyAsyncTimeout(PythonPackage): + """asyncio-compatible timeout context manager.""" + + homepage = "https://github.com/aio-libs/async-timeout" + url = "https://github.com/aio-libs/async-timeout/archive/v3.0.1.tar.gz" + + version('3.0.1', sha256='d0a7a927ed6b922835e1b014dfcaa9982caccbb25131320582cc660af7c93949') + + depends_on('py-setuptools', type='build') + depends_on('python@3.5.3:', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-azure-batch/package.py b/var/spack/repos/builtin/packages/py-azure-batch/package.py new file mode 100644 index 0000000000..b201ec7660 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-azure-batch/package.py @@ -0,0 +1,19 @@ +# 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) + + +class PyAzureBatch(PythonPackage): + """Microsoft Azure Batch Client Library for Python.""" + + homepage = "https://github.com/Azure/azure-sdk-for-python" + url = "https://pypi.io/packages/source/a/azure-batch/azure-batch-9.0.0.zip" + + version('9.0.0', sha256='47ca6f50a640915e1cdc5ce3c1307abe5fa3a636236e561119cf62d9df384d84') + + depends_on('py-setuptools', type='build') + depends_on('py-msrest@0.5.0:', type=('build', 'run')) + depends_on('py-msrestazure@0.4.32:1.999', type=('build', 'run')) + depends_on('py-azure-common@1.1:1.999', type=('build', 'run')) + depends_on('py-azure-nspkg', when='^python@:2', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-azure-cli-command-modules-nspkg/package.py b/var/spack/repos/builtin/packages/py-azure-cli-command-modules-nspkg/package.py new file mode 100644 index 0000000000..0a40cf2e44 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-azure-cli-command-modules-nspkg/package.py @@ -0,0 +1,16 @@ +# 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) + + +class PyAzureCliCommandModulesNspkg(PythonPackage): + """Microsoft Azure CLI Command Modules Namespace Package.""" + + homepage = "https://github.com/Azure/azure-cli" + url = "https://pypi.io/packages/source/a/azure-cli-command-modules-nspkg/azure-cli-command-modules-nspkg-2.0.3.tar.gz" + + version('2.0.3', sha256='4bd62bf5facb92dd4f89080e75eaee2ea1d3dd4e57a3d2a760ce501cf53f4e7d') + + depends_on('py-setuptools', type='build') + depends_on('py-azure-cli-nspkg@3.0.0:', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-azure-cli-core/package.py b/var/spack/repos/builtin/packages/py-azure-cli-core/package.py new file mode 100644 index 0000000000..07e520c530 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-azure-cli-core/package.py @@ -0,0 +1,39 @@ +# 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) + + +class PyAzureCliCore(PythonPackage): + """Microsoft Azure Command-Line Tools Core Module.""" + + homepage = "https://github.com/Azure/azure-cli" + url = "https://pypi.io/packages/source/a/azure-cli-core/azure-cli-core-2.9.1.tar.gz" + + version('2.9.1', sha256='8618a30f7ea2188506f29801220c06396d731c26e4de92c327e6b0e8cc790db5') + + depends_on('py-setuptools', type='build') + depends_on('py-adal@1.2.3:1.2.999', type=('build', 'run')) + depends_on('py-argcomplete@1.8:1.999', type=('build', 'run')) + depends_on('py-azure-cli-telemetry', type=('build', 'run')) + depends_on('py-colorama@0.4.1:0.4.999', type=('build', 'run')) + depends_on('py-humanfriendly@4.7:8', type=('build', 'run')) + depends_on('py-jmespath', type=('build', 'run')) + depends_on('py-knack@0.7.1', type=('build', 'run')) + depends_on('py-msal@1.0.0:1.0.999', type=('build', 'run')) + depends_on('py-msal-extensions@0.1.3:0.1.999', type=('build', 'run')) + depends_on('py-msrest@0.4.4:', type=('build', 'run')) + depends_on('py-msrestazure@0.6.3:', type=('build', 'run')) + depends_on('py-paramiko@2.0.8:2.999', type=('build', 'run')) + depends_on('py-pyjwt', type=('build', 'run')) + depends_on('py-pyopenssl@17.1.0:', type=('build', 'run')) + depends_on('py-requests@2.22:2.999', type=('build', 'run')) + depends_on('py-six@1.12:1.999', type=('build', 'run')) + depends_on('py-pkginfo@1.5.0.1:', type=('build', 'run')) + depends_on('py-azure-mgmt-resource@10.0.0', type=('build', 'run')) + depends_on('py-azure-mgmt-core@1.0.0', type=('build', 'run')) + depends_on('py-enum34', when='^python@:3.3', type=('build', 'run')) + depends_on('py-ndg-httpsclient', when='^python@:2.7.8', type=('build', 'run')) + depends_on('py-pyasn1', when='^python@:2.7.8', type=('build', 'run')) + depends_on('py-futures', when='^python@:2', type=('build', 'run')) + depends_on('py-mock', type='test') diff --git a/var/spack/repos/builtin/packages/py-azure-cli-nspkg/package.py b/var/spack/repos/builtin/packages/py-azure-cli-nspkg/package.py new file mode 100644 index 0000000000..31fab8f659 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-azure-cli-nspkg/package.py @@ -0,0 +1,16 @@ +# 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) + + +class PyAzureCliNspkg(PythonPackage): + """Microsoft Azure CLI Namespace Package.""" + + homepage = "https://github.com/Azure/azure-cli" + url = "https://pypi.io/packages/source/a/azure-cli-nspkg/azure-cli-nspkg-3.0.4.tar.gz" + + version('3.0.4', sha256='1bde56090f548c6435bd3093995cf88e4c445fb040604df8b5b5f70780d79181') + + depends_on('py-setuptools', type='build') + depends_on('py-azure-nspkg@2.0.0:', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-azure-cli-telemetry/package.py b/var/spack/repos/builtin/packages/py-azure-cli-telemetry/package.py new file mode 100644 index 0000000000..bb379686be --- /dev/null +++ b/var/spack/repos/builtin/packages/py-azure-cli-telemetry/package.py @@ -0,0 +1,18 @@ +# 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) + + +class PyAzureCliTelemetry(PythonPackage): + """Microsoft Azure CLI Telemetry Package.""" + + homepage = "https://github.com/Azure/azure-cli" + url = "https://pypi.io/packages/source/a/azure-cli-telemetry/azure-cli-telemetry-1.0.4.tar.gz" + + version('1.0.4', sha256='1f239d544d309c29e827982cc20113eb57037dba16db6cdd2e0283e437e0e577') + + depends_on('py-setuptools', type='build') + depends_on('py-applicationinsights@0.11.1:0.11.999', type=('build', 'run')) + depends_on('py-portalocker@1.2:1.999', type=('build', 'run')) + depends_on('py-mock', type='test') diff --git a/var/spack/repos/builtin/packages/py-azure-cli/package.py b/var/spack/repos/builtin/packages/py-azure-cli/package.py new file mode 100644 index 0000000000..faa09d1cfd --- /dev/null +++ b/var/spack/repos/builtin/packages/py-azure-cli/package.py @@ -0,0 +1,102 @@ +# 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) + + +class PyAzureCli(PythonPackage): + """Microsoft Azure Command-Line Tools.""" + + homepage = "https://github.com/Azure/azure-cli" + url = "https://pypi.io/packages/source/a/azure-cli/azure-cli-2.9.1.tar.gz" + + version('2.9.1', sha256='749d850f73ea8956ab510288c1061dd7066180a8583081a6d560fdc7ac8314d6') + + depends_on('py-setuptools', type='build') + depends_on('py-antlr4-python3-runtime@4.7.2:4.7.999', type=('build', 'run')) + depends_on('py-azure-batch@9.0:9.999', type=('build', 'run')) + depends_on('py-azure-cli-command-modules-nspkg@2.0:2.999', type=('build', 'run')) + depends_on('py-azure-cli-core@2.9.1', type=('build', 'run')) + depends_on('py-azure-cli-nspkg@3.0.3:3.999', type=('build', 'run')) + depends_on('py-azure-cosmos@3.0.2:3.999', type=('build', 'run')) + depends_on('py-azure-datalake-store@0.0.48:0.0.999', type=('build', 'run')) + depends_on('py-azure-functions-devops-build@0.0.22:0.0.999', type=('build', 'run')) + depends_on('py-azure-graphrbac@0.60.0:0.60.999', type=('build', 'run')) + depends_on('py-azure-keyvault@1.1:1.999', type=('build', 'run')) + depends_on('py-azure-mgmt-advisor@2.0.1:2.999', type=('build', 'run')) + depends_on('py-azure-mgmt-apimanagement@0.1.0:0.1.999', type=('build', 'run')) + depends_on('py-azure-mgmt-applicationinsights@0.1.1:0.1.999', type=('build', 'run')) + depends_on('py-azure-mgmt-appconfiguration@0.4.0:0.4.999', type=('build', 'run')) + depends_on('py-azure-mgmt-authorization@0.52.0:0.52.999', type=('build', 'run')) + depends_on('py-azure-mgmt-batch@9.0.0:9.0.999', type=('build', 'run')) + depends_on('py-azure-mgmt-batchai@2.0:2.999', type=('build', 'run')) + depends_on('py-azure-mgmt-billing@0.2:0.999', type=('build', 'run')) + depends_on('py-azure-mgmt-botservice@0.2.0:0.2.999', type=('build', 'run')) + depends_on('py-azure-mgmt-cdn@4.1.0rc1', type=('build', 'run')) + depends_on('py-azure-mgmt-cognitiveservices@6.2.0:6.2.999', type=('build', 'run')) + depends_on('py-azure-mgmt-compute@13.0:13.999', type=('build', 'run')) + depends_on('py-azure-mgmt-consumption@2.0:2.999', type=('build', 'run')) + depends_on('py-azure-mgmt-containerinstance@1.4:1.999', type=('build', 'run')) + depends_on('py-azure-mgmt-containerregistry@3.0.0rc14', type=('build', 'run')) + depends_on('py-azure-mgmt-containerservice@9.0.1:9.0.999', type=('build', 'run')) + depends_on('py-azure-mgmt-cosmosdb@0.15.0:0.15.999', type=('build', 'run')) + depends_on('py-azure-mgmt-datalake-analytics@0.2.1:0.2.999', type=('build', 'run')) + depends_on('py-azure-mgmt-datalake-store@0.5.0:0.5.999', type=('build', 'run')) + depends_on('py-azure-mgmt-datamigration@0.1.0:0.1.999', type=('build', 'run')) + depends_on('py-azure-mgmt-deploymentmanager@0.2.0:0.2.999', type=('build', 'run')) + depends_on('py-azure-mgmt-devtestlabs@4.0:4.999', type=('build', 'run')) + depends_on('py-azure-mgmt-dns@2.1:2.999', type=('build', 'run')) + depends_on('py-azure-mgmt-eventgrid@3.0.0rc7', type=('build', 'run')) + depends_on('py-azure-mgmt-eventhub@4.0.0:4.999', type=('build', 'run')) + depends_on('py-azure-mgmt-hdinsight@1.5.1:1.5.999', type=('build', 'run')) + depends_on('py-azure-mgmt-imagebuilder@0.4.0:0.4.999', type=('build', 'run')) + depends_on('py-azure-mgmt-iotcentral@3.0.0:3.0.999', type=('build', 'run')) + depends_on('py-azure-mgmt-iothub@0.12.0:0.12.999', type=('build', 'run')) + depends_on('py-azure-mgmt-iothubprovisioningservices@0.2.0:0.2.999', type=('build', 'run')) + depends_on('py-azure-mgmt-keyvault@2.2.0:2.2.999', type=('build', 'run')) + depends_on('py-azure-mgmt-kusto@0.3.0:0.3.999', type=('build', 'run')) + depends_on('py-azure-mgmt-loganalytics@0.7.0:0.7.999', type=('build', 'run')) + depends_on('py-azure-mgmt-managedservices@1.0:1.999', type=('build', 'run')) + depends_on('py-azure-mgmt-managementgroups@0.1:0.999', type=('build', 'run')) + depends_on('py-azure-mgmt-maps@0.1.0:0.1.999', type=('build', 'run')) + depends_on('py-azure-mgmt-marketplaceordering@0.1:0.999', type=('build', 'run')) + depends_on('py-azure-mgmt-media@2.1:2.999', type=('build', 'run')) + depends_on('py-azure-mgmt-monitor@0.10.0:0.10.999', type=('build', 'run')) + depends_on('py-azure-mgmt-msi@0.2:0.999', type=('build', 'run')) + depends_on('py-azure-mgmt-netapp@0.8.0:0.8.999', type=('build', 'run')) + depends_on('py-azure-mgmt-network@11.0.0:11.0.999', type=('build', 'run')) + depends_on('py-azure-mgmt-policyinsights@0.5.0:0.5.999', type=('build', 'run')) + depends_on('py-azure-mgmt-privatedns@0.1.0:0.1.999', type=('build', 'run')) + depends_on('py-azure-mgmt-rdbms@2.2.0:2.2.999', type=('build', 'run')) + depends_on('py-azure-mgmt-recoveryservices@0.4.0:0.4.999', type=('build', 'run')) + depends_on('py-azure-mgmt-recoveryservicesbackup@0.6.0:0.6.999', type=('build', 'run')) + depends_on('py-azure-mgmt-redhatopenshift@0.1.0', type=('build', 'run')) + depends_on('py-azure-mgmt-redis@7.0.0:7.0.999', type=('build', 'run')) + depends_on('py-azure-mgmt-relay@0.1.0:0.1.999', type=('build', 'run')) + depends_on('py-azure-mgmt-reservations@0.6.0', type=('build', 'run')) + depends_on('py-azure-mgmt-search@2.0:2.999', type=('build', 'run')) + depends_on('py-azure-mgmt-security@0.4.1:0.4.999', type=('build', 'run')) + depends_on('py-azure-mgmt-servicebus@0.6.0:0.6.999', type=('build', 'run')) + depends_on('py-azure-mgmt-servicefabric@0.4.0:0.4.999', type=('build', 'run')) + depends_on('py-azure-mgmt-signalr@0.4.0:0.4.999', type=('build', 'run')) + depends_on('py-azure-mgmt-sql@0.19.0:0.19.999', type=('build', 'run')) + depends_on('py-azure-mgmt-sqlvirtualmachine@0.5.0:0.5.999', type=('build', 'run')) + depends_on('py-azure-mgmt-storage@11.1.0:11.1.999', type=('build', 'run')) + depends_on('py-azure-mgmt-trafficmanager@0.51.0:0.51.999', type=('build', 'run')) + depends_on('py-azure-mgmt-web@0.47.0:0.47.999', type=('build', 'run')) + depends_on('py-azure-multiapi-storage@0.3.2:0.3.999', type=('build', 'run')) + depends_on('py-azure-loganalytics@0.1.0:0.1.999', type=('build', 'run')) + depends_on('py-azure-storage-common@1.4:1.999', type=('build', 'run')) + depends_on('py-cryptography@2.3.1:2.999', type=('build', 'run')) + depends_on('py-fabric@2.4:2.999', type=('build', 'run')) + depends_on('py-jsmin@2.2.2:2.2.999', type=('build', 'run')) + depends_on('py-pytz@2019.1', type=('build', 'run')) + depends_on('py-scp@0.13.2:0.13.999', type=('build', 'run')) + depends_on('py-sshtunnel@0.1.4:0.1.999', type=('build', 'run')) + depends_on('py-urllib3@1.18:1.999+secure', type=('build', 'run')) + depends_on('py-vsts-cd-manager@1.0.2:1.0.999', type=('build', 'run')) + depends_on('py-websocket-client@0.56.0:0.56.999', type=('build', 'run')) + depends_on('py-xmltodict@0.12:0.999', type=('build', 'run')) + depends_on('py-javaproperties@0.5.1', type=('build', 'run')) + depends_on('py-jsondiff@1.2.0', type=('build', 'run')) + depends_on('py-mock@4.0:4.999', type='test') diff --git a/var/spack/repos/builtin/packages/py-azure-core/package.py b/var/spack/repos/builtin/packages/py-azure-core/package.py index cfe14b0dae..e45bfcabfb 100644 --- a/var/spack/repos/builtin/packages/py-azure-core/package.py +++ b/var/spack/repos/builtin/packages/py-azure-core/package.py @@ -8,8 +8,9 @@ class PyAzureCore(PythonPackage): """Microsoft Azure Core Library for Python.""" homepage = "https://github.com/Azure/azure-sdk-for-python/tree/master/sdk/core/azure-core" - url = "https://pypi.io/packages/source/a/azure-core/azure-core-1.6.0.zip" + url = "https://pypi.io/packages/source/a/azure-core/azure-core-1.7.0.zip" + version('1.7.0', sha256='a66da240a287f447f9867f54ba09ea235895cec13ea38c5f490ce4eedefdd75c') version('1.6.0', sha256='d10b74e783cff90d56360e61162afdd22276d62dc9467e657ae866449eae7648') depends_on('py-setuptools', type='build') diff --git a/var/spack/repos/builtin/packages/py-azure-cosmos/package.py b/var/spack/repos/builtin/packages/py-azure-cosmos/package.py new file mode 100644 index 0000000000..56ed2ae59f --- /dev/null +++ b/var/spack/repos/builtin/packages/py-azure-cosmos/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) + + +class PyAzureCosmos(PythonPackage): + """Microsoft Azure Cosmos Client Library for Python.""" + + homepage = "https://github.com/Azure/azure-sdk-for-python" + url = "https://pypi.io/packages/source/a/azure-cosmos/azure-cosmos-4.0.0.zip" + + version('4.0.0', sha256='c4e40e0d378fd0c96664f46f1ad08e6c8aaaac31c463726a74aae9eae724442d') + version('3.2.0', sha256='4f77cc558fecffac04377ba758ac4e23f076dc1c54e2cf2515f85bc15cbde5c6', + url='https://pypi.io/packages/source/a/azure-cosmos/azure-cosmos-3.2.0.tar.gz') + + depends_on('py-setuptools', type='build') + depends_on('py-six@1.6:', type=('build', 'run')) + depends_on('py-azure-core@1.0.0:1.999', when='@4:', type=('build', 'run')) + depends_on('py-enum34@1.0.4:', when='@4: ^python@:3.3', type=('build', 'run')) + depends_on('py-azure-nspkg', when='^python@:2', type=('build', 'run')) + depends_on('py-typing', when='@4: ^python@:3.4', type=('build', 'run')) + depends_on('py-requests@2.10.0:', when='@:3', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-azure-datalake-store/package.py b/var/spack/repos/builtin/packages/py-azure-datalake-store/package.py new file mode 100644 index 0000000000..84dc392932 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-azure-datalake-store/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) + + +class PyAzureDatalakeStore(PythonPackage): + """Azure Data Lake Store Filesystem Client Library for Python.""" + + homepage = "https://github.com/Azure/azure-data-lake-store-python" + url = "https://pypi.io/packages/source/a/azure-datalake-store/azure-datalake-store-0.0.48.tar.gz" + + version('0.0.48', sha256='d27c335783d4add00b3a5f709341e4a8009857440209e15a739a9a96b52386f7') + + depends_on('py-setuptools', type='build') + depends_on('py-cffi', type=('build', 'run')) + depends_on('py-adal@0.4.2:', type=('build', 'run')) + depends_on('py-requests@2.20.0:', type=('build', 'run')) + depends_on('py-pathlib2', when='^python@:3.3', type=('build', 'run')) + depends_on('py-futures', when='^python@:2', type=('build', 'run')) + depends_on('py-azure-nspkg', when='^python@:2', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-azure-functions-devops-build/package.py b/var/spack/repos/builtin/packages/py-azure-functions-devops-build/package.py new file mode 100644 index 0000000000..ee70dc2f03 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-azure-functions-devops-build/package.py @@ -0,0 +1,19 @@ +# 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) + + +class PyAzureFunctionsDevopsBuild(PythonPackage): + """Python package for integrating Azure Functions with Azure DevOps. + Specifically made for the Azure CLI.""" + + homepage = "https://github.com/Azure/azure-functions-devops-build" + url = "https://pypi.io/packages/source/a/azure-functions-devops-build/azure-functions-devops-build-0.0.22.tar.gz" + + version('0.0.22', sha256='c6341abda6098813f8fa625acd1e925410a17a8a1c7aaabdf975bb7cecb14edf') + + depends_on('py-setuptools', type='build') + depends_on('py-msrest', type=('build', 'run')) + depends_on('py-vsts', type=('build', 'run')) + depends_on('py-jinja2', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-azure-graphrbac/package.py b/var/spack/repos/builtin/packages/py-azure-graphrbac/package.py index 60a87b0a92..4cd0dd661f 100644 --- a/var/spack/repos/builtin/packages/py-azure-graphrbac/package.py +++ b/var/spack/repos/builtin/packages/py-azure-graphrbac/package.py @@ -11,6 +11,7 @@ class PyAzureGraphrbac(PythonPackage): url = "https://pypi.io/packages/source/a/azure-graphrbac/azure-graphrbac-0.61.1.zip" version('0.61.1', sha256='53e98ae2ca7c19b349e9e9bb1b6a824aeae8dcfcbe17190d20fe69c0f185b2e2') + version('0.60.0', sha256='d0bb62d8bf8e196b903f3971ba4afa448e4fe14e8394ebfcdd941d84d62ecafe') depends_on('py-setuptools', type='build') depends_on('py-msrest@0.5.0:', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-azure-keyvault-certificates/package.py b/var/spack/repos/builtin/packages/py-azure-keyvault-certificates/package.py new file mode 100644 index 0000000000..49ad0b0ea6 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-azure-keyvault-certificates/package.py @@ -0,0 +1,20 @@ +# 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) + + +class PyAzureKeyvaultCertificates(PythonPackage): + """Microsoft Azure Key Vault Certificates Client Library for Python.""" + + homepage = "https://github.com/Azure/azure-sdk-for-python/tree/master/sdk/keyvault/azure-keyvault-certificates" + url = "https://pypi.io/packages/source/a/azure-keyvault-certificates/azure-keyvault-certificates-4.1.0.zip" + + version('4.1.0', sha256='544f56480619e1db350f2e7b117b22af778e02174bd6bcb0af9ae00c50353419') + + depends_on('py-setuptools', type='build') + depends_on('py-azure-core@1.2.1:1.999', type=('build', 'run')) + depends_on('py-msrest@0.6.0:', type=('build', 'run')) + depends_on('py-azure-keyvault-nspkg', when='^python@:2', type=('build', 'run')) + depends_on('py-enum34@1.0.4:', when='^python@:3.3', type=('build', 'run')) + depends_on('py-typing', when='^python@:3.4', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-azure-keyvault-keys/package.py b/var/spack/repos/builtin/packages/py-azure-keyvault-keys/package.py new file mode 100644 index 0000000000..7fa65939ac --- /dev/null +++ b/var/spack/repos/builtin/packages/py-azure-keyvault-keys/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) + + +class PyAzureKeyvaultKeys(PythonPackage): + """Microsoft Azure Key Vault Keys Client Library for Python.""" + + homepage = "https://github.com/Azure/azure-sdk-for-python/tree/master/sdk/keyvault/azure-keyvault-keys" + url = "https://pypi.io/packages/source/a/azure-keyvault-keys/azure-keyvault-keys-4.1.0.zip" + + version('4.1.0', sha256='f9967b4deb48e619f6c40558f69e48978779cc09c8a7fad33d536cfc41cd68f9') + + depends_on('py-setuptools', type='build') + depends_on('py-azure-core@1.2.1:1.999', type=('build', 'run')) + depends_on('py-cryptography@2.1.4:', type=('build', 'run')) + depends_on('py-msrest@0.6.0:', type=('build', 'run')) + depends_on('py-azure-keyvault-nspkg', when='^python@:2', type=('build', 'run')) + depends_on('py-enum34@1.0.4:', when='^python@:3.3', type=('build', 'run')) + depends_on('py-typing', when='^python@:3.4', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-azure-keyvault-nspkg/package.py b/var/spack/repos/builtin/packages/py-azure-keyvault-nspkg/package.py new file mode 100644 index 0000000000..16200150de --- /dev/null +++ b/var/spack/repos/builtin/packages/py-azure-keyvault-nspkg/package.py @@ -0,0 +1,16 @@ +# 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) + + +class PyAzureKeyvaultNspkg(PythonPackage): + """Microsoft Azure Key Vault Namespace Package.""" + + homepage = "https://github.com/Azure/azure-sdk-for-python/tree/master/sdk/keyvault" + url = "https://pypi.io/packages/source/a/azure-keyvault-nspkg/azure-keyvault-nspkg-1.0.0.zip" + + version('1.0.0', sha256='ac68b88aab9c6caf54a23da2a1d1c718d7520bae5adff04dd0a743228269b641') + + depends_on('py-setuptools', type='build') + depends_on('py-azure-nspkg@3.0.0:', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-azure-keyvault-secrets/package.py b/var/spack/repos/builtin/packages/py-azure-keyvault-secrets/package.py new file mode 100644 index 0000000000..cbc91cde3d --- /dev/null +++ b/var/spack/repos/builtin/packages/py-azure-keyvault-secrets/package.py @@ -0,0 +1,20 @@ +# 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) + + +class PyAzureKeyvaultSecrets(PythonPackage): + """Microsoft Azure Key Vault Secrets Client Library for Python.""" + + homepage = "https://github.com/Azure/azure-sdk-for-python/tree/master/sdk/keyvault/azure-keyvault-secrets" + url = "https://pypi.io/packages/source/a/azure-keyvault-secrets/azure-keyvault-secrets-4.1.0.zip" + + version('4.1.0', sha256='4f3bfac60e025e01dd1c1998b73649d45d706975356c0cf147174cf5a6ddf8be') + + depends_on('py-setuptools', type='build') + depends_on('py-azure-core@1.2.1:1.999', type=('build', 'run')) + depends_on('py-msrest@0.6.0:', type=('build', 'run')) + depends_on('py-azure-keyvault-nspkg', when='^python@:2', type=('build', 'run')) + depends_on('py-enum34@1.0.4:', when='^python@:3.3', type=('build', 'run')) + depends_on('py-typing', when='^python@:3.4', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-azure-keyvault/package.py b/var/spack/repos/builtin/packages/py-azure-keyvault/package.py new file mode 100644 index 0000000000..b18a562226 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-azure-keyvault/package.py @@ -0,0 +1,24 @@ +# 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) + + +class PyAzureKeyvault(PythonPackage): + """Microsoft Azure Key Vault Client Libraries for Python.""" + + homepage = "https://github.com/Azure/azure-sdk-for-python/tree/master/sdk/keyvault/azure-keyvault" + url = "https://pypi.io/packages/source/a/azure-keyvault/azure-keyvault-4.1.0.zip" + + version('4.1.0', sha256='69002a546921a8290eb54d9a3805cfc515c321bc1d4c0bfcfb463620245eca40') + version('1.1.0', sha256='37a8e5f376eb5a304fcd066d414b5d93b987e68f9212b0c41efa37d429aadd49') + + depends_on('py-setuptools', type='build') + depends_on('py-azure-keyvault-certificates@4.1:4.999', when='@4:', type=('build', 'run')) + depends_on('py-azure-keyvault-secrets@4.1:4.999', when='@4:', type=('build', 'run')) + depends_on('py-azure-keyvault-keys@4.1:4.999', when='@4:', type=('build', 'run')) + depends_on('py-msrest@0.5.0:', when='@:1', type=('build', 'run')) + depends_on('py-msrestazure@0.4.32:1.999', when='@:1', type=('build', 'run')) + depends_on('py-azure-common@1.1:1.999', when='@:1', type=('build', 'run')) + depends_on('py-cryptography@2.1.4:', when='@:1', type=('build', 'run')) + depends_on('py-requests@2.18.4:', when='@:1', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-azure-loganalytics/package.py b/var/spack/repos/builtin/packages/py-azure-loganalytics/package.py new file mode 100644 index 0000000000..25a4e42317 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-azure-loganalytics/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) + + +class PyAzureLoganalytics(PythonPackage): + """Microsoft Azure Log Analytics Client Library for Python.""" + + homepage = "https://github.com/Azure/azure-sdk-for-python" + url = "https://pypi.io/packages/source/a/azure-loganalytics/azure-loganalytics-0.1.0.zip" + + version('0.1.0', sha256='3ceb350def677a351f34b0a0d1637df6be0c6fe87ff32a5270b17f540f6da06e') + + depends_on('py-setuptools', type='build') + depends_on('py-msrest@0.4.29:1.999', type=('build', 'run')) + depends_on('py-azure-common@1.1:1.999', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-azure-mgmt-advisor/package.py b/var/spack/repos/builtin/packages/py-azure-mgmt-advisor/package.py new file mode 100644 index 0000000000..5e19a89dea --- /dev/null +++ b/var/spack/repos/builtin/packages/py-azure-mgmt-advisor/package.py @@ -0,0 +1,20 @@ +# 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) + + +class PyAzureMgmtAdvisor(PythonPackage): + """Microsoft Azure Advisor Client Library for Python.""" + + homepage = "https://github.com/Azure/azure-sdk-for-python" + url = "https://pypi.io/packages/source/a/azure-mgmt-advisor/azure-mgmt-advisor-4.0.0.zip" + + version('4.0.0', sha256='1ecea7a9dc48c099c06aab68aace7fdbded91a5522932882b1707c29fa055054') + version('2.0.1', sha256='1929d6d5ba49d055fdc806e981b93cf75ea42ba35f78222aaf42d8dcf29d4ef3') + + depends_on('py-setuptools', type='build') + depends_on('py-msrest@0.5.0:', type=('build', 'run')) + depends_on('py-msrestazure@0.4.32:1.999', type=('build', 'run')) + depends_on('py-azure-common@1.1:1.999', type=('build', 'run')) + depends_on('py-azure-mgmt-nspkg', when='^python@:2', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-azure-mgmt-apimanagement/package.py b/var/spack/repos/builtin/packages/py-azure-mgmt-apimanagement/package.py new file mode 100644 index 0000000000..538bfed522 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-azure-mgmt-apimanagement/package.py @@ -0,0 +1,20 @@ +# 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) + + +class PyAzureMgmtApimanagement(PythonPackage): + """Microsoft Azure API Management Client Library for Python.""" + + homepage = "https://github.com/Azure/azure-sdk-for-python" + url = "https://pypi.io/packages/source/a/azure-mgmt-apimanagement/azure-mgmt-apimanagement-0.2.0.zip" + + version('0.2.0', sha256='790f01c0b32583706b8b8c59667c0f5a51cd70444eee76474e23a598911e1d72') + version('0.1.0', sha256='5d45d3438c6a11bae6bb8d4d5173cdb44b85683695f9f3433f22f45aecc47819') + + depends_on('py-setuptools', type='build') + depends_on('py-msrest@0.5.0:', type=('build', 'run')) + depends_on('py-msrestazure@0.4.32:1.999', type=('build', 'run')) + depends_on('py-azure-common@1.1:1.999', type=('build', 'run')) + depends_on('py-azure-mgmt-nspkg', when='^python@:2', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-azure-mgmt-appconfiguration/package.py b/var/spack/repos/builtin/packages/py-azure-mgmt-appconfiguration/package.py new file mode 100644 index 0000000000..96f7a6dfff --- /dev/null +++ b/var/spack/repos/builtin/packages/py-azure-mgmt-appconfiguration/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) + + +class PyAzureMgmtAppconfiguration(PythonPackage): + """Microsoft Azure App Configuration Management Client Library for Python. + """ + + homepage = "https://github.com/Azure/azure-sdk-for-python" + url = "https://pypi.io/packages/source/a/azure-mgmt-appconfiguration/azure-mgmt-appconfiguration-0.5.0.zip" + + version('0.5.0', sha256='211527511d7616a383cc196956eaf2b7ee016f2367d367924b3715f2a41106da') + version('0.4.0', sha256='85f6202ba235fde6be274f3dec1578b90235cf31979abea3fcfa476d0b2ac5b6') + + depends_on('py-setuptools', type='build') + depends_on('py-msrest@0.5.0:', type=('build', 'run')) + depends_on('py-msrestazure@0.4.32:1.999', type=('build', 'run')) + depends_on('py-azure-common@1.1:1.999', type=('build', 'run')) + depends_on('py-azure-mgmt-nspkg', when='^python@:2', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-azure-mgmt-applicationinsights/package.py b/var/spack/repos/builtin/packages/py-azure-mgmt-applicationinsights/package.py new file mode 100644 index 0000000000..b7b4089b9d --- /dev/null +++ b/var/spack/repos/builtin/packages/py-azure-mgmt-applicationinsights/package.py @@ -0,0 +1,22 @@ +# 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) + + +class PyAzureMgmtApplicationinsights(PythonPackage): + """Microsoft Azure Application Insights Management Client Library for + Python.""" + + homepage = "https://github.com/Azure/azure-sdk-for-python" + url = "https://pypi.io/packages/source/a/azure-mgmt-applicationinsights/azure-mgmt-applicationinsights-0.3.0.zip" + + version('0.3.0', sha256='3c788a54db4fbca1a8850151462ec1471ff59c86b3a10d6082952bbdaa7e6651') + version('0.1.1', sha256='f10229eb9e3e9d0ad20188b8d14d67055e86f3815b43b75eedf96b654bee2a9b') + + depends_on('py-setuptools', type='build') + depends_on('py-msrest@0.5.0:', when='@0.3:', type=('build', 'run')) + depends_on('py-msrestazure@0.4.32:1.999', when='@0.3:', type=('build', 'run')) + depends_on('py-msrestazure@0.4.20:1.999', type=('build', 'run')) + depends_on('py-azure-common@1.1:1.999', type=('build', 'run')) + depends_on('py-azure-mgmt-nspkg', when='@0.3: ^python@:2', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-azure-mgmt-authorization/package.py b/var/spack/repos/builtin/packages/py-azure-mgmt-authorization/package.py index acc9d25e66..5a5089966c 100644 --- a/var/spack/repos/builtin/packages/py-azure-mgmt-authorization/package.py +++ b/var/spack/repos/builtin/packages/py-azure-mgmt-authorization/package.py @@ -11,6 +11,7 @@ class PyAzureMgmtAuthorization(PythonPackage): url = "https://pypi.io/packages/source/a/azure-mgmt-authorization/azure-mgmt-authorization-0.60.0.zip" version('0.60.0', sha256='31e875a34ac2c5d6fefe77b4a8079a8b2bdbe9edb957e47e8b44222fb212d6a7') + version('0.52.0', sha256='16a618c4357c11e96de376856c396f09e76a56473920cdf7a66735fabaa2a70c') depends_on('py-setuptools', type='build') depends_on('py-msrest@0.5.0:', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-azure-mgmt-batch/package.py b/var/spack/repos/builtin/packages/py-azure-mgmt-batch/package.py new file mode 100644 index 0000000000..f11c869362 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-azure-mgmt-batch/package.py @@ -0,0 +1,19 @@ +# 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) + + +class PyAzureMgmtBatch(PythonPackage): + """Microsoft Azure Batch Management Client Library for Python.""" + + homepage = "https://github.com/Azure/azure-sdk-for-python" + url = "https://pypi.io/packages/source/a/azure-mgmt-batch/azure-mgmt-batch-9.0.0.zip" + + version('9.0.0', sha256='03417eecfa1fac906e674cb1cb43ed7da27a96277277b091d7c389ba39f6c3fe') + + depends_on('py-setuptools', type='build') + depends_on('py-msrest@0.5.0:', type=('build', 'run')) + depends_on('py-msrestazure@0.4.32:1.999', type=('build', 'run')) + depends_on('py-azure-common@1.1:1.999', type=('build', 'run')) + depends_on('py-azure-mgmt-nspkg', when='^python@:2', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-azure-mgmt-batchai/package.py b/var/spack/repos/builtin/packages/py-azure-mgmt-batchai/package.py new file mode 100644 index 0000000000..ec279bfc50 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-azure-mgmt-batchai/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) + + +class PyAzureMgmtBatchai(PythonPackage): + """Microsoft Azure Batch AI Management Client Library for Python.""" + + homepage = "https://github.com/Azure/azure-sdk-for-python" + url = "https://pypi.io/packages/source/a/azure-mgmt-batchai/azure-mgmt-batchai-2.0.0.zip" + + version('2.0.0', sha256='f1870b0f97d5001cdb66208e5a236c9717a0ed18b34dbfdb238a828f3ca2a683') + + depends_on('py-setuptools', type='build') + depends_on('py-msrestazure@0.4.20:1.999', type=('build', 'run')) + depends_on('py-azure-common@1.1:1.999', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-azure-mgmt-billing/package.py b/var/spack/repos/builtin/packages/py-azure-mgmt-billing/package.py new file mode 100644 index 0000000000..a124ac5931 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-azure-mgmt-billing/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) + + +class PyAzureMgmtBilling(PythonPackage): + """Microsoft Azure Billing Client Library for Python.""" + + homepage = "https://github.com/Azure/azure-sdk-for-python" + url = "https://pypi.io/packages/source/a/azure-mgmt-billing/azure-mgmt-billing-0.2.0.zip" + + version('0.2.0', sha256='85f73bb3808a7d0d2543307e8f41e5b90a170ad6eeedd54fe7fcaac61b5b22d2') + + depends_on('py-setuptools', type='build') + depends_on('py-msrestazure@0.4.20:1.999', type=('build', 'run')) + depends_on('py-azure-common@1.1:1.999', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-azure-mgmt-botservice/package.py b/var/spack/repos/builtin/packages/py-azure-mgmt-botservice/package.py new file mode 100644 index 0000000000..168259dac0 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-azure-mgmt-botservice/package.py @@ -0,0 +1,19 @@ +# 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) + + +class PyAzureMgmtBotservice(PythonPackage): + """Microsoft Azure Bot Service Client Library for Python.""" + + homepage = "https://github.com/Azure/azure-sdk-for-python" + url = "https://pypi.io/packages/source/a/azure-mgmt-botservice/azure-mgmt-botservice-0.2.0.zip" + + version('0.2.0', sha256='b21d8858e69aa16d25b908c40116a1f773c127ec4dd602cbb8542ebf39a55d83') + + depends_on('py-setuptools', type='build') + depends_on('py-msrest@0.5.0:', type=('build', 'run')) + depends_on('py-msrestazure@0.4.32:1.999', type=('build', 'run')) + depends_on('py-azure-common@1.1:1.999', type=('build', 'run')) + depends_on('py-azure-mgmt-nspkg', when='^python@:2', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-azure-mgmt-cdn/package.py b/var/spack/repos/builtin/packages/py-azure-mgmt-cdn/package.py new file mode 100644 index 0000000000..916934c841 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-azure-mgmt-cdn/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) + + +class PyAzureMgmtCdn(PythonPackage): + """Microsoft Azure CDN Management Client Library for Python.""" + + homepage = "https://github.com/Azure/azure-sdk-for-python" + url = "https://pypi.io/packages/source/a/azure-mgmt-cdn/azure-mgmt-cdn-4.0.0.zip" + + # Release candidate needed for py-azure-cli + version('4.1.0rc1', sha256='853c73d612f5d97387e079c5841a9f1a05702173d0c7c0c59ba7b0fd86380503') + version('4.0.0', sha256='a53e9e09e2711ce9109329538fe9a8a1a5d0809efb231d7df481e55d09c4f02a', preferred=True) + + depends_on('py-setuptools', type='build') + depends_on('py-msrest@0.5.0:', type=('build', 'run')) + depends_on('py-msrestazure@0.4.32:1.999', type=('build', 'run')) + depends_on('py-azure-common@1.1:1.999', type=('build', 'run')) + depends_on('py-azure-mgmt-nspkg', when='^python@:2', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-azure-mgmt-cognitiveservices/package.py b/var/spack/repos/builtin/packages/py-azure-mgmt-cognitiveservices/package.py new file mode 100644 index 0000000000..067f980c7d --- /dev/null +++ b/var/spack/repos/builtin/packages/py-azure-mgmt-cognitiveservices/package.py @@ -0,0 +1,20 @@ +# 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) + + +class PyAzureMgmtCognitiveservices(PythonPackage): + """Microsoft Azure Cognitive Services Management Client Library for + Python.""" + + homepage = "https://github.com/Azure/azure-sdk-for-python" + url = "https://pypi.io/packages/source/a/azure-mgmt-cognitiveservices/azure-mgmt-cognitiveservices-6.2.0.zip" + + version('6.2.0', sha256='93503507ba87c18fe24cd3dfcd54e6e69a4daf7636f38b7537e09cee9a4c13ce') + + depends_on('py-setuptools', type='build') + depends_on('py-msrest@0.5.0:', type=('build', 'run')) + depends_on('py-msrestazure@0.4.32:1.999', type=('build', 'run')) + depends_on('py-azure-common@1.1:1.999', type=('build', 'run')) + depends_on('py-azure-mgmt-nspkg', when='^python@:2', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-azure-mgmt-compute/package.py b/var/spack/repos/builtin/packages/py-azure-mgmt-compute/package.py new file mode 100644 index 0000000000..4b47781334 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-azure-mgmt-compute/package.py @@ -0,0 +1,19 @@ +# 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) + + +class PyAzureMgmtCompute(PythonPackage): + """Microsoft Azure Compute Management Client Library for Python.""" + + homepage = "https://github.com/Azure/azure-sdk-for-python" + url = "https://pypi.io/packages/source/a/azure-mgmt-compute/azure-mgmt-compute-13.0.0.zip" + + version('13.0.0', sha256='7f331bafcbedf25d65aa42038f7553747dab18d7f10a5af3297192d31c45339e') + + depends_on('py-setuptools', type='build') + depends_on('py-msrest@0.5.0:', type=('build', 'run')) + depends_on('py-msrestazure@0.4.32:1.999', type=('build', 'run')) + depends_on('py-azure-common@1.1:1.999', type=('build', 'run')) + depends_on('py-azure-mgmt-nspkg', when='^python@:2', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-azure-mgmt-consumption/package.py b/var/spack/repos/builtin/packages/py-azure-mgmt-consumption/package.py new file mode 100644 index 0000000000..8974a4500d --- /dev/null +++ b/var/spack/repos/builtin/packages/py-azure-mgmt-consumption/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) + + +class PyAzureMgmtConsumption(PythonPackage): + """Microsoft Azure Consumption Client Library for Python.""" + + homepage = "https://github.com/Azure/azure-sdk-for-python" + url = "https://pypi.io/packages/source/a/azure-mgmt-consumption/azure-mgmt-consumption-3.0.0.zip" + + version('3.0.0', sha256='035d4b74ca7c47e2683bea17105fd9014c27060336fb6255324ac86b27f70f5b') + version('2.0.0', sha256='9a85a89f30f224d261749be20b4616a0eb8948586f7f0f20573b8ea32f265189') + + depends_on('py-setuptools', type='build') + depends_on('py-msrest@0.5.0:', when='@3:', type=('build', 'run')) + depends_on('py-msrestazure@0.4.32:1.999', when='@3:', type=('build', 'run')) + depends_on('py-msrestazure@0.4.20:1.999', type=('build', 'run')) + depends_on('py-azure-common@1.1:1.999', type=('build', 'run')) + depends_on('py-azure-mgmt-nspkg', when='@3: ^python@:2', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-azure-mgmt-containerinstance/package.py b/var/spack/repos/builtin/packages/py-azure-mgmt-containerinstance/package.py new file mode 100644 index 0000000000..c2ce7566d4 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-azure-mgmt-containerinstance/package.py @@ -0,0 +1,20 @@ +# 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) + + +class PyAzureMgmtContainerinstance(PythonPackage): + """Microsoft Azure Container Instance Client Library for Python.""" + + homepage = "https://github.com/Azure/azure-sdk-for-python" + url = "https://pypi.io/packages/source/a/azure-mgmt-containerinstance/azure-mgmt-containerinstance-2.0.0.zip" + + version('2.0.0', sha256='5ad247d186c3c040da7a1d40ad39c9881e99afc58271f673abb602abb0b6b85b') + version('1.5.0', sha256='b055386f04ba8433112b0df7fcbc260b5208828d7bb8c057e760fe596aa7a8cd') + + depends_on('py-setuptools', type='build') + depends_on('py-msrest@0.5.0:', type=('build', 'run')) + depends_on('py-msrestazure@0.4.32:1.999', type=('build', 'run')) + depends_on('py-azure-common@1.1:1.999', type=('build', 'run')) + depends_on('py-azure-mgmt-nspkg', when='^python@:2', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-azure-mgmt-containerregistry/package.py b/var/spack/repos/builtin/packages/py-azure-mgmt-containerregistry/package.py index ac44498035..1a337d7a4a 100644 --- a/var/spack/repos/builtin/packages/py-azure-mgmt-containerregistry/package.py +++ b/var/spack/repos/builtin/packages/py-azure-mgmt-containerregistry/package.py @@ -10,7 +10,9 @@ class PyAzureMgmtContainerregistry(PythonPackage): homepage = "https://github.com/Azure/azure-sdk-for-python" url = "https://pypi.io/packages/source/a/azure-mgmt-containerregistry/azure-mgmt-containerregistry-2.8.0.zip" - version('2.8.0', sha256='b24be1050d54f3158e8be7f6ad677f0c8888dddefd09fb8391ebfc73d40173a4') + # Release candidate needed for py-azure-cli + version('3.0.0rc14', sha256='d23ce93ec5903d00f79f0ac995e16bf47197130239f7f182509add3277b73071') + version('2.8.0', sha256='b24be1050d54f3158e8be7f6ad677f0c8888dddefd09fb8391ebfc73d40173a4', preferred=True) depends_on('py-setuptools', type='build') depends_on('py-msrest@0.5.0:', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-azure-mgmt-containerservice/package.py b/var/spack/repos/builtin/packages/py-azure-mgmt-containerservice/package.py new file mode 100644 index 0000000000..3e592e4a13 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-azure-mgmt-containerservice/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) + + +class PyAzureMgmtContainerservice(PythonPackage): + """Microsoft Azure Container Service Management Client Library for Python. + """ + + homepage = "https://github.com/Azure/azure-sdk-for-python" + url = "https://pypi.io/packages/source/a/azure-mgmt-containerservice/azure-mgmt-containerservice-9.2.0.zip" + + version('9.2.0', sha256='e7904b60c42a153b64b1604f3c698602686b38787bebdaed6e808cd43b6e5967') + version('9.0.1', sha256='7e4459679bdba4aa67a4b5848e63d94e965a304a7418ef7607eb7a9ce295d886') + + depends_on('py-setuptools', type='build') + depends_on('py-msrest@0.5.0:', type=('build', 'run')) + depends_on('py-msrestazure@0.4.32:1.999', type=('build', 'run')) + depends_on('py-azure-common@1.1:1.999', type=('build', 'run')) + depends_on('py-azure-mgmt-nspkg', when='^python@:2', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-azure-mgmt-core/package.py b/var/spack/repos/builtin/packages/py-azure-mgmt-core/package.py new file mode 100644 index 0000000000..4dfca888f6 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-azure-mgmt-core/package.py @@ -0,0 +1,20 @@ +# 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) + + +class PyAzureMgmtCore(PythonPackage): + """Microsoft Azure Management Core Library for Python.""" + + homepage = "https://github.com/Azure/azure-sdk-for-python/tree/master/sdk/core/azure-mgmt-core" + url = "https://pypi.io/packages/source/a/azure-mgmt-core/azure-mgmt-core-1.2.0.zip" + + version('1.2.0', sha256='8fe3b59446438f27e34f7b24ea692a982034d9e734617ca1320eedeee1939998') + version('1.0.0', sha256='510faf49a10daec8346cc086143d8e667ef3b4f8c8022a8e710091027631a55e') + + depends_on('py-setuptools', type='build') + depends_on('py-azure-core@1.7.0:1.999', when='@1.2:', type=('build', 'run')) + depends_on('py-azure-core@1.4.0:1.999', type=('build', 'run')) + depends_on('py-azure-mgmt-nspkg', when='^python@:2', type=('build', 'run')) + depends_on('py-typing', when='^python@:3.4', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-azure-mgmt-cosmosdb/package.py b/var/spack/repos/builtin/packages/py-azure-mgmt-cosmosdb/package.py new file mode 100644 index 0000000000..978d659b9e --- /dev/null +++ b/var/spack/repos/builtin/packages/py-azure-mgmt-cosmosdb/package.py @@ -0,0 +1,19 @@ +# 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) + + +class PyAzureMgmtCosmosdb(PythonPackage): + """Microsoft Azure Cosmos DB Management Client Library for Python.""" + + homepage = "https://github.com/Azure/azure-sdk-for-python" + url = "https://pypi.io/packages/source/a/azure-mgmt-cosmosdb/azure-mgmt-cosmosdb-0.15.0.zip" + + version('0.15.0', sha256='e70fe9b3d9554c501d46e69f18b73de18d77fbcb98a7a87b965b3dd027cada0f') + + depends_on('py-setuptools', type='build') + depends_on('py-msrest@0.5.0:', type=('build', 'run')) + depends_on('py-msrestazure@0.4.32:1.999', type=('build', 'run')) + depends_on('py-azure-common@1.1:1.999', type=('build', 'run')) + depends_on('py-azure-mgmt-nspkg', when='^python@:2', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-azure-mgmt-datalake-analytics/package.py b/var/spack/repos/builtin/packages/py-azure-mgmt-datalake-analytics/package.py new file mode 100644 index 0000000000..bcb73cd655 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-azure-mgmt-datalake-analytics/package.py @@ -0,0 +1,20 @@ +# 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) + + +class PyAzureMgmtDatalakeAnalytics(PythonPackage): + """Microsoft Azure Data Lake Analytics Management Client Library for + Python.""" + + homepage = "https://github.com/Azure/azure-sdk-for-python" + url = "https://pypi.io/packages/source/a/azure-mgmt-datalake-analytics/azure-mgmt-datalake-analytics-0.6.0.zip" + + version('0.6.0', sha256='0d64c4689a67d6138eb9ffbaff2eda2bace7d30b846401673183dcb42714de8f') + version('0.2.1', sha256='4c7960d094f5847d9a456c18b8a3c8e60c428e3080a3905f1c943d81ba6351a4') + + depends_on('py-setuptools', type='build') + depends_on('py-msrestazure@0.4.27:1.999', when='@0.6:', type=('build', 'run')) + depends_on('py-msrestazure@0.4.7:1.999', type=('build', 'run')) + depends_on('py-azure-common@1.1:1.999', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-azure-mgmt-datalake-store/package.py b/var/spack/repos/builtin/packages/py-azure-mgmt-datalake-store/package.py new file mode 100644 index 0000000000..994c8a60c1 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-azure-mgmt-datalake-store/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) + + +class PyAzureMgmtDatalakeStore(PythonPackage): + """Microsoft Azure Data Lake Store Management Client Library for Python.""" + + homepage = "https://github.com/Azure/azure-sdk-for-python" + url = "https://pypi.io/packages/source/a/azure-mgmt-datalake-store/azure-mgmt-datalake-store-0.5.0.zip" + + version('0.5.0', sha256='9376d35495661d19f8acc5604f67b0bc59493b1835bbc480f9a1952f90017a4c') + + depends_on('py-setuptools', type='build') + depends_on('py-msrestazure@0.4.27:1.999', type=('build', 'run')) + depends_on('py-azure-common@1.1:1.999', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-azure-mgmt-datamigration/package.py b/var/spack/repos/builtin/packages/py-azure-mgmt-datamigration/package.py new file mode 100644 index 0000000000..7eaf2e926b --- /dev/null +++ b/var/spack/repos/builtin/packages/py-azure-mgmt-datamigration/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) + + +class PyAzureMgmtDatamigration(PythonPackage): + """Microsoft Azure Data Migration Client Library for Python.""" + + homepage = "https://github.com/Azure/azure-sdk-for-python" + url = "https://pypi.io/packages/source/a/azure-mgmt-datamigration/azure-mgmt-datamigration-4.0.0.zip" + + version('4.0.0', sha256='1efda568d67af911156591eb308432b5f9a56075b57ac0a5dd9f7aee17d79217') + version('0.1.0', sha256='e754928992743f54d999800a5e0679ee3e91d804d23a25f12c2e6f2f86cd05df') + + depends_on('py-setuptools', type='build') + depends_on('py-msrest@0.5.0:', when='@4:', type=('build', 'run')) + depends_on('py-msrestazure@0.4.32:1.999', when='@4:', type=('build', 'run')) + depends_on('py-msrestazure@0.4.27:1.999', type=('build', 'run')) + depends_on('py-azure-common@1.1:1.999', type=('build', 'run')) + depends_on('py-azure-mgmt-nspkg', when='@4: ^python@:2', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-azure-mgmt-deploymentmanager/package.py b/var/spack/repos/builtin/packages/py-azure-mgmt-deploymentmanager/package.py new file mode 100644 index 0000000000..57d08f8805 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-azure-mgmt-deploymentmanager/package.py @@ -0,0 +1,19 @@ +# 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) + + +class PyAzureMgmtDeploymentmanager(PythonPackage): + """Microsoft Azure Deployment Manager Client Library for Python.""" + + homepage = "https://github.com/Azure/azure-sdk-for-python" + url = "https://pypi.io/packages/source/a/azure-mgmt-deploymentmanager/azure-mgmt-deploymentmanager-0.2.0.zip" + + version('0.2.0', sha256='46e342227993fc9acab1dda42f2eb566b522a8c945ab9d0eea56276b46f6d730') + + depends_on('py-setuptools', type='build') + depends_on('py-msrest@0.5.0:', type=('build', 'run')) + depends_on('py-msrestazure@0.4.32:1.999', type=('build', 'run')) + depends_on('py-azure-common@1.1:1.999', type=('build', 'run')) + depends_on('py-azure-mgmt-nspkg', when='^python@:2', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-azure-mgmt-devtestlabs/package.py b/var/spack/repos/builtin/packages/py-azure-mgmt-devtestlabs/package.py new file mode 100644 index 0000000000..10094a24da --- /dev/null +++ b/var/spack/repos/builtin/packages/py-azure-mgmt-devtestlabs/package.py @@ -0,0 +1,19 @@ +# 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) + + +class PyAzureMgmtDevtestlabs(PythonPackage): + """Microsoft Azure DevTestLabs Management Client Library for Python.""" + + homepage = "https://github.com/Azure/azure-sdk-for-python" + url = "https://pypi.io/packages/source/a/azure-mgmt-devtestlabs/azure-mgmt-devtestlabs-4.0.0.zip" + + version('4.0.0', sha256='59549c4c4068f26466b1097b574a8e5099fb2cd6c8be0a00395b06d3b29e278d') + + depends_on('py-setuptools', type='build') + depends_on('py-msrest@0.5.0:', type=('build', 'run')) + depends_on('py-msrestazure@0.4.32:1.999', type=('build', 'run')) + depends_on('py-azure-common@1.1:1.999', type=('build', 'run')) + depends_on('py-azure-mgmt-nspkg', when='^python@:2', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-azure-mgmt-dns/package.py b/var/spack/repos/builtin/packages/py-azure-mgmt-dns/package.py new file mode 100644 index 0000000000..ef7bab9ef7 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-azure-mgmt-dns/package.py @@ -0,0 +1,20 @@ +# 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) + + +class PyAzureMgmtDns(PythonPackage): + """Microsoft Azure DNS Management Client Library for Python.""" + + homepage = "https://github.com/Azure/azure-sdk-for-python" + url = "https://pypi.io/packages/source/a/azure-mgmt-dns/azure-mgmt-dns-3.0.0.zip" + + version('3.0.0', sha256='6ecdf4e67d8eb5db593ec331e6d9f350616e77c31225c91d266605e03e63b37f') + version('2.1.0', sha256='3730b1b3f545a5aa43c0fff07418b362a789eb7d81286e2bed90ffef88bfa5d0') + + depends_on('py-setuptools', type='build') + depends_on('py-msrest@0.5.0:', type=('build', 'run')) + depends_on('py-msrestazure@0.4.32:1.999', type=('build', 'run')) + depends_on('py-azure-common@1.1:1.999', type=('build', 'run')) + depends_on('py-azure-mgmt-nspkg', when='^python@:2', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-azure-mgmt-eventgrid/package.py b/var/spack/repos/builtin/packages/py-azure-mgmt-eventgrid/package.py new file mode 100644 index 0000000000..d1dc0f2264 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-azure-mgmt-eventgrid/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) + + +class PyAzureMgmtEventgrid(PythonPackage): + """Microsoft Azure EventGrid Management Client Library for Python.""" + + homepage = "https://github.com/Azure/azure-sdk-for-python" + url = "https://pypi.io/packages/source/a/azure-mgmt-eventgrid/azure-mgmt-eventgrid-2.2.0.zip" + + # Release candidate needed for py-azure-cli + version('3.0.0rc7', sha256='68f9eb18b74fa86e07cf4e4d1a2ed16fe549bdd53f21a707b05798616b01a9d4') + version('2.2.0', sha256='c62058923ed20db35b04491cd1ad6a692f337244d05c377ecc14a53c06651cc3', preferred=True) + + depends_on('py-setuptools', type='build') + depends_on('py-msrest@0.5.0:', type=('build', 'run')) + depends_on('py-msrestazure@0.4.32:1.999', type=('build', 'run')) + depends_on('py-azure-common@1.1:1.999', type=('build', 'run')) + depends_on('py-azure-mgmt-nspkg', when='^python@:2', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-azure-mgmt-eventhub/package.py b/var/spack/repos/builtin/packages/py-azure-mgmt-eventhub/package.py new file mode 100644 index 0000000000..bd25960c8c --- /dev/null +++ b/var/spack/repos/builtin/packages/py-azure-mgmt-eventhub/package.py @@ -0,0 +1,19 @@ +# 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) + + +class PyAzureMgmtEventhub(PythonPackage): + """Microsoft Azure EventHub Management Client Library for Python.""" + + homepage = "https://github.com/Azure/azure-sdk-for-python" + url = "https://pypi.io/packages/source/a/azure-mgmt-eventhub/azure-mgmt-eventhub-4.0.0.zip" + + version('4.0.0', sha256='65223196cf132899656c2f9cb71a14c972d99e5ecd815ee050dae1072cb73ae2') + + depends_on('py-setuptools', type='build') + depends_on('py-msrest@0.5.0:', type=('build', 'run')) + depends_on('py-msrestazure@0.4.32:1.999', type=('build', 'run')) + depends_on('py-azure-common@1.1:1.999', type=('build', 'run')) + depends_on('py-azure-mgmt-nspkg', when='^python@:2', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-azure-mgmt-hdinsight/package.py b/var/spack/repos/builtin/packages/py-azure-mgmt-hdinsight/package.py new file mode 100644 index 0000000000..4107d2f68b --- /dev/null +++ b/var/spack/repos/builtin/packages/py-azure-mgmt-hdinsight/package.py @@ -0,0 +1,19 @@ +# 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) + + +class PyAzureMgmtHdinsight(PythonPackage): + """Microsoft Azure HDInsight Management Client Library for Python.""" + + homepage = "https://github.com/Azure/azure-sdk-for-python" + url = "https://pypi.io/packages/source/a/azure-mgmt-hdinsight/azure-mgmt-hdinsight-1.5.1.zip" + + version('1.5.1', sha256='76b94f3e43fdc6698023d79be731937dc645dc3178dc134854768528ecc0aea3') + + depends_on('py-setuptools', type='build') + depends_on('py-msrest@0.5.0:', type=('build', 'run')) + depends_on('py-msrestazure@0.4.32:1.999', type=('build', 'run')) + depends_on('py-azure-common@1.1:1.999', type=('build', 'run')) + depends_on('py-azure-mgmt-nspkg', when='^python@:2', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-azure-mgmt-imagebuilder/package.py b/var/spack/repos/builtin/packages/py-azure-mgmt-imagebuilder/package.py new file mode 100644 index 0000000000..44e3e311e4 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-azure-mgmt-imagebuilder/package.py @@ -0,0 +1,19 @@ +# 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) + + +class PyAzureMgmtImagebuilder(PythonPackage): + """Microsoft Azure Image Builder Client Library for Python.""" + + homepage = "https://github.com/Azure/azure-sdk-for-python" + url = "https://pypi.io/packages/source/a/azure-mgmt-imagebuilder/azure-mgmt-imagebuilder-0.4.0.zip" + + version('0.4.0', sha256='4c9291bf16b40b043637e5e4f15650f71418ac237393e62219cab478a7951733') + + depends_on('py-setuptools', type='build') + depends_on('py-msrest@0.5.0:', type=('build', 'run')) + depends_on('py-msrestazure@0.4.32:1.999', type=('build', 'run')) + depends_on('py-azure-common@1.1:1.999', type=('build', 'run')) + depends_on('py-azure-mgmt-nspkg', when='^python@:2', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-azure-mgmt-iotcentral/package.py b/var/spack/repos/builtin/packages/py-azure-mgmt-iotcentral/package.py new file mode 100644 index 0000000000..80154d6528 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-azure-mgmt-iotcentral/package.py @@ -0,0 +1,20 @@ +# 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) + + +class PyAzureMgmtIotcentral(PythonPackage): + """Microsoft Azure IoTCentral Management Client Library for Python.""" + + homepage = "https://github.com/Azure/azure-sdk-for-python" + url = "https://pypi.io/packages/source/a/azure-mgmt-iotcentral/azure-mgmt-iotcentral-3.1.0.zip" + + version('3.1.0', sha256='c175f6642be514ad0efd3dc03d09e50d923596fd9e634381793dcc46bb8a57c7') + version('3.0.0', sha256='f6dacf442ccae2f18f1082e80bcbdcaa8c0efa2ba92b48c5db6ee01d37240047') + + depends_on('py-setuptools', type='build') + depends_on('py-msrest@0.5.0:', type=('build', 'run')) + depends_on('py-msrestazure@0.4.32:1.999', type=('build', 'run')) + depends_on('py-azure-common@1.1:1.999', type=('build', 'run')) + depends_on('py-azure-mgmt-nspkg', when='^python@:2', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-azure-mgmt-iothub/package.py b/var/spack/repos/builtin/packages/py-azure-mgmt-iothub/package.py new file mode 100644 index 0000000000..a1954a9751 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-azure-mgmt-iothub/package.py @@ -0,0 +1,19 @@ +# 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) + + +class PyAzureMgmtIothub(PythonPackage): + """Microsoft Azure IoTHub Management Client Library for Python.""" + + homepage = "https://github.com/Azure/azure-sdk-for-python" + url = "https://pypi.io/packages/source/a/azure-mgmt-iothub/azure-mgmt-iothub-0.12.0.zip" + + version('0.12.0', sha256='da20ee2b9b9a2c2f89be9037c3ee5421152e7f6d718eafbf50a91dbf0a07ffa0') + + depends_on('py-setuptools', type='build') + depends_on('py-msrest@0.5.0:', type=('build', 'run')) + depends_on('py-msrestazure@0.4.32:1.999', type=('build', 'run')) + depends_on('py-azure-common@1.1:1.999', type=('build', 'run')) + depends_on('py-azure-mgmt-nspkg', when='^python@:2', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-azure-mgmt-iothubprovisioningservices/package.py b/var/spack/repos/builtin/packages/py-azure-mgmt-iothubprovisioningservices/package.py new file mode 100644 index 0000000000..37845cee5d --- /dev/null +++ b/var/spack/repos/builtin/packages/py-azure-mgmt-iothubprovisioningservices/package.py @@ -0,0 +1,18 @@ +# 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) + + +class PyAzureMgmtIothubprovisioningservices(PythonPackage): + """Microsoft Azure IoTHub Provisioning Services Client Library for Python. + """ + + homepage = "https://github.com/Azure/azure-sdk-for-python" + url = "https://pypi.io/packages/source/a/azure-mgmt-iothubprovisioningservices/azure-mgmt-iothubprovisioningservices-0.2.0.zip" + + version('0.2.0', sha256='8c37acfd1c33aba845f2e0302ef7266cad31cba503cc990a48684659acb7b91d') + + depends_on('py-setuptools', type='build') + depends_on('py-msrestazure@0.4.20:1.999', type=('build', 'run')) + depends_on('py-azure-common@1.1:1.999', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-azure-mgmt-kusto/package.py b/var/spack/repos/builtin/packages/py-azure-mgmt-kusto/package.py new file mode 100644 index 0000000000..faadc899cf --- /dev/null +++ b/var/spack/repos/builtin/packages/py-azure-mgmt-kusto/package.py @@ -0,0 +1,20 @@ +# 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) + + +class PyAzureMgmtKusto(PythonPackage): + """Microsoft Azure Kusto Management Client Library for Python.""" + + homepage = "https://github.com/Azure/azure-sdk-for-python" + url = "https://pypi.io/packages/source/a/azure-mgmt-kusto/azure-mgmt-kusto-0.9.0.zip" + + version('0.9.0', sha256='9210db89fa18ee8ed53339cd63bbe6fe1d9624cd793b54b7451ddbda8ae92ef3') + version('0.3.0', sha256='9eb8b7781fd4410ee9e207cd0c3983baf9e58414b5b4a18849d09856e36bacde') + + depends_on('py-setuptools', type='build') + depends_on('py-msrest@0.5.0:', type=('build', 'run')) + depends_on('py-msrestazure@0.4.32:1.999', type=('build', 'run')) + depends_on('py-azure-common@1.1:1.999', type=('build', 'run')) + depends_on('py-azure-mgmt-nspkg', when='^python@:2', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-azure-mgmt-loganalytics/package.py b/var/spack/repos/builtin/packages/py-azure-mgmt-loganalytics/package.py new file mode 100644 index 0000000000..925db35fa1 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-azure-mgmt-loganalytics/package.py @@ -0,0 +1,19 @@ +# 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) + + +class PyAzureMgmtLoganalytics(PythonPackage): + """Microsoft Azure Log Analytics Management Client Library for Python.""" + + homepage = "https://github.com/Azure/azure-sdk-for-python" + url = "https://pypi.io/packages/source/a/azure-mgmt-loganalytics/azure-mgmt-loganalytics-0.7.0.zip" + + version('0.7.0', sha256='50fb7f714685d170ce9607e3c30488e194015845ef7f0a717b80609837a6c2a2') + + depends_on('py-setuptools', type='build') + depends_on('py-msrest@0.5.0:', type=('build', 'run')) + depends_on('py-msrestazure@0.4.32:1.999', type=('build', 'run')) + depends_on('py-azure-common@1.1:1.999', type=('build', 'run')) + depends_on('py-azure-mgmt-nspkg', when='^python@:2', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-azure-mgmt-managedservices/package.py b/var/spack/repos/builtin/packages/py-azure-mgmt-managedservices/package.py new file mode 100644 index 0000000000..d7ac227ef3 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-azure-mgmt-managedservices/package.py @@ -0,0 +1,19 @@ +# 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) + + +class PyAzureMgmtManagedservices(PythonPackage): + """Microsoft Azure Managed Services Client Library for Python.""" + + homepage = "https://github.com/Azure/azure-sdk-for-python" + url = "https://pypi.io/packages/source/a/azure-mgmt-managedservices/azure-mgmt-managedservices-1.0.0.zip" + + version('1.0.0', sha256='fed8399fc6773aada37c1d0496a46f59410d77c9494d0ca5967c531c3376ad19') + + depends_on('py-setuptools', type='build') + depends_on('py-msrest@0.5.0:', type=('build', 'run')) + depends_on('py-msrestazure@0.4.32:1.999', type=('build', 'run')) + depends_on('py-azure-common@1.1:1.999', type=('build', 'run')) + depends_on('py-azure-mgmt-nspkg', when='^python@:2', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-azure-mgmt-managementgroups/package.py b/var/spack/repos/builtin/packages/py-azure-mgmt-managementgroups/package.py new file mode 100644 index 0000000000..6ce865aaba --- /dev/null +++ b/var/spack/repos/builtin/packages/py-azure-mgmt-managementgroups/package.py @@ -0,0 +1,19 @@ +# 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) + + +class PyAzureMgmtManagementgroups(PythonPackage): + """Microsoft Azure Management Groups Client Library for Python.""" + + homepage = "https://github.com/Azure/azure-sdk-for-python" + url = "https://pypi.io/packages/source/a/azure-mgmt-managementgroups/azure-mgmt-managementgroups-0.2.0.zip" + + version('0.2.0', sha256='3d5237947458dc94b4a392141174b1c1258d26611241ee104e9006d1d798f682') + + depends_on('py-setuptools', type='build') + depends_on('py-msrest@0.5.0:', type=('build', 'run')) + depends_on('py-msrestazure@0.4.32:1.999', type=('build', 'run')) + depends_on('py-azure-common@1.1:1.999', type=('build', 'run')) + depends_on('py-azure-mgmt-nspkg', when='^python@:2', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-azure-mgmt-maps/package.py b/var/spack/repos/builtin/packages/py-azure-mgmt-maps/package.py new file mode 100644 index 0000000000..8448f6fde4 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-azure-mgmt-maps/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) + + +class PyAzureMgmtMaps(PythonPackage): + """Microsoft Azure Maps Client Library for Python.""" + + homepage = "https://github.com/Azure/azure-sdk-for-python" + url = "https://pypi.io/packages/source/a/azure-mgmt-maps/azure-mgmt-maps-0.1.0.zip" + + version('0.1.0', sha256='c120e210bb61768da29de24d28b82f8d42ae24e52396eb6569b499709e22f006') + + depends_on('py-setuptools', type='build') + depends_on('py-msrestazure@0.4.27:1.999', type=('build', 'run')) + depends_on('py-azure-common@1.1:1.999', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-azure-mgmt-marketplaceordering/package.py b/var/spack/repos/builtin/packages/py-azure-mgmt-marketplaceordering/package.py new file mode 100644 index 0000000000..a09eaf331c --- /dev/null +++ b/var/spack/repos/builtin/packages/py-azure-mgmt-marketplaceordering/package.py @@ -0,0 +1,19 @@ +# 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) + + +class PyAzureMgmtMarketplaceordering(PythonPackage): + """Microsoft Azure Market Place Ordering Client Library for Python.""" + + homepage = "https://github.com/Azure/azure-sdk-for-python" + url = "https://pypi.io/packages/source/a/azure-mgmt-marketplaceordering/azure-mgmt-marketplaceordering-0.2.1.zip" + + version('0.2.1', sha256='dc765cde7ec03efe456438c85c6207c2f77775a8ce8a7adb19b0df5c5dc513c2') + + depends_on('py-setuptools', type='build') + depends_on('py-msrest@0.5.0:', type=('build', 'run')) + depends_on('py-msrestazure@0.4.32:1.999', type=('build', 'run')) + depends_on('py-azure-common@1.1:1.999', type=('build', 'run')) + depends_on('py-azure-mgmt-nspkg', when='^python@:2', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-azure-mgmt-media/package.py b/var/spack/repos/builtin/packages/py-azure-mgmt-media/package.py new file mode 100644 index 0000000000..7ef8dd5201 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-azure-mgmt-media/package.py @@ -0,0 +1,19 @@ +# 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) + + +class PyAzureMgmtMedia(PythonPackage): + """Microsoft Azure Media Services Client Library for Python.""" + + homepage = "https://github.com/Azure/azure-sdk-for-python" + url = "https://pypi.io/packages/source/a/azure-mgmt-media/azure-mgmt-media-2.2.0.zip" + + version('2.2.0', sha256='0adeee9e654a9011f5107def06fea6838864a3514a1e5a9ed495f3a56a687cc7') + + depends_on('py-setuptools', type='build') + depends_on('py-msrest@0.5.0:', type=('build', 'run')) + depends_on('py-msrestazure@0.4.32:1.999', type=('build', 'run')) + depends_on('py-azure-common@1.1:1.999', type=('build', 'run')) + depends_on('py-azure-mgmt-nspkg', when='^python@:2', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-azure-mgmt-monitor/package.py b/var/spack/repos/builtin/packages/py-azure-mgmt-monitor/package.py new file mode 100644 index 0000000000..681dbf6c22 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-azure-mgmt-monitor/package.py @@ -0,0 +1,20 @@ +# 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) + + +class PyAzureMgmtMonitor(PythonPackage): + """Microsoft Azure Monitor Client Library for Python.""" + + homepage = "https://github.com/Azure/azure-sdk-for-python" + url = "https://pypi.io/packages/source/a/azure-mgmt-monitor/azure-mgmt-monitor-0.11.0.zip" + + version('0.11.0', sha256='c6e1fe83dd2ddffa7f6d90c7aa63b3128042396a3893c14dc4816ad28cb15016') + version('0.10.0', sha256='d57d604cc1a7a9ce35eb7cf8a00d4924887c688aa78dc035ea1f80066b297464') + + depends_on('py-setuptools', type='build') + depends_on('py-msrest@0.5.0:', type=('build', 'run')) + depends_on('py-msrestazure@0.4.32:1.999', type=('build', 'run')) + depends_on('py-azure-common@1.1:1.999', type=('build', 'run')) + depends_on('py-azure-mgmt-nspkg', when='^python@:2', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-azure-mgmt-msi/package.py b/var/spack/repos/builtin/packages/py-azure-mgmt-msi/package.py new file mode 100644 index 0000000000..abdbdc640a --- /dev/null +++ b/var/spack/repos/builtin/packages/py-azure-mgmt-msi/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) + + +class PyAzureMgmtMsi(PythonPackage): + """Microsoft Azure MSI Management Client Library for Python.""" + + homepage = "https://github.com/Azure/azure-sdk-for-python" + url = "https://pypi.io/packages/source/a/azure-mgmt-msi/azure-mgmt-msi-1.0.0.zip" + + version('1.0.0', sha256='d46f3aab25db3dad520e4055c1d67afe4fcc6d66335c762134e60f82265f8f58') + version('0.2.0', sha256='8622bc9a164169a0113728ebe7fd43a88189708ce6e10d4507247d6907987167') + + depends_on('py-setuptools', type='build') + depends_on('py-msrest@0.5.0:', when='@1:', type=('build', 'run')) + depends_on('py-msrestazure@0.4.32:1.999', when='@1:', type=('build', 'run')) + depends_on('py-msrestazure@0.4.27:1.999', type=('build', 'run')) + depends_on('py-azure-common@1.1:1.999', type=('build', 'run')) + depends_on('py-azure-mgmt-nspkg', when='@1: ^python@:2', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-azure-mgmt-netapp/package.py b/var/spack/repos/builtin/packages/py-azure-mgmt-netapp/package.py new file mode 100644 index 0000000000..401b2078c3 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-azure-mgmt-netapp/package.py @@ -0,0 +1,20 @@ +# 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) + + +class PyAzureMgmtNetapp(PythonPackage): + """Microsoft Azure NetApp Files Management Client Library for Python.""" + + homepage = "https://github.com/Azure/azure-sdk-for-python" + url = "https://pypi.io/packages/source/a/azure-mgmt-netapp/azure-mgmt-netapp-0.11.0.zip" + + version('0.11.0', sha256='621a76b06c97e858d49b68953e66eb718ac24f91aa6bf090f32a335a38f02305') + version('0.8.0', sha256='67df7c7391c2179423a95927a639492c3a177bff8f3a80e4b2d666a86e2d6f6d') + + depends_on('py-setuptools', type='build') + depends_on('py-msrest@0.5.0:', type=('build', 'run')) + depends_on('py-msrestazure@0.4.32:1.999', type=('build', 'run')) + depends_on('py-azure-common@1.1:1.999', type=('build', 'run')) + depends_on('py-azure-mgmt-nspkg', when='^python@:2', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-azure-mgmt-network/package.py b/var/spack/repos/builtin/packages/py-azure-mgmt-network/package.py index cbc0473e79..549160d7ea 100644 --- a/var/spack/repos/builtin/packages/py-azure-mgmt-network/package.py +++ b/var/spack/repos/builtin/packages/py-azure-mgmt-network/package.py @@ -8,8 +8,9 @@ class PyAzureMgmtNetwork(PythonPackage): """Microsoft Azure Network Management Client Library for Python.""" homepage = "https://github.com/Azure/azure-sdk-for-python" - url = "https://pypi.io/packages/source/a/azure-mgmt-network/azure-mgmt-network-10.2.0.zip" + url = "https://pypi.io/packages/source/a/azure-mgmt-network/azure-mgmt-network-11.0.0.zip" + version('11.0.0', sha256='7fdfc631c660cb173eee88abbb7b8be7742f91b522be6017867f217409cd69bc') version('10.2.0', sha256='d50c74cdc1c9be6861ddef9adffd3b05afc5a5092baf0209eea30f4439cba2d9') depends_on('py-setuptools', type='build') diff --git a/var/spack/repos/builtin/packages/py-azure-mgmt-policyinsights/package.py b/var/spack/repos/builtin/packages/py-azure-mgmt-policyinsights/package.py new file mode 100644 index 0000000000..c0532b307a --- /dev/null +++ b/var/spack/repos/builtin/packages/py-azure-mgmt-policyinsights/package.py @@ -0,0 +1,19 @@ +# 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) + + +class PyAzureMgmtPolicyinsights(PythonPackage): + """Microsoft Azure Policy Insights Client Library for Python.""" + + homepage = "https://github.com/Azure/azure-sdk-for-python" + url = "https://pypi.io/packages/source/a/azure-mgmt-policyinsights/azure-mgmt-policyinsights-0.5.0.zip" + + version('0.5.0', sha256='ed229e3845c477e88dde413825d4fba0d38b3a5ffab4e694c7d0da995f3db0f3') + + depends_on('py-setuptools', type='build') + depends_on('py-msrest@0.5.0:', type=('build', 'run')) + depends_on('py-msrestazure@0.4.32:1.999', type=('build', 'run')) + depends_on('py-azure-common@1.1:1.999', type=('build', 'run')) + depends_on('py-azure-mgmt-nspkg', when='^python@:2', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-azure-mgmt-privatedns/package.py b/var/spack/repos/builtin/packages/py-azure-mgmt-privatedns/package.py new file mode 100644 index 0000000000..5aa65aec57 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-azure-mgmt-privatedns/package.py @@ -0,0 +1,19 @@ +# 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) + + +class PyAzureMgmtPrivatedns(PythonPackage): + """Microsoft Azure DNS Private Zones Client Library for Python.""" + + homepage = "https://github.com/Azure/azure-sdk-for-python" + url = "https://pypi.io/packages/source/a/azure-mgmt-privatedns/azure-mgmt-privatedns-0.1.0.zip" + + version('0.1.0', sha256='d29cfd8cec806e06673d9382d3f5766fc65d9a9de75b424705094a34a7db8d23') + + depends_on('py-setuptools', type='build') + depends_on('py-msrest@0.5.0:', type=('build', 'run')) + depends_on('py-msrestazure@0.4.32:1.999', type=('build', 'run')) + depends_on('py-azure-common@1.1:1.999', type=('build', 'run')) + depends_on('py-azure-mgmt-nspkg', when='^python@:2', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-azure-mgmt-rdbms/package.py b/var/spack/repos/builtin/packages/py-azure-mgmt-rdbms/package.py new file mode 100644 index 0000000000..c375a82622 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-azure-mgmt-rdbms/package.py @@ -0,0 +1,19 @@ +# 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) + + +class PyAzureMgmtRdbms(PythonPackage): + """Microsoft Azure RDBMS Management Client Library for Python.""" + + homepage = "https://github.com/Azure/azure-sdk-for-python" + url = "https://pypi.io/packages/source/a/azure-mgmt-rdbms/azure-mgmt-rdbms-2.2.0.zip" + + version('2.2.0', sha256='f93344897a9bfa6ebc57dd0c10ad79602ff7965c322c65115e3f4b8584bbe1c7') + + depends_on('py-setuptools', type='build') + depends_on('py-msrest@0.5.0:', type=('build', 'run')) + depends_on('py-msrestazure@0.4.32:1.999', type=('build', 'run')) + depends_on('py-azure-common@1.1:1.999', type=('build', 'run')) + depends_on('py-azure-mgmt-nspkg', when='^python@:2', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-azure-mgmt-recoveryservices/package.py b/var/spack/repos/builtin/packages/py-azure-mgmt-recoveryservices/package.py new file mode 100644 index 0000000000..67a5987b8f --- /dev/null +++ b/var/spack/repos/builtin/packages/py-azure-mgmt-recoveryservices/package.py @@ -0,0 +1,20 @@ +# 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) + + +class PyAzureMgmtRecoveryservices(PythonPackage): + """Microsoft Azure Recovery Services Client Library for Python.""" + + homepage = "https://github.com/Azure/azure-sdk-for-python" + url = "https://pypi.io/packages/source/a/azure-mgmt-recoveryservices/azure-mgmt-recoveryservices-0.5.0.zip" + + version('0.5.0', sha256='3c90e6b2e358dbe6d5c6d7204955bdf52c3e977c6f8b727cbbb8811427d7fd52') + version('0.4.0', sha256='e1e794760232239f8a9328d5de1740565ff70d1612a2921c9609746ba5671e6c') + + depends_on('py-setuptools', type='build') + depends_on('py-msrest@0.5.0:', type=('build', 'run')) + depends_on('py-msrestazure@0.4.32:1.999', type=('build', 'run')) + depends_on('py-azure-common@1.1:1.999', type=('build', 'run')) + depends_on('py-azure-mgmt-nspkg', when='^python@:2', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-azure-mgmt-recoveryservicesbackup/package.py b/var/spack/repos/builtin/packages/py-azure-mgmt-recoveryservicesbackup/package.py new file mode 100644 index 0000000000..96b755acef --- /dev/null +++ b/var/spack/repos/builtin/packages/py-azure-mgmt-recoveryservicesbackup/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) + + +class PyAzureMgmtRecoveryservicesbackup(PythonPackage): + """Microsoft Azure Recovery Services Backup Management Client Library for + Python.""" + + homepage = "https://github.com/Azure/azure-sdk-for-python" + url = "https://pypi.io/packages/source/a/azure-mgmt-recoveryservicesbackup/azure-mgmt-recoveryservicesbackup-0.8.0.zip" + + version('0.8.0', sha256='a0ee89691b21945cc4b892a9194320f50c1cd242d98f00a82d7e3848c28517a5') + version('0.6.0', sha256='4df62479c90a6f93e7689f9d58e0a139899f0407f5e3298d5ce014442599428f') + + depends_on('py-setuptools', type='build') + depends_on('py-msrest@0.5.0:', type=('build', 'run')) + depends_on('py-msrestazure@0.4.32:1.999', type=('build', 'run')) + depends_on('py-azure-common@1.1:1.999', type=('build', 'run')) + depends_on('py-azure-mgmt-nspkg', when='^python@:2', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-azure-mgmt-redhatopenshift/package.py b/var/spack/repos/builtin/packages/py-azure-mgmt-redhatopenshift/package.py new file mode 100644 index 0000000000..6503254cd8 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-azure-mgmt-redhatopenshift/package.py @@ -0,0 +1,20 @@ +# 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) + + +class PyAzureMgmtRedhatopenshift(PythonPackage): + """Microsoft Azure Red Hat Openshift Management Client Library for Python. + """ + + homepage = "https://github.com/Azure/azure-sdk-for-python" + url = "https://pypi.io/packages/source/a/azure-mgmt-redhatopenshift/azure-mgmt-redhatopenshift-0.1.0.zip" + + version('0.1.0', sha256='565afbc63f5283f37c76135174f2ca20dd417da3e24b3fb1e132c4a0e2a2c5bc') + + depends_on('py-setuptools', type='build') + depends_on('py-msrest@0.5.0:', type=('build', 'run')) + depends_on('py-msrestazure@0.4.32:1.999', type=('build', 'run')) + depends_on('py-azure-common@1.1:1.999', type=('build', 'run')) + depends_on('py-azure-mgmt-nspkg', when='^python@:2', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-azure-mgmt-redis/package.py b/var/spack/repos/builtin/packages/py-azure-mgmt-redis/package.py new file mode 100644 index 0000000000..90d0e95241 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-azure-mgmt-redis/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) + + +class PyAzureMgmtRedis(PythonPackage): + """Microsoft Azure Redis Cache Management Client Library for Python.""" + + homepage = "https://github.com/Azure/azure-sdk-for-python" + url = "https://pypi.io/packages/source/a/azure-mgmt-redis/azure-mgmt-redis-6.0.0.zip" + + # Release candidate needed for py-azure-cli + version('7.0.0rc1', sha256='d3cc259c507b79962495ed00d0a3432a45e4e90a0fb48b49e80d51cdc398dc20') + version('6.0.0', sha256='db999e104edeee3a13a8ceb1881e15196fe03a02635e0e20855eb52c1e2ecca1', preferred=True) + + depends_on('py-setuptools', type='build') + depends_on('py-msrest@0.5.0:', type=('build', 'run')) + depends_on('py-msrestazure@0.4.32:1.999', type=('build', 'run')) + depends_on('py-azure-common@1.1:1.999', type=('build', 'run')) + depends_on('py-azure-mgmt-nspkg', when='^python@:2', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-azure-mgmt-relay/package.py b/var/spack/repos/builtin/packages/py-azure-mgmt-relay/package.py new file mode 100644 index 0000000000..fee12b519b --- /dev/null +++ b/var/spack/repos/builtin/packages/py-azure-mgmt-relay/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) + + +class PyAzureMgmtRelay(PythonPackage): + """Microsoft Azure Relay Client Library for Python.""" + + homepage = "https://github.com/Azure/azure-sdk-for-python" + url = "https://pypi.io/packages/source/a/azure-mgmt-relay/azure-mgmt-relay-0.2.0.zip" + + version('0.2.0', sha256='a7e8341b2920d1d45bdf73d2b7825c44427d33fb0d820aceb11c94432323bf68') + version('0.1.0', sha256='d9f987cf2998b8a354f331b2a71082c049193f1e1cd345812e14b9b821365acb') + + depends_on('py-setuptools', type='build') + depends_on('py-msrest@0.5.0:', when='@0.2:', type=('build', 'run')) + depends_on('py-msrestazure@0.4.32:1.999', when='@0.2:', type=('build', 'run')) + depends_on('py-msrestazure@0.4.20:1.999', type=('build', 'run')) + depends_on('py-azure-common@1.1:1.999', type=('build', 'run')) + depends_on('py-azure-mgmt-nspkg', when='@0.2: ^python@:2', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-azure-mgmt-reservations/package.py b/var/spack/repos/builtin/packages/py-azure-mgmt-reservations/package.py new file mode 100644 index 0000000000..b14a6d83dc --- /dev/null +++ b/var/spack/repos/builtin/packages/py-azure-mgmt-reservations/package.py @@ -0,0 +1,20 @@ +# 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) + + +class PyAzureMgmtReservations(PythonPackage): + """Microsoft Azure Reservations Client Library for Python.""" + + homepage = "https://github.com/Azure/azure-sdk-for-python" + url = "https://pypi.io/packages/source/a/azure-mgmt-reservations/azure-mgmt-reservations-0.7.0.zip" + + version('0.7.0', sha256='f65c1985a47e0ac55e7d5d9cc1bd5e95335a111566edc289d460aa2bc8f80991') + version('0.6.0', sha256='83a9a70d6fd78b8b3e92ca64bbc1fde8d1bc5e2efea54076052c51c946b4cc9b') + + depends_on('py-setuptools', type='build') + depends_on('py-msrest@0.5.0:', type=('build', 'run')) + depends_on('py-msrestazure@0.4.32:1.999', type=('build', 'run')) + depends_on('py-azure-common@1.1:1.999', type=('build', 'run')) + depends_on('py-azure-mgmt-nspkg', when='^python@:2', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-azure-mgmt-search/package.py b/var/spack/repos/builtin/packages/py-azure-mgmt-search/package.py new file mode 100644 index 0000000000..42e7eae43d --- /dev/null +++ b/var/spack/repos/builtin/packages/py-azure-mgmt-search/package.py @@ -0,0 +1,19 @@ +# 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) + + +class PyAzureMgmtSearch(PythonPackage): + """Microsoft Azure Search Management Client Library for Python.""" + + homepage = "https://github.com/Azure/azure-sdk-for-python" + url = "https://pypi.io/packages/source/a/azure-mgmt-search/azure-mgmt-search-2.1.0.zip" + + version('2.1.0', sha256='92a40a1a7a9e3a82b6fa302042799e8d5a67d3996c20835af72afc14f1610501') + + depends_on('py-setuptools', type='build') + depends_on('py-msrest@0.5.0:', type=('build', 'run')) + depends_on('py-msrestazure@0.4.32:1.999', type=('build', 'run')) + depends_on('py-azure-common@1.1:1.999', type=('build', 'run')) + depends_on('py-azure-mgmt-nspkg', when='^python@:2', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-azure-mgmt-security/package.py b/var/spack/repos/builtin/packages/py-azure-mgmt-security/package.py new file mode 100644 index 0000000000..27778ebcba --- /dev/null +++ b/var/spack/repos/builtin/packages/py-azure-mgmt-security/package.py @@ -0,0 +1,19 @@ +# 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) + + +class PyAzureMgmtSecurity(PythonPackage): + """Microsoft Azure Security Center Management Client Library for Python.""" + + homepage = "https://github.com/Azure/azure-sdk-for-python" + url = "https://pypi.io/packages/source/a/azure-mgmt-security/azure-mgmt-security-0.4.1.zip" + + version('0.4.1', sha256='391c8df5400485049a6c19d50e536304c186bb64fd569eec0c6d01d20220ee21') + + depends_on('py-setuptools', type='build') + depends_on('py-msrest@0.5.0:', type=('build', 'run')) + depends_on('py-msrestazure@0.4.32:1.999', type=('build', 'run')) + depends_on('py-azure-common@1.1:1.999', type=('build', 'run')) + depends_on('py-azure-mgmt-nspkg', when='^python@:2', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-azure-mgmt-servicebus/package.py b/var/spack/repos/builtin/packages/py-azure-mgmt-servicebus/package.py new file mode 100644 index 0000000000..22fba6dcf8 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-azure-mgmt-servicebus/package.py @@ -0,0 +1,19 @@ +# 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) + + +class PyAzureMgmtServicebus(PythonPackage): + """Microsoft Azure Service Bus Management Client Library for Python.""" + + homepage = "https://github.com/Azure/azure-sdk-for-python" + url = "https://pypi.io/packages/source/a/azure-mgmt-servicebus/azure-mgmt-servicebus-0.6.0.zip" + + version('0.6.0', sha256='f20920b8fb119ef4abeda4d2dac765a4fc48cd0bcf30c27f8c4cc6d890bc08b1') + + depends_on('py-setuptools', type='build') + depends_on('py-msrest@0.5.0:', type=('build', 'run')) + depends_on('py-msrestazure@0.4.32:1.999', type=('build', 'run')) + depends_on('py-azure-common@1.1:1.999', type=('build', 'run')) + depends_on('py-azure-mgmt-nspkg', when='^python@:2', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-azure-mgmt-servicefabric/package.py b/var/spack/repos/builtin/packages/py-azure-mgmt-servicefabric/package.py new file mode 100644 index 0000000000..519f7c632f --- /dev/null +++ b/var/spack/repos/builtin/packages/py-azure-mgmt-servicefabric/package.py @@ -0,0 +1,19 @@ +# 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) + + +class PyAzureMgmtServicefabric(PythonPackage): + """Microsoft Azure Service Fabric Management Client Library for Python.""" + + homepage = "https://github.com/Azure/azure-sdk-for-python" + url = "https://pypi.io/packages/source/a/azure-mgmt-servicefabric/azure-mgmt-servicefabric-0.4.0.zip" + + version('0.4.0', sha256='a2cbd2797e796a550a93d37229b2ded22765f50166730a63c8e20a27677e28f4') + + depends_on('py-setuptools', type='build') + depends_on('py-msrest@0.5.0:', type=('build', 'run')) + depends_on('py-msrestazure@0.4.32:1.999', type=('build', 'run')) + depends_on('py-azure-common@1.1:1.999', type=('build', 'run')) + depends_on('py-azure-mgmt-nspkg', when='^python@:2', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-azure-mgmt-signalr/package.py b/var/spack/repos/builtin/packages/py-azure-mgmt-signalr/package.py new file mode 100644 index 0000000000..298f1b7b05 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-azure-mgmt-signalr/package.py @@ -0,0 +1,19 @@ +# 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) + + +class PyAzureMgmtSignalr(PythonPackage): + """Microsoft Azure SignalR Client Library for Python.""" + + homepage = "https://github.com/Azure/azure-sdk-for-python" + url = "https://pypi.io/packages/source/a/azure-mgmt-signalr/azure-mgmt-signalr-0.4.0.zip" + + version('0.4.0', sha256='6503ddda9d6f4b634dfeb8eb4bcd14ede5e0900585f6c83bf9010cf82215c126') + + depends_on('py-setuptools', type='build') + depends_on('py-msrest@0.5.0:', type=('build', 'run')) + depends_on('py-msrestazure@0.4.32:1.999', type=('build', 'run')) + depends_on('py-azure-common@1.1:1.999', type=('build', 'run')) + depends_on('py-azure-mgmt-nspkg', when='^python@:2', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-azure-mgmt-sql/package.py b/var/spack/repos/builtin/packages/py-azure-mgmt-sql/package.py new file mode 100644 index 0000000000..8bfe3781bb --- /dev/null +++ b/var/spack/repos/builtin/packages/py-azure-mgmt-sql/package.py @@ -0,0 +1,19 @@ +# 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) + + +class PyAzureMgmtSql(PythonPackage): + """Microsoft Azure SQL Management Client Library for Python.""" + + homepage = "https://github.com/Azure/azure-sdk-for-python" + url = "https://pypi.io/packages/source/a/azure-mgmt-sql/azure-mgmt-sql-0.19.0.zip" + + version('0.19.0', sha256='694649d4c9c5f89e543f23ec10e450b6382b2f1bc5843ef266cfc302276038c6') + + depends_on('py-setuptools', type='build') + depends_on('py-msrest@0.5.0:', type=('build', 'run')) + depends_on('py-msrestazure@0.4.32:1.999', type=('build', 'run')) + depends_on('py-azure-common@1.1:1.999', type=('build', 'run')) + depends_on('py-azure-mgmt-nspkg', when='^python@:2', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-azure-mgmt-sqlvirtualmachine/package.py b/var/spack/repos/builtin/packages/py-azure-mgmt-sqlvirtualmachine/package.py new file mode 100644 index 0000000000..03565edb89 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-azure-mgmt-sqlvirtualmachine/package.py @@ -0,0 +1,20 @@ +# 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) + + +class PyAzureMgmtSqlvirtualmachine(PythonPackage): + """Microsoft Azure SQL Virtual Machine Management Client Library for + Python.""" + + homepage = "https://github.com/Azure/azure-sdk-for-python" + url = "https://pypi.io/packages/source/a/azure-mgmt-sqlvirtualmachine/azure-mgmt-sqlvirtualmachine-0.5.0.zip" + + version('0.5.0', sha256='b5a9423512a7b12844ac014366a1d53c81017a14f39676beedf004a532aa2aad') + + depends_on('py-setuptools', type='build') + depends_on('py-msrest@0.5.0:', type=('build', 'run')) + depends_on('py-msrestazure@0.4.32:1.999', type=('build', 'run')) + depends_on('py-azure-common@1.1:1.999', type=('build', 'run')) + depends_on('py-azure-mgmt-nspkg', when='^python@:2', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-azure-mgmt-storage/package.py b/var/spack/repos/builtin/packages/py-azure-mgmt-storage/package.py index c2dd7d68f5..f53822ef94 100644 --- a/var/spack/repos/builtin/packages/py-azure-mgmt-storage/package.py +++ b/var/spack/repos/builtin/packages/py-azure-mgmt-storage/package.py @@ -8,8 +8,9 @@ class PyAzureMgmtStorage(PythonPackage): """Microsoft Azure Storage Management Client Library for Python.""" homepage = "https://github.com/Azure/azure-sdk-for-python" - url = "https://pypi.io/packages/source/a/azure-mgmt-storage/azure-mgmt-storage-11.0.0.zip" + url = "https://pypi.io/packages/source/a/azure-mgmt-storage/azure-mgmt-storage-11.1.0.zip" + version('11.1.0', sha256='ef23587c1b6dc0866ebf0e91e83ba05d7f7e4fea7951b704781b9cd9f5f27f1c') version('11.0.0', sha256='f9791c2a84eee0a55bbf757632a2a4d1e102db958e75422d5e0e7306041129b8') depends_on('py-setuptools', type='build') diff --git a/var/spack/repos/builtin/packages/py-azure-mgmt-trafficmanager/package.py b/var/spack/repos/builtin/packages/py-azure-mgmt-trafficmanager/package.py new file mode 100644 index 0000000000..fa6dc2c756 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-azure-mgmt-trafficmanager/package.py @@ -0,0 +1,19 @@ +# 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) + + +class PyAzureMgmtTrafficmanager(PythonPackage): + """Microsoft Azure Traffic Manager Client Library for Python.""" + + homepage = "https://github.com/Azure/azure-sdk-for-python" + url = "https://pypi.io/packages/source/a/azure-mgmt-trafficmanager/azure-mgmt-trafficmanager-0.51.0.zip" + + version('0.51.0', sha256='fc8ae77022cfe52fda4379a2f31e0b857574d536e41291a7b569b5c0f4104186') + + depends_on('py-setuptools', type='build') + depends_on('py-msrest@0.5.0:', type=('build', 'run')) + depends_on('py-msrestazure@0.4.32:1.999', type=('build', 'run')) + depends_on('py-azure-common@1.1:1.999', type=('build', 'run')) + depends_on('py-azure-mgmt-nspkg', when='^python@:2', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-azure-mgmt-web/package.py b/var/spack/repos/builtin/packages/py-azure-mgmt-web/package.py new file mode 100644 index 0000000000..b4d7f2ba45 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-azure-mgmt-web/package.py @@ -0,0 +1,19 @@ +# 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) + + +class PyAzureMgmtWeb(PythonPackage): + """Microsoft Azure Web Apps Management Client Library for Python.""" + + homepage = "https://github.com/Azure/azure-sdk-for-python" + url = "https://pypi.io/packages/source/a/azure-mgmt-web/azure-mgmt-web-0.47.0.zip" + + version('0.47.0', sha256='789a328e2a60df48a82452ca6fbc1a7b4adf3c38d4701d278efe4e81cf21cce8') + + depends_on('py-setuptools', type='build') + depends_on('py-msrest@0.5.0:', type=('build', 'run')) + depends_on('py-msrestazure@0.4.32:1.999', type=('build', 'run')) + depends_on('py-azure-common@1.1:1.999', type=('build', 'run')) + depends_on('py-azure-mgmt-nspkg', when='^python@:2', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-azure-multiapi-storage/package.py b/var/spack/repos/builtin/packages/py-azure-multiapi-storage/package.py new file mode 100644 index 0000000000..5d5a8442b5 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-azure-multiapi-storage/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) + + +class PyAzureMultiapiStorage(PythonPackage): + """Microsoft Azure Storage Client Library for Python with multi API + version support.""" + + homepage = "https://github.com/Azure/azure-multiapi-storage-python" + url = "https://pypi.io/packages/source/a/azure-multiapi-storage/azure-multiapi-storage-0.3.5.tar.gz" + + version('0.3.5', sha256='71c238c785786a159b3ffd587a5e7fa1d9a517b66b592ae277fed73a9fbfa2b0') + + depends_on('py-setuptools', type='build') + depends_on('py-azure-common', type=('build', 'run')) + depends_on('py-cryptography', type=('build', 'run')) + depends_on('py-python-dateutil', type=('build', 'run')) + depends_on('py-requests', type=('build', 'run')) + depends_on('py-azure-core', type=('build', 'run')) + depends_on('py-futures', when='^python@:2', type=('build', 'run')) + depends_on('py-azure-nspkg', when='^python@:2', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-azure-storage-common/package.py b/var/spack/repos/builtin/packages/py-azure-storage-common/package.py new file mode 100644 index 0000000000..70902f28d9 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-azure-storage-common/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) + + +class PyAzureStorageCommon(PythonPackage): + """Microsoft Azure Storage Common Client Library for Python.""" + + homepage = "https://github.com/Azure/azure-storage-python" + url = "https://pypi.io/packages/source/a/azure-storage-common/azure-storage-common-2.1.0.tar.gz" + + version('2.1.0', sha256='ccedef5c67227bc4d6670ffd37cec18fb529a1b7c3a5e53e4096eb0cf23dc73f') + version('1.4.2', sha256='4ec87c7537d457ec95252e0e46477e2c1ccf33774ffefd05d8544682cb0ae401') + + depends_on('py-setuptools', type='build') + depends_on('py-azure-common@1.1.5:', type=('build', 'run')) + depends_on('py-cryptography', type=('build', 'run')) + depends_on('py-python-dateutil', type=('build', 'run')) + depends_on('py-requests', type=('build', 'run')) + depends_on('py-azure-storage-nspkg', when='^python@:2', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-azure-storage-nspkg/package.py b/var/spack/repos/builtin/packages/py-azure-storage-nspkg/package.py new file mode 100644 index 0000000000..da8878813f --- /dev/null +++ b/var/spack/repos/builtin/packages/py-azure-storage-nspkg/package.py @@ -0,0 +1,16 @@ +# 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) + + +class PyAzureStorageNspkg(PythonPackage): + """Microsoft Azure Storage Namespace Package.""" + + homepage = "https://github.com/Azure/azure-storage-python" + url = "https://pypi.io/packages/source/a/azure-storage-nspkg/azure-storage-nspkg-3.1.0.tar.gz" + + version('3.1.0', sha256='6f3bbe8652d5f542767d8433e7f96b8df7f518774055ac7c92ed7ca85f653811') + + depends_on('py-setuptools', type='build') + depends_on('py-azure-nspkg@2.0.0:', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-azureml-automl-core/package.py b/var/spack/repos/builtin/packages/py-azureml-automl-core/package.py index 59fa585cae..9a50fbe3cc 100644 --- a/var/spack/repos/builtin/packages/py-azureml-automl-core/package.py +++ b/var/spack/repos/builtin/packages/py-azureml-automl-core/package.py @@ -9,15 +9,20 @@ class PyAzuremlAutomlCore(Package): used by the azureml-train-automl package.""" homepage = "https://docs.microsoft.com/en-us/azure/machine-learning/service/" - url = "https://pypi.io/packages/py3/a/azureml_automl_core/azureml_automl_core-1.8.0-py3-none-any.whl" + url = "https://pypi.io/packages/py3/a/azureml_automl_core/azureml_automl_core-1.11.0-py3-none-any.whl" - version('1.8.0', sha256='58ce54b01570996cda860c0c80693b8db19324785a356573f105afeaa31cae6c', expand=False) + version('1.11.0', sha256='da1b9cef9aabbfaee69a19d5e15f5a911eefbd126546738343a78c032860b5a5', expand=False) + version('1.8.0', sha256='58ce54b01570996cda860c0c80693b8db19324785a356573f105afeaa31cae6c', expand=False) extends('python') depends_on('python@3.5:3.999', type=('build', 'run')) depends_on('py-pip', type='build') - depends_on('py-azureml-dataprep@1.8.0:1.8.999', type=('build', 'run')) - depends_on('py-azureml-telemetry@1.8.0:1.8.999', type=('build', 'run')) + + depends_on('py-azureml-dataset-runtime@1.11.0:1.11.999', when='@1.11.0', type=('build', 'run')) + depends_on('py-azureml-telemetry@1.11.0:1.11.999', when='@1.11.0', type=('build', 'run')) + + depends_on('py-azureml-dataprep@1.8.0:1.8.999', when='@1.8.0', type=('build', 'run')) + depends_on('py-azureml-telemetry@1.8.0:1.8.999', when='@1.8.0', type=('build', 'run')) def install(self, spec, prefix): pip = which('pip') diff --git a/var/spack/repos/builtin/packages/py-azureml-core/package.py b/var/spack/repos/builtin/packages/py-azureml-core/package.py index 3c1a74fcf9..673b7542de 100644 --- a/var/spack/repos/builtin/packages/py-azureml-core/package.py +++ b/var/spack/repos/builtin/packages/py-azureml-core/package.py @@ -12,9 +12,10 @@ class PyAzuremlCore(Package): """ homepage = "https://docs.microsoft.com/en-us/azure/machine-learning/service/" - url = "https://pypi.io/packages/py3/a/azureml_core/azureml_core-1.8.0-py3-none-any.whl" + url = "https://pypi.io/packages/py3/a/azureml_core/azureml_core-1.11.0-py3-none-any.whl" - version('1.8.0', sha256='a0f2b0977f18fb7dcb88c314594a4a85c636a36be3d582be1cae25655fea6105', expand=False) + version('1.11.0', sha256='df8a01b04bb156852480de0bdd78434ed84f386e1891752bdf887faeaa2ca417', expand=False) + version('1.8.0', sha256='a0f2b0977f18fb7dcb88c314594a4a85c636a36be3d582be1cae25655fea6105', expand=False) extends('python') depends_on('python@3.5:3.8', type=('build', 'run')) @@ -28,7 +29,7 @@ class PyAzuremlCore(Package): depends_on('py-azure-mgmt-storage@1.5.0:', type=('build', 'run')) depends_on('py-azure-mgmt-keyvault@0.40.0:', type=('build', 'run')) depends_on('py-azure-mgmt-authorization@0.40.0:', type=('build', 'run')) - depends_on('py-azure-mgmt-network@10.0:10.999', type=('build', 'run')) + depends_on('py-azure-mgmt-network@10.0:10.999', when='@1.8.0', type=('build', 'run')) depends_on('py-azure-graphrbac@0.40.0:', type=('build', 'run')) depends_on('py-azure-common@1.1.12:', type=('build', 'run')) depends_on('py-msrest@0.5.1:', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-azureml-dataprep/package.py b/var/spack/repos/builtin/packages/py-azureml-dataprep/package.py index 064ce4e0e6..18a4dcfd72 100644 --- a/var/spack/repos/builtin/packages/py-azureml-dataprep/package.py +++ b/var/spack/repos/builtin/packages/py-azureml-dataprep/package.py @@ -8,8 +8,9 @@ class PyAzuremlDataprep(Package): """Azure ML Data Preparation SDK.""" homepage = "http://aka.ms/data-prep-sdk" - url = "https://pypi.io/packages/py3/a/azureml_dataprep/azureml_dataprep-1.8.2-py3-none-any.whl" + url = "https://pypi.io/packages/py3/a/azureml_dataprep/azureml_dataprep-2.0.2-py3-none-any.whl" + version('2.0.2', sha256='9b9e97d9ed29c0641d3ceb37745ff078143bd235c53df528f847ec0684c52f79', expand=False) version('1.8.2', sha256='e53f3206f0bd4af8d5e7de3a94c2c6e662902b86e94a7b9d930e36329fe5820f', expand=False) variant('fuse', default=False, description='Build with FUSE support') @@ -17,11 +18,11 @@ class PyAzuremlDataprep(Package): extends('python') depends_on('python@3:', type=('build', 'run')) depends_on('py-pip', type='build') - depends_on('py-dotnetcore2@2.1.14:', type=('build', 'run')) + depends_on('py-dotnetcore2@2.1.14:2.999', type=('build', 'run')) depends_on('py-azureml-dataprep-native@14.2.1:14.999', type=('build', 'run')) - depends_on('py-cloudpickle@1.1.0:', type=('build', 'run')) + depends_on('py-cloudpickle@1.1.0:1.999', type=('build', 'run')) depends_on('py-azure-identity@1.2.0:1.2.999', type=('build', 'run')) - depends_on('py-fusepy@3.0.1:', when='+fuse', type=('build', 'run')) + depends_on('py-fusepy@3.0.1:3.999', when='+fuse', type=('build', 'run')) def install(self, spec, prefix): pip = which('pip') diff --git a/var/spack/repos/builtin/packages/py-azureml-dataset-runtime/package.py b/var/spack/repos/builtin/packages/py-azureml-dataset-runtime/package.py new file mode 100644 index 0000000000..e7849b8b7e --- /dev/null +++ b/var/spack/repos/builtin/packages/py-azureml-dataset-runtime/package.py @@ -0,0 +1,27 @@ +# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + + +class PyAzuremlDatasetRuntime(Package): + """The purpose of this package is to coordinate dependencies within + AzureML packages. It is not intended for public use.""" + + homepage = "https://docs.microsoft.com/en-us/azure/machine-learning/service/" + url = "https://pypi.io/packages/py3/a/azureml-dataset-runtime/azureml_dataset_runtime-1.11.0.post1-py3-none-any.whl" + + version('1.11.0.post1', sha256='65c20f276399a7d406c4850af7a6f149472d301931fd1da6a60bad59d43fa47b', expand=False) + + variant('fuse', default=False, description='Build with FUSE support') + + extends('python') + depends_on('python@3.0:3.999', type=('build', 'run')) + depends_on('py-pip', type='build') + depends_on('py-azureml-dataprep@2.0.1:2.0.999', type=('build', 'run')) + depends_on('py-pyarrow@0.17.0:0.999', type=('build', 'run')) + depends_on('py-fusepy@3.0.1:3.999', when='+fuse', type=('build', 'run')) + + def install(self, spec, prefix): + pip = which('pip') + pip('install', self.stage.archive_file, '--prefix={0}'.format(prefix)) diff --git a/var/spack/repos/builtin/packages/py-azureml-pipeline-core/package.py b/var/spack/repos/builtin/packages/py-azureml-pipeline-core/package.py index ba7128b03e..2df7e538ac 100644 --- a/var/spack/repos/builtin/packages/py-azureml-pipeline-core/package.py +++ b/var/spack/repos/builtin/packages/py-azureml-pipeline-core/package.py @@ -8,14 +8,18 @@ class PyAzuremlPipelineCore(Package): """Core functionality to enable azureml-pipeline feature.""" homepage = "https://docs.microsoft.com/en-us/azure/machine-learning/service/" - url = "https://pypi.io/packages/py3/a/azureml_pipeline_core/azureml_pipeline_core-1.8.0-py3-none-any.whl" + url = "https://pypi.io/packages/py3/a/azureml_pipeline_core/azureml_pipeline_core-1.11.0-py3-none-any.whl" - version('1.8.0', sha256='24e1c57a57e75f9d74ea6f45fa4e93c1ee3114c8ed9029d538f9cc8e4f8945b2', expand=False) + version('1.11.0', sha256='98012195e3bba12bf42ac69179549038b3563b39e3dadab4f1d06407a00ad8b3', expand=False) + version('1.8.0', sha256='24e1c57a57e75f9d74ea6f45fa4e93c1ee3114c8ed9029d538f9cc8e4f8945b2', expand=False) extends('python') depends_on('python@3.5:3.999', type=('build', 'run')) depends_on('py-pip', type='build') - depends_on('py-azureml-core@1.8.0:1.8.999', type=('build', 'run')) + + depends_on('py-azureml-core@1.11.0:1.11.999', when='@1.11.0', type=('build', 'run')) + + depends_on('py-azureml-core@1.8.0:1.8.999', when='@1.8.0', type=('build', 'run')) def install(self, spec, prefix): pip = which('pip') diff --git a/var/spack/repos/builtin/packages/py-azureml-pipeline-steps/package.py b/var/spack/repos/builtin/packages/py-azureml-pipeline-steps/package.py index c461e8c8e6..5cb949660c 100644 --- a/var/spack/repos/builtin/packages/py-azureml-pipeline-steps/package.py +++ b/var/spack/repos/builtin/packages/py-azureml-pipeline-steps/package.py @@ -8,16 +8,22 @@ class PyAzuremlPipelineSteps(Package): """Represents a unit of computation in azureml-pipeline.""" homepage = "https://docs.microsoft.com/en-us/azure/machine-learning/service/" - url = "https://pypi.io/packages/py3/a/azureml_pipeline_steps/azureml_pipeline_steps-1.8.0-py3-none-any.whl" + url = "https://pypi.io/packages/py3/a/azureml_pipeline_steps/azureml_pipeline_steps-1.11.0-py3-none-any.whl" - version('1.8.0', sha256='3310674207ed457a26fb978e7168e400306c695f7f854f354dee9d5c7c81304c', expand=False) + version('1.11.0', sha256='674317d9c74ec4cb05e443f50de1732e14dc4519cbe2743a44f8db0bc5e71214', expand=False) + version('1.8.0', sha256='3310674207ed457a26fb978e7168e400306c695f7f854f354dee9d5c7c81304c', expand=False) extends('python') depends_on('python@3:', type=('build', 'run')) depends_on('py-pip', type='build') - depends_on('py-azureml-train-core@1.8.0:1.8.999', type=('build', 'run')) - depends_on('py-azureml-train-automl-client@1.8.0:1.8.999', type=('build', 'run')) - depends_on('py-azureml-pipeline-core@1.8.0:1.8.999', type=('build', 'run')) + + depends_on('py-azureml-train-core@1.11.0:1.11.999', when='@1.11.0', type=('build', 'run')) + depends_on('py-azureml-train-automl-client@1.11.0:1.11.999', when='@1.11.0', type=('build', 'run')) + depends_on('py-azureml-pipeline-core@1.11.0:1.11.999', when='@1.11.0', type=('build', 'run')) + + depends_on('py-azureml-train-core@1.8.0:1.8.999', when='@1.8.0', type=('build', 'run')) + depends_on('py-azureml-train-automl-client@1.8.0:1.8.999', when='@1.8.0', type=('build', 'run')) + depends_on('py-azureml-pipeline-core@1.8.0:1.8.999', when='@1.8.0', type=('build', 'run')) def install(self, spec, prefix): pip = which('pip') diff --git a/var/spack/repos/builtin/packages/py-azureml-pipeline/package.py b/var/spack/repos/builtin/packages/py-azureml-pipeline/package.py index 8d359f92aa..e66b510d68 100644 --- a/var/spack/repos/builtin/packages/py-azureml-pipeline/package.py +++ b/var/spack/repos/builtin/packages/py-azureml-pipeline/package.py @@ -9,15 +9,20 @@ class PyAzuremlPipeline(Package): pipelines as well as to submit and track individual pipeline runs.""" homepage = "https://docs.microsoft.com/en-us/azure/machine-learning/service/" - url = "https://pypi.io/packages/py3/a/azureml_pipeline/azureml_pipeline-1.8.0-py3-none-any.whl" + url = "https://pypi.io/packages/py3/a/azureml_pipeline/azureml_pipeline-1.11.0-py3-none-any.whl" - version('1.8.0', sha256='43ce39789d9a255f147311e40274b5f2571c7ef3b52e218f248724ccb377a02c', expand=False) + version('1.11.0', sha256='8233c66b4120e86b9a9346608ca53bf48d5b9f0558300314034426dd0d7897d6', expand=False) + version('1.8.0', sha256='43ce39789d9a255f147311e40274b5f2571c7ef3b52e218f248724ccb377a02c', expand=False) extends('python') depends_on('python@3:', type=('build', 'run')) depends_on('py-pip', type='build') - depends_on('py-azureml-pipeline-core@1.8.0:1.8.999', type=('build', 'run')) - depends_on('py-azureml-pipeline-steps@1.8.0:1.8.999', type=('build', 'run')) + + depends_on('py-azureml-pipeline-core@1.11.0:1.11.999', when='@1.11.0', type=('build', 'run')) + depends_on('py-azureml-pipeline-steps@1.11.0:1.11.999', when='@1.11.0', type=('build', 'run')) + + depends_on('py-azureml-pipeline-core@1.8.0:1.8.999', when='@1.8.0', type=('build', 'run')) + depends_on('py-azureml-pipeline-steps@1.8.0:1.8.999', when='@1.8.0', type=('build', 'run')) def install(self, spec, prefix): pip = which('pip') diff --git a/var/spack/repos/builtin/packages/py-azureml-sdk/package.py b/var/spack/repos/builtin/packages/py-azureml-sdk/package.py index fd14b0ed7b..cd7f504fd3 100644 --- a/var/spack/repos/builtin/packages/py-azureml-sdk/package.py +++ b/var/spack/repos/builtin/packages/py-azureml-sdk/package.py @@ -8,26 +8,28 @@ class PyAzuremlSdk(Package): """Microsoft Azure Machine Learning Python SDK.""" homepage = "https://docs.microsoft.com/en-us/azure/machine-learning/service/" - url = "https://pypi.io/packages/py3/a/azureml_sdk/azureml_sdk-1.8.0-py3-none-any.whl" + url = "https://pypi.io/packages/py3/a/azureml_sdk/azureml_sdk-1.11.0-py3-none-any.whl" maintainers = ['adamjstewart'] - version('1.8.0', sha256='61107db1403ce2c1a12064eb0fa31a1d075debbf32dd17cb93b7639b615b7839', expand=False) + version('1.11.0', sha256='d8c9d24ea90457214d798b0d922489863dad518adde3638e08ef62de28fb183a', expand=False) + version('1.8.0', sha256='61107db1403ce2c1a12064eb0fa31a1d075debbf32dd17cb93b7639b615b7839', expand=False) extends('python') depends_on('python@3.5:3.999', type=('build', 'run')) depends_on('py-pip', type='build') - # For version 1.8.0, dependencies are locked to ~= 1.8.0 - for ver in ['1.8.0']: - ver = Version(ver) - for dep in [ - 'core', 'train', 'train-automl-client', 'pipeline', - 'dataprep+fuse' - ]: - depends_on('py-azureml-{0}@{1}:{2}.999'.format( - dep, ver, ver.up_to(2) - ), when='@{0}'.format(ver), type=('build', 'run')) + depends_on('py-azureml-core@1.11.0:1.11.999', when='@1.11.0', type=('build', 'run')) + depends_on('py-azureml-dataset-runtime@1.11.0:1.11.999 +fuse', when='@1.11.0', type=('build', 'run')) + depends_on('py-azureml-train@1.11.0:1.11.999', when='@1.11.0', type=('build', 'run')) + depends_on('py-azureml-train-automl-client@1.11.0:1.11.999', when='@1.11.0', type=('build', 'run')) + depends_on('py-azureml-pipeline@1.11.0:1.11.999', when='@1.11.0', type=('build', 'run')) + + depends_on('py-azureml-core@1.8.0:1.8.999', when='@1.8.0', type=('build', 'run')) + depends_on('py-azureml-train@1.8.0:1.8.999', when='@1.8.0', type=('build', 'run')) + depends_on('py-azureml-train-automl-client@1.8.0:1.8.999', when='@1.8.0', type=('build', 'run')) + depends_on('py-azureml-pipeline@1.8.0:1.8.999', when='@1.8.0', type=('build', 'run')) + depends_on('py-azureml-dataprep@1.8.0:1.8.999 +fuse', when='@1.8.0', type=('build', 'run')) def install(self, spec, prefix): pip = which('pip') diff --git a/var/spack/repos/builtin/packages/py-azureml-telemetry/package.py b/var/spack/repos/builtin/packages/py-azureml-telemetry/package.py index 4ceaf33399..510ea5ec5d 100644 --- a/var/spack/repos/builtin/packages/py-azureml-telemetry/package.py +++ b/var/spack/repos/builtin/packages/py-azureml-telemetry/package.py @@ -9,15 +9,19 @@ class PyAzuremlTelemetry(Package): data.""" homepage = "https://docs.microsoft.com/en-us/azure/machine-learning/service/" - url = "https://pypi.io/packages/py3/a/azureml_telemetry/azureml_telemetry-1.8.0-py3-none-any.whl" + url = "https://pypi.io/packages/py3/a/azureml_telemetry/azureml_telemetry-1.11.0-py3-none-any.whl" - version('1.8.0', sha256='de657efe9773bea0de76c432cbab34501ac28606fe1b380d6883562ebda3d804', expand=False) + version('1.11.0', sha256='0d46c4a7bb8c0b188f1503504a6029384bc2237d82a131e7d1e9e89c3491b1fc', expand=False) + version('1.8.0', sha256='de657efe9773bea0de76c432cbab34501ac28606fe1b380d6883562ebda3d804', expand=False) extends('python') depends_on('python@3.5:3.999', type=('build', 'run')) depends_on('py-pip', type='build') depends_on('py-applicationinsights', type=('build', 'run')) - depends_on('py-azureml-core@1.8.0:1.8.999', type=('build', 'run')) + + depends_on('py-azureml-core@1.11.0:1.11.999', when='@1.11.0', type=('build', 'run')) + + depends_on('py-azureml-core@1.8.0:1.8.999', when='@1.8.0', type=('build', 'run')) def install(self, spec, prefix): pip = which('pip') diff --git a/var/spack/repos/builtin/packages/py-azureml-train-automl-client/package.py b/var/spack/repos/builtin/packages/py-azureml-train-automl-client/package.py index 739af7a07f..51f977dcf8 100644 --- a/var/spack/repos/builtin/packages/py-azureml-train-automl-client/package.py +++ b/var/spack/repos/builtin/packages/py-azureml-train-automl-client/package.py @@ -10,17 +10,24 @@ class PyAzuremlTrainAutomlClient(Package): given training and test data.""" homepage = "https://docs.microsoft.com/en-us/azure/machine-learning/service/" - url = "https://pypi.io/packages/py3/a/azureml_train_automl_client/azureml_train_automl_client-1.8.0-py3-none-any.whl" + url = "https://pypi.io/packages/py3/a/azureml_train_automl_client/azureml_train_automl_client-1.11.0-py3-none-any.whl" - version('1.8.0', sha256='562300095db6c4dea7b052e255c53dd95c4c3d0589a828b545497fe1ca7e9677', expand=False) + version('1.11.0', sha256='3184df60a46917e92140a299aecb54591b19df490a3f4f571ff1f92c5e70a715', expand=False) + version('1.8.0', sha256='562300095db6c4dea7b052e255c53dd95c4c3d0589a828b545497fe1ca7e9677', expand=False) extends('python') depends_on('python@3.5:3.999', type=('build', 'run')) depends_on('py-pip', type='build') - depends_on('py-azureml-dataprep@1.8.0:1.8.999', type=('build', 'run')) - depends_on('py-azureml-automl-core@1.8.0:1.8.999', type=('build', 'run')) - depends_on('py-azureml-core@1.8.0:1.8.999', type=('build', 'run')) - depends_on('py-azureml-telemetry@1.8.0:1.8.999', type=('build', 'run')) + + depends_on('py-azureml-automl-core@1.11.0:1.11.999', when='@1.11.0', type=('build', 'run')) + depends_on('py-azureml-core@1.11.0:1.11.999', when='@1.11.0', type=('build', 'run')) + depends_on('py-azureml-dataset-runtime@1.11.0:1.11.999', when='@1.11.0', type=('build', 'run')) + depends_on('py-azureml-telemetry@1.11.0:1.11.999', when='@1.11.0', type=('build', 'run')) + + depends_on('py-azureml-dataprep@1.8.0:1.8.999', when='@1.8.0', type=('build', 'run')) + depends_on('py-azureml-automl-core@1.8.0:1.8.999', when='@1.8.0', type=('build', 'run')) + depends_on('py-azureml-core@1.8.0:1.8.999', when='@1.8.0', type=('build', 'run')) + depends_on('py-azureml-telemetry@1.8.0:1.8.999', when='@1.8.0', type=('build', 'run')) def install(self, spec, prefix): pip = which('pip') diff --git a/var/spack/repos/builtin/packages/py-azureml-train-core/package.py b/var/spack/repos/builtin/packages/py-azureml-train-core/package.py index 55e706762a..b15cd2e82b 100644 --- a/var/spack/repos/builtin/packages/py-azureml-train-core/package.py +++ b/var/spack/repos/builtin/packages/py-azureml-train-core/package.py @@ -9,17 +9,23 @@ class PyAzuremlTrainCore(Package): metapackage.""" homepage = "https://docs.microsoft.com/en-us/azure/machine-learning/service/" - url = "https://pypi.io/packages/py3/a/azureml_train_core/azureml_train_core-1.8.0-py3-none-any.whl" + url = "https://pypi.io/packages/py3/a/azureml_train_core/azureml_train_core-1.11.0-py3-none-any.whl" - version('1.8.0', sha256='5a8d90a08d4477527049d793feb40d07dc32fafc0e4e57b4f0729d3c50b408a2', expand=False) + version('1.11.0', sha256='1b5fd813d21e75cd522d3a078eba779333980a309bcff6fc72b74ddc8e7a26f1', expand=False) + version('1.8.0', sha256='5a8d90a08d4477527049d793feb40d07dc32fafc0e4e57b4f0729d3c50b408a2', expand=False) extends('python') depends_on('python@3.5:3.999', type=('build', 'run')) depends_on('py-pip', type='build') - depends_on('py-azureml-train-restclients-hyperdrive@1.8.0:1.8.999', type=('build', 'run')) - depends_on('py-azureml-core@1.8.0:1.8.999', type=('build', 'run')) - depends_on('py-azureml-telemetry@1.8.0:1.8.999', type=('build', 'run')) - depends_on('py-flake8@3.1.0:3.7.9', when='^python@3.6:', type=('build', 'run')) + + depends_on('py-azureml-train-restclients-hyperdrive@1.11.0:1.11.999', when='@1.11.0', type=('build', 'run')) + depends_on('py-azureml-core@1.11.0:1.11.999', when='@1.11.0', type=('build', 'run')) + depends_on('py-azureml-telemetry@1.11.0:1.11.999', when='@1.11.0', type=('build', 'run')) + + depends_on('py-azureml-train-restclients-hyperdrive@1.8.0:1.8.999', when='@1.8.0', type=('build', 'run')) + depends_on('py-azureml-core@1.8.0:1.8.999', when='@1.8.0', type=('build', 'run')) + depends_on('py-azureml-telemetry@1.8.0:1.8.999', when='@1.8.0', type=('build', 'run')) + depends_on('py-flake8@3.1.0:3.7.9', when='@1.8.0 ^python@3.6:', type=('build', 'run')) def install(self, spec, prefix): pip = which('pip') diff --git a/var/spack/repos/builtin/packages/py-azureml-train-restclients-hyperdrive/package.py b/var/spack/repos/builtin/packages/py-azureml-train-restclients-hyperdrive/package.py index 4bcf121cc8..36ce557724 100644 --- a/var/spack/repos/builtin/packages/py-azureml-train-restclients-hyperdrive/package.py +++ b/var/spack/repos/builtin/packages/py-azureml-train-restclients-hyperdrive/package.py @@ -9,9 +9,10 @@ class PyAzuremlTrainRestclientsHyperdrive(Package): azureml-train metapackage.""" homepage = "https://docs.microsoft.com/en-us/azure/machine-learning/service/" - url = "https://pypi.io/packages/py3/a/azureml_train_restclients_hyperdrive/azureml_train_restclients_hyperdrive-1.8.0-py3-none-any.whl" + url = "https://pypi.io/packages/py3/a/azureml_train_restclients_hyperdrive/azureml_train_restclients_hyperdrive-1.11.0-py3-none-any.whl" - version('1.8.0', sha256='1633c7eb0fd96714f54f72072ccf1c5ee1ef0a8ba52680793f20d27e0fd43c87', expand=False) + version('1.11.0', sha256='8bc6f9676a9f75e6ee06d201c418ea904c24e854f26cf799b08c259c3ac92d13', expand=False) + version('1.8.0', sha256='1633c7eb0fd96714f54f72072ccf1c5ee1ef0a8ba52680793f20d27e0fd43c87', expand=False) extends('python') depends_on('python@3.5:3.999', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-azureml-train/package.py b/var/spack/repos/builtin/packages/py-azureml-train/package.py index c285968349..c8917a5700 100644 --- a/var/spack/repos/builtin/packages/py-azureml-train/package.py +++ b/var/spack/repos/builtin/packages/py-azureml-train/package.py @@ -10,14 +10,18 @@ class PyAzuremlTrain(Package): tuning using Azure cloud.""" homepage = "https://docs.microsoft.com/en-us/azure/machine-learning/service/" - url = "https://pypi.io/packages/py3/a/azureml_train/azureml_train-1.8.0-py3-none-any.whl" + url = "https://pypi.io/packages/py3/a/azureml_train/azureml_train-1.11.0-py3-none-any.whl" - version('1.8.0', sha256='124e5b7d8d64bac61db022f305bd31c25e57fdcb4be93eefd4244a04a13deab3', expand=False) + version('1.11.0', sha256='7800a3067979972b976c81082dc509e23c04405129cc1fdef0f9cd7895bcafc7', expand=False) + version('1.8.0', sha256='124e5b7d8d64bac61db022f305bd31c25e57fdcb4be93eefd4244a04a13deab3', expand=False) extends('python') depends_on('python@3.5:3.999', type=('build', 'run')) depends_on('py-pip', type='build') - depends_on('py-azureml-train-core@1.8.0:1.8.999', type=('build', 'run')) + + depends_on('py-azureml-train-core@1.11.0:1.11.999', when='@1.11.0', type=('build', 'run')) + + depends_on('py-azureml-train-core@1.8.0:1.8.999', when='@1.8.0', type=('build', 'run')) def install(self, spec, prefix): pip = which('pip') diff --git a/var/spack/repos/builtin/packages/py-boto/package.py b/var/spack/repos/builtin/packages/py-boto/package.py new file mode 100644 index 0000000000..005ba180ed --- /dev/null +++ b/var/spack/repos/builtin/packages/py-boto/package.py @@ -0,0 +1,19 @@ +# 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 PyBoto(PythonPackage): + """Boto is a Python package that provides interfaces to + Amazon Web Services.""" + + homepage = "https://github.com/boto/boto" + url = "https://github.com/boto/boto/archive/2.49.0.tar.gz" + + version('2.49.0', sha256='3dbefd4f4542f85a323d4f54601f31ed4d362fc87945245f32e4a85029513314') + + depends_on('python@2.6:', type=('build', 'run')) + depends_on('py-setuptools', type='build') diff --git a/var/spack/repos/builtin/packages/py-chainmap/package.py b/var/spack/repos/builtin/packages/py-chainmap/package.py new file mode 100644 index 0000000000..f68782e7b4 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-chainmap/package.py @@ -0,0 +1,22 @@ +# 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 PyChainmap(PythonPackage): + """Clone/backport of ChainMap for Python 2.6, Python 3.2, and PyPy3 + based on Python 3.2--versions that currently lack their own + ChainMap implementations.""" + + homepage = "https://bitbucket.org/jeunice/chainmap/src/default/" + url = "https://pypi.io/packages/source/c/chainmap/chainmap-1.0.3.tar.gz" + + version('1.0.3', sha256='e42aaa4b3e2f66102a11bfd563069704bfbfd84fdcb517b564effd736bf53cd9') + version('1.0.2', sha256='405da3bce9913bfb33e6e497803b447b60d12ab44031ca357626143e087e0526') + version('1.0.1', sha256='c1cd76c679dd7af982ec5a45788ef4a0dfc20e77f27ccdeca289a5141862ff64') + version('1.0.0', sha256='2e24b2efa3494b16772282812efcd712b1d6b80e1b761a56b1b7cbc8fe0313c4') + + depends_on('py-setuptools', type='build') diff --git a/var/spack/repos/builtin/packages/py-cmake/package.py b/var/spack/repos/builtin/packages/py-cmake/package.py new file mode 100644 index 0000000000..fc2ab57044 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-cmake/package.py @@ -0,0 +1,20 @@ +# 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 PyCmake(PythonPackage): + """CMake is an open-source, cross-platform family of tools designed to + build, test and package software + """ + + homepage = "https://cmake.org/" + url = "https://pypi.io/packages/source/c/cmake/cmake-3.18.0.tar.gz" + + version('3.18.0', sha256='52b98c5ee70b5fa30a8623e96482227e065292f78794eb085fdf0fecb204b79b') + + depends_on('cmake@3.18.0', type=('build', 'link', 'run'), when='@3.18.0') + depends_on('py-scikit-build', type='build') diff --git a/var/spack/repos/builtin/packages/py-colorspacious/package.py b/var/spack/repos/builtin/packages/py-colorspacious/package.py new file mode 100644 index 0000000000..9efa00007f --- /dev/null +++ b/var/spack/repos/builtin/packages/py-colorspacious/package.py @@ -0,0 +1,20 @@ +# 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 PyColorspacious(PythonPackage): + """A powerful, accurate, and easy-to-use Python library for doing colorspace + conversions. + """ + + homepage = "https://github.com/njsmith/colorspacious" + url = "https://pypi.io/packages/source/c/colorspacious/colorspacious-1.1.2.tar.gz" + + version('1.1.2', sha256='5e9072e8cdca889dac445c35c9362a22ccf758e97b00b79ff0d5a7ba3e11b618') + + depends_on('py-setuptools', type='build') + depends_on('py-numpy', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-commonmark/package.py b/var/spack/repos/builtin/packages/py-commonmark/package.py new file mode 100644 index 0000000000..0d0e31bc68 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-commonmark/package.py @@ -0,0 +1,19 @@ +# 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 PyCommonmark(PythonPackage): + """commonmark.py is a pure Python port of jgm's commonmark.js, a Markdown + parser and renderer for the CommonMark specification, using only native + modules.""" + + homepage = "https://github.com/readthedocs/commonmark.py" + url = "https://pypi.io/packages/source/c/commonmark/commonmark-0.9.0.tar.gz" + + version('0.9.0', sha256='867fc5db078ede373ab811e16b6789e9d033b15ccd7296f370ca52d1ee792ce0') + + depends_on('py-future') diff --git a/var/spack/repos/builtin/packages/py-cython/package.py b/var/spack/repos/builtin/packages/py-cython/package.py index f017a53c08..42282d5152 100644 --- a/var/spack/repos/builtin/packages/py-cython/package.py +++ b/var/spack/repos/builtin/packages/py-cython/package.py @@ -10,7 +10,7 @@ class PyCython(PythonPackage): """The Cython compiler for writing C extensions for the Python language.""" homepage = "https://pypi.python.org/pypi/cython" - url = "https://pypi.io/packages/source/c/cython/Cython-0.29.16.tar.gz" + url = "https://pypi.io/packages/source/c/cython/Cython-0.29.21.tar.gz" import_modules = [ 'cython', 'Cython', 'Cython.Build', 'Cython.Compiler', @@ -20,6 +20,7 @@ class PyCython(PythonPackage): 'Cython.Tempita', 'pyximport', ] + version('0.29.21', sha256='e57acb89bd55943c8d8bf813763d20b9099cc7165c0f16b707631a7654be9cad') version('0.29.16', sha256='232755284f942cbb3b43a06cd85974ef3c970a021aef19b5243c03ee2b08fa05') version('0.29.15', sha256='60d859e1efa5cc80436d58aecd3718ff2e74b987db0518376046adedba97ac30') version('0.29.14', sha256='e4d6bb8703d0319eb04b7319b12ea41580df44fd84d83ccda13ea463c6801414') diff --git a/var/spack/repos/builtin/packages/py-dp-gp-cluster/package.py b/var/spack/repos/builtin/packages/py-dp-gp-cluster/package.py new file mode 100644 index 0000000000..42e56516d1 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-dp-gp-cluster/package.py @@ -0,0 +1,33 @@ +# 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 * +from os import unlink +from glob import glob + + +class PyDpGpCluster(PythonPackage): + """DP_GP_cluster clusters genes by expression over a time course using a + Dirichlet process Gaussian process model.""" + + homepage = "https://github.com/PrincetonUniversity/DP_GP_cluster" + git = "https://github.com/PrincetonUniversity/DP_GP_cluster.git" + + version('2019-09-22', commit='eec12e74219f916aa86e253783905f7b5e30f6f4') + + depends_on('python@2.7:2.8', type=('build', 'run')) + + depends_on('py-cython', type='build') + depends_on('py-gpy@0.8.8:0.9.9', type=('build', 'run')) + depends_on('py-pandas', type=('build', 'run')) + depends_on('py-numpy', type=('build', 'run')) + depends_on('py-scipy@0.14:', type=('build', 'run')) + depends_on('py-matplotlib', type=('build', 'run')) + depends_on('py-scikit-learn', type=('build', 'run')) + + @run_before('build') + def remove_cython_output(self): + for f in glob('DP_GP/*.c'): + unlink(f) diff --git a/var/spack/repos/builtin/packages/py-fabric/package.py b/var/spack/repos/builtin/packages/py-fabric/package.py new file mode 100644 index 0000000000..b8ccb624bb --- /dev/null +++ b/var/spack/repos/builtin/packages/py-fabric/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) + + +class PyFabric(PythonPackage): + """High level SSH command execution.""" + + homepage = "http://fabfile.org/" + url = "https://pypi.io/packages/source/f/fabric/fabric-2.5.0.tar.gz" + + version('2.5.0', sha256='24842d7d51556adcabd885ac3cf5e1df73fc622a1708bf3667bf5927576cdfa6') + + depends_on('py-setuptools', type='build') + depends_on('py-invoke@1.3:1.999', type=('build', 'run')) + depends_on('py-paramiko@2.4:', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-fenics-dijitso/package.py b/var/spack/repos/builtin/packages/py-fenics-dijitso/package.py new file mode 100644 index 0000000000..d2cd6865d3 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-fenics-dijitso/package.py @@ -0,0 +1,25 @@ +# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack import * + + +class PyFenicsDijitso(PythonPackage): + """A Python module for distributed just-in-time shared library building""" + + homepage = "https://bitbucket.org/fenics-project/dijitso" + url = "https://bitbucket.org/fenics-project/dijitso/downloads/dijitso-2018.1.0.tar.gz" + git = "https://bitbucket.org/fenics-project/dijitso.git" + maintainers = ["js947", "chrisrichardson"] + + version("master", branch="master") + version("2018.1.0", sha256="2084ada1e7bd6ecec0999b15a17db98c72e26f1ccbf3fcbe240b1a035a1a2e64") + version("2017.2.0", sha256="05a893d17f8a50067d303b232e41592dce2840d6499677ad8b457ba58a679b58") + version("2017.1.0", sha256="ef23952539d349fbd384d41302abc94413d485ca7e8c29e8a0debc2aadaf8657") + version("2016.2.0", sha256="1bfa0ac0d47dae75bbde8fabb1145d3caa2e6c28a1e4097ad5550a91a8a205e4") + + depends_on("py-setuptools", type="build") + depends_on("python@3.5:", type=("build", "run")) + depends_on("py-numpy", type=("build", "run")) diff --git a/var/spack/repos/builtin/packages/py-fenics-dolfinx/package.py b/var/spack/repos/builtin/packages/py-fenics-dolfinx/package.py new file mode 100644 index 0000000000..211a68e5cf --- /dev/null +++ b/var/spack/repos/builtin/packages/py-fenics-dolfinx/package.py @@ -0,0 +1,28 @@ +# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack import * + + +class PyFenicsDolfinx(PythonPackage): + """Python interface library to Next generation FEniCS problem solving + environment""" + + homepage = "https://github.com/FEniCS/dolfinx" + git = "https://github.com/FEniCS/dolfinx.git" + maintainers = ["js947", "chrisrichardson"] + + version("master", branch="master") + + depends_on("cmake@3.9:", type="build") + depends_on("fenics-dolfinx@master") + depends_on("py-mpi4py", type=("build", "run")) + depends_on("py-petsc4py", type=("build", "run")) + depends_on("py-pybind11", type=("build", "run")) + + import_modules = ['dolfinx'] + phases = ['build_ext', 'build', 'install'] + + build_directory = 'python' diff --git a/var/spack/repos/builtin/packages/py-fenics-ffcx/package.py b/var/spack/repos/builtin/packages/py-fenics-ffcx/package.py new file mode 100644 index 0000000000..abc7792afb --- /dev/null +++ b/var/spack/repos/builtin/packages/py-fenics-ffcx/package.py @@ -0,0 +1,23 @@ +# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack import * + + +class PyFenicsFfcx(PythonPackage): + """Next generation FEniCS Form Compiler""" + + homepage = "https://github.com/FEniCS/ffcx" + git = "https://github.com/FEniCS/ffcx.git" + maintainers = ["js947", "chrisrichardson"] + + version("master", branch="master") + + depends_on('python@3.5:', type=('build', 'run')) + depends_on("py-setuptools", type=("build", "run")) + depends_on("py-cffi", type=("build", "run")) + depends_on("py-fenics-ufl@master", type=("build", "run")) + depends_on("py-fenics-fiat@master", type=("build", "run")) + depends_on("py-numpy", type=("build", "run")) diff --git a/var/spack/repos/builtin/packages/py-fenics-fiat/package.py b/var/spack/repos/builtin/packages/py-fenics-fiat/package.py new file mode 100644 index 0000000000..f6f9aa5825 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-fenics-fiat/package.py @@ -0,0 +1,34 @@ +# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack import * + + +class PyFenicsFiat(PythonPackage): + """The FInite element Automatic Tabulator FIAT supports generation of + arbitrary order instances of the Lagrange elements on lines, triangles, and + tetrahedra. It is also capable of generating arbitrary order instances of + Jacobi-type quadrature rules on the same element shapes. Further, H(div) + and H(curl) conforming finite element spaces such as the families of + Raviart-Thomas, Brezzi-Douglas-Marini and Nedelec are supported on + triangles and tetrahedra. Upcoming versions will also support Hermite and + nonconforming elements""" + + homepage = "https://fenicsproject.org/" + url = "https://github.com/FEniCS/fiat/archive/2019.1.0.tar.gz" + git = "https://github.com/FEniCS/fiat.git" + maintainers = ["js947", "chrisrichardson"] + + version("master", branch="master") + version('2019.1.0', sha256='2a6d175a825ed725843918ef28846edbcf710a879c2fe8caaeda77b1ce9b9a1c') + version('2018.1.0', sha256='7468709c7aacf7dfb22c09fb5250448eb24084b9dd088ec2632a96d56c0f3830') + version('2017.2.0', sha256='e4d3ffc86a0a717b3f17b9bb2d922214c342be27e5bdfbe50f110030bfff9729') + version('2017.1.0.post1', sha256='1784fe1cb9479ca7cd85f63b0afa6e07634feec8d8e82fa8be4c480649cb9621') + version('2017.1.0', sha256='d4288401ad16c4598720f9db0810a522f7f0eadad35d8211bac7120bce5fde94') + + depends_on('python@3:', type=('build', 'run')) + depends_on('py-setuptools', type="build") + depends_on('py-numpy', type=("build", "run")) + depends_on('py-sympy', type=("build", "run")) diff --git a/var/spack/repos/builtin/packages/py-fenics-ufl/package.py b/var/spack/repos/builtin/packages/py-fenics-ufl/package.py new file mode 100644 index 0000000000..0476cd33c6 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-fenics-ufl/package.py @@ -0,0 +1,30 @@ +# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack import * + + +class PyFenicsUfl(PythonPackage): + """The Unified Form Language (UFL) is a domain specific language for + declaration of finite element discretizations of variational forms. More + precisely, it defines a flexible interface for choosing finite element + spaces and defining expressions for weak forms in a notation close to + mathematical notation.""" + + homepage = "https://fenicsproject.org/" + url = "https://github.com/FEniCS/ufl/archive/2019.1.0.tar.gz" + git = "https://github.com/FEniCS/ufl.git" + maintainers = ["js947", "chrisrichardson"] + + version("master", branch="master") + version('2019.1.0', sha256='46ac0df4e96327be10b9576d2b8fa8b2c4ca62d3c681d407f5718b162d3ca22d') + version('2018.1.0', sha256='b0d4c2f43f396fd5609317b70d55b53b89c649962fc8a593f4e0e21607da211d') + version('2017.2.0.post0', sha256='111e77707cd6731584b1041f405c2fd3f1752a86c51fd9c430524bd396f293b0') + version('2017.2.0', sha256='0adff7a511185b20c38ddaccdeed6c1b2ecafe4b163c688bfd1316d5c3b1c00d') + version('2017.1.0.post1', sha256='82c8170f44c2392c7e60aa86495df22cc209af50735af8115dc35aeda4b0ca96') + + depends_on("python@3.5:", 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-fisher/package.py b/var/spack/repos/builtin/packages/py-fisher/package.py new file mode 100644 index 0000000000..45e0fc5110 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-fisher/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) + +from spack import * + + +class PyFisher(PythonPackage): + """Fisher's Exact Test. + + Simple, fast implementation of Fisher's exact test.""" + + homepage = "https://github.com/brentp/fishers_exact_test" + url = "https://pypi.io/packages/source/f/fisher/fisher-0.1.9.tar.gz" + + version('0.1.9', sha256='d378b3f7e488e2a679c6d0e5ea1bce17bc931c2bfe8ec8424ee47a74f251968d') + + depends_on('py-setuptools', type='build') + depends_on('py-numpy', type=('build', 'run')) + depends_on('py-pytest', type='test') diff --git a/var/spack/repos/builtin/packages/py-fortran-language-server/package.py b/var/spack/repos/builtin/packages/py-fortran-language-server/package.py new file mode 100644 index 0000000000..277cf91c9d --- /dev/null +++ b/var/spack/repos/builtin/packages/py-fortran-language-server/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) + +from spack import * + + +class PyFortranLanguageServer(PythonPackage): + """A Fortran implementation of the Language Server Protocol using Python + (2.7+ or 3.0+).""" + + homepage = "https://github.com/hansec/fortran-language-server" + url = "https://github.com/hansec/fortran-language-server/archive/v1.10.3.tar.gz" + + maintainers = ['AndrewGaspar'] + + version('1.11.1', sha256='8f03782dd992d6652a3f2d349115fdad3aa3464fee3fafbbc4f8ecf780166e3c') + + depends_on('python@2.7:', type=('build', 'run')) + depends_on('py-future', type=('build', 'run'), when='^python@:2') + depends_on('py-argparse', type=('build', 'run'), when='^python@:2.6,3.0:3.1') + depends_on('py-setuptools', type='build') diff --git a/var/spack/repos/builtin/packages/py-gensim/package.py b/var/spack/repos/builtin/packages/py-gensim/package.py index a08cbbe98d..fe3e4a192c 100644 --- a/var/spack/repos/builtin/packages/py-gensim/package.py +++ b/var/spack/repos/builtin/packages/py-gensim/package.py @@ -16,12 +16,22 @@ class PyGensim(PythonPackage): maintainers = ['adamjstewart'] + version('3.8.3', sha256='786adb0571f75114e9c5f7a31dd2e6eb39a9791f22c8757621545e2ded3ea367') version('3.8.1', sha256='33277fc0a8d7b0c7ce70fcc74bb82ad39f944c009b334856c6e86bf552b1dfdc') version('3.8.0', sha256='ec5de7ff2bfa8692fa96a846bb5aae52f267fc322fbbe303c1f042d258af5766') depends_on('python@2.7:2.8,3.5:', type=('build', 'run')) depends_on('py-setuptools', type='build') - depends_on('py-numpy@1.11.3:', type=('build', 'run')) - depends_on('py-scipy@0.18.1:', type=('build', 'run')) + + depends_on('py-numpy@1.11.3:1.16.1', when='^python@:2.999', type=('build', 'run')) + depends_on('py-numpy@1.11.3:', when='^python@3:', type=('build', 'run')) + + depends_on('py-scipy@0.18.1:1.2.3', when='^python@:2.999', type=('build', 'run')) + depends_on('py-scipy@0.18.1:', when='^python@3:', type=('build', 'run')) + depends_on('py-six@1.5.0:', type=('build', 'run')) - depends_on('py-smart-open@1.8.1:', type=('build', 'run')) + + depends_on('py-smart-open@1.7.0:1.10.9999', when='@3.8.0^python@:2.999', type=('build', 'run')) + depends_on('py-smart-open@1.7.0:', when='@3.8.0^python@3:', type=('build', 'run')) + depends_on('py-smart-open@1.8.1:1.10.9999', when='@3.8.1:^python@:2.999', type=('build', 'run')) + depends_on('py-smart-open@1.8.1:', when='@3.8.1:^python@3:', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-googledrivedownloader/package.py b/var/spack/repos/builtin/packages/py-googledrivedownloader/package.py new file mode 100644 index 0000000000..96710e1a17 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-googledrivedownloader/package.py @@ -0,0 +1,15 @@ +# 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) + + +class PyGoogledrivedownloader(PythonPackage): + """Minimal class to download shared files from Google Drive.""" + + homepage = "https://github.com/ndrplz/google-drive-downloader" + url = "https://pypi.io/packages/source/g/googledrivedownloader/googledrivedownloader-0.4.tar.gz" + + version('0.4', sha256='4b34c1337b2ff3bf2bd7581818efbdcaea7d50ffd484ccf80809688f5ca0e204') + + 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 59bebda5d0..d85c28b52d 100644 --- a/var/spack/repos/builtin/packages/py-gpy/package.py +++ b/var/spack/repos/builtin/packages/py-gpy/package.py @@ -13,10 +13,11 @@ class PyGpy(PythonPackage): url = "https://pypi.io/packages/source/g/gpy/GPy-1.9.9.tar.gz" version('1.9.9', sha256='04faf0c24eacc4dea60727c50a48a07ddf9b5751a3b73c382105e2a31657c7ed') + version('0.8.8', sha256='e135d928cf170e2ec7fb058a035b5a7e334dc6b84d0bfb981556782528341988') depends_on('py-setuptools', type='build') depends_on('py-numpy@1.7:', type=('build', 'run')) - depends_on('py-scipy@1.3.0:', type=('build', 'run')) + depends_on('py-scipy@0.16:', type=('build', 'run')) depends_on('py-six', type=('build', 'run')) depends_on('py-paramz@0.9.0:', type=('build', 'run')) - depends_on('py-cython@0.29:', type=('build', 'run')) + depends_on('py-cython@0.29:', type='build') diff --git a/var/spack/repos/builtin/packages/py-gql/package.py b/var/spack/repos/builtin/packages/py-gql/package.py new file mode 100644 index 0000000000..a3962bc649 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-gql/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) + + +class PyGql(PythonPackage): + """This is a GraphQL client for Python. Plays nicely with + graphene, graphql-core, graphql-js and any other GraphQL + implementation compatible with the spec. + GQL architecture is inspired by React-Relay and Apollo-Client.""" + + homepage = "https://github.com/graphql-python/gql" + url = "https://github.com/graphql-python/gql/archive/v3.0.0a1.tar.gz" + + version('3.0.0a1', sha256='3254a6010464932e3700a8d225cf6e40a6983aaf5f279615504c8196a374daf9') + + depends_on('py-setuptools', type='build') + depends_on('py-aiohttp@3.6.2', type=('build', 'run')) + depends_on('py-graphql-core@3.1.0:3.1.999', type=('build', 'run')) + depends_on('py-requests@2.23:2.999', type=('build', 'run')) + depends_on('py-websockets@8.1:8.999', type=('build', 'run')) + depends_on('py-yarl@1.4:1.999', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-graphql-core/package.py b/var/spack/repos/builtin/packages/py-graphql-core/package.py new file mode 100644 index 0000000000..6b74fa9095 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-graphql-core/package.py @@ -0,0 +1,19 @@ +# 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) + + +class PyGraphqlCore(PythonPackage): + """GraphQL-core 3 is a Python 3.6+ port of GraphQL.js, the + JavaScript reference implementation for GraphQL, a query language + for APIs created by Facebook.""" + + homepage = "https://github.com/graphql-python/graphql-core" + url = "https://github.com/graphql-python/graphql-core/archive/v3.1.2.tar.gz" + + version('3.1.2', sha256='16087360d34f9cfa295b401fc17f9f11bcddef0e6e0dc5a694bbe2298b31949b') + version('3.0.5', sha256='88021f8b879f18cf56523644e51e1552b126a9ad9ab218f579bf503d236d5272') + + depends_on('python@3.6:3.999', type=('build', 'run')) + depends_on('py-setuptools', type='build') diff --git a/var/spack/repos/builtin/packages/py-h5py/package.py b/var/spack/repos/builtin/packages/py-h5py/package.py index e652849fd1..2b7d34cc4b 100644 --- a/var/spack/repos/builtin/packages/py-h5py/package.py +++ b/var/spack/repos/builtin/packages/py-h5py/package.py @@ -49,7 +49,8 @@ class PyH5py(PythonPackage): phases = ['configure', 'install'] def configure(self, spec, prefix): - self.setup_py('configure', '--hdf5={0}'.format(spec['hdf5'].prefix)) + self.setup_py('configure', '--hdf5={0}'.format(spec['hdf5'].prefix), + '--hdf5-version={0}'.format(spec['hdf5'].version)) if '+mpi' in spec: env['CC'] = spec['mpi'].mpicc diff --git a/var/spack/repos/builtin/packages/py-hieroglyph/package.py b/var/spack/repos/builtin/packages/py-hieroglyph/package.py new file mode 100644 index 0000000000..fa8a0dab06 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-hieroglyph/package.py @@ -0,0 +1,22 @@ +# 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 PyHieroglyph(PythonPackage): + """Hieroglyph is an extension for Sphinx which builds HTML + presentations from ReStructured Text documents. + """ + + homepage = "https://github.com/nyergler/hieroglyph" + url = "https://pypi.io/packages/source/h/hieroglyph/hieroglyph-1.0.0.tar.gz" + + version('1.0.0', sha256='8e137f0b1cd60c47b870011089790d3c8ddb74fcf409a75ddf2c7f2516ff337c') + version('master') + + depends_on('py-setuptools') + depends_on('py-sphinx@1.2:') + depends_on('py-six') diff --git a/var/spack/repos/builtin/packages/py-idna-ssl/package.py b/var/spack/repos/builtin/packages/py-idna-ssl/package.py new file mode 100644 index 0000000000..273cdd9bc5 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-idna-ssl/package.py @@ -0,0 +1,16 @@ +# 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) + + +class PyIdnaSsl(PythonPackage): + """Patch ssl.match_hostname for Unicode(idna) domains support""" + + homepage = "https://github.com/aio-libs/idna-ssl" + url = "https://github.com/aio-libs/idna-ssl/archive/v1.1.0.tar.gz" + + version('1.1.0', sha256='cdbefa2429a6a2fa5cbe8d2a47c677ca671e84531618d3460fc0bcfc840684c5') + + depends_on('py-setuptools', type='build') + depends_on('py-idna@2.0:', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-inference-schema/package.py b/var/spack/repos/builtin/packages/py-inference-schema/package.py new file mode 100644 index 0000000000..5d9795145e --- /dev/null +++ b/var/spack/repos/builtin/packages/py-inference-schema/package.py @@ -0,0 +1,33 @@ +# 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) + + +class PyInferenceSchema(Package): + """This package is intended to provide a uniform schema for common machine + learning applications, as well as a set of decorators that can be used to + aid in web based ML prediction applications.""" + + homepage = "https://pypi.org/project/inference-schema/" + url = "https://pypi.io/packages/py3/i/inference-schema/inference_schema-1.0.2-py3-none-any.whl" + + version('1.0.2', sha256='fd379becbd12dcf9f7a1ad5c03b163d501ef1dcc4fb85204735c84b1d139f478', expand=False) + + variant('numpy', default=False, description='Enable numpy support') + variant('pandas', default=False, description='Enable pandas support') + variant('pyspark', default=False, description='Enable pyspark support') + + extends('python') + depends_on('python@3:', type=('build', 'run')) + depends_on('py-pip', type='build') + depends_on('py-python-dateutil@2.5.3:', type=('build', 'run')) + depends_on('py-pytz@2017.2:', type=('build', 'run')) + depends_on('py-wrapt@1.11.1', type=('build', 'run')) + depends_on('py-numpy@1.13.0:', when='+numpy', type=('build', 'run')) + depends_on('py-pandas@0.20.2:', when='+pandas', type=('build', 'run')) + depends_on('py-pyspark@2.3.2', when='+pyspark', type=('build', 'run')) + + def install(self, spec, prefix): + pip = which('pip') + pip('install', self.stage.archive_file, '--prefix={0}'.format(prefix)) diff --git a/var/spack/repos/builtin/packages/py-invoke/package.py b/var/spack/repos/builtin/packages/py-invoke/package.py index 28a4bcd2b1..29414d5fbc 100644 --- a/var/spack/repos/builtin/packages/py-invoke/package.py +++ b/var/spack/repos/builtin/packages/py-invoke/package.py @@ -10,8 +10,9 @@ class PyInvoke(PythonPackage): """Pythonic task execution""" homepage = "http://www.pyinvoke.org/" - url = "https://pypi.io/packages/source/i/invoke/invoke-1.2.0.tar.gz" + url = "https://pypi.io/packages/source/i/invoke/invoke-1.4.1.tar.gz" + version('1.4.1', sha256='de3f23bfe669e3db1085789fd859eb8ca8e0c5d9c20811e2407fa042e8a5e15d') version('1.2.0', sha256='dc492f8f17a0746e92081aec3f86ae0b4750bf41607ea2ad87e5a7b5705121b7') depends_on('python@2.7:2.8,3.4:', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-javaproperties/package.py b/var/spack/repos/builtin/packages/py-javaproperties/package.py new file mode 100644 index 0000000000..89358b1b67 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-javaproperties/package.py @@ -0,0 +1,18 @@ +# 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) + + +class PyJavaproperties(PythonPackage): + """Read & write Java .properties files.""" + + homepage = "https://github.com/jwodder/javaproperties" + url = "https://pypi.io/packages/source/j/javaproperties/javaproperties-0.7.0.tar.gz" + + version('0.7.0', sha256='cf45b39fcbaeced1dfc0b7f2bda16e34fc0349116269e001dada42fd2e145d87') + version('0.5.1', sha256='2b0237b054af4d24c74f54734b7d997ca040209a1820e96fb4a82625f7bd40cf') + + depends_on('python@2.7:2.8,3.4:3.999', type=('build', 'run')) + depends_on('py-setuptools', type='build') + depends_on('py-six@1.4:1.999', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-jsmin/package.py b/var/spack/repos/builtin/packages/py-jsmin/package.py new file mode 100644 index 0000000000..b0ace422ee --- /dev/null +++ b/var/spack/repos/builtin/packages/py-jsmin/package.py @@ -0,0 +1,15 @@ +# 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) + + +class PyJsmin(PythonPackage): + """JavaScript minifier.""" + + homepage = "https://github.com/tikitu/jsmin/" + url = "https://pypi.io/packages/source/j/jsmin/jsmin-2.2.2.tar.gz" + + version('2.2.2', sha256='b6df99b2cd1c75d9d342e4335b535789b8da9107ec748212706ef7bbe5c2553b') + + depends_on('py-setuptools', type='build') diff --git a/var/spack/repos/builtin/packages/py-jsondiff/package.py b/var/spack/repos/builtin/packages/py-jsondiff/package.py new file mode 100644 index 0000000000..a6bad6fa93 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-jsondiff/package.py @@ -0,0 +1,15 @@ +# 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) + + +class PyJsondiff(PythonPackage): + """Diff JSON and JSON-like structures in Python.""" + + homepage = "https://github.com/ZoomerAnalytics/jsondiff" + url = "https://pypi.io/packages/source/j/jsondiff/jsondiff-1.2.0.tar.gz" + + version('1.2.0', sha256='34941bc431d10aa15828afe1cbb644977a114e75eef6cc74fb58951312326303') + + depends_on('py-setuptools', type='build') diff --git a/var/spack/repos/builtin/packages/py-jsonschema/package.py b/var/spack/repos/builtin/packages/py-jsonschema/package.py index 0d62052f9b..c33cfc63e4 100644 --- a/var/spack/repos/builtin/packages/py-jsonschema/package.py +++ b/var/spack/repos/builtin/packages/py-jsonschema/package.py @@ -10,8 +10,11 @@ class PyJsonschema(PythonPackage): """Jsonschema: An(other) implementation of JSON Schema for Python.""" homepage = "http://github.com/Julian/jsonschema" - url = "https://pypi.io/packages/source/j/jsonschema/jsonschema-2.6.0.tar.gz" + url = "https://pypi.io/packages/source/j/jsonschema/jsonschema-3.2.0.tar.gz" + version('3.2.0', sha256='c8a85b28d377cc7737e46e2d9f2b4f44ee3c0e1deac6bf46ddefc7187d30797a') + version('3.1.1', sha256='2fa0684276b6333ff3c0b1b27081f4b2305f0a36cf702a23db50edb141893c3f') + version('3.0.2', sha256='8d4a2b7b6c2237e0199c8ea1a6d3e05bf118e289ae2b9d7ba444182a2959560d') version('3.0.1', sha256='0c0a81564f181de3212efa2d17de1910f8732fa1b71c42266d983cd74304e20d') version('2.6.0', sha256='6ff5f3180870836cae40f06fa10419f557208175f13ad7bc26caa77beb1f6e02') version('2.5.1', sha256='36673ac378feed3daa5956276a829699056523d7961027911f064b52255ead41') @@ -28,3 +31,5 @@ class PyJsonschema(PythonPackage): depends_on('py-attrs@17.4.0:', when='@3:', type=('build', 'run')) depends_on('py-pyrsistent@0.14.0:', when='@3:', type=('build', 'run')) depends_on('py-six@1.11.0:', when='@3:', type=('build', 'run')) + + depends_on('py-importlib-metadata', when='@3.1.1: ^python@:3.7.99', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-keras-preprocessing/package.py b/var/spack/repos/builtin/packages/py-keras-preprocessing/package.py index f9a5499612..5129e92201 100644 --- a/var/spack/repos/builtin/packages/py-keras-preprocessing/package.py +++ b/var/spack/repos/builtin/packages/py-keras-preprocessing/package.py @@ -9,15 +9,16 @@ from spack import * class PyKerasPreprocessing(PythonPackage): """Utilities for working with image data, text data, and sequence data.""" - homepage = "http://keras.io" - url = "https://github.com/keras-team/keras-preprocessing/archive/1.0.5.tar.gz" + homepage = "https://github.com/keras-team/keras-preprocessing" + url = "https://pypi.io/packages/source/K/Keras-Preprocessing/Keras_Preprocessing-1.1.2.tar.gz" - version('1.1.0', sha256='26f26354370f4a08a029137630d72870e99e924cd8f6e04c2f6fc0bd86708275') - version('1.0.9', sha256='045a9b3faf4f6d63493cc3ca396659cc0395727b280c988fb9b6c7ff8157f09b') - version('1.0.5', sha256='8a1d20d8dd2204d82616648f1b40615ea9f5ff0f8f94fdc6d9fe3c2238476c89') - version('1.0.4', sha256='9f36ffeab4545f039880d6eaf8f8b3a6c8eba14618cec25c60d69a281398e5ea') - version('1.0.3', sha256='7a7da86eaae0cadfd83e644741898d1edbd6819631ff0ee36fd130bd9efd814e') - version('1.0.2', sha256='64212b715a435b43724ecf26be67a441cee426e3ef614a6326aba06016ba9779') - version('1.0.1', sha256='2e9e187afd1327d802309513cc6366d72a5c02104c6815da30d8651a4bd20699') + version('1.1.2', sha256='add82567c50c8bc648c14195bf544a5ce7c1f76761536956c3d2978970179ef3') + version('1.1.0', sha256='5a8debe01d840de93d49e05ccf1c9b81ae30e210d34dacbcc47aeb3049b528e5') + version('1.0.9', sha256='5e3700117981c2db762e512ed6586638124fac5842170701628088a11aeb51ac') + version('1.0.5', sha256='ef2e482c4336fcf7180244d06f4374939099daa3183816e82aee7755af35b754') + version('1.0.4', sha256='452f8af8b2865e9d7d2f0dd5a3d0afd9e2ae2c6504f235b2447831c63303449f') + version('1.0.3', sha256='02ba0a3b31ed89c4b0c21d55ba7d87529097d56f394e3850b6d3c9e6c63ce7ae') + version('1.0.2', sha256='f5306554d2b454d825b36f35e327744f5477bd2ae21017f1a93b2097bed6757e') + version('1.0.1', sha256='8649ba6377ecc06ea10e0a8a954df5600d115b4b626861e33c79b41ec03c5194') depends_on('py-setuptools', type='build') diff --git a/var/spack/repos/builtin/packages/py-knack/package.py b/var/spack/repos/builtin/packages/py-knack/package.py new file mode 100644 index 0000000000..4fb7ce188f --- /dev/null +++ b/var/spack/repos/builtin/packages/py-knack/package.py @@ -0,0 +1,22 @@ +# 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) + + +class PyKnack(PythonPackage): + """A Command-Line Interface framework.""" + + homepage = "https://github.com/microsoft/knack" + url = "https://pypi.io/packages/source/k/knack/knack-0.7.1.tar.gz" + + version('0.7.1', sha256='fcef6040164ebe7d69629e4e089b398c9b980791446496301befcf8381dba0fc') + + depends_on('py-setuptools', type='build') + depends_on('py-argcomplete', type=('build', 'run')) + depends_on('py-colorama', type=('build', 'run')) + depends_on('py-jmespath', type=('build', 'run')) + depends_on('py-pygments', type=('build', 'run')) + depends_on('py-pyyaml', type=('build', 'run')) + depends_on('py-six', type=('build', 'run')) + depends_on('py-tabulate', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-lockfile/package.py b/var/spack/repos/builtin/packages/py-lockfile/package.py index 95b5289b89..9731208b51 100644 --- a/var/spack/repos/builtin/packages/py-lockfile/package.py +++ b/var/spack/repos/builtin/packages/py-lockfile/package.py @@ -23,3 +23,4 @@ class PyLockfile(PythonPackage): version('0.10.2', sha256='9e42252f17d1dd89ee31745e0c4fbe58862c25147eb0ef5295c9cd9bcb4ea2c1') depends_on("py-setuptools", type='build') + depends_on("py-pbr", type='build') diff --git a/var/spack/repos/builtin/packages/py-maestrowf/package.py b/var/spack/repos/builtin/packages/py-maestrowf/package.py index 5fdefea272..46a8a24c3e 100644 --- a/var/spack/repos/builtin/packages/py-maestrowf/package.py +++ b/var/spack/repos/builtin/packages/py-maestrowf/package.py @@ -11,7 +11,7 @@ class PyMaestrowf(PythonPackage): simulation studies.""" homepage = "https://github.com/LLNL/maestrowf/" - url = "https://github.com/LLNL/maestrowf/archive/v1.1.6.tar.gz" + url = "https://pypi.io/packages/source/m/maestrowf/maestrowf-1.1.8.tar.gz" git = "https://github.com/LLNL/maestrowf/" maintainers = ['FrankD412'] @@ -21,22 +21,28 @@ class PyMaestrowf(PythonPackage): version('master', branch='master') # Pre-release candidates - version('1.1.5dev', sha256='eb3d6f31c233e2cde3b84e15c657002b83ff43d4d6b218b33d023a4f527b9e08') - version('1.1.4dev1.0', sha256='67f59eed6fa69fc71b88a0a769de9f080300497d3c30d3a0893eabd0702bc48e') - version('1.1.4dev1.1', sha256='c8612b5423b44f11e2a7c4fbc31eb741013245870512ee2dbf7367024517528f') + version('1.1.7dev0', sha256='bcef838f13da396dd33cc7f503655de7a8f16ee5fe7b1e2a553044334a03f1f0') # pypi releases - version('1.1.6', sha256='27a4ab9072c5b5e2edf91c192d9fe67f040dd45be7f3e44fd9a998ce4cb1e92d', preferred=True) - version('1.1.4', sha256='2cb0fa6f6281d8618ac79217ea5f4fd8cb24955c4315e873657f96b815f171d5') - version('1.1.2', sha256='ebb45bff54625435bc9f2462e1bdc3b5bdc4d943378c53e7810c11836794c5e0') - version('1.1.1', sha256='a476ad4b40846d7b7f9540d6413df1b42eb655735e8d3c6c07e0baa68e20a8bb') - version('1.1.0', sha256='14e701d6a10ab758215aab6b6809817d9a39416a4f477cd2f2551883fc68477b') - version('1.0.1', sha256='cdd503f0b11db9114405132274b28766044402d1183b5836406ed91d558fd06c') - - depends_on('py-setuptools', type='build') + version('1.1.8', sha256='fa8f8eb8dd3adfb9646d7b0dfd498a00423d2131adbc8dbc8016c4159b2ec1d5', preferred=True) + version('1.1.7', sha256='ff1b6696f30254b105fcadd297ad437c0c666ebc70124b231a713b89f47f4e94') + version('1.1.6', sha256='9812e67d9bd83c452cc99d82fbceb3017b5e36dafdf52eda939748bad4a88756') + version('1.1.4', sha256='6603b93494e8e9d939a4ab40ecdfe7923a85960a8a8bddea4734e230d8144016') + version('1.1.3', sha256='9812e67d9bd83c452cc99d82fbceb3017b5e36dafdf52eda939748bad4a88756') + version('1.1.2', sha256='6998ba2c6ee4ef205c6d47d98cf35d5eaa184e1e859cc41b4120e2aa12c06df3') + version('1.1.1', sha256='689ed42ba1fb214db0594756ff6015e466470103f726a5e5bf4d21c1086ad2b1') + version('1.1.0', sha256='1bfec546831f2ef577d7823bb50dcd12622644dad0d3d761998eafd0905b6977') + version('1.0.1', sha256='dd42ffeac1f0492a576c630b37e5d3593273e59664407f2ebf78d49322d37146') + + depends_on('python@2.7:2.8,3.5:', type=('build', 'run')) + depends_on('py-setuptools', type='build') depends_on('py-pyyaml@4.2b1:', type=('build', 'run')) - depends_on('py-six', type=('build', 'run')) - depends_on('py-enum34', type=('build', 'run'), when='^python@:3.3') - depends_on('py-enum34', type=('build', 'run'), when='@:1.1.3') - depends_on('py-tabulate', type=('build', 'run'), when='@1.1.0:') - depends_on('py-filelock', type=('build', 'run'), when='@1.1.0:') + depends_on('py-six', type=('build', 'run')) + depends_on('py-enum34', type=('build', 'run'), when='^python@:3.3') + depends_on('py-enum34', type=('build', 'run'), when='@:1.1.3') + depends_on('py-tabulate', type=('build', 'run'), when='@1.1.0:') + depends_on('py-filelock', type=('build', 'run'), when='@1.1.0:') + depends_on('py-coloredlogs', type=('build', 'run'), when='@1.1.7:') + depends_on('py-chainmap', type=('build', 'run'), when='@1.1.7: ^python@:2') + depends_on('py-dill', type=('build', 'run'), when='@1.1.7:') + depends_on('py-jsonschema@3.2.0:', type=('build', 'run'), when='@1.1.7:') diff --git a/var/spack/repos/builtin/packages/py-matplotlib/package.py b/var/spack/repos/builtin/packages/py-matplotlib/package.py index a1b4c94e40..62c1a8dac3 100644 --- a/var/spack/repos/builtin/packages/py-matplotlib/package.py +++ b/var/spack/repos/builtin/packages/py-matplotlib/package.py @@ -13,7 +13,7 @@ class PyMatplotlib(PythonPackage): and interactive visualizations in Python.""" homepage = "https://matplotlib.org/" - url = "https://pypi.io/packages/source/m/matplotlib/matplotlib-3.2.2.tar.gz" + url = "https://pypi.io/packages/source/m/matplotlib/matplotlib-3.3.0.tar.gz" maintainers = ['adamjstewart'] @@ -27,6 +27,7 @@ class PyMatplotlib(PythonPackage): 'matplotlib.testing.jpl_units' ] + version('3.3.0', sha256='24e8db94948019d531ce0bcd637ac24b1c8f6744ac86d2aa0eb6dbaeb1386f82') version('3.2.2', sha256='3d77a6630d093d74cbbfebaa0571d00790966be1ed204e4a8239f5cbd6835c5d') version('3.2.1', sha256='ffe2f9cdcea1086fc414e82f42271ecf1976700b8edd16ca9d376189c6d93aee') version('3.2.0', sha256='651d76daf9168250370d4befb09f79875daa2224a9096d97dfc3ed764c842be4') @@ -77,12 +78,14 @@ class PyMatplotlib(PythonPackage): # https://matplotlib.org/users/installing.html#dependencies # Required dependencies extends('python', ignore=r'bin/nosetests.*$|bin/pbr$') - depends_on('python@2.7:2.8,3.4:', when='@:2') - depends_on('python@3.5:', when='@3:') - depends_on('python@3.6:', when='@3.1:') - depends_on('freetype@2.3:') + depends_on('python@2.7:2.8,3.4:', when='@:2', type=('build', 'link', 'run')) + depends_on('python@3.5:', when='@3:', type=('build', 'link', 'run')) + depends_on('python@3.6:', when='@3.1:', type=('build', 'link', 'run')) + depends_on('freetype@2.3:') # freetype 2.6.1 needed for tests to pass + depends_on('qhull@2015.2:', when='@3.3:') depends_on('libpng@1.2:') depends_on('py-numpy@1.11:', type=('build', 'run')) + depends_on('py-numpy@1.15:', when='@3.3:', type=('build', 'run')) depends_on('py-setuptools', type=('build', 'run')) # See #3813 depends_on('py-cycler@0.10:', type=('build', 'run')) depends_on('py-python-dateutil@2.1:', type=('build', 'run')) @@ -90,7 +93,7 @@ class PyMatplotlib(PythonPackage): 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-pytz', type=('build', 'run'), when='@:2') depends_on('py-subprocess32', type=('build', 'run'), when='^python@:2.7') - depends_on('py-functools32', type=('build', 'run'), when='@:2.0.999 ^python@2.7') + depends_on('py-functools32', type=('build', 'run'), when='@:2.0.999 ^python@:2.7') depends_on('py-backports-functools-lru-cache', type=('build', 'run'), when='@2.1.0:2.999.999 ^python@:2') depends_on('py-six@1.10.0:', type=('build', 'run'), when='@2.0:2.999') @@ -135,14 +138,13 @@ class PyMatplotlib(PythonPackage): msg = 'MacOSX backend requires the Cocoa headers included with XCode' conflicts('platform=linux', when='backend=macosx', msg=msg) - conflicts('platform=bgq', when='backend=macosx', msg=msg) conflicts('platform=cray', when='backend=macosx', msg=msg) # Patch to pick up correct freetype headers patch('freetype-include-path.patch', when='@2.2.2:2.9.9') @run_before('build') - def set_backend(self): + def configure(self): """Set build options with regards to backend GUI libraries.""" backend = self.spec.variants['backend'].value @@ -152,6 +154,13 @@ class PyMatplotlib(PythonPackage): setup.write('[rc_options]\n') setup.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') + def test(self): pytest = which('pytest') pytest() diff --git a/var/spack/repos/builtin/packages/py-mixedhtseq/package.py b/var/spack/repos/builtin/packages/py-mixedhtseq/package.py new file mode 100644 index 0000000000..c01348a099 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-mixedhtseq/package.py @@ -0,0 +1,39 @@ +# 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 * +import glob + + +class PyMixedhtseq(PythonPackage): + """HTSeq for mixed single and paired end reads""" + + homepage = "https://github.com/schae234/MixedHTSeq" + url = "https://github.com/schae234/MixedHTSeq/archive/v0.1.0.tar.gz" + + version('0.1.0', sha256='234689c8743ae2ba7ad13bc1809a5248184a4b8d16112d5413e09164ab67e157') + + depends_on('python@2.5:2.8', type=('build', 'run')) + depends_on('py-numpy', type=('build', 'run')) + depends_on('py-htseq', type=('build', 'run')) + depends_on('py-ipython', type=('build', 'run')) + depends_on('py-pandas', type=('build', 'run')) + + depends_on('py-setuptools', type='build') + + @run_after('install') + def install_scripts(self): + shebang = '#!{0}\n'.format(self.spec['python'].command) + + for fname in glob.glob('scripts/*.py'): + filter_file('^#!.*', '', fname) + with open(fname, 'r') as orig: + fdata = orig.read() + with open(fname, 'w') as new: + new.write(shebang + fdata) + set_executable(fname) + + mkdirp(self.prefix.bin) + install_tree('scripts', self.prefix.bin) diff --git a/var/spack/repos/builtin/packages/py-msal/package.py b/var/spack/repos/builtin/packages/py-msal/package.py index ade131afc8..7b870ed9d0 100644 --- a/var/spack/repos/builtin/packages/py-msal/package.py +++ b/var/spack/repos/builtin/packages/py-msal/package.py @@ -14,6 +14,7 @@ class PyMsal(PythonPackage): url = "https://pypi.io/packages/source/m/msal/msal-1.3.0.tar.gz" version('1.3.0', sha256='5442a3a9d006506e653d3c4daff40538bdf067bf07b6b73b32d1b231d5e77a92') + version('1.0.0', sha256='ecbe3f5ac77facad16abf08eb9d8562af3bc7184be5d4d90c9ef4db5bde26340') depends_on('py-setuptools', type='build') depends_on('py-requests@2.0.0:2.999', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-multidict/package.py b/var/spack/repos/builtin/packages/py-multidict/package.py new file mode 100644 index 0000000000..fe0d0ae627 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-multidict/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) + + +class PyMultidict(PythonPackage): + """Multidict is dict-like collection of key-value pairs where key + might be occurred more than once in the container.""" + + homepage = "https://github.com/aio-libs/multidict" + url = "https://github.com/aio-libs/multidict/archive/v4.7.6.tar.gz" + + version('4.7.6', sha256='449035f89a12f189579ff83811424c71e4a39e335bcb8045145ad084b7bde2dc') + + depends_on('py-setuptools', type='build') + depends_on('python@3.5:', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-netket/package.py b/var/spack/repos/builtin/packages/py-netket/package.py new file mode 100644 index 0000000000..d8950057a4 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-netket/package.py @@ -0,0 +1,38 @@ +# 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 PyNetket(PythonPackage): + """ + NetKet is an open-source project, delivering cutting-edge methods for the + study of many-body quantum systems with artificial neural networks and + machine learning techniques. + """ + + homepage = "https://github.com/netket/netket" + url = "https://github.com/netket/netket/archive/v2.1.1.tar.gz" + + version('2.1.1', sha256='881ae8605a829364b2116bc4398084766b24e2cd8958d0cb2b85595650e7bfd6') + version('2.1', sha256='041d2b058c5d2945bf0a4194ad2bf3c426ad9b6ce0dd323a81a7154bc6e45452') + version('2.0', sha256='c2890361b16ffb5265023a736536c435ccb3ad956d897e5820eac431d72cdb0e') + version('1.0.5', sha256='26562bf608775f21eb2cb443f2c66c09cadb56e6eac84f4d855d62e7d776a511') + version('1.0.4', sha256='0b344d526ee34d187281d0c2f7952c91728abbe22553e3dbcd45fcfeb312c3b5') + version('1.0.3', sha256='b8e54d7ad8b379b740def640d748c6560943aed473755389fc5cf1020b9007de') + version('1.0.2', sha256='229c906e92a432bbbd0ff0527874f41318f8fc480d12a33c8184f30960ae628b') + + # build only deps + depends_on('py-setuptools', type='build') + depends_on('py-cmake@3.12:', type='build') + + depends_on('blas') + depends_on('mpi') + depends_on('python@3.6:', type=('build', 'run')) + depends_on('py-numpy@1.16:', type=('build', 'run')) + depends_on('py-scipy@1.2.1:', type=('build', 'run')) + depends_on('py-mpi4py@3.0.1:', type=('build', 'run')) + depends_on('py-numba@0.48.0:', type=('build', 'run')) + depends_on('py-tqdm@4.42.1:', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-numpy/package.py b/var/spack/repos/builtin/packages/py-numpy/package.py index f437b43063..65b7e8fcb0 100644 --- a/var/spack/repos/builtin/packages/py-numpy/package.py +++ b/var/spack/repos/builtin/packages/py-numpy/package.py @@ -16,7 +16,7 @@ class PyNumpy(PythonPackage): number capabilities""" homepage = "https://numpy.org/" - url = "https://pypi.io/packages/source/n/numpy/numpy-1.19.0.zip" + url = "https://pypi.io/packages/source/n/numpy/numpy-1.19.1.zip" git = "https://github.com/numpy/numpy.git" maintainers = ['adamjstewart'] @@ -30,6 +30,7 @@ class PyNumpy(PythonPackage): ] version('master', branch='master') + version('1.19.1', sha256='b8456987b637232602ceb4d663cb34106f7eb780e247d51a260b84760fd8f491') version('1.19.0', sha256='76766cc80d6128750075378d3bb7812cf146415bd29b588616f72c943c00d598') version('1.18.5', sha256='34e96e9dae65c4839bd80012023aadd6ee2ccb73ce7fdf3074c62f301e63120b') version('1.18.4', sha256='bbcc85aaf4cd84ba057decaead058f43191cc0e30d6bc5d44fe336dc3d3f4509') @@ -88,6 +89,7 @@ class PyNumpy(PythonPackage): # 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('blas', when='+blas') depends_on('lapack', when='+lapack') diff --git a/var/spack/repos/builtin/packages/py-opt-einsum/package.py b/var/spack/repos/builtin/packages/py-opt-einsum/package.py index 4de5712076..0f430c76f8 100644 --- a/var/spack/repos/builtin/packages/py-opt-einsum/package.py +++ b/var/spack/repos/builtin/packages/py-opt-einsum/package.py @@ -12,9 +12,13 @@ class PyOptEinsum(PythonPackage): homepage = "https://github.com/dgasmith/opt_einsum" url = "https://pypi.io/packages/source/o/opt_einsum/opt_einsum-3.1.0.tar.gz" + version('3.2.1', sha256='83b76a98d18ae6a5cc7a0d88955a7f74881f0e567a0f4c949d24c942753eb998') + version('3.2.0', sha256='738b0a1db1d3084d360081bb64d826f9db06d2df7cc0bf8e2c9356028da1fa31') version('3.1.0', sha256='edfada4b1d0b3b782ace8bc14e80618ff629abf53143e1e6bbf9bd00b11ece77') + version('2.3.2', sha256='d3d464b4da7ef09e444c30e4003a27def37f85ff10ff2671e5f7d7813adac35b') - depends_on('python@3.5:', type=('build', 'run')) + depends_on('python@:2', type=('build', 'run'), when='@2') + depends_on('python@3.5:', type=('build', 'run'), when='@3:') depends_on('py-setuptools', type='build') depends_on('py-numpy@1.7:', type=('build', 'run')) depends_on('py-pytest', type='test') diff --git a/var/spack/repos/builtin/packages/py-pandas/package.py b/var/spack/repos/builtin/packages/py-pandas/package.py index 3fba468a27..750d53d61b 100644 --- a/var/spack/repos/builtin/packages/py-pandas/package.py +++ b/var/spack/repos/builtin/packages/py-pandas/package.py @@ -12,7 +12,7 @@ class PyPandas(PythonPackage): programming language.""" homepage = "https://pandas.pydata.org/" - url = "https://pypi.io/packages/source/p/pandas/pandas-1.0.5.tar.gz" + url = "https://pypi.io/packages/source/p/pandas/pandas-1.1.0.tar.gz" maintainers = ['adamjstewart'] import_modules = [ @@ -29,6 +29,7 @@ class PyPandas(PythonPackage): 'pandas.api.extensions' ] + version('1.1.0', sha256='b39508562ad0bb3f384b0db24da7d68a2608b9ddc85b1d931ccaaa92d5e45273') version('1.0.5', sha256='69c5d920a0b2a9838e677f78f4dde506b95ea8e4d30da25859db6469ded84fa8') version('1.0.4', sha256='b35d625282baa7b51e82e52622c300a1ca9f786711b2af7cbe64f1e6831f4126') version('1.0.3', sha256='32f42e322fb903d0e189a4c10b75ba70d90958cc4f66a1781ed027f1a1d14586') @@ -56,11 +57,14 @@ class PyPandas(PythonPackage): depends_on('python@3.5.3:', type=('build', 'run'), when='@0.25:') # https://pandas.pydata.org/docs/whatsnew/v1.0.0.html#build-changes depends_on('py-cython@0.29.13:', type='build', when='@1:') + depends_on('py-cython@0.29.16:', type='build', when='@1.1:') depends_on('py-setuptools@24.2.0:', type='build') depends_on('py-numpy', type=('build', 'run')) depends_on('py-numpy@1.13.3:', type=('build', 'run'), when='@0.25:') + depends_on('py-numpy@1.15.4:', type=('build', 'run'), when='@1.1:') depends_on('py-python-dateutil', type=('build', 'run')) depends_on('py-python-dateutil@2.6.1:', type=('build', 'run'), when='@0.25:') + depends_on('py-python-dateutil@2.7.3:', type=('build', 'run'), when='@1.1:') depends_on('py-pytz@2017.2:', type=('build', 'run')) # Recommended dependencies diff --git a/var/spack/repos/builtin/packages/py-paramiko/package.py b/var/spack/repos/builtin/packages/py-paramiko/package.py index 043b04ed5e..db07fccd09 100644 --- a/var/spack/repos/builtin/packages/py-paramiko/package.py +++ b/var/spack/repos/builtin/packages/py-paramiko/package.py @@ -11,10 +11,14 @@ class PyParamiko(PythonPackage): """SSH2 protocol library""" homepage = "http://www.paramiko.org/" - url = "https://pypi.io/packages/source/p/paramiko/paramiko-2.1.2.tar.gz" + url = "https://pypi.io/packages/source/p/paramiko/paramiko-2.7.1.tar.gz" + version('2.7.1', sha256='920492895db8013f6cc0179293147f830b8c7b21fdfc839b6bad760c27459d9f') version('2.1.2', sha256='5fae49bed35e2e3d45c4f7b0db2d38b9ca626312d91119b3991d0ecf8125e310') - depends_on('py-setuptools', type='build') - depends_on('py-pyasn1@0.1.7:', type=('build', 'run')) - depends_on('py-cryptography@1.1:', type=('build', 'run')) + depends_on('py-setuptools', type='build') + depends_on('py-bcrypt@3.1.3:', when='@2.7:', type=('build', 'run')) + depends_on('py-cryptography@1.1:', type=('build', 'run')) + depends_on('py-cryptography@2.5:', when='@2.7:', type=('build', 'run')) + depends_on('py-pyasn1@0.1.7:', when='@:2.1', type=('build', 'run')) + depends_on('py-pynacl@1.0.1:', when='@2.7:', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-pillow/package.py b/var/spack/repos/builtin/packages/py-pillow/package.py index 3934b4d4bb..32faff9956 100644 --- a/var/spack/repos/builtin/packages/py-pillow/package.py +++ b/var/spack/repos/builtin/packages/py-pillow/package.py @@ -13,11 +13,12 @@ class PyPillow(PythonPackage): capabilities.""" homepage = "https://python-pillow.org/" - url = "https://pypi.io/packages/source/P/Pillow/Pillow-7.0.0.tar.gz" + url = "https://pypi.io/packages/source/P/Pillow/Pillow-7.2.0.tar.gz" maintainers = ['adamjstewart'] import_modules = ['PIL'] + version('7.2.0', sha256='97f9e7953a77d5a70f49b9a48da7776dc51e9b738151b22dacf101641594a626') version('7.0.0', sha256='4d9ed9a64095e031435af120d3c910148067087541131e82b3e8db302f4c8946') version('6.2.2', sha256='db9ff0c251ed066d367f53b64827cc9e18ccea001b986d08c265e53625dab950') version('6.2.1', sha256='bf4e972a88f8841d8fdc6db1a75e0f8d763e66e3754b03006cbc3854d89f1cb1') @@ -32,40 +33,44 @@ class PyPillow(PythonPackage): # These defaults correspond to Pillow defaults # https://pillow.readthedocs.io/en/stable/installation.html#external-libraries - variant('tiff', default=False, description='Compressed TIFF functionality') - variant('freetype', default=False, description='Type related services') - variant('lcms', default=False, description='Color management') - variant('webp', default=False, description='WebP format') - variant('webpmux', default=False, description='WebP metadata') - variant('jpeg2000', default=False, description='JPEG 2000 functionality') - - # Spack does not (yet) support these modes of building - # variant('imagequant', default=False, - # description='Improved color quantization') + variant('zlib', default=True, description='Compressed PNG functionality') + variant('jpeg', default=True, description='JPEG functionality') + variant('tiff', default=False, description='Compressed TIFF functionality') + variant('freetype', default=False, description='Type related services') + variant('lcms', default=False, description='Color management') + variant('webp', default=False, description='WebP format') + variant('webpmux', default=False, description='WebP metadata') + variant('jpeg2000', default=False, description='JPEG 2000 functionality') + variant('imagequant', default=False, description='Improved color quantization') + variant('xcb', default=False, description='X11 screengrab support') # Required dependencies - depends_on('python@2.6:2.8,3.2:', when='@3:', type=('build', 'run')) - depends_on('python@2.7:2.8,3.3:', when='@4:', type=('build', 'run')) - depends_on('python@2.7:2.8,3.4:', when='@5:', type=('build', 'run')) - depends_on('python@2.7:2.8,3.5:', when='@6:', type=('build', 'run')) - depends_on('python@3.5:', when='@7:', type=('build', 'run')) + # 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.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.999', 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') - depends_on('zlib') - depends_on('jpeg') depends_on('py-pytest', type='test') depends_on('py-pytest-runner', type='test') + depends_on('imagemagick', type='test') # Optional dependencies + depends_on('zlib', when='+zlib') + depends_on('jpeg', when='+jpeg') depends_on('libtiff', when='+tiff') depends_on('freetype', when='+freetype') depends_on('lcms@2:', when='+lcms') depends_on('libwebp', when='+webp') depends_on('libwebp+libwebpmux+libwebpdemux', when='+webpmux') depends_on('openjpeg', when='+jpeg2000') - depends_on('imagemagick', type='test') - - # Spack does not (yet) support these modes of building - # depends_on('libimagequant', when='+imagequant') + depends_on('libimagequant', when='+imagequant') + depends_on('libxcb', when='+xcb') conflicts('+webpmux', when='~webp', msg='Webpmux relies on WebP support') @@ -95,19 +100,15 @@ class PyPillow(PythonPackage): with open('setup.cfg', 'a') as setup: # Default backend setup.write('[build_ext]\n') - setup.write('enable-zlib=1\n') - setup.write('enable-jpeg=1\n') - variants = ['tiff', 'freetype', 'lcms', 'webp', - 'webpmux', 'jpeg2000'] - for variant in variants: + for variant in self.spec.variants.keys(): setup.write(variant_to_cfg(setup)) - # Spack does not (yet) support these modes of building - setup.write('disable-imagequant=1\n') - setup.write('rpath={0}\n'.format(':'.join(self.rpath))) setup.write('[install]\n') + def setup_build_environment(self, env): + env.set('MAX_CONCURRENCY', str(make_jobs)) + # Tests need to be re-added since `phases` was overridden run_after('build_ext')( PythonPackage._run_default_build_time_test_callbacks) diff --git a/var/spack/repos/builtin/packages/py-pip/package.py b/var/spack/repos/builtin/packages/py-pip/package.py index df11d73806..ed5171411c 100644 --- a/var/spack/repos/builtin/packages/py-pip/package.py +++ b/var/spack/repos/builtin/packages/py-pip/package.py @@ -9,9 +9,10 @@ from spack import * class PyPip(PythonPackage): """The PyPA recommended tool for installing Python packages.""" - homepage = "https://pypi.python.org/pypi/pip" - url = "https://pypi.io/packages/source/p/pip/pip-19.3.tar.gz" + homepage = "https://pip.pypa.io/" + url = "https://pypi.io/packages/source/p/pip/pip-20.2.tar.gz" + version('20.2', sha256='912935eb20ea6a3b5ed5810dde9754fde5563f5ca9be44a8a6e5da806ade970b') version('19.3', sha256='324d234b8f6124846b4e390df255cacbe09ce22791c3b714aa1ea6e44a4f2861') version('19.1.1', sha256='44d3d7d3d30a1eb65c7e5ff1173cdf8f7467850605ac7cc3707b6064bddd0958') version('19.0.3', sha256='6e6f197a1abfb45118dbb878b5c859a0edbdd33fd250100bc015b67fded4b9f2') @@ -19,7 +20,11 @@ class PyPip(PythonPackage): version('10.0.1', sha256='f2bd08e0cd1b06e10218feaf6fef299f473ba706582eb3bd9d52203fdbd7ee68') version('9.0.1', sha256='09f243e1a7b461f654c26a725fa373211bb7ff17a9300058b205c61658ca940d') - depends_on('python@2.7:2.8,3.5:', type=('build', 'run')) + depends_on('python@3.5:', when='@21:', type=('build', 'run')) + depends_on('python@2.7:2.8,3.5:', when='@19.2:', type=('build', 'run')) + depends_on('python@2.7:2.8,3.4:', when='@18:', type=('build', 'run')) + depends_on('python@2.7:2.8,3.3:', when='@10:', type=('build', 'run')) + depends_on('python@2.6:2.8,3.3:', type=('build', 'run')) # Most Python packages only require setuptools as a build dependency. # However, pip requires setuptools during runtime as well. diff --git a/var/spack/repos/builtin/packages/py-protobuf/package.py b/var/spack/repos/builtin/packages/py-protobuf/package.py index c2f1efd2f9..4876832dcf 100644 --- a/var/spack/repos/builtin/packages/py-protobuf/package.py +++ b/var/spack/repos/builtin/packages/py-protobuf/package.py @@ -20,6 +20,7 @@ class PyProtobuf(PythonPackage): variant('cpp', default=False, description='Enable the cpp implementation') + version('3.12.2', sha256='49ef8ab4c27812a89a76fa894fe7a08f42f2147078392c0dee51d4a444ef6df5') version('3.11.2', sha256='3d7a7d8d20b4e7a8f63f62de2d192cfd8b7a53c56caba7ece95367ca2b80c574') version('3.11.1', sha256='aecdf12ef6dc7fd91713a6da93a86c2f2a8fe54840a3b1670853a2b7402e77c9') version('3.11.0', sha256='97b08853b9bb71512ed52381f05cf2d4179f4234825b505d8f8d2bb9d9429939') diff --git a/var/spack/repos/builtin/packages/py-pyarrow/package.py b/var/spack/repos/builtin/packages/py-pyarrow/package.py index 4daa0e0061..13ed0f14f4 100644 --- a/var/spack/repos/builtin/packages/py-pyarrow/package.py +++ b/var/spack/repos/builtin/packages/py-pyarrow/package.py @@ -12,9 +12,10 @@ class PyPyarrow(PythonPackage): This package contains the Python bindings. """ - homepage = "http://arrow.apache.org" - url = 'https://pypi.io/packages/source/p/pyarrow/pyarrow-0.15.1.tar.gz' + homepage = "https://arrow.apache.org" + url = 'https://pypi.io/packages/source/p/pyarrow/pyarrow-0.17.1.tar.gz' + version('0.17.1', sha256='278d11800c2e0f9bea6314ef718b2368b4046ba24b6c631c14edad5a1d351e49') version('0.15.1', sha256='7ad074690ba38313067bf3bbda1258966d38e2037c035d08b9ffe3cce07747a5') version('0.12.1', sha256='10db6e486c918c3af999d0114a22d92770687e3a6607ea3f14e6748854824c2a') version('0.11.0', sha256='07a6fd71c5d7440f2c42383dd2c5daa12d7f0a012f1e88288ed08a247032aead') @@ -24,10 +25,12 @@ class PyPyarrow(PythonPackage): depends_on('cmake@3.0.0:', type='build') depends_on('pkgconfig', type='build') + depends_on('python@3.5:', type=('build', 'run'), when='@0.17:') depends_on('py-setuptools', type='build') depends_on('py-setuptools-scm', type='build', when='@0.15.0:') depends_on('py-cython', type='build') depends_on('py-cython@0.29:', type='build', when='@0.15.0:') + depends_on('py-pytest-runner', type='test', when='@0.17:') depends_on('py-pytest', type='test', when='@0.15.0:') depends_on('py-pandas', type='test', when='@0.15.0:') depends_on('py-hypothesis', type='test', when='@0.15.0:') @@ -37,7 +40,7 @@ class PyPyarrow(PythonPackage): depends_on('py-futures', type=('build', 'run'), when='@0.15.0:^python@:3.1.99') depends_on('py-enum34@1.1.6:', type=('build', 'run'), when='@0.15.0:^python@:3.3.99') - for v in ('@0.9.0', '@0.11.0', '@0.12.1', '@0.15.1'): + for v in ('@0.9.0', '@0.11.0', '@0.12.1', '@0.15.1', '@0.17.1'): depends_on('arrow+python' + v, when=v) depends_on('arrow+parquet+python' + v, when='+parquet' + v) diff --git a/var/spack/repos/builtin/packages/py-pygments-pytest/package.py b/var/spack/repos/builtin/packages/py-pygments-pytest/package.py new file mode 100644 index 0000000000..3808bb80b7 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-pygments-pytest/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 PyPygmentsPytest(PythonPackage): + """A pygments lexer for pytest output.""" + + homepage = "https://github.com/asottile/pygments-pytest" + url = "https://pypi.io/packages/source/P/pygments-pytest-1.2.0.tar.gz" + + version('1.2.0', sha256='fc48e2fffd6d3c047a61c1db8b88ab069983f50e733fe70a7846098eb28bc955') + + depends_on('py-setuptools', type='build') diff --git a/var/spack/repos/builtin/packages/py-pyinstrument/package.py b/var/spack/repos/builtin/packages/py-pyinstrument/package.py index 5f8cc15286..9636d58a92 100644 --- a/var/spack/repos/builtin/packages/py-pyinstrument/package.py +++ b/var/spack/repos/builtin/packages/py-pyinstrument/package.py @@ -10,8 +10,9 @@ class PyPyinstrument(PythonPackage): """Call stack profiler for Python. Shows you why your code is slow!""" homepage = "https://github.com/joerick/pyinstrument" - url = "https://github.com/joerick/pyinstrument/archive/v3.1.0.tar.gz" + url = "https://github.com/joerick/pyinstrument/archive/v3.1.3.tar.gz" + version('3.1.3', sha256='ca4571775caa06444cd7e832056afc21175130271fe3f3481e3ab1bf67f96c8b') version('3.1.0', sha256='02319607daf65110e246085f5e2ee111f565f213eed1991229f2d58e9a7657a5') depends_on('py-setuptools', type='build') diff --git a/var/spack/repos/builtin/packages/py-pynacl/package.py b/var/spack/repos/builtin/packages/py-pynacl/package.py new file mode 100644 index 0000000000..a428b3756e --- /dev/null +++ b/var/spack/repos/builtin/packages/py-pynacl/package.py @@ -0,0 +1,18 @@ +# 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) + + +class PyPynacl(PythonPackage): + """Python binding to the Networking and Cryptography (NaCl) library.""" + + homepage = "https://github.com/pyca/pynacl/" + url = "https://pypi.io/packages/source/P/PyNaCl/PyNaCl-1.4.0.tar.gz" + + version('1.4.0', sha256='54e9a2c849c742006516ad56a88f5c74bf2ce92c9f67435187c3c5953b346505') + + depends_on('python@2.7:2.8,3.4:', type=('build', 'run')) + depends_on('py-setuptools', type='build') + depends_on('py-six', type=('build', 'run')) + depends_on('py-cffi@1.4.1:', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-pysam/package.py b/var/spack/repos/builtin/packages/py-pysam/package.py index 38a2a26b40..5459ef0a16 100644 --- a/var/spack/repos/builtin/packages/py-pysam/package.py +++ b/var/spack/repos/builtin/packages/py-pysam/package.py @@ -25,3 +25,6 @@ class PyPysam(PythonPackage): depends_on('samtools') depends_on('htslib@:1.6', when='@:0.13') + + def setup_build_environment(self, env): + env.set('LDFLAGS', self.spec['curl'].libs.search_flags) diff --git a/var/spack/repos/builtin/packages/py-pyscf/package.py b/var/spack/repos/builtin/packages/py-pyscf/package.py new file mode 100644 index 0000000000..d0c36d5a79 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-pyscf/package.py @@ -0,0 +1,43 @@ +# 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 PyPyscf(PythonPackage): + """PySCF is a collection of electronic structure programs powered + by Python.""" + + homepage = "https://sunqm.github.io/pyscf/" + git = "https://github.com/pyscf/pyscf" + + maintainers = ['naromero77'] + + version('1.7.3', tag='v1.7.3') + + # dependencies + depends_on('cmake@2.8:', type='build') + depends_on('python@2.6:', type=('build', 'run')) + depends_on('py-numpy@1.8.0:', type=('build', 'run')) + depends_on('py-scipy@0.12:', type=('build', 'run')) + depends_on('py-h5py@2.3.0:', type=('build', 'run')) + depends_on('blas') + depends_on('libcint+coulomb_erf+f12') + depends_on('libxc') + depends_on('xcfun@:2.0.0a2') # PySCF does not support recent version of the xcfun API' + + def setup_build_environment(self, env): + # Tell PSCF where supporting libraries are located." + spec = self.spec + + pyscf_search_dir = [] + pyscf_search_dir.append(spec['blas'].prefix) + pyscf_search_dir.append(spec['libcint'].prefix) + pyscf_search_dir.append(spec['libxc'].prefix) + pyscf_search_dir.append(spec['xcfun'].prefix) + pyscf_search_dir.append(spec['xcfun'].prefix.include.XCFun) + + env.set('PYSCF_INC_DIR', ":".join(pyscf_search_dir)) diff --git a/var/spack/repos/builtin/packages/py-python-docs-theme/package.py b/var/spack/repos/builtin/packages/py-python-docs-theme/package.py new file mode 100644 index 0000000000..4b1b7232b4 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-python-docs-theme/package.py @@ -0,0 +1,19 @@ +# 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 PyPythonDocsTheme(PythonPackage): + """This is the theme for the Python documentation. + """ + + homepage = "https://docs.python.org/3/" + url = "https://pypi.io/packages/source/p/python-docs-theme/python-docs-theme-2018.7.tar.gz" + + version('2020.1', sha256='29c33ba393bdb9377910116a0c1cc329573a4e040227c58a3293d27928d8262a') + version('2018.7', sha256='018a5bf2a7318c9c9a8346303dac8afc6bc212d92e86561c9b95a3372714155a') + + depends_on('py-setuptools') diff --git a/var/spack/repos/builtin/packages/py-python-json-logger/package.py b/var/spack/repos/builtin/packages/py-python-json-logger/package.py new file mode 100644 index 0000000000..b3aa3efbca --- /dev/null +++ b/var/spack/repos/builtin/packages/py-python-json-logger/package.py @@ -0,0 +1,18 @@ +# 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 PyPythonJsonLogger(PythonPackage): + """"A python library adding a json log formatter.""" + + homepage = "https://github.com/madzak/python-json-logger" + url = "https://pypi.io/packages/source/p/python-json-logger/python-json-logger-0.1.11.tar.gz" + + version('0.1.11', sha256='b7a31162f2a01965a5efb94453ce69230ed208468b0bbc7fdfc56e6d8df2e281') + + depends_on('python@2.7:', type=('build', 'run')) + depends_on('py-setuptools') diff --git a/var/spack/repos/builtin/packages/py-python-swiftclient/package.py b/var/spack/repos/builtin/packages/py-python-swiftclient/package.py index bd8f766624..a016686406 100644 --- a/var/spack/repos/builtin/packages/py-python-swiftclient/package.py +++ b/var/spack/repos/builtin/packages/py-python-swiftclient/package.py @@ -16,6 +16,7 @@ class PyPythonSwiftclient(PythonPackage): import_modules = ['sys', 'setuptools', 'requests'] + version('3.10.0', sha256='66227eaf29a691c70675fb9982022980b92797c273dd5e6dc7e680425e9a3634') version('3.9.0', sha256='4f2097492e4c76e948882fc859bfa033ade09bed72f8e6b328e34a3467d9a377') version('3.8.1', sha256='3a013303643f77a99befa05582dfb93671e1fba1aed9f4a517418129700aedb8') version('3.8.0', sha256='107a9d5356663365a9f7c0b3a2b55da97a0a9ba7f10da2319b3972481510f33d') diff --git a/var/spack/repos/builtin/packages/py-rasterio/package.py b/var/spack/repos/builtin/packages/py-rasterio/package.py index 21f132cc9b..8d3b131b4e 100644 --- a/var/spack/repos/builtin/packages/py-rasterio/package.py +++ b/var/spack/repos/builtin/packages/py-rasterio/package.py @@ -14,28 +14,31 @@ class PyRasterio(PythonPackage): arrays.""" homepage = "https://github.com/mapbox/rasterio" - url = "https://pypi.io/packages/source/r/rasterio/rasterio-1.0.24.tar.gz" + url = "https://pypi.io/packages/source/r/rasterio/rasterio-1.1.5.tar.gz" maintainers = ['adamjstewart'] import_modules = ['rasterio', 'rasterio.rio'] + version('1.1.5', sha256='ebe75c71f9257c780615caaec8ef81fa4602702cf9290a65c213e1639284acc9') version('1.0.24', sha256='4839479621045211f66868ec49625979693450bc2e476f23e7e8ac4804eaf452') version('1.0a12', sha256='47d460326e04c64590ff56952271a184a6307f814efc34fb319c12e690585f3c') - depends_on('python@3:', type=('build', 'run'), when='@1.1:') + depends_on('python@3.5:', type=('build', 'link', 'run'), when='@1.2:') + depends_on('python@2.7:2.8,3.5:3.8', type=('build', 'link', 'run'), when='@1.1.0:1.1.999') + depends_on('python@2.7:2.8,3.5:3.7', type=('build', 'link', 'run'), when='@:1.0') depends_on('py-setuptools', type='build') - depends_on('py-cython', type='build') depends_on('py-affine', type=('build', 'run')) depends_on('py-attrs', type=('build', 'run')) depends_on('py-click@4:7', type=('build', 'run')) depends_on('py-cligj@0.5:', type=('build', 'run')) - depends_on('py-numpy', type=('build', 'run')) + depends_on('py-numpy', type=('build', 'link', 'run')) depends_on('py-snuggs@1.4.1:', type=('build', 'run')) depends_on('py-click-plugins', type=('build', 'run')) depends_on('py-enum34', type='run', when='^python@:3.3') - depends_on('gdal@1.11:') - depends_on('jpeg') + depends_on('gdal@1.11:3.0', when='@1.0.25:') + depends_on('gdal@1.11:2', when='@:1.0.24') depends_on('py-pytest@2.8.2:', type='test') + depends_on('py-pytest-cov@2.2.0:', type='test') depends_on('py-boto3@1.2.4:', type='test') depends_on('py-packaging', type='test') depends_on('py-hypothesis', type='test') diff --git a/var/spack/repos/builtin/packages/py-rdflib/package.py b/var/spack/repos/builtin/packages/py-rdflib/package.py new file mode 100644 index 0000000000..5e1b8da03a --- /dev/null +++ b/var/spack/repos/builtin/packages/py-rdflib/package.py @@ -0,0 +1,26 @@ +# 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) + + +class PyRdflib(PythonPackage): + """RDFLib is a pure Python package for working with RDF. RDFLib + contains most things you need to work with RDF, including: + parsers and serializers for RDF/XML, N3, NTriples, N-Quads, + Turtle, TriX, Trig and JSON-LD (via a plugin). a Graph interface + which can be backed by any one of a number of Store + implementations store implementations for in-memory storage and + persistent storage on top of the Berkeley DB a SPARQL 1.1 + implementation - supporting SPARQL 1.1 Queries and Update + statements """ + + homepage = "https://github.com/RDFLib/rdflib" + url = "https://pypi.io/packages/source/r/rdflib/rdflib-5.0.0.tar.gz" + + version('5.0.0', sha256='78149dd49d385efec3b3adfbd61c87afaf1281c30d3fcaf1b323b34f603fb155') + + depends_on('py-setuptools', type='build') + depends_on('py-six', type=('build', 'run')) + depends_on('py-pyparsing', type=('build', 'run')) + depends_on('py-isodate', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-recommonmark/package.py b/var/spack/repos/builtin/packages/py-recommonmark/package.py new file mode 100644 index 0000000000..7b03932a6c --- /dev/null +++ b/var/spack/repos/builtin/packages/py-recommonmark/package.py @@ -0,0 +1,24 @@ +# 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 PyRecommonmark(PythonPackage): + """A docutils-compatibility bridge to CommonMark. + + This allows you to write CommonMark inside of Docutils & Sphinx projects. + + Documentation is available on Read the Docs: + http://recommonmark.readthedocs.org""" + + homepage = "https://github.com/readthedocs/recommonmark" + url = "https://files.pythonhosted.org/packages/f5/71/046160d730f664662d65b3f8b399b519ad378ffa4369ff3b6060cf1318d7/recommonmark-0.6.0.tar.gz" + + version('0.6.0', sha256='29cd4faeb6c5268c633634f2d69aef9431e0f4d347f90659fd0aab20e541efeb') + + depends_on('py-commonmark@0.8.1:') + depends_on('py-docutils@011:') + depends_on('py-sphinx@1.3.1:') diff --git a/var/spack/repos/builtin/packages/py-requests/package.py b/var/spack/repos/builtin/packages/py-requests/package.py index 5d7249a079..30af0cd73f 100644 --- a/var/spack/repos/builtin/packages/py-requests/package.py +++ b/var/spack/repos/builtin/packages/py-requests/package.py @@ -10,7 +10,7 @@ class PyRequests(PythonPackage): """Python HTTP for Humans.""" homepage = "http://python-requests.org" - url = "https://pypi.io/packages/source/r/requests/requests-2.22.0.tar.gz" + url = "https://pypi.io/packages/source/r/requests/requests-2.24.0.tar.gz" import_modules = [ 'requests', 'requests.packages', 'requests.packages.chardet', @@ -23,6 +23,8 @@ class PyRequests(PythonPackage): 'requests.packages.urllib3.contrib._securetransport' ] + version('2.24.0', sha256='b3559a131db72c33ee969480840fff4bb6dd111de7dd27c8ee1f820f4f00231b') + version('2.23.0', sha256='b3f43d496c6daba4493e7c431722aeb7dbc6288f52a6e04e7b6023b0247817e6') version('2.22.0', sha256='11e007a8a2aa0323f5a921e9e6a2d7e4e67d9877e85773fba9ba6419025cbeb4') version('2.21.0', sha256='502a824f31acdacb3a35b6690b5fbf0bc41d63a24a45c4004352b0242707598e') version('2.14.2', sha256='a274abba399a23e8713ffd2b5706535ae280ebe2b8069ee6a941cb089440d153') @@ -33,8 +35,10 @@ class PyRequests(PythonPackage): depends_on('python@2.7:2.8,3.5:', type=('build', 'run')) depends_on('py-setuptools', type='build') - depends_on('py-chardet@3.0.2:3.0.999', type=('build', 'run'), when='@2.16.0:') - depends_on('py-idna@2.5:2.8', type=('build', 'run'), when='@2.16.0:') + depends_on('py-chardet@3.0.2:3.0.999', type=('build', 'run'), when='@2.16.0:2.22.999') + depends_on('py-idna@2.5:2.8', type=('build', 'run'), when='@2.16.0:2.22.999') + depends_on('py-chardet@3.0.2:3.999', type=('build', 'run'), when='@2.23.0:') + depends_on('py-idna@2.5:2.999', type=('build', 'run'), when='@2.23.0:') depends_on('py-urllib3@1.21.1:1.24,1.25.2:1.25.999', type=('build', 'run'), when='@2.16.0:') depends_on('py-certifi@2017.4.17:', type=('build', 'run'), when='@2.16.0:') diff --git a/var/spack/repos/builtin/packages/py-scikit-learn/package.py b/var/spack/repos/builtin/packages/py-scikit-learn/package.py index d73d3f7576..0a9bf34523 100644 --- a/var/spack/repos/builtin/packages/py-scikit-learn/package.py +++ b/var/spack/repos/builtin/packages/py-scikit-learn/package.py @@ -8,7 +8,7 @@ class PyScikitLearn(PythonPackage): """A set of python modules for machine learning and data mining.""" homepage = "https://pypi.python.org/pypi/scikit-learn" - url = "https://pypi.io/packages/source/s/scikit-learn/scikit-learn-0.23.1.tar.gz" + url = "https://pypi.io/packages/source/s/scikit-learn/scikit-learn-0.23.2.tar.gz" git = "https://github.com/scikit-learn/scikit-learn.git" maintainers = ['adamjstewart'] @@ -31,6 +31,7 @@ class PyScikitLearn(PythonPackage): ] version('master', branch='master') + version('0.23.2', sha256='20766f515e6cd6f954554387dfae705d93c7b544ec0e6c6a5d8e006f6f7ef480') version('0.23.1', sha256='e3fec1c8831f8f93ad85581ca29ca1bb88e2da377fb097cf8322aa89c21bc9b8') version('0.23.0', sha256='639a53df6273acc6a7510fb0c658b94e0c70bb13dafff9d14932c981ff9baff4') version('0.22.1', sha256='51ee25330fc244107588545c70e2f3570cfc4017cff09eed69d6e1d82a212b7d') diff --git a/var/spack/repos/builtin/packages/py-scipy/package.py b/var/spack/repos/builtin/packages/py-scipy/package.py index 6775d533fa..c63d539dad 100644 --- a/var/spack/repos/builtin/packages/py-scipy/package.py +++ b/var/spack/repos/builtin/packages/py-scipy/package.py @@ -12,7 +12,7 @@ class PyScipy(PythonPackage): as routines for numerical integration and optimization.""" homepage = "https://www.scipy.org/" - url = "https://pypi.io/packages/source/s/scipy/scipy-1.5.0.tar.gz" + url = "https://pypi.io/packages/source/s/scipy/scipy-1.5.2.tar.gz" maintainers = ['adamjstewart'] install_time_test_callbacks = ['install_test', 'import_module_test'] @@ -30,6 +30,8 @@ class PyScipy(PythonPackage): 'scipy.sparse.linalg.eigen.lobpcg', 'scipy.special._precompute' ] + version('1.5.2', sha256='066c513d90eb3fd7567a9e150828d39111ebd88d3e924cdfc9f8ce19ab6f90c9') + version('1.5.1', sha256='039572f0ca9578a466683558c5bf1e65d442860ec6e13307d528749cfe6d07b8') version('1.5.0', sha256='4ff72877d19b295ee7f7727615ea8238f2d59159df0bdd98f91754be4a2767f0') version('1.4.1', sha256='dee1bbf3a6c8f73b6b218cb28eed8dd13347ea2f87d572ce19b289d6fd3fbc59') version('1.4.0', sha256='31f7cfa93b01507c935c12b535e24812594002a02a56803d7cd063e9920d25e8') diff --git a/var/spack/repos/builtin/packages/py-setuptools/package.py b/var/spack/repos/builtin/packages/py-setuptools/package.py index 877cf7ece9..24fb3b7068 100644 --- a/var/spack/repos/builtin/packages/py-setuptools/package.py +++ b/var/spack/repos/builtin/packages/py-setuptools/package.py @@ -11,7 +11,7 @@ class PySetuptools(PythonPackage): upgrading, installing, and uninstalling Python packages.""" homepage = "https://github.com/pypa/setuptools" - url = "https://pypi.io/packages/source/s/setuptools/setuptools-41.0.1.zip" + url = "https://pypi.io/packages/source/s/setuptools/setuptools-49.2.0.zip" import_modules = [ 'setuptools', 'pkg_resources', 'setuptools._vendor', @@ -21,6 +21,7 @@ class PySetuptools(PythonPackage): 'easy_install' ] + version('49.2.0', sha256='afe9e81fee0270d3f60d52608549cc8ec4c46dada8c95640c1a00160f577acf2') version('46.1.3', sha256='795e0475ba6cd7fa082b1ee6e90d552209995627a2a227a47c6ea93282f4bfb1') version('44.1.0', sha256='794a96b0c1dc6f182c36b72ab70d7e90f1d59f7a132e6919bb37b4fd4d424aca') version('41.4.0', sha256='7eae782ccf36b790c21bde7d86a4f303a441cd77036b25c559a602cf5186ce4d') diff --git a/var/spack/repos/builtin/packages/py-shroud/package.py b/var/spack/repos/builtin/packages/py-shroud/package.py index 504c992f15..0e66ca1a23 100644 --- a/var/spack/repos/builtin/packages/py-shroud/package.py +++ b/var/spack/repos/builtin/packages/py-shroud/package.py @@ -14,10 +14,11 @@ class PyShroud(PythonPackage): version('develop', branch='develop') version('master', branch='master') + version('0.12.1', tag='v0.12.1') version('0.11.0', tag='v0.11.0') version('0.10.1', tag='v0.10.1') version('0.9.0', tag='v0.9.0') version('0.8.0', tag='v0.8.0') - depends_on("py-setuptools", type='build') + depends_on("py-setuptools", type=('build', 'run')) depends_on("py-pyyaml@4.2b1:", type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-smart-open/package.py b/var/spack/repos/builtin/packages/py-smart-open/package.py index fd2ed92ef2..f58683af38 100644 --- a/var/spack/repos/builtin/packages/py-smart-open/package.py +++ b/var/spack/repos/builtin/packages/py-smart-open/package.py @@ -21,5 +21,6 @@ class PySmartOpen(PythonPackage): depends_on('py-setuptools', type='build') depends_on('py-requests', type=('build', 'run')) depends_on('py-boto3', type=('build', 'run')) - depends_on('py-google-cloud-storage', type=('build', 'run')) + depends_on('py-boto@2.3.2:', when='@1.8.4', type=('build', 'run')) + depends_on('py-google-cloud-storage', when='@1.10:', type=('build', 'run')) depends_on('py-bz2file', when='^python@:2', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-sphinx-copybutton/package.py b/var/spack/repos/builtin/packages/py-sphinx-copybutton/package.py new file mode 100644 index 0000000000..12d4df06dd --- /dev/null +++ b/var/spack/repos/builtin/packages/py-sphinx-copybutton/package.py @@ -0,0 +1,18 @@ +# 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 PySphinxCopybutton(PythonPackage): + """A small sphinx extension to add a "copy" button to code blocks.""" + + homepage = "https://github.com/choldgraf/sphinx-copybutton" + url = "https://files.pythonhosted.org/packages/b7/74/da355d8a909a7934b5f1711fce6f056e0c398094918dec3a23703662a0fe/sphinx-copybutton-0.2.12.tar.gz" + + version('0.2.12', sha256='9492883786984b6179c92c07ab0410237b26efa826adfa792acfd17b91a63e5c') + + depends_on('py-setuptools', type='build') + depends_on('py-sphinx@1.8:') diff --git a/var/spack/repos/builtin/packages/py-sphinx-gallery/package.py b/var/spack/repos/builtin/packages/py-sphinx-gallery/package.py new file mode 100644 index 0000000000..f96e5a11f4 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-sphinx-gallery/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) + +from spack import * + + +class PySphinxGallery(PythonPackage): + """A `Sphinx` extension that builds an HTML version of any Python script + and puts it into an examples gallery. + """ + + homepage = "https://sphinx-gallery.github.io" + url = "https://files.pythonhosted.org/packages/9d/20/79118154e64a5280060b55c7ad025ad16f89b8192a6a9f0ffdbf71717bf0/sphinx-gallery-0.7.0.tar.gz" + + version('0.7.0', sha256='05ead72c947718ab4183c33a598e29743e771dcf75aec84c53048423bd2f4580') + version('0.4.0', sha256='a286cf2eea47ce838a0754ecef617616afb1f40e41e52fe765723464f52e0c2f') + + depends_on('py-setuptools') + depends_on('py-matplotlib') + depends_on('py-pillow') + depends_on('py-sphinx') diff --git a/var/spack/repos/builtin/packages/py-sphinx-rtd-theme/package.py b/var/spack/repos/builtin/packages/py-sphinx-rtd-theme/package.py index 45a5e2104a..bc09b3324b 100644 --- a/var/spack/repos/builtin/packages/py-sphinx-rtd-theme/package.py +++ b/var/spack/repos/builtin/packages/py-sphinx-rtd-theme/package.py @@ -10,12 +10,16 @@ class PySphinxRtdTheme(PythonPackage): """ReadTheDocs.org theme for Sphinx.""" homepage = "https://github.com/rtfd/sphinx_rtd_theme/" - url = "https://pypi.io/packages/source/s/sphinx_rtd_theme/sphinx_rtd_theme-0.1.10a0.tar.gz" + url = "https://github.com/readthedocs/sphinx_rtd_theme/archive/0.5.0.tar.gz" import_modules = ['sphinx_rtd_theme'] - version('0.4.3', sha256='728607e34d60456d736cc7991fd236afb828b21b82f956c5ea75f94c8414040a') - version('0.2.5b1', sha256='d99513e7f2f8b9da8fdc189ad83df926b83d7fb15ad7ed07f24665d1f29d38da') - version('0.1.10a0', sha256='1225df3fc8337b14d53779435381b7f7705b9f4819610f6b74e555684cee2ac4') + version('0.5.0', sha256='f5c77e9026e2bd0b3d2530f9f8a6681808b216ba70195fe56e7ad89f641ac447') + version('0.4.3', sha256='3412195caad06e4537ad741596d57706c3ed29073d1e0e6b46f25e344d0f393b') + version('0.2.5b1', sha256='31924cdaa5232d1d573423ebebeb1e8f02c8b3cd8cd0662b8a91f3b12efbc12e') + version('0.1.10-alpha', sha256='a4c120c0d5c87a2541da9d5e48d3c43b96ea7d7867eacbd5dbf125cdeaa0b4f0') depends_on('py-setuptools', type='build') + depends_on('npm', when='@0.5.0:', type='build') + depends_on('py-sphinx', when='@0.4.1:', type=('build', 'run')) + depends_on('py-pytest', when='@0.5.0:', type='test') diff --git a/var/spack/repos/builtin/packages/py-sphinx/package.py b/var/spack/repos/builtin/packages/py-sphinx/package.py index 5aed1f39eb..d326c53f4c 100644 --- a/var/spack/repos/builtin/packages/py-sphinx/package.py +++ b/var/spack/repos/builtin/packages/py-sphinx/package.py @@ -9,8 +9,8 @@ from spack import * class PySphinx(PythonPackage): """Sphinx Documentation Generator.""" - homepage = "http://sphinx-doc.org" - url = "https://pypi.io/packages/source/S/Sphinx/Sphinx-3.0.0.tar.gz" + homepage = "https://sphinx-doc.org/" + url = "https://pypi.io/packages/source/S/Sphinx/Sphinx-3.2.0.tar.gz" import_modules = [ 'sphinx', 'sphinx.testing', 'sphinx.ext', 'sphinx.pycode', @@ -22,6 +22,7 @@ class PySphinx(PythonPackage): 'sphinx.environment.collectors', 'sphinx.environment.adapters' ] + version('3.2.0', sha256='cf2d5bc3c6c930ab0a1fbef3ad8a82994b1bf4ae923f8098a05c7e5516f07177') version('3.0.0', sha256='6a099e6faffdc3ceba99ca8c2d09982d43022245e409249375edf111caf79ed3') version('2.2.0', sha256='0d586b0f8c2fc3cc6559c5e8fd6124628110514fda0e5d7c82e682d749d2e845') version('1.8.4', sha256='c1c00fc4f6e8b101a0d037065043460dffc2d507257f2f11acaed71fd2b0c83c') diff --git a/var/spack/repos/builtin/packages/py-sphinxcontrib-bibtex/package.py b/var/spack/repos/builtin/packages/py-sphinxcontrib-bibtex/package.py index 9ba3dbc720..d7820786b0 100644 --- a/var/spack/repos/builtin/packages/py-sphinxcontrib-bibtex/package.py +++ b/var/spack/repos/builtin/packages/py-sphinxcontrib-bibtex/package.py @@ -14,6 +14,7 @@ class PySphinxcontribBibtex(PythonPackage): import_modules = ['sphinxcontrib', 'sphinxcontrib.bibtex'] + version('1.0.0', sha256='629612b001f86784669d65e662377a482052decfd9a0a17c46860878eef7b9e0') version('0.3.5', sha256='c93e2b4a0d14f0ab726f95f0a33c1675965e9df3ed04839635577b8f978206cd') depends_on('py-setuptools', type='build') diff --git a/var/spack/repos/builtin/packages/py-sphinxcontrib-mermaid/package.py b/var/spack/repos/builtin/packages/py-sphinxcontrib-mermaid/package.py new file mode 100644 index 0000000000..b525971d46 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-sphinxcontrib-mermaid/package.py @@ -0,0 +1,20 @@ +# 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 PySphinxcontribMermaid(PythonPackage): + """This extension allows you to embed + `Mermaid <http://knsv.github.io/mermaid/>`_ graphs in your documents, + including general flowcharts, sequence and gantt diagrams.""" + + homepage = "https://github.com/mgaitan/sphinxcontrib-mermaid" + url = "https://files.pythonhosted.org/packages/8e/0a/8a97b65608a63c43a99a9d6a37a5baff853f306e8506bf21ce54bb50d4f3/sphinxcontrib-mermaid-0.4.0.tar.gz" + + version('0.4.0', sha256='0ee45ba45b9575505eacdd6212e4e545213f4f93dfa32c7eeca32720dbc3b468') + version('0.3.1', sha256='649738afc3022d25a742a928f7b4146cf6024b1d8bb49017962713d2de78123c', extension='zip') + + depends_on('py-sphinx@1.7:') diff --git a/var/spack/repos/builtin/packages/py-sphinxcontrib-trio/package.py b/var/spack/repos/builtin/packages/py-sphinxcontrib-trio/package.py new file mode 100644 index 0000000000..191907db4f --- /dev/null +++ b/var/spack/repos/builtin/packages/py-sphinxcontrib-trio/package.py @@ -0,0 +1,22 @@ +# 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 PySphinxcontribTrio(PythonPackage): + """This sphinx extension helps you document Python code that uses + async/await, or abstract methods, or context managers, or generators, + or ... you get the idea.""" + + homepage = "https://github.com/python-trio/sphinxcontrib-trio" + url = "https://files.pythonhosted.org/packages/ca/33/ee48d86e30bb3c5d72a47f49b1ebf5c23dd253b04d8d5fc3e6c68407a03e/sphinxcontrib-trio-1.1.2.tar.gz" + + version('1.1.2', sha256='9f1ba9c1d5965b534e85258d8b677dd94e9b1a9a2e918b85ccd42590596b47c0') + version('1.1.0', sha256='d90f46d239ba0556e53d9a110989f98c9eb2cea76ab47937a1f39b62f63fe654') + + depends_on('py-sphinx@1.7:') + + patch('sphinxcontrib-trio.patch', when='@1.1.0') diff --git a/var/spack/repos/builtin/packages/py-sphinxcontrib-trio/sphinxcontrib-trio.patch b/var/spack/repos/builtin/packages/py-sphinxcontrib-trio/sphinxcontrib-trio.patch new file mode 100644 index 0000000000..49465f4a11 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-sphinxcontrib-trio/sphinxcontrib-trio.patch @@ -0,0 +1,10 @@ +diff -urN a/setup.py b/setup.py +--- a/setup.py 2019-08-01 10:44:29.583879243 +0200 ++++ b/setup.py 2019-08-01 11:57:01.815819059 +0200 +@@ -32,4 +32,5 @@ + "Framework :: Twisted", + "Topic :: Documentation :: Sphinx", + "Topic :: Software Development :: Documentation", +- ]) ++ ], ++ namespace_packages=['sphinxcontrib']) diff --git a/var/spack/repos/builtin/packages/py-sshtunnel/package.py b/var/spack/repos/builtin/packages/py-sshtunnel/package.py new file mode 100644 index 0000000000..c9a13fa06e --- /dev/null +++ b/var/spack/repos/builtin/packages/py-sshtunnel/package.py @@ -0,0 +1,16 @@ +# 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) + + +class PySshtunnel(PythonPackage): + """Pure python SSH tunnels.""" + + homepage = "https://github.com/pahaz/sshtunnel" + url = "https://pypi.io/packages/source/s/sshtunnel/sshtunnel-0.1.5.tar.gz" + + version('0.1.5', sha256='c813fdcda8e81c3936ffeac47cb69cfb2d1f5e77ad0de656c6dab56aeebd9249') + + depends_on('py-setuptools', type='build') + depends_on('py-paramiko@1.15.2:', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-tensorflow/package.py b/var/spack/repos/builtin/packages/py-tensorflow/package.py index 5c8a10a4a9..367a3511d6 100644 --- a/var/spack/repos/builtin/packages/py-tensorflow/package.py +++ b/var/spack/repos/builtin/packages/py-tensorflow/package.py @@ -141,8 +141,9 @@ class PyTensorflow(Package, CudaPackage): depends_on('py-keras-preprocessing@1.1.0:', type=('build', 'run'), when='@2.1:') depends_on('py-keras-preprocessing@1.0.5:', type=('build', 'run'), when='@1.12:') depends_on('py-keras-preprocessing@1.0.3:', type=('build', 'run'), when='@1.11:') - depends_on('py-numpy@1.16.0:1.999', type=('build', 'run'), when='@1.13.2,1.15:') - depends_on('py-numpy@1.14.5:1.999', type=('build', 'run'), when='@1.12.1,1.14.0') + # https://github.com/tensorflow/tensorflow/issues/40688 + depends_on('py-numpy@1.16.0:1.18', type=('build', 'run'), when='@1.13.2,1.15:') + depends_on('py-numpy@1.14.5:1.18', type=('build', 'run'), when='@1.12.1,1.14.0') depends_on('py-numpy@1.13.3:1.14.5', type=('build', 'run'), when='@1.10.0:1.10.1') depends_on('py-numpy@1.13.3:', type=('build', 'run'), when='@1.6:') depends_on('py-numpy@1.12.1:', type=('build', 'run'), when='@1.4:') @@ -202,7 +203,6 @@ class PyTensorflow(Package, CudaPackage): conflicts('+jemalloc', when='@:0') conflicts('+jemalloc', when='platform=darwin', msg='Currently jemalloc is only support on Linux platform') conflicts('+jemalloc', when='platform=cray', msg='Currently jemalloc is only support on Linux platform') - conflicts('+jemalloc', when='platform=bgq', msg='Currently jemalloc is only support on Linux platform') conflicts('+gcp', when='@:0.8') conflicts('+hdfs', when='@:0.10') conflicts('+aws', when='@:1.3') @@ -226,18 +226,15 @@ class PyTensorflow(Package, CudaPackage): conflicts('+tensorrt', when='~cuda') conflicts('+tensorrt', when='platform=darwin', msg='Currently TensorRT is only supported on Linux platform') conflicts('+tensorrt', when='platform=cray', msg='Currently TensorRT is only supported on Linux platform') - conflicts('+tensorrt', when='platform=bgq', msg='Currently TensorRT is only supported on Linux platform') conflicts('+nccl', when='@:1.7') conflicts('+nccl', when='~cuda') conflicts('+nccl', when='platform=darwin', msg='Currently NCCL is only supported on Linux platform') conflicts('+nccl', when='platform=cray', msg='Currently NCCL is only supported on Linux platform') - conflicts('+nccl', when='platform=bgq', msg='Currently NCCL is only supported on Linux platform') conflicts('+mpi', when='@:1.2') conflicts('+android', when='@:1.4') conflicts('+ios', when='@:1.12.0,1.12.2:1.13') conflicts('+ios', when='platform=linux', msg='iOS support only available on macOS') conflicts('+ios', when='platform=cray', msg='iOS support only available on macOS') - conflicts('+ios', when='platform=bgq', msg='iOS support only available on macOS') conflicts('+monolithic', when='@:1.3') conflicts('+numa', when='@:1.12.0,1.12.2:1.13') conflicts('+dynamic_kernels', when='@:1.12.0,1.12.2:1.12.3') diff --git a/var/spack/repos/builtin/packages/py-torch-geometric/package.py b/var/spack/repos/builtin/packages/py-torch-geometric/package.py new file mode 100644 index 0000000000..84d633c261 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-torch-geometric/package.py @@ -0,0 +1,39 @@ +# 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) + + +class PyTorchGeometric(PythonPackage): + """PyTorch Geometric (PyG) is a geometric deep learning extension + library for PyTorch. It consists of various methods for deep + learning on graphs and other irregular structures, also known as + geometric deep learning, from a variety of published papers. In + addition, it consists of an easy-to-use mini-batch loader for many + small and single giant graphs, multi gpu-support, a large number + of common benchmark datasets (based on simple interfaces to create + your own), and helpful transforms, both for learning on arbitrary + graphs as well as on 3D meshes or point clouds.""" + + homepage = "https://github.com/rusty1s/pytorch_geometric" + url = "https://github.com/rusty1s/pytorch_geometric/archive/1.6.0.tar.gz" + + version('1.6.0', sha256='7d5231cdcc2ebd4444f406cbf1537eb49bf90ab6f446eaf1b7af5cdbe105f3c9') + + depends_on('python@3.6:', type=('build', 'run')) + depends_on('py-setuptools', type='build') + depends_on('py-pytest-runner', type='build') + depends_on('py-torch', type=('build', 'run')) + depends_on('py-numpy', type=('build', 'run')) + depends_on('py-tqdm', type=('build', 'run')) + depends_on('py-scipy', type=('build', 'run')) + depends_on('py-networkx', type=('build', 'run')) + depends_on('py-scikit-learn', type=('build', 'run')) + depends_on('py-numba', type=('build', 'run')) + depends_on('py-requests', type=('build', 'run')) + depends_on('py-pandas', type=('build', 'run')) + depends_on('py-rdflib', type=('build', 'run')) + depends_on('py-googledrivedownloader', type=('build', 'run')) + depends_on('py-h5py~mpi', type=('build', 'run')) + depends_on('py-ase', type=('build', 'run')) + depends_on('py-jinja2', 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 1ffeb81b23..1e2978dc54 100644 --- a/var/spack/repos/builtin/packages/py-torch/package.py +++ b/var/spack/repos/builtin/packages/py-torch/package.py @@ -4,6 +4,7 @@ # SPDX-License-Identifier: (Apache-2.0 OR MIT) from spack import * +import os class PyTorch(PythonPackage, CudaPackage): @@ -50,6 +51,7 @@ class PyTorch(PythonPackage, CudaPackage): ] version('master', branch='master', submodules=True) + version('1.6.0', tag='v1.6.0', submodules=True) version('1.5.1', tag='v1.5.1', submodules=True) version('1.5.0', tag='v1.5.0', submodules=True) version('1.4.1', tag='v1.4.1', submodules=True) @@ -68,6 +70,7 @@ class PyTorch(PythonPackage, CudaPackage): variant('cuda', default=True, description='Build with CUDA') variant('cudnn', default=True, description='Enables the cuDNN build') + variant('rocm', default=False, description='Build with ROCm build') variant('magma', default=False, description='Enables the MAGMA build') variant('fbgemm', default=False, description='Enables the FBGEMM build') variant('test', default=False, description='Enables the test build') @@ -112,12 +115,14 @@ class PyTorch(PythonPackage, CudaPackage): conflicts('cuda_arch=none', when='+cuda', msg='Must specify CUDA compute capabilities of your GPU, see ' 'https://developer.nvidia.com/cuda-gpus') + conflicts('+rocm', when='+cuda') # Required dependencies depends_on('cmake@3.5:', type='build') # Use Ninja generator to speed up build times # Automatically used if found depends_on('ninja@1.5:', type='build') + depends_on('python@3.6.1:', when='@1.6:', type=('build', 'run')) depends_on('python@3.5:', when='@1.5:', type=('build', 'run')) depends_on('python@2.7:2.8,3.5:', type=('build', 'run')) depends_on('py-setuptools', type='build') @@ -173,6 +178,9 @@ class PyTorch(PythonPackage, CudaPackage): # Fixes CMake configuration error when XNNPACK is disabled patch('xnnpack.patch', when='@1.5.0:1.5.999') + # Fixes Build error for when ROCm is enable for pytorch-1.5 release + patch('rocm.patch', when='@1.5.0:1.5.999+rocm') + # https://github.com/pytorch/pytorch/pull/37086 # Fixes compilation with Clang 9.0.0 and Apple Clang 11.0.3 patch('https://github.com/pytorch/pytorch/commit/e921cd222a8fbeabf5a3e74e83e0d8dfb01aa8b5.patch', @@ -244,7 +252,9 @@ class PyTorch(PythonPackage, CudaPackage): enable_or_disable('fbgemm') enable_or_disable('test', keyword='BUILD') - + enable_or_disable('rocm') + if '+rocm' in self.spec: + env.set('USE_MKLDNN', 0) if '+miopen' in self.spec: env.set('MIOPEN_LIB_DIR', self.spec['miopen'].libs.directories[0]) env.set('MIOPEN_INCLUDE_DIR', self.spec['miopen'].prefix.include) @@ -297,6 +307,11 @@ class PyTorch(PythonPackage, CudaPackage): enable_or_disable('zstd', newer=True) enable_or_disable('tbb', newer=True) + @run_before('install') + def build_amd(self): + if '+rocm' in self.spec: + python(os.path.join('tools', 'amd_build', 'build_amd.py')) + def install_test(self): with working_dir('test'): python('run_test.py') diff --git a/var/spack/repos/builtin/packages/py-torch/rocm.patch b/var/spack/repos/builtin/packages/py-torch/rocm.patch new file mode 100644 index 0000000000..b50cc7e159 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-torch/rocm.patch @@ -0,0 +1,98 @@ +diff --git a/aten/src/ATen/cuda/nvrtc_stub/ATenNVRTC.h b/aten/src/ATen/cuda/nvrtc_stub/ATenNVRTC.h +index 9cd678dfb4cc7..4630465115c7c 100644 +--- a/aten/src/ATen/cuda/nvrtc_stub/ATenNVRTC.h ++++ b/aten/src/ATen/cuda/nvrtc_stub/ATenNVRTC.h +@@ -67,6 +67,14 @@ namespace at { namespace cuda { + // + // HIP doesn't have + // cuGetErrorString (maps to non-functional hipGetErrorString___) ++// ++// HIP from ROCm 3.5 on renamed hipOccupancyMaxActiveBlocksPerMultiprocessor ++// to hipModuleOccupancyMaxActiveBlocksPerMultiprocessor. ++#if HIP_VERSION < 305 ++#define HIPOCCUPANCYMAXACTIVEBLOCKSPERMULTIPROCESSOR hipOccupancyMaxActiveBlocksPerMultiprocessor ++#else ++#define HIPOCCUPANCYMAXACTIVEBLOCKSPERMULTIPROCESSOR cuOccupancyMaxActiveBlocksPerMultiprocessor ++#endif + + #define AT_FORALL_NVRTC(_) \ + _(nvrtcVersion) \ +@@ -76,7 +84,7 @@ namespace at { namespace cuda { + _(nvrtcGetPTX) \ + _(cuModuleLoadData) \ + _(cuModuleGetFunction) \ +- _(cuOccupancyMaxActiveBlocksPerMultiprocessor) \ ++ _(HIPOCCUPANCYMAXACTIVEBLOCKSPERMULTIPROCESSOR)\ + _(nvrtcGetErrorString) \ + _(nvrtcGetProgramLogSize) \ + _(nvrtcGetProgramLog) \ +diff --git a/aten/src/ATen/native/cuda/SoftMax.cu b/aten/src/ATen/native/cuda/SoftMax.cu +index da1995123ecfc..f935eb4ef3d0e 100644 +--- a/aten/src/ATen/native/cuda/SoftMax.cu ++++ b/aten/src/ATen/native/cuda/SoftMax.cu +@@ -127,8 +127,8 @@ void SpatialSoftMax_getLaunchSizes( + uint32_t block_threads = block.x * block.y; + smem_size = block.x == 1 ? 0 : block_threads * sizeof(accscalar_t); + int max_active_blocks; +-#ifdef __HIP_PLATFORM_HCC__ +- // XXX HIP function signature is not compatible yet. ++#if defined(__HIP_PLATFORM_HCC__) && HIP_VERSION < 305 ++ // HIP function signature is not compatible yet. + uint32_t max_blocks; + cudaOccupancyMaxActiveBlocksPerMultiprocessor(&max_blocks, + k, block_threads, smem_size); +diff --git a/torch/csrc/jit/codegen/fuser/cuda/fused_kernel.cpp b/torch/csrc/jit/codegen/fuser/cuda/fused_kernel.cpp +index 5586e49919727..27315ee475277 100644 +--- a/torch/csrc/jit/codegen/fuser/cuda/fused_kernel.cpp ++++ b/torch/csrc/jit/codegen/fuser/cuda/fused_kernel.cpp +@@ -140,10 +140,10 @@ FusedKernelCUDA::FusedKernelCUDA( + nvrtc().cuModuleGetFunction(&function_, module_, name_.c_str())); + + // Computes max blocks +-#ifdef __HIP_PLATFORM_HCC__ +- // XXX HIP function signature is not compatible yet ++#if defined(__HIP_PLATFORM_HCC__) && HIP_VERSION < 305 ++ // HIP function signature is not compatible yet + uint32_t max_blocks; +- AT_CUDA_DRIVER_CHECK(nvrtc().cuOccupancyMaxActiveBlocksPerMultiprocessor( ++ AT_CUDA_DRIVER_CHECK(nvrtc().hipOccupancyMaxActiveBlocksPerMultiprocessor( + &max_blocks, function_, 128, 0)); + maxBlocks_ = max_blocks; + #else +diff --git a/torch/utils/hipify/cuda_to_hip_mappings.py b/torch/utils/hipify/cuda_to_hip_mappings.py +index 7e21363cbe6af..26f269d92ae38 100644 +--- a/torch/utils/hipify/cuda_to_hip_mappings.py ++++ b/torch/utils/hipify/cuda_to_hip_mappings.py +@@ -2890,7 +2890,7 @@ + ( + "cuOccupancyMaxActiveBlocksPerMultiprocessor", + ( +- "hipOccupancyMaxActiveBlocksPerMultiprocessor", ++ "hipModuleOccupancyMaxActiveBlocksPerMultiprocessor", + CONV_OCCUPANCY, + API_DRIVER, + ), +@@ -2898,7 +2898,7 @@ + ( + "cuOccupancyMaxActiveBlocksPerMultiprocessorWithFlags", + ( +- "hipOccupancyMaxActiveBlocksPerMultiprocessorWithFlags", ++ "hipModuleOccupancyMaxActiveBlocksPerMultiprocessorWithFlags", + CONV_OCCUPANCY, + API_DRIVER, + HIP_UNSUPPORTED, +@@ -2906,12 +2906,12 @@ + ), + ( + "cuOccupancyMaxPotentialBlockSize", +- ("hipOccupancyMaxPotentialBlockSize", CONV_OCCUPANCY, API_DRIVER), ++ ("hipModuleOccupancyMaxPotentialBlockSize", CONV_OCCUPANCY, API_DRIVER), + ), + ( + "cuOccupancyMaxPotentialBlockSizeWithFlags", + ( +- "hipOccupancyMaxPotentialBlockSizeWithFlags", ++ "hipModuleOccupancyMaxPotentialBlockSizeWithFlags", + CONV_OCCUPANCY, + API_DRIVER, + HIP_UNSUPPORTED, diff --git a/var/spack/repos/builtin/packages/py-torchvision/package.py b/var/spack/repos/builtin/packages/py-torchvision/package.py index 4e40117c8d..c94f06ef6f 100644 --- a/var/spack/repos/builtin/packages/py-torchvision/package.py +++ b/var/spack/repos/builtin/packages/py-torchvision/package.py @@ -11,7 +11,7 @@ class PyTorchvision(PythonPackage): architectures, and common image transformations for computer vision.""" homepage = "https://github.com/pytorch/vision" - url = "https://github.com/pytorch/vision/archive/v0.6.1.tar.gz" + url = "https://github.com/pytorch/vision/archive/v0.7.0.tar.gz" maintainers = ['adamjstewart'] import_modules = [ @@ -21,6 +21,7 @@ class PyTorchvision(PythonPackage): 'torchvision.models.detection' ] + version('0.7.0', sha256='fa0a6f44a50451115d1499b3f2aa597e0092a07afce1068750260fa7dd2c85cb') version('0.6.1', sha256='8173680a976c833640ecbd0d7e6f0a11047bf8833433e2147180efc905e48656') version('0.6.0', sha256='02de11b3abe6882de4032ce86dab9c7794cbc84369b44d04e667486580f0f1f7') version('0.5.0', sha256='eb9afc93df3d174d975ee0914057a9522f5272310b4d56c150b955c287a4d74d') @@ -29,16 +30,36 @@ class PyTorchvision(PythonPackage): version('0.4.0', sha256='c270d74e568bad4559fed4544f6dd1e22e2eb1c60b088e04a5bd5787c4150589') version('0.3.0', sha256='c205f0618c268c6ed2f8abb869ef6eb83e5339c1336c243ad321a2f2a85195f0') - depends_on('python@3:', when='@0.6:', type=('build', 'run')) + # See README.rst + depends_on('python@3.6:', when='@0.7:', type=('build', 'run')) + depends_on('python@3.5:', when='@0.6.0:0.6.999', type=('build', 'run')) + depends_on('python@2.7:2.8,3.5:3.8', when='@0.5.0', type=('build', 'run')) + depends_on('python@2.7:2.8,3.5:3.7', when='@:0.4', type=('build', 'run')) + depends_on('py-setuptools', type='build') depends_on('py-numpy', type=('build', 'run')) depends_on('py-six', when='@:0.5', type=('build', 'run')) - depends_on('py-torch@1.4:', when='@0.6:', type=('build', 'link', 'run')) - depends_on('py-torch@1.2:', when='@0.4:', type=('build', 'link', 'run')) - depends_on('py-torch@1.1:', type=('build', 'link', 'run')) + + # See README.rst + depends_on('py-torch@1.6.0', when='@0.7.0', type=('build', 'link', 'run')) + depends_on('py-torch@1.5.0', when='@0.6.0', type=('build', 'link', 'run')) + depends_on('py-torch@1.4.0', when='@0.5.0', type=('build', 'link', 'run')) + depends_on('py-torch@1.3.1', when='@0.4.2', type=('build', 'link', 'run')) + depends_on('py-torch@1.3.0', when='@0.4.1', type=('build', 'link', 'run')) + depends_on('py-torch@1.2.0', when='@0.4.0', type=('build', 'link', 'run')) + depends_on('py-torch@1.1.0', when='@0.3.0', type=('build', 'link', 'run')) + depends_on('py-torch@:1.0.1', when='@0.2.2', type=('build', 'link', 'run')) + + # TODO: Torchvision supports the following backends: + # * pillow + # * pillow-simd + # * accimage + # * libpng + # * libjpeg + # https://github.com/pytorch/vision/issues/1712 - depends_on('py-pillow@4.1.1:6', when='@:0.4', type=('build', 'run')) # or py-pillow-simd - depends_on('py-pillow@4.1.1:', when='@0.5:', type=('build', 'run')) # or py-pillow-simd + depends_on('py-pillow@4.1.1:6', when='@:0.4', type=('build', 'run')) + depends_on('py-pillow@4.1.1:', when='@0.5:', type=('build', 'run')) # Many of the datasets require additional dependencies to use. # These can be installed after the fact. diff --git a/var/spack/repos/builtin/packages/py-uvw/package.py b/var/spack/repos/builtin/packages/py-uvw/package.py new file mode 100644 index 0000000000..0a87855fab --- /dev/null +++ b/var/spack/repos/builtin/packages/py-uvw/package.py @@ -0,0 +1,28 @@ +# 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 PyUvw(PythonPackage): + """ + UVW is a small utility library to write VTK files + from data contained in Numpy arrays. + """ + + homepage = "https://github.com/prs513rosewood/uvw" + url = "https://pypi.io/packages/source/u/uvw/uvw-0.3.1.tar.gz" + + maintainers = ['prs513rosewood'] + + version('0.3.1', sha256='31e3347ec342bd5381091f3c782ea1a1bfa4709d1de41cd700509e0b813f2265') + version('0.0.7', sha256='4bcb77cf9655f0dcd5f38f024210ac5ad7ebc6fcfb45f898468d29a927bcb7a5') + + variant('mpi', description="Use parallel writers", default=False) + + depends_on('python@3:', type=('build', 'run')) + depends_on('py-setuptools', type='build') + depends_on('py-numpy', type=('build', 'run')) + depends_on('py-mpi4py', type=('build', 'run'), when="+mpi") diff --git a/var/spack/repos/builtin/packages/py-vsts-cd-manager/package.py b/var/spack/repos/builtin/packages/py-vsts-cd-manager/package.py new file mode 100644 index 0000000000..0e44620e69 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-vsts-cd-manager/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) + + +class PyVstsCdManager(PythonPackage): + """Python wrapper around some of the VSTS APIs.""" + + homepage = "https://github.com/microsoft/vsts-cd-manager" + url = "https://pypi.io/packages/source/v/vsts-cd-manager/vsts-cd-manager-1.0.2.tar.gz" + + version('1.0.2', sha256='0bb09059cd553e1c206e92ef324cb0dcf92334846d646c44c684f6256b86447b') + + depends_on('py-setuptools', type='build') + depends_on('py-msrest@0.2.0:', type=('build', 'run')) + depends_on('py-mock', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-vsts/package.py b/var/spack/repos/builtin/packages/py-vsts/package.py new file mode 100644 index 0000000000..ed597e3cbd --- /dev/null +++ b/var/spack/repos/builtin/packages/py-vsts/package.py @@ -0,0 +1,16 @@ +# 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) + + +class PyVsts(PythonPackage): + """Python wrapper around the VSTS APIs.""" + + homepage = "https://github.com/Microsoft/vsts-python-api" + url = "https://pypi.io/packages/source/v/vsts/vsts-0.1.25.tar.gz" + + version('0.1.25', sha256='da179160121f5b38be061dbff29cd2b60d5d029b2207102454d77a7114e64f97') + + depends_on('py-setuptools', type='build') + depends_on('py-msrest@0.6.0:0.6.999', type=('build', 'run')) 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 75ce5e69cc..c55df5e899 100644 --- a/var/spack/repos/builtin/packages/py-websocket-client/package.py +++ b/var/spack/repos/builtin/packages/py-websocket-client/package.py @@ -11,6 +11,7 @@ class PyWebsocketClient(PythonPackage): url = "https://pypi.io/packages/source/w/websocket_client/websocket_client-0.57.0.tar.gz" version('0.57.0', sha256='d735b91d6d1692a6a181f2a8c9e0238e5f6373356f561bb9dc4c7af36f452010') + version('0.56.0', sha256='1fd5520878b68b84b5748bb30e592b10d0a91529d5383f74f4964e72b297fd3a') depends_on('python@2.6:2.8,3.4:', type=('build', 'run')) depends_on('py-setuptools', type='build') diff --git a/var/spack/repos/builtin/packages/py-websockets/package.py b/var/spack/repos/builtin/packages/py-websockets/package.py new file mode 100644 index 0000000000..891678934c --- /dev/null +++ b/var/spack/repos/builtin/packages/py-websockets/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) + + +class PyWebsockets(PythonPackage): + """websockets is a library for building WebSocket servers and + clients in Python with a focus on correctness and simplicity.""" + + homepage = "https://github.com/aaugustin/websockets" + url = "https://github.com/aaugustin/websockets/archive/8.1.tar.gz" + + version('8.1', sha256='c19ce96ad5f7606127d3915364144df93fb865a215784b06048fae3d39364f14') + + depends_on('py-setuptools', type='build') + depends_on('python@3.6.1:', 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 476b7b9e07..846d315650 100644 --- a/var/spack/repos/builtin/packages/py-wheel/package.py +++ b/var/spack/repos/builtin/packages/py-wheel/package.py @@ -9,16 +9,21 @@ from spack import * class PyWheel(PythonPackage): """A built-package format for Python.""" - homepage = "https://pypi.python.org/pypi/wheel" - url = "https://pypi.io/packages/source/w/wheel/wheel-0.29.0.tar.gz" + homepage = "https://github.com/pypa/wheel" + url = "https://pypi.io/packages/source/w/wheel/wheel-0.34.2.tar.gz" + version('0.34.2', sha256='8788e9155fe14f54164c1b9eb0a319d98ef02c160725587ad60f14ddc57b6f96') version('0.33.4', sha256='62fcfa03d45b5b722539ccbc07b190e4bfff4bb9e3a4d470dd9f6a0981002565') version('0.33.1', sha256='66a8fd76f28977bb664b098372daef2b27f60dc4d1688cfab7b37a09448f0e9d') version('0.32.3', sha256='029703bf514e16c8271c3821806a1c171220cc5bdd325cbf4e7da1e056a01db6') version('0.29.0', sha256='1ebb8ad7e26b448e9caa4773d2357849bf80ff9e313964bcaf79cbf0201a1648') version('0.26.0', sha256='eaad353805c180a47545a256e6508835b65a8e830ba1093ed8162f19a50a530c') + depends_on('python@2.7:2.8,3.5:', when='@0.34:', type=('build', 'run')) + depends_on('python@2.7:2.8,3.4:', when='@0.30:', type=('build', 'run')) + depends_on('python@2.6:2.8,3.2:', type=('build', 'run')) + depends_on('py-setuptools@40.9.0:', when='@0.34.1:', type=('build', 'run')) depends_on('py-setuptools', type=('build', 'run')) - depends_on('python@2.7:2.8,3.4:', type=('build', 'run')) + depends_on('py-setuptools-scm@3.4:', when='@0.34.0', type='build') depends_on('py-pytest@3.0.0:', type='test') depends_on('py-pytest-cov', type='test') diff --git a/var/spack/repos/builtin/packages/py-yarl/package.py b/var/spack/repos/builtin/packages/py-yarl/package.py new file mode 100644 index 0000000000..3b33ac4776 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-yarl/package.py @@ -0,0 +1,28 @@ +# 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) + + +class PyYarl(PythonPackage): + """The module provides handy URL class for URL parsing and changing.""" + + homepage = "https://github.com/aio-libs/yarl" + url = "https://github.com/aio-libs/yarl/archive/v1.4.2.tar.gz" + + version('1.4.2', sha256='a400eb3f54f7596eeaba8100a8fa3d72135195423c52808dc54a43c6b100b192') + + depends_on('python@3.5:', type=('build', 'run')) + depends_on('py-setuptools', type='build') + depends_on('py-cython', type='build') + depends_on('py-multidict@4.0:', type=('build', 'run')) + depends_on('py-idna@2.0:', type=('build', 'run')) + + @run_before('build') + def fix_cython(self): + cython = self.spec['py-cython'].command + cython('-3', + '-o', + 'yarl/_quoting.c', + 'yarl/_quoting.pyx', + '-Iyarl') diff --git a/var/spack/repos/builtin/packages/py-yolk3k/package.py b/var/spack/repos/builtin/packages/py-yolk3k/package.py new file mode 100644 index 0000000000..d744f93f94 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-yolk3k/package.py @@ -0,0 +1,22 @@ +# 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 PyYolk3k(PythonPackage): + """Yolk is a Python tool for obtaining information about installed Python + packages and querying packages avilable on PyPI (Python Package Index). + Yolk3k is a fork of the original yolk. `yolk3k` add Python 3 support and + adds additional features.""" + + homepage = "https://github.com/myint/yolk" + url = "https://pypi.io/packages/source/y/yolk3k/yolk3k-0.9.tar.gz" + + version('0.9', sha256='cf8731dd0a9f7ef50b5dc253fe0174383e3fed295a653672aa918c059eef86ae') + + depends_on('py-pygments') + depends_on('py-jinja2') + depends_on('py-docutils') diff --git a/var/spack/repos/builtin/packages/pythia8/package.py b/var/spack/repos/builtin/packages/pythia8/package.py index 572d65922b..8660fc8b01 100644 --- a/var/spack/repos/builtin/packages/pythia8/package.py +++ b/var/spack/repos/builtin/packages/pythia8/package.py @@ -15,6 +15,9 @@ class Pythia8(AutotoolsPackage): homepage = "http://home.thep.lu.se/Pythia/" url = "http://home.thep.lu.se/~torbjorn/pythia8/pythia8244.tgz" + maintainers = ['ChristianTackeGSI'] + + version('8302', sha256='7372e4cc6f48a074e6b7bc426b040f218ec4a64b0a55e89da6af56933b5f5085') version('8301', sha256='51382768eb9aafb97870dca1909516422297b64ef6a6b94659259b3e4afa7f06') version('8244', sha256='e34880f999daf19cdd893a187123927ba77d1bf851e30f6ea9ec89591f4c92ca', preferred=True) version('8240', sha256='d27495d8ca7707d846f8c026ab695123c7c78c7860f04e2c002e483080418d8d') diff --git a/var/spack/repos/builtin/packages/python/fj-rpath-2.3.patch b/var/spack/repos/builtin/packages/python/fj-rpath-2.3.patch new file mode 100644 index 0000000000..2ebda4cc12 --- /dev/null +++ b/var/spack/repos/builtin/packages/python/fj-rpath-2.3.patch @@ -0,0 +1,12 @@ +--- a/Lib/distutils/unixccompiler.py 2003-06-02 05:27:40.000000000 +1000 ++++ b/Lib/distutils/unixccompiler.py 2017-05-13 13:52:45.554213616 +1000 +@@ -208,7 +208,8 @@ + elif compiler[:3] == "gcc" or compiler[:3] == "g++": + return "-Wl,-R" + dir + else: +- return "-R" + dir ++ # Patched by spack to use GNU ld syntax by default: ++ return "-Wl,--enable-new-dtags,-R" + dir + + def library_option(self, lib): + return "-l" + lib diff --git a/var/spack/repos/builtin/packages/python/fj-rpath-3.1.patch b/var/spack/repos/builtin/packages/python/fj-rpath-3.1.patch new file mode 100644 index 0000000000..d25b58da77 --- /dev/null +++ b/var/spack/repos/builtin/packages/python/fj-rpath-3.1.patch @@ -0,0 +1,13 @@ +--- a/Lib/distutils/unixccompiler.py 2009-05-09 21:55:12.000000000 +1000 ++++ b/Lib/distutils/unixccompiler.py 2017-05-13 14:30:18.077518999 +1000 +@@ -215,7 +211,8 @@ + return "-L" + dir + + def _is_gcc(self, compiler_name): +- return "gcc" in compiler_name or "g++" in compiler_name ++ return "gcc" in compiler_name or "g++" in compiler_name \ ++ or "fcc" in compiler_name or "FCC" in compiler_name + + def runtime_library_dir_option(self, dir): + # XXX Hackish, at the very least. See Python bug #445902: + diff --git a/var/spack/repos/builtin/packages/python/package.py b/var/spack/repos/builtin/packages/python/package.py index bca6162c64..16bd621504 100644 --- a/var/spack/repos/builtin/packages/python/package.py +++ b/var/spack/repos/builtin/packages/python/package.py @@ -31,11 +31,14 @@ class Python(AutotoolsPackage): maintainers = ['adamjstewart'] + version('3.8.5', sha256='015115023c382eb6ab83d512762fe3c5502fa0c6c52ffebc4831c4e1a06ffc49') + version('3.8.4', sha256='32c4d9817ef11793da4d0d95b3191c4db81d2e45544614e8449255ca9ae3cc18') version('3.8.3', sha256='6af6d4d2e010f9655518d0fc6738c7ff7069f10a4d2fbd55509e467f092a8b90') version('3.8.2', sha256='e634a7a74776c2b89516b2e013dda1728c89c8149b9863b8cea21946daf9d561') version('3.8.1', sha256='c7cfa39a43b994621b245e029769e9126caa2a93571cee2e743b213cceac35fb') version('3.8.0', sha256='f1069ad3cae8e7ec467aa98a6565a62a48ef196cb8f1455a245a08db5e1792df') - version('3.7.7', sha256='8c8be91cd2648a1a0c251f04ea0bb4c2a5570feb9c45eaaa2241c785585b475a', preferred=True) + version('3.7.8', sha256='0e25835614dc221e3ecea5831b38fa90788b5389b99b675a751414c858789ab0', preferred=True) + version('3.7.7', sha256='8c8be91cd2648a1a0c251f04ea0bb4c2a5570feb9c45eaaa2241c785585b475a') version('3.7.6', sha256='aeee681c235ad336af116f08ab6563361a0c81c537072c1b309d6e4050aa2114') version('3.7.5', sha256='8ecc681ea0600bbfb366f2b173f727b205bb825d93d2f0b286bc4e58d37693da') version('3.7.4', sha256='d63e63e14e6d29e17490abbe6f7d17afb3db182dbd801229f14e55f4157c4ba3') @@ -43,6 +46,9 @@ class Python(AutotoolsPackage): version('3.7.2', sha256='f09d83c773b9cc72421abba2c317e4e6e05d919f9bcf34468e192b6a6c8e328d') version('3.7.1', sha256='36c1b81ac29d0f8341f727ef40864d99d8206897be96be73dc34d4739c9c9f06') version('3.7.0', sha256='85bb9feb6863e04fb1700b018d9d42d1caac178559ffa453d7e6a436e259fd0d') + version('3.6.11', sha256='96621902f89746fffc22f39749c07da7c2917b232e72352e6837d41850f7b90c') + version('3.6.10', sha256='7034dd7cba98d4f94c74f9edd7345bac71c8814c41672c64d9044fa2f96f334d') + version('3.6.9', sha256='47fc92a1dcb946b9ed0abc311d3767b7215c54e655b17fd1d3f9b538195525aa') version('3.6.8', sha256='7f5b1f08b3b0a595387ef6c64c85b1b13b38abef0dd871835ee923262e4f32f0') version('3.6.7', sha256='b7c36f7ed8f7143b2c46153b7332db2227669f583ea0cce753facf549d1a4239') version('3.6.6', sha256='7d56dadf6c7d92a238702389e80cfe66fbfae73e584189ed6f89c75bbf3eda58') @@ -52,6 +58,7 @@ class Python(AutotoolsPackage): version('3.6.2', sha256='7919489310a5f17f7acbab64d731e46dca0702874840dadce8bd4b2b3b8e7a82') version('3.6.1', sha256='aa50b0143df7c89ce91be020fe41382613a817354b33acdc6641b44f8ced3828') version('3.6.0', sha256='aa472515800d25a3739833f76ca3735d9f4b2fe77c3cb21f69275e0cce30cb2b') + version('3.5.8', sha256='18c88dfd260147bc7247e6356010e5d4916dfbfc480f6434917f88e61228177a') version('3.5.7', sha256='542d94920a2a06a471a73b51614805ad65366af98145b0369bc374cf248b521b') version('3.5.2', sha256='1524b840e42cf3b909e8f8df67c1724012c7dc7f9d076d4feef2d3eff031e8a0') version('3.5.1', sha256='687e067d9f391da645423c7eda8205bae9d35edc0c76ef5218dcbe4cc770d0d7') @@ -179,6 +186,10 @@ class Python(AutotoolsPackage): patch('cray-rpath-2.3.patch', when='@2.3:3.0.1 platform=cray') patch('cray-rpath-3.1.patch', when='@3.1:3.99 platform=cray') + # Ensure that distutils chooses correct compiler option for RPATH on fj: + patch('fj-rpath-2.3.patch', when='@2.3:3.0.1 %fj') + patch('fj-rpath-3.1.patch', when='@3.1:3.99 %fj') + # Fixes an alignment problem with more aggressive optimization in gcc8 # https://github.com/python/cpython/commit/0b91f8a668201fc58fa732b8acc496caedfdbae0 patch('gcc-8-2.7.14.patch', when='@2.7.14 %gcc@8:') @@ -273,7 +284,7 @@ class Python(AutotoolsPackage): # C/C++ source, and patches are required to enable building for these # modules. All Python versions without a viable patch are installed # with a warning message about this potentially erroneous behavior. - if not spec.satisfies('@2.7.8:2.7.18,3.6.8,3.7.2:3.8.3'): + if not spec.satisfies('@2.7.8:2.7.18,3.6.8,3.7.2:3.8'): tty.warn(('Python v{0} does not have the C++ "distutils" patch; ' 'errors may occur when installing Python modules w/ ' 'mixed C/C++ source files.').format(self.version)) diff --git a/var/spack/repos/builtin/packages/q-e-sirius/package.py b/var/spack/repos/builtin/packages/q-e-sirius/package.py new file mode 100644 index 0000000000..7eed92f5d4 --- /dev/null +++ b/var/spack/repos/builtin/packages/q-e-sirius/package.py @@ -0,0 +1,317 @@ +# 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) +# adapted from official quantum espresso package + +import glob +import os.path + +from spack import * + + +class QESirius(Package): + """SIRIUS enabled fork of QuantumESPRESSO. """ + + homepage = 'https://github.com/electronic-structure/q-e-sirius/' + url = 'https://github.com/electronic-structure/q-e-sirius/archive/v6.5-rc4-sirius.tar.gz' + git = 'https://github.com/electronic-structure/q-e-sirius.git' + + maintainers = ['simonpintarelli'] + + version('develop', branch='ristretto') + + version('6.5-rc2-sirius', sha256='460b678406eec36e4ee828c027929cf8720c3965a85c20084c53398b123c9ae9') + version('6.5-rc3-sirius', sha256='1bfb8c1bba815b5ab2d733f51a8f9aa7b079f2859e6f14e4dcda708ebf172b02') + version('6.5-rc4-sirius', sha256='be5529d65e4b301d6a6d1235e8d88277171c1732768bf1cf0c7fdeae154c79f1') + + variant('mpi', default=True, description='Builds with mpi support') + variant('openmp', default=True, description='Enables openMP support') + variant('scalapack', default=True, description='Enables scalapack support') + variant('elpa', default=False, description='Uses elpa as an eigenvalue solver') + + # 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 + ) + + # Enables building Electron-phonon Wannier 'epw.x' executable + # http://epw.org.uk/Main/About + variant('epw', default=False, + description='Builds Electron-phonon Wannier executable') + + # Apply upstream patches by default. Variant useful for 3rd party + # patches which are incompatible with upstream patches + desc = 'Apply recommended upstream patches. May need to be set ' + 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') + + # Dependencies + depends_on('blas') + depends_on('lapack') + depends_on('fftw-api@3') + depends_on('sirius+fortran') + 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 + # package for the default variant. This is only for hdf5=parallel variant. + # Support, for hdf5=serial was introduced in 6.4.1 but required a patch + # for the serial (no MPI) case. This patch was to work around an issue + # that only manifested itself inside the Spack environment. + conflicts( + 'hdf5=parallel', + when='@:6.0', + msg='parallel HDF5 support only in QE 6.1.0 and later' + ) + + conflicts( + 'hdf5=serial', + when='@:6.4.0', + msg='serial HDF5 support only in QE 6.4.1 and later' + ) + + conflicts( + 'hdf5=parallel', + when='~mpi', + 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') + + # 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' + ) + + # 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') + + # 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 + conflicts('+epw', when='~mpi', msg='EPW needs MPI') + + # EPW doesn't gets along well with OpenMPI 2.x.x + conflicts('+epw', when='^openmpi@2.0.0:2.999.999', + msg='OpenMPI version 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') + + # Spurious problems running in parallel the Makefile + # generated by the configure + parallel = False + + def install(self, spec, prefix): + + prefix_path = prefix.bin if '@:5.4.0' in spec else prefix + options = ['-prefix={0}'.format(prefix_path)] + + sirius = spec['sirius'] + + options.append('LIBS={0}'.format(sirius.libs[0])) + options.append('LD_LIBS={0}'.format(sirius.libs[0])) + + options.append('--disable-xml') + + # QE autoconf compiler variables has some limitations: + # 1. There is no explicit MPICC variable so we must re-purpose + # CC for the case of MPI. + # 2. F90 variable is set to be consistent with MPIF90 wrapper + # 3. If an absolute path for F90 is set, the build system breaks. + # + # Thus, due to 2. and 3. the F90 variable is not explictly set + # because it would be mostly pointless and could lead to erroneous + # behaviour. + if '+mpi' in spec: + mpi = spec['mpi'] + options.append('--enable-parallel=yes') + options.append('MPIF90={0}'.format(mpi.mpifc)) + options.append('CC={0}'.format(mpi.mpicc)) + else: + options.append('--enable-parallel=no') + options.append('CC={0}'.format(spack_cc)) + + options.append('F77={0}'.format(spack_f77)) + options.append('F90={0}'.format(spack_fc)) + + header_dir = sirius.headers.directories[0] + f90flags = 'F90FLAGS=-cpp -I {0}/sirius'.format(header_dir) + + if self.spec.satisfies('%gcc@10:'): + f90flags += '-fallow-argument-mismatch' + + options.append(f90flags) + + if '+openmp' in spec: + options.append('--enable-openmp') + + # QE external BLAS, FFT, SCALAPACK detection is a bit tricky. + # More predictable to pass in the correct link line to QE. + # If external detection of BLAS, LAPACK and FFT fails, QE + # is supposed to revert to internal versions of these libraries + # instead -- but more likely it will pickup versions of these + # libraries found in its the system path, e.g. Red Hat or + # Ubuntu's FFTW3 package. + + # FFT + # FFT detection gets derailed if you pass into the CPPFLAGS, instead + # you need to pass it in the FFTW_INCLUDE and FFT_LIBS directory. + # QE supports an internal FFTW2, but only an external FFTW3 interface. + + if '^mkl' in spec: + # A seperate FFT library is not needed when linking against MKL + options.append( + 'FFTW_INCLUDE={0}'.format(join_path(env['MKLROOT'], + 'include/fftw'))) + if '^fftw@3:' in spec: + fftw_prefix = spec['fftw'].prefix + options.append('FFTW_INCLUDE={0}'.format(fftw_prefix.include)) + fftw_ld_flags = spec['fftw'].libs.ld_flags + options.append('FFT_LIBS={0}'.format(fftw_ld_flags)) + + # External BLAS and LAPACK requires the correct link line into + # BLAS_LIBS, do no use LAPACK_LIBS as the autoconf scripts indicate + # that this variable is largely ignored/obsolete. + + # For many Spack packages, lapack.libs = blas.libs, hence it will + # appear twice in in link line but this is harmless + lapack_blas = spec['lapack'].libs + spec['blas'].libs + + # qe-6.5 fails to detect MKL for FFT if BLAS_LIBS is set due to + # an unfortunate upsteam change in their autoconf/configure: + # - qe-6.5/install/m4/x_ac_qe_blas.m4 only sets 'have_blas' + # but no 'have_mkl' if BLAS_LIBS is set (which seems to be o.k.) + # - however, qe-6.5/install/m4/x_ac_qe_fft.m4 in 6.5 unfortunately + # relies on x_ac_qe_blas.m4 to detect MKL and set 'have_mkl' + # - qe-5.4 up to 6.4.1 had a different logic and worked fine with + # BLAS_LIBS being set + # However, MKL is correctly picked up by qe-6.5 for BLAS and FFT if + # MKLROOT is set (which SPACK does automatically for ^mkl) + if not ('quantum-espresso@6.5' in spec and '^mkl' in spec): + options.append('BLAS_LIBS={0}'.format(lapack_blas.ld_flags)) + + if '+scalapack' in spec: + scalapack_option = 'intel' if '^mkl' in spec else 'yes' + options.append('--with-scalapack={0}'.format(scalapack_option)) + + if '+elpa' in spec: + + # Spec for elpa + elpa = spec['elpa'] + + # Compute the include directory from there: versions + # of espresso prior to 6.1 requires -I in front of the directory + elpa_include = '' if '@6.1:' in spec else '-I' + elpa_include += os.path.join( + elpa.headers.directories[0], + 'modules' + ) + + options.extend([ + '--with-elpa-include={0}'.format(elpa_include), + '--with-elpa-lib={0}'.format(elpa.libs[0]) + ]) + + if spec.variants['hdf5'].value != 'none': + options.append('--with-hdf5={0}'.format(spec['hdf5'].prefix)) + if spec.satisfies('@6.4.1,6.5'): + options.extend([ + '--with-hdf5-include={0}'.format( + spec['hdf5'].headers.directories[0] + ), + '--with-hdf5-libs={0}'.format( + spec['hdf5:hl,fortran'].libs.ld_flags + ) + ]) + + configure(*options) + + # Filter file must be applied after configure executes + # QE 6.1.0 to QE 6.4 have `-L` missing in front of zlib library + # This issue is backported through an internal patch in 6.4.1, but + # can't be applied to the '+qmcpack' variant + if spec.variants['hdf5'].value != 'none': + if (spec.satisfies('@6.1.0:6.4.0') or + (spec.satisfies('@6.4.1') and '+qmcpack' in spec)): + make_inc = join_path(self.stage.source_path, 'make.inc') + zlib_libs = spec['zlib'].prefix.lib + ' -lz' + filter_file( + zlib_libs, format(spec['zlib'].libs.ld_flags), make_inc + ) + + if '+epw' in spec: + make('all', 'epw') + else: + make('all') + + if 'platform=darwin' in spec: + mkdirp(prefix.bin) + for filename in glob.glob("bin/*.x"): + install(filename, prefix.bin) + else: + make('install') diff --git a/var/spack/repos/builtin/packages/qhull/package.py b/var/spack/repos/builtin/packages/qhull/package.py index d5ec542ce6..884499fd36 100644 --- a/var/spack/repos/builtin/packages/qhull/package.py +++ b/var/spack/repos/builtin/packages/qhull/package.py @@ -18,12 +18,21 @@ class Qhull(CMakePackage): homepage = "http://www.qhull.org" + version('2020.1', sha256='1ac92a5538f61e297c72aebe4d4ffd731ceb3e6045d6d15faf1c212713798df4', + url="http://www.qhull.org/download/qhull-2020-src-8.0.0.tgz") + version('2019.1', sha256='2b7990558c363076261564f61b74db4d0d73b71869755108a469038c07dc43fb', + url="http://www.qhull.org/download/qhull-2019-src-7.3.2.tgz") version('2015.2', sha256='78b010925c3b577adc3d58278787d7df08f7c8fb02c3490e375eab91bb58a436', url="http://www.qhull.org/download/qhull-2015-src-7.2.0.tgz") - version('2012.1', sha256='a35ecaa610550b7f05c3ce373d89c30cf74b059a69880f03080c556daebcff88', url="http://www.qhull.org/download/qhull-2012.1-src.tgz") patch('qhull-unused-intel-17.02.patch', when='@2015.2') - depends_on('cmake@2.6:', type='build') + depends_on('cmake@3.0:', type='build') + + def flag_handler(self, name, flags): + # See https://github.com/qhull/qhull/issues/65 + if name == 'cxxflags' and self.version == Version('2020.1'): + flags.append(self.compiler.cxx11_flag) + return (flags, None, None) diff --git a/var/spack/repos/builtin/packages/qt/package.py b/var/spack/repos/builtin/packages/qt/package.py index 7e016846ab..17495dda39 100644 --- a/var/spack/repos/builtin/packages/qt/package.py +++ b/var/spack/repos/builtin/packages/qt/package.py @@ -158,6 +158,7 @@ class Qt(Package): # Non-macOS dependencies and special macOS constraints if MACOS_VERSION is None: depends_on("fontconfig", when='freetype=spack') + depends_on("libsm") depends_on("libx11") depends_on("libxcb") depends_on("libxkbcommon") @@ -177,6 +178,7 @@ class Qt(Package): # Mapping for compilers/systems in the QT 'mkspecs' compiler_mapping = {'intel': ('icc',), + 'apple-clang': ('clang-libc++', 'clang'), 'clang': ('clang-libc++', 'clang'), 'gcc': ('g++',)} platform_mapping = {'darwin': 'macx'} @@ -361,7 +363,6 @@ class Qt(Package): @property def common_config_args(self): # incomplete list is here http://doc.qt.io/qt-5/configure-options.html - openssl = self.spec['openssl'] config_args = [ '-prefix', self.prefix, '-v', @@ -387,6 +388,7 @@ class Qt(Package): config_args.append('-no-freetype') if '+ssl' in self.spec: + openssl = self.spec['openssl'] config_args.extend([ '-openssl-linked', openssl.libs.search_flags, diff --git a/var/spack/repos/builtin/packages/quicksilver/package.py b/var/spack/repos/builtin/packages/quicksilver/package.py index ceef9e1bfb..e39a82337d 100644 --- a/var/spack/repos/builtin/packages/quicksilver/package.py +++ b/var/spack/repos/builtin/packages/quicksilver/package.py @@ -14,12 +14,13 @@ class Quicksilver(MakefilePackage): tags = ['proxy-app'] homepage = "https://codesign.llnl.gov/quicksilver.php" - url = "https://github.com/LLNL/Quicksilver" + url = "https://github.com/LLNL/Quicksilver/tarball/V1.0" git = "https://github.com/LLNL/Quicksilver.git" maintainers = ['richards12'] version('master', branch='master') + version('1.0', sha256='83371603b169ec75e41fb358881b7bd498e83597cd251ff9e5c35769ef22c59a') variant('openmp', default=True, description='Build with OpenMP support') variant('mpi', default=True, description='Build with MPI support') diff --git a/var/spack/repos/builtin/packages/r-adegraphics/package.py b/var/spack/repos/builtin/packages/r-adegraphics/package.py new file mode 100644 index 0000000000..d007d6cb97 --- /dev/null +++ b/var/spack/repos/builtin/packages/r-adegraphics/package.py @@ -0,0 +1,29 @@ +# 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 RAdegraphics(RPackage): + """adegraphics: An S4 Lattice-Based Package for the Representation of + Multivariate Data. + + Graphical functionalities for the representation of multivariate data. + It is a complete re-implementation of the functions available in the 'ade4' + package.""" + + homepage = "http://pbil.univ-lyon1.fr/ADE-4" + url = "https://cloud.r-project.org/src/contrib/adegraphics_1.0-15.tar.gz" + list_url = "https://cloud.r-project.org/src/contrib/Archive/adegraphics" + + version('1.0-15', sha256='87bbcd072e9a898955f5ede4315e82365086a50a2887bf5bd2e94bbb4d3f678a') + + depends_on('r@3.0.2:', type=('build', 'run')) + depends_on('r-ade4@1.7-13:', type=('build', 'run')) + depends_on('r-kernsmooth', type=('build', 'run')) + depends_on('r-lattice', type=('build', 'run')) + depends_on('r-latticeextra', type=('build', 'run')) + depends_on('r-rcolorbrewer', type=('build', 'run')) + depends_on('r-sp@1.1-1:', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/r-adephylo/package.py b/var/spack/repos/builtin/packages/r-adephylo/package.py new file mode 100644 index 0000000000..3527a2fb6f --- /dev/null +++ b/var/spack/repos/builtin/packages/r-adephylo/package.py @@ -0,0 +1,24 @@ +# 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 RAdephylo(RPackage): + """adephylo: Exploratory Analyses for the Phylogenetic Comparative Method. + + Multivariate tools to analyze comparative data, i.e. a phylogeny and + some traits measured for each taxa.""" + + homepage = "https://cloud.r-project.org/package=adephylo" + url = "https://cloud.r-project.org/src/contrib/adephylo_1.1-11.tar.gz" + list_url = "https://cloud.r-project.org/src/contrib/Archive/adephylo" + + version('1.1-11', sha256='154bf2645eac4493b85877933b9445442524ca4891aefe4e80c294c398cff61a') + + depends_on('r-ade4@1.7-10:', type=('build', 'run')) + depends_on('r-phylobase', type=('build', 'run')) + depends_on('r-ape', type=('build', 'run')) + depends_on('r-adegenet', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/r-adespatial/package.py b/var/spack/repos/builtin/packages/r-adespatial/package.py new file mode 100644 index 0000000000..aeaaae67f5 --- /dev/null +++ b/var/spack/repos/builtin/packages/r-adespatial/package.py @@ -0,0 +1,32 @@ +# 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 RAdespatial(RPackage): + """adespatial: Multivariate Multiscale Spatial Analysis. + + Tools for the multiscale spatial analysis of multivariate data. Several + methods are based on the use of a spatial weighting matrix and its + eigenvector decomposition (Moran's Eigenvectors Maps, MEM). Several + approaches are described in the review Dray et al (2012) + <doi:10.1890/11-1183.1>.""" + + homepage = "https://cloud.r-project.org/package=adespatial" + url = "https://cloud.r-project.org/src/contrib/adespatial_0.3-8.tar.gz" + list_url = "https://cloud.r-project.org/src/contrib/Archive/adespatial" + + version('0.3-8', sha256='e3fd3209ce3f0a862a0794187e8c884f1697c87c96e569a2f51f252e00022906') + + depends_on('r-ade4@1.7-13:', type=('build', 'run')) + depends_on('r-adegraphics', type=('build', 'run')) + depends_on('r-adephylo', type=('build', 'run')) + depends_on('r-sp', type=('build', 'run')) + depends_on('r-spdep', type=('build', 'run')) + depends_on('r-lattice', type=('build', 'run')) + depends_on('r-mass', type=('build', 'run')) + depends_on('r-shiny', type=('build', 'run')) + depends_on('r-vegan', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/r-biocgenerics/package.py b/var/spack/repos/builtin/packages/r-biocgenerics/package.py index dc403c878e..2bee149fb8 100644 --- a/var/spack/repos/builtin/packages/r-biocgenerics/package.py +++ b/var/spack/repos/builtin/packages/r-biocgenerics/package.py @@ -14,6 +14,7 @@ class RBiocgenerics(RPackage): homepage = "https://bioconductor.org/packages/BiocGenerics" git = "https://git.bioconductor.org/packages/BiocGenerics.git" + version('0.34.0', commit='f7c2020') version('0.30.0', commit='fc7c3af4a5635a30988a062ed09332c13ca1d1a8') version('0.28.0', commit='041fc496504f2ab1d4d863fffb23372db214394b') version('0.26.0', commit='5b2a6df639e48c3cd53789e0b174aec9dda6b67d') diff --git a/var/spack/repos/builtin/packages/r-bsseq/package.py b/var/spack/repos/builtin/packages/r-bsseq/package.py new file mode 100644 index 0000000000..c753c549a0 --- /dev/null +++ b/var/spack/repos/builtin/packages/r-bsseq/package.py @@ -0,0 +1,55 @@ +# 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 RBsseq(RPackage): + """A collection of tools for analyzing and visualizing bisulfite sequencing + data.""" + + homepage = "https://github.com/kasperdanielhansen/bsseq" + git = "https://git.bioconductor.org/packages/bsseq" + + version('1.24.4', commit='8fe7a03') + version('1.22.0', commit='d4f7301') + version('1.20.0', commit='07e398b') + + depends_on('r@3.5:', type=('build', 'run')) + + depends_on('r-biocgenerics', type=('build', 'run')) + + depends_on('r-genomicranges@1.29.14:', type=('build', 'run')) + depends_on('r-genomicranges@1.33.6:', when='@1.24.4:', type=('build', 'run')) + + depends_on('r-summarizedexperiment@1.9.18:', type=('build', 'run')) + depends_on('r-summarizedexperiment@1.17.4:', when='@1.24.4:', type=('build', 'run')) + + depends_on('r-iranges@2.11.16:', type=('build', 'run')) + depends_on('r-iranges@2.22.2:', when='@1.24.4:', type=('build', 'run')) + + depends_on('r-genomeinfodb', type=('build', 'run')) + depends_on('r-scales', type=('build', 'run')) + depends_on('r-biobase', type=('build', 'run')) + depends_on('r-locfit', type=('build', 'run')) + depends_on('r-gtools', type=('build', 'run')) + depends_on('r-data-table@1.11.8:', type=('build', 'run')) + + depends_on('r-s4vectors', type=('build', 'run')) + depends_on('r-s4vectors@0.23.11:', when='@1.22.0:', type=('build', 'run')) + depends_on('r-s4vectors@0.25.14:', when='@1.24.4', type=('build', 'run')) + + depends_on('r-r-utils@2.0.0:', type=('build', 'run')) + depends_on('r-delayedmatrixstats@1.5.2:', type=('build', 'run')) + depends_on('r-permute', type=('build', 'run')) + depends_on('r-limma', type=('build', 'run')) + depends_on('r-delayedarray@0.9.8:', type=('build', 'run')) + depends_on('r-rcpp', type=('build', 'run')) + depends_on('r-biocparallel', type=('build', 'run')) + depends_on('r-bsgenome', type=('build', 'run')) + depends_on('r-biostrings', type=('build', 'run')) + depends_on('r-hdf5array@1.11.9:', type=('build', 'run')) + depends_on('r-rhdf5', type=('build', 'run')) + depends_on('r-beachmat', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/r-countrycode/package.py b/var/spack/repos/builtin/packages/r-countrycode/package.py new file mode 100644 index 0000000000..b2b07ff2e4 --- /dev/null +++ b/var/spack/repos/builtin/packages/r-countrycode/package.py @@ -0,0 +1,19 @@ +# 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 RCountrycode(RPackage): + """Countrycode standardizes country names, converts them into + ~40 different coding schemes, and assigns region descriptors.""" + + homepage = "https://vincentarelbundock.github.io/countrycode/" + url = "https://cloud.r-project.org/src/contrib/countrycode_1.2.0.tar.gz" + list_url = "https://cloud.r-project.org/src/contrib/Archive/countrycode" + + version('1.2.0', sha256='32c65702dcc33d512ff99f14c12f4e0c48fe7ed7c8aa2f0a64194576d129dd40') + + depends_on('r@2.10:', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/r-data-table/package.py b/var/spack/repos/builtin/packages/r-data-table/package.py index b9a008eff0..87d5735541 100644 --- a/var/spack/repos/builtin/packages/r-data-table/package.py +++ b/var/spack/repos/builtin/packages/r-data-table/package.py @@ -16,6 +16,7 @@ class RDataTable(RPackage): url = "https://cloud.r-project.org/src/contrib/data.table_1.10.0.tar.gz" list_url = "https://cloud.r-project.org/src/contrib/Archive/data.table" + version('1.12.8', sha256='d3a75f3a355ff144cc20a476041617e21fcf2a9f79265fd9bbd4693f3671f9dc') version('1.12.2', sha256='db55c18f0d703a8bc1c806dd1f7551bb405cb867717f52ef9dd64405394d22f5') version('1.12.0', sha256='611b112123dbd4ebd5200770fcdfaaeaab622adeb2b290d36018d3092742e3f7') version('1.11.8', sha256='dc427465599cadd848b28a78e2fce3362867847b44148252054385999fe566d9') diff --git a/var/spack/repos/builtin/packages/r-devtools/package.py b/var/spack/repos/builtin/packages/r-devtools/package.py index 9b4c4a2332..280769399e 100644 --- a/var/spack/repos/builtin/packages/r-devtools/package.py +++ b/var/spack/repos/builtin/packages/r-devtools/package.py @@ -13,27 +13,50 @@ class RDevtools(RPackage): url = "https://cloud.r-project.org/src/contrib/devtools_1.12.0.tar.gz" list_url = "https://cloud.r-project.org/src/contrib/Archive/devtools" + version('2.3.0', sha256='4fc375c171335c67bd71df4e0b1b3dff2ae3aa17b3e0566b790ba0808b39dcd0') version('2.1.0', sha256='c1f75346a90adf0669b5508fe68cc78bd3b114c1303fa7d22bf90991edd9230d') version('2.0.2', sha256='99a2fa957068254b8ecdb3fc2d50e2950230910ea31c314fc0e7d934e4bd1709') version('1.12.0', sha256='8a3e2ca3988dffe29341e45a160bb588995eae43485d6a811a9ae4836d37afd4') version('1.11.1', sha256='51c876f9ddbfdf611f6ea0b06c0b46da8cefcb8cc98d60e06d576b61f0a06346') depends_on('r@3.0.2:', type=('build', 'run')) - depends_on('r-httr@0.4:', type=('build', 'run')) - depends_on('r-memoise@1.0.0:', type=('build', 'run')) - depends_on('r-whisker', when='@:1.9.9', type=('build', 'run')) - depends_on('r-digest', type=('build', 'run')) - depends_on('r-rstudioapi@0.7.0:', type=('build', 'run')) - depends_on('r-jsonlite', type=('build', 'run')) - depends_on('r-git2r@0.23.0:', type=('build', 'run')) - depends_on('r-withr', type=('build', 'run')) depends_on('r-usethis@1.5.0:', when='@2.0.0:', type=('build', 'run')) + depends_on('r-usethis@1.6.0:', when='@2.3.0:', type=('build', 'run')) depends_on('r-callr', when='@2.0.0:', type=('build', 'run')) + depends_on('r-callr@3.4.3:', when='@2.3.0:', type=('build', 'run')) depends_on('r-cli', when='@2.0.0:', type=('build', 'run')) + depends_on('r-cli@2.0.2:', when='@2.3.0:', type=('build', 'run')) + depends_on('r-covr@3.5.0:', when='@2.3.0:', type=('build', 'run')) + depends_on('r-crayon@1.3.4:', when='@2.3.0:', type=('build', 'run')) + depends_on('r-desc@1.2.0:', when='@2.3.0:', type=('build', 'run')) + depends_on('r-dt@0.13:', when='@2.3.0:', type=('build', 'run')) + depends_on('r-digest', type=('build', 'run')) + depends_on('r-digest@0.6.25:', when='@3.2.0:', type=('build', 'run')) + depends_on('r-ellipsis@0.3.0:', when='@2.3.0:', type=('build', 'run')) + depends_on('r-glue@1.4.0:', when='@2.3.0:', type=('build', 'run')) + depends_on('r-git2r@0.23.0:', type=('build', 'run')) + depends_on('r-git2r@0.26.1:', when='@2.3.0:', type=('build', 'run')) + depends_on('r-httr@0.4:', type=('build', 'run')) + depends_on('r-httr@1.4.1:', when='@2.3.0:', type=('build', 'run')) + depends_on('r-jsonlite', type=('build', 'run')) + depends_on('r-jsonlite@1.6.1:', when='@2.3.0:', type=('build', 'run')) + depends_on('r-memoise@1.0.0:', type=('build', 'run')) + depends_on('r-memoise@1.1.0:', when='@2.3.0:', type=('build', 'run')) depends_on('r-pkgbuild@1.0.3:', when='@2.0.0:', type=('build', 'run')) + depends_on('r-pkgbuild@1.0.6:', when='@2.3.0:', type=('build', 'run')) depends_on('r-pkgload@1.0.2:', when='@2.0.0:', type=('build', 'run')) depends_on('r-rcmdcheck@1.3.3:', when='@2.0.0:', type=('build', 'run')) depends_on('r-remotes@2.1.0:', when='@2.0.0:', type=('build', 'run')) + depends_on('r-remotes@2.1.1:', when='@2.3.0:', type=('build', 'run')) + depends_on('r-rlang@0.4.5:', when='@2.3.0:', type=('build', 'run')) depends_on('r-roxygen2@6.1.1:', when='@2.0.0:', type=('build', 'run')) + depends_on('r-roxygen2@7.1.0:', when='@2.3.0:', type=('build', 'run')) + depends_on('r-rstudioapi@0.7.0:', type=('build', 'run')) + depends_on('r-rstudioapi@0.11.0:', when='@2.3.0:', type=('build', 'run')) + depends_on('r-rversions@2.0.1:', when='@2.3.0:', type=('build', 'run')) depends_on('r-sessioninfo@1.1.1:', when='@2.0.0:', type=('build', 'run')) depends_on('r-testthat@2.1.1:', when='@2.0.0:', type=('build', 'run')) + depends_on('r-testthat@2.3.2:', when='@2.3.0:', type=('build', 'run')) + depends_on('r-whisker', when='@:1.9.9', type=('build', 'run')) + depends_on('r-withr', type=('build', 'run')) + depends_on('r-withr@2.1.2:', when='@2.3.0:', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/r-dorng/package.py b/var/spack/repos/builtin/packages/r-dorng/package.py index a20cd96356..5c4f0fbc78 100644 --- a/var/spack/repos/builtin/packages/r-dorng/package.py +++ b/var/spack/repos/builtin/packages/r-dorng/package.py @@ -9,11 +9,13 @@ from spack import * class RDorng(RPackage): """Provides functions to perform reproducible parallel foreach loops, using independent random streams as generated by L'Ecuyer's combined - multiple-recursive generator - [L'Ecuyer (1999), <doi:10.1287/opre.47.1.159>]. It enables to easily - convert standard %dopar% loops into fully reproducible loops, - independently of the number of workers, the task scheduling strategy, - or the chosen parallel environment and associated foreach backend.""" + multiple-recursive generator (L'Ecuyer (1999), + <doi:10.1287/opre.47.1.159>). + + It enables to easily convert standard %dopar% loops into fully + reproducible loops, independently of the number of workers, the task + scheduling strategy, or the chosen parallel environment and associated + foreach backend.""" homepage = "https://cloud.r-project.org/package=doRNG" url = "https://cloud.r-project.org/src/contrib/doRNG_1.6.6.tar.gz" diff --git a/var/spack/repos/builtin/packages/r-dss/package.py b/var/spack/repos/builtin/packages/r-dss/package.py new file mode 100644 index 0000000000..7d4f8f2318 --- /dev/null +++ b/var/spack/repos/builtin/packages/r-dss/package.py @@ -0,0 +1,30 @@ +# 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 RDss(RPackage): + """Dispersion shrinkage for sequencing data. + + DSS is an R library performing differntial analysis for count-based + sequencing data. It detectes differentially expressed genes (DEGs) from + RNA-seq, and differentially methylated loci or regions (DML/DMRs) from + bisulfite sequencing (BS-seq). The core of DSS is a new dispersion + shrinkage method for estimating the dispersion parameter from Gamma-Poisson + or Beta-Binomial distributions.""" + + homepage = "http://bioconductor.org/packages/DSS/" + git = "https://git.bioconductor.org/packages/DSS" + + version('2.36.0', commit='841c7ed') + version('2.34.0', commit='f9819c7') + version('2.32.0', commit='ffb502d') + + depends_on('r@3.3:', type=('build', 'run')) + depends_on('r-biobase', type=('build', 'run')) + depends_on('r-bsseq', type=('build', 'run')) + depends_on('r-biocparallel', when='@2.36.0:', type=('build', 'run')) + depends_on('r-delayedarray', when='@2.36.0:', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/r-glue/package.py b/var/spack/repos/builtin/packages/r-glue/package.py index 1472728e93..20371a9740 100644 --- a/var/spack/repos/builtin/packages/r-glue/package.py +++ b/var/spack/repos/builtin/packages/r-glue/package.py @@ -17,6 +17,7 @@ class RGlue(RPackage): url = "https://cloud.r-project.org/src/contrib/glue_1.2.0.tar.gz" list_url = "https://cloud.r-project.org/src/contrib/Archive/glue" + version('1.4.1', sha256='f8b687d35cacb5ee7fcada6e9c26ea20c04d0bdc9d37e919a03abd1137513bc8') version('1.4.0', sha256='ea6c409f7141754baa090deba96cff270a11b185452cf9e6fb69cb148a9069c1') version('1.3.1', sha256='4fc1f2899d71a634e1f0adb7942772feb5ac73223891abe30ea9bd91d3633ea8') version('1.3.0', sha256='789e5a44c3635c3d3db26666e635e88adcf61cd02b75465125d95d7a12291cee') diff --git a/var/spack/repos/builtin/packages/r-gsodr/package.py b/var/spack/repos/builtin/packages/r-gsodr/package.py new file mode 100644 index 0000000000..8f1fa82e4d --- /dev/null +++ b/var/spack/repos/builtin/packages/r-gsodr/package.py @@ -0,0 +1,24 @@ +# 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 RGsodr(RPackage): + """A Global Surface Summary of the Day (GSOD) Weather Data Client for R""" + + homepage = "https://docs.ropensci.org/GSODR/" + url = "https://cloud.r-project.org/src/contrib/GSODR_2.1.1.tar.gz" + list_url = "https://cloud.r-project.org/src/contrib/Archive/GSODR" + + version('2.1.1', sha256='dba732e5bd1e367b9d710e6b8924f0c02fa4546202f049124dba02bc2e3329f5') + + depends_on('r@3.5.0:', type=('build', 'run')) + depends_on('r-countrycode', type=('build', 'run')) + depends_on('r-curl', type=('build', 'run')) + depends_on('r-data-table@1.11.6:', type=('build', 'run')) + depends_on('r-future-apply', type=('build', 'run')) + depends_on('r-httr', type=('build', 'run')) + depends_on('r-r-utils', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/r-hh/package.py b/var/spack/repos/builtin/packages/r-hh/package.py new file mode 100644 index 0000000000..1f455fcac1 --- /dev/null +++ b/var/spack/repos/builtin/packages/r-hh/package.py @@ -0,0 +1,46 @@ +# 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 RHh(RPackage): + """HH: Statistical Analysis and Data Display: Heiberger and Holland. + + Support software for Statistical Analysis and Data Display (Second + Edition, Springer, ISBN 978-1-4939-2121-8, 2015) and (First Edition, + Springer, ISBN 0-387-40270-5, 2004) by Richard M. Heiberger and Burt + Holland. This contemporary presentation of statistical methods features + extensive use of graphical displays for exploring data and for displaying + the analysis. The second edition includes redesigned graphics and + additional chapters. The authors emphasize how to construct and interpret + graphs, discuss principles of graphical design, and show how accompanying + traditional tabular results are used to confirm the visual impressions + derived directly from the graphs. Many of the graphical formats are novel + and appear here for the first time in print. All chapters have exercises. + All functions introduced in the book are in the package. R code for all + examples, both graphs and tables, in the book is included in the scripts + directory of the package.""" + + homepage = "https://cloud.r-project.org/package=HH" + url = "https://cloud.r-project.org/src/contrib/HH_3.1-40.tar.gz" + list_url = "https://cloud.r-project.org/src/contrib/Archive/HH" + + version('3.1-40', sha256='795924d900a98ae367e6697b2c951c3b4910a54931aebcad5024eda083d4a8a2') + + depends_on('r@3.0.2:', type=('build', 'run')) + depends_on('r-lattice', type=('build', 'run')) + depends_on('r-latticeextra', type=('build', 'run')) + depends_on('r-multcomp', type=('build', 'run')) + depends_on('r-gridextra@2.0.0:', type=('build', 'run')) + depends_on('r-reshape2', type=('build', 'run')) + depends_on('r-leaps', type=('build', 'run')) + depends_on('r-vcd', type=('build', 'run')) + depends_on('r-colorspace', type=('build', 'run')) + depends_on('r-rcolorbrewer', type=('build', 'run')) + depends_on('r-shiny@0.13.1:', type=('build', 'run')) + depends_on('r-hmisc', type=('build', 'run')) + depends_on('r-abind', type=('build', 'run')) + depends_on('r-rmpfr@0.6.0:', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/r-iranges/package.py b/var/spack/repos/builtin/packages/r-iranges/package.py index 5cf6493342..581d613875 100644 --- a/var/spack/repos/builtin/packages/r-iranges/package.py +++ b/var/spack/repos/builtin/packages/r-iranges/package.py @@ -19,6 +19,7 @@ class RIranges(RPackage): homepage = "https://bioconductor.org/packages/IRanges" git = "https://git.bioconductor.org/packages/IRanges.git" + version('2.22.2', commit='8c5e991') version('2.18.3', commit='c98a7ba074e72f2e5ec98252dffe9d3392711972') version('2.16.0', commit='26834c6868d7c279dd8ac1bb9daa16e6fef273c2') version('2.14.12', commit='00af02756c14771a23df9efcf379409ab6eb3041') @@ -38,3 +39,5 @@ class RIranges(RPackage): depends_on('r-s4vectors@0.19.11:', when='@2.16.0:', type=('build', 'run')) depends_on('r-s4vectors@0.21.9:', when='@2.18.3:', type=('build', 'run')) + + depends_on('r-s4vectors@0.25.14:', when='@2.22.2:', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/r-phylobase/package.py b/var/spack/repos/builtin/packages/r-phylobase/package.py new file mode 100644 index 0000000000..7cfe791b3b --- /dev/null +++ b/var/spack/repos/builtin/packages/r-phylobase/package.py @@ -0,0 +1,26 @@ +# 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 RPhylobase(RPackage): + """phylobase: Base Package for Phylogenetic Structures and Comparative + Data. + + Provides a base S4 class for comparative methods, incorporating one or + more trees and trait data.""" + + homepage = "https://github.com/fmichonneau/phylobase" + url = "https://cloud.r-project.org/src/contrib/phylobase_0.8.10.tar.gz" + list_url = "https://cloud.r-project.org/src/contrib/Archive/phylobase" + + version('0.8.10', sha256='5a44380ff49bab333a56f6f96157324ade8afb4af0730e013194c4badb0bf94b') + + depends_on('r-ade4', type=('build', 'run')) + depends_on('r-ape@3.0:', type=('build', 'run')) + depends_on('r-rcpp@0.11.0:', type=('build', 'run')) + depends_on('r-rncl@0.6.0:', type=('build', 'run')) + depends_on('r-rnexml', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/r-rcppparallel/asclang.patch b/var/spack/repos/builtin/packages/r-rcppparallel/asclang.patch new file mode 100644 index 0000000000..02718a152a --- /dev/null +++ b/var/spack/repos/builtin/packages/r-rcppparallel/asclang.patch @@ -0,0 +1,12 @@ +diff -u -r -N a/src/Makevars.in b/src/Makevars.in +--- a/src/Makevars.in 2020-08-06 09:31:48.000000000 +0900 ++++ b/src/Makevars.in 2020-08-06 09:34:01.000000000 +0900 +@@ -87,6 +87,8 @@ + cd tbb/src; \ + if [ -n "$(shell echo $(CC) | grep clang)" ]; then \ + $(MAKE_CMD) stdver=@STDVER@ compiler=clang $(MAKE_ARGS); \ ++ elif [ -n "$(shell echo $(CC) | grep fcc)" ]; then \ ++ $(MAKE_CMD) stdver=@STDVER@ compiler=clang $(MAKE_ARGS); \ + elif [ -n "$(shell echo $(CC) | grep gcc)" ]; then \ + $(MAKE_CMD) stdver=@STDVER@ compiler=gcc $(MAKE_ARGS); \ + else \ diff --git a/var/spack/repos/builtin/packages/r-rcppparallel/package.py b/var/spack/repos/builtin/packages/r-rcppparallel/package.py index 0e172ca491..4f4459c990 100644 --- a/var/spack/repos/builtin/packages/r-rcppparallel/package.py +++ b/var/spack/repos/builtin/packages/r-rcppparallel/package.py @@ -20,3 +20,5 @@ class RRcppparallel(RPackage): depends_on('r@3.0.2:', type=('build', 'run')) depends_on('gmake', type='build') + + patch('asclang.patch', when='%fj') diff --git a/var/spack/repos/builtin/packages/r-rncl/package.py b/var/spack/repos/builtin/packages/r-rncl/package.py new file mode 100644 index 0000000000..4501e1c2f3 --- /dev/null +++ b/var/spack/repos/builtin/packages/r-rncl/package.py @@ -0,0 +1,26 @@ +# 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 RRncl(RPackage): + """rncl: An Interface to the Nexus Class Library. + + An interface to the Nexus Class Library which allows parsing of NEXUS, + Newick and other phylogenetic tree file formats. It provides elements of + the file that can be used to build phylogenetic objects such as ape's + 'phylo' or phylobase's 'phylo4(d)'. This functionality is demonstrated with + 'read_newick_phylo()' and 'read_nexus_phylo()'.""" + + homepage = "https://github.com/fmichonneau/rncl" + url = "https://cloud.r-project.org/src/contrib/rncl_0.8.4.tar.gz" + list_url = "https://cloud.r-project.org/src/contrib/Archive/rncl" + + version('0.8.4', sha256='6b19d0dd9bb08ecf99766be5ad684bcd1894d1cd9291230bdd709dbd3396496b') + + depends_on('r@3.1.1:', type=('build', 'run')) + depends_on('r-rcpp@0.11.0:', type=('build', 'run')) + depends_on('r-progress@1.1.2:', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/r-rnexml/package.py b/var/spack/repos/builtin/packages/r-rnexml/package.py new file mode 100644 index 0000000000..bffab45a28 --- /dev/null +++ b/var/spack/repos/builtin/packages/r-rnexml/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) + +from spack import * + + +class RRnexml(RPackage): + """RNeXML: Semantically Rich I/O for the 'NeXML' Format. + + Provides access to phyloinformatic data in 'NeXML' format. The package + should add new functionality to R such as the possibility to manipulate + 'NeXML' objects in more various and refined way and compatibility with + 'ape' objects.""" + + homepage = "https://github.com/ropensci/RNeXML" + url = "https://cloud.r-project.org/src/contrib/RNeXML_2.4.5.tar.gz" + list_url = "https://cloud.r-project.org/src/contrib/Archive/RNeXML" + + version('2.4.5', sha256='2b667ecb6400e4c0c125ca73a98cde81330cde3a85b764261f77159e702754f3') + + depends_on('r@3.0.0:', type=('build', 'run')) + depends_on('r-ape@3.1:', type=('build', 'run')) + depends_on('r-xml@3.95:', type=('build', 'run')) + depends_on('r-plyr@1.8:', type=('build', 'run')) + depends_on('r-reshape2@1.2.2:', type=('build', 'run')) + depends_on('r-httr@0.3:', type=('build', 'run')) + depends_on('r-uuid@0.1-1:', type=('build', 'run')) + depends_on('r-dplyr@0.5.0:', type=('build', 'run')) + depends_on('r-lazyeval@0.1.0:', type=('build', 'run')) + depends_on('r-tidyr@0.3.1:', type=('build', 'run')) + depends_on('r-stringr@1.0:', type=('build', 'run')) + depends_on('r-stringi', type=('build', 'run')) + depends_on('r-xml2', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/r-s4vectors/package.py b/var/spack/repos/builtin/packages/r-s4vectors/package.py index 132218b109..909b33bb2e 100644 --- a/var/spack/repos/builtin/packages/r-s4vectors/package.py +++ b/var/spack/repos/builtin/packages/r-s4vectors/package.py @@ -21,6 +21,7 @@ class RS4vectors(RPackage): homepage = "https://bioconductor.org/packages/S4Vectors" git = "https://git.bioconductor.org/packages/S4Vectors.git" + version('0.26.1', commit='935769c') version('0.22.1', commit='d25e517b48ca4184a4c2ee1f8223c148a55a8b8a') version('0.20.1', commit='1878b2909086941e556c5ea953c6fd86aebe9b02') version('0.18.3', commit='d6804f94ad3663828440914920ac933b934aeff1') @@ -30,4 +31,5 @@ class RS4vectors(RPackage): depends_on('r@3.3.0:', type=('build', 'run')) depends_on('r-biocgenerics@0.21.1:', type=('build', 'run')) - depends_on('r-biocgenerics@0.23.3:', when='@0.16.0:', type=('build', 'run')) + depends_on('r-biocgenerics@0.23.3:', when='@0.16.0:0.22.1', type=('build', 'run')) + depends_on('r-biocgenerics@0.31.1:', when='@0.26.1:', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/r-summarizedexperiment/package.py b/var/spack/repos/builtin/packages/r-summarizedexperiment/package.py index 2d4ffdf571..5834c170da 100644 --- a/var/spack/repos/builtin/packages/r-summarizedexperiment/package.py +++ b/var/spack/repos/builtin/packages/r-summarizedexperiment/package.py @@ -17,6 +17,7 @@ class RSummarizedexperiment(RPackage): homepage = "https://bioconductor.org/packages/SummarizedExperiment" git = "https://git.bioconductor.org/packages/SummarizedExperiment.git" + version('1.18.2', commit='e22fafe') version('1.14.1', commit='2c68d99e11c7345e5ed388370822ea48395c64a4') version('1.12.0', commit='5f8416864636add121ec1d6737ebb89a42227fd7') version('1.10.1', commit='7ad2e991c8285bfc4b2e15b29d94cc86d07f8f2b') diff --git a/var/spack/repos/builtin/packages/r-usethis/package.py b/var/spack/repos/builtin/packages/r-usethis/package.py index e82085b541..43567532f4 100644 --- a/var/spack/repos/builtin/packages/r-usethis/package.py +++ b/var/spack/repos/builtin/packages/r-usethis/package.py @@ -16,20 +16,25 @@ class RUsethis(RPackage): url = "https://cloud.r-project.org/src/contrib/usethis_1.5.1.tar.gz" list_url = "https://cloud.r-project.org/src/contrib/Archive/usethis" + version('1.6.1', sha256='60339059a97ed07dea7f8908b828b5bb42e0fd0b471165c061bc9660b0d59d6f') version('1.5.1', sha256='9e3920a04b0df82adf59eef2c1b2b4d835c4a757a51b3c163b8fc619172f561d') depends_on('r@3.2:', type=('build', 'run')) depends_on('r-clipr@0.3.0:', type=('build', 'run')) - depends_on('r-clisymbols', type=('build', 'run')) + depends_on('r-clisymbols', when='@:1.5', type=('build', 'run')) + depends_on('r-cli', when='@1.6.1:', type=('build', 'run')) depends_on('r-crayon', type=('build', 'run')) depends_on('r-curl@2.7:', type=('build', 'run')) depends_on('r-desc', type=('build', 'run')) depends_on('r-fs@1.3.0:', type=('build', 'run')) depends_on('r-gh', type=('build', 'run')) + depends_on('r-gh@1.1.0', when='@1.6.1:', type=('build', 'run')) depends_on('r-git2r@0.23:', type=('build', 'run')) depends_on('r-glue@1.3.0:', type=('build', 'run')) depends_on('r-purrr', type=('build', 'run')) + depends_on('r-rematch2', when='@1.6.1:', type=('build', 'run')) depends_on('r-rlang', type=('build', 'run')) + depends_on('r-rlang@0.4.3', when='@1.6.1:', type=('build', 'run')) depends_on('r-rprojroot@1.2:', type=('build', 'run')) depends_on('r-rstudioapi', type=('build', 'run')) depends_on('r-whisker', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/raja/package.py b/var/spack/repos/builtin/packages/raja/package.py index b7a6218056..0f0df14282 100644 --- a/var/spack/repos/builtin/packages/raja/package.py +++ b/var/spack/repos/builtin/packages/raja/package.py @@ -13,7 +13,7 @@ class Raja(CMakePackage, CudaPackage): git = "https://github.com/LLNL/RAJA.git" version('develop', branch='develop', submodules='True') - version('main', branch='main', submodules='True') + version('master', branch='main', submodules='True') version('0.11.0', tag='v0.11.0', submodules="True") version('0.10.1', tag='v0.10.1', submodules="True") version('0.10.0', tag='v0.10.0', submodules="True") @@ -29,6 +29,7 @@ class Raja(CMakePackage, CudaPackage): version('0.4.0', tag='v0.4.0', submodules="True") variant('openmp', default=True, description='Build OpenMP backend') + variant('shared', default=True, description='Build Shared Libs') depends_on('cmake@3.8:', type='build') depends_on('cmake@3.9:', when='+cuda', type='build') @@ -38,16 +39,26 @@ class Raja(CMakePackage, CudaPackage): options = [] options.append('-DENABLE_OPENMP={0}'.format( - 'On' if '+openmp' in spec else 'Off')) + 'ON' if '+openmp' in spec else 'Off')) if '+cuda' in spec: options.extend([ - '-DENABLE_CUDA=On', + '-DENABLE_CUDA=ON', '-DCUDA_TOOLKIT_ROOT_DIR=%s' % (spec['cuda'].prefix)]) if not spec.satisfies('cuda_arch=none'): cuda_arch = spec.variants['cuda_arch'].value options.append('-DCUDA_ARCH=sm_{0}'.format(cuda_arch[0])) + flag = '-arch sm_{0}'.format(cuda_arch[0]) + options.append('-DCMAKE_CUDA_FLAGS:STRING={0}'.format(flag)) + else: + options.append('-DENABLE_CUDA=OFF') + + options.append('-DBUILD_SHARED_LIBS={0}'.format( + 'ON' if '+shared' in spec else 'OFF')) + + options.append('-DENABLE_CHAI={0}'.format( + 'ON' if '+chai' in spec else 'OFF')) # Work around spack adding -march=ppc64le to SPACK_TARGET_ARGS which # is used by the spack compiler wrapper. This can go away when BLT @@ -57,4 +68,8 @@ class Raja(CMakePackage, CudaPackage): else: options.append('-DENABLE_TESTS=ON') + if '+chai' in spec: + options.extend([ + '-DENABLE_CHAI=ON']) + return options diff --git a/var/spack/repos/builtin/packages/random123/package.py b/var/spack/repos/builtin/packages/random123/package.py index 48df03fee8..bc958abe38 100644 --- a/var/spack/repos/builtin/packages/random123/package.py +++ b/var/spack/repos/builtin/packages/random123/package.py @@ -15,15 +15,20 @@ class Random123(Package): homepage = "http://www.deshawresearch.com/resources_random123.html" url = "http://www.deshawresearch.com/downloads/download_random123.cgi/Random123-1.09.tar.gz" + version('1.13.2', sha256='74a1c6bb66b2684f03d3b1008642a2e9141909103cd09f428d2c60bcaa51cb40') + version('1.10', sha256='4afdfba4b941e33e23b5de9b7907b7e3ac326cb4d34b5fa8225edd00b5fe053b') version('1.09', sha256='cf6abf623061bcf3d17e5e49bf3f3f0ae400ee89ae2e97c8cb8dcb918b1ebabe') patch('ibmxl.patch', when='@1.09') patch('arm-gcc.patch', when='@1.09') + patch('v1132-xl161.patch', when='@1.13.2') def install(self, spec, prefix): # Random123 doesn't have a build system. # We have to do our own install here. install_tree('include', prefix.include) install('./LICENSE', "%s" % prefix) - # used by some packages, e.g. quinoa - install('examples/uniform.hpp', join_path(prefix.include, 'Random123')) + if spec.satisfies('@1.09'): + # used by some packages, e.g. quinoa + install('examples/uniform.hpp', + join_path(prefix.include, 'Random123')) diff --git a/var/spack/repos/builtin/packages/random123/v1132-xl161.patch b/var/spack/repos/builtin/packages/random123/v1132-xl161.patch new file mode 100644 index 0000000000..398de3cc2a --- /dev/null +++ b/var/spack/repos/builtin/packages/random123/v1132-xl161.patch @@ -0,0 +1,13 @@ +diff --git a/include/Random123/features/compilerfeatures.h b/include/Random123/features/compilerfeatures.h +index 2341a7a..3c5d999 100644 +--- a/include/Random123/features/compilerfeatures.h ++++ b/include/Random123/features/compilerfeatures.h +@@ -206,7 +206,7 @@ added to each of the *features.h files, AND to examples/ut_features.cpp. + #include "nvccfeatures.h" + #elif defined(__ICC) + #include "iccfeatures.h" +-#elif defined(__xlC__) ++#elif defined(__xlC__) || defined(__ibmxl__) + #include "xlcfeatures.h" + #elif defined(__SUNPRO_C) || defined(__SUNPRO_CC) + #include "sunprofeatures.h" diff --git a/var/spack/repos/builtin/packages/reditools/REDItoolDenovo.py.patch b/var/spack/repos/builtin/packages/reditools/REDItoolDenovo.py.patch new file mode 100644 index 0000000000..a88358829c --- /dev/null +++ b/var/spack/repos/builtin/packages/reditools/REDItoolDenovo.py.patch @@ -0,0 +1,11 @@ +--- a/main/REDItoolDenovo.py 2020-07-16 17:35:46.008030346 -0500 ++++ b/main/REDItoolDenovo.py 2020-07-16 17:38:39.700035490 -0500 +@@ -768,7 +768,7 @@ + for j in ridxinfo.split('\n'): #MOD + l=(j.strip()).split('\t') + if l[0] in ['*', '']: continue #MOD +- if int(l[2])+int(l[3]) > 0: rrefs[l[0]]=int(l[1]) ++ if int(l[2])+int(l[3]) > 0: rrefs[l[0]]=int(l[1]) + frefs=[] + fidxinfo=open(fastafile+'.fai') + for j in fidxinfo: diff --git a/var/spack/repos/builtin/packages/reditools/interpreter.patch b/var/spack/repos/builtin/packages/reditools/interpreter.patch new file mode 100644 index 0000000000..2e3f171e73 --- /dev/null +++ b/var/spack/repos/builtin/packages/reditools/interpreter.patch @@ -0,0 +1,41 @@ +diff -ru a/accessory/get_DE_events.py b/accessory/get_DE_events.py +--- a/accessory/get_DE_events.py 2020-07-16 17:18:47.012982992 -0500 ++++ b/accessory/get_DE_events.py 2020-07-16 17:19:47.531986703 -0500 +@@ -1,3 +1,4 @@ ++#!/usr/bin/env python + #################################### REDI OUT TABLE ######################################################## + #Region Position Reference Strand Coverage-q30 MeanQ BaseCount[A,C,G,T] # + #AllSubs Frequency gCoverage-q30 gMeanQ gBaseCount[A,C,G,T] gAllSubs gFrequency # +diff -ru a/accessory/readPsl.py b/accessory/readPsl.py +--- a/accessory/readPsl.py 2020-07-16 17:18:47.012982992 -0500 ++++ b/accessory/readPsl.py 2020-07-16 17:20:02.829987622 -0500 +@@ -1,4 +1,4 @@ +- ++#!/usr/bin/env python + import sys, os + import math + +diff -ru a/accessory/subCount2.py b/accessory/subCount2.py +--- a/accessory/subCount2.py 2020-07-16 17:18:47.012982992 -0500 ++++ b/accessory/subCount2.py 2020-07-16 17:20:22.650988801 -0500 +@@ -1,3 +1,4 @@ ++#!/usr/bin/env python + import sys + + try: +diff -ru a/accessory/subCount.py b/accessory/subCount.py +--- a/accessory/subCount.py 2020-07-16 17:18:47.012982992 -0500 ++++ b/accessory/subCount.py 2020-07-16 17:20:35.502989558 -0500 +@@ -1,3 +1,4 @@ ++#!/usr/bin/env python + import sys + + try: +diff -ru a/main/REDItoolDenovo.py b/main/REDItoolDenovo.py +--- a/main/REDItoolDenovo.py 2020-07-16 17:18:47.012982992 -0500 ++++ b/main/REDItoolDenovo.py 2020-07-16 17:21:01.018991045 -0500 +@@ -1,3 +1,4 @@ ++#!/usr/bin/env python + # coding=utf-8 + # Copyright (c) 2013-2014 Ernesto Picardi <ernesto.picardi@uniba.it> + # diff --git a/var/spack/repos/builtin/packages/reditools/package.py b/var/spack/repos/builtin/packages/reditools/package.py new file mode 100644 index 0000000000..7dd0197a51 --- /dev/null +++ b/var/spack/repos/builtin/packages/reditools/package.py @@ -0,0 +1,32 @@ +# 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 Reditools(PythonPackage): + """REDItools: python scripts for RNA editing detection by RNA-Seq data. + + REDItools are simple python scripts conceived to facilitate the + investigation of RNA editing at large-scale and devoted to research groups + that would to explore such phenomenon in own data but don't have sufficient + bioinformatics skills. They work on main operating systems (although + unix/linux-based OS are preferred), can handle reads from whatever platform + in the standard BAM format and implement a variety of filters.""" + + homepage = "https://github.com/BioinfoUNIBA/REDItools" + git = "https://github.com/BioinfoUNIBA/REDItools.git" + + version('1.3_2020-03-20', commit='cf47f3d54f324aeb9650bcf8bfacf5a967762a55') + + depends_on('py-pysam', type=('build', 'run')) + depends_on('py-fisher', type=('build', 'run')) + depends_on('blat', type='run') + depends_on('tabix', type='run') + + patch('REDItoolDenovo.py.patch') + patch('interpreter.patch') + patch('setup.py.patch') + patch('python2to3.patch', when='^python@3:') diff --git a/var/spack/repos/builtin/packages/reditools/python2to3.patch b/var/spack/repos/builtin/packages/reditools/python2to3.patch new file mode 100644 index 0000000000..94937d175d --- /dev/null +++ b/var/spack/repos/builtin/packages/reditools/python2to3.patch @@ -0,0 +1,926 @@ +diff -ru a/accessory/AnnotateTable.py b/accessory/AnnotateTable.py +--- a/accessory/AnnotateTable.py 2020-07-16 16:16:59.360014702 -0500 ++++ b/accessory/AnnotateTable.py 2020-07-16 16:17:22.159013630 -0500 +@@ -28,7 +28,7 @@ + sys.stderr.write('Pysam version used: %s\n' %(pysamVersion)) + + def usage(): +- print """ ++ print(""" + USAGE: python AnnotateTable.py [options] + Options: + -a Sorted Annotation file +@@ -44,12 +44,12 @@ + -C Columns with base distribution [7,12] (in combination with -S) + -o Save lines to a file + -h Print this help +-""" ++""") + + try: + opts, args = getopt.getopt(sys.argv[1:], 'i:a:o:hs:c:n:SC:uk:r:',["help"]) +-except getopt.GetoptError, err: +- print str(err) ++except getopt.GetoptError as err: ++ print(str(err)) + usage() + sys.exit() + +@@ -101,7 +101,7 @@ + a={'A':'T','T':'A','C':'G','G':'C'} + ss='' + for i in s.upper(): +- if a.has_key(i): ss+=a[i] ++ if i in a: ss+=a[i] + elif i==' ': ss+=' ' + elif i=='-': ss+='-' + else: ss+='N' +@@ -125,23 +125,23 @@ + anns='+' + for i in res: + if i[3]=='+': +- if d['+'].has_key(i[1]): ++ if i[1] in d['+']: + if i[0] not in d['+'][i[1]][0]: d['+'][i[1]][0]=d['+'][i[1]][0]+','+i[0] + if i[2]+'-'+i[0] not in d['+'][i[1]][1]: d['+'][i[1]][1]=d['+'][i[1]][1]+','+i[2]+'-'+i[0] + else: + d['+'][i[1]]=[i[0],i[2]+'-'+i[0]] + elif i[3]=='-': +- if d['-'].has_key(i[1]): ++ if i[1] in d['-']: + if i[0] not in d['-'][i[1]][0]: d['-'][i[1]][0]=d['-'][i[1]][0]+','+i[0] + if i[2]+'-'+i[0] not in d['-'][i[1]][1]: d['-'][i[1]][1]=d['-'][i[1]][1]+','+i[2]+'-'+i[0] + else: + d['-'][i[1]]=[i[0],i[2]+'-'+i[0]] +- gip='$'.join(d['+'].keys()) +- featp='$'.join([d['+'][x][0] for x in d['+'].keys()]) +- tip='$'.join([d['+'][x][1] for x in d['+'].keys()]) +- gim='$'.join(d['-'].keys()) +- featm='$'.join([d['-'][x][0] for x in d['-'].keys()]) +- tim='$'.join([d['-'][x][1] for x in d['-'].keys()]) ++ gip='$'.join(list(d['+'].keys())) ++ featp='$'.join([d['+'][x][0] for x in list(d['+'].keys())]) ++ tip='$'.join([d['+'][x][1] for x in list(d['+'].keys())]) ++ gim='$'.join(list(d['-'].keys())) ++ featm='$'.join([d['-'][x][0] for x in list(d['-'].keys())]) ++ tim='$'.join([d['-'][x][1] for x in list(d['-'].keys())]) + p=[featp,gip,tip] + m=[featm,gim,tim] + pm=[(featp+'&'+featm).strip('&'),(gip+'&'+gim).strip('&'),(tip+'&'+tim).strip('&')] +@@ -187,7 +187,7 @@ + elif strand=='-': res=ann[1] + else: res=ann[2] + for i in addc: +- print prinfo[i]+ res[i] ++ print(prinfo[i]+ res[i]) + except: sys.exit('Error: not correct position.') + + if af: +@@ -200,7 +200,7 @@ + h=[i.strip()] + for k in addc: h.append(hinfo[k]) + if save: o.write('\t'.join(h)+'\n') +- else: print '\t'.join(h) ++ else: print('\t'.join(h)) + continue + if i.startswith(skip): continue + l=(i.strip()).split('\t') +@@ -230,7 +230,7 @@ + else: res=ann[2] + for j in addc: l.append(res[j]) + if save: o.write('\t'.join(l)+'\n') +- else: print '\t'.join(l) ++ else: print('\t'.join(l)) + tabix.close() + if save: + o.close() +diff -ru a/accessory/FilterTable.py b/accessory/FilterTable.py +--- a/accessory/FilterTable.py 2020-07-16 16:16:59.360014702 -0500 ++++ b/accessory/FilterTable.py 2020-07-16 16:17:22.209013627 -0500 +@@ -30,7 +30,7 @@ + pid=str(os.getpid()+random.randint(0,999999999)) + + def usage(): +- print """ ++ print(""" + USAGE: python FilterTable.py [options] + Options: + -i Table file +@@ -43,12 +43,12 @@ + -p Print simple statistics + -h Print this help + +-""" ++""") + + try: + opts, args = getopt.getopt(sys.argv[1:], 'i:o:f:hs:F:S:Ep',["help"]) +-except getopt.GetoptError, err: +- print str(err) ++except getopt.GetoptError as err: ++ print(str(err)) + usage() + sys.exit() + +diff -ru a/accessory/get_DE_events.py b/accessory/get_DE_events.py +--- a/accessory/get_DE_events.py 2020-07-16 16:16:59.360014702 -0500 ++++ b/accessory/get_DE_events.py 2020-07-16 16:17:22.646013607 -0500 +@@ -104,7 +104,7 @@ + #WARNING those are np arrays. + + for i in range(0,edit_level_table.shape[0]): +- print i #keep track of progress ++ print(i) #keep track of progress + disease_edit_row = edit_level_table.loc[i, disease_people] + control_edit_row = edit_level_table.loc[i, control_people] + disease_cov_row = cov_table.loc[i, disease_people] +@@ -206,7 +206,7 @@ + #write the full_table to output + full_table.to_csv(output_file, sep='\t', index=False) + +- print "job completed\n" ++ print("job completed\n") + + + +@@ -225,12 +225,12 @@ + + def Sample_percentage(row): + """Percentage of samples from each type""" +- percentage = (len(filter(lambda x: x!= '-', row))/float(len(row)))*100 ++ percentage = (len([x for x in row if x!= '-'])/float(len(row)))*100 + return round(percentage) + + def Sample_count(row): + """Number of samples from each type""" +- count = len(filter(lambda x: x!= '-', row)) ++ count = len([x for x in row if x!= '-']) + return count + + def get_bh(pvalue,siglevel): +@@ -269,7 +269,7 @@ + if(row_a[-1] != '-' and row_a[-1] != 0.0 and row_a[-1] <= 0.05): + row = row[0].split('_') + row[2:] + row.insert(2, 'A.to.G') +- print '\t'.join(map(str,row)) ++ print('\t'.join(map(str,row))) + + def tuple_replace(i): + if type(i) == tuple: +@@ -292,11 +292,11 @@ + with open(samples_informations_file, 'r') as f: + for line in f: + if line.startswith('SRR'): +- line = map(str.strip, line.split(',')) ++ line = list(map(str.strip, line.split(','))) + sample_informations.setdefault(line[0], line[1]) + + +-cwd = filter(os.path.isdir, os.listdir(os.getcwd())) ++cwd = list(filter(os.path.isdir, os.listdir(os.getcwd()))) + all_available_sites = [] + sample_edited_sites = {} + for directory in cwd: +@@ -306,7 +306,7 @@ + with open(table,'r') as a: + for line in a: + if line.startswith('chr'): +- s = map(str.strip, line.split("\t")) ++ s = list(map(str.strip, line.split("\t"))) + if s[7] == 'AG': + site, freq, coverage = s[0] + "_" + s[1], s[8], s[4] + freq_gnum_cov = '%s^%s^%s' %(s[8],eval(s[6])[2],s[4]) +@@ -314,14 +314,14 @@ + if (int(coverage) >= min_coverage) and (float(freq) >= min_edit_frequency): + sample_edited_sites.setdefault((directory, site), []).append((freq, freq_gnum_cov)) + +-table_columns = map(lambda x: x + '_' + sample_informations[x], sorted(sample_informations.keys())) ++table_columns = [x + '_' + sample_informations[x] for x in sorted(sample_informations.keys())] + + disease = [i for i in table_columns if i.upper().find('DIS') != -1] + controls = [i for i in table_columns if i.upper().find('CTRL') != -1] + + if enable_linear_model: + outtable='' +- header = ['chromosome', 'position', 'type_editing'] + map(remove_underscore, controls) + map(remove_underscore, disease) ++ header = ['chromosome', 'position', 'type_editing'] + list(map(remove_underscore, controls)) + list(map(remove_underscore, disease)) + outtable += '\t'.join(header) + outtable += '\n' + #print '\t'.join(header) +@@ -329,13 +329,13 @@ + row = [chrom] + for col in header[2:]:#header.index('[num_controls/num_disease]')]: + row.append(sample_edited_sites.get((col.split('_')[0],chrom), ['-'])[0]) +- ctrls = zip(*(zip(controls,row[1:])))[1] +- dss = zip(*(zip(disease,row[len(ctrls)+1:])))[1] +- ctrls_freq = map(tuple_replace, ctrls) +- dss_freq = map(tuple_replace, dss) ++ ctrls = list(zip(*(list(zip(controls,row[1:])))))[1] ++ dss = list(zip(*(list(zip(disease,row[len(ctrls)+1:])))))[1] ++ ctrls_freq = list(map(tuple_replace, ctrls)) ++ dss_freq = list(map(tuple_replace, dss)) + row.append(str([Sample_count(ctrls), Sample_count(dss)])) + +- row_b = map(tuple_replace_bis, row) ++ row_b = list(map(tuple_replace_bis, row)) + row_b = row_b[0].split('_') + row_b[2:] + row_b.insert(2, 'A.to.G') + final_list = row_b[:-1] +@@ -359,20 +359,20 @@ + if pvalue_correction == 2: + header += ['pvalue BH corrected'] + +- print '\t'.join(header) ++ print('\t'.join(header)) + + for chrom in sorted(all_available_sites, key = lambda x: Set_Chr_Nr(x)): + row = [chrom] + for col in header[3:header.index('[num_controls/num_disease]')]: + row.append(sample_edited_sites.get((col.split('_')[0],chrom), ['-'])[0]) +- ctrls = zip(*(zip(controls,row[1:])))[1] +- dss = zip(*(zip(disease,row[len(ctrls)+1:])))[1] +- ctrls_freq = map(tuple_replace, ctrls) +- dss_freq = map(tuple_replace, dss) ++ ctrls = list(zip(*(list(zip(controls,row[1:])))))[1] ++ dss = list(zip(*(list(zip(disease,row[len(ctrls)+1:])))))[1] ++ ctrls_freq = list(map(tuple_replace, ctrls)) ++ dss_freq = list(map(tuple_replace, dss)) + row.append(str([Sample_count(ctrls), Sample_count(dss)])) + if (Sample_percentage(ctrls) >= min_sample_testing) and (Sample_percentage(dss) >= min_sample_testing): +- ctrls_mean = sum(map(float, filter(lambda x: x!= '-', ctrls_freq)))/len(filter(lambda x: x!= '-', ctrls_freq)) +- dss_mean = sum(map(float, filter(lambda x: x!= '-', dss_freq)))/len(filter(lambda x : x!= '-', dss_freq)) ++ ctrls_mean = sum(map(float, [x for x in ctrls_freq if x!= '-']))/len([x for x in ctrls_freq if x!= '-']) ++ dss_mean = sum(map(float, [x for x in dss_freq if x!= '-']))/len([x for x in dss_freq if x!= '-']) + delta_diff = abs(ctrls_mean - dss_mean) + pvalue=stats.mannwhitneyu(ctrls_freq, dss_freq, alternative='two-sided') + row.append(round(delta_diff, 3)) +@@ -388,12 +388,12 @@ + row += ['-', '-'] + else: + row += ['-', '-', '-'] +- row_a = map(tuple_replace, row) +- row_b = map(tuple_replace_bis, row) ++ row_a = list(map(tuple_replace, row)) ++ row_b = list(map(tuple_replace_bis, row)) + if pvalue_correction != 0 and only_significants == 'yes': + only_sig(row_a,row_b) + else: + row_b = row_b[0].split('_') + row_b[2:] + row_b.insert(2, 'A.to.G') +- print '\t'.join(map(str,row_b)) ++ print('\t'.join(map(str,row_b))) + +diff -ru a/accessory/GFFtoTabix.py b/accessory/GFFtoTabix.py +--- a/accessory/GFFtoTabix.py 2020-07-16 16:16:59.360014702 -0500 ++++ b/accessory/GFFtoTabix.py 2020-07-16 16:17:22.264013625 -0500 +@@ -31,7 +31,7 @@ + pid=str(os.getpid()+random.randint(0,999999999)) + + def usage(): +- print """ ++ print(""" + USAGE: python GFFtoTabix.py [options] + Options: + -i GFF file +@@ -41,7 +41,7 @@ + -u Save an uncompressed GFF copy (add _copy suffix) + -h Print this help + +-""" ++""") + + try: + opts, args = getopt.getopt(sys.argv[1:], "i:Sb:t:hu",["help"]) +@@ -49,7 +49,7 @@ + usage() + sys.exit(2) + except getopt.GetoptError as err: +- print str(err) # will print something like "option -a not recognized" ++ print(str(err)) # will print something like "option -a not recognized" + usage() + sys.exit(2) + +diff -ru a/accessory/rediportal2recoding.py b/accessory/rediportal2recoding.py +--- a/accessory/rediportal2recoding.py 2020-07-16 16:16:59.360014702 -0500 ++++ b/accessory/rediportal2recoding.py 2020-07-16 16:17:22.709013604 -0500 +@@ -41,4 +41,4 @@ + gff_row = line[0] + '\t'+ valore + '\t' + 'ed' + '\t' + line[1] + \ + '\t' + line[1] + '\t' + '.' + '\t' + line[4] + '\t' + '.' + '\t' + \ + 'gene_id' + ' ' + '"ed_%s";' %(i) + ' ' + 'transcript_id' + ' ' + '"ed_%s";' %(i) +- print gff_row ++ print(gff_row) +diff -ru a/accessory/SearchInTable.py b/accessory/SearchInTable.py +--- a/accessory/SearchInTable.py 2020-07-16 16:16:59.360014702 -0500 ++++ b/accessory/SearchInTable.py 2020-07-16 16:17:22.309013623 -0500 +@@ -25,7 +25,7 @@ + #pid=str(os.getpid()+random.randint(0,999999999)) + + def usage(): +- print """ ++ print(""" + USAGE: python SearchInTable.py [options] + Options: + -i Sorted table file (first col=reference; second col=coordinate 1 based) +@@ -42,7 +42,7 @@ + -o Save found/not found positions on file + -h Print this help + +-""" ++""") + #-k skip first INT lines [0] + + try: +@@ -51,7 +51,7 @@ + usage() + sys.exit(2) + except getopt.GetoptError as err: +- print str(err) # will print something like "option -a not recognized" ++ print(str(err)) # will print something like "option -a not recognized" + usage() + sys.exit(2) + +diff -ru a/accessory/selectPositions.py b/accessory/selectPositions.py +--- a/accessory/selectPositions.py 2020-07-16 16:16:59.360014702 -0500 ++++ b/accessory/selectPositions.py 2020-07-16 16:17:22.833013598 -0500 +@@ -25,7 +25,7 @@ + pid=str(os.getpid()+random.randint(0,999999999)) + + def usage(): +- print """ ++ print(""" + USAGE: python selectPositions.py [options] + Options: + -i Table file from REDItools +@@ -44,7 +44,7 @@ + -o Save selected positions on outTable_%s + -h Print this help + +-"""%(pid) ++"""%(pid)) + + try: + opts, args = getopt.getopt(sys.argv[1:], "i:c:C:v:s:f:F:euo:hrd:RV:",["help"]) +@@ -52,7 +52,7 @@ + usage() + sys.exit(2) + except getopt.GetoptError as err: +- print str(err) # will print something like "option -a not recognized" ++ print(str(err)) # will print something like "option -a not recognized" + usage() + sys.exit(2) + +diff -ru a/accessory/SortGFF.py b/accessory/SortGFF.py +--- a/accessory/SortGFF.py 2020-07-16 16:16:59.360014702 -0500 ++++ b/accessory/SortGFF.py 2020-07-16 16:17:22.357013620 -0500 +@@ -35,7 +35,7 @@ + pid=str(os.getpid()+random.randint(0,999999999)) + + def usage(): +- print """ ++ print(""" + USAGE: python SortGFF.py [options] + Options: + -i GFF file +@@ -44,7 +44,7 @@ + -t Temporary directory to use (multiple -t may be used) + -h Print this help + +-"""%(pid) ++"""%(pid)) + + try: + opts, args = getopt.getopt(sys.argv[1:], "i:o:b:t:h",["help"]) +@@ -52,7 +52,7 @@ + usage() + sys.exit(2) + except getopt.GetoptError as err: +- print str(err) # will print something like "option -a not recognized" ++ print(str(err)) # will print something like "option -a not recognized" + usage() + sys.exit(2) + +diff -ru a/accessory/SortTable.py b/accessory/SortTable.py +--- a/accessory/SortTable.py 2020-07-16 16:16:59.360014702 -0500 ++++ b/accessory/SortTable.py 2020-07-16 16:17:22.411013618 -0500 +@@ -35,7 +35,7 @@ + pid=str(os.getpid()+random.randint(0,999999999)) + + def usage(): +- print """ ++ print(""" + USAGE: python SortTable.py [options] + Options: + -i Table file +@@ -50,7 +50,7 @@ + -t Temporary directory to use (multiple -t may be used) + -h Print this help + +-"""%(pid) ++"""%(pid)) + + try: + opts, args = getopt.getopt(sys.argv[1:], "i:o:b:t:hd:s:c:e:m:O",["help"]) +@@ -58,7 +58,7 @@ + usage() + sys.exit(2) + except getopt.GetoptError as err: +- print str(err) # will print something like "option -a not recognized" ++ print(str(err)) # will print something like "option -a not recognized" + usage() + sys.exit(2) + +diff -ru a/accessory/subCount2.py b/accessory/subCount2.py +--- a/accessory/subCount2.py 2020-07-16 16:16:59.360014702 -0500 ++++ b/accessory/subCount2.py 2020-07-16 16:17:22.854013597 -0500 +@@ -28,5 +28,5 @@ + for i in s: + try: v=(s[i]/float(all))*100 + except: v=0.0 +- print i,s[i],all,v ++ print(i,s[i],all,v) + +diff -ru a/accessory/subCount.py b/accessory/subCount.py +--- a/accessory/subCount.py 2020-07-16 16:16:59.360014702 -0500 ++++ b/accessory/subCount.py 2020-07-16 16:17:22.844013597 -0500 +@@ -30,5 +30,5 @@ + for i in s: + try: v=(s[i]/float(all))*100 + except: v=0.0 +- print i,s[i],all,v ++ print(i,s[i],all,v) + +diff -ru a/accessory/TableToGFF.py b/accessory/TableToGFF.py +--- a/accessory/TableToGFF.py 2020-07-16 16:16:59.360014702 -0500 ++++ b/accessory/TableToGFF.py 2020-07-16 16:17:22.474013615 -0500 +@@ -29,7 +29,7 @@ + pid=str(os.getpid()+random.randint(0,999999999)) + + def usage(): +- print """ ++ print(""" + USAGE: python TableToGFF.py [options] + Options: + -i Table file from REDItools +@@ -40,7 +40,7 @@ + -o Outfile [outTable_%s.gff] + -h Print this help + +-"""%(pid) ++"""%(pid)) + + try: + opts, args = getopt.getopt(sys.argv[1:], "i:o:sthT:b:",["help"]) +@@ -48,7 +48,7 @@ + usage() + sys.exit(2) + except getopt.GetoptError as err: +- print str(err) # will print something like "option -a not recognized" ++ print(str(err)) # will print something like "option -a not recognized" + usage() + sys.exit(2) + +diff -ru a/accessory/tableToTabix.py b/accessory/tableToTabix.py +--- a/accessory/tableToTabix.py 2020-07-16 16:16:59.360014702 -0500 ++++ b/accessory/tableToTabix.py 2020-07-16 16:17:22.913013594 -0500 +@@ -31,7 +31,7 @@ + pid=str(os.getpid()+random.randint(0,999999999)) + + def usage(): +- print """ ++ print(""" + USAGE: python tableToTabix.py [options] + Options: + -i TAB-delimited file +@@ -46,7 +46,7 @@ + -u Save an uncompressed GFF copy (add _copy suffix) + -h Print this help + +-""" ++""") + + try: + opts, args = getopt.getopt(sys.argv[1:], "i:Sb:t:hus:c:e:m:0",["help"]) +@@ -54,7 +54,7 @@ + usage() + sys.exit(2) + except getopt.GetoptError as err: +- print str(err) # will print something like "option -a not recognized" ++ print(str(err)) # will print something like "option -a not recognized" + usage() + sys.exit(2) + +diff -ru a/main/REDItoolDenovo.py b/main/REDItoolDenovo.py +--- a/main/REDItoolDenovo.py 2020-07-16 16:16:59.360014702 -0500 ++++ b/main/REDItoolDenovo.py 2020-07-16 16:17:21.265013672 -0500 +@@ -75,7 +75,7 @@ + return 1 + numerator = 1 + denominator = 1 +- for i in xrange(s+1, population + 1): ++ for i in range(s+1, population + 1): + numerator *= i + denominator *= (i - s) + return numerator/denominator +@@ -275,7 +275,7 @@ + try: import pysam + except: sys.exit('Pysam module not found.') + from multiprocessing import Process, Queue +-from Queue import Empty ++from queue import Empty + try: + from fisher import pvalue + exfisher=1 +@@ -292,7 +292,7 @@ + pid=str(os.getpid()+random.randint(0,999999999)) + + def usage(): +- print """ ++ print(""" + USAGE: python REDItoolDenovo.py [options] + Options: + -i BAM file +@@ -343,12 +343,12 @@ + - For Tophat2 use 50 + - For GSNAP use 30 + +-"""%(pid) ++"""%(pid)) + + try: + opts, args = getopt.getopt(sys.argv[1:], "b:f:k:t:o:c:q:m:O:s:edpuT:B:v:n:EP:r:hHa:i:lIU:V:w:XG:K:F:g:x:W") + except getopt.GetoptError as err: +- print str(err) # will print something like "option -a not recognized" ++ print(str(err)) # will print something like "option -a not recognized" + usage() + sys.exit(2) + +@@ -474,7 +474,7 @@ + annfile=a + uann=1 + else: +- print o ++ print(o) + assert False, "Unhandled Option" + + ####### +@@ -532,7 +532,7 @@ + return False + try: + os.kill(pid, 0) +- except OSError, e: ++ except OSError as e: + return e.errno == errno.EPERM + else: + return True +@@ -637,9 +637,9 @@ + subs=[] + subv=[] + for i in seq.upper(): +- if b.has_key(i): b[i]+=1 ++ if i in b: b[i]+=1 + for i in b: +- if not b.has_key(ref): continue ++ if ref not in b: continue + if b[i]!=0 and i!=ref: + vv=float(b[i])/(b[i]+b[ref]) + subv.append((b[i],vv,ref+i)) +@@ -690,7 +690,7 @@ + a={'A':'T','T':'A','C':'G','G':'C'} + ss='' + for i in s.upper(): +- if a.has_key(i): ss+=a[i] ++ if i in a: ss+=a[i] + else: ss+='N' + return ss + +@@ -777,7 +777,7 @@ + frefs.append(l[0]) + fidxinfo.close() + rnof=[] +-for i in rrefs.keys(): ++for i in list(rrefs.keys()): + if i not in frefs: sys.stderr.write('WARNING: Region %s in RNA-Seq not found in reference file.\n' %(i)) + ##################### + +@@ -817,8 +817,8 @@ + #mainbam=pysam.Samfile(bamfile,"rb") + #regions=mainbam.references + #mainbam.close() +-dicregions=dict(rrefs.items()) +-chrs=[x for x in dicregions.keys() if x not in nochrs] ++dicregions=dict(list(rrefs.items())) ++chrs=[x for x in list(dicregions.keys()) if x not in nochrs] + sys.stderr.write('Analysis on %i regions.\n' %(len(chrs))) + + if infolder!='': outfolder=os.path.join(outfolder_,'denovo_%s_%s' %(infolder,pid)) +@@ -906,7 +906,7 @@ + if pileupread.alignment.has_tag('SA'): continue + #s,q,t,qq=pileupread.alignment.seq[pileupread.qpos].upper(),ord(pileupread.alignment.qual[pileupread.qpos])-QVAL,'*',pileupread.alignment.qual[pileupread.qpos] + # escludi posizioni introniche nei pressi di splice sites +- if exss and di.has_key(pileupcolumn.reference_pos+1): continue #MOD ++ if exss and pileupcolumn.reference_pos+1 in di: continue #MOD + # multiple hit + if exh: #MOD + if pileupread.alignment.is_secondary: continue #MOD +@@ -998,7 +998,7 @@ + elif pileupread.alignment.is_read2: rt=2 + else: rt=0 + rname=pileupread.alignment.query_name+'_%i'%(rt) #MOD +- if d.has_key(rname): blatc+='0' #continue ++ if rname in d: blatc+='0' #continue + else: blatc+='1' + # se la base e' diversa dal reference + # se in regione omopolimerica scarta +@@ -1032,7 +1032,7 @@ + if not custsub: + ni='ACGT' + for b in range(4): +- if dsubs.has_key(ref.upper()+ni[b]): ++ if ref.upper()+ni[b] in dsubs: + dsubs[ref.upper()+ni[b]]+=bcomp[b] + if expos: + if chr in extabix.contigs: +diff -ru a/main/REDItoolDnaRna.py b/main/REDItoolDnaRna.py +--- a/main/REDItoolDnaRna.py 2020-07-16 16:16:59.360014702 -0500 ++++ b/main/REDItoolDnaRna.py 2020-07-16 16:17:21.757013649 -0500 +@@ -23,7 +23,7 @@ + try: import pysam + except: sys.exit('Pysam module not found.') + from multiprocessing import Process, Queue +-from Queue import Empty ++from queue import Empty + import gzip + + pysamVersion=pysam.__version__ +@@ -34,7 +34,7 @@ + pid=str(os.getpid()+random.randint(0,999999999)) + + def usage(): +- print """ ++ print(""" + USAGE: python REDItoolDnaRNA.py [options] + Options: + -i RNA-Seq BAM file +@@ -103,7 +103,7 @@ + - For Tophat2 use 50 + - For GSNAP use 30 + +-"""%(pid) ++"""%(pid)) + + #option --fastq Fastq to get reads [requires --reads], separated by comma [if paired] NOT IMPLEMENTED + #option --rmOver Remove overlapping reads NOT IMPLEMENTED +@@ -111,7 +111,7 @@ + try: + opts, args = getopt.getopt(sys.argv[1:], "i:f:k:t:o:c:q:m:O:s:edpuA:a:B:b:lLv:n:EPr:hHIXG:K:j:C:JDUzw:N:ZW:RVMT:F:x:g:SY:",["help","gzip","reads","addP","rmIndels"]) + except getopt.GetoptError as err: +- print str(err) # will print something like "option -a not recognized" ++ print(str(err)) # will print something like "option -a not recognized" + usage() + sys.exit(2) + +@@ -325,7 +325,7 @@ + params.append('Analysis ID: %s\n' %(pid)) + params.append('Analysis time: %s\n' %(script_time)) + params.append('-i --> RNA-Seq BAM file: %s\n' %(bamfile)) +-params.append('-j --> DNA-Seq BAM file(s): %s\n' %(','.join(dgbamfile.keys()))) ++params.append('-j --> DNA-Seq BAM file(s): %s\n' %(','.join(list(dgbamfile.keys())))) + params.append('-I --> Sort RNA-Seq BAM file: %i\n' %(sortbam)) + params.append('-J --> Sort DNA-Seq BAM file: %i\n' %(sortgbam)) + params.append('-f --> Reference file: %s\n' %(fastafile)) +@@ -483,9 +483,9 @@ + subs=[] + subv=[] + for i in seq.upper(): +- if b.has_key(i): b[i]+=1 ++ if i in b: b[i]+=1 + for i in b: +- if not b.has_key(ref): continue ++ if ref not in b: continue + if b[i]!=0 and i!=ref: + vv=float(b[i])/(b[i]+b[ref]) + subv.append((b[i],vv,ref+i)) +@@ -537,7 +537,7 @@ + a={'A':'T','T':'A','C':'G','G':'C'} + ss='' + for i in s.upper(): +- if a.has_key(i): ss+=a[i] ++ if i in a: ss+=a[i] + elif i==' ': ss+=' ' + elif i=='-': ss+='-' + else: ss+='N' +@@ -682,7 +682,7 @@ + if l.count(i[0])==2: + s='=' + if i[1]!=i[2]: s='!' +- if us.has_key(i[0]): us[i[0]].append((x,s)) ++ if i[0] in us: us[i[0]].append((x,s)) + else: us[i[0]]=[(x,s)] + x+=1 + for i in us: +@@ -753,7 +753,7 @@ + pysam.faidx(fastafile) + ########################################################### + # Check reference for name consistency +-grefs=dgdic.keys() ++grefs=list(dgdic.keys()) + rrefs={} + ridxinfo=pysam.idxstats(bamfile) + for j in ridxinfo.split('\n'): #MOD +@@ -769,7 +769,7 @@ + fidxinfo.close() + # in rna-seq + rnof=[] +-for i in rrefs.keys(): ++for i in list(rrefs.keys()): + if i not in frefs: sys.stderr.write('WARNING: Region %s in RNA-Seq not found in reference file.\n' %(i)) + if len(gbamfile)!=0: + for i in grefs: +@@ -833,9 +833,9 @@ + #regions=mainbam.references + #regionslens=mainbam.lengths + #mainbam.close() +-dicregions=dict(rrefs.items()) ++dicregions=dict(list(rrefs.items())) + #dicregions=dict([(regions[x],regionslens[x]) for x in range(len(regions))]) +-chrs=[x for x in dicregions.keys() if x not in nochrs] ++chrs=[x for x in list(dicregions.keys()) if x not in nochrs] + if fworkR: sys.stderr.write('Analysis on region %s:%i-%i.\n' %(workR[0],workR[1][0],workR[1][1])) + else: sys.stderr.write('Analysis on %i regions.\n' %(len(chrs))) + ########################################################### +@@ -883,7 +883,7 @@ + isgbam=1 + inputs=myinput.split('$') + chr,bamfile,start_region,lenregion,suff_=inputs[0],inputs[1],int(inputs[2]),int(inputs[3]),inputs[4] +- if not dgdic.has_key(chr): isgbam=0 ++ if chr not in dgdic: isgbam=0 + outfile=os.path.join(outfolder,'table_%s'%(suff_)) + if slist: + if gziptab: outrna=gzip.open(os.path.join(outfolder,'pileupRNA_%s.gz'%(suff)),'wb') +@@ -1024,7 +1024,7 @@ + if pileupread.alignment.is_read1: rt=1 + elif pileupread.alignment.is_read2: rt=2 + rname=pileupread.alignment.query_name+'_%i'%(rt) +- if gd.has_key(rname): gblatc+='0' #continue ++ if rname in gd: gblatc+='0' #continue + else: gblatc+='1' + # se la base e' diversa dal reference + # se in regione omopolimerica scarta +@@ -1079,7 +1079,7 @@ + #s,q,t,qq=pileupread.alignment.query_sequence[pileupread.query_position].upper(),pileupread.alignment.query_qualities[pileupread.query_position],'*',pileupread.alignment.qual[pileupread.query_position] + #s,q,t,qq=pileupread.alignment.seq[pileupread.qpos].upper(),ord(pileupread.alignment.qual[pileupread.qpos])-QVAL,'*',pileupread.alignment.qual[pileupread.qpos] + # escludi posizioni introniche nei pressi di splice sites +- if exss and di.has_key(pileupcolumn.reference_pos+1): continue ++ if exss and pileupcolumn.reference_pos+1 in di: continue + # multiple hit + if exh: + if pileupread.alignment.is_secondary: continue +@@ -1179,7 +1179,7 @@ + elif pileupread.alignment.is_read2: rt=2 + else: rt=0 + rname=pileupread.alignment.query_name+'_%i'%(rt) +- if d.has_key(rname): blatc+='0' #continue ++ if rname in d: blatc+='0' #continue + else: blatc+='1' + # se la base e' diversa dal reference + # se in regione omopolimerica scarta +@@ -1213,7 +1213,7 @@ + else: addpos=(pileupread.alignment.query_name,'-',pileupread.alignment.reference_name,'-',pileupread.alignment.reference_start,pileupread.alignment.reference_end,0 , 0) + rqname_comp=rqname+'$'+pileupread.alignment.reference_name+'$'+str(pileupcolumn.reference_pos+1) + #addpos=(chr+'_'+str(pileupcolumn.reference_pos+1),pileupcolumn.reference_pos+1) +- if not grdb.has_key(rqname): ++ if rqname not in grdb: + #print rqname reference_start + outreads.write('>'+rqname_comp+'\n'+rseqname+'\n') + #grdb[rqname]=[addpos] +@@ -1221,7 +1221,7 @@ + # if addpos not in grdb[rqname]: + # grdb[rqname].append(addpos) + if addP: +- if not grdb2.has_key(rname): grdb2[rname]=addpos ++ if rname not in grdb2: grdb2[rname]=addpos + if seq.strip()!='': + #print seq,qual,squal + if rmIndel: +@@ -1268,7 +1268,7 @@ + if exinv and subs=='-': continue + if not checkSubs(subs): continue + #print out rna-seq info + dna-seq +- if gdic.has_key(pileupcolumn.reference_pos): # abbiamo l'informazione genomica ++ if pileupcolumn.reference_pos in gdic: # abbiamo l'informazione genomica + if exnonh and not gdic[pileupcolumn.reference_pos][1]: continue + if mystrand=='0': + gdic[pileupcolumn.reference_pos][0][2]=comp2(eval(gdic[pileupcolumn.reference_pos][0][2])) +diff -ru a/main/REDItoolKnown.py b/main/REDItoolKnown.py +--- a/main/REDItoolKnown.py 2020-07-16 16:16:59.360014702 -0500 ++++ b/main/REDItoolKnown.py 2020-07-16 16:17:22.063013634 -0500 +@@ -23,7 +23,7 @@ + try: import pysam + except: sys.exit('Pysam module not found.') + from multiprocessing import Process, Queue +-from Queue import Empty ++from queue import Empty + + pysamVersion=pysam.__version__ + +@@ -34,7 +34,7 @@ + pid=str(os.getpid()+random.randint(0,999999999)) + + def usage(): +- print """ ++ print(""" + USAGE: python REDItoolKnown.py [options] + Options: + -i BAM file +@@ -82,12 +82,12 @@ + - For Tophat2 use 50 + - For GSNAP use 30 + +-"""%(pid) ++"""%(pid)) + + try: + opts, args = getopt.getopt(sys.argv[1:], "i:f:k:t:o:c:q:m:O:s:edpuT:B:Sv:n:EP:r:hHIXG:K:l:C:F:x:g:U") + except getopt.GetoptError as err: +- print str(err) # will print something like "option -a not recognized" ++ print(str(err)) # will print something like "option -a not recognized" + usage() + sys.exit(2) + +@@ -257,7 +257,7 @@ + return False + try: + os.kill(pid, 0) +- except OSError, e: ++ except OSError as e: + return e.errno == errno.EPERM + else: + return True +@@ -361,9 +361,9 @@ + subs=[] + subv=[] + for i in seq.upper(): +- if b.has_key(i): b[i]+=1 ++ if i in b: b[i]+=1 + for i in b: +- if not b.has_key(ref): continue ++ if ref not in b: continue + if b[i]!=0 and i!=ref: + vv=float(b[i])/(b[i]+b[ref]) + subv.append((b[i],vv,ref+i)) +@@ -414,7 +414,7 @@ + a={'A':'T','T':'A','C':'G','G':'C'} + ss='' + for i in s.upper(): +- if a.has_key(i): ss+=a[i] ++ if i in a: ss+=a[i] + else: ss+='N' + return ss + +@@ -524,7 +524,7 @@ + fidxinfo.close() + # in rna-seq + rnof=[] +-for i in rrefs.keys(): ++for i in list(rrefs.keys()): + if i not in frefs: sys.stderr.write('WARNING: Region %s in RNA-Seq not found in reference file.\n' %(i)) + ################################## + +@@ -568,8 +568,8 @@ + #mainbam.close() + #dicregions=dict([(regions[x],regionslens[x]) for x in range(len(regions))]) + #chrs=[x for x in regions if x not in nochrs] +-dicregions=dict(rrefs.items()) +-chrs=[x for x in dicregions.keys() if x not in nochrs] ++dicregions=dict(list(rrefs.items())) ++chrs=[x for x in list(dicregions.keys()) if x not in nochrs] + sys.stderr.write('Analysis on %i regions.\n' %(len(chrs))) + + if infolder!='': outfolder=os.path.join(outfolder_,'known_%s_%s' %(infolder,pid)) +@@ -654,7 +654,7 @@ + # else explore bam to find exact positions + for pileupcolumn in bam.pileup(chr,startk,endk,stepper='nofilter', max_depth=MAX_DEPTH): + if not startk<=pileupcolumn.reference_pos<=endk: continue +- if not kdic.has_key(pileupcolumn.reference_pos+1): continue ++ if pileupcolumn.reference_pos+1 not in kdic: continue + ref=fasta.fetch(chr,pileupcolumn.reference_pos,pileupcolumn.reference_pos+1).upper() + seq,qual,strand,squal,blatc='',0,'',[],'' + if rmsh: +@@ -668,7 +668,7 @@ + if pileupread.alignment.is_supplementary: continue + if pileupread.alignment.has_tag('SA'): continue + # escludi posizioni introniche nei pressi di splice sites +- if exss and di.has_key(pileupcolumn.reference_pos+1): continue ++ if exss and pileupcolumn.reference_pos+1 in di: continue + # multiple hit + if exh: + if pileupread.alignment.is_secondary: continue +@@ -754,7 +754,7 @@ + elif pileupread.alignment.is_read2: rt=2 + else: rt=0 + rname=pileupread.alignment.query_name+'_%i'%(rt) +- if d.has_key(rname): blatc+='0' #continue ++ if rname in d: blatc+='0' #continue + else: blatc+='1' + # se la base e' diversa dal reference + # se in regione omopolimerica scarta diff --git a/var/spack/repos/builtin/packages/reditools/setup.py.patch b/var/spack/repos/builtin/packages/reditools/setup.py.patch new file mode 100644 index 0000000000..f65345ad92 --- /dev/null +++ b/var/spack/repos/builtin/packages/reditools/setup.py.patch @@ -0,0 +1,11 @@ +--- a/setup.py 2020-07-16 14:01:48.601449013 -0500 ++++ b/setup.py 2020-07-16 14:02:31.547441668 -0500 +@@ -33,7 +33,7 @@ + 'Operating System :: POSIX', + 'Programming Language :: Python', + ], +- long_description=open('README').read(), ++ long_description=open('README_1.md').read(), + platforms=['Linux','Unix','MacOS'] + ) + diff --git a/var/spack/repos/builtin/packages/rivet/gsl.m4 b/var/spack/repos/builtin/packages/rivet/gsl.m4 new file mode 100644 index 0000000000..61c89c957c --- /dev/null +++ b/var/spack/repos/builtin/packages/rivet/gsl.m4 @@ -0,0 +1,60 @@ +# AC_SEARCH_GSL(actionIfFound, actionIfNotFound) +AC_DEFUN([AC_SEARCH_GSL],[ + AC_ARG_WITH([gsl], AC_HELP_STRING(--with-gsl, [path to GSL library and header files])) + + ## Use a specified --with-gsl arg to set basic paths, if provided + GSLCONFIG_PATH=$PATH + if test -e "$with_gsl"; then + GSLCONFIG_PATH="$with_gsl/bin:$GSLCONFIG_PATH" + GSLPATH="$with_gsl" + GSLINCPATH="$GSLPATH/include" + GSLLIBPATH="$GSLPATH/lib" + GSL_CPPFLAGS="-I$GSLINCPATH" + GSL_CXXFLAGS="" + GSL_LDFLAGS="-L$GSLPATH/lib -lgsl -lgslcblas -lm" + fi + + ## Try to do better, using the gsl-config script + AC_PATH_PROG(GSLCONFIG, gsl-config, [], [$GSLCONFIG_PATH]) + if test -x "$GSLCONFIG"; then + AC_MSG_NOTICE(Using $GSLCONFIG to find GSL flags) + GSLPATH=`$GSLCONFIG --prefix` + GSLINCPATH="$GSLPATH/include" + GSLLIBPATH="$GSLPATH/lib" + GSL_CPPFLAGS=`$GSLCONFIG --cflags` + GSL_CXXFLAGS=`$GSLCONFIG --cflags` + GSL_LDFLAGS=`$GSLCONFIG --libs` + fi + + ## If it's worked, propagate the conditionals and execute success arg + if test -e "$GSLPATH"; then + AM_CONDITIONAL([WITH_GSL], true) + AM_CONDITIONAL([WITH_GSLLIB], true) + AM_CONDITIONAL([WITH_GSLINC], true) + AM_CONDITIONAL([WITHOUT_GSL], false) + AM_CONDITIONAL([WITHOUT_GSLLIB], false) + AM_CONDITIONAL([WITHOUT_GSLINC], false) + $1 + else + ## Otherwise execute the fail arg + AM_CONDITIONAL([WITH_GSL], false) + AM_CONDITIONAL([WITH_GSLLIB], false) + AM_CONDITIONAL([WITH_GSLINC], false) + AM_CONDITIONAL([WITHOUT_GSL], true) + AM_CONDITIONAL([WITHOUT_GSLLIB], true) + AM_CONDITIONAL([WITHOUT_GSLINC], true) + $2 + fi + + ## Propagate path and flag variables + AC_SUBST([GSLPATH]) + AC_SUBST([GSLINCPATH]) + AC_SUBST([GSLLIBPATH]) + AC_SUBST([GSL_CPPFLAGS]) + AC_SUBST([GSL_CXXFLAGS]) + AC_SUBST([GSL_LDFLAGS]) + AC_MSG_NOTICE([GSL include path is $GSLINCPATH]) + AC_MSG_NOTICE([GSL CPPFLAGS is $GSL_CPPFLAGS]) + AC_MSG_NOTICE([GSL CXXFLAGS is $GSL_CXXFLAGS]) + AC_MSG_NOTICE([GSL LDFLAGS is $GSL_LDFLAGS]) +]) diff --git a/var/spack/repos/builtin/packages/rivet/package.py b/var/spack/repos/builtin/packages/rivet/package.py new file mode 100644 index 0000000000..3d28b81632 --- /dev/null +++ b/var/spack/repos/builtin/packages/rivet/package.py @@ -0,0 +1,170 @@ +# 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 * +import os + + +class Rivet(AutotoolsPackage): + """Rivet - the particle-physics MC analysis toolkit""" + + homepage = "https://rivet.hepforge.org/" + url = "https://rivet.hepforge.org/downloads/?f=Rivet-3.1.2.tar.bz2" + + version('3.1.2', sha256='c041d09644f4eae7c212d82237033267fbc1583dfbb4e3e67377f86cece9577a') + version('3.1.1', sha256='7c98b26af5f859bc65200499d15765e4b056b4cf233b34176f27a7e6bc4cf9b1') + version('3.1.0', sha256='4e156daee5eb10bd1573ef32d4a6a6df74788cd9180fc977db93ef4cb281000c') + version('3.0.2', sha256='9624d6cdcad77eafde40312cf6a1c97f4263f22faf9244b198c140b2c256d2f3') + version('3.0.1', sha256='e7551168b86a05c9c029c319c313a0aa142a476195e7ff986c896c1b868f89dd') + version('3.0.0', sha256='3944434d3791dccb54f7b2257589df6252cc7c065ce9deb57fbef466ff9e62b1') + version('2.7.2b', sha256='e9f0a709f8226cde54f9406d36efab1e1b8ed0c6574fbcb1d72a186b09188106') + version('2.7.2', sha256='a6634537c005660e56514b70ab9efb9d466c50685d6fb45ed03e9e1988479f02') + version('2.7.1', sha256='b4145d8369b8a9fa0ada7ba2e5a2e9992d8e4a12ca4874d835246d2e708cbdef') + version('2.7.0', sha256='34ad6a0b47dc4736feac8580a275e8b3a46df8fbeefd91e813add0a1525aacaf') + version('2.6.2', sha256='9dde49d5c02038a295f03d2972f85be8746205bdb5ca1eab868b2c9129ade37a') + version('2.6.1', sha256='e490d1f35aafa3e175690ae92f862c07a5fe2c51f693c88c87789f0441c89022') + version('2.6.0', sha256='fb3229dccd31ea40b0af09974253073f6ad0a3a97e9a0cf44b53748ea8e2f900') + version('2.5.4', sha256='772252193698d994fd111f790e72a4024df7572d492e3d5a9e840a074c5527e2') + version('2.5.3', sha256='99e10330564ac479c6637d317c08882889a272db8ee204ad45a6ee1dcb291de4') + version('2.5.2', sha256='70aa27764a14159c94c0b753a0c3d3600ac669def398cb2d8a6c63ae17704f05') + version('2.5.1', sha256='14ee5828de217e96a30e666192515a2083afee030d81d36fc6bea948e9f7810a') + version('2.5.0', sha256='c59ff35715be0caf65d6ba808b3badad0f6f7e7758f2049fb6ba43ed579bd4af') + version('2.4.3', sha256='18aafecab6c3baeac871a9743946433c2dc01825d8fe291b157719a15c342682') + version('2.4.2', sha256='accb146f3082719781a51eec879427c31401577c44f60b27ec8450102fe68aff') + version('2.4.1', sha256='c14f0f58d1792d84d62c62b44ebb94db004776feba83fd8186bba898d55123cf') + version('2.4.0', sha256='5ee2f34a277ed058b8aef750d946b40d4cf781023b9adab03ca95e803a39fb06') + version('2.3.0', sha256='dd07702981d586e4b97b0fa56ae08cd08a631a952322a9b52e7622a46a7741ab') + version('2.2.1', sha256='9e64ba19d567bdf4d0cc42b435491c4363b5fec90170d034445a99a1e752b691') + version('2.2.0', sha256='3bdafe2007ff54c4734e0c8bc6ba9dc97028d4c41d538201b9582a869af8ae1a') + version('2.1.2', sha256='40a20c1ee186326e5bfd906e0bc88f16dc740551be9cc274e9a826873d9c1eed') + version('2.1.1', sha256='eefa936de6f6c34a6bab39899841f3189d7621c8ba227032f0f32e6e20dfcf85') + version('2.1.0', sha256='58a1ca7b5a47719933782c050e67d0eb3823a7384cfc3c434fece41724c307e6') + version('2.0.0', sha256='038f81f92fbba001ed23b56c1229a4f3b41e0c32e00bc92ea58d042909e3855a') + version('1.9.0', sha256='55ef552b351328c287194aa99fa2b797e6632dc3fa88dfccd58264602012e044') + version('1.8.3', sha256='aa82742fd4d7c68bfbef1367c4c605e06f9fed479a753db96aa6659407fcc4fd') + version('1.8.2', sha256='56be98d31693253543f3e657c8f8edc7979c89fdb0ede1bdddfb3a9f5d4cfc3a') + version('1.8.1', sha256='7e06d22350bec30220186e796caa93e9bfebd8d771a7efd35673897248437c61') + version('1.8.0', sha256='7b28f9163f74583b1542b87c48f28a3ad1338da6136d8e3ca0aeba21095f5fe0') + version('1.7.0', sha256='180741f590f210474b686d60241ad59e008221751ead21f0950c59aff93e54fd') + version('1.6.0', sha256='1affd9e779f48477402e4150f315b3179204cbbc920db2d0129cd9c38bd18b26') + version('1.5.1', sha256='9f24e9824286d5b0302c7e440f4803a8e3b8da50e1260e78c3b3c2eb587b317a') + version('1.5.0', sha256='b7fe63e8caacc5c038ab567fe505d275288eedaa1aed6c379057629eef126006') + version('1.4.0', sha256='067c94659bb7859904e20e72a676f94f103e6e012b7dba8071f51e8a6e624dbb') + version('1.3.0', sha256='5ce41c8492c2fcf809a7135bf8335a01a98ea85fb556b3d00bd4260151efd12f') + version('1.2.1', sha256='2d0380b819f778d8d9c2a462af90bd6a6188121e4edcc6202d936130b59bab17') + version('1.2.0', sha256='ff5869f6dc9465f429e54686e12c39becac57a83273542179a59bac7561b6404') + version('1.1.3', sha256='4be3cd9e6f808cdc5511991be2756f5fa838b6ecd01806fdbe7aec0aa382f946') + version('1.1.2', sha256='a15b5d3339481446dec1b719d7d531a87a2e9d11c9fe8044e270ea69611b07c8') + version('1.1.1', sha256='bd87fefee6bb8368216755342dc80ab3f8f3c813732dd03c6f94135d45f7036b') + + # According to A. Buckley (main Rivet developer): + # "typically a given Rivet version will work with + # all YODA releases of that middle-digit version, + # and maybe older. Generally it's always a good idea + # to be using the latest versions of both.". The versions below + # are taken from LCG stack which, in most cases, is the definition + # of "latest" at the moment of release. + depends_on('yoda@1.0.4', when='@2.0.0') + depends_on('yoda@1.0.5', when='@2.1.0') + depends_on('yoda@1.0.6', when='@2.1.1') + depends_on('yoda@1.1.0', when='@2.1.2') + depends_on('yoda@1.3.0', when='@2.2.0') + depends_on('yoda@1.3.1', when='@2.2.1') + depends_on('yoda@1.4.0', when='@2.3.0') + depends_on('yoda@1.5.5', when='@2.4.0') + depends_on('yoda@1.5.9', when='@2.4.2') + depends_on('yoda@1.6.1', when='@2.4.3') + depends_on('yoda@1.6.2', when='@2.5.0') + depends_on('yoda@1.6.3', when='@2.5.1') + depends_on('yoda@1.6.5', when='@2.5.2') + depends_on('yoda@1.6.6', when='@2.5.3') + depends_on('yoda@1.6.7', when='@2.5.4') + depends_on('yoda@1.7.1', when='@2.6.1') + depends_on('yoda@1.7.4', when='@2.6.2') + depends_on('yoda@1.7.5', when='@2.7.2') + depends_on('yoda@1.7.5', when='@2.7.2b') + depends_on('yoda@1.7.7', when='@3.0.1') + depends_on('yoda@1.8.0', when='@3.1.0') + depends_on('yoda@1.8.2', when='@3.1.1') + depends_on('yoda@1.8.3', when='@3.1.2') + + # The following versions were not a part of LCG stack + # and thus the exact version of YODA is unknown + depends_on('yoda@1.7.0:1.7.999', when='@2.6.0,2.7.0,2.7.1,3.0.0,3.0.2,3.1.0') + depends_on('yoda@1.5.0:1.5.999', when='@2.4.1') + + depends_on('hepmc', type=('build', 'run')) + depends_on('boost', when='@:2.5.0,3:', type=('build', 'run')) + depends_on('fastjet', type=('build', 'run')) + depends_on('fjcontrib', type=('build', 'run'), when='@3.0.0:') + depends_on('gsl', type=('build', 'run'), when='@:2.6.0,2.6.2:') + depends_on('python', type=('build', 'run')) + depends_on('swig', type=('build', 'run')) + depends_on('yaml-cpp', when='@2.0.0:2.1.2', type=('build', 'run')) + + depends_on('autoconf', type='build') + depends_on('automake', type='build') + depends_on('libtool', type='build') + depends_on('m4', type='build') + + patch('rivet-1.8.2.patch', when='@1.8.2', level=0) + patch('rivet-1.9.0.patch', when='@1.9.0', level=0) + patch('rivet-2.2.0.patch', when='@2.2.0', level=0) + patch('rivet-2.2.1.patch', when='@2.2.1', level=0) + patch('rivet-2.4.0.patch', when='@2.4.0', level=0) + patch('rivet-2.4.2.patch', when='@2.4.2', level=0) + patch('rivet-2.4.3.patch', when='@2.4.3', level=0) + patch('rivet-2.5.1.patch', when='@2.5.1', level=0) + patch('rivet-2.5.2.patch', when='@2.5.2', level=0) + patch('rivet-2.5.3.patch', when='@2.5.3', level=0) + patch('rivet-2.5.4.patch', when='@2.5.4', level=0) + patch('rivet-2.6.0.patch', when='@2.6.0', level=0) + patch('rivet-2.6.1.patch', when='@2.6.1', level=0) + patch('rivet-2.6.2.patch', when='@2.6.2', level=0) + patch('rivet-2.7.0.patch', when='@2.7.0', level=0) + patch('rivet-3.0.0.patch', when='@3.0.0', level=0) + patch('rivet-3.0.1.patch', when='@3.0.1', level=0) + patch('rivet-3.1.0.patch', when='@3.1.0', level=0) + patch('rivet-3.1.1.patch', when='@3.1.1', level=0) + + @run_before('configure') + def copy_gsl_m4(self): + if self.spec.satisfies('@2.6.2:'): + copy(join_path(os.path.dirname(__file__), 'gsl.m4'), 'm4/gsl.m4') + + @property + def force_autoreconf(self): + return self.version >= Version('2.6.2') + + def setup_build_environment(self, env): + # this avoids an "import site" error in the build + env.unset('PYTHONHOME') + + def configure_args(self): + args = [] + args += ['--with-hepmc=' + self.spec['hepmc'].prefix] + + if self.spec.satisfies('@:1.999.999'): + args += ['--with-boost-incpath=' + self.spec['boost'].includes] + else: + if self.spec.satisfies('@:2.5.0,3:'): + args += ['--with-boost=' + self.spec['boost'].prefix] + + args += ['--with-fastjet=' + self.spec['fastjet'].prefix] + if self.spec.satisfies('@2:'): + args += ['--with-yoda=' + self.spec['yoda'].prefix] + + if self.spec.satisfies('@:2.6.0,2.6.2:'): + args += ['--with-gsl=' + self.spec['gsl'].prefix] + + if self.spec.satisfies('@3.0.0:'): + args += ['--with-fjcontrib=' + self.spec['fjcontrib'].prefix] + + args += ['--disable-pdfmanual', '--enable-unvalidated'] + + if self.spec.satisfies('@2:'): + args += ['--enable-stdcxx11'] + + return args diff --git a/var/spack/repos/builtin/packages/rivet/rivet-1.8.2.patch b/var/spack/repos/builtin/packages/rivet/rivet-1.8.2.patch new file mode 100644 index 0000000000..95cbe774a0 --- /dev/null +++ b/var/spack/repos/builtin/packages/rivet/rivet-1.8.2.patch @@ -0,0 +1,44 @@ +--- src/Tools/Makefile.in.orig 2013-05-15 14:02:25.000000000 +0200 ++++ src/Tools/Makefile.in 2013-05-15 14:03:14.000000000 +0200 +@@ -79,7 +79,7 @@ + libRivetTools_la-ParticleIdUtils.lo \ + libRivetTools_la-tinyxml.lo libRivetTools_la-tinyxmlerror.lo \ + libRivetTools_la-tinyxmlparser.lo \ +- libRivetTools_la-BinnedHistogram.lo \ ++# libRivetTools_la-BinnedHistogram.lo \ + libRivetTools_la-mt2_bisect.lo libRivetTools_la-RivetMT2.lo \ + libRivetTools_la-BinnedHistogram.lo + libRivetTools_la_OBJECTS = $(am_libRivetTools_la_OBJECTS) +@@ -371,7 +371,7 @@ + TinyXML/tinyxml.cpp \ + TinyXML/tinyxmlerror.cpp \ + TinyXML/tinyxmlparser.cpp \ +- BinnedHistogram.cc \ ++# BinnedHistogram.cc \ + mt2_bisect.cc \ + RivetMT2.cc \ + BinnedHistogram.cc +--- include/LWH/Axis.h.orig 2013-05-14 18:30:02.000000000 +0200 ++++ include/LWH/Axis.h 2013-05-14 18:31:35.000000000 +0200 + +@@ -115,7 +115,7 @@ + * + */ + int coordToIndex(double coord) const { +- assert( ! isnan(coord) ); ++ assert( ! std::isnan(coord) ); + if ( coord >= upper ) return OVERFLOW_BIN; + else if ( coord < lower ) return UNDERFLOW_BIN; + else return int((coord - lower)/binWidth(0)); + +--- src/Tools/Makefile.am.orig 2013-05-15 13:14:11.000000000 +0200 ++++ src/Tools/Makefile.am 2013-05-15 13:16:53.000000000 +0200 +@@ -14,7 +14,7 @@ + TinyXML/tinyxml.cpp \ + TinyXML/tinyxmlerror.cpp \ + TinyXML/tinyxmlparser.cpp \ +- BinnedHistogram.cc \ ++# BinnedHistogram.cc \ + mt2_bisect.cc \ + RivetMT2.cc \ + BinnedHistogram.cc diff --git a/var/spack/repos/builtin/packages/rivet/rivet-1.9.0.patch b/var/spack/repos/builtin/packages/rivet/rivet-1.9.0.patch new file mode 100644 index 0000000000..9d274550b7 --- /dev/null +++ b/var/spack/repos/builtin/packages/rivet/rivet-1.9.0.patch @@ -0,0 +1,30 @@ +--- bin/rivet-buildplugin.in.orig 2014-09-02 11:22:32.000000000 +0200 ++++ bin/rivet-buildplugin.in 2014-09-02 11:26:31.000000000 +0200 +@@ -62,6 +62,7 @@ + mycppflags="" + prefix="@prefix@" + irivet="@includedir@" ++exec_prefix=@exec_prefix@ + test -n "$irivet" && mycppflags="$mycppflags -I${irivet}" + ihepmc="@HEPMCINCPATH@" + test -n "$ihepmc" && mycppflags="$mycppflags -I${ihepmc}" +@@ -74,7 +75,7 @@ + + ## Get Rivet system linker flags (duplicating that in rivet-config.in) + myldflags="" +-lrivet="@libdir@" ++lrivet="${exec_prefix}/lib" + test -n "$lrivet" && myldflags="$myldflags -L${lrivet}" + lhepmc="@HEPMCLIBPATH@" + test -n "$lhepmc" && myldflags="$myldflags -L${lhepmc}" +--- bin/rivet-findid 2015-06-23 09:15:28.000000001 +0200 ++++ bin/rivet-findid 2015-06-23 09:15:38.000000001 +0200 +@@ -170,7 +170,7 @@ + if k=='code': + entries[v] = c.text + if entries.get('9') == 'SPIRESTeX': +- result['bibtex'] = entries['z'] ++ result['bibtex'] = entries['a'] + + if i.get('tag') == '037': + entries = {} diff --git a/var/spack/repos/builtin/packages/rivet/rivet-2.2.0.patch b/var/spack/repos/builtin/packages/rivet/rivet-2.2.0.patch new file mode 100644 index 0000000000..ac9268a252 --- /dev/null +++ b/var/spack/repos/builtin/packages/rivet/rivet-2.2.0.patch @@ -0,0 +1,11 @@ +--- bin/rivet-findid 2015-06-23 09:39:49.000000001 +0200 ++++ bin/rivet-findid 2015-06-23 09:40:09.000000001 +0200 +@@ -160,7 +160,7 @@ + if k=='code': + entries[v] = c.text + if entries.get('9') == 'SPIRESTeX': +- result['bibtex'] = entries['z'] ++ result['bibtex'] = entries['a'] + + if i.get('tag') == '037': + entries = {} diff --git a/var/spack/repos/builtin/packages/rivet/rivet-2.2.1.patch b/var/spack/repos/builtin/packages/rivet/rivet-2.2.1.patch new file mode 100644 index 0000000000..a9fceb92c0 --- /dev/null +++ b/var/spack/repos/builtin/packages/rivet/rivet-2.2.1.patch @@ -0,0 +1,11 @@ +--- bin/rivet-findid 2015-06-23 09:40:38.000000001 +0200 ++++ bin/rivet-findid 2015-06-23 09:40:45.000000001 +0200 +@@ -160,7 +160,7 @@ + if k=='code': + entries[v] = c.text + if entries.get('9') == 'SPIRESTeX': +- result['bibtex'] = entries['z'] ++ result['bibtex'] = entries['a'] + + if i.get('tag') == '037': + entries = {} diff --git a/var/spack/repos/builtin/packages/rivet/rivet-2.4.0.patch b/var/spack/repos/builtin/packages/rivet/rivet-2.4.0.patch new file mode 100644 index 0000000000..7ce4f1dd55 --- /dev/null +++ b/var/spack/repos/builtin/packages/rivet/rivet-2.4.0.patch @@ -0,0 +1,12 @@ +--- configure 2015-10-07 12:35:57.000000000 +0300 ++++ configure 2015-10-09 16:18:02.432562522 +0300 +@@ -18728,7 +18728,7 @@ + ## Boost utility library + echo "$as_me: this is boost.m4 serial 24" >&5 + boost_save_IFS=$IFS +-boost_version_req=1.55.0 ++boost_version_req=1.53.0 + IFS=. + set x $boost_version_req 0 0 0 + IFS=$boost_save_IFS + diff --git a/var/spack/repos/builtin/packages/rivet/rivet-2.4.2.patch b/var/spack/repos/builtin/packages/rivet/rivet-2.4.2.patch new file mode 100644 index 0000000000..98436c5acf --- /dev/null +++ b/var/spack/repos/builtin/packages/rivet/rivet-2.4.2.patch @@ -0,0 +1,39 @@ +--- configure.orig 2016-09-30 14:12:42.317369715 +0200 ++++ configure 2016-09-30 14:17:21.690229397 +0200 +@@ -19644,11 +19644,15 @@ + cat >conftest.py <<_ACEOF + + import sys, string ++# Python 2 and 3 compatible ++from future.builtins import map ++# Python 2 and 3: forward-compatible ++from future.builtins import range + # split strings by '.' and convert to numeric. Append some zeros + # because we need at least 4 digits for the hex conversion. +-minver = map(int, string.split('2.5', '.')) + [0, 0, 0] ++minver = list(map(int, '2.5'.split('.'))) + [0, 0, 0] + minverhex = 0 +-for i in xrange(0, 4): minverhex = (minverhex << 8) + minver[i] ++for i in range(0, 4): minverhex = (minverhex << 8) + minver[i] + if sys.hexversion >= minverhex: + sys.exit( 0 ) + else: +@@ -19676,15 +19680,15 @@ + fi + + +- PYTHON_VERSION=`$PYTHON -c "import sys; print '.'.join(map(str, sys.version_info[:2]));"` ++ PYTHON_VERSION=`$PYTHON -c "from __future__ import print_function; import sys; print('.'.join(map(str, sys.version_info[:2])));"` + +- RIVET_PYTHONPATH=`$PYTHON -c "import distutils.sysconfig; print distutils.sysconfig.get_python_lib(prefix='$prefix', plat_specific=True);"` ++ RIVET_PYTHONPATH=`$PYTHON -c "from __future__ import print_function; import distutils.sysconfig; print(distutils.sysconfig.get_python_lib(prefix='$prefix', plat_specific=True));"` + + ## Test for Python header + if test -x "$PYTHON"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for Python include path" >&5 + $as_echo_n "checking for Python include path... " >&6; } +- python_incpath=`$PYTHON -c "import distutils.sysconfig; print distutils.sysconfig.get_python_inc();"` ++ python_incpath=`$PYTHON -c "from __future__ import print_function; import distutils.sysconfig; print(distutils.sysconfig.get_python_inc());"` + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $python_incpath" >&5 + $as_echo "$python_incpath" >&6; } + python_header="$python_incpath/Python.h" diff --git a/var/spack/repos/builtin/packages/rivet/rivet-2.4.3.patch b/var/spack/repos/builtin/packages/rivet/rivet-2.4.3.patch new file mode 100644 index 0000000000..9d006df8c0 --- /dev/null +++ b/var/spack/repos/builtin/packages/rivet/rivet-2.4.3.patch @@ -0,0 +1,39 @@ +--- configure.orig 2016-06-28 23:57:35.000000000 +0200 ++++ configure 2016-09-19 12:44:23.411192406 +0200 +@@ -19643,11 +19643,15 @@ + cat >conftest.py <<_ACEOF + + import sys, string ++# Python 2 and 3 compatible ++from future.builtins import map ++# Python 2 and 3: forward-compatible ++from future.builtins import range + # split strings by '.' and convert to numeric. Append some zeros + # because we need at least 4 digits for the hex conversion. +-minver = map(int, string.split('2.5', '.')) + [0, 0, 0] ++minver = list(map(int, '2.5'.split('.'))) + [0, 0, 0] + minverhex = 0 +-for i in xrange(0, 4): minverhex = (minverhex << 8) + minver[i] ++for i in range(0, 4): minverhex = (minverhex << 8) + minver[i] + if sys.hexversion >= minverhex: + sys.exit( 0 ) + else: +@@ -19675,15 +19679,15 @@ + fi + + +- PYTHON_VERSION=`$PYTHON -c "import sys; print '.'.join(map(str, sys.version_info[:2]));"` ++ PYTHON_VERSION=`$PYTHON -c "from __future__ import print_function; import sys; print('.'.join(map(str, sys.version_info[:2])));"` + +- RIVET_PYTHONPATH=`$PYTHON -c "import distutils.sysconfig; print distutils.sysconfig.get_python_lib(prefix='$prefix', plat_specific=True);"` ++ RIVET_PYTHONPATH=`$PYTHON -c "from __future__ import print_function; import distutils.sysconfig; print(distutils.sysconfig.get_python_lib(prefix='$prefix', plat_specific=True));"` + + ## Test for Python header + if test -x "$PYTHON"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for Python include path" >&5 + $as_echo_n "checking for Python include path... " >&6; } +- python_incpath=`$PYTHON -c "import distutils.sysconfig; print distutils.sysconfig.get_python_inc();"` ++python_incpath=`$PYTHON -c "from __future__ import print_function; import distutils.sysconfig; print(distutils.sysconfig.get_python_inc());"` + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $python_incpath" >&5 + $as_echo "$python_incpath" >&6; } + python_header="$python_incpath/Python.h" diff --git a/var/spack/repos/builtin/packages/rivet/rivet-2.5.1.patch b/var/spack/repos/builtin/packages/rivet/rivet-2.5.1.patch new file mode 100644 index 0000000000..dc5f484203 --- /dev/null +++ b/var/spack/repos/builtin/packages/rivet/rivet-2.5.1.patch @@ -0,0 +1,39 @@ +--- configure.orig 2016-09-30 09:25:10.000000000 +0200 ++++ configure 2016-09-30 09:27:01.000000000 +0200 +@@ -19681,11 +19681,15 @@ + cat >conftest.py <<_ACEOF + + import sys, string ++# Python 2 and 3 compatible ++from future.builtins import map ++# Python 2 and 3: forward-compatible ++from future.builtins import range + # split strings by '.' and convert to numeric. Append some zeros + # because we need at least 4 digits for the hex conversion. +-minver = map(int, string.split('2.5', '.')) + [0, 0, 0] ++minver = list(map(int, '2.5'.split('.'))) + [0, 0, 0] + minverhex = 0 +-for i in xrange(0, 4): minverhex = (minverhex << 8) + minver[i] ++for i in range(0, 4): minverhex = (minverhex << 8) + minver[i] + if sys.hexversion >= minverhex: + sys.exit( 0 ) + else: +@@ -19713,15 +19717,15 @@ + fi + + +- PYTHON_VERSION=`$PYTHON -c "import sys; print '.'.join(map(str, sys.version_info[:2]));"` ++ PYTHON_VERSION=`$PYTHON -c "from __future__ import print_function; import sys; print('.'.join(map(str, sys.version_info[:2])));"` + +- RIVET_PYTHONPATH=`$PYTHON -c "import distutils.sysconfig; print distutils.sysconfig.get_python_lib(prefix='$prefix', plat_specific=True);"` ++ RIVET_PYTHONPATH=`$PYTHON -c "from __future__ import print_function; import distutils.sysconfig; print(distutils.sysconfig.get_python_lib(prefix='$prefix', plat_specific=True));"` + + ## Test for Python header + if test -x "$PYTHON"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for Python include path" >&5 + $as_echo_n "checking for Python include path... " >&6; } +- python_incpath=`$PYTHON -c "import distutils.sysconfig; print distutils.sysconfig.get_python_inc();"` ++python_incpath=`$PYTHON -c "from __future__ import print_function; import distutils.sysconfig; print(distutils.sysconfig.get_python_inc());"` + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $python_incpath" >&5 + $as_echo "$python_incpath" >&6; } + python_header="$python_incpath/Python.h" diff --git a/var/spack/repos/builtin/packages/rivet/rivet-2.5.2.patch b/var/spack/repos/builtin/packages/rivet/rivet-2.5.2.patch new file mode 100644 index 0000000000..9f536d3751 --- /dev/null +++ b/var/spack/repos/builtin/packages/rivet/rivet-2.5.2.patch @@ -0,0 +1,10 @@ +--- ./include/Rivet/Tools/RivetSTL.hh.orig 2017-08-03 11:49:33.005431033 +0200 ++++ ./include/Rivet/Tools/RivetSTL.hh 2017-08-03 11:50:13.817841608 +0200 +@@ -19,6 +19,7 @@ + #include <iomanip> + #include <cmath> + #include <limits> ++#include <functional> + + + #ifndef foreach diff --git a/var/spack/repos/builtin/packages/rivet/rivet-2.5.3.patch b/var/spack/repos/builtin/packages/rivet/rivet-2.5.3.patch new file mode 100644 index 0000000000..bebf5c73ab --- /dev/null +++ b/var/spack/repos/builtin/packages/rivet/rivet-2.5.3.patch @@ -0,0 +1,43 @@ +--- include/Rivet/Config/RivetCommon.hh.orig 2017-05-31 12:32:04.547062840 +0200 ++++ include/Rivet/Config/RivetCommon.hh 2017-05-31 12:32:12.379054886 +0200 +@@ -2,6 +2,7 @@ + #define RIVET_RivetCommon_HH + + // Convenience build-setup header for Rivet internal use ++#include <functional> + + // Automatic build info from autoconf + #include "Rivet/Config/RivetConfig.hh" +--- include/Rivet/Run.hh.orig 2017-05-31 12:36:00.225823486 +0200 ++++ include/Rivet/Run.hh 2017-05-31 12:36:18.653804770 +0200 +@@ -4,6 +4,7 @@ + + #include "Rivet/Tools/RivetSTL.hh" + #include "Rivet/Tools/RivetHepMC.hh" ++#include <functional> + + namespace Rivet { + +--- include/Rivet/Particle.hh.orig 2017-05-31 12:39:14.273626411 +0200 ++++ include/Rivet/Particle.hh 2017-05-31 14:00:02.387272379 +0200 +@@ -11,6 +11,8 @@ + // NOTE: Rivet/Tools/ParticleUtils.hh included at the end + #include "fastjet/PseudoJet.hh" + ++#include <functional> ++ + namespace Rivet { + + +--- include/Rivet/Tools/RivetSTL.hh.orig 2017-05-31 14:05:28.368975178 +0200 ++++ include/Rivet/Tools/RivetSTL.hh 2017-05-31 14:05:44.432960512 +0200 +@@ -1,6 +1,8 @@ + #ifndef RIVET_RivetSTL_HH + #define RIVET_RivetSTL_HH + ++#include <functional> ++ + #include <string> + #include <vector> + #include <set> + diff --git a/var/spack/repos/builtin/packages/rivet/rivet-2.5.4.patch b/var/spack/repos/builtin/packages/rivet/rivet-2.5.4.patch new file mode 100644 index 0000000000..af338da6d5 --- /dev/null +++ b/var/spack/repos/builtin/packages/rivet/rivet-2.5.4.patch @@ -0,0 +1,42 @@ +patch written by GENSER to avoid system libraries of GLS coming from fastjet-config +--- include/Rivet/Tools/JetUtils.hh ++++ include/Rivet/Tools/JetUtils.hh +@@ -47,4 +47,5 @@ + struct BoolJetFunctor { + virtual bool operator()(const Jet& p) const = 0; ++ virtual ~BoolJetFunctor() {} + }; + +--- include/Rivet/Tools/ParticleBaseUtils.hh ++++ include/Rivet/Tools/ParticleBaseUtils.hh +@@ -23,4 +23,5 @@ + struct BoolParticleBaseFunctor { + virtual bool operator()(const ParticleBase& p) const = 0; ++ virtual ~BoolParticleBaseFunctor() {} + }; + +@@ -397,4 +398,5 @@ + struct DoubleParticleBaseFunctor { + virtual double operator()(const ParticleBase& p) const = 0; ++ virtual ~DoubleParticleBaseFunctor() {} + }; + +--- include/Rivet/Tools/ParticleUtils.hh ++++ include/Rivet/Tools/ParticleUtils.hh +@@ -486,4 +486,5 @@ + struct BoolParticleFunctor { + virtual bool operator()(const Particle& p) const = 0; ++ virtual ~BoolParticleFunctor() {} + }; + +--- src/Makefile.in.orig 2018-01-30 13:52:58.641670247 +0100 ++++ src/Makefile.in 2018-01-30 13:53:19.377586118 +0100 +@@ -449,7 +449,7 @@ + libRivet_la_SOURCES = + libRivet_la_LDFLAGS = -export-dynamic -avoid-version -L$(YODALIBPATH) -L$(HEPMCLIBPATH) + libRivet_la_LIBADD = Core/libRivetCore.la Projections/libRivetProjections.la Tools/libRivetTools.la $(ANA_LIBADD) \ +- -lYODA -lHepMC -ldl -lm $(FASTJETCONFIGLIBADD) $(GSL_LDFLAGS) ++ -lYODA -lHepMC -ldl -lm $(GSL_LDFLAGS) $(FASTJETCONFIGLIBADD) + + all: all-recursive + diff --git a/var/spack/repos/builtin/packages/rivet/rivet-2.6.0.patch b/var/spack/repos/builtin/packages/rivet/rivet-2.6.0.patch new file mode 100644 index 0000000000..2cb7cab14b --- /dev/null +++ b/var/spack/repos/builtin/packages/rivet/rivet-2.6.0.patch @@ -0,0 +1,90 @@ +--- include/Rivet/Tools/JetUtils.hh ++++ include/Rivet/Tools/JetUtils.hh +@@ -47,4 +47,5 @@ + struct BoolJetFunctor { + virtual bool operator()(const Jet& p) const = 0; ++ virtual ~BoolJetFunctor() {} + }; + +--- include/Rivet/Tools/ParticleBaseUtils.hh ++++ include/Rivet/Tools/ParticleBaseUtils.hh +@@ -23,4 +23,5 @@ + struct BoolParticleBaseFunctor { + virtual bool operator()(const ParticleBase& p) const = 0; ++ virtual ~BoolParticleBaseFunctor() {} + }; + +@@ -397,4 +398,5 @@ + struct DoubleParticleBaseFunctor { + virtual double operator()(const ParticleBase& p) const = 0; ++ virtual ~DoubleParticleBaseFunctor() {} + }; + +--- include/Rivet/Tools/ParticleUtils.hh ++++ include/Rivet/Tools/ParticleUtils.hh +@@ -486,4 +486,5 @@ + struct BoolParticleFunctor { + virtual bool operator()(const Particle& p) const = 0; ++ virtual ~BoolParticleFunctor() {} + }; + +--- analyses/Makefile.in.orig 2018-06-28 09:22:46.722022129 +0200 ++++ analyses/Makefile.in 2018-06-28 10:11:59.772373529 +0200 +@@ -523,21 +523,21 @@ + @ENABLE_ANALYSES_TRUE@%.so: + @ENABLE_ANALYSES_TRUE@ @+echo && RIVET_BUILDPLUGIN_BEFORE_INSTALL=1 bash $(top_builddir)/bin/rivet-buildplugin -j2 $@ $^ -I$(top_builddir)/include + +-@ENABLE_ANALYSES_TRUE@RivetALICEAnalyses.so: $(shell ls $(srcdir)/pluginALICE/*.cc) +-@ENABLE_ANALYSES_TRUE@RivetATLASAnalyses.so: $(shell ls $(srcdir)/pluginATLAS/*.cc) +-@ENABLE_ANALYSES_TRUE@RivetCDFAnalyses.so : $(shell ls $(srcdir)/pluginCDF/*.cc) +-@ENABLE_ANALYSES_TRUE@RivetCMSAnalyses.so : $(shell ls $(srcdir)/pluginCMS/*.cc) +-@ENABLE_ANALYSES_TRUE@RivetD0Analyses.so : $(shell ls $(srcdir)/pluginD0/*.cc) +-@ENABLE_ANALYSES_TRUE@RivetHERAAnalyses.so : $(shell ls $(srcdir)/pluginHERA/*.cc) +-@ENABLE_ANALYSES_TRUE@RivetLEPAnalyses.so : $(shell ls $(srcdir)/pluginLEP/*.cc) +-@ENABLE_ANALYSES_TRUE@RivetLHCbAnalyses.so : $(shell ls $(srcdir)/pluginLHCb/*.cc) +-@ENABLE_ANALYSES_TRUE@RivetLHCfAnalyses.so : $(shell ls $(srcdir)/pluginLHCf/*.cc) +-@ENABLE_ANALYSES_TRUE@RivetMCAnalyses.so : $(shell ls $(srcdir)/pluginMC/*.cc) +-@ENABLE_ANALYSES_TRUE@RivetMiscAnalyses.so : $(shell ls $(srcdir)/pluginMisc/*.cc) +-@ENABLE_ANALYSES_TRUE@RivetPetraAnalyses.so: $(shell ls $(srcdir)/pluginPetra/*.cc) +-@ENABLE_ANALYSES_TRUE@RivetRHICAnalyses.so : $(shell ls $(srcdir)/pluginRHIC/*.cc) +-@ENABLE_ANALYSES_TRUE@RivetSPSAnalyses.so : $(shell ls $(srcdir)/pluginSPS/*.cc) +-@ENABLE_ANALYSES_TRUE@RivetTOTEMAnalyses.so: $(shell ls $(srcdir)/pluginTOTEM/*.cc) ++@ENABLE_ANALYSES_TRUE@RivetALICEAnalyses.so: $(shell find $(srcdir)/pluginALICE/ -name '*.cc' -not -name 'tmp*') ++@ENABLE_ANALYSES_TRUE@RivetATLASAnalyses.so: $(shell find $(srcdir)/pluginATLAS/ -name '*.cc' -not -name 'tmp*') ++@ENABLE_ANALYSES_TRUE@RivetCDFAnalyses.so : $(shell find $(srcdir)/pluginCDF/ -name '*.cc' -not -name 'tmp*') ++@ENABLE_ANALYSES_TRUE@RivetCMSAnalyses.so : $(shell find $(srcdir)/pluginCMS/ -name '*.cc' -not -name 'tmp*') ++@ENABLE_ANALYSES_TRUE@RivetD0Analyses.so : $(shell find $(srcdir)/pluginD0/ -name '*.cc' -not -name 'tmp*') ++@ENABLE_ANALYSES_TRUE@RivetHERAAnalyses.so : $(shell find $(srcdir)/pluginHERA/ -name '*.cc' -not -name 'tmp*') ++@ENABLE_ANALYSES_TRUE@RivetLEPAnalyses.so : $(shell find $(srcdir)/pluginLEP/ -name '*.cc' -not -name 'tmp*') ++@ENABLE_ANALYSES_TRUE@RivetLHCbAnalyses.so : $(shell find $(srcdir)/pluginLHCb/ -name '*.cc' -not -name 'tmp*') ++@ENABLE_ANALYSES_TRUE@RivetLHCfAnalyses.so : $(shell find $(srcdir)/pluginLHCf/ -name '*.cc' -not -name 'tmp*') ++@ENABLE_ANALYSES_TRUE@RivetMCAnalyses.so : $(shell find $(srcdir)/pluginMC/ -name '*.cc' -not -name 'tmp*') ++@ENABLE_ANALYSES_TRUE@RivetMiscAnalyses.so : $(shell find $(srcdir)/pluginMisc/ -name '*.cc' -not -name 'tmp*') ++@ENABLE_ANALYSES_TRUE@RivetPetraAnalyses.so: $(shell find $(srcdir)/pluginPetra/ -name '*.cc' -not -name 'tmp*') ++@ENABLE_ANALYSES_TRUE@RivetRHICAnalyses.so : $(shell find $(srcdir)/pluginRHIC/ -name '*.cc' -not -name 'tmp*') ++@ENABLE_ANALYSES_TRUE@RivetSPSAnalyses.so : $(shell find $(srcdir)/pluginSPS/ -name '*.cc' -not -name 'tmp*') ++@ENABLE_ANALYSES_TRUE@RivetTOTEMAnalyses.so: $(shell find $(srcdir)/pluginTOTEM/ -name '*.cc' -not -name 'tmp*') + + @ENABLE_ANALYSES_TRUE@all-local: $(PLUGIN_LIBS) $(PLUGIN_DATAFILES) + @ENABLE_ANALYSES_TRUE@ mkdir -p $(builddir)/data +--- analyses/pluginATLAS/ATLAS_2016_CONF_2016_037.cc.orig 2018-07-02 10:43:08.656094368 +0200 ++++ analyses/pluginATLAS/ATLAS_2016_CONF_2016_037.cc 2018-07-02 10:44:04.920361160 +0200 +@@ -2,6 +2,7 @@ + #include "Rivet/Analysis.hh" + #include "Rivet/Projections/FinalState.hh" + #include "Rivet/Projections/PromptFinalState.hh" ++#include "Rivet/Projections/ChargedFinalState.hh" + #include "Rivet/Projections/FastJets.hh" + #include "Rivet/Projections/Sphericity.hh" + #include "Rivet/Projections/SmearedParticles.hh" +--- include/Rivet/AnalysisHandler.hh.orig 2018-07-10 10:39:21.719532209 +0200 ++++ include/Rivet/AnalysisHandler.hh 2018-07-10 10:39:29.225608530 +0200 +@@ -17,7 +17,7 @@ + + // Needed to make smart pointers compare equivalent in the STL set + struct CmpAnaHandle { +- bool operator() (const AnaHandle& a, const AnaHandle& b) { ++ bool operator() (const AnaHandle& a, const AnaHandle& b) const { + return a.get() < b.get(); + } + }; diff --git a/var/spack/repos/builtin/packages/rivet/rivet-2.6.1.patch b/var/spack/repos/builtin/packages/rivet/rivet-2.6.1.patch new file mode 100644 index 0000000000..878e72d739 --- /dev/null +++ b/var/spack/repos/builtin/packages/rivet/rivet-2.6.1.patch @@ -0,0 +1,24 @@ +--- doc/Makefile.in.orig 2018-10-17 18:29:15.568630034 +0200 ++++ doc/Makefile.in 2018-10-17 18:31:45.829375147 +0200 +@@ -594,15 +594,15 @@ + .PRECIOUS: Makefile + + @ENABLE_PYEXT_TRUE@analyses.html: $(top_srcdir)/analyses $(srcdir)/mk-analysis-html +-@ENABLE_PYEXT_TRUE@ LD_LIBRARY_PATH=$(top_builddir)/src/.libs:$(LD_LIBRARY_PATH) \ +-@ENABLE_PYEXT_TRUE@ DYLD_LIBRARY_PATH=$(top_builddir)/src/.libs:$(DYLD_LIBRARY_PATH) \ ++@ENABLE_PYEXT_TRUE@ LD_LIBRARY_PATH=$(top_builddir)/src/.libs:$(HEPMCLIBPATH):$(FASTJETLIBPATH):$(YODALIBPATH):$(RIVETLIBPATH):$(LD_LIBRARY_PATH) \ ++@ENABLE_PYEXT_TRUE@ DYLD_LIBRARY_PATH=$(top_builddir)/src/.libs:$(HEPMCLIBPATH):$(FASTJETLIBPATH):$(YODALIBPATH):$(RIVETLIBPATH):$(DYLD_LIBRARY_PATH) \ + @ENABLE_PYEXT_TRUE@ PYTHONPATH=$(YODA_PYTHONPATH):$(RIVET_PYTHONPATH):$(PYTHONPATH) \ +-@ENABLE_PYEXT_TRUE@ $(srcdir)/mk-analysis-html ++@ENABLE_PYEXT_TRUE@ $(PYTHON) $(srcdir)/mk-analysis-html + @ENABLE_PYEXT_TRUE@analyses.json: $(top_srcdir)/analyses $(srcdir)/mk-analysis-json +-@ENABLE_PYEXT_TRUE@ LD_LIBRARY_PATH=$(top_builddir)/src/.libs:$(LD_LIBRARY_PATH) \ +-@ENABLE_PYEXT_TRUE@ DYLD_LIBRARY_PATH=$(top_builddir)/src/.libs:$(DYLD_LIBRARY_PATH) \ ++@ENABLE_PYEXT_TRUE@ LD_LIBRARY_PATH=$(top_builddir)/src/.libs:$(HEPMCLIBPATH):$(FASTJETLIBPATH):$(YODALIBPATH):$(RIVETLIBPATH):$(LD_LIBRARY_PATH) \ ++@ENABLE_PYEXT_TRUE@ DYLD_LIBRARY_PATH=$(top_builddir)/src/.libs:$(HEPMCLIBPATH):$(FASTJETLIBPATH):$(YODALIBPATH):$(RIVETLIBPATH):$(DYLD_LIBRARY_PATH) \ + @ENABLE_PYEXT_TRUE@ PYTHONPATH=$(YODA_PYTHONPATH):$(RIVET_PYTHONPATH):$(PYTHONPATH) \ +-@ENABLE_PYEXT_TRUE@ $(srcdir)/mk-analysis-json ++@ENABLE_PYEXT_TRUE@ $(PYTHON) $(srcdir)/mk-analysis-json + + @WITH_ASCIIDOC_TRUE@compare-histos.html: compare-histos.txt + @WITH_ASCIIDOC_TRUE@ asciidoc -a toc compare-histos.txt diff --git a/var/spack/repos/builtin/packages/rivet/rivet-2.6.2.patch b/var/spack/repos/builtin/packages/rivet/rivet-2.6.2.patch new file mode 100644 index 0000000000..a327f481d4 --- /dev/null +++ b/var/spack/repos/builtin/packages/rivet/rivet-2.6.2.patch @@ -0,0 +1,97 @@ +--- configure.ac.orig 2019-01-23 11:02:06.206570992 +0100 ++++ configure.ac 2019-01-23 11:02:26.704761899 +0100 +@@ -151,12 +151,12 @@ + + + # ## GNU Scientific Library +-# AC_SEARCH_GSL +-# AC_CEDAR_HEADERS([gsl], , , [AC_MSG_ERROR([GSL (GNU Scientific Library) is required])]) +-# oldCPPFLAGS=$CPPFLAGS +-# CPPFLAGS="$CPPFLAGS -I$GSLINCPATH" +-# AC_CHECK_HEADER([gsl/gsl_vector.h], [], [AC_MSG_ERROR([GSL vectors not found.])]) +-# CPPFLAGS=$oldCPPFLAGS ++AC_SEARCH_GSL ++AC_CEDAR_HEADERS([gsl], , , [AC_MSG_ERROR([GSL (GNU Scientific Library) is required])]) ++oldCPPFLAGS=$CPPFLAGS ++CPPFLAGS="$CPPFLAGS -I$GSLINCPATH" ++AC_CHECK_HEADER([gsl/gsl_vector.h], [], [AC_MSG_ERROR([GSL vectors not found.])]) ++CPPFLAGS=$oldCPPFLAGS + + + ## Disable build/install of standard analyses +@@ -256,7 +256,7 @@ + ## Set default build flags + AM_CPPFLAGS="-I\$(top_srcdir)/include -I\$(top_builddir)/include" + #AM_CPPFLAGS="$AM_CPPFLAGS -I\$(top_srcdir)/include/eigen3" +-#AM_CPPFLAGS="$AM_CPPFLAGS \$(GSL_CPPFLAGS)" ++AM_CPPFLAGS="$AM_CPPFLAGS \$(GSL_CPPFLAGS)" + dnl AM_CPPFLAGS="$AM_CPPFLAGS \$(BOOST_CPPFLAGS)" + AM_CPPFLAGS="$AM_CPPFLAGS -I\$(YODAINCPATH)" + AM_CPPFLAGS="$AM_CPPFLAGS -I\$(HEPMCINCPATH)" +--- bin/rivet-config.in.orig 2019-01-23 11:08:04.608907832 +0100 ++++ bin/rivet-config.in 2019-01-23 11:08:25.058098155 +0100 +@@ -82,8 +82,8 @@ + test -n "$iyoda" && OUT="$OUT -I${iyoda}" + ifastjet="@FASTJETINCPATH@" + test -n "$ifastjet" && OUT="$OUT -I${ifastjet}" +- # igsl="@GSLINCPATH@" +- # test -n "$igsl" && OUT="$OUT -I${igsl}" ++ igsl="@GSLINCPATH@" ++ test -n "$igsl" && OUT="$OUT -I${igsl}" + # iboost="@BOOST_CPPFLAGS@" + # test -n "$iboost" && OUT="$OUT ${iboost}" + fi +@@ -98,8 +98,8 @@ + test -n "$lyoda" && OUT="$OUT -L${lyoda} -lYODA" + lfastjet="@FASTJETCONFIGLIBADD@" + test -n "$lfastjet" && OUT="$OUT ${lfastjet}" +- # lgsl="@GSLLIBPATH@" +- # test -n "$lgsl" && OUT="$OUT -L${lgsl}" ++ lgsl="@GSLLIBPATH@" ++ test -n "$lgsl" && OUT="$OUT -L${lgsl}" + fi + + tmp=$( echo "$*" | egrep -- '--\<libs\>|--\<ldadd\>') +--- bin/rivet-buildplugin.in.orig 2019-01-23 11:10:07.804054317 +0100 ++++ bin/rivet-buildplugin.in 2019-01-23 11:10:34.370301517 +0100 +@@ -169,8 +169,8 @@ + test -n "$iyoda" && mycppflags="$mycppflags -I${iyoda}" + ifastjet="@FASTJETINCPATH@" + test -n "$ifastjet" && mycppflags="$mycppflags -I${ifastjet}" +-# igsl="@GSLINCPATH@" +-# test -n "$igsl" && mycppflags="$mycppflags -I${igsl}" ++igsl="@GSLINCPATH@" ++test -n "$igsl" && mycppflags="$mycppflags -I${igsl}" + # iboost="@BOOST_CPPFLAGS@" + # test -n "$iboost" && mycppflags="$mycppflags ${iboost}" + +--- pyext/setup.py.in.orig 2019-01-23 11:12:04.694141901 +0100 ++++ pyext/setup.py.in 2019-01-23 11:12:44.531512512 +0100 +@@ -29,11 +29,11 @@ + + + ## Be careful with extracting the GSL path from the flags string +-# import re +-# re_libdirflag = re.compile(r".*-L\s*(\S+).*") +-# re_match = re_libdirflag.search("@GSL_LDFLAGS@") +-# if re_match: +- # lookupdirs.append( re_match.group(1) ) ++import re ++re_libdirflag = re.compile(r".*-L\s*(\S+).*") ++re_match = re_libdirflag.search("@GSL_LDFLAGS@") ++if re_match: ++ lookupdirs.append( re_match.group(1) ) + + ## A helper function + def ext(name, depends=[], statics=[]): +@@ -47,8 +47,8 @@ + language="c++", + # depends=depends, + include_dirs=[incdir1, incdir2, incdir3, incdir4], +- # extra_compile_args="-I@prefix@/include @PYEXT_CXXFLAGS@ @HEPMCCPPFLAGS@ @FASTJETCPPFLAGS@ @YODACPPFLAGS@ @GSLCPPFLAGS@".split(), +- extra_compile_args="-I@prefix@/include @PYEXT_CXXFLAGS@ @HEPMCCPPFLAGS@ @FASTJETCPPFLAGS@ @YODACPPFLAGS@".split(), ++ extra_compile_args="-I@prefix@/include @PYEXT_CXXFLAGS@ @HEPMCCPPFLAGS@ @FASTJETCPPFLAGS@ @YODACPPFLAGS@ @GSLCPPFLAGS@".split(), ++ # extra_compile_args="-I@prefix@/include @PYEXT_CXXFLAGS@ @HEPMCCPPFLAGS@ @FASTJETCPPFLAGS@ @YODACPPFLAGS@".split(), + extra_link_args=BASE_LINK_ARGS, + library_dirs=lookupdirs, + runtime_library_dirs=lookupdirs[1:], diff --git a/var/spack/repos/builtin/packages/rivet/rivet-2.7.0.patch b/var/spack/repos/builtin/packages/rivet/rivet-2.7.0.patch new file mode 100644 index 0000000000..a327f481d4 --- /dev/null +++ b/var/spack/repos/builtin/packages/rivet/rivet-2.7.0.patch @@ -0,0 +1,97 @@ +--- configure.ac.orig 2019-01-23 11:02:06.206570992 +0100 ++++ configure.ac 2019-01-23 11:02:26.704761899 +0100 +@@ -151,12 +151,12 @@ + + + # ## GNU Scientific Library +-# AC_SEARCH_GSL +-# AC_CEDAR_HEADERS([gsl], , , [AC_MSG_ERROR([GSL (GNU Scientific Library) is required])]) +-# oldCPPFLAGS=$CPPFLAGS +-# CPPFLAGS="$CPPFLAGS -I$GSLINCPATH" +-# AC_CHECK_HEADER([gsl/gsl_vector.h], [], [AC_MSG_ERROR([GSL vectors not found.])]) +-# CPPFLAGS=$oldCPPFLAGS ++AC_SEARCH_GSL ++AC_CEDAR_HEADERS([gsl], , , [AC_MSG_ERROR([GSL (GNU Scientific Library) is required])]) ++oldCPPFLAGS=$CPPFLAGS ++CPPFLAGS="$CPPFLAGS -I$GSLINCPATH" ++AC_CHECK_HEADER([gsl/gsl_vector.h], [], [AC_MSG_ERROR([GSL vectors not found.])]) ++CPPFLAGS=$oldCPPFLAGS + + + ## Disable build/install of standard analyses +@@ -256,7 +256,7 @@ + ## Set default build flags + AM_CPPFLAGS="-I\$(top_srcdir)/include -I\$(top_builddir)/include" + #AM_CPPFLAGS="$AM_CPPFLAGS -I\$(top_srcdir)/include/eigen3" +-#AM_CPPFLAGS="$AM_CPPFLAGS \$(GSL_CPPFLAGS)" ++AM_CPPFLAGS="$AM_CPPFLAGS \$(GSL_CPPFLAGS)" + dnl AM_CPPFLAGS="$AM_CPPFLAGS \$(BOOST_CPPFLAGS)" + AM_CPPFLAGS="$AM_CPPFLAGS -I\$(YODAINCPATH)" + AM_CPPFLAGS="$AM_CPPFLAGS -I\$(HEPMCINCPATH)" +--- bin/rivet-config.in.orig 2019-01-23 11:08:04.608907832 +0100 ++++ bin/rivet-config.in 2019-01-23 11:08:25.058098155 +0100 +@@ -82,8 +82,8 @@ + test -n "$iyoda" && OUT="$OUT -I${iyoda}" + ifastjet="@FASTJETINCPATH@" + test -n "$ifastjet" && OUT="$OUT -I${ifastjet}" +- # igsl="@GSLINCPATH@" +- # test -n "$igsl" && OUT="$OUT -I${igsl}" ++ igsl="@GSLINCPATH@" ++ test -n "$igsl" && OUT="$OUT -I${igsl}" + # iboost="@BOOST_CPPFLAGS@" + # test -n "$iboost" && OUT="$OUT ${iboost}" + fi +@@ -98,8 +98,8 @@ + test -n "$lyoda" && OUT="$OUT -L${lyoda} -lYODA" + lfastjet="@FASTJETCONFIGLIBADD@" + test -n "$lfastjet" && OUT="$OUT ${lfastjet}" +- # lgsl="@GSLLIBPATH@" +- # test -n "$lgsl" && OUT="$OUT -L${lgsl}" ++ lgsl="@GSLLIBPATH@" ++ test -n "$lgsl" && OUT="$OUT -L${lgsl}" + fi + + tmp=$( echo "$*" | egrep -- '--\<libs\>|--\<ldadd\>') +--- bin/rivet-buildplugin.in.orig 2019-01-23 11:10:07.804054317 +0100 ++++ bin/rivet-buildplugin.in 2019-01-23 11:10:34.370301517 +0100 +@@ -169,8 +169,8 @@ + test -n "$iyoda" && mycppflags="$mycppflags -I${iyoda}" + ifastjet="@FASTJETINCPATH@" + test -n "$ifastjet" && mycppflags="$mycppflags -I${ifastjet}" +-# igsl="@GSLINCPATH@" +-# test -n "$igsl" && mycppflags="$mycppflags -I${igsl}" ++igsl="@GSLINCPATH@" ++test -n "$igsl" && mycppflags="$mycppflags -I${igsl}" + # iboost="@BOOST_CPPFLAGS@" + # test -n "$iboost" && mycppflags="$mycppflags ${iboost}" + +--- pyext/setup.py.in.orig 2019-01-23 11:12:04.694141901 +0100 ++++ pyext/setup.py.in 2019-01-23 11:12:44.531512512 +0100 +@@ -29,11 +29,11 @@ + + + ## Be careful with extracting the GSL path from the flags string +-# import re +-# re_libdirflag = re.compile(r".*-L\s*(\S+).*") +-# re_match = re_libdirflag.search("@GSL_LDFLAGS@") +-# if re_match: +- # lookupdirs.append( re_match.group(1) ) ++import re ++re_libdirflag = re.compile(r".*-L\s*(\S+).*") ++re_match = re_libdirflag.search("@GSL_LDFLAGS@") ++if re_match: ++ lookupdirs.append( re_match.group(1) ) + + ## A helper function + def ext(name, depends=[], statics=[]): +@@ -47,8 +47,8 @@ + language="c++", + # depends=depends, + include_dirs=[incdir1, incdir2, incdir3, incdir4], +- # extra_compile_args="-I@prefix@/include @PYEXT_CXXFLAGS@ @HEPMCCPPFLAGS@ @FASTJETCPPFLAGS@ @YODACPPFLAGS@ @GSLCPPFLAGS@".split(), +- extra_compile_args="-I@prefix@/include @PYEXT_CXXFLAGS@ @HEPMCCPPFLAGS@ @FASTJETCPPFLAGS@ @YODACPPFLAGS@".split(), ++ extra_compile_args="-I@prefix@/include @PYEXT_CXXFLAGS@ @HEPMCCPPFLAGS@ @FASTJETCPPFLAGS@ @YODACPPFLAGS@ @GSLCPPFLAGS@".split(), ++ # extra_compile_args="-I@prefix@/include @PYEXT_CXXFLAGS@ @HEPMCCPPFLAGS@ @FASTJETCPPFLAGS@ @YODACPPFLAGS@".split(), + extra_link_args=BASE_LINK_ARGS, + library_dirs=lookupdirs, + runtime_library_dirs=lookupdirs[1:], diff --git a/var/spack/repos/builtin/packages/rivet/rivet-3.0.0.patch b/var/spack/repos/builtin/packages/rivet/rivet-3.0.0.patch new file mode 100644 index 0000000000..229bfb4acc --- /dev/null +++ b/var/spack/repos/builtin/packages/rivet/rivet-3.0.0.patch @@ -0,0 +1,70 @@ +--- bin/rivet-buildplugin.in.orig Mon Jul 08 15:16:09 2019 +0100 ++++ bin/rivet-buildplugin.in Wed Jul 10 16:15:41 2019 +0100 +@@ -172,4 +172,6 @@ + ifastjet="@FASTJETINCPATH@" + test -n "$ifastjet" && mycppflags="$mycppflags -I${ifastjet}" ++ifjcontrib="@FJCONTRIBCPPFLAGS@" ++test -n "$ifjcontrib" && mycppflags="$mycppflags ${ifjcontrib}" + + ## Get Rivet system linker flags (duplicating that in rivet-config.in) +--- bin/rivet-config.in.orig Mon Jul 08 15:16:09 2019 +0100 ++++ bin/rivet-config.in Wed Jul 10 16:15:41 2019 +0100 +@@ -83,4 +83,6 @@ + ifastjet="@FASTJETINCPATH@" + test -n "$ifastjet" && OUT="$OUT -I${ifastjet}" ++ ifjcontrib="@FJCONTRIBCPPFLAGS@" ++ test -n "$ifjcontrib" && OUT="$OUT ${ifjcontrib}" + fi + +--- configure.ac.orig Mon Jul 08 15:16:09 2019 +0100 ++++ configure.ac Wed Jul 10 16:15:41 2019 +0100 +@@ -197,10 +197,26 @@ + FASTJETLIBADD="$FASTJETLIBADD -lEECambridgePlugin -lJadePlugin" + fi; ++ ++## FastJet contrib (allow paths specified separately from FJ) ++AC_ARG_WITH([fjcontrib], ++ [AC_HELP_STRING(--with-fjcontrib, path to FastJet Contrib @<:@$FASTJETPATH@:>@)], [], []) ++if test -n "$with_fjcontrib"; then ++ AC_MSG_NOTICE([FastJet Contrib base path given: $with_fjcontrib]) ++ FJCONTRIBINCPATH=$with_fjcontrib/include ++ FJCONTRIBLIBPATH=$with_fjcontrib/lib ++ FJCONTRIBCPPFLAGS=-I$FJCONTRIBINCPATH ++ AC_SUBST(FJCONTRIBINCPATH) ++ AC_SUBST(FJCONTRIBLIBPATH) ++ AC_SUBST(FJCONTRIBCPPFLAGS) ++ FASTJETLIBADD="-L$FJCONTRIBLIBPATH $FASTJETLIBADD" ++fi + FASTJETLIBADD="$FASTJETLIBADD -lfastjetcontribfragile -lfastjettools" ++ ++## Test FastJet + Contrib ++## Check for FastJet headers that require the --enable-all(cxx)plugins option + AC_MSG_NOTICE([FastJet LIBADD = $FASTJETLIBADD]) + AC_SUBST(FASTJETLIBADD) +-# Check for FastJet headers that require the --enable-all(cxx)plugins option + oldCPPFLAGS=$CPPFLAGS +-CPPFLAGS="$CPPFLAGS -I$FASTJETINCPATH" ++CPPFLAGS="$CPPFLAGS $FASTJETCPPFLAGS $FJCONTRIBCPPFLAGS" + oldLIBS=$LIBS + LIBS="$LIBS $FASTJETLIBADD" +@@ -339,5 +355,4 @@ + #AM_CPPFLAGS="$AM_CPPFLAGS -I\$(top_srcdir)/include/eigen3" + #AM_CPPFLAGS="$AM_CPPFLAGS \$(GSL_CPPFLAGS)" +-dnl AM_CPPFLAGS="$AM_CPPFLAGS \$(BOOST_CPPFLAGS)" + AM_CPPFLAGS="$AM_CPPFLAGS -I\$(YODAINCPATH)" + if test x$use_hepmc2 = xyes ; then +@@ -346,5 +361,5 @@ + AM_CPPFLAGS="$AM_CPPFLAGS -I\$(HEPMC3INCPATH)" + fi +-AM_CPPFLAGS="$AM_CPPFLAGS -I\$(FASTJETINCPATH)" ++AM_CPPFLAGS="$AM_CPPFLAGS \$(FASTJETCPPFLAGS) \$(FJCONTRIBCPPFLAGS)" + AC_CEDAR_CHECKCXXFLAG([-pedantic], [AM_CXXFLAGS="$AM_CXXFLAGS -pedantic"]) + AC_CEDAR_CHECKCXXFLAG([-Wall], [AM_CXXFLAGS="$AM_CXXFLAGS -Wall"]) +--- src/AnalysisTools/Makefile.am.org Mon Jul 08 15:16:09 2019 +0100 ++++ src/AnalysisTools/Makefile.am Wed Jul 10 16:15:41 2019 +0100 +@@ -6,4 +6,4 @@ + MC_JetSplittings.cc + +-libRivetAnalysisTools_la_LDFLAGS = $(AM_LDFLAGS) -L$(FASTJETLIBPATH) ++libRivetAnalysisTools_la_LDFLAGS = $(AM_LDFLAGS) -L$(FASTJETLIBPATH) -L$(FJCONTRIBLIBPATH) + libRivetAnalysisTools_la_LIBS = $(FASTJETLIBADD) diff --git a/var/spack/repos/builtin/packages/rivet/rivet-3.0.1.patch b/var/spack/repos/builtin/packages/rivet/rivet-3.0.1.patch new file mode 100644 index 0000000000..31bdcbc7e3 --- /dev/null +++ b/var/spack/repos/builtin/packages/rivet/rivet-3.0.1.patch @@ -0,0 +1,11 @@ +--- bin/rivet-buildplugin.in.orig 2020-04-30 14:41:44.988555918 +0200 ++++ bin/rivet-buildplugin.in 2020-04-30 14:42:21.301319083 +0200 +@@ -249,7 +249,7 @@ + srcnames[$idx]="$tmpfile" + fi + done +-objnames=("${srcnames[@]/.cc/.o}") ++objnames=("${srcnames[@]/%.cc/.o}") + + if [[ -z "$debug" ]]; then silencer="@"; fi + tmpmakefile=$(mktemp Makefile.tmp.XXXXXXXXXX) diff --git a/var/spack/repos/builtin/packages/rivet/rivet-3.1.0.patch b/var/spack/repos/builtin/packages/rivet/rivet-3.1.0.patch new file mode 100644 index 0000000000..ff09f52862 --- /dev/null +++ b/var/spack/repos/builtin/packages/rivet/rivet-3.1.0.patch @@ -0,0 +1,11 @@ +--- bin/rivet-build.in.orig 2020-04-30 11:11:53.820773774 +0200 ++++ bin/rivet-build.in 2020-04-30 11:12:32.766024110 +0200 +@@ -249,7 +249,7 @@ + srcnames[$idx]="$tmpfile" + fi + done +-objnames=("${srcnames[@]/.cc/.o}") ++objnames=("${srcnames[@]/%.cc/.o}") + + if [[ -z "$debug" ]]; then silencer="@"; fi + tmpmakefile=$(mktemp Makefile.tmp.XXXXXXXXXX) diff --git a/var/spack/repos/builtin/packages/rivet/rivet-3.1.1.patch b/var/spack/repos/builtin/packages/rivet/rivet-3.1.1.patch new file mode 100644 index 0000000000..687d22819a --- /dev/null +++ b/var/spack/repos/builtin/packages/rivet/rivet-3.1.1.patch @@ -0,0 +1,11 @@ +--- configure.ac.orig 2020-05-12 11:26:03.482506197 +0200 ++++ configure.ac 2020-05-12 11:54:55.569077342 +0200 +@@ -211,7 +211,7 @@ + if test "$fjmajor" -lt 3; then + AC_MSG_ERROR([FastJet version 3.0.0 or later is required]) + fi +- FASTJETLIBADD="$($FJCONFIG --plugins --shared --libs| tr ' ' '\n' | grep -v gcc | tr '\n' ' ')" ++ FASTJETLIBADD="$($FJCONFIG --plugins --shared --libs)" + else + FASTJETLIBADD="-L$FASTJETLIBPATH -l$FASTJETLIBNAME" + FASTJETLIBADD="$FASTJETLIBADD -lSISConePlugin -lsiscone -lsiscone_spherical" diff --git a/var/spack/repos/builtin/packages/rocclr/opengl.patch b/var/spack/repos/builtin/packages/rocclr/opengl.patch new file mode 100644 index 0000000000..fc9bacee50 --- /dev/null +++ b/var/spack/repos/builtin/packages/rocclr/opengl.patch @@ -0,0 +1,49 @@ +From 98df37fc36b6276c26532e86e89be7e389745f4e Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Torsten=20Ke=C3=9Fler?= <t.kessler@posteo.de> +Date: Sun, 19 Jul 2020 11:58:24 +0200 +Subject: [PATCH] Fix search for OpenCL include dirs + +--- + CMakeLists.txt | 26 +++++++++----------------- + 1 file changed, 9 insertions(+), 17 deletions(-) + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 122277ee..02ca4644 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -53,26 +53,18 @@ find_package(amd_comgr REQUIRED CONFIG + ) + message(STATUS "Code Object Manager found at ${amd_comgr_DIR}.") + +-# FIXME: Use find_package(OpenCL) +-find_library( OpenCL REQUIRED CONFIG +- PATHS +- /opt/rocm ++find_path(OPENCL_INCLUDE_DIR ++ NAMES OpenCL/cl.h CL/cl.h ++ PATH_SUFFIXES include opencl/include inc include/x86_64 include/x64 ++ PATHS ${OPENCL_DIR} ++ DOC "OpenCL include header OpenCL/cl.h or CL/cl.h" + ) + +-if( NOT OPENCL_DIR ) +- find_path(OPENCL_INCLUDE_DIR +- NAMES OpenCL/cl.h CL/cl.h +- PATH_SUFFIXES include opencl/include inc include/x86_64 include/x64 +- PATHS /opt/rocm +- DOC "OpenCL include header OpenCL/cl.h or CL/cl.h" +- ) +- +- if( NOT OPENCL_INCLUDE_DIR ) +- unset(OPENCL_INCLUDE_DIR CACHE) +- set(OPENCL_INCLUDE_DIR "" CACHE PATH "" FORCE ) +- endif() +- message(STATUS "Opencl found at ${OPENCL_INCLUDE_DIR}.") ++if( NOT OPENCL_INCLUDE_DIR ) ++ unset(OPENCL_INCLUDE_DIR CACHE) ++ set(OPENCL_INCLUDE_DIR "" CACHE PATH "" FORCE ) + endif() ++message(STATUS "Opencl found at ${OPENCL_INCLUDE_DIR}.") + + + diff --git a/var/spack/repos/builtin/packages/rocclr/package.py b/var/spack/repos/builtin/packages/rocclr/package.py new file mode 100644 index 0000000000..732e28e7f6 --- /dev/null +++ b/var/spack/repos/builtin/packages/rocclr/package.py @@ -0,0 +1,53 @@ +# 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 Rocclr(CMakePackage): + """ROCclr is a virtual device interface that compute runtimes interact + with to different backends such as ROCr or PAL This abstraction allows + runtimes to work on Windows as well as on Linux without much effort.""" + + homepage = "https://github.com/ROCm-Developer-Tools/ROCclr" + url = "https://github.com/ROCm-Developer-Tools/ROCclr/archive/roc-3.5.0.tar.gz" + + maintainers = ['srekolam', 'arjun-raj-kuppala'] + + version('3.5.0', sha256='87c1ee9f02b8aa487b628c543f058198767c474cec3d21700596a73c028959e1') + + depends_on('cmake@3:', type='build') + for ver in ['3.5.0']: + depends_on('hsakmt-roct@' + ver, type='build', when='@' + ver) + depends_on('hsa-rocr-dev@' + ver, type='build', when='@' + ver) + depends_on('comgr@' + ver, type='build', when='@' + ver) + depends_on('mesa~llvm@18.3:', type='link', when='@' + ver) + + patch('opengl.patch', when='@3.5.0') + + resource(name='opencl-on-vdi', + url='https://github.com/RadeonOpenCompute/ROCm-OpenCL-Runtime/archive/roc-3.5.0.tar.gz', + sha256='511b617d5192f2d4893603c1a02402b2ac9556e9806ff09dd2a91d398abf39a0', + expand=True, + destination='', + placement='opencl-on-vdi') + + @run_after('install') + def deploy_missing_files(self): + # the amdrocclr_staticTargets.cmake file is generated but not installed + # and when we install it by hand, we have to fix the path to the static + # library libamdrocclr_static.a from build dir to prefix lib dir. + cmakefile = join_path(self.build_directory, + 'amdrocclr_staticTargets.cmake') + filter_file(self.build_directory, self.prefix.lib, cmakefile) + install(cmakefile, self.prefix.lib) + + def cmake_args(self): + args = [ + '-DUSE_COMGR_LIBRARY=yes', + '-DOPENCL_DIR={0}/opencl-on-vdi'.format(self.stage.source_path) + ] + return args diff --git a/var/spack/repos/builtin/packages/rocfft/package.py b/var/spack/repos/builtin/packages/rocfft/package.py new file mode 100644 index 0000000000..0300649cae --- /dev/null +++ b/var/spack/repos/builtin/packages/rocfft/package.py @@ -0,0 +1,45 @@ +# 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 Rocfft(CMakePackage): + """Radeon Open Compute FFT library""" + + homepage = "https://github.com/ROCmSoftwarePlatform/rocFFT/" + url = "https://github.com/ROCmSoftwarePlatform/rocfft/archive/rocm-3.5.0.tar.gz" + + maintainers = ['srekolam', 'arjun-raj-kuppala'] + + version('3.5.0', sha256='629f02cfecb7de5ad2517b6a8aac6ed4de60d3a9c620413c4d9db46081ac2c88') + + amdgpu_targets = ( + 'gfx701', 'gfx801', 'gfx802', 'gfx803', + 'gfx900', 'gfx906', 'gfx908', 'gfx1010', + 'gfx1011', 'gfx1012' + ) + + variant('build_type', default='Release', values=("Release", "Debug"), description='CMake build type') + variant('amdgpu_target', default='gfx701', multi=True, values=amdgpu_targets) + + depends_on('cmake@3:', type='build') + depends_on('rocm-cmake@3.5.0', type='build', when='@3.5.0') + depends_on('rocm-device-libs@3.5.0', type='build', when='@3.5.0') + + depends_on('hip@3.5.0', type=('build', 'link'), when='@3.5.0') + depends_on('comgr@3.5.0', type='build', when='@3.5.0') + + def setup_build_environment(self, env): + env.set('CXX', self.spec['hip'].hipcc) + + def cmake_args(self): + archs = ",".join(self.spec.variants['amdgpu_target'].value) + + args = [ + '-DCMAKE_CXX_FLAGS=--amdgpu-target={0}'.format(archs), + ] + return args diff --git a/var/spack/repos/builtin/packages/rocgdb/package.py b/var/spack/repos/builtin/packages/rocgdb/package.py new file mode 100644 index 0000000000..927c6c3a68 --- /dev/null +++ b/var/spack/repos/builtin/packages/rocgdb/package.py @@ -0,0 +1,57 @@ +# 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 Rocgdb(AutotoolsPackage): + """This is ROCgdb, the ROCm source-level debugger for Linux, + based on GDB, the GNU source-level debugger.""" + + homepage = "https://github.com/ROCm-Developer-Tools/ROCgdb/" + url = "https://github.com/ROCm-Developer-Tools/ROCgdb/archive/rocm-3.5.0.tar.gz" + + maintainers = ['srekolam', 'arjun-raj-kuppala'] + + version('3.5.0', sha256='cf36d956e84c7a5711b71f281a44b0a9708e13e941d8fca0247d01567e7ee7d1') + depends_on('cmake@3:', type='build') + depends_on('texinfo', type='build') + depends_on('bison', type='build') + depends_on('flex', type='build') + depends_on('libunwind', type='build') + depends_on('expat', type='build') + depends_on('python', type='build') + depends_on('zlib', type='link') + for ver in ['3.5.0']: + depends_on('rocm-dbgapi@' + ver, type='link', when='@' + ver) + depends_on('comgr@' + ver, type='link', when='@' + ver) + + build_directory = 'spack-build' + + def configure_args(self): + # Generic options to compile GCC + options = [ + # Distributor options + '--program-prefix=roc', + '--enable-64-bit-bfd', + '--with-bugurl=https://github.com/ROCm-Developer-Tools/ROCgdb/issues', + '--with-pkgversion=-ROCm', + '--enable-targets=x86_64-linux-gnu,amdgcn-amd-amdhsa', + '--disable-ld', + '--disable-gas', + '--disable-gdbserver', + '--disable-sim', + '--enable-tui', + '--disable-gdbtk', + '--disable-shared', + '--with-expat', + '--with-system-zlib' + '--without-guile', + '--with-babeltrace', + '--with-lzma', + '--with-python' + ] + return options diff --git a/var/spack/repos/builtin/packages/rocm-bandwidth-test/package.py b/var/spack/repos/builtin/packages/rocm-bandwidth-test/package.py new file mode 100644 index 0000000000..c7e61a0227 --- /dev/null +++ b/var/spack/repos/builtin/packages/rocm-bandwidth-test/package.py @@ -0,0 +1,27 @@ +# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + + +from spack import * + + +class RocmBandwidthTest(CMakePackage): + """Test to measure PciE bandwidth on ROCm platforms""" + + homepage = "https://github.com/RadeonOpenCompute/rocm_bandwidth_test" + url = "https://github.com/RadeonOpenCompute/rocm_bandwidth_test/archive/rocm-3.5.0.tar.gz" + + maintainers = ['srekolam', 'arjun-raj-kuppala'] + + version('3.5.0', sha256='fbb63fb8713617fd167d9c1501acbd92a6b189ee8e1a8aed668fa6666baae389') + + variant('build_type', default='Release', values=("Release", "Debug"), description='CMake build type') + + depends_on('cmake@3:', type='build') + for ver in ['3.5.0']: + depends_on('hsa-rocr-dev@' + ver, type='link', when='@' + ver) + depends_on('hsakmt-roct@' + ver, type='build', when='@' + ver) + + build_targets = ['package'] diff --git a/var/spack/repos/builtin/packages/rocm-cmake/package.py b/var/spack/repos/builtin/packages/rocm-cmake/package.py new file mode 100644 index 0000000000..e67384248f --- /dev/null +++ b/var/spack/repos/builtin/packages/rocm-cmake/package.py @@ -0,0 +1,26 @@ +# 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 RocmCmake(CMakePackage): + """ROCM cmake modules provides cmake modules for common build tasks + needed for the ROCM software stack""" + + homepage = "https://github.com/RadeonOpenCompute/rocm-cmake" + url = "https://github.com/RadeonOpenCompute/rocm-cmake/archive/rocm-3.5.0.tar.gz" + + maintainers = ['srekolam', 'arjun-raj-kuppala'] + + version('3.5.0', sha256='5fc09e168879823160f5fdf4fd1ace2702d36545bf733e8005ed4ca18c3e910f') + + variant('build_type', default='Release', values=("Release", "Debug"), description='CMake build type') + + depends_on('cmake@3:', type='build') + + def cmake_args(self): + return ['-DROCM_DISABLE_LDCONFIG=ON'] diff --git a/var/spack/repos/builtin/packages/rocm-dbgapi/package.py b/var/spack/repos/builtin/packages/rocm-dbgapi/package.py new file mode 100644 index 0000000000..33f6c0e66f --- /dev/null +++ b/var/spack/repos/builtin/packages/rocm-dbgapi/package.py @@ -0,0 +1,29 @@ +# 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 RocmDbgapi(CMakePackage): + """The AMD Debugger API is a library that provides all the support + necessary for a debugger and other tools to perform low level + control of the execution and inspection of execution state of + AMD's commercially available GPU architectures.""" + + homepage = "https://github.com/ROCm-Developer-Tools/ROCdbgapi" + url = "https://github.com/ROCm-Developer-Tools/ROCdbgapi/archive/rocm-3.5.0.tar.gz" + + maintainers = ['srekolam', 'arjun-raj-kuppala'] + + version('3.5.0', sha256='eeba0592bc79b90e5b874bba18fd003eab347e8a3cc80343708f8d19e047e87b') + + depends_on('cmake@3:', type='build') + depends_on('hsa-rocr-dev@3.5.0', type='build', when='@3.5.0') + depends_on('comgr@3.5.0', type=('build', 'link'), when='@3.5.0') + + def patch(self): + filter_file(r'(<INSTALL_INTERFACE:include>)', r'\1 {0}/include'. + format(self.spec['hsa-rocr-dev'].prefix), 'CMakeLists.txt') diff --git a/var/spack/repos/builtin/packages/rocm-debug-agent/package.py b/var/spack/repos/builtin/packages/rocm-debug-agent/package.py new file mode 100644 index 0000000000..5df5dcb477 --- /dev/null +++ b/var/spack/repos/builtin/packages/rocm-debug-agent/package.py @@ -0,0 +1,36 @@ +# 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 RocmDebugAgent(CMakePackage): + """Radeon Open Compute (ROCm) debug agent""" + + homepage = "https://github.com/ROCm-Developer-Tools/rocr_debug_agent" + url = "https://github.com/ROCm-Developer-Tools/rocr_debug_agent/archive/roc-3.5.0.tar.gz" + + maintainers = ['srekolam', 'arjun-raj-kuppala'] + + version('3.5.0', sha256='203ccb18d2ac508aae40bf364923f67375a08798b20057e574a0c5be8039f133') + + variant('build_type', default='Release', values=("Release", "Debug"), description='CMake build type') + + depends_on('cmake@3:', type='build') + for ver in ['3.5.0']: + depends_on('hsa-rocr-dev@' + ver, type='link', when='@' + ver) + depends_on('hsakmt-roct@' + ver, type='link', when='@' + ver) + depends_on("elfutils", type='link', when='@' + ver) + + root_cmakelists_dir = 'src' + + def cmake_args(self): + spec = self.spec + args = [ + '-DCMAKE_PREFIX_PATH={0}/include/hsa;{1}/include,'. + format(spec['hsa-rocr-dev'].prefix, spec['hsakmt-roct'].prefix) + ] + return args diff --git a/var/spack/repos/builtin/packages/rocm-device-libs/package.py b/var/spack/repos/builtin/packages/rocm-device-libs/package.py new file mode 100644 index 0000000000..3d6a46f5d3 --- /dev/null +++ b/var/spack/repos/builtin/packages/rocm-device-libs/package.py @@ -0,0 +1,33 @@ +# 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 RocmDeviceLibs(CMakePackage): + """set of AMD specific device-side language runtime libraries""" + + homepage = "https://github.com/RadeonOpenCompute/ROCm-Device-Libs" + url = "https://github.com/RadeonOpenCompute/ROCm-Device-Libs/archive/rocm-3.5.0.tar.gz" + + maintainers = ['srekolam', 'arjun-raj-kuppala'] + + version('3.5.0', sha256='dce3a4ba672c4a2da4c2260ee4dc96ff6dd51877f5e7e1993cb107372a35a378') + + variant('build_type', default='Release', values=("Release", "Debug"), description='CMake build type') + + depends_on('cmake@3:', type='build') + for ver in ['3.5.0']: + depends_on('llvm-amdgpu@' + ver, type='build', when='@' + ver) + depends_on('rocm-cmake@' + ver, type='build', when='@' + ver) + + def cmake_args(self): + spec = self.spec + args = ['-DLLVM_DIR={0}'.format(spec['llvm-amdgpu'].prefix), + '-DCMAKE_C_COMPILER={0}/bin/clang'.format( + spec['llvm-amdgpu'].prefix), + ] + return args diff --git a/var/spack/repos/builtin/packages/rocm-opencl/package.py b/var/spack/repos/builtin/packages/rocm-opencl/package.py new file mode 100644 index 0000000000..e761e7481a --- /dev/null +++ b/var/spack/repos/builtin/packages/rocm-opencl/package.py @@ -0,0 +1,53 @@ +# 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 RocmOpencl(CMakePackage): + """OpenCL: Open Computing Language on ROCclr""" + + homepage = "https://github.com/RadeonOpenCompute/ROCm-OpenCL-Runtime" + url = "https://github.com/RadeonOpenCompute/ROCm-OpenCL-Runtime/archive/roc-3.5.0.tar.gz" + + maintainers = ['srekolam', 'arjun-raj-kuppala'] + + version('3.5.0', sha256='511b617d5192f2d4893603c1a02402b2ac9556e9806ff09dd2a91d398abf39a0') + depends_on('cmake@3:', type='build') + depends_on('rocclr@3.5.0', type='build', when='@3.5.0') + depends_on('comgr@3.5.0', type='build', when='@3.5.0') + depends_on('mesa~llvm@18.3:', type='link') + + def flag_handler(self, name, flags): + # The includes are messed up in ROCm 3.5.0: + # ROCM-OpenCL-Runtime uses flat includes + # and the find_package(ROCclr) bit it + # commented out. So instead we provide + # all the includes... + + if self.spec.satisfies('@3.5.0') and name in ('cflags', 'cxxflags'): + rocclr = self.spec['rocclr'].prefix.include + extra_includes = [ + 'include', + 'compiler/lib', + 'compiler/lib/include', + 'elf/utils/libelf', + 'elf/utils/common' + ] + + for p in extra_includes: + flag = '-I {0}'.format(join_path(rocclr, p)) + flags.append(flag) + + return (flags, None, None) + + def cmake_args(self): + + args = [ + '-DUSE_COMGR_LIBRARY=yes', + '-DROCclr_DIR={0}'.format(self.spec['rocclr'].prefix), + '-DLIBROCclr_STATIC_DIR={0}/lib'.format(self.spec['rocclr'].prefix) + ] + return args diff --git a/var/spack/repos/builtin/packages/rocm-smi-lib/package.py b/var/spack/repos/builtin/packages/rocm-smi-lib/package.py new file mode 100644 index 0000000000..1adf05a626 --- /dev/null +++ b/var/spack/repos/builtin/packages/rocm-smi-lib/package.py @@ -0,0 +1,30 @@ +# 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 * +from os import popen + + +class RocmSmiLib(CMakePackage): + """It is a C library for Linux that provides a user space interface + for applications to monitor and control GPU applications.""" + + homepage = "https://github.com/RadeonOpenCompute/rocm_smi_lib" + url = "https://github.com/RadeonOpenCompute/rocm_smi_lib/archive/rocm-3.5.0.tar.gz" + + maintainers = ['srekolam', 'arjun-raj-kuppala'] + + version('3.5.0', sha256='a5d2ec3570d018b60524f0e589c4917f03d26578443f94bde27a170c7bb21e6e') + + variant('build_type', default='Release', values=("Release", "Debug"), description='CMake build type') + depends_on('cmake@3:', type='build') + + @run_after('install') + def post_install(self): + popen('cp -R {0}/rocm_smi/lib {1}'.format(self.prefix, self.prefix)) + popen('cp -R {0}/rocm_smi/include {1}'.format(self.prefix, + self.prefix)) + popen('rm -R {0}/rocm_smi'.format(self.prefix)) diff --git a/var/spack/repos/builtin/packages/rocm-smi/package.py b/var/spack/repos/builtin/packages/rocm-smi/package.py new file mode 100644 index 0000000000..bbd0210172 --- /dev/null +++ b/var/spack/repos/builtin/packages/rocm-smi/package.py @@ -0,0 +1,34 @@ +# 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 * +from os import popen + + +class RocmSmi(MakefilePackage): + """This tool exposes functionality for clock and temperature + management of your ROCm enabled system""" + + homepage = "https://github.com/RadeonOpenCompute/ROC-smi" + url = "https://github.com/RadeonOpenCompute/ROC-smi/archive/rocm-3.5.0.tar.gz" + + maintainers = ['srekolam', 'arjun-raj-kuppala'] + version('3.5.0', sha256='4f46e947c415a4ac12b9f6989f15a42afe32551706b4f48476fba3abf92e8e7c') + + variant('build_type', default='Release', values=("Release", "Debug"), description='CMake build type') + + phases = ['edit', 'build'] + + @run_after('build') + def post_build(self): + popen('cp -R {0}/rocm_smi.py {1}'.format(self.build_directory, prefix)) + popen('ln -srf {0}/rocm_smi.py {1}/rocm-smi'.format(prefix, prefix)) + + popen('mkdir -p {0}/smi-test/tests'.format(prefix)) + popen('cp -R {0}/tests/ {1}/smi-test/'.format(self.build_directory, + prefix)) + popen('cp -R {0}/test-rocm-smi.sh {1}/smi-test'.format( + self.build_directory, prefix)) diff --git a/var/spack/repos/builtin/packages/rocminfo/package.py b/var/spack/repos/builtin/packages/rocminfo/package.py new file mode 100644 index 0000000000..97fe98ff5b --- /dev/null +++ b/var/spack/repos/builtin/packages/rocminfo/package.py @@ -0,0 +1,26 @@ +# 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 Rocminfo(CMakePackage): + """Radeon Open Compute (ROCm) Runtime rocminfo tool""" + + homepage = "https://github.com/RadeonOpenCompute/rocminfo" + url = "https://github.com/RadeonOpenCompute/rocminfo/archive/rocm-3.5.0.tar.gz" + + maintainers = ['srekolam', 'arjun-raj-kuppala'] + + version('3.5.0', sha256='1d113f06b7c9b60d0e92b2c12c0c704a565696867496fe7038e5dddd510567b7') + + depends_on('cmake@3:', type='build') + depends_on('hsakmt-roct@3.5.0', type='build', when='@3.5.0') + depends_on('hsa-rocr-dev@3.5.0', type='build', when='@3.5.0') + + def cmake_args(self): + args = ['-DROCM_DIR={0}'.format(self.spec['hsa-rocr-dev'].prefix)] + return args diff --git a/var/spack/repos/builtin/packages/rocprofiler-dev/package.py b/var/spack/repos/builtin/packages/rocprofiler-dev/package.py new file mode 100644 index 0000000000..5bf2f74b00 --- /dev/null +++ b/var/spack/repos/builtin/packages/rocprofiler-dev/package.py @@ -0,0 +1,43 @@ +# 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 RocprofilerDev(CMakePackage): + """ROCPROFILER library for AMD HSA runtime API extension support""" + + homepage = "https://github.com/ROCm-Developer-Tools/rocprofiler" + url = "https://github.com/ROCm-Developer-Tools/rocprofiler/archive/rocm-3.5.0.tar.gz" + + maintainers = ['srekolam', 'arjun-raj-kuppala'] + + version('3.5.0', sha256='c42548dd467b7138be94ad68c715254eb56a9d3b670ccf993c43cd4d43659937') + + depends_on('cmake@3:', type='build') + depends_on('hsakmt-roct@3.5.0:', type='build', when='@3.5.0:') + depends_on('hsa-rocr-dev@3.5.0:', type='link', when='@3.5.0:') + depends_on('rocminfo@3.5.0:', type='build', when='@3.5.0:') + + resource(name='roctracer-dev', + url='https://github.com/ROCm-Developer-Tools/roctracer/archive/rocm-3.5.0.tar.gz', + sha256='7af5326c9ca695642b4265232ec12864a61fd6b6056aa7c4ecd9e19c817f209e', + expand=True, + destination='', + placement='roctracer') + + def patch(self): + filter_file('${HSA_RUNTIME_LIB_PATH}/../include', + '${HSA_RUNTIME_LIB_PATH}/../include ${HSA_KMT_LIB_PATH}/..\ + /include', 'test/CMakeLists.txt', string=True) + + def cmake_args(self): + args = ['-DPROF_API_HEADER_PATH={0}/roctracer/inc/ext'.format( + self.stage.source_path), + '-DROCM_ROOT_DIR:STRING={0}/include'.format( + self.spec['hsakmt-roct'].prefix) + ] + return args diff --git a/var/spack/repos/builtin/packages/roctracer-dev/package.py b/var/spack/repos/builtin/packages/roctracer-dev/package.py new file mode 100644 index 0000000000..5709ef487d --- /dev/null +++ b/var/spack/repos/builtin/packages/roctracer-dev/package.py @@ -0,0 +1,44 @@ +# 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 RoctracerDev(CMakePackage): + """ROC-tracer library: Runtimes Generic Callback/Activity APIs. + The goal of the implementation is to provide a generic independent from + specific runtime profiler to trace API and asyncronous activity.""" + + homepage = "https://github.com/ROCm-Developer-Tools/roctracer" + url = "https://github.com/ROCm-Developer-Tools/roctracer/archive/rocm-3.5.0.tar.gz" + + maintainers = ['srekolam', 'arjun-raj-kuppala'] + + version('3.5.0', sha256='7af5326c9ca695642b4265232ec12864a61fd6b6056aa7c4ecd9e19c817f209e') + + depends_on('cmake@3:', type='build') + depends_on('hsakmt-roct@3.5.0:', type='build', when='@3.5.0:') + depends_on('hsa-rocr-dev@3.5.0:', type='build', when='@3.5.0:') + depends_on('rocminfo@3.5.0:', type='build', when='@3.5.0:') + depends_on('hip@3.5.0:', type='build', when='@3.5.0:') + + def setup_build_environment(self, build_env): + spec = self.spec + build_env.set("HIP_PATH", spec['hip'].prefix) + + def patch(self): + filter_file('${CMAKE_PREFIX_PATH}/hsa', + '${HSA_RUNTIME_INC_PATH}', 'src/CMakeLists.txt', + string=True) + + def cmake_args(self): + args = ['-DHIP_VDI=1', + '-DCMAKE_MODULE_PATH={0}/cmake_modules'.format( + self.stage.source_path), + '-DHSA_RUNTIME_HSA_INC_PATH={0}/include'.format( + self.spec['hsa-rocr-dev'].prefix) + ] + return args diff --git a/var/spack/repos/builtin/packages/root/package.py b/var/spack/repos/builtin/packages/root/package.py index 0e590e30ae..73770b31b9 100644 --- a/var/spack/repos/builtin/packages/root/package.py +++ b/var/spack/repos/builtin/packages/root/package.py @@ -26,6 +26,7 @@ class Root(CMakePackage): # Development version (when more recent than production). # Production version + version('6.22.00', sha256='efd961211c0f9cd76cf4a486e4f89badbcf1d08e7535bba556862b3c1a80beed') version('6.20.04', sha256='1f8c76ccdb550e64e6ddb092b4a7e9d0a10655ef80044828cba12d5e7c874472') version('6.20.02', sha256='0997586bf097c0afbc6f08edbffcebf5eb6a4237262216114ba3f5c8087dcba6') version('6.20.00', sha256='68421eb0434b38b66346fa8ea6053a0fdc9a6d254e4a72019f4e3633ae118bf0') @@ -235,6 +236,7 @@ class Root(CMakePackage): depends_on('r', when='+r', type=('build', 'run')) depends_on('r-rcpp', when='+r', type=('build', 'run')) depends_on('r-rinside', when='+r', type=('build', 'run')) + depends_on('readline', when='+r') depends_on('shadow', when='+shadow') depends_on('sqlite', when='+sqlite') depends_on('tbb', when='+tbb') @@ -381,7 +383,7 @@ class Root(CMakePackage): ['pythia8'], ['qt', 'qt4'], # See conflicts ['qtgsi', 'qt4'], # See conflicts - ['r', 'R'], + ['r', 'r'], ['rfio', False], ['roofit'], ['root7'], # See conflicts @@ -447,9 +449,10 @@ class Root(CMakePackage): return options def setup_build_environment(self, env): - if 'lz4' in self.spec: - env.append_path('CMAKE_PREFIX_PATH', - self.spec['lz4'].prefix) + spec = self.spec + + if 'lz4' in spec: + env.append_path('CMAKE_PREFIX_PATH', spec['lz4'].prefix) # This hack is made necessary by a header name collision between # asimage's "import.h" and Python's "import.h" headers... @@ -463,20 +466,20 @@ class Root(CMakePackage): # into SPACK_INCLUDE_DIRS, even in a deprioritized form, because some # system/compiler combinations don't like having -I/usr/include around. def add_include_path(dep_name): - include_path = self.spec[dep_name].prefix.include + include_path = spec[dep_name].prefix.include if not is_system_path(include_path): env.append_path('SPACK_INCLUDE_DIRS', include_path) # With that done, let's go fixing those deps - if self.spec.satisfies('+x @:6.08.99'): - add_include_path('xextproto') - if self.spec.satisfies('@:6.12.99'): + if spec.satisfies('@:6.12.99'): add_include_path('zlib') - if '+x' in self.spec: + if '+x' in spec: + if spec.satisfies('@:6.08.99') or spec.satisfies('@6.22:'): + add_include_path('xextproto') add_include_path('fontconfig') add_include_path('libx11') add_include_path('xproto') - if '+opengl' in self.spec: + if '+opengl' in spec: add_include_path('glew') add_include_path('mesa-glu') diff --git a/var/spack/repos/builtin/packages/rsync/package.py b/var/spack/repos/builtin/packages/rsync/package.py index 078f11e630..2e361f7f6c 100644 --- a/var/spack/repos/builtin/packages/rsync/package.py +++ b/var/spack/repos/builtin/packages/rsync/package.py @@ -11,12 +11,17 @@ class Rsync(AutotoolsPackage): homepage = "https://rsync.samba.org" url = "https://download.samba.org/pub/rsync/src/rsync-3.1.2.tar.gz" + version('3.2.2', sha256='644bd3841779507665211fd7db8359c8a10670c57e305b4aab61b4e40037afa8') version('3.1.3', sha256='55cc554efec5fdaad70de921cd5a5eeb6c29a95524c715f3bbf849235b0800c0') version('3.1.2', sha256='ecfa62a7fa3c4c18b9eccd8c16eaddee4bd308a76ea50b5c02a5840f09c0a1c2') version('3.1.1', sha256='7de4364fcf5fe42f3bdb514417f1c40d10bbca896abe7e7f2c581c6ea08a2621') depends_on('zlib') depends_on('popt') + depends_on('openssl', when='@3.2:') + depends_on('xxhash', when='@3.2:') + depends_on('zstd', when='@3.2:') + depends_on('lz4', when='@3.2:') def configure_args(self): return ['--with-included-zlib=no'] diff --git a/var/spack/repos/builtin/packages/rust/package.py b/var/spack/repos/builtin/packages/rust/package.py index ff8cba54e6..990095c90f 100644 --- a/var/spack/repos/builtin/packages/rust/package.py +++ b/var/spack/repos/builtin/packages/rust/package.py @@ -85,6 +85,8 @@ class Rust(Package): # The `x.py` bootstrapping script did not exist prior to Rust 1.17. It # would be possible to support both, but for simplicitly, we only support # Rust 1.17 and newer + version('1.45.1', sha256='ea53e6424e3d1fe56c6d77a00e72c5d594b509ec920c5a779a7b8e1dbd74219b') + version('1.44.1', sha256='7e2e64cb298dd5d5aea52eafe943ba0458fa82f2987fdcda1ff6f537b6f88473') version('1.44.0', sha256='bf2df62317e533e84167c5bc7d4351a99fdab1f9cd6e6ba09f51996ad8561100') version('1.43.1', sha256='cde177b4a8c687da96f20de27630a1eb55c9d146a15e4c900d5c31cd3c3ac41d') version('1.43.0', sha256='75f6ac6c9da9f897f4634d5a07be4084692f7ccc2d2bb89337be86cfc18453a1') @@ -127,6 +129,18 @@ class Rust(Package): # This dictionary contains a version: hash dictionary for each supported # Rust target. rust_releases = { + '1.45.1': { + 'x86_64-unknown-linux-gnu': '76dc9f05b3bfd0465d6e6d22bc9fd5db0b473e3548e8b3d266ecfe4d9e5dca16', + 'powerpc64le-unknown-linux-gnu': '271846e4f5adc9a33754794c2ffab851f9e0313c8c1315264e7db5c8f63ab7ab', + 'aarch64-unknown-linux-gnu': 'd17fd560e8d5d12304835b71a7e22ac2c3babf4b9768db6a0e89868b4444f728', + 'x86_64-apple-darwin': '7334c927e4d2d12d209bf941b97ba309e548413e241d2d263c39c6e12b3ce154' + }, + '1.44.1': { + 'x86_64-unknown-linux-gnu': 'a41df89a461a580536aeb42755e43037556fba2e527dd13a1e1bb0749de28202', + 'powerpc64le-unknown-linux-gnu': '22deeca259459db31065af7c862fcab7fbfb623200520c65002ed2ba93d87ad2', + 'aarch64-unknown-linux-gnu': 'a2d74ebeec0b6778026b6c37814cdc91d14db3b0d8b6d69d036216f4d9cf7e49', + 'x86_64-apple-darwin': 'a5464e7bcbce9647607904a4afa8362382f1fc55d39e7bbaf4483ac00eb5d56a' + }, '1.44.0': { 'x86_64-unknown-linux-gnu': 'eaa34271b4ac4d2c281831117d4d335eed0b37fe7a34477d9855a6f1d930a624', 'powerpc64le-unknown-linux-gnu': '97038ea935c7a5b21f5aaaaad409c514e2b2ae8ea55994ba39645f453e98bc9f', diff --git a/var/spack/repos/builtin/packages/saws/package.py b/var/spack/repos/builtin/packages/saws/package.py index 8a55cc896a..41a117227f 100644 --- a/var/spack/repos/builtin/packages/saws/package.py +++ b/var/spack/repos/builtin/packages/saws/package.py @@ -16,4 +16,7 @@ class Saws(AutotoolsPackage): git = "https://bitbucket.org/saws/saws.git" version('develop', tag='master') + version('0.1.1', tag='v0.1.1') version('0.1.0', tag='v0.1.0') + + depends_on('python', type='build') diff --git a/var/spack/repos/builtin/packages/scons/fjcompiler.patch b/var/spack/repos/builtin/packages/scons/fjcompiler.patch new file mode 100644 index 0000000000..54ec369c55 --- /dev/null +++ b/var/spack/repos/builtin/packages/scons/fjcompiler.patch @@ -0,0 +1,179 @@ +diff -u -r -N a/engine/SCons/Tool/fcc.py b/engine/SCons/Tool/fcc.py +--- a/engine/SCons/Tool/fcc.py 1970-01-01 09:00:00.000000000 +0900 ++++ b/engine/SCons/Tool/fcc.py 2020-07-21 17:28:12.000000000 +0900 +@@ -0,0 +1,82 @@ ++"""SCons.Tool.fcc ++ ++Tool-specific initialization for Fujitsu C/C++ compiler. ++ ++There normally shouldn't be any need to import this module directly. ++It will usually be imported through the generic SCons.Tool.Tool() ++selection method. ++ ++""" ++ ++# ++# Copyright (c) 2001 - 2019 The SCons Foundation ++# ++# Permission is hereby granted, free of charge, to any person obtaining ++# a copy of this software and associated documentation files (the ++# "Software"), to deal in the Software without restriction, including ++# without limitation the rights to use, copy, modify, merge, publish, ++# distribute, sublicense, and/or sell copies of the Software, and to ++# permit persons to whom the Software is furnished to do so, subject to ++# the following conditions: ++# ++# The above copyright notice and this permission notice shall be included ++# in all copies or substantial portions of the Software. ++# ++# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY ++# KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE ++# WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND ++# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE ++# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION ++# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION ++# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ++# ++ ++__revision__ = "src/engine/SCons/Tool/fcc.py bee7caf9defd6e108fc2998a2520ddb36a967691 2019-12-17 02:07:09 bdeegan" ++ ++from . import cc ++from . import cxx ++import os ++import re ++import subprocess ++ ++import SCons.Util ++import SCons.Tool ++ ++from . import gcc ++ ++compilers = ['fcc'] ++ ++ ++def generate(env): ++ """Add Builders and construction variables for Fujitsu C/C++ compiler to an Environment.""" ++ static_obj, shared_obj = SCons.Tool.createObjBuilders(env) ++ ++ if 'CC' not in env: ++ env['CC'] = env.Detect(compilers) or compilers[0] ++ ++ cc.generate(env) ++ ++ env['SHCCFLAGS'] = SCons.Util.CLVar('$CCFLAGS -fPIC') ++ # determine C compiler version ++ version = gcc.detect_version(env, env['CC']) ++ if version: ++ env['CCVERSION'] = version ++ ++ if 'CXX' not in env: ++ env['CXX'] = env.Detect('FCC') or 'FCC' ++ ++ cxx.generate(env) ++ ++ # determine C++ compiler version ++ version = gcc.detect_version(env, env['CXX']) ++ if version: ++ env['CXXVERSION'] = version ++ ++def exists(env): ++ return env.Detect(compilers) ++ ++# Local Variables: ++# tab-width:4 ++# indent-tabs-mode:nil ++# End: ++# vim: set expandtab tabstop=4 shiftwidth=4: +diff -u -r -N a/engine/SCons/Tool/frt.py b/engine/SCons/Tool/frt.py +--- a/engine/SCons/Tool/frt.py 1970-01-01 09:00:00.000000000 +0900 ++++ b/engine/SCons/Tool/frt.py 2020-07-21 17:28:57.000000000 +0900 +@@ -0,0 +1,63 @@ ++"""SCons.Tool.frt ++ ++Tool-specific initialization for frt, the Fujitsu Fortran 95/Fortran ++2003 compiler. ++ ++There normally shouldn't be any need to import this module directly. ++It will usually be imported through the generic SCons.Tool.Tool() ++selection method. ++ ++""" ++ ++# ++# Copyright (c) 2001 - 2019 The SCons Foundation ++# ++# Permission is hereby granted, free of charge, to any person obtaining ++# a copy of this software and associated documentation files (the ++# "Software"), to deal in the Software without restriction, including ++# without limitation the rights to use, copy, modify, merge, publish, ++# distribute, sublicense, and/or sell copies of the Software, and to ++# permit persons to whom the Software is furnished to do so, subject to ++# the following conditions: ++# ++# The above copyright notice and this permission notice shall be included ++# in all copies or substantial portions of the Software. ++# ++# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY ++# KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE ++# WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND ++# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE ++# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION ++# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION ++# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ++# ++ ++__revision__ = "src/engine/SCons/Tool/frt.py bee7caf9defd6e108fc2998a2520ddb36a967691 2019-12-17 02:07:09 bdeegan" ++ ++import SCons.Util ++ ++from . import fortran ++ ++def generate(env): ++ """Add Builders and construction variables for frt to an ++ Environment.""" ++ fortran.generate(env) ++ ++ for dialect in ['F77', 'F90', 'FORTRAN', 'F95', 'F03', 'F08']: ++ env['%s' % dialect] = 'frt' ++ env['SH%s' % dialect] = 'frt' ++ env['SH%sFLAGS' % dialect] = SCons.Util.CLVar('$%sFLAGS -fPIC' % dialect) ++ ++ env['INC%sPREFIX' % dialect] = "-I" ++ env['INC%sSUFFIX' % dialect] = "" ++ ++ env['FORTRANMODDIRPREFIX'] = "-M" ++ ++def exists(env): ++ return env.Detect('frt') ++ ++# Local Variables: ++# tab-width:4 ++# indent-tabs-mode:nil ++# End: ++# vim: set expandtab tabstop=4 shiftwidth=4: +diff -u -r -N a/engine/SCons/Tool/__init__.py b/engine/SCons/Tool/__init__.py +--- a/engine/SCons/Tool/__init__.py 2020-07-21 11:39:14.000000000 +0900 ++++ b/engine/SCons/Tool/__init__.py 2020-07-21 16:30:54.000000000 +0900 +@@ -1259,10 +1259,10 @@ + else: + "prefer GNU tools on all other platforms" + linkers = ['gnulink', 'ilink'] +- c_compilers = ['gcc', 'intelc', 'icc', 'cc'] +- cxx_compilers = ['g++', 'intelc', 'icc', 'cxx'] ++ c_compilers = ['fcc', 'gcc', 'intelc', 'icc', 'cc'] ++ cxx_compilers = ['fcc', 'g++', 'intelc', 'icc', 'cxx'] + assemblers = ['gas', 'nasm', 'masm'] +- fortran_compilers = ['gfortran', 'g77', 'ifort', 'ifl', 'f95', 'f90', 'f77'] ++ fortran_compilers = ['frt', 'gfortran', 'g77', 'ifort', 'ifl', 'f95', 'f90', 'f77'] + ars = ['ar', ] + + if not str(platform) == 'win32': +@@ -1282,7 +1282,7 @@ + ar = None + else: + # Don't use g++ if the C compiler has built-in C++ support: +- if c_compiler in ('msvc', 'intelc', 'icc'): ++ if c_compiler in ('msvc', 'intelc', 'icc', 'fcc'): + cxx_compiler = None + else: + cxx_compiler = FindTool(cxx_compilers, env) or cxx_compilers[0] diff --git a/var/spack/repos/builtin/packages/scons/package.py b/var/spack/repos/builtin/packages/scons/package.py index 328fa558ab..872e4cb852 100644 --- a/var/spack/repos/builtin/packages/scons/package.py +++ b/var/spack/repos/builtin/packages/scons/package.py @@ -25,6 +25,8 @@ class Scons(PythonPackage): depends_on('python@:2', when='@:2', type=('build', 'run')) depends_on('py-setuptools', when='@3.0.2:', type='build') + patch('fjcompiler.patch', when='%fj') + # Prevent passing --single-version-externally-managed to # setup.py, which it does not support. @when('@3.0.2:') diff --git a/var/spack/repos/builtin/packages/scorec-core/package.py b/var/spack/repos/builtin/packages/scorec-core/package.py index adb88f2aae..4ff96cae85 100644 --- a/var/spack/repos/builtin/packages/scorec-core/package.py +++ b/var/spack/repos/builtin/packages/scorec-core/package.py @@ -20,14 +20,6 @@ class ScorecCore(CMakePackage): depends_on('zoltan') depends_on('cmake@3.0:', type='build') - @property - def std_cmake_args(self): - # Default cmake RPATH options causes build failure on bg-q - if self.spec.satisfies('platform=bgq'): - return ['-DCMAKE_INSTALL_PREFIX:PATH={0}'.format(self.prefix)] - else: - return self._std_args(self) - def cmake_args(self): options = [] options.append('-DCMAKE_C_COMPILER=%s' % self.spec['mpi'].mpicc) diff --git a/var/spack/repos/builtin/packages/scorep/package.py b/var/spack/repos/builtin/packages/scorep/package.py index d7b57c0c44..61586ac43c 100644 --- a/var/spack/repos/builtin/packages/scorep/package.py +++ b/var/spack/repos/builtin/packages/scorep/package.py @@ -32,6 +32,8 @@ class Scorep(AutotoolsPackage): variant('papi', default=True, description="Enable PAPI") variant('pdt', default=False, description="Enable PDT") variant('shmem', default=False, description='Enable shmem tracing') + variant('unwind', default=False, + description="Enable sampling via libunwind and lib wrapping") # Dependencies for SCORE-P are quite tight. See the homepage for more # information. Starting with scorep 4.0 / cube 4.4, Score-P only depends on @@ -64,6 +66,8 @@ class Scorep(AutotoolsPackage): depends_on('mpi', when="+mpi") depends_on('papi', when="+papi") depends_on('pdt', when="+pdt") + depends_on('llvm', when="+unwind") + depends_on('libunwind', when="+unwind") # Score-P requires a case-sensitive file system, and therefore # does not work on macOS @@ -96,6 +100,10 @@ class Scorep(AutotoolsPackage): if "+pdt" in spec: config_args.append("--with-pdt=%s" % spec['pdt'].prefix.bin) + if "+unwind" in spec: + config_args.append("--with-libunwind=%s" % + spec['libunwind'].prefix) + config_args += self.with_or_without('shmem') config_args += self.with_or_without('mpi') diff --git a/var/spack/repos/builtin/packages/scotch/package.py b/var/spack/repos/builtin/packages/scotch/package.py index f2ba07a94b..1fa9fbb3aa 100644 --- a/var/spack/repos/builtin/packages/scotch/package.py +++ b/var/spack/repos/builtin/packages/scotch/package.py @@ -14,6 +14,7 @@ class Scotch(Package): url = "http://gforge.inria.fr/frs/download.php/latestfile/298/scotch_6.0.4.tar.gz" list_url = "http://gforge.inria.fr/frs/?group_id=248" + version('6.0.9', sha256='622b4143cf01c480bb15708b3651b29c25e4aeb00c8c6447ff196aca2eca5c93') version('6.0.8', sha256='0ba3f145026174304f910c8770a3cbb034f213c91d939573751cfbb4fd46d45e') version('6.0.6', sha256='686f0cad88d033fe71c8b781735ff742b73a1d82a65b8b1586526d69729ac4cf') version('6.0.5a', sha256='5b21b95e33acd5409d682fa7253cefbdffa8db82875549476c006d8cbe7c556f') @@ -169,8 +170,6 @@ class Scotch(Package): if self.spec.satisfies('platform=darwin'): cflags.append('-DCOMMON_PTHREAD_BARRIER') ldflags.append('-lm -pthread') - elif self.spec.satisfies('platform=bgq'): - ldflags.append('-lm -lrt -lpthread') else: ldflags.append('-lm -lrt -pthread') diff --git a/var/spack/repos/builtin/packages/scr/package.py b/var/spack/repos/builtin/packages/scr/package.py index 3e0e1456cd..ab5907c375 100644 --- a/var/spack/repos/builtin/packages/scr/package.py +++ b/var/spack/repos/builtin/packages/scr/package.py @@ -80,8 +80,6 @@ class Scr(CMakePackage): variant('cntl_base', default='/tmp', description='Compile time default location for control directory.') - conflicts('platform=bgq') - def get_abs_path_rel_prefix(self, path): # Return path if absolute, otherwise prepend prefix if os.path.isabs(path): diff --git a/var/spack/repos/builtin/packages/screen/package.py b/var/spack/repos/builtin/packages/screen/package.py index d68164b4d4..e2ac6fc7d9 100644 --- a/var/spack/repos/builtin/packages/screen/package.py +++ b/var/spack/repos/builtin/packages/screen/package.py @@ -14,6 +14,7 @@ class Screen(AutotoolsPackage, GNUMirrorPackage): homepage = "https://www.gnu.org/software/screen/" gnu_mirror_path = "screen/screen-4.3.1.tar.gz" + version('4.8.0', sha256='6e11b13d8489925fde25dfb0935bf6ed71f9eb47eff233a181e078fde5655aa1') version('4.6.2', sha256='1b6922520e6a0ce5e28768d620b0f640a6631397f95ccb043b70b91bb503fa3a') version('4.3.1', sha256='fa4049f8aee283de62e283d427f2cfd35d6c369b40f7f45f947dbfd915699d63') version('4.3.0', sha256='5164e89bcc60d7193177e6e02885cc42411d1d815c839e174fb9abafb9658c46') diff --git a/var/spack/repos/builtin/packages/sdsl-lite/package.py b/var/spack/repos/builtin/packages/sdsl-lite/package.py index d5d2a251c0..ba2485c6b7 100644 --- a/var/spack/repos/builtin/packages/sdsl-lite/package.py +++ b/var/spack/repos/builtin/packages/sdsl-lite/package.py @@ -32,5 +32,11 @@ class SdslLite(Package): tar('-xvf', self.stage.archive_file) with working_dir('sdsl-lite-{0}'.format(spec.version.dotted)): + if self.spec.satisfies('%fj'): + filter_file( + 'stdlib=libc', + 'stdlib=libstdc', + './CMakeLists.txt' + ) helper = Executable('./install.sh') helper(prefix) diff --git a/var/spack/repos/builtin/packages/shapeit4/package.py b/var/spack/repos/builtin/packages/shapeit4/package.py new file mode 100644 index 0000000000..009e5084bf --- /dev/null +++ b/var/spack/repos/builtin/packages/shapeit4/package.py @@ -0,0 +1,55 @@ +# 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 Shapeit4(MakefilePackage): + """SHAPEIT4 is a fast and accurate method for estimation of haplotypes + (aka phasing) for SNP array and high coverage sequencing data.""" + + homepage = "https://odelaneau.github.io/shapeit4/" + url = "https://github.com/odelaneau/shapeit4/archive/v4.1.3.tar.gz" + + version('4.1.3', sha256='d209731277b00bca1e3478b7e0a0cbe40fbe23826c3d640ad12e0dd6033cbbb8') + + maintainers = ['ilbiondo'] + + depends_on('htslib') + depends_on('boost') + depends_on('bzip2') + depends_on('xz') + + def edit(self, spec, prefix): + + makefile = FileFilter('makefile') + makefile.filter('CXX=.*', 'CXX = c++') + + makefile.filter('CXXFLAG=.*', 'CXXFLAG = -O3') + makefile.filter('LDFLAG=.*', 'LDFLAG = -O3') + + makefile.filter('HTSLIB_INC=.*', 'HTSLIB_INC = ' + + self.spec['htslib'].prefix.include) + + makefile.filter('HTSLIB_LIB=.*', 'HTSLIB_LIB = ' + + self.spec['htslib'].prefix.lib + '/libhts.so') + + makefile.filter('BOOST_INC=.*', 'BOOST_INC = ' + + self.spec['boost'].prefix.include) + + makefile.filter('BOOST_LIB_IO=.*', 'BOOST_LIB_IO = ' + + self.spec['boost'].prefix.lib + + "/libboost_iostreams.so") + + makefile.filter('BOOST_LIB_PO=.*', 'BOOST_LIB_PO = ' + + self.spec['boost'].prefix.lib + + "/libboost_program_options.so") + + def install(self, spec, prefix): + + install_tree('bin', prefix.bin) + install_tree('test', join_path(self.prefix, 'test')) + install_tree('docs', join_path(self.prefix, 'docs')) + install_tree('maps', join_path(self.prefix, 'maps')) diff --git a/var/spack/repos/builtin/packages/shapelib/package.py b/var/spack/repos/builtin/packages/shapelib/package.py new file mode 100644 index 0000000000..47be5cdaa1 --- /dev/null +++ b/var/spack/repos/builtin/packages/shapelib/package.py @@ -0,0 +1,18 @@ +# 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 Shapelib(CMakePackage): + """The Shapefile C Library provides the ability to write simple C programs + for reading, writing and updating (to a limited extent) ESRI Shapefiles, + and the associated attribute file (.dbf). + """ + + homepage = "http://shapelib.maptools.org/" + url = "https://github.com/OSGeo/shapelib/archive/v1.5.0.tar.gz" + + version('1.5.0', sha256='48de3a6a8691b0b111b909c0b908af4627635c75322b3a501c0c0885f3558cad') diff --git a/var/spack/repos/builtin/packages/singularity/package.py b/var/spack/repos/builtin/packages/singularity/package.py index 9f4c898e61..3f8d99e1f5 100644 --- a/var/spack/repos/builtin/packages/singularity/package.py +++ b/var/spack/repos/builtin/packages/singularity/package.py @@ -24,12 +24,13 @@ class Singularity(MakefilePackage): ''' homepage = "https://www.sylabs.io/singularity/" - url = "https://github.com/sylabs/singularity/releases/download/v3.1.1/singularity-3.1.1.tar.gz" + url = "https://github.com/sylabs/singularity/releases/download/v3.6.1/singularity-3.6.1.tar.gz" git = "https://github.com/sylabs/singularity.git" maintainers = ['alalazo'] version('master', branch='master') + version('3.6.1', sha256='6cac56106ee7f209150aaee9f8788d03b58796af1b767245d343f0b8a691121c') version('3.5.3', sha256='0c76f1e3808bf4c10e92b17150314b2b816be79f8101be448a6e9d7a96c9e486') version('3.5.2', sha256='f9c21e289377a4c40ed7a78a0c95e1ff416dec202ed49a6c616dd2c37700eab8') version('3.4.1', sha256='638fd7cc5ab2a20e779b8768f73baf21909148339d6c4edf6ff61349c53a70c2') diff --git a/var/spack/repos/builtin/packages/sirius/package.py b/var/spack/repos/builtin/packages/sirius/package.py index ff81b120d4..9fe1481399 100644 --- a/var/spack/repos/builtin/packages/sirius/package.py +++ b/var/spack/repos/builtin/packages/sirius/package.py @@ -16,9 +16,15 @@ class Sirius(CMakePackage, CudaPackage): list_url = "https://github.com/electronic-structure/SIRIUS/releases" git = "https://github.com/electronic-structure/SIRIUS.git" + maintainers = ['simonpintarelli', 'haampie', 'dev-zero'] + version('develop', branch='develop') version('master', branch='master') + version('6.5.6', sha256='c8120100bde4477545eae489ea7f9140d264a3f88696ec92728616d78f214cae') + version('6.5.5', sha256='0b23d3a8512682eea67aec57271031c65f465b61853a165015b38f7477651dd1') + version('6.5.4', sha256='5f731926b882a567d117afa5e0ed33291f1db887fce52f371ba51f014209b85d') + version('6.5.3', sha256='eae0c303f332425a8c792d4455dca62557931b28a5df8b4c242652d5ffddd580') version('6.5.2', sha256='c18adc45b069ebae03f94eeeeed031ee99b3d8171fa6ee73c7c6fb1e42397fe7') version('6.5.1', sha256='599dd0fa25a4e83db2a359257a125e855d4259188cf5b0065b8e7e66378eacf3') version('6.5.0', sha256='5544f3abbb71dcd6aa08d18aceaf53c38373de4cbd0c3af44fbb39c20cfeb7cc') @@ -36,10 +42,12 @@ class Sirius(CMakePackage, CudaPackage): variant('openmp', default=True, description="Build with OpenMP support") variant('fortran', default=False, description="Build Fortran bindings") variant('python', default=False, description="Build Python bindings") + variant('memory_pool', default=True, description="Build with memory pool") variant('elpa', default=False, description="Use ELPA") variant('vdwxc', default=False, description="Enable libvdwxc support") variant('scalapack', default=False, description="Enable scalapack support") variant('magma', default=False, description="Enable MAGMA support") + variant('nlcglib', default=False, description="enable robust wave function optimization") variant('build_type', default='Release', description='CMake build type', values=('Debug', 'Release', 'RelWithDebInfo')) @@ -48,7 +56,7 @@ class Sirius(CMakePackage, CudaPackage): depends_on('mpi') depends_on('gsl') depends_on('lapack') - depends_on('fftw') # SIRIUS does not care about MPI-support in FFTW + depends_on('fftw-api@3') depends_on('libxc') depends_on('spglib') depends_on('hdf5+hl') @@ -64,15 +72,20 @@ class Sirius(CMakePackage, CudaPackage): depends_on('magma', when='+magma') depends_on('spfft', when='@6.4.0:') + depends_on('spfft', when='@master') + depends_on('spfft', when='@develop') depends_on('spfft+cuda', when='@6.4.0:+cuda') + depends_on('spfft+cuda', when='@master+cuda') + depends_on('spfft+cuda', when='@develop+cuda') depends_on('elpa+openmp', when='+elpa+openmp') depends_on('elpa~openmp', when='+elpa~openmp') + depends_on('nlcglib', when='+nlcglib') depends_on('libvdwxc+mpi', when='+vdwxc') depends_on('scalapack', when='+scalapack') depends_on('cuda', when='+cuda') extends('python', when='+python') - conflicts('+shared', when='@6.3.0:') # option to build shared libraries has been removed + conflicts('+shared', when='@6.3.0:6.4.999') # TODO: # add support for CRAY_LIBSCI, ROCm, testing @@ -90,9 +103,8 @@ class Sirius(CMakePackage, CudaPackage): return find_libraries( libraries, root=self.prefix, - shared=False, recursive=True + shared='+shared' in self.spec, recursive=True ) - else: if '+fortran' in self.spec: libraries += ['libsirius_f'] @@ -125,7 +137,9 @@ class Sirius(CMakePackage, CudaPackage): _def('+openmp'), _def('+elpa'), _def('+magma'), + _def('+nlcglib'), _def('+vdwxc'), + _def('+memory_pool'), _def('+scalapack'), _def('+fortran', 'CREATE_FORTRAN_BINDINGS'), _def('+python', 'CREATE_PYTHON_MODULE'), diff --git a/var/spack/repos/builtin/packages/slate/package.py b/var/spack/repos/builtin/packages/slate/package.py index cae0a0e8df..5d78b2e34c 100644 --- a/var/spack/repos/builtin/packages/slate/package.py +++ b/var/spack/repos/builtin/packages/slate/package.py @@ -25,7 +25,7 @@ class Slate(Package): variant('mpi', default=True, description='Build with MPI support.') variant('openmp', default=True, description='Build with OpenMP support.') - depends_on('cuda@9:', when='+cuda') + depends_on('cuda@9:10', when='+cuda') depends_on('intel-mkl') depends_on('mpi', when='+mpi') @@ -41,10 +41,13 @@ class Slate(Package): f_mpi = "1" if spec.variants['mpi'].value else "0" f_openmp = "1" if spec.variants['openmp'].value else "0" - compiler = 'mpicxx' if spec.variants['mpi'].value else '' + comp_cxx = comp_for = '' + if '+mpi' in spec: + comp_cxx = 'mpicxx' + comp_for = 'mpif90' make('mpi=' + f_mpi, 'mkl=1', 'cuda=' + f_cuda, 'openmp=' + f_openmp, - 'CXX=' + compiler) + 'CXX=' + comp_cxx, 'FC=' + comp_for) install_tree('lib', prefix.lib) install_tree('test', prefix.test) mkdirp(prefix.include) diff --git a/var/spack/repos/builtin/packages/slider/package.py b/var/spack/repos/builtin/packages/slider/package.py new file mode 100644 index 0000000000..bbc9ce243c --- /dev/null +++ b/var/spack/repos/builtin/packages/slider/package.py @@ -0,0 +1,39 @@ +# 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 Slider(Package): + """Slider is a framework for deployment and management of these + long-running data access applications in Hadoop.""" + + homepage = "https://www.cloudera.com/products/open-source/apache-hadoop/apache-slider.html" + url = "http://archive.apache.org/dist/incubator/slider/0.92.0-incubating/apache-slider-0.92.0-incubating-source-release.tar.gz" + list_url = "http://archive.apache.org/dist/incubator/slider" + list_depth = 1 + + version('0.92.0', sha256='485f02f4f9f0b270017717c9471b83b0d77d005d25261b741fb381791ce838b9') + version('0.91.0', sha256='212a5cde6de60060c9a081f553d66940b70af4bccb469072febb554c4005bcef') + version('0.90.2', sha256='410941f772d29f564c4bb90ca0631f29dc895f509048cb6052f8695302e3f944') + + depends_on('maven', type='build') + depends_on('java@8', type=('build', 'run')) + depends_on('python@2.7.0:2.7.99', type='run') + + def url_for_version(self, version): + return "http://archive.apache.org/dist/incubator/slider/{0}-incubating/apache-slider-{0}-incubating-source-release.tar.gz".format(version) + + def install(self, spec, prefix): + mvn = which('mvn') + mvn('clean', 'package', '-DskipTests') + slider_path = join_path(self.stage.source_path, + 'slider-assembly', 'target', + 'slider-{0}-incubating-all' + .format(spec.version), + 'slider-{0}-incubating' + .format(spec.version)) + with working_dir(slider_path): + install_tree('.', prefix) diff --git a/var/spack/repos/builtin/packages/smartdenovo/inline-limit.patch b/var/spack/repos/builtin/packages/smartdenovo/inline-limit.patch new file mode 100644 index 0000000000..9a42bd29cd --- /dev/null +++ b/var/spack/repos/builtin/packages/smartdenovo/inline-limit.patch @@ -0,0 +1,24 @@ +diff -Nur smartdenovo/wtlay.h smartdenovo-new/wtlay.h +--- smartdenovo/wtlay.h 2020-07-09 02:47:13.503412360 +0800 ++++ smartdenovo-new/wtlay.h 2020-07-09 02:49:02.775412360 +0800 +@@ -503,17 +503,17 @@ + return e2; + } + +-inline int cut_biedge_strgraph_core(StringGraph *g, uint32_t node_id, int dir, uint32_t eidx, int closed){ ++static inline int cut_biedge_strgraph_core(StringGraph *g, uint32_t node_id, int dir, uint32_t eidx, int closed){ + edge_strgraph(g, node_id, dir, eidx)->closed = closed; + edge_partner_strgraph(g, node_id, dir, eidx)->closed = closed; + return 1; + } + +-inline int cut_biedge_strgraph(StringGraph *g, uint32_t node_id, int dir, uint32_t eidx){ ++static inline int cut_biedge_strgraph(StringGraph *g, uint32_t node_id, int dir, uint32_t eidx){ + return cut_biedge_strgraph_core(g, node_id, dir, eidx, 1); + } + +-inline int cut_biedge_strgraph2(StringGraph *g, uint32_t node_id, int dir, uint32_t eidx){ ++static inline int cut_biedge_strgraph2(StringGraph *g, uint32_t node_id, int dir, uint32_t eidx){ + return cut_biedge_strgraph_core(g, node_id, dir, eidx, 2); + } + diff --git a/var/spack/repos/builtin/packages/smartdenovo/package.py b/var/spack/repos/builtin/packages/smartdenovo/package.py index f18b8583d9..48109ea9e4 100644 --- a/var/spack/repos/builtin/packages/smartdenovo/package.py +++ b/var/spack/repos/builtin/packages/smartdenovo/package.py @@ -17,8 +17,8 @@ class Smartdenovo(MakefilePackage): depends_on('sse2neon', when='target=aarch64:') - patch('aarch64.patch', when='target=aarch64:', - sha256='7dd4bca28aafb0680cc1823aa58ac9000819993538e92628554666c4b3acc470') + patch('aarch64.patch', sha256='7dd4bca28aafb0680cc1823aa58ac9000819993538e92628554666c4b3acc470', when='target=aarch64:') + patch('inline-limit.patch', sha256='9f514ed72c37cf52ee2ffbe06f9ca1ed5a3e0819dab5876ecd83107c5e5bed81') def install(self, spec, prefix): install_files = [ diff --git a/var/spack/repos/builtin/packages/snappy/package.py b/var/spack/repos/builtin/packages/snappy/package.py index d5ade343f3..2e0154aa6f 100644 --- a/var/spack/repos/builtin/packages/snappy/package.py +++ b/var/spack/repos/builtin/packages/snappy/package.py @@ -10,8 +10,9 @@ class Snappy(CMakePackage): """A fast compressor/decompressor: https://code.google.com/p/snappy""" homepage = "https://github.com/google/snappy" - url = "https://github.com/google/snappy/archive/1.1.7.tar.gz" + url = "https://github.com/google/snappy/archive/1.1.8.tar.gz" + version('1.1.8', sha256='16b677f07832a612b0836178db7f374e414f94657c138e6993cbfc5dcc58651f') version('1.1.7', sha256='3dfa02e873ff51a11ee02b9ca391807f0c8ea0529a4924afa645fbf97163f9d4') variant('shared', default=True, description='Build shared libraries') diff --git a/var/spack/repos/builtin/packages/solr/package.py b/var/spack/repos/builtin/packages/solr/package.py new file mode 100644 index 0000000000..84158c2ae4 --- /dev/null +++ b/var/spack/repos/builtin/packages/solr/package.py @@ -0,0 +1,28 @@ +# 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 Solr(Package): + """Solr is highly reliable, scalable and fault tolerant, providing distributed + indexing, replication and load-balanced querying, automated failover and + recovery,centralized configuration and more. Solr powers the search and + navigation features of many of the world's largest internet sites.""" + + homepage = "https://lucene.apache.org/" + url = "https://archive.apache.org/dist/lucene/solr/7.7.3/solr-7.7.3.tgz" + list_url = "https://archive.apache.org/dist/lucene/solr" + list_depth = 1 + + version('8.6.0', sha256='4519ccdb531619df770f1065db6adcedc052c7aa94b42806d541966550956aa5') + version('8.5.2', sha256='c457d6c7243241cad141e1df34c6f669d58a6c60e537f4217d032616dd066dcf') + version('8.5.1', sha256='47b68073b37bbcc0517a355ef722f20827c3f1416537ebbccf5239dda8064a0b') + version('8.5.0', sha256='9e54711ad0aa60e9723d2cdeb20cf0d21ee2ab9fa0048ec59dcb5f9d94dc61dd') + version('8.4.1', sha256='ec39e1e024b2e37405149de41e39e875a39bf11a53f506d07d96b47b8d2a4301') + version('7.7.3', sha256='3ec67fa430afa5b5eb43bb1cd4a659e56ee9f8541e0116d6080c0d783870baee') + + def install(self, spec, prefix): + install_tree('.', prefix) diff --git a/var/spack/repos/builtin/packages/spades/package.py b/var/spack/repos/builtin/packages/spades/package.py index 266d1cbcde..47c0fcbcfd 100644 --- a/var/spack/repos/builtin/packages/spades/package.py +++ b/var/spack/repos/builtin/packages/spades/package.py @@ -13,6 +13,7 @@ class Spades(CMakePackage): homepage = "http://cab.spbu.ru/software/spades/" url = "http://cab.spbu.ru/files/release3.10.1/SPAdes-3.10.1.tar.gz" + version('3.14.1', sha256='d629b78f7e74c82534ac20f5b3c2eb367f245e6840a67b9ef6a76f6fac5323ca') version('3.13.0', sha256='c63442248c4c712603979fa70503c2bff82354f005acda2abc42dd5598427040') version('3.12.0', sha256='15b48a3bcbbe6a8ad58fd04ba5d3f1015990fbfd9bdf4913042803b171853ac7') version('3.11.1', sha256='3ab85d86bf7d595bd8adf11c971f5d258bbbd2574b7c1703b16d6639a725b474') diff --git a/var/spack/repos/builtin/packages/spfft/package.py b/var/spack/repos/builtin/packages/spfft/package.py index 0f680564a8..2fbd738383 100644 --- a/var/spack/repos/builtin/packages/spfft/package.py +++ b/var/spack/repos/builtin/packages/spfft/package.py @@ -7,12 +7,14 @@ from spack import * -class Spfft(CMakePackage): +class Spfft(CMakePackage, CudaPackage): """Sparse 3D FFT library with MPI, OpenMP, CUDA and ROCm support.""" homepage = "https://github.com/eth-cscs/SpFFT" url = "https://github.com/eth-cscs/SpFFT/archive/v0.9.8.zip" + version('0.9.12', sha256='1f7bf5164dcceb0e3bbce7d6ff9faef3145ad17cf3430149d40a98c43c010acc') + version('0.9.11', sha256='36542a60378e8672654188dee006975ef9e10f502791459ff7ebf4b38451cb9b') version('0.9.10', sha256='9cbbb7ba5e53e17eeb45e809841d8272e5333f739c2442a99c3e255c1ddec3e9') version('0.9.9', sha256='a8fd7a2d767716bb73185ca03bf4c106c6981b79130f3e456e5d2e744a2b3ba0') version('0.9.8', sha256='f49fa51316bbfa68309e951d2375e1f6904120c93868cbe13bc2974c0b801a3f') @@ -26,9 +28,10 @@ class Spfft(CMakePackage): variant('fortran', default=False, description="enable fortran") variant('build_type', default='Release', description='CMake build type', values=('Debug', 'Release', 'RelWithDebInfo')) - depends_on('fftw') + depends_on('fftw-api@3') depends_on('mpi', when='+mpi') - depends_on('cuda', when='+cuda') + + depends_on('cuda@:10', when='@:0.9.11 +cuda') def cmake_args(self): args = [] diff --git a/var/spack/repos/builtin/packages/spla/package.py b/var/spack/repos/builtin/packages/spla/package.py new file mode 100644 index 0000000000..2c84d14524 --- /dev/null +++ b/var/spack/repos/builtin/packages/spla/package.py @@ -0,0 +1,47 @@ +# 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 Spla(CMakePackage): + """Specialized Parallel Linear Algebra, providing distributed GEMM + functionality for specific matrix distributions with optional GPU + acceleration.""" + + homepage = "https://github.com/eth-cscs/spla" + url = "https://github.com/eth-cscs/spla/archive/v1.0.0.tar.gz" + git = 'https://github.com/eth-cscs/spla.git' + + version('1.0.0', sha256='a0eb269b84d7525b223dc650de12170bba30fbb3ae4f93eb2b5cbdce335e4da1') + version('master', branch='master') + + variant('openmp', default=True, description="Build with OpenMP support") + variant('static', default=False, description="Build as static library") + variant('cuda', default=False, description="CUDA") + + depends_on('mpi') + depends_on('blas') + depends_on('cuda', when='+cuda') + depends_on('cmake@3.10:', type='build') + + def cmake_args(self): + args = [] + + if '+openmp' in self.spec: + args += ["-DSPLA_OMP=ON"] + else: + args += ["-DSPLA_OMP=OFF"] + + if '+cuda' in self.spec: + args += ["-DSPLA_GPU_BACKEND=CUDA"] + else: + args += ["-DSPLA_GPU_BACKEND=OFF"] + + if '+static' in self.spec: + args += ["-DSPLA_STATIC=ON"] + else: + args += ["-DSPLA_STATIC=OFF"] + return args diff --git a/var/spack/repos/builtin/packages/sprng/package.py b/var/spack/repos/builtin/packages/sprng/package.py new file mode 100644 index 0000000000..eb85db87e0 --- /dev/null +++ b/var/spack/repos/builtin/packages/sprng/package.py @@ -0,0 +1,132 @@ +# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + + +class Sprng(AutotoolsPackage): + """SPRNG: A Scalable Library For Pseudorandom Number Generation + Sprng is a distributed process-aware random number generator that + avoids correlations in random number sequences across processes. + """ + + maintainers = ['kayarre'] + + homepage = "http://www.sprng.org" + url = "http://www.sprng.org/Version5.0/sprng5.tar.bz2" + + version('5.0', sha256='9172a495472cc24893e7489ce9b5654300dc60cba4430e436ce50d28eb749a66') + + variant('mpi', default=True, description='Enable MPI support') + variant('fortran', default=False, description='Enable Fortran support') + + depends_on('mpi', when='+mpi') + + def url_for_version(self, version): + url = "http://www.sprng.org/Version{0}/sprng{1}.tar.bz2" + return url.format(version, version.up_to(1)) + + def configure_args(self): + configure_args = [] + configure_args += self.with_or_without('mpi') + configure_args += self.with_or_without('fortran') + + if '+mpi' in self.spec: + mpi_link_flags = self.spec['mpi:cxx'].libs.link_flags + configure_args.append('LIBS={0}'.format(mpi_link_flags)) + configure_args.append('CC={0}'.format(self.spec['mpi'].mpicc)) + configure_args.append('CXX={0}'.format(self.spec['mpi'].mpicxx)) + if '+fortran' in self.spec: + configure_args.append('FC={0}'.format(self.spec['mpi'].mpifc)) + return configure_args + + # TODO: update after solution for virtual depedencies + @run_before('configure') + def mpicxx_check(self): + # print(self.spec['mpi:fortran'].libs.names) + if '+mpi' in self.spec: + if 'mpi_cxx' not in self.spec['mpi:cxx'].libs.names: + msg = 'SPRNG requires a mpi Cxx bindings to build' + raise RuntimeError(msg) + if '+fortran' in self.spec: + if 'fmpi' not in self.spec['fortran'].libs.names: + msg = ('SPRNG requires fortran mpi ' + 'libraries with mpi enabled') + raise RuntimeError(msg) + # raise RuntimeError("test") + + # FIXME: update after features in #15702 are enabled + @run_after('build') + @on_package_attributes(run_tests=True) + def check_build(self): + + def listisclose(a, b, rel_tol=1e-09, abs_tol=1.0e-20): + for ai, bi in zip(a, b): + if (not abs(ai - bi) <= + max(rel_tol * max(abs(ai), abs(bi)), abs_tol)): + return False + return True + # Build and run a small program to test the installed sprng library + spec = self.spec + print("Checking sprng installation...") + checkdir = "spack-check" + with working_dir(checkdir, create=True): + source = r""" +#include <cstdio> +#define SIMPLE_SPRNG /* simple interface */ +#include "sprng_cpp.h" /* SPRNG header file */ + +#define SEED 985456376 + +int main() { + int seed = SEED; + int i, j; + double rn; + for(j=0; j < 5; ++j) { + init_sprng(seed, SPRNG_DEFAULT, j); + for (i=0; i<3; ++i) { + rn = sprng(); + printf("%f ", rn); + } + } + printf("\n"); + return 0; +} +""" + expected = [0.504272, 0.558437, 0.000848, + 0.707488, 0.664048, 0.005616, + 0.060190, 0.415195, 0.933915, + 0.085215, 0.456461, 0.244497, + 0.626037, 0.917948, 0.135160 + ] + with open("check.c", 'w') as f: + f.write(source) + if '+mpi' in spec: + cc = Executable(spec['mpi'].mpicxx) + else: + cc = Executable(self.compiler.cxx) + cc(*(['-c', "check.c"] + spec['sprng'].headers.cpp_flags.split())) + cc(*(['-o', "check", + "check.o"] + spec['sprng'].libs.ld_flags.split())) + try: + check = Executable('./check') + output = check(output=str) + except ProcessError: + output = "" + out2float = [float(num) for num in output.split(' ')] + + success = listisclose(expected, out2float) + if not success: + print("Produced output does not match expected output.") + print("Expected output:") + print('-' * 80) + print(expected) + print('-' * 80) + print("Produced output:") + print('-' * 80) + print(output) + print('-' * 80) + raise RuntimeError("sprng install check failed") + else: + print("test passed") + shutil.rmtree(checkdir) diff --git a/var/spack/repos/builtin/packages/squashfs/package.py b/var/spack/repos/builtin/packages/squashfs/package.py index 62cd3c690a..4d203e3d15 100644 --- a/var/spack/repos/builtin/packages/squashfs/package.py +++ b/var/spack/repos/builtin/packages/squashfs/package.py @@ -19,15 +19,43 @@ class Squashfs(MakefilePackage): version('4.1', sha256='3a870d065a25b3f5467bc6d9ed34340befab51a3f9e4b7e3792ea0ff4e06046a') version('4.0', sha256='18948edbe06bac2c4307eea99bfb962643e4b82e5b7edd541b4d743748e12e21') + variant('gzip', default=True, description='Enable gzip compression support') + variant('lz4', default=False, description='Enable LZ4 compression support') + variant('lzo', default=False, description='Enable LZO compression support') + variant('xz', default=False, description='Enable xz compression support') + variant('zstd', default=False, description='Enable Zstandard/zstd support') + variant('default_compression', default='gzip', values=('gzip', 'lz4', 'lzo', 'xz', 'zstd'), + multi=False, description='Default compression algorithm') + + conflicts('squashfs~gzip default_compression=gzip', msg='Cannot set default compression to missing algorithm') + conflicts('squashfs~lz4 default_compression=lz4', msg='Cannot set default compression to missing algorithm') + conflicts('squashfs~lzo default_compression=lzo', msg='Cannot set default compression to missing algorithm') + conflicts('squashfs~xz default_compression=xz', msg='Cannot set default compression to missing algorithm') + conflicts('squashfs~zstd default_compression=zstd', msg='Cannot set default compression to missing algorithm') + depends_on('m4', type='build') depends_on('autoconf', type='build') depends_on('automake', type='build') depends_on('libtool', type='build') - depends_on('zlib') + + depends_on('zlib', when='+gzip') + depends_on('lz4', when='+lz4') + depends_on('lzo', when='+lzo') + depends_on('xz', when='+xz') + depends_on('zstd', when='+zstd') def build(self, spec, prefix): with working_dir('squashfs-tools'): - make(parallel=False) + default = spec.variants['default_compression'].value + make( + 'GZIP_SUPPORT={0}'.format(1 if '+gzip' in spec else 0), + 'LZ4_SUPPORT={0}' .format(1 if '+lz4' in spec else 0), + 'LZO_SUPPORT={0}' .format(1 if '+lzo' in spec else 0), + 'XZ_SUPPORT={0}' .format(1 if '+xz' in spec else 0), + 'ZSTD_SUPPORT={0}'.format(1 if '+zstd' in spec else 0), + 'COMP_DEFAULT={0}'.format(default), + parallel=False + ) def install(self, spec, prefix): with working_dir('squashfs-tools'): diff --git a/var/spack/repos/builtin/packages/stacks/package.py b/var/spack/repos/builtin/packages/stacks/package.py index c7d6803227..81fb81a047 100644 --- a/var/spack/repos/builtin/packages/stacks/package.py +++ b/var/spack/repos/builtin/packages/stacks/package.py @@ -13,6 +13,7 @@ class Stacks(AutotoolsPackage): homepage = "http://catchenlab.life.illinois.edu/stacks/" url = "http://catchenlab.life.illinois.edu/stacks/source/stacks-1.46.tar.gz" + version('2.53', sha256='ee1efceaeeeb7a39f0c2e804ad7c0a003094db28c9101120c38ddb02846e90fd') version('2.3b', sha256='a46786d8811a730ebcdc17891e89f50d4f4ae196734439dac86091f45c92ac72') version('1.46', sha256='45a0725483dc0c0856ad6b1f918e65d91c1f0fe7d8bf209f76b93f85c29ea28a') diff --git a/var/spack/repos/builtin/packages/sas/package.py b/var/spack/repos/builtin/packages/static-analysis-suite/package.py index 8b09cf4d79..fe6d82cc4a 100644 --- a/var/spack/repos/builtin/packages/sas/package.py +++ b/var/spack/repos/builtin/packages/static-analysis-suite/package.py @@ -6,7 +6,7 @@ from spack import * -class Sas(CMakePackage): +class StaticAnalysisSuite(CMakePackage): """SAS (Static Analysis Suite) is a powerful tool for running static analysis on C++ code.""" diff --git a/var/spack/repos/builtin/packages/storm/package.py b/var/spack/repos/builtin/packages/storm/package.py index a4da7325cd..d9a2ad2ece 100644 --- a/var/spack/repos/builtin/packages/storm/package.py +++ b/var/spack/repos/builtin/packages/storm/package.py @@ -13,16 +13,18 @@ class Storm(Package): Storm provides a set of general primitives for doing realtime computation. """ - homepage = "https://www-eu.apache.org/dist/storm" - url = "https://www-eu.apache.org/dist/storm/apache-storm-2.1.0/apache-storm-2.1.0.tar.gz" - url_list = homepage - list_depth = 2 + homepage = "https://storm.apache.org/" + url = "https://archive.apache.org/dist/storm/apache-storm-2.2.0/apache-storm-2.2.0.tar.gz" + list_url = "https://archive.apache.org/dist/storm/" + list_depth = 1 + version('2.2.0', sha256='f621163f349a8e85130bc3d2fbb34e3b08f9c039ccac5474f3724e47a3a38675') version('2.1.0', sha256='e279a495dda42af7d9051543989f74a1435a5bda53e795a1de4a1def32027fc4') version('2.0.0', sha256='0a4a6f985242a99f899a01bd01dacf9365f381e2acc473caa84073fbe84f6703') version('1.2.3', sha256='d45322253db06353a521284f31b30bd964dab859f3a279a305bd79112803425a') - depends_on('java', type='run') + depends_on('java@8', type=('build', 'run')) + depends_on('zookeeper', type='run') def install(self, spec, prefix): install_tree('.', prefix) diff --git a/var/spack/repos/builtin/packages/stow/package.py b/var/spack/repos/builtin/packages/stow/package.py index bc3515407d..2ce4c91b3e 100644 --- a/var/spack/repos/builtin/packages/stow/package.py +++ b/var/spack/repos/builtin/packages/stow/package.py @@ -17,6 +17,7 @@ class Stow(AutotoolsPackage, GNUMirrorPackage): homepage = "https://www.gnu.org/software/stow/" gnu_mirror_path = "stow/stow-2.2.2.tar.bz2" + version('2.3.1', sha256='26a6cfdfdaca0eea742db5487798c15fcd01889dc86bc5aa62614ec9415a422f') version('2.2.2', sha256='a0022034960e47a8d23dffb822689f061f7a2d9101c9835cf11bf251597aa6fd') version('2.2.0', sha256='86bc30fe1d322a5c80ff3bd7580c2758149aad7c3bbfa18b48a9d95c25d66b05') version('2.1.3', sha256='2dff605c801fee9fb7d0fef6988bbb8a0511fad469129b20cae60e0544ba1443') diff --git a/var/spack/repos/builtin/packages/subread/package.py b/var/spack/repos/builtin/packages/subread/package.py index 32d8e9abf1..5bd51ad889 100644 --- a/var/spack/repos/builtin/packages/subread/package.py +++ b/var/spack/repos/builtin/packages/subread/package.py @@ -33,7 +33,7 @@ class Subread(MakefilePackage): ) if spec.target.family == 'aarch64': filter_file('-mtune=core2', '', 'Makefile.Linux') - if spec.satisfies('@1.6.2:1.6.4'): + if spec.satisfies('@1.6.2:2.0.0'): filter_file( '-mtune=core2', '', diff --git a/var/spack/repos/builtin/packages/subversion/package.py b/var/spack/repos/builtin/packages/subversion/package.py index 4e3f774037..1f5f65215c 100644 --- a/var/spack/repos/builtin/packages/subversion/package.py +++ b/var/spack/repos/builtin/packages/subversion/package.py @@ -10,8 +10,13 @@ class Subversion(AutotoolsPackage): """Apache Subversion - an open source version control system.""" homepage = 'https://subversion.apache.org/' - url = 'https://archive.apache.org/dist/subversion/subversion-1.12.2.tar.gz' + urls = [ + 'https://archive.apache.org/dist/subversion/subversion-1.12.2.tar.gz', + 'https://downloads.apache.org/subversion/subversion-1.13.0.tar.gz' + ] + version('1.14.0', sha256='ef3d1147535e41874c304fb5b9ea32745fbf5d7faecf2ce21d4115b567e937d0') + version('1.13.0', sha256='daad440c03b8a86fcca804ea82217bb1902cfcae1b7d28c624143c58dcb96931') version('1.12.2', sha256='f4927d6603d96c5ddabebbafe9a0f6833c18a891ff0ce1ea6ffd186ce9bc21f3') version('1.9.7', sha256='c72a209c883e20245f14c4e644803f50ae83ae24652e385ff5e82300a0d06c3c') version('1.9.6', sha256='a400cbc46d05cb29f2d7806405bb539e9e045b24013b0f12f8f82688513321a7') diff --git a/var/spack/repos/builtin/packages/tau/package.py b/var/spack/repos/builtin/packages/tau/package.py index 1d2dea580b..7f7b1f9f3e 100644 --- a/var/spack/repos/builtin/packages/tau/package.py +++ b/var/spack/repos/builtin/packages/tau/package.py @@ -76,7 +76,6 @@ class Tau(Package): # This is a _reasonable_ subset of the full set of TAU # architectures supported: variant('craycnl', default=False, description='Build for Cray compute nodes') - variant('bgq', default=False, description='Build for IBM BlueGene/Q compute nodes') variant('ppc64le', default=False, description='Build for IBM Power LE nodes') variant('x86_64', default=False, description='Force build for x86 Linux instead of auto-detect') @@ -162,9 +161,6 @@ class Tau(Package): if '+craycnl' in spec: options.append('-arch=craycnl') - if '+bgq' in spec: - options.append('-arch=bgq') - if '+ppc64le' in spec: options.append('-arch=ibm64linux') diff --git a/var/spack/repos/builtin/packages/tensorflow-serving-client/package.py b/var/spack/repos/builtin/packages/tensorflow-serving-client/package.py index 6b2b74649f..58976df975 100644 --- a/var/spack/repos/builtin/packages/tensorflow-serving-client/package.py +++ b/var/spack/repos/builtin/packages/tensorflow-serving-client/package.py @@ -11,8 +11,9 @@ class TensorflowServingClient(CMakePackage): proto files""" homepage = "https://github.com/figroc/tensorflow-serving-client" - url = "https://github.com/figroc/tensorflow-serving-client/archive/v2.1.0.tar.gz" + url = "https://github.com/figroc/tensorflow-serving-client/archive/v2.2.0.tar.gz" + version('2.2.0', sha256='010b464b3b09c3c33c5dc2aebbc85447c4d5f775b9cd45d90a9035ca015c1c08') version('2.1.0', sha256='7a31d8cfa1d861f73953d4728665dd6d74e205d1fa01062a6c2b1aeee4674f73') version('2.0.0', sha256='55310ad484f257173ad5194df7f7116b2049260c3d29049ef8d789d1d8bd9948') diff --git a/var/spack/repos/builtin/packages/texlive/package.py b/var/spack/repos/builtin/packages/texlive/package.py index 42969052c8..aaa18dab71 100644 --- a/var/spack/repos/builtin/packages/texlive/package.py +++ b/var/spack/repos/builtin/packages/texlive/package.py @@ -18,7 +18,7 @@ class Texlive(AutotoolsPackage): around the world.""" homepage = "http://www.tug.org/texlive" - url = 'http://ftp.math.utah.edu/pub/tex/historic/systems/texlive/2019/texlive-20190410-source.tar.xz' + url = 'http://ftp.math.utah.edu/pub/tex/historic/systems/texlive/2020/texlive-20200406-source.tar.xz' base_url = 'http://ftp.math.utah.edu/pub/tex/historic/systems/texlive/{year}/texlive-{version}-{dist}.tar.xz' list_url = 'http://ftp.math.utah.edu/pub/tex/historic/systems/texlive' list_depth = 1 @@ -29,12 +29,18 @@ class Texlive(AutotoolsPackage): # connection at install time and the package versions could change over # time. It is better to use a version built from tarballs, as defined with # the "releases" below. - version('live', sha256='44aa41b5783e345b7021387f19ac9637ff1ce5406a59754230c666642dfe7750', - url='ftp://tug.org/historic/systems/texlive/2019/install-tl-unx.tar.gz') + version('live', sha256='7c90a50e55533d57170cbc7c0370a010019946eb18570282948e1af6f809382d', + url='ftp://tug.org/historic/systems/texlive/2020/install-tl-unx.tar.gz') # Add information for new versions below. releases = [ { + 'version': '20200406', + 'year': '2020', + 'sha256_source': 'e32f3d08cbbbcf21d8d3f96f2143b64a1f5e4cb01b06b761d6249c8785249078', + 'sha256_texmf': '0aa97e583ecfd488e1dc60ff049fec073c1e22dfe7de30a3e4e8c851bb875a95', + }, + { 'version': '20190410', 'year': '2019', 'sha256_source': 'd2a29fef04e34dc3d2d2296c18995fc357aa7625e7a6bbf40fb92d83d3d0d7b5', diff --git a/var/spack/repos/builtin/packages/thepeg/package.py b/var/spack/repos/builtin/packages/thepeg/package.py new file mode 100644 index 0000000000..bc7580cf9a --- /dev/null +++ b/var/spack/repos/builtin/packages/thepeg/package.py @@ -0,0 +1,103 @@ +# 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 Thepeg(AutotoolsPackage): + """Toolkit for High Energy Physics Event Generation""" + + homepage = "http://home.thep.lu.se/~leif/ThePEG/" + url = "https://thepeg.hepforge.org/downloads/?f=ThePEG-2.2.1.tar.bz2" + + # The commented out versions exist, but may need patches + # and/or recipe changes + version('2.2.1', sha256='63abc7215e6ad45c11cf9dac013738e194cc38556a8368b850b70ab1b57ea58f') + version('2.2.0', sha256='d3e1474811b7d9f61a4a98db1e9d60d8ef8f913a50de4cae4dc2cc4f98e6fbf8') + # version('2.1.7', sha256='2e15727afc1fbfb158fa42ded31c4b1e5b51c25ed6bb66a38233e1fc594329c8') + version('2.1.6', sha256='c1e51f83716bfca815b55100fbab3805ef5f9b9215e4373b22762693f5353f4f') + version('2.1.5', sha256='c61a00fb6cf406f0f98e8c934683d8d5efcb655747842113abc92e9526e4b5e6') + # version('2.1.4', sha256='400c37319aa967ed993fdbec84fc65b24f6cb3779fb1b173d7f5d7a56b772df5') + version('2.1.3', sha256='16e8f6507530c2b80ed873ad22946efefed7355d15c7026f3465f18acebc1c0c') + # version('2.1.2', sha256='6a0f675a27e10863d495de069f25b892e532beb32e9cbfe5a58317d015387f49') + version('2.1.1', sha256='e1b0bdc116fbc9a6e598b601f2aa670530cf2e1cd46b4572814a9b0130b10281') + # version('2.1.0', sha256='fe6e7740ce3cd4a3ce3d7a0079a16c9214ad18f432e29d034ae763bfc40f3d39') + # version('2.0.4', sha256='f3b625b411667e2708995f1d1379b5b8691406853c8c2cca2f4e4e6e062da0e4') + # version('2.0.3', sha256='c57ba68fbfda06a0ba256e06f276f91434bf2529a13f6287c051a4cd6da44634') + # version('2.0.2', sha256='d4249e019543d5c7520733292d2edfb0bdd9733177200a63837781ed6194789b') + # version('2.0.1', sha256='ec284abdc82ceaf10a8736f908e7955f49f872b79aaa62d22aa33bc5c7679bdb') + # version('2.0.0', sha256='571730cc956027dc82780dc04ef6e7382ab5ea853fcfebe259e488c6df302a04') + version('1.9.2', sha256='ff7bbb256866f994dae04ade1f57c92d2670edaac3df11c9a300419a5343faf4') + # version('1.9.1', sha256='8ec6d0669eba51e308be4e33aeb219999418170eae3aad93ec1491c942c2a4e9') + version('1.9.0', sha256='3ee58e5e3a26184567df1b9a10ca70df228e86f322e72f018dd7d8d5a4700a5d') + version('1.8.3', sha256='55ede3a3dd0bd07b90d0d49cf7ae28c18cd965780fdf53528508b97d57152fc7') + # version('1.8.2', sha256='44ccd0d70e42bb6ecd801a51bade6c25b3953c56f33017402d4f52ee6492dffa') + # version('1.8.1', sha256='84c2a212a681545cddd541dca191eb65d96f41df86c87480b6f4f7d4f9683562') + # version('1.8.0', sha256='4b22fda1078f410b999a23a17f611c9ae3a7f0f4cee4e83dc82c9336b7adf037') + # version('1.7.3', sha256='066d5df74118d6e984bb60e1c0bea08a8edcbcf917d83d8bc32ec6fea0726187') + # version('1.7.2', sha256='3b885c6c5a39b7399ccd45d1f5a866b7a65c96174a56a7ff4ae423347843d013') + # version('1.7.1', sha256='13434dc7a8623cacb94c0b5c8d7e15b4c5d5187fe9322d1afc1c91b2c940102e') + # version('1.7.0', sha256='40eb7196139a8bf4c35f5bb69818135943d534457df64aeb1cf60b6621435312') + # version('1.6.1', sha256='5bc074b78f8b663a6a33df9c94dcaa3100269f8da59f9553a565298e55af270f') + # version('1.6.0', sha256='c0ac06b70f3e8046fce4e49ba5916c9b49450f528d0e25f8f7f1427c62fec680') + # version('1.5.0', sha256='ccbf102cf1d350a21487518d12e7e03e6e50010e5604f0201f256fa46a7a50c2') + # version('1.4.2', sha256='40444304e40e07fd417a8ebf8e5c1cf07e895ceac52ef4f7c1eecc911f6f775c') + # version('1.4.1', sha256='156d06fd1ce68466d1f2adb9cc13f412b8b87073ec6a1d02102b173c34c29b8a') + # version('1.4.0', sha256='b1f55e9a3bec713e9abf2fe71c5bd8cf8df936ea00b09f96df9123d0d5ab233f') + # version('1.3.0', sha256='f731ebf3ce5a52b6d750d6e3c282fdc74d8ffd78bccb47b68f10a4daf44c7045') + + patch('thepeg-1.8.3.patch', when='@1.8.3', level=0) + patch('thepeg-1.9.0.patch', when='@1.9.0', level=0) + patch('thepeg-1.9.2.patch', when='@1.9.2', level=0) + patch('thepeg-2.1.1.patch', when='@2.1.1:2.2.1', level=0) + + depends_on('gsl') + depends_on('lhapdf') + depends_on('lhapdf@:6.2.999', when='@:1.9.999') + depends_on('hepmc', when='hepmc=2') + depends_on('hepmc3', when='hepmc=3') + conflicts('hepmc=3', when='@:2.1.999', msg='HepMC3 support was added in 2.2.0') + depends_on('fastjet', when='@2.0.0:') + depends_on('rivet', when='@2.0.3:') + depends_on('boost', when='@2.1.1:') + + depends_on('autoconf', type='build') + depends_on('automake', type='build') + depends_on('libtool', type='build') + depends_on('m4', type='build') + + variant('hepmc', default='2', values=('2', '3'), description='HepMC interface to build ') + + install_targets = ['install-strip'] + + def configure_args(self): + args = ['--with-gsl=' + self.spec['gsl'].prefix, '--without-javagui'] + + if self.spec.satisfies('@:1.8.999'): + args += ['--with-LHAPDF=' + self.spec['lhapdf'].prefix] + else: + args += ['--with-lhapdf=' + self.spec['lhapdf'].prefix] + + if self.spec.satisfies('hepmc=2'): + args += ['--with-hepmc=' + self.spec['hepmc'].prefix] + else: + args += ['--with-hepmc=' + self.spec['hepmc3'].prefix] + + if self.spec.satisfies('@2.2.0:'): + args += ['--with-hepmcversion=' + + self.spec.variants['hepmc'].value] + + if self.spec.satisfies('@2.0.0:'): + args += ['--with-fastjet=' + self.spec['fastjet'].prefix] + + if self.spec.satisfies('@2.0.3:'): + args += ['--with-rivet=' + self.spec['rivet'].prefix] + + if self.spec.satisfies('@:2.1.999'): + args += ['--with-boost=' + self.spec['boost'].prefix] + + args += ['CFLAGS=-O2', 'CXXFLAGS=-O2', 'FFLAGS=-O2'] + + return args diff --git a/var/spack/repos/builtin/packages/thepeg/thepeg-1.8.3.patch b/var/spack/repos/builtin/packages/thepeg/thepeg-1.8.3.patch new file mode 100644 index 0000000000..c396634779 --- /dev/null +++ b/var/spack/repos/builtin/packages/thepeg/thepeg-1.8.3.patch @@ -0,0 +1,24 @@ +--- PDF/LHAPDF.cc 2013-10-26 01:48:12.000000000 +0200 ++++ PDF/LHAPDF.cc 2013-12-05 17:23:13.000000000 +0100 +@@ -33,6 +33,7 @@ + #include "config.h" + #include "ThePEG/Persistency/PersistentOStream.h" + #include "ThePEG/Persistency/PersistentIStream.h" ++#include "stdlib.h" + + #ifdef ThePEG_HAS_FPU_CONTROL + #include <fpu_control.h> +@@ -228,7 +229,12 @@ + + std::string LHAPDF::getIndexPath() { + // macro is passed in from -D compile flag +- return std::string(LHAPDF_PKGDATADIR) + "/PDFsets.index"; ++ char const* tmp = getenv( "LHAPATH" ); ++ if ( tmp != NULL ) { ++ return std::string(getenv("LHAPATH")) + "/../PDFsets.index"; ++ } else { ++ return std::string(LHAPDF_PKGDATADIR) + "/PDFsets.index"; ++ }; + } + + bool LHAPDF::openLHAIndex(ifstream & is) { diff --git a/var/spack/repos/builtin/packages/thepeg/thepeg-1.9.0.patch b/var/spack/repos/builtin/packages/thepeg/thepeg-1.9.0.patch new file mode 100644 index 0000000000..76bc91211b --- /dev/null +++ b/var/spack/repos/builtin/packages/thepeg/thepeg-1.9.0.patch @@ -0,0 +1,34 @@ +--- PDF/LHAPDF.cc 2013-10-26 01:48:12.000000000 +0200 ++++ PDF/LHAPDF.cc 2013-12-05 17:23:13.000000000 +0100 +@@ -33,6 +33,7 @@ + #include "config.h" + #include "ThePEG/Persistency/PersistentOStream.h" + #include "ThePEG/Persistency/PersistentIStream.h" ++#include "stdlib.h" + + #ifdef ThePEG_HAS_FPU_CONTROL + #include <fpu_control.h> +@@ -228,7 +229,12 @@ + + std::string LHAPDF::getIndexPath() { + // macro is passed in from -D compile flag +- return std::string(LHAPDF_PKGDATADIR) + "/PDFsets.index"; ++ char const* tmp = getenv( "LHAPATH" ); ++ if ( tmp != NULL ) { ++ return std::string(getenv("LHAPATH")) + "/../PDFsets.index"; ++ } else { ++ return std::string(LHAPDF_PKGDATADIR) + "/PDFsets.index"; ++ }; + } + + bool LHAPDF::openLHAIndex(ifstream & is) { +--- ACDC/ACDCGen.h.orig 2014-04-02 16:20:59.000000000 +0200 ++++ ACDC/ACDCGen.h 2014-04-02 16:22:40.000000000 +0200 +@@ -13,6 +13,7 @@ + #include "ACDCTraits.h" + #include "ACDCGenCell.h" + #include "ThePEG/Utilities/Exception.h" ++#include <algorithm> + + namespace ACDCGenerator { + diff --git a/var/spack/repos/builtin/packages/thepeg/thepeg-1.9.2.patch b/var/spack/repos/builtin/packages/thepeg/thepeg-1.9.2.patch new file mode 100644 index 0000000000..556b683560 --- /dev/null +++ b/var/spack/repos/builtin/packages/thepeg/thepeg-1.9.2.patch @@ -0,0 +1,83 @@ +diff -r 2d8e0f74b65e PDF/LHAPDF6.cc +--- PDF/LHAPDF6.cc.orig Mon Jul 07 09:16:48 2014 +0100 ++++ PDF/LHAPDF6.cc Fri Sep 26 14:41:55 2014 +0100 +@@ -54,8 +54,8 @@ + return new_ptr(*this); + } + +-void ThePEG::LHAPDF::doinit() { +- PDFBase::doinit(); ++void ThePEG::LHAPDF::initPDFptr() { ++ if ( thePDF ) return; + thePDF = ::LHAPDF::mkPDF(thePDFName, theMember); + xMin = thePDF->xMin(); + xMax = thePDF->xMax(); +@@ -63,6 +63,11 @@ + Q2Max = thePDF->q2Max() * GeV2; + } + ++void ThePEG::LHAPDF::doinit() { ++ PDFBase::doinit(); ++ initPDFptr(); ++} ++ + void ThePEG::LHAPDF::dofinish() { + PDFBase::dofinish(); + delete thePDF; +@@ -71,11 +76,7 @@ + + void ThePEG::LHAPDF::doinitrun() { + PDFBase::doinitrun(); +- thePDF = ::LHAPDF::mkPDF(thePDFName, theMember); +- xMin = thePDF->xMin(); +- xMax = thePDF->xMax(); +- Q2Min = thePDF->q2Min() * GeV2; +- Q2Max = thePDF->q2Max() * GeV2; ++ initPDFptr(); + } + + void ThePEG::LHAPDF::setPDFName(string name) { +@@ -387,6 +388,7 @@ + lastQ2 = -1.0*GeV2; + lastX = -1.0; + lastP2 = -1.0*GeV2; ++ initPDFptr(); + } + + ThePEG::ClassDescription<ThePEG::LHAPDF> ThePEG::LHAPDF::initLHAPDF; +diff -r 2d8e0f74b65e PDF/LHAPDF6.h +--- PDF/LHAPDF6.h.orig Mon Jul 07 09:16:48 2014 +0100 ++++ PDF/LHAPDF6.h Fri Sep 26 14:41:55 2014 +0100 +@@ -147,6 +147,12 @@ + void checkUpdate(double x, Energy2 Q2, Energy2 P2) const; + + /** ++ * Initialize the LHAPDF library for the chosen PDF set if it has ++ * not been done before. ++ */ ++ void initPDFptr(); ++ ++ /** + * Used by the interface to select a set according to a file name. + */ + void setPDFName(string name); +--- Persistency/PersistentOStream.h.orig 2018-11-07 14:46:59.055432275 +0100 ++++ Persistency/PersistentOStream.h 2018-11-07 14:47:20.639293703 +0100 +@@ -219,7 +219,7 @@ + * Write a double. + */ + PersistentOStream & operator<<(double d) { +- if ( isnan(d) || isinf(d) ) ++ if ( std::isnan(d) || std::isinf(d) ) + throw WriteError() + << "Tried to write a NaN or Inf double to a persistent stream." + << Exception::runerror; +@@ -232,7 +232,7 @@ + * Write a float. + */ + PersistentOStream & operator<<(float f) { +- if ( isnan(f) || isinf(f) ) ++ if ( std::isnan(f) || std::isinf(f) ) + throw WriteError() + << "Tried to write a NaN or Inf float to a persistent stream." + << Exception::runerror; diff --git a/var/spack/repos/builtin/packages/thepeg/thepeg-2.1.1.patch b/var/spack/repos/builtin/packages/thepeg/thepeg-2.1.1.patch new file mode 100644 index 0000000000..90c61fc991 --- /dev/null +++ b/var/spack/repos/builtin/packages/thepeg/thepeg-2.1.1.patch @@ -0,0 +1,14 @@ +--- m4/rivet.m4.orig 2013-10-16 10:50:05.000000000 +0200 ++++ m4/rivet.m4 2017-08-02 12:26:22.897894696 +0200 +@@ -33,10 +33,7 @@ + else + AC_MSG_RESULT([$with_rivet]) + RIVETINCLUDE="$( $with_rivet/bin/rivet-config --cppflags )" +- RIVETLIBS="-L$with_rivet/lib -R$with_rivet/lib -lRivet" +- if test "${host_cpu}" == "x86_64" -a -e $with_rivet/lib64/libRivet.so ; then +- RIVETLIBS="-L$with_rivet/lib64 -R$with_rivet/lib64 -lRivet" +- fi ++ RIVETLIBS="$( $with_rivet/bin/rivet-config --libs ) -lYODA" + fi + + if test "x$with_rivet" != "xno"; then 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 new file mode 100755 index 0000000000..7b5aa5a6bb --- /dev/null +++ b/var/spack/repos/builtin/packages/tiptop/NR_perf_counter_open_aarch64.patch @@ -0,0 +1,13 @@ +diff --git a/src/pmc.c b/src/pmc.c +index 3467e1c..d20ad81 100644 +--- a/src/pmc.c ++++ b/src/pmc.c +@@ -22,6 +22,8 @@ + #define __NR_perf_counter_open 319 + #elif defined(__ARM_EABI__) + #define __NR_perf_counter_open 364 ++#elif defined(__aarch64__) ++#define __NR_perf_counter_open 241 + #elif defined(__x86_64__) + #define __NR_perf_counter_open 298 + #elif defined(__i386__) diff --git a/var/spack/repos/builtin/packages/tiptop/package.py b/var/spack/repos/builtin/packages/tiptop/package.py new file mode 100644 index 0000000000..2fb46c678c --- /dev/null +++ b/var/spack/repos/builtin/packages/tiptop/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) + +from spack import * + + +class Tiptop(AutotoolsPackage): + """Tiptop is a performance monitoring tool for Linux.""" + + homepage = "https://github.com/FeCastle/tiptop" + git = "https://github.com/FeCastle/tiptop.git" + + version('master', commit='529886d445ec32febad14246245372a8f244b3eb') + + depends_on('papi') + depends_on('byacc', type='build') + depends_on('flex', type='build') + + patch('NR_perf_counter_open_aarch64.patch', when='target=aarch64:') diff --git a/var/spack/repos/builtin/packages/tmux/package.py b/var/spack/repos/builtin/packages/tmux/package.py index e6677668fd..8a50e2ebe9 100644 --- a/var/spack/repos/builtin/packages/tmux/package.py +++ b/var/spack/repos/builtin/packages/tmux/package.py @@ -17,6 +17,7 @@ class Tmux(AutotoolsPackage): homepage = "http://tmux.github.io" url = "https://github.com/tmux/tmux/releases/download/2.6/tmux-2.6.tar.gz" + version('3.1b', sha256='d93f351d50af05a75fe6681085670c786d9504a5da2608e481c47cf5e1486db9') version('3.0a', sha256='4ad1df28b4afa969e59c08061b45082fdc49ff512f30fc8e43217d7b0e5f8db9') version('2.9', sha256='34901232f486fd99f3a39e864575e658b5d49f43289ccc6ee57c365f2e2c2980') version('2.8', sha256='7f6bf335634fafecff878d78de389562ea7f73a7367f268b66d37ea13617a2ba') diff --git a/var/spack/repos/builtin/packages/totalview/package.py b/var/spack/repos/builtin/packages/totalview/package.py new file mode 100644 index 0000000000..50553aaeea --- /dev/null +++ b/var/spack/repos/builtin/packages/totalview/package.py @@ -0,0 +1,108 @@ +# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack import * + +import os + + +class Totalview(Package): + """Totalview parallel debugger. + + Source must be made available to Spack + externally, either by having the tarballs in the current working directory + or having the tarballs in a Spack mirror. + + The documentation tarball will + be used as the primary source and the architecture appropriate tarball will + be downloaded as a resource.""" + + homepage = "https://www.roguewave.com/products-services/totalview" + maintainers = ['nicholas-sly'] + manual_download = True + license_required = True + license_comment = '#' + license_files = ['licenses/license.dat'] + license_vars = ['TV_LICENSE_FILE'] + + # As the install of Totalview is via multiple tarballs, the base install + # will be the documentation. The architecture-specific tarballs are added + # as resources dependent on the specific architecture used. + version('2019.2.18', + sha256='09e5c554032af945f8cf147dd548421267e50e906cc9686fb5cd0e8e63fcf650') + + # Distributed with Totalview + variant('memoryscape', default=True, description='Install memoryscape') + + # Because the actual source tarball is architecture dependent, the main + # download is the documentation tarball and the source is downloaded as a + # resource once the target architecture is known. + resource( + name='x86_64', + url='totalview_{0}_linux_x86-64.tar'.format(version), + destination='.', + sha256='3b0ab078deff3654ddc912a004d256f1376978aa1c4dd5a8a41fa9fbb474d07c', + when='@2019.2.18 target=x86_64:') + resource( + name='aarch64', + url='totalview_{0}_linux_arm64.tar'.format(version), + destination='.', + sha256='3bbda1aa7c06ce82874c1517bf949c9f6cbd0f4c9ebe283d21f0643f6e724b6b', + when='@2019.2.18 target=aarch64:') + resource( + name='ppcle', + url='totalview_{0}_linux_powerle.tar'.format(version), + destination='.', + sha256='c0e4dbf145312fc7143ad0b7e9474e653933581990e0b9d07237c73dbdff8365', + when='@2019.2.18 target=ppc64le:') + + def url_for_version(self, version): + return "file://{0}/totalview.{1}-doc.tar".format(os.getcwd(), version) + + def setup_run_environment(self, env): + env.prepend_path('PATH', + join_path(self.prefix, 'toolworks', + 'totalview.{0}'.format(self.version), 'bin') + ) + env.prepend_path('TVROOT', + join_path(self.prefix, 'toolworks', + 'totalview.{0}'.format(self.version))) + env.prepend_path('TVDSVRLAUNCHCMD', 'ssh') + + def install(self, spec, prefix): + # Assemble install line + install_cmd = which('./Install') + arg_list = ["-agree", "-nosymlink", "-directory", "{0}".format(prefix)] + + # Platform specification. + if spec.target.family == "x86_64": + arg_list.extend(["-platform", "linux-x86-64"]) + elif spec.target.family == "x86": + arg_list.extend(["-platform", "linux-x86"]) + elif spec.target.family == "aarch64": + arg_list.extend(["-platform", "linux-arm64"]) + elif spec.target.family == "ppc64le": + arg_list.extend(["-platform", "linux-powerle"]) + elif spec.target.family == "ppc64": + arg_list.extend(["-platform", "linux-power"]) + else: + raise InstallError('Architecture {0} not permitted!' + .format(spec.target.family)) + + # Docs are the 'base' install used with every architecture. + install_cmd.exe.extend(arg_list) + install_cmd("-install", "doc-pdf") + + # Run install script for totalview and memoryscape (optional). + with working_dir("./totalview.{0}".format(self.version)): + + install_cmd = which('./Install') + arg_list.extend(["-install", "totalview"]) + # If including memoryscape. + if '+memoryscape' in spec: + arg_list.append("memoryscape") + + install_cmd.exe.extend(arg_list) + install_cmd() diff --git a/var/spack/repos/builtin/packages/trilinos/package.py b/var/spack/repos/builtin/packages/trilinos/package.py index 7896d809f2..d5d595142f 100644 --- a/var/spack/repos/builtin/packages/trilinos/package.py +++ b/var/spack/repos/builtin/packages/trilinos/package.py @@ -28,7 +28,7 @@ class Trilinos(CMakePackage): url = "https://github.com/trilinos/Trilinos/archive/trilinos-release-12-12-1.tar.gz" git = "https://github.com/trilinos/Trilinos.git" - maintainers = ['aprokop', 'keitat'] + maintainers = ['keitat'] # ###################### Versions ########################## diff --git a/var/spack/repos/builtin/packages/typhon/package.py b/var/spack/repos/builtin/packages/typhon/package.py index 350bd6ded2..621b2479e4 100644 --- a/var/spack/repos/builtin/packages/typhon/package.py +++ b/var/spack/repos/builtin/packages/typhon/package.py @@ -23,3 +23,7 @@ class Typhon(CMakePackage): version('3.0', sha256='b9736269ebe9c0fd7efabc4716b0543144780ed26ddaf595083354113aa2efd7') depends_on('mpi') + + def setup_build_environment(self, env): + if self.spec.satisfies('%fj'): + env.set('LDFLAGS', '--linkfortran') diff --git a/var/spack/repos/builtin/packages/ucx/package.py b/var/spack/repos/builtin/packages/ucx/package.py index 2b3cfa4ab8..482453210f 100644 --- a/var/spack/repos/builtin/packages/ucx/package.py +++ b/var/spack/repos/builtin/packages/ucx/package.py @@ -16,6 +16,7 @@ class Ucx(AutotoolsPackage, CudaPackage): maintainers = ['hppritcha'] # Current + version('1.8.1', sha256='a48820cb8d0761b5ccf3e7ba03a7c8c1dde6276017657178829e07ffc35b556a') version('1.8.0', sha256='e400f7aa5354971c8f5ac6b881dc2846143851df868088c37d432c076445628d') version('1.7.0', sha256='6ab81ee187bfd554fe7e549da93a11bfac420df87d99ee61ffab7bb19bdd3371') version('1.6.1', sha256='1425648aa03f5fa40e4bc5c4a5a83fe0292e2fe44f6054352fbebbf6d8f342a1') @@ -34,7 +35,7 @@ class Ucx(AutotoolsPackage, CudaPackage): variant('thread_multiple', default=False, description='Enable thread support in UCP and UCT') - variant('optimizations', default=False, + variant('optimizations', default=True, description='Enable optimizations') variant('logging', default=False, description='Enable logging') @@ -43,70 +44,59 @@ class Ucx(AutotoolsPackage, CudaPackage): variant('assertions', default=False, description='Enable assertions') variant('parameter_checking', default=False, - description='Enable paramter checking') + description='Enable parameter checking') variant('pic', default=True, description='Builds with PIC support') variant('java', default=False, description='Builds with Java bindings') variant('gdrcopy', default=False, description='Enable gdrcopy support') + variant('knem', default=False, + description='Enable KNEM support') + variant('xpmem', default=False, + description='Enable XPMEM support') depends_on('numactl') depends_on('rdma-core') + depends_on('pkgconfig', type='build') depends_on('java@8', when='+java') depends_on('maven', when='+java') depends_on('gdrcopy@1.3', when='+gdrcopy') conflicts('+gdrcopy', when='~cuda', msg='gdrcopy currently requires cuda support') + depends_on('xpmem', when='+xpmem') + depends_on('knem', when='+knem') + + configure_abs_path = 'contrib/configure-release' def configure_args(self): spec = self.spec config_args = [] + if '+thread_multiple' in spec: config_args.append('--enable-mt') else: config_args.append('--disable-mt') - if '+optimizations' in spec: - config_args.append('--enable-optimizations') - else: - config_args.append('--disable-optimizations') - - if '+logging' in spec: - config_args.append('--enable-logging') - else: - config_args.append('--disable-logging') - - if '+assertions' in spec: - config_args.append('--enable-assertions') - else: - config_args.append('--disable-assertions') - if '+paramter_checking' in spec: config_args.append('--enable-params-check') else: config_args.append('--disable-params-check') - if '+pic' in spec: - config_args.append('--with-pic') - else: - config_args.append('--without-pic') - - if '+java' in spec: - config_args.append('--with-java=%s' % spec['java'].prefix) - else: - config_args.append('--without-java') - - if '+cuda' in spec: - config_args.append('--with-cuda={0}'.format( - self.spec['cuda'].prefix)) - else: - config_args.append('--without-cuda') - - if '+gdrcopy' in spec: - config_args.append('--with-gdrcopy={0}'.format( - self.spec['gdrcopy'].prefix)) - else: - config_args.append('--without-gdrcopy') + config_args.extend(self.enable_or_disable('optimizations')) + config_args.extend(self.enable_or_disable('assertions')) + config_args.extend(self.enable_or_disable('logging')) + + config_args.extend(self.with_or_without('pic')) + config_args.extend(self.with_or_without('java', + activation_value='prefix')) + config_args.extend(self.with_or_without('cuda', + activation_value='prefix')) + config_args.extend(self.with_or_without('gdrcopy', + activation_value='prefix')) + config_args.extend(self.with_or_without('knem', + activation_value='prefix')) + config_args.extend(self.with_or_without('xpmem', + activation_value='prefix')) return config_args diff --git a/var/spack/repos/builtin/packages/umpire/camp_target_umpire_3.0.0.patch b/var/spack/repos/builtin/packages/umpire/camp_target_umpire_3.0.0.patch new file mode 100644 index 0000000000..2deb565cd3 --- /dev/null +++ b/var/spack/repos/builtin/packages/umpire/camp_target_umpire_3.0.0.patch @@ -0,0 +1,18 @@ +diff --git a/umpire-config.cmake.in b/umpire-config.cmake.in +index a98ad5fe..4e54e173 100644 +--- a/umpire-config.cmake.in ++++ b/umpire-config.cmake.in +@@ -7,6 +7,13 @@ + get_filename_component(UMPIRE_CMAKE_DIR "${CMAKE_CURRENT_LIST_FILE}" PATH) + set(UMPIRE_INCLUDE_DIRS "@CMAKE_INSTALL_PREFIX@/include") + ++if (NOT TARGET camp) ++ if (NOT DEFINED camp_DIR) ++ set(camp_DIR @CMAKE_INSTALL_PREFIX@/lib/cmake/camp) ++ endif () ++ find_package(camp REQUIRED) ++endif () ++ + set(Umpire_VERSION_MAJOR @Umpire_VERSION_MAJOR@) + set(Umpire_VERSION_MINOR @Umpire_VERSION_MINOR@) + set(Umpire_VERSION_PATCH @Umpire_VERSION_PATCH@) diff --git a/var/spack/repos/builtin/packages/umpire/package.py b/var/spack/repos/builtin/packages/umpire/package.py index 928d8aa80c..a1e954f290 100644 --- a/var/spack/repos/builtin/packages/umpire/package.py +++ b/var/spack/repos/builtin/packages/umpire/package.py @@ -15,7 +15,8 @@ class Umpire(CMakePackage, CudaPackage): git = 'https://github.com/LLNL/Umpire.git' version('develop', branch='develop', submodules='True') - version('main', branch='main', submodules='True') + version('master', branch='main', submodules='True') + version('3.0.0', tag='v3.0.0', submodules='True') version('2.1.0', tag='v2.1.0', submodules='True') version('2.0.0', tag='v2.0.0', submodules='True') version('1.1.0', tag='v1.1.0', submodules='True') @@ -35,12 +36,17 @@ class Umpire(CMakePackage, CudaPackage): version('0.1.4', tag='v0.1.4', submodules='True') version('0.1.3', tag='v0.1.3', submodules='True') + patch('camp_target_umpire_3.0.0.patch', when='@3.0.0') + variant('fortran', default=False, description='Build C/Fortran API') variant('c', default=True, description='Build C API') variant('numa', default=False, description='Enable NUMA support') + variant('shared', default=True, description='Enable Shared libs') variant('openmp', default=False, description='Build with OpenMP support') variant('deviceconst', default=False, description='Enables support for constant device memory') + variant('tests', default='none', values=('none', 'basic', 'benchmarks'), + multi=False, description='Tests to run') depends_on('cmake@3.8:', type='build') depends_on('cmake@3.9:', when='+cuda', type='build') @@ -60,6 +66,7 @@ class Umpire(CMakePackage, CudaPackage): if not spec.satisfies('cuda_arch=none'): cuda_arch = spec.variants['cuda_arch'].value + options.append('-DCUDA_ARCH=sm_{0}'.format(cuda_arch[0])) flag = '-arch sm_{0}'.format(cuda_arch[0]) options.append('-DCMAKE_CUDA_FLAGS:STRING={0}'.format(flag)) @@ -80,7 +87,13 @@ class Umpire(CMakePackage, CudaPackage): options.append('-DENABLE_OPENMP={0}'.format( 'On' if '+openmp' in spec else 'Off')) + options.append('-DBUILD_SHARED_LIBS={0}'.format( + 'On' if '+shared' in spec else 'Off')) + + options.append('-DENABLE_BENCHMARKS={0}'.format( + 'On' if 'tests=benchmarks' in spec else 'Off')) + options.append('-DENABLE_TESTS={0}'.format( - 'On' if self.run_tests else 'Off')) + 'Off' if 'tests=none' in spec else 'On')) return options diff --git a/var/spack/repos/builtin/packages/unifyfs/package.py b/var/spack/repos/builtin/packages/unifyfs/package.py index a2290bfa67..c1038d7c68 100644 --- a/var/spack/repos/builtin/packages/unifyfs/package.py +++ b/var/spack/repos/builtin/packages/unifyfs/package.py @@ -27,6 +27,7 @@ class Unifyfs(AutotoolsPackage): variant('fortran', default='False', description='Build with gfortran support') variant('pmi', default='False', description='Enable PMI2 build options') variant('pmix', default='False', description='Enable PMIx build options') + variant('spath', default='True', description='Use spath library to normalize relative paths') depends_on('autoconf', type='build') depends_on('automake', type='build') @@ -35,7 +36,7 @@ class Unifyfs(AutotoolsPackage): depends_on('pkgconfig', type='build') # Required dependencies - depends_on('flatcc') + depends_on('flatcc', when='@:0.9.0') depends_on('gotcha@0.0.2', when='@:0.9.0') depends_on('gotcha@1.0.3:', when='@0.9.1:') depends_on('leveldb') @@ -46,6 +47,7 @@ class Unifyfs(AutotoolsPackage): # Optional dependencies depends_on('hdf5', when='+hdf5') + depends_on('spath', when='@0.9.1:+spath') conflicts('^mercury~bmi') conflicts('^mercury~sm') diff --git a/var/spack/repos/builtin/packages/vasp/package.py b/var/spack/repos/builtin/packages/vasp/package.py new file mode 100644 index 0000000000..22b17ee88b --- /dev/null +++ b/var/spack/repos/builtin/packages/vasp/package.py @@ -0,0 +1,138 @@ +# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack import * +import os + + +class Vasp(MakefilePackage): + """ + The Vienna Ab initio Simulation Package (VASP) + is a computer program for atomic scale materials modelling, + e.g. electronic structure calculations + and quantum-mechanical molecular dynamics, from first principles. + """ + + homepage = "http://vasp.at" + url = "file://{0}/vasp.5.4.4.tar.gz".format(os.getcwd()) + + version('5.4.4', sha256='5bd2449462386f01e575f9adf629c08cb03a13142806ffb6a71309ca4431cfb3') + + resource(name='vaspsol', + git='https://github.com/henniggroup/VASPsol.git', + tag='V1.0', + when='+vaspsol') + + variant('scalapack', default=False, + description='Enables build with SCALAPACK') + + variant('cuda', default=False, + description='Enables running on Nvidia GPUs') + + variant('vaspsol', default=False, + description='Enable VASPsol implicit solvation model\n' + 'https://github.com/henniggroup/VASPsol') + + depends_on('rsync', type='build') + depends_on('blas') + depends_on('lapack') + depends_on('fftw') + depends_on('mpi', type=('build', 'link', 'run')) + depends_on('netlib-scalapack', when='+scalapack') + depends_on('cuda', when='+cuda') + + conflicts('%gcc@:8', msg='GFortran before 9.x does not support all features needed to build VASP') + conflicts('+vaspsol', when='+cuda', msg='+vaspsol only available for CPU') + + parallel = False + + def edit(self, spec, prefix): + + if '%gcc' in spec: + make_include = join_path('arch', 'makefile.include.linux_gnu') + else: + make_include = join_path('arch', + 'makefile.include.linux_' + + spec.compiler.name) + + os.rename(make_include, 'makefile.include') + + # This bunch of 'filter_file()' is to make these options settable + # as environment variables + filter_file('^CPP_OPTIONS[ ]{0,}=[ ]{0,}', + 'CPP_OPTIONS ?= ', + 'makefile.include') + + filter_file('^LIBDIR[ ]{0,}=.*$', '', 'makefile.include') + filter_file('^BLAS[ ]{0,}=.*$', 'BLAS ?=', 'makefile.include') + filter_file('^LAPACK[ ]{0,}=.*$', 'LAPACK ?=', 'makefile.include') + filter_file('^FFTW[ ]{0,}?=.*$', 'FFTW ?=', 'makefile.include') + filter_file('^MPI_INC[ ]{0,}=.*$', 'MPI_INC ?=', 'makefile.include') + filter_file('-DscaLAPACK.*$\n', '', 'makefile.include') + filter_file('^SCALAPACK*$', '', 'makefile.include') + + if '+cuda' in spec: + filter_file('^OBJECTS_GPU[ ]{0,}=.*$', + 'OBJECTS_GPU ?=', + 'makefile.include') + + filter_file('^CPP_GPU[ ]{0,}=.*$', + 'CPP_GPU ?=', + 'makefile.include') + + filter_file('^CFLAGS[ ]{0,}=.*$', + 'CFLAGS ?=', + 'makefile.include') + + if '+vaspsol' in spec: + copy('VASPsol/src/solvation.F', 'src/') + + def setup_build_environment(self, spack_env): + spec = self.spec + + cpp_options = ['-DHOST=\\"LinuxGNU\\"', '-DMPI -DMPI_BLOCK=8000', + '-Duse_collective', '-DCACHE_SIZE=4000', + '-Davoidalloc', '-Duse_bse_te', + '-Dtbdyn', '-Duse_shmem'] + + cflags = ['-fPIC', '-DADD_'] + + spack_env.set('BLAS', spec['blas'].libs.ld_flags) + spack_env.set('LAPACK', spec['lapack'].libs.ld_flags) + spack_env.set('FFTW', spec['fftw'].prefix) + spack_env.set('MPI_INC', spec['mpi'].prefix.include) + + if '+scalapack' in spec: + cpp_options.append('-DscaLAPACK') + spack_env.set('SCALAPACK', spec['netlib-scalapack'].libs.ld_flags) + + if '+cuda' in spec: + cpp_gpu = ['-DCUDA_GPU', '-DRPROMU_CPROJ_OVERLAP', + '-DCUFFT_MIN=28', '-DUSE_PINNED_MEMORY'] + + objects_gpu = ['fftmpiw.o', 'fftmpi_map.o', 'fft3dlib.o', + 'fftw3d_gpu.o', 'fftmpiw_gpu.o'] + + cflags.extend(['-DGPUSHMEM=300', '-DHAVE_CUBLAS']) + + spack_env.set('CUDA_ROOT', spec['cuda'].prefix) + spack_env.set('CPP_GPU', ' '.join(cpp_gpu)) + spack_env.set('OBJECTS_GPU', ' '.join(objects_gpu)) + + if '+vaspsol' in spec: + cpp_options.append('-Dsol_compat') + + # Finally + spack_env.set('CPP_OPTIONS', ' '.join(cpp_options)) + spack_env.set('CFLAGS', ' '.join(cflags)) + + def build(self, spec, prefix): + if '+cuda' in self.spec: + make('gpu', 'gpu_ncl') + else: + make() + + def install(self, spec, prefix): + install_tree('bin/', prefix.bin) diff --git a/var/spack/repos/builtin/packages/vbfnlo/package.py b/var/spack/repos/builtin/packages/vbfnlo/package.py new file mode 100644 index 0000000000..99a9b53f3b --- /dev/null +++ b/var/spack/repos/builtin/packages/vbfnlo/package.py @@ -0,0 +1,43 @@ +# 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 Vbfnlo(AutotoolsPackage): + """VBFNLO is a fully flexible parton level Monte Carlo program + for the simulation of vector boson fusion, double and triple + vector boson production in hadronic collisions at + next to leading order in the strong coupling constant. """ + + homepage = "https://www.itp.kit.edu/vbfnlo/wiki/doku.php?id=overview" + url = "https://github.com/vbfnlo/vbfnlo/archive/v3.0.0beta5.tar.gz" + + # The commented out versions exist, but are not tested + version('3.0.0beta5', sha256='777a3dedb365ea9abc38848a60f30d325da3799cbad69fa308664b94a8c31a90') + version('3.0.0beta4', sha256='511e84765e9634a75766a160eae1925812dacbb3943e7e3b4dc90e2eacac8a2c') + # version('3.0.0beta3', sha256='ab4cc3289051ab09ed94fa41d0eb1c5c4adcd9f39fa04e3c95a3867f256541bc') + version('3.0.0beta2', sha256='33dd0781e645a5baa664fc5aa81d43c12586bf095ef25895e86cb4192c22473b') + version('3.0.0beta1', sha256='19f0bf7e4c93b0f287d2531d6802c114a78eb46cde28ea820b2a074a5819c7ca') + version('2.7.1', sha256='13e33d73d8a8ef64094621f87e6f94e01712e76cc19a86298d0b52cfcb9decca', preferred=True) + # version('2.7.0', sha256='0e96c0912599e3000fffec5305700b947b604a7b06c7975851503f445311e4ef') + + depends_on('hepmc') + depends_on('gsl') + depends_on('lhapdf') + depends_on('looptools') + + @when('@2.7.1') + def setup_build_environment(self, env): + env.unset('F77') + + def configure_args(self): + args = ["--with-hepmc=" + self.spec['hepmc'].prefix, + "--with-gsl=" + self.spec['gsl'].prefix, + "--with-LHAPDF=" + self.spec['lhapdf'].prefix, + "--with-LOOPTOOLS=" + self.spec['looptools'].prefix, + "FCFLAGS=-std=legacy"] + + return args diff --git a/var/spack/repos/builtin/packages/vgm/package.py b/var/spack/repos/builtin/packages/vgm/package.py new file mode 100644 index 0000000000..1606a55cf1 --- /dev/null +++ b/var/spack/repos/builtin/packages/vgm/package.py @@ -0,0 +1,49 @@ +# 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 Vgm(CMakePackage): + """Virtual Geometry Model (VGM) is a geometry conversion tool, actually + providing conversion between Geant4 and ROOT TGeo geometry models.""" + + homepage = "http://github.com/vmc-project/vgm" + url = "http://github.com/vmc-project/vgm/archive/v4-8.tar.gz" + git = "http://github.com/vmc-project/vgm.git" + + maintainer = ['wdconinc'] + + version('master', branch='master') + version('4-8', sha256='4fcd607b4f100fc00a65fec7a5803575daf9d4919d1808bbd6a30be263c001dd') + version('4-7', sha256='a5f5588db457dc3e6562d1f7da1707960304560fbb0a261559fa3f112a476aea') + version('4-6', sha256='6bf0aeef38f357a313e376090b45d3e0713ef9e52ca198075fae8579b8d5a23a') + version('4-5', sha256='dc61c6214fdf592dfaa3766eed83cf2bbeabb1755f5146a6d3bcfe55ddbe428f') + version('4-4', sha256='a915ff3500daa99b74ce9039fbd8abcbd08051e838a1b337e1d794b73537b33b') + version('4-3', sha256='5cc892a263be2e179a5c2d712c50d7698af7d05d01dfed59c1e36840965f0c4e') + version('4-2', sha256='25e183f2744fcd4c9995f52865c3f2bf415c7ce0504cfa44093a5f1846a4624f') + version('4-01', sha256='43020f6497f18086c50e263555c2a21c6cfbba3044b1330c6f400357f040bbb1') + version('4-00', sha256='c24de76f919dca7c92b3c9fce7a39142c6e61fd39f691d2e4df15fe413b5190d') + version('3-06', sha256='41948869f2e4dcfa31f4bad42b938c25dd174660c427feb2f9effa9af5e59c7d') + + depends_on('cmake@3.8:', type='build') + depends_on('clhep') + depends_on('root') + depends_on('geant4') + + def cmake_args(self): + args = [] + + args.append('-DROOT_DIR={0}'.format( + self.spec['root'].prefix)) + args.append('-DGeant4_DIR={0}'.format( + self.spec['geant4'].prefix)) + args.append('-DCLHEP_LIB_DIR={0}'.format( + self.spec['clhep'].prefix.lib)) + args.append('-DCLHEP_INC_DIR={0}'.format( + self.spec['clhep'].prefix.include)) + args.append('-DWITH_TEST=OFF') + + return args diff --git a/var/spack/repos/builtin/packages/vim/package.py b/var/spack/repos/builtin/packages/vim/package.py index 5539adfc02..722fe46a67 100644 --- a/var/spack/repos/builtin/packages/vim/package.py +++ b/var/spack/repos/builtin/packages/vim/package.py @@ -18,6 +18,7 @@ class Vim(AutotoolsPackage): homepage = "http://www.vim.org" url = "https://github.com/vim/vim/archive/v8.1.0338.tar.gz" + version('8.2.1201', sha256='39032fe866f44724b104468038dc9ac4ff2c00a4b18c9a1e2c27064ab1f1143d') version('8.1.2141', sha256='7be3c3d88a6c871121230ffb9b7371b1d2ab462118dedb967c7265473af1144b') version('8.1.0338', sha256='3febcc4e49eaca458be1a1e8055a3a52887aa2054b03e24d5f38d192c3de51a0') version('8.1.0001', sha256='c342acaa26589f371fa34a5ca213b95811f26185c12443f8f48ad2868dee2935') @@ -91,11 +92,11 @@ class Vim(AutotoolsPackage): if '+python' in spec: if 'python@3:' in self.spec: - configure_args.append("--enable-python3interp=yes") + configure_args.append("--enable-python3interp=dynamic") configure_args.append("--enable-pythoninterp=no") else: configure_args.append("--enable-python3interp=no") - configure_args.append("--enable-pythoninterp=yes") + configure_args.append("--enable-pythoninterp=dynamic") else: configure_args.append("--enable-python3interp=no") diff --git a/var/spack/repos/builtin/packages/visit/package.py b/var/spack/repos/builtin/packages/visit/package.py index cd72bcda2c..d2f3987895 100644 --- a/var/spack/repos/builtin/packages/visit/package.py +++ b/var/spack/repos/builtin/packages/visit/package.py @@ -25,6 +25,11 @@ class Visit(CMakePackage): # linux: # spack install visit ^python+shared ^glib@2.56.3 ^py-setuptools@44.1.0 # + # linux w/o opengl: (add mesa as opengl if system lacks system opengl ) + # + # spack install visit ^python+shared ^glib@2.56.3 ^py-setuptools@44.1.0 \ + # ^mesa+opengl + # # macOS: # spack install visit ^python+shared ^glib@2.56.3 ^py-setuptools@44.1.0 \ # ^qt~framework @@ -159,6 +164,7 @@ class Visit(CMakePackage): # https://github.com/visit-dav/visit/issues/3498 depends_on('vtk@8.1.0:8.1.999+opengl2~python', when='~python @3.0:3.999,develop') depends_on('vtk@8.1.0:8.1.999+opengl2+python', when='+python @3.0:3.999,develop') + depends_on('glu', when='platform=linux') depends_on('vtk@6.1.0~opengl2', when='@:2.999') depends_on('vtk+python', when='+python @3.0:,develop') depends_on('vtk~mpi', when='~mpi') diff --git a/var/spack/repos/builtin/packages/votca-tools/package.py b/var/spack/repos/builtin/packages/votca-tools/package.py index f676fb633b..8bedb0477a 100644 --- a/var/spack/repos/builtin/packages/votca-tools/package.py +++ b/var/spack/repos/builtin/packages/votca-tools/package.py @@ -30,7 +30,7 @@ class VotcaTools(CMakePackage): version('1.4', sha256='41638122e7e59852af61d391b4ab8c308fd2e16652f768077e13a99d206ec5d3') # 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+mkl") + patch("https://github.com/votca/tools/pull/229.patch", sha256="250d0b679e5d3104e3c8d6adf99751b71386c7ed4cbdae1c75408717ef3f401f", when="@1.6:1.6.0+mkl") variant('mkl', default=False, description='Build with MKL support') conflicts('+mkl', when='@1.4:1.5.9999') diff --git a/var/spack/repos/builtin/packages/vtk-h/package.py b/var/spack/repos/builtin/packages/vtk-h/package.py index 2a934a442a..9ed842b508 100644 --- a/var/spack/repos/builtin/packages/vtk-h/package.py +++ b/var/spack/repos/builtin/packages/vtk-h/package.py @@ -34,13 +34,20 @@ class VtkH(Package, CudaPackage): and DIY2 to provide a toolkit with hybrid parallel capabilities.""" homepage = "https://github.com/Alpine-DAV/vtk-h" - url = "https://github.com/Alpine-DAV/vtk-h/releases/download/v0.5.0/vtkh-v0.5.0.tar.gz" + url = "https://github.com/Alpine-DAV/vtk-h/releases/download/v0.5.8/vtkh-v0.5.8.tar.gz" git = "https://github.com/Alpine-DAV/vtk-h.git" maintainers = ['cyrush'] version('develop', branch='develop', submodules=True) - version('0.5.0', sha256="9014a8a61a8d7ff636866c6e3b1ebb918ff23fa67cf8d4de801c4a2981de8c96") + version('0.6.1', sha256="ca30b5ff1a48fa247cd20b3f19452f7744eb744465e0b64205135aece42d274f") + version('0.6.0', sha256="2fc054f88ae253fb1bfcae22a156bcced08eca963ba90384dcd5b5791e6dfbf4") + version('0.5.8', sha256="203b337f4280a24a2b75722384f77e0e2f5965058b541efc153db76b7ab98133") + version('0.5.7', sha256="e8c1925dc34ee6be17cec734121e43002e3c02b54ef8dac341b51a455b95e402") + version('0.5.6', sha256="c78c0fa71a9687c2951a06d2112b52aa81fdcdcfbc9464d1578326d03fbb205e") + version('0.5.4', sha256="92bf3741df7a15e36ff41a9a783f3b88eecc86e55cad1defba76f141baa2610b") + version('0.5.3', sha256="0c4aae3bd2a5906738a6806de2b62ea2049ac8b40ebe7fc2ba25505272c2d359") + version('0.5.2', sha256="db2e6250c0ece6381fc90540317ad7b5869dbcce0231ce9be125916a77bfdb25") variant("shared", default=True, description="Build vtk-h as shared libs") variant("mpi", default=True, description="build mpi support") @@ -48,6 +55,8 @@ class VtkH(Package, CudaPackage): variant("cuda", default=False, description="build cuda support") variant("openmp", default=(sys.platform != 'darwin'), description="build openmp support") + variant("logging", default=False, description="Build vtk-h with logging enabled") + variant("contourtree", default=False, description="Enable contour tree support") # use cmake 3.14, newest that provides proper cuda support # and we have seen errors with cuda in 3.15 @@ -56,17 +65,17 @@ class VtkH(Package, CudaPackage): depends_on("mpi", when="+mpi") depends_on("cuda", when="+cuda") - depends_on("vtk-m@1.5.0~tbb+openmp", when="+openmp") - depends_on("vtk-m@1.5.0~tbb~openmp", when="~openmp") + depends_on("vtk-m@ascent_ver~tbb+openmp", when="+openmp") + depends_on("vtk-m@ascent_ver~tbb~openmp", when="~openmp") - depends_on("vtk-m@1.5.0+cuda~tbb+openmp", when="+cuda+openmp") - depends_on("vtk-m@1.5.0+cuda~tbb~openmp", when="+cuda~openmp") + depends_on("vtk-m@ascent_ver+cuda~tbb+openmp", when="+cuda+openmp") + depends_on("vtk-m@ascent_ver+cuda~tbb~openmp", when="+cuda~openmp") - depends_on("vtk-m@1.5.0~tbb+openmp~shared", when="+openmp~shared") - depends_on("vtk-m@1.5.0~tbb~openmp~shared", when="~openmp~shared") + depends_on("vtk-m@ascent_ver~tbb+openmp~shared", when="+openmp~shared") + depends_on("vtk-m@ascent_ver~tbb~openmp~shared", when="~openmp~shared") - depends_on("vtk-m@1.5.0+cuda~tbb+openmp~shared", when="+cuda+openmp~shared") - depends_on("vtk-m@1.5.0+cuda~tbb~openmp~shared", when="+cuda~openmp~shared") + depends_on("vtk-m@ascent_ver+cuda~tbb+openmp~shared", when="+cuda+openmp~shared") + depends_on("vtk-m@ascent_ver+cuda~tbb~openmp~shared", when="+cuda~openmp~shared") def install(self, spec, prefix): with working_dir('spack-build', create=True): @@ -99,6 +108,13 @@ class VtkH(Package, CudaPackage): if "+openmp" in spec: cmake_args.append("-DENABLE_OPENMP=ON") + # build with logging + if "+logging" in spec: + cmake_args.append("-DENABLE_LOGGING=ON") + + if "+contourtree" in spec: + cmake_args.append("-DENABLE_FILTER_CONTOUR_TREE=ON") + # cuda support if "+cuda" in spec: cmake_args.append("-DVTKm_ENABLE_CUDA:BOOL=ON") @@ -216,6 +232,14 @@ class VtkH(Package, CudaPackage): cfg.write(cmake_cache_entry("ENABLE_SERIAL", "OFF")) ####################### + # Logging + ####################### + if "+logging" in spec: + cfg.write(cmake_cache_entry("ENABLE_LOGGING", "ON")) + else: + cfg.write(cmake_cache_entry("ENABLE_LOGGING", "OFF")) + + ####################### # MPI ####################### diff --git a/var/spack/repos/builtin/packages/vtk-h/vtkm_lagrange_cuda_fix.patch b/var/spack/repos/builtin/packages/vtk-h/vtkm_lagrange_cuda_fix.patch deleted file mode 100644 index 2f90477e76..0000000000 --- a/var/spack/repos/builtin/packages/vtk-h/vtkm_lagrange_cuda_fix.patch +++ /dev/null @@ -1,16 +0,0 @@ -diff --git a/src/vtkh/filters/CMakeLists.txt b/src/vtkh/filters/CMakeLists.txt -index 4a42d61..f586155 100644 ---- a/src/vtkh/filters/CMakeLists.txt -+++ b/src/vtkh/filters/CMakeLists.txt -@@ -41,6 +41,11 @@ set(vtkh_filters_deps vtkh_core vtkh_utils ) - if(CUDA_FOUND) - # triggers cuda compile - list(APPEND vtkh_filters_deps cuda) -+ -+ if(CMAKE_CUDA_COMPILER_VERSION VERSION_LESS 10.0.0) -+ set(particle_cuda_src "${CMAKE_CURRENT_SOURCE_DIR}/Lagrangian.cpp") -+ set_source_files_properties(${particle_cuda_src} PROPERTIES COMPILE_FLAGS "-Xptxas --opt-level=0") -+ endif() - endif() - - diff --git a/var/spack/repos/builtin/packages/vtk-m/disable_flying_edges.patch b/var/spack/repos/builtin/packages/vtk-m/disable_flying_edges.patch new file mode 100644 index 0000000000..9b875ce5e0 --- /dev/null +++ b/var/spack/repos/builtin/packages/vtk-m/disable_flying_edges.patch @@ -0,0 +1,14 @@ +diff --git a/vtkm/worklet/Contour.h b/vtkm/worklet/Contour.h +index c28c5ec09..70737777f 100644 +--- a/vtkm/worklet/Contour.h ++++ b/vtkm/worklet/Contour.h +@@ -46,7 +46,8 @@ struct DeduceCoordType + vtkm::cont::CellSetSingleType<>& result, + Args&&... args) const + { +- result = flying_edges::execute(cells, coords, std::forward<Args>(args)...); ++ result = marching_cells::execute(cells, coords, std::forward<Args>(args)...); ++ //result = flying_edges::execute(cells, coords, std::forward<Args>(args)...); + } + }; + diff --git a/var/spack/repos/builtin/packages/vtk-m/package.py b/var/spack/repos/builtin/packages/vtk-m/package.py index 5fd77da94d..c3f5a70328 100644 --- a/var/spack/repos/builtin/packages/vtk-m/package.py +++ b/var/spack/repos/builtin/packages/vtk-m/package.py @@ -30,7 +30,11 @@ class VtkM(CMakePackage, CudaPackage): version('1.3.0', sha256="f88c1b0a1980f695240eeed9bcccfa420cc089e631dc2917c9728a2eb906df2e") version('1.2.0', sha256="607272992e05f8398d196f0acdcb4af025a4a96cd4f66614c6341f31d4561763") version('1.1.0', sha256="78618c81ca741b1fbba0853cb5d7af12c51973b514c268fc96dfb36b853cdb18") - + # version used by ascent + version('ascent_ver', commit="a3b8525ef97d94996ae843db0dd4f675c38e8b1e") + # patches, required for ascent + patch('vtkmdiy_fpic.patch', when='@ascent_ver') + patch('disable_flying_edges.patch', when='@ascent_ver') # use release, instead of release with debug symbols b/c vtkm libs # can overwhelm compilers with too many symbols variant('build_type', default='Release', description='CMake build type', @@ -102,7 +106,7 @@ class VtkM(CMakePackage, CudaPackage): # logging support if "+logging" in spec: - if spec.satisfies('@:1.2.0'): + if not spec.satisfies('@1.3.0:,ascent_ver'): raise InstallError('logging is not supported for\ vtkm version lower than 1.3') options.append("-DVTKm_ENABLE_LOGGING:BOOL=ON") @@ -111,7 +115,7 @@ class VtkM(CMakePackage, CudaPackage): # mpi support if "+mpi" in spec: - if spec.satisfies('@:1.2.0'): + if not spec.satisfies('@1.3.0:,ascent_ver'): raise InstallError('mpi is not supported for\ vtkm version lower than 1.3') options.append("-DVTKm_ENABLE_MPI:BOOL=ON") @@ -121,7 +125,7 @@ class VtkM(CMakePackage, CudaPackage): # openmp support if "+openmp" in spec: # openmp is added since version 1.3.0 - if spec.satisfies('@:1.2.0'): + if not spec.satisfies('@1.3.0:,ascent_ver'): raise InstallError('OpenMP is not supported for\ vtkm version lower than 1.3') options.append("-DVTKm_ENABLE_OPENMP:BOOL=ON") diff --git a/var/spack/repos/builtin/packages/vtk-m/vtkmdiy_fpic.patch b/var/spack/repos/builtin/packages/vtk-m/vtkmdiy_fpic.patch new file mode 100644 index 0000000000..765efe1c58 --- /dev/null +++ b/var/spack/repos/builtin/packages/vtk-m/vtkmdiy_fpic.patch @@ -0,0 +1,12 @@ +diff --git a/vtkm/thirdparty/diy/vtkmdiy/CMakeLists.txt b/vtkm/thirdparty/diy/vtkmdiy/CMakeLists.txt +index 5211330..3e991f3 100644 +--- a/vtkm/thirdparty/diy/vtkmdiy/CMakeLists.txt ++++ b/vtkm/thirdparty/diy/vtkmdiy/CMakeLists.txt +@@ -139,6 +139,7 @@ function(add_diy_mpi_library use_mpi) + endif() + + add_library(${lib_name} ${sources}) ++ set_property(TARGET ${lib_name} PROPERTY POSITION_INDEPENDENT_CODE ON) + target_compile_features(${lib_name} PRIVATE cxx_std_11) + target_compile_definitions(${lib_name} + PRIVATE -DVTKMDIY_HAS_MPI=${has_mpi_val} diff --git a/var/spack/repos/builtin/packages/vtk/package.py b/var/spack/repos/builtin/packages/vtk/package.py index 2a334cb1fb..ef6c6570c2 100644 --- a/var/spack/repos/builtin/packages/vtk/package.py +++ b/var/spack/repos/builtin/packages/vtk/package.py @@ -104,7 +104,7 @@ class Vtk(CMakePackage): depends_on('sqlite', when='@8.2.0:') # For finding Fujitsu-MPI wrapper commands - patch('find_fujitsu_mpi.patch', when='%fj') + patch('find_fujitsu_mpi.patch', when='@:8.2.0%fj') def url_for_version(self, version): url = "http://www.vtk.org/files/release/{0}/VTK-{1}.tar.gz" @@ -159,10 +159,15 @@ class Vtk(CMakePackage): ]) if '+mpi' in spec: - cmake_args.extend([ - '-DVTK_Group_MPI:BOOL=ON', - '-DVTK_USE_SYSTEM_DIY2:BOOL=OFF', - ]) + if spec.satisfies('@:8.2.0'): + cmake_args.extend([ + '-DVTK_Group_MPI:BOOL=ON', + '-DVTK_USE_SYSTEM_DIY2:BOOL=OFF' + ]) + else: + cmake_args.extend([ + '-DVTK_USE_MPI=ON' + ]) if '+ffmpeg' in spec: cmake_args.extend(['-DModule_vtkIOFFMPEG:BOOL=ON']) diff --git a/var/spack/repos/builtin/packages/wannier90/package.py b/var/spack/repos/builtin/packages/wannier90/package.py index 5be0134141..e4aa1017c7 100644 --- a/var/spack/repos/builtin/packages/wannier90/package.py +++ b/var/spack/repos/builtin/packages/wannier90/package.py @@ -15,8 +15,10 @@ class Wannier90(MakefilePackage): Wannier90 is released under the GNU General Public License. """ homepage = 'http://wannier.org' - url = 'http://wannier.org/code/wannier90-2.0.1.tar.gz' + url = 'https://github.com/wannier-developers/wannier90/archive/v3.1.0.tar.gz' + version('3.1.0', sha256='40651a9832eb93dec20a8360dd535262c261c34e13c41b6755fa6915c936b254') + version('3.0.0', sha256='f196e441dcd7b67159a1d09d2d7de2893b011a9f03aab6b30c4703ecbf20fe5b') version('2.1.0', sha256='ee90108d4bc4aa6a1cf16d72abebcb3087cf6c1007d22dda269eb7e7076bddca') version('2.0.1', sha256='05ea7cd421a219ce19d379ad6ae3d9b1a84be4ffb367506ffdfab1e729309e94') @@ -26,17 +28,40 @@ class Wannier90(MakefilePackage): parallel = False - build_targets = [ - 'wannier', 'post', 'lib', 'w90chk2chk', 'w90vdw', 'w90pov' - ] + variant( + 'shared', + default=True, + description='Builds a shared version of the library' + ) @property - def makefile_name(self): - # Older versions use 'make.sys' - filename = 'make.sys' + def build_targets(self): + targets = [] + if '@:2' in self.spec: + targets = [ + 'lib', 'wannier', 'post', 'w90chk2chk', 'w90vdw', 'w90pov' + ] + if '@3:' in self.spec: + targets = ['wannier', 'post', 'lib', 'w90chk2chk', 'w90vdw'] + if '+shared' in self.spec: + targets.append('dynlib') + + return targets + + def url_for_version(self, version): + if (version > Version('2')): + url = 'https://github.com/wannier-developers/wannier90/archive/v{0}.tar.gz' + else: + url = 'http://wannier.org/code/wannier90-{0}.tar.gz' + return url.format(version) - # While newer search for 'make.inc' - if self.spec.satisfies('@2.1.0:'): + @property + def makefile_name(self): + # Version 2.0.1 uses make.sys, + # other verions use make.inc + if self.spec.satisfies('@2.0.1'): + filename = 'make.sys' + else: filename = 'make.inc' abspath = join_path(self.stage.source_path, filename) @@ -46,10 +71,12 @@ class Wannier90(MakefilePackage): lapack = self.spec['lapack'].libs blas = self.spec['blas'].libs + mpi = self.spec['mpi'].libs + substitutions = { '@F90': spack_fc, '@MPIF90': self.spec['mpi'].mpifc, - '@LIBS': (lapack + blas).joined() + '@LIBS': (lapack + blas + mpi).joined() } template = join_path( @@ -61,10 +88,67 @@ class Wannier90(MakefilePackage): for key, value in substitutions.items(): filter_file(key, value, self.makefile_name) - def install(self, spec, prefix): + if '@:2 +shared' in self.spec: + # this is to build a .shared wannier90 library + filter_file('LIBRARY = ../../libwannier.a', + 'LIBRARY = ../../libwannier.' + dso_suffix, + join_path(self.stage.source_path, 'src/Makefile.2')) + filter_file('parameters.o kmesh.o io.o comms.o ' + 'utility.o get_oper.o constants.o ' + 'postw90_common.o wan_ham.o spin.o ' + 'dos.o berry.o kpath.o kslice.o ' + 'boltzwann.o geninterp.o', + 'comms.o get_oper.o postw90_common.o ' + 'wan_ham.o spin.o dos.o berry.o ' + 'kpath.o kslice.o boltzwann.o geninterp.o', + join_path(self.stage.source_path, + 'src/Makefile.2')) + filter_file('../../wannier90.x: .*', + '../../wannier90.x: $(OBJS) ' + '../wannier_prog.F90 $(LIBRARY)', + join_path(self.stage.source_path, + 'src/Makefile.2')) + filter_file('../../postw90.x: $(OBJS_POST) ' + '$(POSTDIR)postw90.F90', + '../../postw90.x: $(OBJS_POST) ' + '$(POSTDIR)postw90.F90 $(LIBRARY)', + join_path(self.stage.source_path, + 'src/Makefile.2'), string=True) + filter_file( + '$(COMPILER) ../wannier_prog.F90 ' + '$(LDOPTS) $(OBJS) $(LIBS) ' + '-o ../../wannier90.x', + '$(COMPILER) -I../obj ../wannier_prog.F90 ' + '$(LDOPTS) -L../.. -lwannier ' + '-o ../../wannier90.x', + join_path(self.stage.source_path, + 'src/Makefile.2'), string=True) + filter_file( + '$(COMPILER) $(POSTDIR)postw90.F90 ' + '$(POSTOPTS) $(LDOPTS) ' + '$(OBJS_POST) ' + '$(LIBS) -o ../../postw90.x', + '$(COMPILER) -I../obj $(POSTDIR)postw90.F90 ' + '$(POSTOPTS) $(LDOPTS) $(OBJS_POST) ' + '-L../.. -lwannier $(LIBS) -o ../../postw90.x', + join_path(self.stage.source_path, + 'src/Makefile.2'), string=True) + filter_file( + '$(AR) $(ARFLAGS) ' + '$(LIBRARY) $(OBJS2) $(OBJS)', + '$(MPIF90) $(FCOPTS) -shared -o ' + '$(LIBRARY) $(OBJS2) $(OBJS) $(LIBS)', + join_path(self.stage.source_path, + 'src/Makefile.2'), string=True) + + def setup_build_environment(self, env): + env.set('MPIFC', self.prefix.bin.mpifc) + def install(self, spec, prefix): mkdirp(self.prefix.bin) mkdirp(self.prefix.lib) + if '+shared' in spec: + mkdirp(self.prefix.modules) install( join_path(self.stage.source_path, 'wannier90.x'), @@ -76,10 +160,17 @@ class Wannier90(MakefilePackage): join_path(self.prefix.bin, 'postw90.x') ) - install( - join_path(self.stage.source_path, 'libwannier.a'), - join_path(self.prefix.lib, 'libwannier.a') - ) + inst = [] + if '+shared' in spec: + inst.append('libwannier.' + dso_suffix) + # version 3 or 2 without the shared variant + # also has a .a version of the library + if '@3:' in spec or '~shared' in spec: + inst.append('libwannier.a') + + for file in inst: + install(join_path(self.stage.source_path, file), + join_path(self.prefix.lib, file)) install( join_path(self.stage.source_path, 'w90chk2chk.x'), @@ -91,12 +182,18 @@ class Wannier90(MakefilePackage): join_path(self.prefix.bin, 'w90vdw.x') ) - install( - join_path(self.stage.source_path, 'utility', 'w90pov', 'w90pov'), - join_path(self.prefix.bin, 'w90pov') - ) + if spec.satisfies('@:2'): + install( + join_path(self.stage.source_path, + 'utility', 'w90pov', 'w90pov'), + join_path(self.prefix.bin, 'w90pov') + ) install_tree( join_path(self.stage.source_path, 'pseudo'), join_path(self.prefix.bin, 'pseudo') ) + + for file in find(join_path(self.stage.source_path, 'src/obj'), + '*.mod'): + install(file, self.prefix.modules) diff --git a/var/spack/repos/builtin/packages/wcslib/package.py b/var/spack/repos/builtin/packages/wcslib/package.py index 147cc9ed72..0c336592d0 100644 --- a/var/spack/repos/builtin/packages/wcslib/package.py +++ b/var/spack/repos/builtin/packages/wcslib/package.py @@ -11,8 +11,9 @@ class Wcslib(AutotoolsPackage): defined in the FITS WCS papers.""" homepage = "http://www.atnf.csiro.au/people/mcalabre/WCS/wcslib/" - url = "ftp://ftp.atnf.csiro.au/pub/software/wcslib/wcslib-6.4.tar.bz2" + url = "ftp://ftp.atnf.csiro.au/pub/software/wcslib/wcslib-7.3.tar.bz2" + version('7.3', sha256='4b01cf425382a26ca4f955ed6841a5f50c55952a2994367f8e067e4183992961') version('6.4', sha256='13c11ff70a7725563ec5fa52707a9965fce186a1766db193d08c9766ea107000') variant('cfitsio', default=False, description='Include CFITSIO support') diff --git a/var/spack/repos/builtin/packages/weechat/package.py b/var/spack/repos/builtin/packages/weechat/package.py new file mode 100644 index 0000000000..ddee20bf1f --- /dev/null +++ b/var/spack/repos/builtin/packages/weechat/package.py @@ -0,0 +1,53 @@ +# 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) + + +class Weechat(CMakePackage): + """WeeChat is a fast, light and extensible chat client, with a + text-based user interface.""" + + homepage = "https://weechat.org" + url = "https://weechat.org/files/src/weechat-2.9.tar.gz" + + version('2.9', sha256='3a78063b76c42ba306eacf8f74cb8c9a260f8a61d1915d0b5d76f11d2be69a53') + + variant('perl', default=False, description='Include perl support') + variant('lua', default=False, description='Include lua support') + variant('ruby', default=False, description='Include ruby support') + variant('tcl', default=False, description='Include TCL support') + variant('guile', default=False, description='Include guile support') + variant('php', default=False, description='Include php support') + + depends_on('cmake@3:', type='build') + depends_on('python@3.5:') + depends_on('gnutls@3.0.21:') + depends_on('ncurses') + depends_on('aspell') + depends_on('libgcrypt') + depends_on('curl') + depends_on('zlib') + depends_on('ruby@1.9.1:', when='+ruby') + depends_on('tcl@8.5:', when='+tcl') + depends_on('perl', when='+perl') + depends_on('lua', when='+lua') + depends_on('guile@2.0:', when='+guile') + depends_on('php@7.0:', when='+php') + + def cmake_args(self): + spec = self.spec + cmake_args = [] + if '~ruby' in spec: + cmake_args.append('-DENABLE_RUBY=OFF') + if '~tcl' in spec: + cmake_args.append('-DENABLE_TCL=OFF') + if '~perl' in spec: + cmake_args.append('-DENABLE_PERL=OFF') + if '~lua' in spec: + cmake_args.append('-DENABLE_LUA=OFF') + if '~guile' in spec: + cmake_args.append('-DENABLE_GUILE=OFF') + if '~php' in spec: + cmake_args.append('-DENABLE_PHP=OFF') + return cmake_args diff --git a/var/spack/repos/builtin/packages/whizard/package.py b/var/spack/repos/builtin/packages/whizard/package.py index 1ad8e07568..d38994c67e 100644 --- a/var/spack/repos/builtin/packages/whizard/package.py +++ b/var/spack/repos/builtin/packages/whizard/package.py @@ -12,19 +12,26 @@ class Whizard(AutotoolsPackage): and simulated event samples.""" homepage = "whizard.hepforge.org" - url = "https://whizard.hepforge.org/downloads/?f=whizard-2.8.2.tar.gz" + url = "https://whizard.hepforge.org/downloads/?f=whizard-2.8.3.tar.gz" git = "https://gitlab.tp.nt.uni-siegen.de/whizard/public.git" maintainers = ['vvolkl'] version('master', branch="master") version('3.0.0_alpha', sha256='4636e5a10350bb67ccc98cd105bc891ea04f3393c2420f81be3d21240be20009') - version('2.8.2', sha256='32c9be342d01b3fc6f947fddce74bf2d81ece37fb39bca1f37778fb0c07e2568', prefered=True) + version('2.8.4', sha256='49893f077484470934a9d6e1545bbda7d398076568bceda00880d58132f26432', preferred=True) + version('2.8.3', sha256='96a9046682d4b992b477eb96d561c3db789207e1049b60c9bd140db40eb1e5d7') + version('2.8.2', sha256='32c9be342d01b3fc6f947fddce74bf2d81ece37fb39bca1f37778fb0c07e2568') version('2.8.1', sha256='0c759ce0598e25f38e04659f745c5963d238c4b5c12209f16449b6c0bc6dc64e') version('2.8.0', sha256='3b5175eafa879d1baca20237d18fb2b18bee89631e73ada499de9c082d009696') - variant('hepmc', default=True, - description="builds with hepmc") + variant( + 'hepmc', + default='3', + description='builds with hepmc 2/3', + values=('off', '2', '3'), + multi=False + ) variant('pythia8', default=True, description="builds with pythia8") @@ -41,15 +48,23 @@ class Whizard(AutotoolsPackage): variant('openmp', default=False, description="builds with openmp") + variant('openloops', default=False, + description="builds with openloops") + variant('latex', default=False, description="data visualization with latex") depends_on('ocaml', type='build', when="@3:") depends_on('ocaml@:4.8.2', type='build', when="@:2.99.99") - depends_on('hepmc', when="+hepmc") + depends_on('hepmc', when="hepmc=2") + depends_on('hepmc3', when="hepmc=3") + depends_on('lcio', when="+lcio") depends_on('pythia8', when="+pythia8") depends_on('lhapdf', when="+lhapdf") depends_on('fastjet', when="+fastjet") + depends_on('openloops@2.0.0: +compile_extra num_jobs=1 ' + 'processes=eett,eevvjj,ppllj,tbw', + when="+openloops") depends_on('texlive', when="+latex") depends_on('zlib') @@ -66,21 +81,30 @@ class Whizard(AutotoolsPackage): def configure_args(self): spec = self.spec args = [ - '--enable-hepmc=%s' % ("yes" if "+hepmc" in spec else "no"), + '--enable-hepmc=%s' % ("no" if "hepmc=off" in spec else "yes"), '--enable-fastjet=%s' % ("yes" if "+fastjet" in spec else "no"), '--enable-pythia8=%s' % ("yes" if "+pythia8" in spec else "no"), '--enable-lcio=%s' % ("yes" if "+lcio" in spec else "no"), '--enable-lhapdf=%s' % ("yes" if "+lhapdf" in spec else "no"), - # todo: openloops + '--enable-openloops=%s' % ("yes" if "+openloops" in spec + else "no"), # todo: hoppet # todo: recola # todo: looptools # todo: gosam # todo: pythia6 ] + + if "+openloops" in spec: + args.append('--with-openloops=%s' % spec['openloops'].prefix) + if "+lcio" in spec: + args.append('--with-lcio=%s' % spec['lcio'].prefix) + if "hepmc=3" in spec: + args.append('--with-hepmc=%s' % spec['hepmc3'].prefix) + if "hepmc=2" in spec: + args.append('--with-hepmc=%s' % spec['hepmc'].prefix) if "+openmp" not in spec: args.append('--disable-openmp') - return args def url_for_version(self, version): diff --git a/var/spack/repos/builtin/packages/wonton/package.py b/var/spack/repos/builtin/packages/wonton/package.py new file mode 100644 index 0000000000..468b80c74c --- /dev/null +++ b/var/spack/repos/builtin/packages/wonton/package.py @@ -0,0 +1,127 @@ +# 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 Wonton(CMakePackage): + """Wonton is a support package for the Portage + (https://github.com/laristra/portage) and Tangram + (https://github.com/laristra/tangram) libraries. It contains some + mesh/state classes, wrappers for other mesh/state libraries and + some utilities required by Portage and Tangram. + + """ + + homepage = "https://portage.lanl.gov" + git = "https://github.com/laristra/wonton.git" + url = "https://github.com/laristra/wonton/releases/download/1.2.1/wonton-1.2.1.tar.gz" + + maintainers = ['raovgarimella'] + + version('1.2.1', sha256='4f00513d1abe86f256214d2b5171b1575b2cd464df8609307c24cbc4c595c305') + + variant('lapacke', default=True, description='Use LAPACKE solvers') + + # Variants for controlling parallelism + variant('mpi', default=False, description='Enable distributed meshes with MPI') + 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") + variant('cuda', default=False, description="Enable GPU parallelism using CUDA") + + # wrappers to external mesh/state libraries + variant('jali', default=False, description='Enable Jali mesh wrappers') + + conflicts('+jali ~mpi') # Jali needs MPI + conflicts('+thrust +cuda') # Thrust with CUDA does not work as yet + conflicts('+thrust +kokkos') # Don't enable Kokkos, Thrust simultaneously + + # dependencies + depends_on('cmake@3.13:', type='build') + + depends_on('netlib-lapack +lapacke', when='+lapacke') + + depends_on('mpi', when='+mpi') + + depends_on('jali +mstk', when='+jali') + depends_on('mpi', when='+jali') + + # We need boost only when no thrust option + depends_on('boost', when='~thrust') + + # NVidia thrust library + depends_on('thrust@1.8.3', when='+thrust') + + # CUDA library + depends_on('cuda', when='+cuda') + + # Kokkos with appropriate option + depends_on('kokkos +openmp', when='+kokkos +openmp') + depends_on('kokkos +cuda', when='+kokkos +cuda') + + def cmake_args(self): + options = [] + if '+mpi' in self.spec: + options.append('-DWONTON_ENABLE_MPI=ON') + else: + options.append('-DWONTON_ENABLE_MPI=OFF') + + if '+lapacke' in self.spec: + options.append('-DWONTON_ENABLE_LAPACKE=ON') + options.append('-DBLA_VENDOR=' + self.spec['blas'].name.upper()) + options.append( + '-DBLAS_LIBRARIES=' + self.spec['blas'].libs.joined() + ) + else: + options.append('-DWONTON_ENABLE_LAPACKE=OFF') + + if '+thrust' in self.spec: + options.append('-DWONTON_ENABLE_THRUST=ON') + if '+cuda' in self.spec: + options.append( + '-DTHRUST_HOST_BACKEND:STRING=THRUST_HOST_SYSTEM_CPP' + ) + options.append( + '-DTHRUST_DEVICE_BACKEND:STRING=THRUST_DEVICE_SYSTEM_CUDA' + ) + else: + options.append( + '-DTHRUST_HOST_BACKEND:STRING=THRUST_HOST_SYSTEM_CPP' + ) + options.append( + '-DTHRUST_DEVICE_BACKEND:STRING=THRUST_DEVICE_SYSTEM_OMP' + ) + else: + options.append('-DWONTON_ENABLE_THRUST=OFF') + + if '+kokkos' in self.spec: + options.append('-DWONTON_ENABLE_Kokkos=ON') + if '+cuda' in self.spec: + options.append('-DWONTON_ENABLE_Kokkos_CUDA=ON') + elif '+openmp' in self.spec: + options.append('-DWONTON_ENABLE_Kokkos_OpenMP=ON') + else: + options.append('-DWONTON_ENABLE_Kokkos=OFF') + + if '+jali' in self.spec: + options.append('-DWONTON_ENABLE_Jali=ON') + 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') + + # Unit test variant + if self.run_tests: + options.append('-DENABLE_UNIT_TESTS=ON') + options.append('-DENABLE_APP_TESTS=ON') + else: + options.append('-DENABLE_UNIT_TESTS=OFF') + options.append('-DENABLE_APP_TESTS=OFF') + + return options diff --git a/var/spack/repos/builtin/packages/xbraid/package.py b/var/spack/repos/builtin/packages/xbraid/package.py index d3dff7d295..d58ac78016 100644 --- a/var/spack/repos/builtin/packages/xbraid/package.py +++ b/var/spack/repos/builtin/packages/xbraid/package.py @@ -12,7 +12,7 @@ class Xbraid(MakefilePackage): """XBraid: Parallel time integration with Multigrid""" homepage = "https://computing.llnl.gov/projects/parallel-time-integration-multigrid/software" - url = "https://computing.llnl.gov/projects/parallel-time-integration-multigrid/download/braid_2.2.0.tar.gz" + url = "https://github.com/XBraid/xbraid/archive/v2.2.0.tar.gz" version('2.2.0', sha256='082623b2ddcd2150b3ace65b96c1e00be637876ec6c94dc8fefda88743b35ba3') diff --git a/var/spack/repos/builtin/packages/xcfun/package.py b/var/spack/repos/builtin/packages/xcfun/package.py index a40234c643..7369702279 100644 --- a/var/spack/repos/builtin/packages/xcfun/package.py +++ b/var/spack/repos/builtin/packages/xcfun/package.py @@ -16,6 +16,8 @@ class Xcfun(CMakePackage): version('2.0.0a6', sha256='a51086490890393439f98c5e3e4e1622908fe934bbc5063b1d4363cc4c15496d') + version('2.0.0a2', + sha256='f29e80fdb5c8089fb0eeb7827659111005cb13eb42bf75fcb0c034f6bd067c31') extends('python') depends_on('cmake@3.11:', type='build') diff --git a/var/spack/repos/builtin/packages/xdotool/package.py b/var/spack/repos/builtin/packages/xdotool/package.py new file mode 100644 index 0000000000..da918c32a7 --- /dev/null +++ b/var/spack/repos/builtin/packages/xdotool/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) + +from spack import * + + +class Xdotool(MakefilePackage): + """fake keyboard/mouse input, window management, and more""" + + homepage = "https://github.com/jordansissel/xdotool" + url = "https://github.com/jordansissel/xdotool/releases/download/v3.20160805.1/xdotool-3.20160805.1.tar.gz" + + version('3.20160805.1', sha256='35be5ff6edf0c620a0e16f09ea5e101d5173280161772fca18657d83f20fcca8') + version('3.20160804.2', sha256='2251671c3c3dadab2b70e08bd87f2de6338c7b4e64e7e2d2d881fd13f9bff72c') + version('3.20160804.1', sha256='7a76ee57515cc767a00a768f1d04c703279d734255a34f8027c29178561fdce9') + version('3.20150503.1', sha256='e8326883bd5e91bede7336cbee186e6e9143f40b3fb61c84afc9bb31b87e96d1') + + depends_on('libxext') + depends_on('libxtst') + depends_on('libxi') + depends_on('libx11') + depends_on('inputproto') + depends_on('libxinerama') + + depends_on('libxkbcommon') + + def edit(self, spec, prefix): + env['PREFIX'] = prefix + + makefile = FileFilter('Makefile') + makefile.filter('xdotool: LDFLAGS+=-Xlinker', '', string=True) + makefile.filter('xdotool: LDFLAGS+=-rpath $(INSTALLLIB)', '', + string=True) diff --git a/var/spack/repos/builtin/packages/xxhash/package.py b/var/spack/repos/builtin/packages/xxhash/package.py index 421026f496..84bcd8966d 100644 --- a/var/spack/repos/builtin/packages/xxhash/package.py +++ b/var/spack/repos/builtin/packages/xxhash/package.py @@ -17,6 +17,7 @@ class Xxhash(MakefilePackage): homepage = "https://github.com/Cyan4973/xxHash" url = "https://github.com/Cyan4973/xxHash/archive/v0.6.5.tar.gz" + version('0.7.4', sha256='4d9706c9da4fbdf901598f5e3b71db0eddd4ac962e827a73ebf75d66dfd820fe') version('0.6.5', sha256='19030315f4fc1b4b2cdb9d7a317069a109f90e39d1fe4c9159b7aaa39030eb95') version('0.6.4', sha256='4570ccd111df6b6386502791397906bf69b7371eb209af7d41debc2f074cdb22') version('0.6.3', sha256='d8c739ec666ac2af983a61dc932aaa2a8873df974d333a9922d472a121f2106e') diff --git a/var/spack/repos/builtin/packages/ycsb/package.py b/var/spack/repos/builtin/packages/ycsb/package.py new file mode 100644 index 0000000000..163672f4e4 --- /dev/null +++ b/var/spack/repos/builtin/packages/ycsb/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) + +from spack import * + + +class Ycsb(Package): + """Yahoo! Cloud Serving Benchmark.""" + + homepage = "https://research.yahoo.com/news/yahoo-cloud-serving-benchmark/" + url = "https://github.com/brianfrankcooper/YCSB/archive/0.17.0.tar.gz" + git = "https://github.com/brianfrankcooper/YCSB.git" + + version('0.17.0', sha256='5dd1a3d4dd7ac336eadccc83b097c811e142cfe1b23fc278f247054a1892c0e0') + version('0.16.0', sha256='4296fd5e90d7d6d7dfcbad90039ddf16e785706a07f99c1c8a06e6ee06440f71') + version('0.15.0', sha256='50b83c11f1a2f19f45e3cc6781f952c69944d1221dfec72169c3587802fc7fbb') + version('0.14.0', sha256='456bcc9fa3d5d66d76fffa9cec34afd4528d9f02aa8a8d1135f511650516d5cb') + version('0.13.0', sha256='21cb8078a0fe2d8d909145744ca15848dbb6757e98a7fdc97fb4049f82f4afbc') + + depends_on('maven', type='build') + depends_on('java@8', type=('build', 'run')) + depends_on('mongodb-async-driver', type='build') + + def install(self, spec, prefix): + mvn = which('mvn') + jar_name = 'target/mongodb-async-driver-' + \ + spec['mongodb-async-driver'].version.string + '.jar' + path = join_path(self.spec['mongodb-async-driver'].prefix, jar_name) + mvn('install:install-file', '-Dfile={0}'.format(path), + '-DgroupId=com.allanbank', '-DartifactId=mongodb-async-driver', + '-Dversion=2.0.1', '-Dpackaging=jar') + mvn('package', '-DskipTests') + install_tree('.', prefix) diff --git a/var/spack/repos/builtin/packages/yoda/package.py b/var/spack/repos/builtin/packages/yoda/package.py new file mode 100644 index 0000000000..4da424c2a8 --- /dev/null +++ b/var/spack/repos/builtin/packages/yoda/package.py @@ -0,0 +1,84 @@ +# 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 Yoda(AutotoolsPackage): + """YODA - Yet more Objects for Data Analysis""" + + homepage = "https://yoda.hepforge.org/" + url = "https://yoda.hepforge.org/downloads/?f=YODA-1.8.3.tar.bz2" + + version('1.8.3', sha256='d9dd0ea5e0f630cdf4893c09a40c78bd44455777c2125385ecc26fa9a2acba8a') + version('1.8.2', sha256='89558c11cf9b88b0899713e5b4bf8781fdcecc480ff155985ebbf148c6d80bdb') + version('1.8.1', sha256='51472e12065b9469f13906f0dc609e036d0c1dbd2a8e445e7d654aba73660112') + version('1.8.0', sha256='82c62bbaedb4b6b7d50cd42ce5409d453d46c1cc6724047db5efa74d34dd6dc5') + version('1.7.7', sha256='cfb64b099a79ec4d138792f0b464a8fbb04c4345143f77bbdca07acb744628ce') + version('1.7.6', sha256='864a1459c82676c991fcaed931263a415e815e3c9dc2cad2f94bda6fa4d112e5') + version('1.7.5', sha256='7b1dc7bb380d0fbadce12072f5cc21912c115e826182a3922d864e7edea131db') + version('1.7.4', sha256='3df316b89e9c0052104f8956e4f7d26c0b0b05cdace7d908be35c383361e3a71') + version('1.7.3', sha256='ebf6094733823e9cc2d1586aff06db2d8999c74a47e666baf305322f62c48058') + version('1.7.2', sha256='7f093cf947824ec118767c7c1999a50ea9343c173cf8c5062e3800ba54c2943e') + version('1.7.1', sha256='edd7971ecd272314309c800395200b07cf68547cbac3378a02d0b8c9ac03027b') + version('1.7.0', sha256='b3d6bfb0c52ed87cd240cee5e93e09102832d9ef32505d7275f4d3191a35ce3b') + version('1.6.7', sha256='2abf378573832c201bc6a9fecfff5b2006fc98c7a272540326cda8eb5bd95e16') + version('1.6.6', sha256='cf172a496d9108b93420530ea91055d07ecd514d2894d78db46b806530e91d21') + version('1.6.5', sha256='1477fe754cfe2e4e06aa363a773accf18aab960a8b899968b77834368cac14c5') + version('1.6.4', sha256='4c01f43c18b7b2e71f61dea0bb8c6fdc099c8e1a66256c510652884c4ffffbca') + version('1.6.3', sha256='1dd7e334fe54a05ff911d9e227d395abc5efd29e29d60187a036b2201f97da19') + version('1.6.2', sha256='5793cd1320694118423888801ca520f2719565fde04699ee69e1751f47cb57a8') + version('1.6.1', sha256='ec3f4cc4eb57f94fb431cc37db10eb831f025df95ffd9e516b8009199253c62b') + version('1.6.0', sha256='2920ef2588268484b650dc08438664a3539b79c65a9e80d58e3771bb699e2a6b') + version('1.5.9', sha256='1a19cc8c34c08f1797a93d355250e682eb85d62d4ab277b6714d7873b4bdde75') + version('1.5.8', sha256='011c5be5cc565f8baf02e7ebbe57a57b4d70dc6a528d5b0102700020bbf5a973') + version('1.5.7', sha256='f775df11b034154b8f5d43f12007692c3314672e60d3e554b3928fe5b0f00c29') + version('1.5.6', sha256='050e17b1b80658213281a2e4112dfecc0096f01f269cd739d601b2fd0e790a0c') + version('1.5.5', sha256='ce45df6248c6c50633953048240513dc52ca5c9144ef69ea72ada2df23bc4918') + version('1.5.4', sha256='c41853a1f3aa0794875ae09c1ba4348942eb890e798ac7cee6e3505a9b68b678') + version('1.5.3', sha256='1220ac0ae204c3ed6b22a6a35c30d9b5c1ded35a1054cff131861b4a919d4904') + version('1.5.2', sha256='ec113c53a6174b174aaea8f45802cc419184ce056123b93ab8d3f80fc1bd4986') + version('1.5.1', sha256='a8b088b3ede67d560e40f91f4f99be313f21841c46ce2f657af7692a7bbe3276') + version('1.5.0', sha256='2c2b77344854fac937a8ef07c0928c50829ff4c69bcad6e0afb92da611b7dd18') + version('1.4.0', sha256='e76a129f7c2b72b53525fe0b712606eeeab0dc145daa070ebf0728f0384eaf48') + version('1.3.1', sha256='274e196d009e3aac6dd1f2db876de9613ca1a3c21ec3364bc3662f5493bc9747') + version('1.3.0', sha256='d63197d5940b481ecb06cf4703d9c0b49388f32cad61ccae580d1b80312bd215') + version('1.2.1', sha256='e86964e91e4fbbba443d2848f55c028001de4713dcc64c40339389de053e7d8b') + version('1.2.0', sha256='143fa86cd7965d26d3897a5752307bfe08f4866c2f9a9f226a393127d19ee353') + version('1.1.0', sha256='5d2e8f3c1cddfb59fe651931c7c605fe0ed067864fa86047aed312c6a7938e01') + version('1.0.7', sha256='145c27d922c27a4e1d6d50030f4ddece5f03d6c309a5e392a5fcbb5e83e747ab') + version('1.0.6', sha256='357732448d67a593e5ff004418f2a2a263a1401ffe84e021f8a714aa183eaa21') + version('1.0.5', sha256='ba72bc3943a1b39fa63900570948199cf5ed5c7523f2c4af4740e51b098f1794') + version('1.0.4', sha256='697fe397c69689feecb2a731e19b2ff85e19343b8198c4f18a7064c4f7123950') + version('1.0.3', sha256='6a1d1d75d9d74da457726ea9463c1b0b6ba38d4b43ef54e1c33f885e70fdae4b') + + variant("root", default=False, description="Enable ROOT interface") + + depends_on('python', type=('build', 'run')) + depends_on('py-future', type=('build', 'run')) + depends_on('boost', when='@:1.6.0', type=('build', 'run')) + depends_on('py-cython', type='build') + depends_on('py-matplotlib', when='@1.3.0:', type=('build', 'run')) + depends_on('root', type=('build', 'run'), when='+root') + + patch('yoda-1.5.5.patch', level=0, when='@1.5.5') + patch('yoda-1.5.9.patch', level=0, when='@1.5.9') + patch('yoda-1.6.1.patch', level=0, when='@1.6.1') + patch('yoda-1.6.2.patch', level=0, when='@1.6.2') + patch('yoda-1.6.3.patch', level=0, when='@1.6.3') + patch('yoda-1.6.4.patch', level=0, when='@1.6.4') + patch('yoda-1.6.5.patch', level=0, when='@1.6.5') + patch('yoda-1.6.6.patch', level=0, when='@1.6.6') + patch('yoda-1.6.7.patch', level=0, when='@1.6.7') + + def configure_args(self): + args = [] + if self.spec.satisfies('@:1.6.0'): + args += '--with-boost=' + self.spec['boost'].prefix + + if '+root' in self.spec: + args += '--enable-root' + + return args diff --git a/var/spack/repos/builtin/packages/yoda/yoda-1.5.5.patch b/var/spack/repos/builtin/packages/yoda/yoda-1.5.5.patch new file mode 100644 index 0000000000..ba86d4cc31 --- /dev/null +++ b/var/spack/repos/builtin/packages/yoda/yoda-1.5.5.patch @@ -0,0 +1,50 @@ +--- configure.orig 2016-09-30 08:52:56.000000000 +0200 ++++ configure 2016-09-30 08:56:39.000000000 +0200 +@@ -16568,11 +16568,15 @@ + cat >conftest.py <<_ACEOF + + import sys, string ++# Python 2 and 3 compatible ++from future.builtins import map ++# Python 2 and 3: forward-compatible ++from future.builtins import range + # split strings by '.' and convert to numeric. Append some zeros + # because we need at least 4 digits for the hex conversion. +-minver = map(int, string.split('2.5', '.')) + [0, 0, 0] ++minver = list(map(int, '2.5'.split('.'))) + [0, 0, 0] + minverhex = 0 +-for i in xrange(0, 4): minverhex = (minverhex << 8) + minver[i] ++for i in range(0, 4): minverhex = (minverhex << 8) + minver[i] + if sys.hexversion >= minverhex: + sys.exit( 0 ) + else: +@@ -16600,15 +16604,15 @@ + fi + + +- PYTHON_VERSION=`$PYTHON -c "import sys; print '.'.join(map(str, sys.version_info[:2]));"` ++ PYTHON_VERSION=`$PYTHON -c "from __future__ import print_function; import sys; print('.'.join(list(map(str, sys.version_info[:2]))));"` + +- YODA_PYTHONPATH=`$PYTHON -c "import distutils.sysconfig; print distutils.sysconfig.get_python_lib(prefix='$prefix', plat_specific=True);"` ++ YODA_PYTHONPATH=`$PYTHON -c "from __future__ import print_function; import distutils.sysconfig; print(distutils.sysconfig.get_python_lib(prefix='$prefix', plat_specific=True));"` + + ## Test for Python header + if test -x "$PYTHON"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for Python include path" >&5 + $as_echo_n "checking for Python include path... " >&6; } +- python_incpath=`$PYTHON -c "import distutils.sysconfig; print distutils.sysconfig.get_python_inc();"` ++ python_incpath=`$PYTHON -c "from __future__ import print_function; import distutils.sysconfig; print(distutils.sysconfig.get_python_inc());"` + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $python_incpath" >&5 + $as_echo "$python_incpath" >&6; } + python_header="$python_incpath/Python.h" + --- pyext/setup.py.in.orig 2016-09-30 08:57:23.000000000 +0200 + +++ pyext/setup.py.in 2016-09-30 08:57:58.000000000 +0200 + @@ -34,7 +34,7 @@ + extns = [ext("util"), ext("core", statics=static_files, depends=core_depends)] + + ## Enable building of ROOT extension if ROOT is present + -if os.environ.has_key("BUILD_ROOTCOMPAT"): + +if "BUILD_ROOTCOMPAT" in os.environ: + try: + # import ROOT + # TODO: Need to test for and use root-config in configure diff --git a/var/spack/repos/builtin/packages/yoda/yoda-1.5.9.patch b/var/spack/repos/builtin/packages/yoda/yoda-1.5.9.patch new file mode 100644 index 0000000000..37a9ffab32 --- /dev/null +++ b/var/spack/repos/builtin/packages/yoda/yoda-1.5.9.patch @@ -0,0 +1,50 @@ +--- configure.orig 2016-09-30 09:01:00.000000000 +0200 ++++ configure 2016-09-30 09:03:05.000000000 +0200 +@@ -16574,11 +16574,15 @@ + cat >conftest.py <<_ACEOF + + import sys, string ++# Python 2 and 3 compatible ++from future.builtins import map ++# Python 2 and 3: forward-compatible ++from future.builtins import range + # split strings by '.' and convert to numeric. Append some zeros + # because we need at least 4 digits for the hex conversion. +-minver = map(int, string.split('2.5', '.')) + [0, 0, 0] ++minver = list(map(int, '2.5'.split('.'))) + [0, 0, 0] + minverhex = 0 +-for i in xrange(0, 4): minverhex = (minverhex << 8) + minver[i] ++for i in range(0, 4): minverhex = (minverhex << 8) + minver[i] + if sys.hexversion >= minverhex: + sys.exit( 0 ) + else: +@@ -16606,15 +16610,15 @@ + fi + + +- PYTHON_VERSION=`$PYTHON -c "import sys; print '.'.join(map(str, sys.version_info[:2]));"` ++ PYTHON_VERSION=`$PYTHON -c "from __future__ import print_function; import sys; print('.'.join(list(map(str, sys.version_info[:2]))));"` + +- YODA_PYTHONPATH=`$PYTHON -c "import distutils.sysconfig; print distutils.sysconfig.get_python_lib(prefix='$prefix', plat_specific=True);"` ++ YODA_PYTHONPATH=`$PYTHON -c "from __future__ import print_function; import distutils.sysconfig; print(distutils.sysconfig.get_python_lib(prefix='$prefix', plat_specific=True));"` + + ## Test for Python header + if test -x "$PYTHON"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for Python include path" >&5 + $as_echo_n "checking for Python include path... " >&6; } +- python_incpath=`$PYTHON -c "import distutils.sysconfig; print distutils.sysconfig.get_python_inc();"` ++ python_incpath=`$PYTHON -c "from __future__ import print_function; import distutils.sysconfig; print(distutils.sysconfig.get_python_inc());"` + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $python_incpath" >&5 + $as_echo "$python_incpath" >&6; } + python_header="$python_incpath/Python.h" + --- pyext/setup.py.in.orig 2016-09-30 09:03:25.000000000 +0200 + +++ pyext/setup.py.in 2016-09-30 09:04:03.000000000 +0200 + @@ -34,7 +34,7 @@ + extns = [ext("util"), ext("core", statics=static_files, depends=core_depends)] + + ## Enable building of ROOT extension if ROOT is present + -if os.environ.has_key("BUILD_ROOTCOMPAT"): + +if "BUILD_ROOTCOMPAT" in os.environ: + try: + # import ROOT + # TODO: Need to test for and use root-config in configure diff --git a/var/spack/repos/builtin/packages/yoda/yoda-1.6.1.patch b/var/spack/repos/builtin/packages/yoda/yoda-1.6.1.patch new file mode 100644 index 0000000000..0a5996a70d --- /dev/null +++ b/var/spack/repos/builtin/packages/yoda/yoda-1.6.1.patch @@ -0,0 +1,72 @@ +--- bin/yoda-config.in.orig 2016-07-11 14:43:05.700511377 +0300 ++++ bin/yoda-config.in 2016-07-11 14:43:50.312499322 +0300 +@@ -59,7 +59,7 @@ + + ## "Pre-rolled" build info + tmp=$( echo "$*" | egrep -- '--\<cflags\>|--\<cppflags\>|--\<cxxflags\>') +-test -n "$tmp" && OUT="$OUT -I@includedir@ @BOOST_CPPFLAGS@" ++test -n "$tmp" && OUT="$OUT -I@includedir@" + + tmp=$( echo "$*" | egrep -- '--\<ldflags\>|--\<libs\>|--\<ldadd\>') + test -n "$tmp" && OUT="$OUT -L@libdir@ -lYODA" +--- bin/yoda-config.orig 2016-07-11 14:43:31.960503275 +0300 ++++ bin/yoda-config 2016-07-11 14:43:41.200501112 +0300 +@@ -59,7 +59,7 @@ + + ## "Pre-rolled" build info + tmp=$( echo "$*" | egrep -- '--\<cflags\>|--\<cppflags\>|--\<cxxflags\>') +-test -n "$tmp" && OUT="$OUT -I${prefix}/include @BOOST_CPPFLAGS@" ++test -n "$tmp" && OUT="$OUT -I${prefix}/include" + + tmp=$( echo "$*" | egrep -- '--\<ldflags\>|--\<libs\>|--\<ldadd\>') + test -n "$tmp" && OUT="$OUT -L${exec_prefix}/lib -lYODA" +--- configure.orig 2016-09-30 09:04:54.000000000 +0200 ++++ configure 2016-09-30 09:07:44.000000000 +0200 +@@ -16508,11 +16508,15 @@ + cat >conftest.py <<_ACEOF + + import sys, string ++# Python 2 and 3 compatible ++from future.builtins import map ++# Python 2 and 3: forward-compatible ++from future.builtins import range + # split strings by '.' and convert to numeric. Append some zeros + # because we need at least 4 digits for the hex conversion. +-minver = map(int, string.split('2.5', '.')) + [0, 0, 0] ++minver = list(map(int, '2.5'.split('.'))) + [0, 0, 0] + minverhex = 0 +-for i in xrange(0, 4): minverhex = (minverhex << 8) + minver[i] ++for i in range(0, 4): minverhex = (minverhex << 8) + minver[i] + if sys.hexversion >= minverhex: + sys.exit( 0 ) + else: +@@ -16540,15 +16544,15 @@ + fi + + +- PYTHON_VERSION=`$PYTHON -c "import sys; print '.'.join(map(str, sys.version_info[:2]));"` ++ PYTHON_VERSION=`$PYTHON -c "from __future__ import print_function; import sys; print('.'.join(list(map(str, sys.version_info[:2]))));"` + +- YODA_PYTHONPATH=`$PYTHON -c "import distutils.sysconfig; print distutils.sysconfig.get_python_lib(prefix='$prefix', plat_specific=True);"` ++ YODA_PYTHONPATH=`$PYTHON -c "from __future__ import print_function; import distutils.sysconfig; print(distutils.sysconfig.get_python_lib(prefix='$prefix', plat_specific=True));"` + + ## Test for Python header + if test -x "$PYTHON"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for Python include path" >&5 + $as_echo_n "checking for Python include path... " >&6; } +- python_incpath=`$PYTHON -c "import distutils.sysconfig; print distutils.sysconfig.get_python_inc();"` ++ python_incpath=`$PYTHON -c "from __future__ import print_function; import distutils.sysconfig; print(distutils.sysconfig.get_python_inc());"` + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $python_incpath" >&5 + $as_echo "$python_incpath" >&6; } + python_header="$python_incpath/Python.h" + --- pyext/setup.py.in.orig 2016-09-30 09:07:58.000000000 +0200 + +++ pyext/setup.py.in 2016-09-30 09:08:17.000000000 +0200 + @@ -34,7 +34,7 @@ + extns = [ext("util"), ext("core", statics=static_files, depends=core_depends)] + + ## Enable building of ROOT extension if ROOT is present + -if os.environ.has_key("BUILD_ROOTCOMPAT"): + +if "BUILD_ROOTCOMPAT" in os.environ: + try: + # import ROOT + # TODO: Need to test for and use root-config in configure diff --git a/var/spack/repos/builtin/packages/yoda/yoda-1.6.2.patch b/var/spack/repos/builtin/packages/yoda/yoda-1.6.2.patch new file mode 100644 index 0000000000..a0eb97d0f3 --- /dev/null +++ b/var/spack/repos/builtin/packages/yoda/yoda-1.6.2.patch @@ -0,0 +1,22 @@ +--- bin/yoda-config.in.orig 2016-07-11 14:43:05.700511377 +0300 ++++ bin/yoda-config.in 2016-07-11 14:43:50.312499322 +0300 +@@ -59,7 +59,7 @@ + + ## "Pre-rolled" build info + tmp=$( echo "$*" | egrep -- '--\<cflags\>|--\<cppflags\>|--\<cxxflags\>') +-test -n "$tmp" && OUT="$OUT -I@includedir@ @BOOST_CPPFLAGS@" ++test -n "$tmp" && OUT="$OUT -I@includedir@" + + tmp=$( echo "$*" | egrep -- '--\<ldflags\>|--\<libs\>|--\<ldadd\>') + test -n "$tmp" && OUT="$OUT -L@libdir@ -lYODA" +--- bin/yoda-config.orig 2016-07-11 14:43:31.960503275 +0300 ++++ bin/yoda-config 2016-07-11 14:43:41.200501112 +0300 +@@ -59,7 +59,7 @@ + + ## "Pre-rolled" build info + tmp=$( echo "$*" | egrep -- '--\<cflags\>|--\<cppflags\>|--\<cxxflags\>') +-test -n "$tmp" && OUT="$OUT -I${prefix}/include @BOOST_CPPFLAGS@" ++test -n "$tmp" && OUT="$OUT -I${prefix}/include" + + tmp=$( echo "$*" | egrep -- '--\<ldflags\>|--\<libs\>|--\<ldadd\>') + test -n "$tmp" && OUT="$OUT -L${exec_prefix}/lib -lYODA" diff --git a/var/spack/repos/builtin/packages/yoda/yoda-1.6.3.patch b/var/spack/repos/builtin/packages/yoda/yoda-1.6.3.patch new file mode 100644 index 0000000000..4d50a3cf2d --- /dev/null +++ b/var/spack/repos/builtin/packages/yoda/yoda-1.6.3.patch @@ -0,0 +1,50 @@ +--- configure.orig 2016-08-09 21:07:54.000000000 +0200 ++++ configure 2016-09-19 11:49:18.560986340 +0200 +@@ -16520,11 +16520,15 @@ + cat >conftest.py <<_ACEOF + + import sys, string ++# Python 2 and 3 compatible ++from future.builtins import map ++# Python 2 and 3: forward-compatible ++from future.builtins import range + # split strings by '.' and convert to numeric. Append some zeros + # because we need at least 4 digits for the hex conversion. +-minver = map(int, string.split('2.5', '.')) + [0, 0, 0] ++minver = list(map(int, '2.5'.split('.'))) + [0, 0, 0] + minverhex = 0 +-for i in xrange(0, 4): minverhex = (minverhex << 8) + minver[i] ++for i in range(0, 4): minverhex = (minverhex << 8) + minver[i] + if sys.hexversion >= minverhex: + sys.exit( 0 ) + else: +@@ -16552,15 +16556,15 @@ + fi + + +- PYTHON_VERSION=`$PYTHON -c "import sys; print '.'.join(map(str, sys.version_info[:2]));"` ++ PYTHON_VERSION=`$PYTHON -c "from __future__ import print_function; import sys; print('.'.join(list(map(str, sys.version_info[:2]))));"` + +- YODA_PYTHONPATH=`$PYTHON -c "import distutils.sysconfig; print distutils.sysconfig.get_python_lib(prefix='$prefix', plat_specific=True);"` ++ YODA_PYTHONPATH=`$PYTHON -c "from __future__ import print_function; import distutils.sysconfig; print(distutils.sysconfig.get_python_lib(prefix='$prefix', plat_specific=True));"` + + ## Test for Python header + if test -x "$PYTHON"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for Python include path" >&5 + $as_echo_n "checking for Python include path... " >&6; } +- python_incpath=`$PYTHON -c "import distutils.sysconfig; print distutils.sysconfig.get_python_inc();"` ++ python_incpath=`$PYTHON -c "from __future__ import print_function; import distutils.sysconfig; print(distutils.sysconfig.get_python_inc());"` + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $python_incpath" >&5 + $as_echo "$python_incpath" >&6; } + python_header="$python_incpath/Python.h" + --- pyext/setup.py.in.orig 2016-09-06 17:25:39.993785138 +0200 + +++ pyext/setup.py.in 2016-09-06 17:26:10.368489432 +0200 + @@ -34,7 +34,7 @@ + extns = [ext("util"), ext("core", statics=static_files, depends=core_depends)] + + ## Enable building of ROOT extension if ROOT is present + -if os.environ.has_key("BUILD_ROOTCOMPAT"): + +if "BUILD_ROOTCOMPAT" in os.environ: + try: + # import ROOT + # TODO: Need to test for and use root-config in configure diff --git a/var/spack/repos/builtin/packages/yoda/yoda-1.6.4.patch b/var/spack/repos/builtin/packages/yoda/yoda-1.6.4.patch new file mode 100644 index 0000000000..44b8ed06bc --- /dev/null +++ b/var/spack/repos/builtin/packages/yoda/yoda-1.6.4.patch @@ -0,0 +1,11 @@ +--- pyext/setup.py.in.orig 2016-09-30 09:13:02.000000000 +0200 ++++ pyext/setup.py.in 2016-09-30 09:13:21.000000000 +0200 +@@ -34,7 +34,7 @@ + extns = [ext("util"), ext("core", statics=static_files, depends=core_depends)] + + ## Enable building of ROOT extension if ROOT is present +-if os.environ.has_key("BUILD_ROOTCOMPAT"): ++if "BUILD_ROOTCOMPAT" in os.environ: + try: + # import ROOT + # TODO: Need to test for and use root-config in configure diff --git a/var/spack/repos/builtin/packages/yoda/yoda-1.6.5.patch b/var/spack/repos/builtin/packages/yoda/yoda-1.6.5.patch new file mode 100644 index 0000000000..ee632655ad --- /dev/null +++ b/var/spack/repos/builtin/packages/yoda/yoda-1.6.5.patch @@ -0,0 +1,23 @@ +--- bin/yoda2aida.orig 2016-10-07 13:25:57.355168158 +0200 ++++ bin/yoda2aida 2016-10-07 13:26:04.779169090 +0200 +@@ -18,7 +18,7 @@ + parser.add_option("-M", "--unmatch", dest="UNMATCH", metavar="PATT", default=None, + help="exclude histograms whose path matches this regex") + +-sys.stderr.write("WARNING: yoda2aida is DEPRECATED.\n It will die when AIDA does... *soon*\n" ++sys.stderr.write("WARNING: yoda2aida is DEPRECATED.\n It will die when AIDA does... *soon*\n") + + opts, args = parser.parse_args() + in_out = parse_x2y_args(args, ".yoda", ".aida") + +--- pyext/setup.py.in.orig 2016-09-30 09:13:02.000000000 +0200 ++++ pyext/setup.py.in 2016-09-30 09:13:21.000000000 +0200 +@@ -34,7 +34,7 @@ + extns = [ext("util"), ext("core", statics=static_files, depends=core_depends)] + + ## Enable building of ROOT extension if ROOT is present +-if os.environ.has_key("BUILD_ROOTCOMPAT"): ++if "BUILD_ROOTCOMPAT" in os.environ: + try: + # import ROOT + # TODO: Need to test for and use root-config in configure diff --git a/var/spack/repos/builtin/packages/yoda/yoda-1.6.6.patch b/var/spack/repos/builtin/packages/yoda/yoda-1.6.6.patch new file mode 100644 index 0000000000..fd400e4d7e --- /dev/null +++ b/var/spack/repos/builtin/packages/yoda/yoda-1.6.6.patch @@ -0,0 +1,11 @@ +--- pyext/setup.py.in.orig 2017-02-01 15:24:41.000000000 +0100 ++++ pyext/setup.py.in 2017-02-01 15:25:04.000000000 +0100 +@@ -34,7 +34,7 @@ + extns = [ext("util"), ext("core", statics=static_files, depends=core_depends)] + + ## Enable building of ROOT extension if ROOT is present +-if os.environ.has_key("BUILD_ROOTCOMPAT"): ++if "BUILD_ROOTCOMPAT" in os.environ: + try: + # import ROOT + # TODO: Need to test for and use root-config in configure diff --git a/var/spack/repos/builtin/packages/yoda/yoda-1.6.7.patch b/var/spack/repos/builtin/packages/yoda/yoda-1.6.7.patch new file mode 100644 index 0000000000..cc45b3e689 --- /dev/null +++ b/var/spack/repos/builtin/packages/yoda/yoda-1.6.7.patch @@ -0,0 +1,11 @@ +--- pyext/setup.py.in.orig 2017-07-17 12:13:12.057895620 +0200 ++++ pyext/setup.py.in 2017-07-17 12:15:11.991048036 +0200 +@@ -34,7 +34,7 @@ + extns = [ext("util"), ext("core", statics=static_files, depends=core_depends)] + + ## Enable building of ROOT extension if ROOT is present +-if os.environ.has_key("BUILD_ROOTCOMPAT"): ++if "BUILD_ROOTCOMPAT" in os.environ: + try: + # import ROOT + # TODO: Need to test for and use root-config in configure diff --git a/var/spack/repos/builtin/packages/yorick/package.py b/var/spack/repos/builtin/packages/yorick/package.py index 35d6e617a6..eb3e2a3698 100644 --- a/var/spack/repos/builtin/packages/yorick/package.py +++ b/var/spack/repos/builtin/packages/yorick/package.py @@ -4,7 +4,6 @@ # SPDX-License-Identifier: (Apache-2.0 OR MIT) from spack import * -import os class Yorick(Package): @@ -35,9 +34,12 @@ class Yorick(Package): url = "https://github.com/dhmunro/yorick/archive/y_{0}.tar.gz" return url.format(version.underscored) - def install(self, spec, prefix): - os.environ['FORTRAN_LINKAGE'] = '-Df_linkage' + def setup_build_environment(self, env): + env.set('FORTRAN_LINKAGE', '-Df_linkage') + if self.spec.satisfies('arch=aarch64:'): + env.set('FPU_IGNORE', '1') + def install(self, spec, prefix): make("config") filter_file(r'^CC.+', diff --git a/var/spack/repos/builtin/packages/zipkin/package.py b/var/spack/repos/builtin/packages/zipkin/package.py new file mode 100644 index 0000000000..841c89a1d2 --- /dev/null +++ b/var/spack/repos/builtin/packages/zipkin/package.py @@ -0,0 +1,28 @@ +# 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 Zipkin(Package): + """Zipkin is a distributed tracing system. It helps gather timing + data needed to troubleshoot latency problems in service + architectures. Features include both the collection and lookup + of this data.""" + + homepage = "https://zipkin.io/" + url = "https://github.com/openzipkin/zipkin/archive/2.21.5.tar.gz" + + version('2.21.5', sha256='e643a810f82f9ea50e2cb6847694c7645507d3deae77685a3a1bb841e0f885a2') + version('2.21.4', sha256='ee7b0110b3852479c925b6429ff278aa38b1d5da27f4762891b1f863e67bdad5') + version('2.21.3', sha256='02526e2ba4de85938b510cb2db01865ec46cdad53157862c39fa5e9b6cbd15b6') + + depends_on('maven', type='build') + depends_on('java', type=('build', 'run')) + + def install(self, spec, prefix): + mvn = which('mvn') + mvn('package', '-DskipTests') + install_tree('.', prefix) diff --git a/var/spack/repos/builtin/packages/zlib/package.py b/var/spack/repos/builtin/packages/zlib/package.py index 4967bc0dbb..0d30f2d67c 100644 --- a/var/spack/repos/builtin/packages/zlib/package.py +++ b/var/spack/repos/builtin/packages/zlib/package.py @@ -3,14 +3,13 @@ # # SPDX-License-Identifier: (Apache-2.0 OR MIT) -from spack import * - # Although zlib comes with a configure script, it does not use Autotools # The AutotoolsPackage causes zlib to fail to build with PGI class Zlib(Package): """A free, general-purpose, legally unencumbered lossless - data-compression library.""" + data-compression library. + """ homepage = "http://zlib.net" # URL must remain http:// so Spack can bootstrap curl diff --git a/var/spack/repos/builtin/packages/zsh/package.py b/var/spack/repos/builtin/packages/zsh/package.py index 60bb3cd3e7..1288eddbad 100644 --- a/var/spack/repos/builtin/packages/zsh/package.py +++ b/var/spack/repos/builtin/packages/zsh/package.py @@ -13,11 +13,14 @@ class Zsh(AutotoolsPackage): """ homepage = "http://www.zsh.org" - url = "http://downloads.sourceforge.net/project/zsh/zsh/5.4.2/zsh-5.4.2.tar.gz" - - version('5.4.2', sha256='957bcdb2c57f64c02f673693ea5a7518ef24b6557aeb3a4ce222cefa6d74acc9') - version('5.3.1', sha256='3d94a590ff3c562ecf387da78ac356d6bea79b050a9ef81e3ecb9f8ee513040e') - version('5.1.1', sha256='94ed5b412023761bc8d2f03c173f13d625e06e5d6f0dff2c7a6e140c3fa55087') + url = "http://downloads.sourceforge.net/project/zsh/zsh/5.4.2/zsh-5.4.2.tar.xz" + + version('5.8', sha256='dcc4b54cc5565670a65581760261c163d720991f0d06486da61f8d839b52de27') + version('5.7.1', sha256='7260292c2c1d483b2d50febfa5055176bd512b32a8833b116177bf5f01e77ee8') + version('5.6.2', sha256='a50bd66c0557e8eca3b8fa24e85d0de533e775d7a22df042da90488623752e9e') + version('5.4.2', sha256='a80b187b6b770f092ea1f53e89021d06c03d8bbe6a5e996bcca3267de14c5e52') + version('5.3.1', sha256='fc886cb2ade032d006da8322c09a7e92b2309177811428b121192d44832920da') + version('5.1.1', sha256='74e9453b5470b3c0970f9f93cfd603d241c3d7b1968adc0e4b3951073e8d3dec') # Testing for terminal related things causes failures in e.g. Jenkins. # See e.g. https://www.zsh.org/mla/users/2003/msg00845.html, |