diff options
Diffstat (limited to 'var')
300 files changed, 6803 insertions, 816 deletions
diff --git a/var/spack/repos/builtin.mock/packages/cmake-client/package.py b/var/spack/repos/builtin.mock/packages/cmake-client/package.py index 286ee08086..2350259b22 100644 --- a/var/spack/repos/builtin.mock/packages/cmake-client/package.py +++ b/var/spack/repos/builtin.mock/packages/cmake-client/package.py @@ -21,6 +21,14 @@ class CmakeClient(CMakePackage): version('1.0', '4cb3ff35b2472aae70f542116d616e63') + variant( + 'multi', description='', + values=any_combination_of('up', 'right', 'back').with_default('up') + ) + variant('single', description='', default='blue', + values=('blue', 'red', 'green'), multi=False) + variant('truthy', description='', default=True) + callback_counter = 0 flipped = False diff --git a/var/spack/repos/builtin.mock/packages/fetch-options/package.py b/var/spack/repos/builtin.mock/packages/fetch-options/package.py new file mode 100644 index 0000000000..1a31a535e1 --- /dev/null +++ b/var/spack/repos/builtin.mock/packages/fetch-options/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 FetchOptions(Package): + """Mock package with fetch_options.""" + + homepage = "http://www.fetch-options-example.com" + + url = 'https://example.com/some/tarball-1.0.tar.gz' + + fetch_options = {'timeout': 42, 'cookie': 'foobar'} + timeout = {'timeout': 65} + cookie = {'cookie': 'baz'} + + version('1.2', 'abc12', fetch_options=cookie) + version('1.1', 'abc11', fetch_options=timeout) + version('1.0', 'abc10') diff --git a/var/spack/repos/builtin.mock/packages/trivial-pkg-with-valid-hash/package.py b/var/spack/repos/builtin.mock/packages/trivial-pkg-with-valid-hash/package.py new file mode 100644 index 0000000000..52fd3d99a6 --- /dev/null +++ b/var/spack/repos/builtin.mock/packages/trivial-pkg-with-valid-hash/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 TrivialPkgWithValidHash(Package): + url = "http://www.unit-test-should-replace-this-url/trivial_install-1.0" + + version('1.0', '6ae8a75555209fd6c44157c0aed8016e763ff435a19cf186f76863140143ff72', expand=False) + + hashed_content = "test content" + + def install(self, spec, prefix): + pass diff --git a/var/spack/repos/builtin/packages/acl/package.py b/var/spack/repos/builtin/packages/acl/package.py new file mode 100644 index 0000000000..ea9bf4172f --- /dev/null +++ b/var/spack/repos/builtin/packages/acl/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 Acl(AutotoolsPackage): + """Commands for Manipulating POSIX Access Control Lists.""" + + homepage = "https://savannah.nongnu.org/projects/acl" + url = "http://git.savannah.nongnu.org/cgit/acl.git/snapshot/acl-2.2.53.tar.gz" + + version('2.2.53', sha256='9e905397ac10d06768c63edd0579c34b8431555f2ea8e8f2cee337b31f856805') + version('2.2.52', sha256='f3f31d2229c903184ff877aa0ee658b87ec20fec8aebb51e65eaa68d7b24e629') + version('2.2.51', sha256='31a43d96a274a39bfcb805fb903d45840515344884d224cef166b482693a9f48') + version('2.2.50', sha256='39e21d623a9f0da8c042cde346c01871b498d51400e92c2ab1490d5ffd724401') + version('2.2.49', sha256='c6e01460cac4e47673dd60a7f57b970b49f6998bb564eff141cca129aa8940d1') + version('2.2.48', sha256='877eaeccc1500baec58391935b46ac7dfc5ffd8c54fbc0385ccd8b2b18ac3fa6') + + depends_on('m4', type='build') + depends_on('autoconf', type='build') + depends_on('automake', type='build') + depends_on('libtool', type='build') + depends_on('attr') + + def autoreconf(self, spec, prefix): + bash = which('bash') + bash('./autogen.sh') diff --git a/var/spack/repos/builtin/packages/acts-core/package.py b/var/spack/repos/builtin/packages/acts-core/package.py index 1cd9fe6375..421a931604 100644 --- a/var/spack/repos/builtin/packages/acts-core/package.py +++ b/var/spack/repos/builtin/packages/acts-core/package.py @@ -34,6 +34,8 @@ class ActsCore(CMakePackage): maintainers = ['HadrienG2'] version('develop', branch='master') + version('0.18.0', commit='d58a68cf75b52a5e0f563bc237f09250aa9da80c') + version('0.17.0', commit='0789f654ff484b013fd27e5023cf342785ea8d97') version('0.16.0', commit='b3d965fe0b8ae335909d79114ef261c6b996773a') version('0.15.0', commit='267c28f69c561e64369661a6235b03b5a610d6da') version('0.14.0', commit='38d678fcb205b77d60326eae913fbb1b054acea1') @@ -75,7 +77,8 @@ class ActsCore(CMakePackage): depends_on('cmake @3.11:', type='build') depends_on('boost @1.62:1.69.99 +program_options +test', when='@:0.10.3') - depends_on('boost @1.62: +program_options +test', when='@0.10.4:') + depends_on('boost @1.62: +program_options +test', when='@0.10.4:0.18.0') + depends_on('boost @1.69: +program_options +test', when='@0.19.0:') depends_on('eigen @3.2.9:', type='build') depends_on('nlohmann-json @3.2.0:', when='@0.14.0: +json') depends_on('root @6.10: cxxstd=14', when='+tgeo @:0.8.0') diff --git a/var/spack/repos/builtin/packages/adios2/package.py b/var/spack/repos/builtin/packages/adios2/package.py index c9e32faec5..9d298b4213 100644 --- a/var/spack/repos/builtin/packages/adios2/package.py +++ b/var/spack/repos/builtin/packages/adios2/package.py @@ -16,7 +16,7 @@ class Adios2(CMakePackage): maintainers = ['ax3l', 'chuckatkins', 'williamfgc'] - version('develop', branch='master') + version('master', branch='master') version('2.5.0', sha256='7c8ff3bf5441dd662806df9650c56a669359cb0185ea232ecb3578de7b065329') version('2.4.0', sha256='50ecea04b1e41c88835b4b3fd4e7bf0a0a2a3129855c9cc4ba6cf6a1575106e2') version('2.3.1', sha256='3bf81ccc20a7f2715935349336a76ba4c8402355e1dc3848fcd6f4c3c5931893') @@ -100,8 +100,12 @@ class Adios2(CMakePackage): extends('python', when='+python') depends_on('python@2.7:2.8,3.5:', - when='@:2.4.0 +python', type=('build', 'run')) - depends_on('python@3.5:', when='@2.5.0: +python', type=('build', 'run')) + when='@:2.4.0 +python', + type=('build', 'run')) + depends_on('python@3.5:', when='@2.5.0: +python', + type=('build', 'run')) + depends_on('python@2.7:2.8,3.5:', when='@:2.4.0', type='test') + depends_on('python@3.5:', when='@2.5.0:', type='test') depends_on('py-numpy@1.6.1:', type=('build', 'run'), when='+python') depends_on('py-mpi4py@2.0.0:', type=('build', 'run'), when='+mpi +python') @@ -141,9 +145,11 @@ class Adios2(CMakePackage): 'ON' if '+fortran' in spec else 'OFF'), '-DADIOS2_USE_Endian_Reverse={0}'.format( 'ON' if '+endian_reverse' in spec else 'OFF'), + '-DBUILD_TESTING:BOOL={0}'.format( + 'ON' if self.run_tests else 'OFF'), ] - if self.spec.version >= Version('2.4.0'): + if spec.version >= Version('2.4.0'): args.append('-DADIOS2_USE_Blosc={0}'.format( 'ON' if '+blosc' in spec else 'OFF')) args.append('-DADIOS2_USE_BZip2={0}'.format( @@ -153,7 +159,7 @@ class Adios2(CMakePackage): args.append('-DADIOS2_USE_SSC={0}'.format( 'ON' if '+ssc' in spec else 'OFF')) - if self.spec.version >= Version('2.5.0'): + if spec.version >= Version('2.5.0'): args.append('-DADIOS2_USE_DataSpaces={0}'.format( 'ON' if '+dataspaces' in spec else 'OFF')) @@ -173,8 +179,8 @@ class Adios2(CMakePackage): args.append('-DCMAKE_POSITION_INDEPENDENT_CODE:BOOL={0}'.format( 'ON' if '+pic' in spec else 'OFF')) - if spec.satisfies('+python'): + if spec.satisfies('+python') or self.run_tests: args.append('-DPYTHON_EXECUTABLE:FILEPATH=%s' - % self.spec['python'].command.path) + % spec['python'].command.path) return args diff --git a/var/spack/repos/builtin/packages/adol-c/package.py b/var/spack/repos/builtin/packages/adol-c/package.py index 336f1833db..741b57773b 100644 --- a/var/spack/repos/builtin/packages/adol-c/package.py +++ b/var/spack/repos/builtin/packages/adol-c/package.py @@ -12,14 +12,19 @@ class AdolC(AutotoolsPackage): overloading.""" homepage = "https://projects.coin-or.org/ADOL-C" - url = "http://www.coin-or.org/download/source/ADOL-C/ADOL-C-2.6.1.tgz" - git = "https://gitlab.com/adol-c/adol-c.git" - - version('develop', branch='master') - version('2.6.3', sha256='6ed74580695a0d2c960581e5430ebfcd380eb5da9337daf488bf2e89039e9c21') - version('2.6.2', sha256='f6326e7ba994d02074816132d4461915221069267c31862b31fab7020965c658') - version('2.6.1', sha256='037089e0f64224e5e6255b61af4fe7faac080533fd778b76fe946e52491918b5') - version('2.5.2', sha256='2fa514d9799989d6379738c2bcf75070d9834e4d227eb32a5b278840893b2af9') + url = "https://github.com/coin-or/ADOL-C/archive/releases/2.7.2.tar.gz" + git = "https://github.com/coin-or/ADOL-C.git" + version('master', branch='master') + version('2.7.2', sha256='701e0856baae91b98397960d5e0a87a549988de9d4002d0e9a56fa08f5455f6e') + version('2.7.1', sha256='a05422cc7faff5700e134e113822d1934fb540ad247e63778524d5d6d75bb0ef') + version('2.7.0', sha256='a75cfa6240de8692b2a3e8e782319efefc316f1e595234fcee972ab0e7afa3cd') + version('2.6.3', sha256='9750a0a06dcab9a0dba2010f07872ea9057ed29781e9e7d571691c27aa559b04') + version('2.6.2', sha256='4ef6ff15b4691235c0ea6580917c7eb17d09ded485ac524a0a33ac7e99ab004b') + version('2.6.1', sha256='48b41c40d1c8437fb98eeed4b24deaf3e59da804f34ac9c848da1b049b3b071a') + version('2.6.0', sha256='26a1fcb8561f15781f645d245fc345c83497147ec7bb64d4bfc96e32c34c6c1c') + version('2.5.2', sha256='390edb1513f749b2dbf6fb90db12ce786f6532af80e589f161ff43646b3a78a6') + version('2.5.1', sha256='dedb93c3bb291366d799014b04b6d1ec63ca4e7216edf16167776c07961e3b4a') + version('2.5.0', sha256='9d51c426d831884aac8f418be410c001eb62f3a11cb8f30c66af0b842edffb96') variant('advanced_branching', default=False, description='Enable advanced branching to reduce retaping') diff --git a/var/spack/repos/builtin/packages/agrep/package.py b/var/spack/repos/builtin/packages/agrep/package.py new file mode 100644 index 0000000000..dce047ad05 --- /dev/null +++ b/var/spack/repos/builtin/packages/agrep/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 Agrep(MakefilePackage): + """AGREP - an approximate GREP. + Fast searching files for a string or regular expression, + with approximate matching capabilities and user-definable records. + Developed 1989-1991 by Udi Manber, Sun Wu et al. at the University + of Arizona.""" + + homepage = "http://www.tgries.de/agrep" + url = "https://www.tgries.de/agrep/agrep-3.41.tgz" + + version('3.41', sha256='0508eafaf9725fc67cc955eb6d32ba4f50138443a4fea4275508d2c3f67a234e') + + def install(self, spec, prefix): + mkdirp(prefix.bin) + install('agrep', prefix.bin) diff --git a/var/spack/repos/builtin/packages/amdblis/package.py b/var/spack/repos/builtin/packages/amdblis/package.py index 5b216bebd7..706e7f6bd2 100644 --- a/var/spack/repos/builtin/packages/amdblis/package.py +++ b/var/spack/repos/builtin/packages/amdblis/package.py @@ -15,6 +15,7 @@ class Amdblis(BlisBase): computationally intensive operations. """ + _name = 'amdblis' homepage = "https://developer.amd.com/amd-aocl/blas-library/" url = "https://github.com/amd/blis/archive/2.1.tar.gz" git = "https://github.com/amd/blis.git" diff --git a/var/spack/repos/builtin/packages/amrex/package.py b/var/spack/repos/builtin/packages/amrex/package.py index 8d0b15ead6..aaf28a9d60 100644 --- a/var/spack/repos/builtin/packages/amrex/package.py +++ b/var/spack/repos/builtin/packages/amrex/package.py @@ -18,6 +18,7 @@ class Amrex(CMakePackage): maintainers = ['mic84', 'asalmgren'] version('develop', branch='development') + version('20.03', sha256='a535dcc016f0d38b55d0ab8e9067c1c53e3686961f6a1fb471cb18a0ebc909e6') version('20.02', sha256='33529a23694283d12eb37d4682aa86c9cc1240bd50124efcf4464747a7554147') version('20.01', sha256='f7026d267ca5de79ec7e740264d54230f419776d40feae705e939be0b1d8e0d3') version('19.10', commit='52844b32b7da11e9733b9a7f4a782e51de7f5e1e') # tag:19.10 diff --git a/var/spack/repos/builtin/packages/anaconda3/package.py b/var/spack/repos/builtin/packages/anaconda3/package.py new file mode 100644 index 0000000000..2925b0a458 --- /dev/null +++ b/var/spack/repos/builtin/packages/anaconda3/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 * +from os.path import split + + +class Anaconda3(Package): + """ + Anaconda is a free and open-source distribution of the Python and R + programming languages for scientific computing, that aims to simplify + package management and deployment. Package versions are managed by + the package management system conda. + """ + homepage = "https://www.anaconda.com" + url = "https://repo.anaconda.com/archive/Anaconda3-2019.10-Linux-x86_64.sh" + + maintainers = ['ajkotobi'] + + version('2019.10', sha256='46d762284d252e51cd58a8ca6c8adc9da2eadc82c342927b2f66ed011d1d8b53', expand=False) + version('2019.07', sha256='69581cf739365ec7fb95608eef694ba959d7d33b36eb961953f2b82cb25bdf5a', expand=False) + version('2019.03', sha256='45c851b7497cc14d5ca060064394569f724b67d9b5f98a926ed49b834a6bb73a', expand=False) + version('2018.12', sha256='1019d0857e5865f8a6861eaf15bfe535b87e92b72ce4f531000dc672be7fce00', expand=False) + version('5.3.1', sha256='d4c4256a8f46173b675dd6a62d12f566ed3487f932bab6bb7058f06c124bcc27', expand=False) + version('5.3.0', sha256='cfbf5fe70dd1b797ec677e63c61f8efc92dad930fd1c94d60390bb07fdc09959', expand=False) + version('5.2.0', sha256='09f53738b0cd3bb96f5b1bac488e5528df9906be2480fe61df40e0e0d19e3d48', expand=False) + version('5.1.0', sha256='7e6785caad25e33930bc03fac4994a434a21bc8401817b7efa28f53619fa9c29', expand=False) + version('5.0.1', sha256='55e4db1919f49c92d5abbf27a4be5986ae157f074bf9f8238963cd4582a4068a', expand=False) + version('5.0.0.1', sha256='092c92427f44687d789a41922ce8426fbdc3c529cc9d6d4ee6de5b62954b93b2', expand=False) + version('5.0.0', sha256='67f5c20232a3e493ea3f19a8e273e0618ab678fa14b03b59b1783613062143e9', expand=False) + version('4.4.0', sha256='3301b37e402f3ff3df216fe0458f1e6a4ccbb7e67b4d626eae9651de5ea3ab63', expand=False) + version('4.3.1', sha256='4447b93d2c779201e5fb50cfc45de0ec96c3804e7ad0fe201ab6b99f73e90302', expand=False) + version('4.3.0', sha256='e9169c3a5029aa820393ac92704eb9ee0701778a085ca7bdc3c57b388ac1beb6', expand=False) + version('4.2.0', sha256='73b51715a12b6382dd4df3dd1905b531bd6792d4aa7273b2377a0436d45f0e78', expand=False) + version('4.1.1', sha256='4f5c95feb0e7efeadd3d348dcef117d7787c799f24b0429e45017008f3534e55', expand=False) + version('4.1.0', sha256='11d32cf4026603d3b327dc4299863be6b815905ff51a80329085e1bb9f96c8bd', expand=False) + version('4.0.0', sha256='36a558a1109868661a5735f5f32607643f6dc05cf581fefb1c10fb8abbe22f39', expand=False) + version('2.5.0', sha256='addadcb927f15cb0b5b6e36890563d3352a8ff6a901ea753d389047d274a29a9', expand=False) + version('2.4.1', sha256='0735e69199fc37135930ea2fd4fb6ad0adef215a2a7ba9fd6b0a0a4daaadb1cf', expand=False) + version('2.4.0', sha256='fb4e480059e991f2fa632b5a9bcdd284c7f0677814cd719c11d524453f96a40d', expand=False) + version('2.3.0', sha256='3be5410b2d9db45882c7de07c554cf4f1034becc274ec9074b23fd37a5c87a6f', expand=False) + version('2.2.0', sha256='4aac68743e7706adb93f042f970373a6e7e087dbf4b02ac467c94ca4ce33d2d1', expand=False) + version('2.1.0', sha256='af3225ccbe8df0ffb918939e009aa57740e35058ebf9dfcf5fec794a77556c3c', expand=False) + version('2.0.1', sha256='3c3b834793e461f3316ad1d9a9178c67859a9d74aaf7bcade076f04134dd1e26', expand=False) + version('2.0.0', sha256='57ce4f97e300cf94c5724f72d992e9eecef708fdaa13bc672ae9779773056540', expand=False) + + def install(self, spec, prefix): + + dir, anaconda_script = split(self.stage.archive_file) + bash = which('bash') + bash(anaconda_script, '-b', '-f', '-p', self.prefix) diff --git a/var/spack/repos/builtin/packages/arpack-ng/package.py b/var/spack/repos/builtin/packages/arpack-ng/package.py index 468a8947c2..35a263541f 100644 --- a/var/spack/repos/builtin/packages/arpack-ng/package.py +++ b/var/spack/repos/builtin/packages/arpack-ng/package.py @@ -108,7 +108,11 @@ class ArpackNg(Package): if '+mpi' in spec: options.append('-DMPI=ON') - # TODO: -DINTERFACE64=ON + # If 64-bit BLAS is used: + if (spec.satisfies('^openblas+ilp64') or + spec.satisfies('^intel-mkl+ilp64') or + spec.satisfies('^intel-parallel-studio+mkl+ilp64')): + options.append('-DINTERFACE64=1') if '+shared' in spec: options.append('-DBUILD_SHARED_LIBS=ON') diff --git a/var/spack/repos/builtin/packages/attr/package.py b/var/spack/repos/builtin/packages/attr/package.py index a58dc75f4d..549909d209 100644 --- a/var/spack/repos/builtin/packages/attr/package.py +++ b/var/spack/repos/builtin/packages/attr/package.py @@ -12,9 +12,17 @@ class Attr(AutotoolsPackage): homepage = "https://savannah.nongnu.org/projects/attr" url = "http://download.savannah.gnu.org/releases/attr/attr-2.4.47.src.tar.gz" + version('2.4.48', sha256='5ead72b358ec709ed00bbf7a9eaef1654baad937c001c044fe8b74c57f5324e7') version('2.4.47', sha256='25772f653ac5b2e3ceeb89df50e4688891e21f723c460636548971652af0a859') version('2.4.46', sha256='dcd69bdca7ff166bc45141eddbcf21967999a6b66b0544be12a1cc2fd6340e1f') + def url_for_version(self, version): + if version >= Version('2.4.48'): + url = 'http://download.savannah.gnu.org/releases/attr/attr-{0}.tar.gz' + else: + url = 'http://download.savannah.gnu.org/releases/attr/attr-{0}.src.tar.gz' + return url.format(version) + def configure_args(self): args = [] args.append('--disable-static') @@ -22,5 +30,7 @@ class Attr(AutotoolsPackage): # Ref. http://www.linuxfromscratch.org/blfs/view/7.5/postlfs/attr.html def install(self, spec, prefix): - make() - make('install', 'install-dev', 'install-lib') + if self.version >= Version('2.4.48'): + make('install') + else: + make('install', 'install-dev', 'install-lib') diff --git a/var/spack/repos/builtin/packages/aws-parallelcluster/package.py b/var/spack/repos/builtin/packages/aws-parallelcluster/package.py index 9a0bb4a9cc..195341683d 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.5.1.tar.gz" + url = "https://pypi.io/packages/source/a/aws-parallelcluster/aws-parallelcluster-2.6.0.tar.gz" maintainers = [ 'sean-smith', 'demartinofra', 'enrico-usai', 'lukeseawalker', 'rexcsn', @@ -23,6 +23,7 @@ class AwsParallelcluster(PythonPackage): 'pcluster.config', 'pcluster.networking' ] + version('2.6.0', sha256='aaed6962cf5027206834ac24b3d312da91e0f96ae8607f555e12cb124b869f0c') version('2.5.1', sha256='4fd6e14583f8cf81f9e4aa1d6188e3708d3d14e6ae252de0a94caaf58be76303') version('2.5.0', sha256='3b0209342ea0d9d8cc95505456103ad87c2d4e35771aa838765918194efd0ad3') diff --git a/var/spack/repos/builtin/packages/axl/package.py b/var/spack/repos/builtin/packages/axl/package.py index 1725a2751c..73eb5acdcd 100644 --- a/var/spack/repos/builtin/packages/axl/package.py +++ b/var/spack/repos/builtin/packages/axl/package.py @@ -19,13 +19,15 @@ def async_api_validator(pkg_name, variant_name, values): class Axl(CMakePackage): """Asynchronous transfer library""" - homepage = "https://github.com/ECP-VeloC/AXL" - url = "https://github.com/ECP-VeloC/AXL/archive/v0.1.1.zip" + homepage = "https://github.com/ecp-veloc/AXL" + url = "https://github.com/ecp-veloc/AXL/archive/v0.1.1.zip" git = "https://github.com/ecp-veloc/axl.git" tags = ['ecp'] version('master', branch='master') + version('0.3.0', sha256='3f5efff87be700a5792a0ee9a7aeae45c640e2936623b024e8bc1056f7952a46') + version('0.2.0', sha256='a0babe3576da30919f89df2f83c76bd01d06345919f2e54d4dddcd6f73faedcc') version('0.1.1', sha256='ebbf231bb542a6c91efb79fce05d4c8a346d5506d88ae1899fb670be52e81933') variant('async_api', default='daemon', diff --git a/var/spack/repos/builtin/packages/bat/package.py b/var/spack/repos/builtin/packages/bat/package.py new file mode 100644 index 0000000000..50c3b5349a --- /dev/null +++ b/var/spack/repos/builtin/packages/bat/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 Bat(Package): + """A cat(1) clone with wings.""" + + homepage = "https://github.com/sharkdp/bat" + url = "https://github.com/sharkdp/bat/archive/v0.10.0.tar.gz" + + version('0.12.1', sha256='1dd184ddc9e5228ba94d19afc0b8b440bfc1819fef8133fe331e2c0ec9e3f8e2') + + depends_on('rust') + + def install(self, spec, prefix): + cargo = which('cargo') + cargo('install', '--root', prefix, '--path', '.') + + # cargo seems to need these to be set so that when it's building + # onig_sys it can run llvm-config and link against libclang. + def setup_build_environment(self, env): + env.append_flags('LLVM_CONFIG_PATH', + join_path(self.spec['llvm'].prefix.libexec.llvm, + 'llvm-config')) + env.append_flags('LIBCLANG_PATH', self.spec['llvm'].prefix.lib) diff --git a/var/spack/repos/builtin/packages/batctl/package.py b/var/spack/repos/builtin/packages/batctl/package.py new file mode 100644 index 0000000000..45bd5ecd73 --- /dev/null +++ b/var/spack/repos/builtin/packages/batctl/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 Batctl(MakefilePackage): + """B.A.T.M.A.N. advanced control and management tool""" + + homepage = "https://github.com/open-mesh-mirror/batctl" + url = "https://github.com/open-mesh-mirror/batctl/archive/v2019.5.tar.gz" + + version('2019.5', sha256='ffe5857a33068ec174140c154610d76d833524d840a2fc2d1a15e16686213cad') + version('2019.4', sha256='a3564eb9727335352dc0cfa2f2b29474c2c837384689ac5fcb387784a56e7685') + version('2019.3', sha256='2bd93fa14925a8dc63a67e64266c8ccd2fa3ac44b10253d93e6f8a630350070c') + version('2019.2', sha256='fb656208ff7d4cd8b1b422f60c9e6d8747302a347cbf6c199d7afa9b80f80ea3') + + depends_on('libnl') + + def install(self, spec, prefix): + mkdirp(prefix.bin) + install('batctl', prefix.bin) diff --git a/var/spack/repos/builtin/packages/bazel/package.py b/var/spack/repos/builtin/packages/bazel/package.py index 655c915178..26d79616dd 100644 --- a/var/spack/repos/builtin/packages/bazel/package.py +++ b/var/spack/repos/builtin/packages/bazel/package.py @@ -92,6 +92,7 @@ class Bazel(Package): # https://docs.bazel.build/versions/master/install-compile-source.html#bootstrap-unix-prereq depends_on('jdk@1.8.0:1.8.999', type=('build', 'run')) depends_on('python', type=('build', 'run')) + depends_on('zip', type=('build', 'run')) # Pass Spack environment variables to the build patch('bazelruleclassprovider-0.25.patch', when='@0.25:') diff --git a/var/spack/repos/builtin/packages/bcache/func_crc64.patch b/var/spack/repos/builtin/packages/bcache/func_crc64.patch new file mode 100644 index 0000000000..7acc312139 --- /dev/null +++ b/var/spack/repos/builtin/packages/bcache/func_crc64.patch @@ -0,0 +1,13 @@ +diff --git a/bcache.c b/bcache.c +index 8f37445..8b4b986 100644 +--- a/bcache.c ++++ b/bcache.c +@@ -115,7 +115,7 @@ static const uint64_t crc_table[256] = { + 0x9AFCE626CE85B507ULL + }; + +-inline uint64_t crc64(const void *_data, size_t len) ++uint64_t crc64(const void *_data, size_t len) + { + uint64_t crc = 0xFFFFFFFFFFFFFFFFULL; + const unsigned char *data = _data; diff --git a/var/spack/repos/builtin/packages/bcache/package.py b/var/spack/repos/builtin/packages/bcache/package.py new file mode 100644 index 0000000000..63c42de333 --- /dev/null +++ b/var/spack/repos/builtin/packages/bcache/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 Bcache(MakefilePackage): + """Bcache is a patch for the Linux kernel to use SSDs to cache other block + devices.""" + + homepage = "http://bcache.evilpiepirate.org" + url = "https://github.com/g2p/bcache-tools/archive/v1.0.8.tar.gz" + + version('1.0.8', sha256='d56923936f37287efc57a46315679102ef2c86cd0be5874590320acd48c1201c') + version('1.0.7', sha256='64d76d1085afba8c3d5037beb67bf9d69ee163f357016e267bf328c0b1807abd') + version('1.0.6', sha256='9677c6da3ceac4e1799d560617c4d00ea7e9d26031928f8f94b8ab327496d4e0') + version('1.0.5', sha256='1449294ef545b3dc6f715f7b063bc2c8656984ad73bcd81a0dc048cbba416ea9') + version('1.0.4', sha256='102ffc3a8389180f4b491188c3520f8a4b1a84e5a7ca26d2bd6de1821f4d913d') + + depends_on('libuuid') + depends_on('util-linux') + depends_on('gettext') + + def setup_build_environment(self, env): + env.append_flags('LDFLAGS', '-lintl') + + patch('func_crc64.patch', sha256='558b35cadab4f410ce8f87f0766424a429ca0611aa2fd247326ad10da115737d') + + def install(self, spec, prefix): + mkdirp(prefix.bin) + install('bcache-register', prefix.bin) + install('bcache-super-show', prefix.bin) + install('make-bcache', prefix.bin) + install('probe-bcache', prefix.bin) diff --git a/var/spack/repos/builtin/packages/binutils/package.py b/var/spack/repos/builtin/packages/binutils/package.py index d84dd32bc5..4a647e7e88 100644 --- a/var/spack/repos/builtin/packages/binutils/package.py +++ b/var/spack/repos/builtin/packages/binutils/package.py @@ -14,6 +14,7 @@ class Binutils(AutotoolsPackage, GNUMirrorPackage): homepage = "http://www.gnu.org/software/binutils/" gnu_mirror_path = "binutils/binutils-2.28.tar.bz2" + version('2.34', sha256='89f010078b6cf69c23c27897d686055ab89b198dddf819efb0a4f2c38a0b36e6') version('2.33.1', sha256='0cb4843da15a65a953907c96bad658283f3c4419d6bcc56bf2789db16306adb2') version('2.32', sha256='de38b15c902eb2725eac6af21183a5f34ea4634cb0bcef19612b50e5ed31072d') version('2.31.1', sha256='ffcc382695bf947da6135e7436b8ed52d991cf270db897190f19d6f9838564d0') @@ -46,6 +47,10 @@ class Binutils(AutotoolsPackage, GNUMirrorPackage): depends_on('m4', type='build', when='@:2.29.99 +gold') depends_on('bison', type='build', when='@:2.29.99 +gold') + # 2.34 needs makeinfo due to a bug, see: + # https://sourceware.org/bugzilla/show_bug.cgi?id=25491 + depends_on('texinfo', type='build', when='@2.34') + conflicts('+gold', when='platform=darwin', msg="Binutils cannot build linkers on macOS") diff --git a/var/spack/repos/builtin/packages/blis/package.py b/var/spack/repos/builtin/packages/blis/package.py index ea7ca8ff42..c2fc1545a3 100644 --- a/var/spack/repos/builtin/packages/blis/package.py +++ b/var/spack/repos/builtin/packages/blis/package.py @@ -102,6 +102,10 @@ class BlisBase(Package): if self.spec.satisfies('platform=darwin'): fix_darwin_install_name(self.prefix.lib) + @property + def libs(self): + return find_libraries(['libblis'], root=self.prefix, recursive=True) + class Blis(BlisBase): """BLIS is a portable software framework for instantiating high-performance diff --git a/var/spack/repos/builtin/packages/bmi/package.py b/var/spack/repos/builtin/packages/bmi/package.py index dfdacf5a49..c2862ed3ee 100644 --- a/var/spack/repos/builtin/packages/bmi/package.py +++ b/var/spack/repos/builtin/packages/bmi/package.py @@ -12,6 +12,8 @@ class Bmi(AutotoolsPackage): homepage = 'https://xgitlab.cels.anl.gov/sds/bmi' git = 'https://xgitlab.cels.anl.gov/sds/bmi.git' + maintainers = ['carns'] + version('develop', branch='master') depends_on('autoconf', type='build') diff --git a/var/spack/repos/builtin/packages/boost/package.py b/var/spack/repos/builtin/packages/boost/package.py index 452ae99b8a..41be592a52 100644 --- a/var/spack/repos/builtin/packages/boost/package.py +++ b/var/spack/repos/builtin/packages/boost/package.py @@ -96,8 +96,12 @@ class Boost(Package): # mpi/python are not installed by default because they pull in many # dependencies and/or because there is a great deal of customization # possible (and it would be difficult to choose sensible defaults) + # + # Boost.Container can be both header-only and compiled. '+container' + # indicates the compiled version which requires Extended Allocator + # support. The header-only library is installed when no variant is given. default_noinstall_libs\ - = set(['context', 'coroutine', 'fiber', 'mpi', 'python']) + = set(['container', 'context', 'coroutine', 'fiber', 'mpi', 'python']) all_libs = default_install_libs | default_noinstall_libs @@ -174,6 +178,9 @@ class Boost(Package): conflicts('+taggedlayout', when='+versionedlayout') conflicts('+numpy', when='~python') + # Container's Extended Allocators were not added until 1.56.0 + conflicts('+container', when='@:1.55.99') + # Patch fix from https://svn.boost.org/trac/boost/ticket/11856 patch('boost_11856.patch', when='@1.60.0%gcc@4.4.7') diff --git a/var/spack/repos/builtin/packages/bowtie2/package.py b/var/spack/repos/builtin/packages/bowtie2/package.py index 9989f37c02..8100b9dfed 100644 --- a/var/spack/repos/builtin/packages/bowtie2/package.py +++ b/var/spack/repos/builtin/packages/bowtie2/package.py @@ -11,7 +11,7 @@ class Bowtie2(Package): """Bowtie 2 is an ultrafast and memory-efficient tool for aligning sequencing reads to long reference sequences""" - homepage = "bowtie-bio.sourceforge.net/bowtie2/index.shtml" + 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.3.5.1', sha256='335c8dafb1487a4a9228ef922fbce4fffba3ce8bc211e2d7085aac092155a53f') diff --git a/var/spack/repos/builtin/packages/bubblewrap/package.py b/var/spack/repos/builtin/packages/bubblewrap/package.py new file mode 100644 index 0000000000..dc00c56148 --- /dev/null +++ b/var/spack/repos/builtin/packages/bubblewrap/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 Bubblewrap(AutotoolsPackage): + """Unprivileged sandboxing tool""" + + homepage = "https://github.com/containers/bubblewrap" + url = "https://github.com/containers/bubblewrap/archive/v0.4.0.tar.gz" + + version('0.4.0', sha256='dedea228f53dd5f589d8225b4584a9b354849a221caf7304874ca2e4d4bcdafb') + version('0.3.3', sha256='439e4cd84d9d19c9e5b0c6aa0f0c3a55bbb893ae5ec112a5b575eadd2165f039') + version('0.3.2', sha256='c66c1b6da3257e06b38a339611e76b21dc52a47975d55429071c22455259d010') + version('0.3.1', sha256='3757cb021d1a3ccc36828a58363817e1923c458ed03260d0c2b3a99da61bfb81') + + depends_on('autoconf', type='build') + depends_on('automake', type='build') + depends_on('libtool', type='build') + depends_on('m4', type='build') + depends_on('libcap') + + def autoreconf(self, spec, prefix): + bash = which('bash') + bash('autogen.sh') diff --git a/var/spack/repos/builtin/packages/bzip2/package.py b/var/spack/repos/builtin/packages/bzip2/package.py index 57d7046f93..08d5978a63 100644 --- a/var/spack/repos/builtin/packages/bzip2/package.py +++ b/var/spack/repos/builtin/packages/bzip2/package.py @@ -16,6 +16,9 @@ class Bzip2(Package): homepage = "https://sourceware.org/bzip2/" url = "https://sourceware.org/pub/bzip2/bzip2-1.0.8.tar.gz" + # The server is sometimes a bit slow to respond + fetch_options = {'timeout': 60} + version('1.0.8', sha256='ab5a03176ee106d3f0fa90e381da478ddae405918153cca248e682cd0c4a2269') version('1.0.7', sha256='e768a87c5b1a79511499beb41500bcc4caf203726fff46a6f5f9ad27fe08ab2b') version('1.0.6', sha256='a2848f34fcd5d6cf47def00461fcb528a0484d8edef8208d6d2e2909dc61d9cd') diff --git a/var/spack/repos/builtin/packages/caliper/package.py b/var/spack/repos/builtin/packages/caliper/package.py index 6169a7ee78..fb12a78704 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.3.0', tag='v2.3.0') version('2.2.0', tag='v2.2.0') version('2.1.1', tag='v2.1.1') version('2.0.1', tag='v2.0.1') @@ -64,21 +65,23 @@ class Caliper(CMakePackage): depends_on('libpfm4@4.8:4.99', when='+libpfm') depends_on('mpi', when='+mpi') - depends_on('unwind@2018.10.12,1.2:1.99', when='+callpath') + depends_on('unwind@1.2:1.99', when='+callpath') depends_on('sosflow@spack', when='@1.0:1.99+sosflow') depends_on('cmake', type='build') - depends_on('python', type='build') + depends_on('python@3:', type='build') # sosflow support not yet in 2.0 - conflicts('+sosflow', '@2.0.0:2.2.99') + conflicts('+sosflow', '@2.0.0:2.3.99') conflicts('+adiak', '@:2.1.99') def cmake_args(self): spec = self.spec args = [ + ('-DPYTHON_EXECUTABLE=%s' % + spec['python'].command.path), '-DBUILD_TESTING=Off', '-DBUILD_DOCS=Off', '-DBUILD_SHARED_LIBS=%s' % ('On' if '+shared' in spec else 'Off'), diff --git a/var/spack/repos/builtin/packages/cctools/package.py b/var/spack/repos/builtin/packages/cctools/package.py index 481e4a47f1..973a6c3d11 100644 --- a/var/spack/repos/builtin/packages/cctools/package.py +++ b/var/spack/repos/builtin/packages/cctools/package.py @@ -13,16 +13,17 @@ class Cctools(AutotoolsPackage): """ homepage = "https://github.com/cooperative-computing-lab/cctools" - url = "https://github.com/cooperative-computing-lab/cctools/archive/release/6.1.1.tar.gz" + url = "https://github.com/cooperative-computing-lab/cctools/archive/release/7.1.0.tar.gz" + version('7.1.0', sha256='84748245db10ff26c0c0a7b9fd3ec20fbbb849dd4aadc5e8531fd1671abe7a81') version('7.0.18', sha256='5b6f3c87ae68dd247534a5c073eb68cb1a60176a7f04d82699fbc05e649a91c2') version('6.1.1', sha256='97f073350c970d6157f80891b3bf6d4f3eedb5f031fea386dc33e22f22b8af9d') depends_on('openssl') depends_on('perl+shared', type=('build', 'run')) - depends_on('python@:2.9', when='@6.1.1', type=('build', 'run')) depends_on('python', type=('build', 'run')) depends_on('readline') + depends_on('gettext') # Corrects python linking of -lintl flag. depends_on('swig') # depends_on('xrootd') depends_on('zlib') @@ -44,21 +45,49 @@ class Cctools(AutotoolsPackage): def configure_args(self): args = [] - # For python - if self.spec.satisfies('^python@3:'): - args.append('--with-python-path=no') - args.append( - '--with-python3-path={0}'.format(self.spec['python'].prefix) - ) + + # make sure we do not pick a python outside spack: + if self.spec.satisfies('@6.1.1'): + if self.spec.satisfies('^python@3:'): + args.extend([ + '--with-python3-path', self.spec['python'].prefix, + '--with-python-path', 'no' + ]) + elif self.spec.satisfies('^python@:2.9'): + args.extend([ + '--with-python-path', self.spec['python'].prefix, + '--with-python3-path', 'no' + ]) + else: + args.extend([ + '--with-python-path', 'no', + '--with-python3-path', 'no' + ]) else: - args.append('--with-python3-path=no') - args.append( - '--with-python-path={0}'.format(self.spec['python'].prefix) - ) + # versions 7 and above, where --with-python-path recognized the + # python version: + if self.spec.satisfies('^python@3:'): + args.extend([ + '--with-python-path', self.spec['python'].prefix, + '--with-python2-path', 'no' + ]) + elif self.spec.satisfies('^python@:2.9'): + args.extend([ + '--with-python-path', self.spec['python'].prefix, + '--with-python3-path', 'no' + ]) + else: + args.extend([ + '--with-python2-path', 'no', + '--with-python3-path', 'no' + ]) + # disable these bits for p in ['mysql', 'xrootd']: args.append('--with-{0}-path=no'.format(p)) + # point these bits at the Spack installations for p in ['openssl', 'perl', 'readline', 'swig', 'zlib']: args.append('--with-{0}-path={1}'.format(p, self.spec[p].prefix)) + return args diff --git a/var/spack/repos/builtin/packages/ceres-solver/package.py b/var/spack/repos/builtin/packages/ceres-solver/package.py index 599c180121..ab84b4f9b7 100644 --- a/var/spack/repos/builtin/packages/ceres-solver/package.py +++ b/var/spack/repos/builtin/packages/ceres-solver/package.py @@ -17,19 +17,38 @@ class CeresSolver(CMakePackage): homepage = "http://ceres-solver.org" url = "http://ceres-solver.org/ceres-solver-1.12.0.tar.gz" + version('1.14.0', sha256='4744005fc3b902fed886ea418df70690caa8e2ff6b5a90f3dd88a3d291ef8e8e') version('1.12.0', sha256='745bfed55111e086954126b748eb9efe20e30be5b825c6dec3c525cf20afc895') + variant('suitesparse', default=False, description='Build with SuiteSparse') + variant('shared', default=True, description='Build shared libraries') + variant('examples', default=False, description='Build examples') + depends_on('eigen@3:') depends_on('lapack') depends_on('glog') def cmake_args(self): args = [ - '-DSUITESPARSE=OFF', '-DCXSPARSE=OFF', '-DEIGENSPARSE=ON', '-DLAPACK=ON', - '-DBUILD_SHARED_LIBS=ON', '-DSCHUR_SPECIALIZATIONS=OFF' ] + + if '+suitesparse' in self.spec: + args.append('-DSUITESPARSE=ON') + else: + args.append('-DSUITESPARSE=OFF') + + if '+shared' in self.spec: + args.append('-DBUILD_SHARED_LIBS=ON') + else: + args.append('-DBUILD_SHARED_LIBS=OFF') + + if '+examples' in self.spec: + args.append('-DBUILD_EXAMPLES=ON') + else: + args.append('-DBUILD_EXAMPLES=OFF') + return args diff --git a/var/spack/repos/builtin/packages/cgns/package.py b/var/spack/repos/builtin/packages/cgns/package.py index 4e8a112634..a4f6aa0582 100644 --- a/var/spack/repos/builtin/packages/cgns/package.py +++ b/var/spack/repos/builtin/packages/cgns/package.py @@ -18,6 +18,10 @@ class Cgns(CMakePackage): version('develop', branch='develop') version('master', branch='master') + version('4.1.1', sha256='055d345c3569df3ae832fb2611cd7e0bc61d56da41b2be1533407e949581e226') + version('4.1.0', sha256='4674de1fac3c47998248725fd670377be497f568312c5903d1bb8090a3cf4da0') + version('4.0.0', sha256='748585a8e52dff4d250d6b603e6b847d05498e4566aba2dc3d7a7d85c4d55849') + version('3.4.1', sha256='d32595e7737b9332243bd3de1eb8c018a272f620f09b289dea8292eba1365994') version('3.4.0', sha256='6372196caf25b27d38cf6f056258cb0bdd45757f49d9c59372b6dbbddb1e05da') version('3.3.1', sha256='81093693b2e21a99c5640b82b267a495625b663d7b8125d5f1e9e7aaa1f8d469') version('3.3.0', sha256='8422c67994f8dc6a2f201523a14f6c7d7e16313bdd404c460c16079dbeafc662') @@ -27,6 +31,7 @@ class Cgns(CMakePackage): variant('scoping', default=True, description='Enable scoping') variant('mpi', default=True, description='Enable parallel cgns') variant('int64', default=False, description='Build with 64-bit integers') + variant('shared', default=True, description='Enable shared library') depends_on('hdf5~mpi', when='+hdf5~mpi') depends_on('hdf5+mpi', when='+hdf5+mpi') @@ -44,7 +49,9 @@ class Cgns(CMakePackage): '-DCGNS_ENABLE_PARALLEL:BOOL=%s' % ( 'ON' if '+mpi' in spec else 'OFF'), '-DCGNS_ENABLE_TESTS:BOOL=OFF', - '-DCGNS_BUILD_CGNSTOOLS:BOOL=OFF' + '-DCGNS_BUILD_CGNSTOOLS:BOOL=OFF', + '-DCGNS_BUILD_SHARED:BOOL=%s' % ( + 'ON' if '+shared' in spec else 'OFF') ]) if '+mpi' in spec: diff --git a/var/spack/repos/builtin/packages/charliecloud/package.py b/var/spack/repos/builtin/packages/charliecloud/package.py index 9329455d84..e72c71cf86 100644 --- a/var/spack/repos/builtin/packages/charliecloud/package.py +++ b/var/spack/repos/builtin/packages/charliecloud/package.py @@ -9,22 +9,24 @@ from spack import * class Charliecloud(AutotoolsPackage): """Lightweight user-defined software stacks for HPC.""" + maintainers = ['j-ogas'] homepage = "https://hpc.github.io/charliecloud" - url = "https://github.com/hpc/charliecloud/releases/download/v0.9.10/charliecloud-0.9.10.tar.gz" + url = "https://github.com/hpc/charliecloud/releases/download/v0.14/charliecloud-0.9.10.tar.gz" git = "https://github.com/hpc/charliecloud.git" version('master', branch='master') - version('0.13', sha256='5740bff6e410ca99484c1bdf3dbe834c0f753c846d55c19d6162967a3e2718e0') + version('0.14', sha256='4ae23c2d6442949e16902f9d5604dbd1d6059aeb5dd461b11fc5c74d49dcb194') - depends_on('python@3.4:', type=('build', 'run')) + depends_on('m4', type='build') + depends_on('autoconf', type='build') + depends_on('automake', type='build') + depends_on('libtool', type='build') - # experimental builder (ch-grow) - variant('builder', default=False, description='Bundle dependencies for unprivileged builder (ch-grow)') - depends_on('py-lark-parser', type='run', when='+builder') - depends_on('skopeo', type='run', when='+builder') - depends_on('umoci', type='run', when='+builder') + depends_on('python@3.5:', type='run') + depends_on('py-lark-parser', type='run') + depends_on('py-requests', type='run') - # man pages and html docs + # man pages and html docs variant variant('docs', default=False, description='Build man pages and html docs') depends_on('rsync', type='build', when='+docs') depends_on('py-sphinx', type='build', when='+docs') @@ -37,10 +39,9 @@ class Charliecloud(AutotoolsPackage): args = [] - if '+docs' not in self.spec: + if '+docs' in self.spec: + args.append('--enable-html') + else: args.append('--disable-html') - if '+builder' not in self.spec: - args.append('--disable-ch-grow') - return args diff --git a/var/spack/repos/builtin/packages/cinch/package.py b/var/spack/repos/builtin/packages/cinch/package.py index 65281b8455..f46a801cd4 100644 --- a/var/spack/repos/builtin/packages/cinch/package.py +++ b/var/spack/repos/builtin/packages/cinch/package.py @@ -16,7 +16,7 @@ class Cinch(Package): url = "https://github.com/laristra/cinch/archive/1.0.zip" git = "https://github.com/laristra/cinch.git" - version('develop', branch='master', submodules=False) + version('master', branch='master', submodules=False) version('1.0', sha256='98b73473829b478191481621d84c3d63c662da6e951321f858a032eae3ca07b7') def install(self, spec, prefix): diff --git a/var/spack/repos/builtin/packages/citcoms/package.py b/var/spack/repos/builtin/packages/citcoms/package.py index 2529e544f6..f05c3d7cd6 100644 --- a/var/spack/repos/builtin/packages/citcoms/package.py +++ b/var/spack/repos/builtin/packages/citcoms/package.py @@ -16,8 +16,6 @@ class Citcoms(AutotoolsPackage): version('3.3.1', sha256='e3520e0a933e4699d31e86fe309b8c154ea6ecb0f42a1cf6f25e8d13d825a4b3') version('3.2.0', sha256='773a14d91ecbb4a4d1e04317635fab79819d83c57b47f19380ff30b9b19cb07a') - variant('pyre', default=False, description='build Pyre modules') - variant('exchanger', default=False, description='use Exchanger') variant('ggrd', default=False, description='use GGRD file support') variant('cuda', default=False, description='use CUDA') variant('hdf5', default=False, description='add HDF5 support') @@ -27,15 +25,10 @@ class Citcoms(AutotoolsPackage): depends_on('zlib') # Optional dependencies - depends_on('exchanger', when='+exchanger') - depends_on('py-pythia', type=('build', 'run'), when='+pyre') depends_on('hc', when='+ggrd') depends_on('cuda', when='+cuda') depends_on('hdf5+mpi', when='+hdf5') - conflicts('+pyre', when='@3.3:', msg='Pyre support was removed from 3.3+') - conflicts('+exchanger', when='@3.3:', msg='Exchanger support was removed from 3.3+') - def setup_build_environment(self, env): if '+ggrd' in self.spec: env.set('HC_HOME', self.spec['hc'].prefix) @@ -45,15 +38,8 @@ class Citcoms(AutotoolsPackage): # Flags only valid in 3.2 if self.spec.satisfies('@:3.2'): - if '+pyre' in self.spec: - args.append('--with-pyre') - else: - args.append('--without-pyre') - - if '+exchanger' in self.spec: - args.append('--with-exchanger') - else: - args.append('--without-exchanger') + args.append('--without-pyre') + args.append('--without-exchanger') if '+ggrd' in self.spec: args.append('--with-ggrd') diff --git a/var/spack/repos/builtin/packages/clhep/package.py b/var/spack/repos/builtin/packages/clhep/package.py index 828f46ec97..4fca7f7efb 100644 --- a/var/spack/repos/builtin/packages/clhep/package.py +++ b/var/spack/repos/builtin/packages/clhep/package.py @@ -14,6 +14,8 @@ class Clhep(CMakePackage): list_url = "https://proj-clhep.web.cern.ch/proj-clhep/" list_depth = 1 + maintainers = ['drbenmorgan'] + version('2.4.1.3', sha256='27c257934929f4cb1643aa60aeaad6519025d8f0a1c199bc3137ad7368245913') version('2.4.1.2', sha256='ff96e7282254164380460bc8cf2dff2b58944084eadcd872b5661eb5a33fa4b8') version('2.4.1.0', sha256='d14736eb5c3d21f86ce831dc1afcf03d423825b35c84deb6f8fd16773528c54d') diff --git a/var/spack/repos/builtin/packages/cmake/package.py b/var/spack/repos/builtin/packages/cmake/package.py index fdfa46af42..994ed42392 100644 --- a/var/spack/repos/builtin/packages/cmake/package.py +++ b/var/spack/repos/builtin/packages/cmake/package.py @@ -13,6 +13,7 @@ class Cmake(Package): url = 'https://github.com/Kitware/CMake/releases/download/v3.15.5/cmake-3.15.5.tar.gz' maintainers = ['chuckatkins'] + version('3.16.5', sha256='5f760b50b8ecc9c0c37135fae5fbf00a2fef617059aa9d61c1bb91653e5a8bfc') version('3.16.2', sha256='8c09786ec60ca2be354c29829072c38113de9184f29928eb9da8446a5f2ce6a9') version('3.16.1', sha256='a275b3168fa8626eca4465da7bb159ff07c8c6cb0fb7179be59e12cbdfa725fd') version('3.16.0', sha256='6da56556c63cab6e9a3e1656e8763ed4a841ac9859fefb63cbe79472e67e8c5f') diff --git a/var/spack/repos/builtin/packages/cosma/package.py b/var/spack/repos/builtin/packages/cosma/package.py new file mode 100644 index 0000000000..efb81035da --- /dev/null +++ b/var/spack/repos/builtin/packages/cosma/package.py @@ -0,0 +1,69 @@ +# 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 Cosma(CMakePackage): + """ + Distributed Communication-Optimal Matrix-Matrix Multiplication Library + """ + + maintainers = ['teonnik', 'kabicm'] + homepage = 'https://github.com/eth-cscs/COSMA' + url = 'https://github.com/eth-cscs/COSMA/releases/download/v2.0.2/cosma.tar.gz' + git = 'https://github.com/eth-cscs/COSMA.git' + + # note: The default archives produced with github do not have the archives + # of the submodules. + version('master', branch='master', submodules=True) + version('2.0.2', sha256='4f3354828bc718f3eef2f0098c3bdca3499297497a220da32db1acd57920c68d') + # note: this version fails to build at the moment + # version('1.0.0', + # url='https://github.com/eth-cscs/COSMA/releases/download/1.0/cosma.tar.gz', + # sha256='c142104258dcca4c17fa7faffc2990a08d2777235c7980006e93c5dca51061f6') + + variant('cuda', default=False, + description='Build with the CUBLAS back end.') + variant('scalapack', default=False, + description='Build with ScaLAPACK support.') + + depends_on('cmake@3.12:', type='build') + depends_on('mpi@3:') + depends_on('blas', when='~cuda') + depends_on('scalapack', when='+scalapack') + # COSMA is written entirely in C++, it may use cublasXt but a CUDA capable + # compiler is not needed. There is no need for CudaPackage in this recipe. + depends_on('cuda', when='+cuda') + + def setup_build_environment(self, env): + if '+cuda' in self.spec: + env.set('CUDA_PATH', self.spec['cuda'].prefix) + + def cmake_args(self): + spec = self.spec + args = ['-DCOSMA_WITH_TESTS=OFF', + '-DCOSMA_WITH_APPS=OFF', + '-DCOSMA_WITH_PROFILING=OFF', + '-DCOSMA_WITH_BENCHMARKS=OFF'] + + if '^mkl' in spec: + args += ['-DCOSMA_BLAS=MKL'] + elif '^netlib-lapack' in spec: + args += ['-DCOSMA_BLAS=CUSTOM'] + elif '^openblas' in spec: + args += ['-DCOSMA_BLAS=OPENBLAS'] + elif '+cuda' in spec: + args += ['-DCOSMA_BLAS=CUDA'] + else: # TODO '^rocm' in spec: + args += ['-DCOSMA_BLAS=ROCM'] + + if '+scalapack' and '^mkl' in spec: + args += ['-DCOSMA_SCALAPACK=MKL'] + elif '+scalapack' and '^netlib-scalapack' in spec: + args += ['-DCOSMA_SCALAPACK=CUSTOM'] + + return args diff --git a/var/spack/repos/builtin/packages/cpio/package.py b/var/spack/repos/builtin/packages/cpio/package.py index ae6b429ccc..2381a82499 100644 --- a/var/spack/repos/builtin/packages/cpio/package.py +++ b/var/spack/repos/builtin/packages/cpio/package.py @@ -16,3 +16,8 @@ class Cpio(AutotoolsPackage, GNUMirrorPackage): version('2.13', sha256='e87470d9c984317f658567c03bfefb6b0c829ff17dbf6b0de48d71a4c8f3db88') build_directory = 'spack-build' + + def flag_handler(self, name, flags): + if self.spec.satisfies('%intel') and name == 'cflags': + flags.append('-no-gcc') + return (flags, None, None) diff --git a/var/spack/repos/builtin/packages/cpprestsdk/Release.patch b/var/spack/repos/builtin/packages/cpprestsdk/Release.patch new file mode 100644 index 0000000000..e860b85f18 --- /dev/null +++ b/var/spack/repos/builtin/packages/cpprestsdk/Release.patch @@ -0,0 +1,45 @@ +diff -ur spack-src/Release.org/include/pplx/pplxlinux.h spack-src/Release/include/pplx/pplxlinux.h +--- spack-src/Release.org/include/pplx/pplxlinux.h 2020-03-12 13:52:40.161917503 +0900 ++++ spack-src/Release/include/pplx/pplxlinux.h 2020-03-12 14:05:50.834896829 +0900 +@@ -240,6 +240,11 @@ + { + public: + _PPLXIMP virtual void schedule( TaskProc_t proc, _In_ void* param); ++#if defined(__APPLE__) ++ virtual ~apple_scheduler() {} ++#else ++ virtual ~linux_scheduler() {} ++#endif + }; + + } // namespace details +diff -ur spack-src/Release.org/libs/websocketpp/websocketpp/transport/asio/connection.hpp spack-src/Release/libs/websocketpp/websocketpp/transport/asio/connection.hpp +--- spack-src/Release.org/libs/websocketpp/websocketpp/transport/asio/connection.hpp 2020-03-12 13:52:40.201921703 +0900 ++++ spack-src/Release/libs/websocketpp/websocketpp/transport/asio/connection.hpp 2020-03-12 14:09:13.586186467 +0900 +@@ -422,7 +422,7 @@ + m_io_service = io_service; + + if (config::enable_multithreading) { +- m_strand = lib::make_shared<boost::asio::strand>( ++ m_strand = lib::make_shared<boost::asio::io_service::strand>( + lib::ref(*io_service)); + + m_async_read_handler = m_strand->wrap(lib::bind( +diff -ur spack-src/Release.org/src/uri/uri.cpp spack-src/Release/src/uri/uri.cpp +--- spack-src/Release.org/src/uri/uri.cpp 2020-03-12 13:52:40.241925902 +0900 ++++ spack-src/Release/src/uri/uri.cpp 2020-03-12 13:53:58.610152210 +0900 +@@ -22,12 +22,12 @@ + // canonicalize components first + + // convert scheme to lowercase +- std::transform(m_scheme.begin(), m_scheme.end(), m_scheme.begin(), [this](utility::char_t c) { ++ std::transform(m_scheme.begin(), m_scheme.end(), m_scheme.begin(), [](utility::char_t c) { + return (utility::char_t)tolower(c); + }); + + // convert host to lowercase +- std::transform(m_host.begin(), m_host.end(), m_host.begin(), [this](utility::char_t c) { ++ std::transform(m_host.begin(), m_host.end(), m_host.begin(), [](utility::char_t c) { + return (utility::char_t)tolower(c); + }); + diff --git a/var/spack/repos/builtin/packages/cpprestsdk/package.py b/var/spack/repos/builtin/packages/cpprestsdk/package.py index 51acc882b6..3bfbf52c29 100644 --- a/var/spack/repos/builtin/packages/cpprestsdk/package.py +++ b/var/spack/repos/builtin/packages/cpprestsdk/package.py @@ -17,6 +17,11 @@ class Cpprestsdk(CMakePackage): version('2.9.1', sha256='537358760acd782f4d2ed3a85d92247b4fc423aff9c85347dc31dbb0ab9bab16') - depends_on('boost') + depends_on('boost@:1.69.0') + + # 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') root_cmakelists_dir = 'Release' diff --git a/var/spack/repos/builtin/packages/cryptsetup/package.py b/var/spack/repos/builtin/packages/cryptsetup/package.py index 10519100ee..ccde594c84 100644 --- a/var/spack/repos/builtin/packages/cryptsetup/package.py +++ b/var/spack/repos/builtin/packages/cryptsetup/package.py @@ -25,6 +25,7 @@ class Cryptsetup(AutotoolsPackage): depends_on('util-linux~libuuid', type=('build', 'link')) depends_on('gettext', type=('build', 'link')) + depends_on('pkgconfig', 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/cscope/package.py b/var/spack/repos/builtin/packages/cscope/package.py index f0cc8f9fc5..2682ffea70 100644 --- a/var/spack/repos/builtin/packages/cscope/package.py +++ b/var/spack/repos/builtin/packages/cscope/package.py @@ -10,8 +10,9 @@ class Cscope(AutotoolsPackage): """Cscope is a developer's tool for browsing source code.""" homepage = "http://cscope.sourceforge.net/" - url = "http://downloads.sourceforge.net/project/cscope/cscope/15.8b/cscope-15.8b.tar.gz" + url = "https://sourceforge.net/projects/cscope/files/cscope/v15.9/cscope-15.9.tar.gz" + version('15.9', sha256='c5505ae075a871a9cd8d9801859b0ff1c09782075df281c72c23e72115d9f159') version('15.8b', sha256='4889d091f05aa0845384b1e4965aa31d2b20911fb2c001b2cdcffbcb7212d3af') depends_on('ncurses') @@ -20,4 +21,11 @@ class Cscope(AutotoolsPackage): depends_on('bison', type='build') depends_on('pkgconfig', type='build') - build_targets = ['CURSES_LIBS=-lncursesw'] + build_targets = ['CURSES_LIBS=-lncursesw -ltinfo'] + + def url_for_version(self, version): + url = "https://sourceforge.net/projects/cscope/files/cscope/{0}{1}/cscope-{1}.tar.gz" + if version >= Version('15.9'): + return url.format('v', version) + else: + return url.format('', version) diff --git a/var/spack/repos/builtin/packages/darshan-runtime/package.py b/var/spack/repos/builtin/packages/darshan-runtime/package.py index d728bf4037..f6487d498e 100644 --- a/var/spack/repos/builtin/packages/darshan-runtime/package.py +++ b/var/spack/repos/builtin/packages/darshan-runtime/package.py @@ -18,6 +18,8 @@ class DarshanRuntime(Package): url = "http://ftp.mcs.anl.gov/pub/darshan/releases/darshan-3.1.0.tar.gz" git = "https://xgitlab.cels.anl.gov/darshan/darshan.git" + maintainers = ['shanedsnyder', 'carns'] + version('develop', branch='master') version('3.1.7', sha256='9ba535df292727ac1e8025bdf2dc42942715205cad8319d925723fd88709e8d6') version('3.1.6', sha256='21cb24e2a971c45e04476e00441b7fbea63d2afa727a5cf8b7a4a9d9004dd856') diff --git a/var/spack/repos/builtin/packages/darshan-util/package.py b/var/spack/repos/builtin/packages/darshan-util/package.py index 4acc4452fd..9fe3012b2c 100644 --- a/var/spack/repos/builtin/packages/darshan-util/package.py +++ b/var/spack/repos/builtin/packages/darshan-util/package.py @@ -16,6 +16,8 @@ class DarshanUtil(Package): url = "http://ftp.mcs.anl.gov/pub/darshan/releases/darshan-3.1.0.tar.gz" git = "https://xgitlab.cels.anl.gov/darshan/darshan.git" + maintainers = ['shanedsnyder', 'carns'] + version('develop', branch='master') version('3.1.7', sha256='9ba535df292727ac1e8025bdf2dc42942715205cad8319d925723fd88709e8d6') version('3.1.6', sha256='21cb24e2a971c45e04476e00441b7fbea63d2afa727a5cf8b7a4a9d9004dd856') diff --git a/var/spack/repos/builtin/packages/dealii/package.py b/var/spack/repos/builtin/packages/dealii/package.py index 797931052e..1b9e02c044 100644 --- a/var/spack/repos/builtin/packages/dealii/package.py +++ b/var/spack/repos/builtin/packages/dealii/package.py @@ -151,6 +151,7 @@ class Dealii(CMakePackage, CudaPackage): depends_on('slepc@:3.6.3', when='@:8.4.1+slepc+petsc+mpi') depends_on('slepc~arpack', when='+slepc+petsc+mpi+int64') depends_on('sundials@:3~pthread', when='@9.0:+sundials') + depends_on('trilinos gotype=int', when='+trilinos') # Both Trilinos and SymEngine bundle the Teuchos RCP library. # This leads to conflicts between macros defined in the included # headers when they are not compiled in the same mode. diff --git a/var/spack/repos/builtin/packages/dihydrogen/package.py b/var/spack/repos/builtin/packages/dihydrogen/package.py new file mode 100644 index 0000000000..6de0cfb516 --- /dev/null +++ b/var/spack/repos/builtin/packages/dihydrogen/package.py @@ -0,0 +1,111 @@ +# 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 Dihydrogen(CMakePackage, CudaPackage): + """DiHydrogen is the second version of the Hydrogen fork of the + well-known distributed linear algebra library, + Elemental. DiHydrogen aims to be a basic distributed + multilinear algebra interface with a particular emphasis on the + needs of the distributed machine learning effort, LBANN.""" + + homepage = "https://github.com/LLNL/DiHydrogen.git" + git = "https://github.com/LLNL/DiHydrogen.git" + + maintainers = ['bvanessen'] + + version('master', branch='master') + + variant('al', default=True, + description='Builds with Aluminum communication library') + variant('developer', default=False, + description='Enable extra warnings and force tests to be enabled.') + variant('half', default=False, + description='Enable FP16 support on the CPU.') + variant('legacy', default=False, + description='Enable the legacy DistConv code branch.') + variant('nvshmem', default=False, + description='Builds with support for NVSHMEM') + variant('openmp', default=False, + description='Enable CPU acceleration with OpenMP threads.') + variant('rocm', default=False, + description='Enable ROCm/HIP language features.') + variant('shared', default=True, + description='Enables the build of shared libraries') + + # 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', + ] + variant('cuda_arch', + description='CUDA architecture', + values=spack.variant.auto_or_any_combination_of(*cuda_arch_values)) + + depends_on('mpi') + depends_on('catch2', type='test') + + depends_on('aluminum', when='+al ~cuda') + depends_on('aluminum +gpu +nccl +mpi_cuda', when='+al +cuda') + + depends_on('cuda', when=('+cuda' or '+legacy')) + depends_on('cudnn', when=('+cuda' or '+legacy')) + depends_on('cub', when=('+cuda' or '+legacy')) + + # Legacy builds require cuda + conflicts('~cuda', when='+legacy') + + depends_on('half', when='+half') + + generator = 'Ninja' + depends_on('ninja', type='build') + depends_on('cmake@3.14.0:', type='build') + + illegal_cuda_arch_values = [ + '10', '11', '12', '13', + '20', '21', + '30', '32', '35', '37', + '50', '52', '53', + ] + for value in illegal_cuda_arch_values: + conflicts('cuda_arch=' + value) + + @property + def libs(self): + shared = True if '+shared' in self.spec else False + return find_libraries( + 'libH2Core', root=self.prefix, shared=shared, recursive=True + ) + + def cmake_args(self): + spec = self.spec + + args = [ + '-DCMAKE_INSTALL_MESSAGE:STRING=LAZY', + '-DBUILD_SHARED_LIBS:BOOL=%s' % ('+shared' in spec), + '-DH2_ENABLE_CUDA=%s' % ('+cuda' in spec), + '-DH2_ENABLE_DISTCONV_LEGACY=%s' % ('+legacy' in spec), + '-DH2_ENABLE_OPENMP=%s' % ('+openmp' in spec), + '-DH2_ENABLE_FP16=%s' % ('+half' in spec), + '-DH2_ENABLE_HIP_ROCM=%s' % ('+rocm' in spec), + '-DH2_DEVELOPER_BUILD=%s' % ('+developer' in spec), + ] + + if '+cuda' in spec: + cuda_arch = spec.variants['cuda_arch'].value + if len(cuda_arch) == 1 and cuda_arch[0] == 'auto': + args.append('-DCMAKE_CUDA_FLAGS=-arch=sm_60') + else: + cuda_arch = [x for x in spec.variants['cuda_arch'].value + if x != 'auto'] + if cuda_arch: + args.append('-DCMAKE_CUDA_FLAGS={0}'.format( + ' '.join(self.cuda_flags(cuda_arch)) + )) + + return args diff --git a/var/spack/repos/builtin/packages/eagle/package.py b/var/spack/repos/builtin/packages/eagle/package.py new file mode 100644 index 0000000000..81e0be6f90 --- /dev/null +++ b/var/spack/repos/builtin/packages/eagle/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 Eagle(MakefilePackage): + """EAGLE: Explicit Alternative Genome Likelihood Evaluator""" + + homepage = "https://github.com/tony-kuo/eagle" + url = "https://github.com/tony-kuo/eagle/archive/v1.1.2.tar.gz" + + version('1.1.2', sha256='afe967560d1f8fdbd0caf4b93b5f2a86830e9e4d399fee4a526140431343045e') + + depends_on('curl') + depends_on('zlib') + depends_on('lzma') + depends_on('htslib') + + def edit(self, spec, prefix): + # remove unused gcc flags + filter_file('$(LFLAGS) $(INCLUDES)', '', 'Makefile', string=True) + + # drop static link to htslib + filter_file('$(LIBS)', '', 'Makefile', string=True) + + # don't try to build htslib. + filter_file('all: UTIL HTSLIB', 'all: UTIL', + 'Makefile', string=True) + + # add htslib link to ldflags + filter_file('-lcurl', '-lcurl -lhts', 'Makefile', string=True) + + def install(self, spec, prefix): + mkdirp(prefix.bin) + + bins = [ + 'eagle', + 'eagle-rc', + 'eagle-nm', + ] + + for b in bins: + install(b, prefix.bin) diff --git a/var/spack/repos/builtin/packages/eclipse-gcj-parser/package.py b/var/spack/repos/builtin/packages/eclipse-gcj-parser/package.py index 11054b409c..13100d89a8 100644 --- a/var/spack/repos/builtin/packages/eclipse-gcj-parser/package.py +++ b/var/spack/repos/builtin/packages/eclipse-gcj-parser/package.py @@ -19,6 +19,9 @@ class EclipseGcjParser(Package): maintainers = ['citibeth'] + # The server is sometimes a bit slow to respond + fetch_options = {'timeout': 60} + version('4.8', sha256='98fd128f1d374d9e42fd9d4836bdd249c6d511ebc6c0df17fbc1b9df96c3d781', expand=False) phases = ('build', 'install') diff --git a/var/spack/repos/builtin/packages/ecp-proxy-apps/package.py b/var/spack/repos/builtin/packages/ecp-proxy-apps/package.py index c3f79c33bb..501ad6440d 100644 --- a/var/spack/repos/builtin/packages/ecp-proxy-apps/package.py +++ b/var/spack/repos/builtin/packages/ecp-proxy-apps/package.py @@ -4,31 +4,33 @@ # SPDX-License-Identifier: (Apache-2.0 OR MIT) -import os from spack import * -class EcpProxyApps(Package): +class EcpProxyApps(BundlePackage): """This is a collection of packages that represents the official suite of DOE/ECP proxy applications. This is a Spack bundle package that installs the ECP proxy application suite. """ tags = ['proxy-app', 'ecp-proxy-app'] - maintainers = ['bhatele'] + maintainers = ['rspavel'] homepage = "https://proxyapps.exascaleproject.org" - # Dummy url - url = 'https://github.com/exascaleproject/proxy-apps/archive/v1.0.tar.gz' - version('2.1', sha256='604da008fc4ef3bdbc25505088d610333249e3e9745eac7dbfd05b91e33e218d') - version('2.0', sha256='5f3cb3a772224e738c1dab42fb34d40f6b313af51ab1c575fb334e573e41e09a') - version('1.1', sha256='8537e03588c0f46bebf5b7f07146c79812f2ebfb77d29e184baa4dd5f4603ee3') - version('1.0', sha256='13d9795494dabdb4c724d2c0f322c2149b2507d2fd386ced12b54292b7ecf595') + version('3.0') + version('2.1') + version('2.0') + version('1.1') + version('1.0') variant('candle', default=False, description='Also build CANDLE Benchmarks') + # Added with release 3.0 + depends_on('miniamr@1.4.4', when='@3.0:') + depends_on('xsbench@19', when='@3.0:') + # Added with release 2.1 depends_on('amg@1.2', when='@2.1:') depends_on('miniamr@1.4.3', when='@2.1:') @@ -40,15 +42,15 @@ class EcpProxyApps(Package): depends_on('picsarlite@0.1', when='@2.0:') depends_on('thornado-mini@1.0', when='@2.0:') - depends_on('candle-benchmarks@0.1', when='+candle @2.0:') + depends_on('candle-benchmarks@0.1', when='+candle @2.0:2.1') depends_on('laghos@2.0', when='@2.0:') depends_on('macsio@1.1', when='@2.0:') depends_on('sw4lite@1.1', when='@2.0:') - depends_on('xsbench@18', when='@2.0:') + depends_on('xsbench@18', when='@2.0:2.1') # Dependencies for version 2.0 depends_on('amg@1.1', when='@2.0') - depends_on('miniamr@1.4.1', when='@2.0') + depends_on('miniamr@1.4.1', when='@2.0:2.1') # Added with release 1.1 depends_on('examinimd@1.0', when='@1.1:') @@ -71,12 +73,3 @@ class EcpProxyApps(Package): # Removed after release 1.0 depends_on('comd@1.1', when='@1.0') - - # Dummy install for now, will be removed when metapackage is available - def install(self, spec, prefix): - with open(os.path.join(spec.prefix, 'package-list.txt'), 'w') as out: - for dep in spec.dependencies(deptype='build'): - out.write("%s\n" % dep.format( - format_string='${PACKAGE} ${VERSION}')) - os.symlink(dep.prefix, os.path.join(spec.prefix, dep.name)) - out.close() diff --git a/var/spack/repos/builtin/packages/eigen/find-ptscotch.patch b/var/spack/repos/builtin/packages/eigen/find-ptscotch.patch deleted file mode 100644 index 4f6e286b72..0000000000 --- a/var/spack/repos/builtin/packages/eigen/find-ptscotch.patch +++ /dev/null @@ -1,27 +0,0 @@ -Version 3.3.4 contained a bug that prevented it from finding scotch~mpi. - -diff --git a/tmp/FindPTSCOTCH.cmake b/cmake/FindPTSCOTCH.cmake -index 1396d05..23451b1 100644 ---- a/tmp/FindPTSCOTCH.cmake -+++ b/cmake/FindPTSCOTCH.cmake -@@ -167,11 +167,11 @@ endif() - - # If found, add path to cmake variable - # ------------------------------------ -+unset(PTSCOTCH_INCLUDE_DIRS) - foreach(ptscotch_hdr ${PTSCOTCH_hdrs_to_find}) - if (PTSCOTCH_${ptscotch_hdr}_DIRS) - list(APPEND PTSCOTCH_INCLUDE_DIRS "${PTSCOTCH_${ptscotch_hdr}_DIRS}") - else () -- set(PTSCOTCH_INCLUDE_DIRS "PTSCOTCH_INCLUDE_DIRS-NOTFOUND") - if (NOT PTSCOTCH_FIND_QUIETLY) - message(STATUS "Looking for ptscotch -- ${ptscotch_hdr} not found") - endif() -@@ -255,7 +255,6 @@ foreach(ptscotch_lib ${PTSCOTCH_libs_to_find}) - list(APPEND PTSCOTCH_LIBRARIES "${PTSCOTCH_${ptscotch_lib}_LIBRARY}") - list(APPEND PTSCOTCH_LIBRARY_DIRS "${${ptscotch_lib}_lib_path}") - else () -- list(APPEND PTSCOTCH_LIBRARIES "${PTSCOTCH_${ptscotch_lib}_LIBRARY}") - if (NOT PTSCOTCH_FIND_QUIETLY) - message(STATUS "Looking for ptscotch -- lib ${ptscotch_lib} not found") - endif() diff --git a/var/spack/repos/builtin/packages/eigen/package.py b/var/spack/repos/builtin/packages/eigen/package.py index 9b01807bad..283bd65165 100644 --- a/var/spack/repos/builtin/packages/eigen/package.py +++ b/var/spack/repos/builtin/packages/eigen/package.py @@ -3,8 +3,6 @@ # # SPDX-License-Identifier: (Apache-2.0 OR MIT) -from spack import * - class Eigen(CMakePackage): """Eigen is a C++ template library for linear algebra matrices, @@ -12,41 +10,32 @@ class Eigen(CMakePackage): """ homepage = 'http://eigen.tuxfamily.org/' - url = 'https://bitbucket.org/eigen/eigen/get/3.3.4.tar.bz2' - - version('3.3.7', sha256='9f13cf90dedbe3e52a19f43000d71fdf72e986beb9a5436dddcd61ff9d77a3ce') - version('3.3.5', sha256='7352bff3ea299e4c7d7fbe31c504f8eb9149d7e685dec5a12fbaa26379f603e2') - version('3.3.4', sha256='dd254beb0bafc695d0f62ae1a222ff85b52dbaa3a16f76e781dce22d0d20a4a6') - version('3.3.3', sha256='a4143fc45e4454b4b98fcea3516b3a79b8cdb3bc7fadf996d088c6a0d805fea1') - version('3.3.1', sha256='a0b4cebaabd8f371d1b364f9723585fbcc7c9640ca60273b99835e6cf115f056') - version('3.2.10', sha256='760e6656426fde71cc48586c971390816f456d30f0b5d7d4ad5274d8d2cb0a6d') - version('3.2.9', sha256='4d1e036ec1ed4f4805d5c6752b76072d67538889f4003fadf2f6e00a825845ff') - version('3.2.8', sha256='722a63d672b70f39c271c5e2a4a43ba14d12015674331790414fcb167c357e55') - version('3.2.7', sha256='e58e1a11b23cf2754e32b3c5990f318a8461a3613c7acbf6035870daa45c2f3e') - - variant('metis', default=False, - description='Enables metis permutations in sparse algebra') - variant('scotch', default=False, - description='Enables scotch/pastix sparse factorization methods') - variant('fftw', default=False, - description='Enables FFTW backend for the FFT plugin') - variant('suitesparse', default=False, - description='Enables SuiteSparse sparse factorization methods') - variant('mpfr', default=False, - description='Enables the multi-precisions floating-point plugin') + url = 'https://gitlab.com/libeigen/eigen/-/archive/3.3.7/eigen-3.3.7.tar.gz' + + version('3.3.7', sha256='d56fbad95abf993f8af608484729e3d87ef611dd85b3380a8bad1d5cbc373a57') + version('3.3.6', sha256='e7cd8c94d6516d1ada9893ccc7c9a400fcee99927c902f15adba940787104dba') + version('3.3.5', sha256='383407ab3d0c268074e97a2cbba84ac197fd24532f014aa2adc522355c1aa2d0') + version('3.3.4', sha256='c5ca6e3442fb48ae75159ca7568854d9ba737bc351460f27ee91b6f3f9fd1f3d') + version('3.3.3', sha256='fd72694390bd8e81586205717d2cf823e718f584b779a155db747d1e68481a2e') + version('3.3.2', sha256='8d7611247fba1236da4dee7a64607017b6fb9ca5e3f0dc44d480e5d33d5663a5') + version('3.3.1', sha256='50dd21a8997fce0857b27a126811ae8ee7619984ab5425ecf33510cec649e642') + version('3.3.0', sha256='de82e01f97e1a95f121bd3ace87aa1237818353c14e38f630a65f5ba2c92f0e1') + version('3.2.10', sha256='0920cb60ec38de5fb509650014eff7cc6d26a097c7b38c7db4b1aa5df5c85042') + version('3.2.9', sha256='f683b20259ad72c3d384c00278166dd2a42d99b78dcd589ed4a6ca74bbb4ca07') + version('3.2.8', sha256='64c54781cfe9eefef2792003ab04b271d4b2ec32eda6e9cdf120d7aad4ebb282') + version('3.2.7', sha256='0ea9df884873275bf39c2965d486fa2d112f3a64b97b60b45b8bc4bb034a36c1') + version('3.2.6', sha256='e097b8dcc5ad30d40af4ad72d7052e3f78639469baf83cffaadc045459cda21f') + version('3.2.5', sha256='8068bd528a2ff3885eb55225c27237cf5cda834355599f05c2c85345db8338b4') + + # From http://eigen.tuxfamily.org/index.php?title=Main_Page#Requirements + # "Eigen doesn't have any dependencies other than the C++ standard + # library." variant('build_type', default='RelWithDebInfo', description='The build type to build', values=('Debug', 'Release', 'RelWithDebInfo')) - # TODO : dependency on googlehash, superlu, adolc missing - depends_on('metis@5:', when='+metis') - depends_on('scotch', when='+scotch') - depends_on('fftw', when='+fftw') - depends_on('suite-sparse', when='+suitesparse') - depends_on('mpfr@2.3.0:', when='+mpfr') - depends_on('gmp', when='+mpfr') - - patch('find-ptscotch.patch', when='@3.3.4') + # TODO: latex and doxygen needed to produce docs with make doc + # TODO: Other dependencies might be needed to test this package def setup_run_environment(self, env): env.prepend_path('CPATH', self.prefix.include.eigen3) diff --git a/var/spack/repos/builtin/packages/elfutils/package.py b/var/spack/repos/builtin/packages/elfutils/package.py index 07d852f254..e1ffdc0e3b 100644 --- a/var/spack/repos/builtin/packages/elfutils/package.py +++ b/var/spack/repos/builtin/packages/elfutils/package.py @@ -21,6 +21,9 @@ class Elfutils(AutotoolsPackage): list_url = "https://sourceware.org/elfutils/ftp" list_depth = 1 + # Sourceware is often slow to respond. + fetch_options = {'timeout': 60} + version('0.178', sha256='31e7a00e96d4e9c4bda452e1f2cdac4daf8abd24f5e154dee232131899f3a0f2') version('0.177', sha256='fa489deccbcae7d8c920f60d85906124c1989c591196d90e0fd668e3dc05042e') version('0.176', sha256='eb5747c371b0af0f71e86215a5ebb88728533c3a104a43d4231963f308cd1023') diff --git a/var/spack/repos/builtin/packages/er/package.py b/var/spack/repos/builtin/packages/er/package.py index 55e5067f12..343a08ff91 100644 --- a/var/spack/repos/builtin/packages/er/package.py +++ b/var/spack/repos/builtin/packages/er/package.py @@ -9,8 +9,8 @@ from spack import * class Er(CMakePackage): """Encoding and redundancy on a file set""" - homepage = "https://github.com/ECP-VeloC/er" - url = "https://github.com/ECP-VeloC/er/archive/v0.0.3.zip" + homepage = "https://github.com/ecp-veloc/er" + url = "https://github.com/ecp-veloc/er/archive/v0.0.3.zip" git = "https://github.com/ecp-veloc/er.git" tags = ['ecp'] diff --git a/var/spack/repos/builtin/packages/exchanger/package.py b/var/spack/repos/builtin/packages/exchanger/package.py deleted file mode 100644 index 018459d8c3..0000000000 --- a/var/spack/repos/builtin/packages/exchanger/package.py +++ /dev/null @@ -1,21 +0,0 @@ -# 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 Exchanger(AutotoolsPackage): - """Exchanger is a package containing several C++ base classes. These - classes, when customized for a solver, can provide communication channels - between solvers. This packaged is used by CitcomS for solver coupling.""" - - homepage = "https://geodynamics.org/cig/software/exchanger/" - url = "https://geodynamics.org/cig/software/exchanger/Exchanger-1.0.1.tar.gz" - - version('1.0.1', sha256='1e6c8311db96582bcf2c9aee16a863a5730c1aa54cb3aa7d0249239c6e0b68ee') - - depends_on('python', type=('build', 'run')) - depends_on('py-merlin', type='build') - depends_on('py-pythia@0.8.1.0:0.8.1.999', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/exiv2/package.py b/var/spack/repos/builtin/packages/exiv2/package.py index 05d6de7bd8..53fad9cdfe 100644 --- a/var/spack/repos/builtin/packages/exiv2/package.py +++ b/var/spack/repos/builtin/packages/exiv2/package.py @@ -15,3 +15,6 @@ class Exiv2(CMakePackage): url = "https://github.com/Exiv2/exiv2/archive/v0.27.2.tar.gz" version('0.27.2', sha256='3dbcaf01fbc5b98d42f091d1ff0d4b6cd9750dc724de3d9c0d113948570b2934') + + depends_on('zlib', type='link') + depends_on('expat@2.2.6:', type='link') diff --git a/var/spack/repos/builtin/packages/expect/package.py b/var/spack/repos/builtin/packages/expect/package.py index 4cab48a064..1afe8add1e 100644 --- a/var/spack/repos/builtin/packages/expect/package.py +++ b/var/spack/repos/builtin/packages/expect/package.py @@ -66,7 +66,8 @@ class Expect(AutotoolsPackage): fix_darwin_install_name( join_path(self.prefix.lib, 'expect{0}'.format(self.version))) - old = 'libexpect{0}.dylib'.format(self.version) - new = glob.glob(join_path(self.prefix.lib, 'expect*', 'libexpect*'))[0] - install_name_tool = Executable('install_name_tool') - install_name_tool('-change', old, new, self.prefix.bin.expect) + old = 'libexpect{0}.dylib'.format(self.version) + new = glob.glob(join_path(self.prefix.lib, 'expect*', + 'libexpect*'))[0] + install_name_tool = Executable('install_name_tool') + install_name_tool('-change', old, new, self.prefix.bin.expect) diff --git a/var/spack/repos/builtin/packages/exuberant-ctags/package.py b/var/spack/repos/builtin/packages/exuberant-ctags/package.py index 6efb00602c..421b995050 100644 --- a/var/spack/repos/builtin/packages/exuberant-ctags/package.py +++ b/var/spack/repos/builtin/packages/exuberant-ctags/package.py @@ -8,7 +8,7 @@ from spack import * class ExuberantCtags(AutotoolsPackage): """The canonical ctags generator""" - homepage = "ctags.sourceforge.net" + homepage = "http://ctags.sourceforge.net" url = "http://downloads.sourceforge.net/project/ctags/ctags/5.8/ctags-5.8.tar.gz" version('5.8', sha256='0e44b45dcabe969e0bbbb11e30c246f81abe5d32012db37395eb57d66e9e99c7') diff --git a/var/spack/repos/builtin/packages/f77-zmq/package.py b/var/spack/repos/builtin/packages/f77-zmq/package.py index c78f3f4110..bab4469442 100644 --- a/var/spack/repos/builtin/packages/f77-zmq/package.py +++ b/var/spack/repos/builtin/packages/f77-zmq/package.py @@ -15,10 +15,12 @@ class F77Zmq(MakefilePackage): maintainers = ['scemama'] + version('4.3.2', sha256='f1fb7544d38d9bb7235f98c96f241875ddcb0d37ed950618c23d4e4d666a73ca') version('4.3.1', sha256='a15d72d93022d3e095528d2808c7767cece974a2dc0e2dd95e4c122f60fcf0a8') depends_on('libzmq') - depends_on('python', type='build') + depends_on('python@3:', type='build', when="@:4.3.1") + depends_on('python', type='build', when="@4.3.2:") def setup_build_environment(self, env): env.append_flags('CFLAGS', '-O3') diff --git a/var/spack/repos/builtin/packages/fabtests/package.py b/var/spack/repos/builtin/packages/fabtests/package.py index a71a69ab37..a9f76b5d07 100644 --- a/var/spack/repos/builtin/packages/fabtests/package.py +++ b/var/spack/repos/builtin/packages/fabtests/package.py @@ -7,15 +7,30 @@ from spack import * class Fabtests(AutotoolsPackage): - """Fabtests provides a set of examples that uses libfabric. - - DEPRECATED. Fabtests has merged with the libfabric git repo.""" + """Fabtests provides a set of runtime analysis tools and examples that use + libfabric.""" homepage = "http://libfabric.org" - url = "https://github.com/ofiwg/fabtests/releases/download/v1.5.3/fabtests-1.5.3.tar.gz" + url = "https://github.com/ofiwg/libfabric/releases/download/v1.9.1/fabtests-1.9.1.tar.bz2" + version('1.9.1', sha256='6f8ced2c6b3514759a0e177c8b2a19125e4ef0714d4cc0fe0386b33bd6cd5585') + version('1.9.0', sha256='60cc21db7092334904cbdafd142b2403572976018a22218e7c453195caef366e') + version('1.8.1', sha256='e9005d8fe73ca3849c872649c29811846bd72a62f897ecab73a08c7a9514f37b') + # old releases, published in a separate repository + version('1.6.2', sha256='37405c6202f5b1aa81f8ea211237a2d87937f06254fa3ed44a9b69ac73b234e8') + version('1.6.1', sha256='d357466b868fdaf1560d89ffac4c4e93a679486f1b4221315644d8d3e21174bf') version('1.6.0', sha256='dc3eeccccb005205017f5af60681ede15782ce202a0103450a6d56a7ff515a67') version('1.5.3', sha256='3835b3bf86cd00d23df0ddba8bf317e4a195e8d5c3c2baa918b373d548f77f29') + version('1.5.0', sha256='1dddd446c3f1df346899f9a8636f1b4265de5b863103ae24876e9f0c1e40a69d') + version('1.4.2', sha256='3b78d0ca1b223ff21b7f5b3627e67e358e3c18b700f86b017e2233fee7e88c2e') + + for v in ['1.4.2', '1.5.0', '1.5.3', '1.6.0', '1.6.1', '1.6.2', + '1.8.1', '1.9.0', '1.9.1']: + depends_on('libfabric@{0}'.format(v), when='@{0}'.format(v)) - depends_on('libfabric@1.6.0', when='@1.6.0') - depends_on('libfabric@1.5.3', when='@1.5.3') + def url_for_version(self, version): + if version >= Version('1.8.1'): + url = "https://github.com/ofiwg/libfabric/releases/download/v{0}/fabtests-{0}.tar.bz2" + else: + url = "https://github.com/ofiwg/fabtests/releases/download/v{0}/fabtests-{0}.tar.gz" + return url.format(version.dotted) diff --git a/var/spack/repos/builtin/packages/fairlogger/package.py b/var/spack/repos/builtin/packages/fairlogger/package.py index 3190f1702c..77d4616097 100644 --- a/var/spack/repos/builtin/packages/fairlogger/package.py +++ b/var/spack/repos/builtin/packages/fairlogger/package.py @@ -17,7 +17,8 @@ class Fairlogger(CMakePackage): maintainers = ['dennisklein', 'ChristianTackeGSI'] # generator = 'Ninja' - version('develop', branch='dev') + version('develop', branch='dev', get_full_repo=True) + version('1.6.2', sha256='5c6ef0c0029eb451fee71756cb96e6c5011040a9813e8889667b6f3b6b04ed03') version('1.6.1', sha256='3894580f4c398d724ba408e410e50f70c9f452e8cfaf7c3ff8118c08df28eaa8') version('1.6.0', sha256='721e8cadfceb2f63014c2a727e098babc6deba653baab8866445a772385d0f5b') version('1.5.0', sha256='8e74e0b1e50ee86f4fca87a44c6b393740b32099ac3880046bf252c31c58dd42') @@ -31,19 +32,22 @@ class Fairlogger(CMakePackage): values=('Debug', 'Release', 'RelWithDebInfo'), multi=False, description='CMake build type') - variant('cxxstd', default='11', + variant('cxxstd', default='default', values=('11', '14', '17'), multi=False, description='Use the specified C++ standard when building.') variant('pretty', default=False, - description='Use BOOST_PRETTY_FUNCTION macro.') + description='Use BOOST_PRETTY_FUNCTION macro (Supported by 1.4+).') conflicts('+pretty', when='@:1.3.99') depends_on('cmake@3.9.4:', type='build') depends_on('git', type='build', when='@develop') + depends_on('boost', when='+pretty') - depends_on('fmt@5.3.0:', when='@1.6.0:') + conflicts('^boost@1.70:', when='^cmake@:3.14') + depends_on('fmt@5.3.0:5.99', when='@1.6.0:1.6.1') + depends_on('fmt@5.3.0:', when='@1.6.2:') def patch(self): """FairLogger gets its version number from git. @@ -55,9 +59,10 @@ class Fairlogger(CMakePackage): 'CMakeLists.txt') def cmake_args(self): - cxxstd = self.spec.variants['cxxstd'].value args = [] - args.append('-DCMAKE_CXX_STANDARD=%s' % cxxstd) + cxxstd = self.spec.variants['cxxstd'].value + if cxxstd != 'default': + args.append('-DCMAKE_CXX_STANDARD=%s' % cxxstd) args.append('-DUSE_BOOST_PRETTY_FUNCTION=%s' % ('ON' if '+pretty' in self.spec else 'OFF')) if self.spec.satisfies('@1.6:'): diff --git a/var/spack/repos/builtin/packages/fast-global-file-status/package.py b/var/spack/repos/builtin/packages/fast-global-file-status/package.py index afc2ef23de..1f48dc4319 100644 --- a/var/spack/repos/builtin/packages/fast-global-file-status/package.py +++ b/var/spack/repos/builtin/packages/fast-global-file-status/package.py @@ -18,6 +18,7 @@ class FastGlobalFileStatus(AutotoolsPackage): depends_on('mrnet') depends_on('mount-point-attributes') depends_on('mpi') + depends_on('openssl') def configure_args(self): spec = self.spec diff --git a/var/spack/repos/builtin/packages/fd-find/package.py b/var/spack/repos/builtin/packages/fd-find/package.py new file mode 100644 index 0000000000..faf7374cb6 --- /dev/null +++ b/var/spack/repos/builtin/packages/fd-find/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 FdFind(Package): + """A simple, fast and user-friendly alternative to 'find'.""" + + homepage = "https://github.com/sharkdp/fd" + url = "https://github.com/sharkdp/fd/archive/v7.3.0.tar.gz" + + version('7.4.0', sha256='33570ba65e7f8b438746cb92bb9bc4a6030b482a0d50db37c830c4e315877537') + + depends_on('rust') + + def install(self, spec, prefix): + cargo = which('cargo') + cargo('install', '--root', prefix, '--path', '.') diff --git a/var/spack/repos/builtin/packages/filo/package.py b/var/spack/repos/builtin/packages/filo/package.py new file mode 100644 index 0000000000..aeba476c04 --- /dev/null +++ b/var/spack/repos/builtin/packages/filo/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 Filo(CMakePackage): + """File flush and fetch, with MPI""" + + homepage = "https://github.com/ecp-veloc/filo" + git = "https://github.com/ecp-veloc/filo.git" + + tags = ['ecp'] + + version('master', branch='master') + + depends_on('mpi') + depends_on('axl') + depends_on('kvtree') + depends_on('spath') + + def cmake_args(self): + args = [] + args.append("-DMPI_C_COMPILER=%s" % self.spec['mpi'].mpicc) + if self.spec.satisfies('platform=cray'): + args.append("-DFILO_LINK_STATIC=ON") + args.append("-DWITH_AXL_PREFIX=%s" % self.spec['axl'].prefix) + args.append("-DWITH_KVTREE_PREFIX=%s" % self.spec['kvtree'].prefix) + args.append("-DWITH_SPATH_PREFIX=%s" % self.spec['spath'].prefix) + return args diff --git a/var/spack/repos/builtin/packages/flatbuffers/package.py b/var/spack/repos/builtin/packages/flatbuffers/package.py index 538922a7de..72ad2e599c 100644 --- a/var/spack/repos/builtin/packages/flatbuffers/package.py +++ b/var/spack/repos/builtin/packages/flatbuffers/package.py @@ -17,3 +17,16 @@ class Flatbuffers(CMakePackage): version('1.10.0', sha256='3714e3db8c51e43028e10ad7adffb9a36fc4aa5b1a363c2d0c4303dd1be59a7c') version('1.9.0', sha256='5ca5491e4260cacae30f1a5786d109230db3f3a6e5a0eb45d0d0608293d247e3') version('1.8.0', sha256='c45029c0a0f1a88d416af143e34de96b3091642722aa2d8c090916c6d1498c2e') + + variant('shared', default=True, + description='Build shared instead of static libraries') + + def cmake_args(self): + args = [] + args.append('-DFLATBUFFERS_BUILD_SHAREDLIB={0}'.format( + 'ON' if '+shared' in self.spec else 'OFF')) + args.append('-DFLATBUFFERS_BUILD_FLATLIB={0}'.format( + 'ON' if '+shared' not in self.spec else 'OFF')) + if 'darwin' in self.spec.architecture: + args.append('-DCMAKE_MACOSX_RPATH=ON') + return args diff --git a/var/spack/repos/builtin/packages/flecsi/package.py b/var/spack/repos/builtin/packages/flecsi/package.py index d78f350c59..fccdd686b0 100644 --- a/var/spack/repos/builtin/packages/flecsi/package.py +++ b/var/spack/repos/builtin/packages/flecsi/package.py @@ -20,12 +20,17 @@ class Flecsi(CMakePackage): homepage = 'http://flecsi.org/' git = 'https://github.com/laristra/flecsi.git' - version('master', branch='master', submodules=False, preferred=True) + version('devel', branch='devel', submodules=False, preferred=False) + version('1', branch='1', submodules=False, preferred=True) + version('1.4', branch='1.4', submodules=False, preferred=False) - variant('build_type', default='Release', values=('Debug', 'Release'), + variant('build_type', default='Release', + values=('Debug', 'Release', 'RelWithDebInfo', 'MinSizeRel'), description='The build type to build', multi=False) - variant('backend', default='mpi', values=('serial', 'mpi', 'legion', 'hpx'), + variant('backend', default='mpi', values=('serial', 'mpi', 'legion', 'hpx', 'charmpp'), description='Backend to use for distributed memory', multi=False) + variant('debug_backend', default=False, + description='Build Backend with Debug Mode') variant('minimal', default=False, description='Disable FindPackageMetis') variant('shared', default=True, @@ -48,28 +53,32 @@ class Flecsi(CMakePackage): description='Build FleCSI Tutorials') variant('flecstan', default=False, description='Build FleCSI Static Analyzer') + variant('cinch', default=False, + description='Enable External Cinch') depends_on('cmake@3.12:', type='build') # Requires cinch > 1.0 due to cinchlog installation issue - depends_on('cinch@1.01:', type='build') + depends_on('cinch@1.01:', type='build', when='+cinch') depends_on('mpi', when='backend=mpi') depends_on('mpi', when='backend=legion') depends_on('mpi', when='backend=hpx') - depends_on('legion@ctrl-rep +shared +mpi +hdf5', when='backend=legion +hdf5') - depends_on('legion@ctrl-rep +shared +mpi', when='backend=legion ~hdf5') - depends_on('hpx@1.3.0 cxxstd=14', when='backend=hpx') + depends_on('legion@ctrl-rep+shared+mpi+hdf5 build_type=Debug', when='backend=legion +debug_backend +hdf5') + depends_on('legion@ctrl-rep+shared+mpi build_type=Debug', when='backend=legion +debug_backend ~hdf5') + depends_on('legion@ctrl-rep+shared+mpi+hdf5 build_type=Release', when='backend=legion ~debug_backend +hdf5') + depends_on('legion@ctrl-rep+shared+mpi build_type=Release', when='backend=legion ~debug_backend ~hdf5') + depends_on('hpx@1.3.0 cxxstd=14 malloc=system build_type=Debug', when='backend=hpx +debug_backend') + depends_on('hpx@1.3.0 cxxstd=14 malloc=system build_type=Release', when='backend=hpx ~debug_backend') depends_on('boost@1.70.0: cxxstd=14 +program_options') depends_on('metis@5.1.0:') depends_on('parmetis@4.0.3:') - depends_on('hdf5', when='+hdf5') + depends_on('hdf5+mpi', when='+hdf5') depends_on('caliper', when='+caliper') depends_on('graphviz', when='+graphviz') depends_on('python@3.0:', when='+tutorial') depends_on('llvm', when='+flecstan') conflicts('+tutorial', when='backend=hpx') -# conflicts('+hdf5', when='backend=hpx') -# conflicts('+hdf5', when='backend=mpi') + # conflicts('+hdf5', when='backend=hpx') def cmake_args(self): spec = self.spec @@ -80,7 +89,9 @@ class Flecsi(CMakePackage): '-DENABLE_COLORING=ON', '-DENABLE_DEVEL_TARGETS=ON' ] - options.append('-DCINCH_SOURCE_DIR=' + spec['cinch'].prefix) + + if '+cinch' in spec: + options.append('-DCINCH_SOURCE_DIR=' + spec['cinch'].prefix) if spec.variants['backend'].value == 'legion': options.append('-DFLECSI_RUNTIME_MODEL=legion') @@ -95,6 +106,11 @@ class Flecsi(CMakePackage): options.append('-DFLECSI_RUNTIME_MODEL=serial') options.append('-DENABLE_MPI=OFF') + if self.run_tests: + options.append('-DENABLE_UNIT_TESTS=ON') + else: + options.append('-DENABLE_UNIT_TESTS=OFF') + if '+minimal' in spec: options.append('-DCMAKE_DISABLE_FIND_PACKAGE_METIS=ON') else: @@ -104,12 +120,7 @@ class Flecsi(CMakePackage): else: options.append('-DBUILD_SHARED_LIBS=OFF') - if self.run_tests: - options.append('-DENABLE_UNIT_TESTS=ON') - else: - options.append('-DENABLE_UNIT_TESTS=OFF') - - if '+hdf5' in spec and spec.variants['backend'].value == 'legion': + if '+hdf5' in spec and spec.variants['backend'].value != 'hpx': options.append('-DENABLE_HDF5=ON') else: options.append('-DENABLE_HDF5=OFF') diff --git a/var/spack/repos/builtin/packages/freeipmi/package.py b/var/spack/repos/builtin/packages/freeipmi/package.py new file mode 100644 index 0000000000..bcb3e502cd --- /dev/null +++ b/var/spack/repos/builtin/packages/freeipmi/package.py @@ -0,0 +1,40 @@ +# 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 llnl.util.tty as tty + + +class Freeipmi(AutotoolsPackage): + """FreeIPMI provides in-band and out-of-band IPMI software based on the IPMI + v1.5/2.0 specification. The IPMI specification defines a set of interfaces + for platform management and is implemented by a number vendors for system + management. The features of IPMI that most users will be interested in are + sensor monitoring, system event monitoring, power control, and + serial-over-LAN (SOL). The FreeIPMI tools and libraries listed below should + provide users with the ability to access and utilize these and many other + features. A number of useful features for large HPC or cluster environments + have also been implemented into FreeIPMI. See the README or FAQ for more + info.""" + + homepage = "https://www.gnu.org/software/freeipmi/" + url = "https://ftp.gnu.org/gnu/freeipmi/freeipmi-1.6.4.tar.gz" + + version('1.6.4', + sha256='65dfbb95a30438ba247f01a58498862a37d2e71c8c950bcfcee459d079241a3c') + + depends_on('libgcrypt') + + parallel = False + + def configure_args(self): + # FIXME: If root checking of root installation is added fix this: + # Discussed in issue #4432 + tty.warn("Requires 'root' for bmc-watchdog.service installation to" + " /lib/systemd/system/ !") + + args = ['--prefix={0}'.format(prefix)] + + return args diff --git a/var/spack/repos/builtin/packages/g4abla/package.py b/var/spack/repos/builtin/packages/g4abla/package.py index 2ce2f6ece1..b14f88d4d9 100644 --- a/var/spack/repos/builtin/packages/g4abla/package.py +++ b/var/spack/repos/builtin/packages/g4abla/package.py @@ -11,6 +11,7 @@ class G4abla(Package): """Geant4 data for nuclear shell effects in INCL/ABLA hadronic mode""" homepage = "http://geant4.web.cern.ch" url = "http://geant4-data.web.cern.ch/geant4-data/datasets/G4ABLA.3.0.tar.gz" + maintainers = ['drbenmorgan'] version( '3.0', sha256='99fd4dcc9b4949778f14ed8364088e45fa4ff3148b3ea36f9f3103241d277014') diff --git a/var/spack/repos/builtin/packages/g4emlow/package.py b/var/spack/repos/builtin/packages/g4emlow/package.py index 81e6b856d4..df6af19e26 100644 --- a/var/spack/repos/builtin/packages/g4emlow/package.py +++ b/var/spack/repos/builtin/packages/g4emlow/package.py @@ -11,6 +11,7 @@ class G4emlow(Package): """Geant4 data files for low energy electromagnetic processes.""" homepage = "http://geant4.web.cern.ch" url = "http://geant4-data.web.cern.ch/geant4-data/datasets/G4EMLOW.6.50.tar.gz" + maintainers = ['drbenmorgan'] version( '6.50', sha256='c97be73fece5fb4f73c43e11c146b43f651c6991edd0edf8619c9452f8ab1236') diff --git a/var/spack/repos/builtin/packages/g4ensdfstate/package.py b/var/spack/repos/builtin/packages/g4ensdfstate/package.py index 514593f34c..06b50b3754 100644 --- a/var/spack/repos/builtin/packages/g4ensdfstate/package.py +++ b/var/spack/repos/builtin/packages/g4ensdfstate/package.py @@ -12,6 +12,8 @@ class G4ensdfstate(Package): homepage = "http://geant4.web.cern.ch" url = "http://geant4-data.web.cern.ch/geant4-data/datasets/G4ENSDFSTATE.2.1.tar.gz" + maintainers = ['drbenmorgan'] + version('2.1', sha256='933e7f99b1c70f24694d12d517dfca36d82f4e95b084c15d86756ace2a2790d9') version('2.2', sha256='dd7e27ef62070734a4a709601f5b3bada6641b111eb7069344e4f99a01d6e0a6') diff --git a/var/spack/repos/builtin/packages/g4ndl/package.py b/var/spack/repos/builtin/packages/g4ndl/package.py index 909f732b5c..7ab6c9f26d 100644 --- a/var/spack/repos/builtin/packages/g4ndl/package.py +++ b/var/spack/repos/builtin/packages/g4ndl/package.py @@ -12,6 +12,8 @@ class G4ndl(Package): homepage = "http://geant4.web.cern.ch" url = "http://geant4-data.web.cern.ch/geant4-data/datasets/G4NDL.4.5.tar.gz" + maintainers = ['drbenmorgan'] + version('4.5', sha256='cba928a520a788f2bc8229c7ef57f83d0934bb0c6a18c31ef05ef4865edcdf8e') def install(self, spec, prefix): diff --git a/var/spack/repos/builtin/packages/g4neutronxs/package.py b/var/spack/repos/builtin/packages/g4neutronxs/package.py index f853780c35..df3de0696c 100644 --- a/var/spack/repos/builtin/packages/g4neutronxs/package.py +++ b/var/spack/repos/builtin/packages/g4neutronxs/package.py @@ -13,6 +13,8 @@ class G4neutronxs(Package): homepage = "http://geant4.web.cern.ch" url = "http://geant4-data.web.cern.ch/geant4-data/datasets/G4NEUTRONXS.1.4.tar.gz" + maintainers = ['drbenmorgan'] + version('1.4', sha256='57b38868d7eb060ddd65b26283402d4f161db76ed2169437c266105cca73a8fd') def install(self, spec, prefix): diff --git a/var/spack/repos/builtin/packages/g4photonevaporation/package.py b/var/spack/repos/builtin/packages/g4photonevaporation/package.py index ff47072c50..4e5c62b999 100644 --- a/var/spack/repos/builtin/packages/g4photonevaporation/package.py +++ b/var/spack/repos/builtin/packages/g4photonevaporation/package.py @@ -12,6 +12,8 @@ class G4photonevaporation(Package): homepage = "http://geant4.web.cern.ch" url = "http://geant4-data.web.cern.ch/geant4-data/datasets/G4PhotonEvaporation.4.3.2.tar.gz" + maintainers = ['drbenmorgan'] + version('4.3.2', sha256='d4641a6fe1c645ab2a7ecee09c34e5ea584fb10d63d2838248bfc487d34207c7') version('5.2', sha256='83607f8d36827b2a7fca19c9c336caffbebf61a359d0ef7cee44a8bcf3fc2d1f') diff --git a/var/spack/repos/builtin/packages/g4pii/package.py b/var/spack/repos/builtin/packages/g4pii/package.py index 65ca27aba2..2e238a6418 100644 --- a/var/spack/repos/builtin/packages/g4pii/package.py +++ b/var/spack/repos/builtin/packages/g4pii/package.py @@ -12,6 +12,8 @@ class G4pii(Package): homepage = "http://geant4.web.cern.ch" url = "http://geant4-data.web.cern.ch/geant4-data/datasets/G4PII.1.3.tar.gz" + maintainers = ['drbenmorgan'] + version('1.3', sha256='6225ad902675f4381c98c6ba25fc5a06ce87549aa979634d3d03491d6616e926') def install(self, spec, prefix): diff --git a/var/spack/repos/builtin/packages/g4radioactivedecay/package.py b/var/spack/repos/builtin/packages/g4radioactivedecay/package.py index e36b0464e1..c281ff63cd 100644 --- a/var/spack/repos/builtin/packages/g4radioactivedecay/package.py +++ b/var/spack/repos/builtin/packages/g4radioactivedecay/package.py @@ -12,6 +12,8 @@ class G4radioactivedecay(Package): homepage = "http://geant4.web.cern.ch" url = "http://geant4-data.web.cern.ch/geant4-data/datasets/G4RadioactiveDecay.5.1.1.tar.gz" + maintainers = ['drbenmorgan'] + version('5.1.1', sha256='f7a9a0cc998f0d946359f2cb18d30dff1eabb7f3c578891111fc3641833870ae') version('5.2', sha256='99c038d89d70281316be15c3c98a66c5d0ca01ef575127b6a094063003e2af5d') diff --git a/var/spack/repos/builtin/packages/g4realsurface/package.py b/var/spack/repos/builtin/packages/g4realsurface/package.py index d20e6fddc5..b741b61ef8 100644 --- a/var/spack/repos/builtin/packages/g4realsurface/package.py +++ b/var/spack/repos/builtin/packages/g4realsurface/package.py @@ -12,6 +12,8 @@ class G4realsurface(Package): homepage = "http://geant4.web.cern.ch" url = "http://geant4-data.web.cern.ch/geant4-data/datasets/RealSurface.1.0.tar.gz" + maintainers = ['drbenmorgan'] + version('1.0', sha256='3e2d2506600d2780ed903f1f2681962e208039329347c58ba1916740679020b1') version('2.1', sha256='2a287adbda1c0292571edeae2082a65b7f7bd6cf2bf088432d1d6f889426dcf3') version('2.1.1', sha256='90481ff97a7c3fa792b7a2a21c9ed80a40e6be386e581a39950c844b2dd06f50') diff --git a/var/spack/repos/builtin/packages/g4saiddata/package.py b/var/spack/repos/builtin/packages/g4saiddata/package.py index 0565276d90..7b03177f73 100644 --- a/var/spack/repos/builtin/packages/g4saiddata/package.py +++ b/var/spack/repos/builtin/packages/g4saiddata/package.py @@ -12,6 +12,8 @@ class G4saiddata(Package): homepage = "http://geant4.web.cern.ch" url = "http://geant4-data.web.cern.ch/geant4-data/datasets/G4SAIDDATA.1.1.tar.gz" + maintainers = ['drbenmorgan'] + version('1.1', sha256='a38cd9a83db62311922850fe609ecd250d36adf264a88e88c82ba82b7da0ed7f') def install(self, spec, prefix): diff --git a/var/spack/repos/builtin/packages/g4tendl/package.py b/var/spack/repos/builtin/packages/g4tendl/package.py index 04ad834271..2a3ecbc074 100644 --- a/var/spack/repos/builtin/packages/g4tendl/package.py +++ b/var/spack/repos/builtin/packages/g4tendl/package.py @@ -12,6 +12,8 @@ class G4tendl(Package): homepage = "http://geant4.web.cern.ch" url = "http://geant4-data.web.cern.ch/geant4-data/datasets/G4TENDL.1.3.tar.gz" + maintainers = ['drbenmorgan'] + version('1.3', sha256='52ad77515033a5d6f995c699809b464725a0e62099b5e55bf07c8bdd02cd3bce') version('1.3.2', sha256='3b2987c6e3bee74197e3bd39e25e1cc756bb866c26d21a70f647959fc7afb849') diff --git a/var/spack/repos/builtin/packages/gcc/glibc-2.31-libsanitizer-1.patch b/var/spack/repos/builtin/packages/gcc/glibc-2.31-libsanitizer-1.patch new file mode 100644 index 0000000000..96037707d3 --- /dev/null +++ b/var/spack/repos/builtin/packages/gcc/glibc-2.31-libsanitizer-1.patch @@ -0,0 +1,37 @@ +From ce9568e9e9cf6094be30e748821421e703754ffc Mon Sep 17 00:00:00 2001 +From: Jakub Jelinek <jakub@redhat.com> +Date: Fri, 8 Nov 2019 19:53:18 +0100 +Subject: [PATCH] backport: re PR sanitizer/92154 (new glibc breaks arm + bootstrap due to libsanitizer) + + Backported from mainline + 2019-10-22 Tamar Christina <tamar.christina@arm.com> + + PR sanitizer/92154 + * sanitizer_common/sanitizer_platform_limits_posix.cc: + Cherry-pick compiler-rt revision r375220. + +From-SVN: r277981 +--- + libsanitizer/ChangeLog | 9 +++++++++ + .../sanitizer_common/sanitizer_platform_limits_posix.cc | 6 +++++- + 2 files changed, 14 insertions(+), 1 deletion(-) + +diff --git a/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cc b/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cc +index 6cd4a5bac8b0..06a605ff4670 100644 +--- a/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cc ++++ b/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cc +@@ -1156,8 +1156,12 @@ CHECK_SIZE_AND_OFFSET(ipc_perm, uid); + CHECK_SIZE_AND_OFFSET(ipc_perm, gid); + CHECK_SIZE_AND_OFFSET(ipc_perm, cuid); + CHECK_SIZE_AND_OFFSET(ipc_perm, cgid); +-#if !defined(__aarch64__) || !SANITIZER_LINUX || __GLIBC_PREREQ (2, 21) ++#if (!defined(__aarch64__) || !SANITIZER_LINUX || __GLIBC_PREREQ (2, 21)) && \ ++ !defined(__arm__) + /* On aarch64 glibc 2.20 and earlier provided incorrect mode field. */ ++/* On Arm glibc 2.31 and later provide a different mode field, this field is ++ never used by libsanitizer so we can simply ignore this assert for all glibc ++ versions. */ + CHECK_SIZE_AND_OFFSET(ipc_perm, mode); + #endif + diff --git a/var/spack/repos/builtin/packages/gcc/glibc-2.31-libsanitizer-2.patch b/var/spack/repos/builtin/packages/gcc/glibc-2.31-libsanitizer-2.patch new file mode 100644 index 0000000000..75234436e8 --- /dev/null +++ b/var/spack/repos/builtin/packages/gcc/glibc-2.31-libsanitizer-2.patch @@ -0,0 +1,73 @@ +From 75003cdd23c310ec385344e8040d490e8dd6d2be Mon Sep 17 00:00:00 2001 +From: Jakub Jelinek <jakub@redhat.com> +Date: Fri, 20 Dec 2019 17:58:35 +0100 +Subject: [PATCH] backport: re PR sanitizer/92154 (new glibc breaks arm + bootstrap due to libsanitizer) + + Backported from mainline + 2019-11-26 Jakub Jelinek <jakub@redhat.com> + + PR sanitizer/92154 + * sanitizer_common/sanitizer_platform_limits_posix.h: Cherry-pick + llvm-project revision 947f9692440836dcb8d88b74b69dd379d85974ce. + * sanitizer_common/sanitizer_platform_limits_posix.cc: Likewise. + +From-SVN: r279653 +--- + libsanitizer/ChangeLog | 10 ++++++++++ + .../sanitizer_platform_limits_posix.cc | 9 +++------ + .../sanitizer_platform_limits_posix.h | 15 +-------------- + 3 files changed, 14 insertions(+), 20 deletions(-) + +diff --git a/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cc b/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cc +index 06a605ff4670..d823a12190c0 100644 +--- a/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cc ++++ b/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cc +@@ -1156,12 +1156,9 @@ CHECK_SIZE_AND_OFFSET(ipc_perm, uid); + CHECK_SIZE_AND_OFFSET(ipc_perm, gid); + CHECK_SIZE_AND_OFFSET(ipc_perm, cuid); + CHECK_SIZE_AND_OFFSET(ipc_perm, cgid); +-#if (!defined(__aarch64__) || !SANITIZER_LINUX || __GLIBC_PREREQ (2, 21)) && \ +- !defined(__arm__) +-/* On aarch64 glibc 2.20 and earlier provided incorrect mode field. */ +-/* On Arm glibc 2.31 and later provide a different mode field, this field is +- never used by libsanitizer so we can simply ignore this assert for all glibc +- versions. */ ++#if !SANITIZER_LINUX || __GLIBC_PREREQ (2, 31) ++/* glibc 2.30 and earlier provided 16-bit mode field instead of 32-bit ++ on many architectures. */ + CHECK_SIZE_AND_OFFSET(ipc_perm, mode); + #endif + +diff --git a/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.h b/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.h +index 73af92af1e8f..6a673a7c9959 100644 +--- a/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.h ++++ b/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.h +@@ -211,26 +211,13 @@ namespace __sanitizer { + u64 __unused1; + u64 __unused2; + #elif defined(__sparc__) +-#if defined(__arch64__) + unsigned mode; +- unsigned short __pad1; +-#else +- unsigned short __pad1; +- unsigned short mode; + unsigned short __pad2; +-#endif + unsigned short __seq; + unsigned long long __unused1; + unsigned long long __unused2; +-#elif defined(__mips__) || defined(__aarch64__) || defined(__s390x__) +- unsigned int mode; +- unsigned short __seq; +- unsigned short __pad1; +- unsigned long __unused1; +- unsigned long __unused2; + #else +- unsigned short mode; +- unsigned short __pad1; ++ unsigned int mode; + unsigned short __seq; + unsigned short __pad2; + #if defined(__x86_64__) && !defined(_LP64) diff --git a/var/spack/repos/builtin/packages/gcc/package.py b/var/spack/repos/builtin/packages/gcc/package.py index 431fcaa9da..f3891161a2 100644 --- a/var/spack/repos/builtin/packages/gcc/package.py +++ b/var/spack/repos/builtin/packages/gcc/package.py @@ -25,9 +25,11 @@ class Gcc(AutotoolsPackage, GNUMirrorPackage): version('develop', svn=svn + 'trunk') + version('9.3.0', sha256='71e197867611f6054aa1119b13a0c0abac12834765fe2d81f35ac57f84f742d1') version('9.2.0', sha256='ea6ef08f121239da5695f76c9b33637a118dcf63e24164422231917fa61fb206') version('9.1.0', sha256='79a66834e96a6050d8fe78db2c3b32fb285b230b855d0a66288235bc04b327a0') + version('8.4.0', sha256='e30a6e52d10e1f27ed55104ad233c30bd1e99cfb5ff98ab022dc941edd1b2dd4') version('8.3.0', sha256='64baadfe6cc0f4947a84cb12d7f0dfaf45bb58b7e92461639596c21e02d97d2c') version('8.2.0', sha256='196c3c04ba2613f893283977e6011b2345d1cd1af9abeac58e916b1aab3e0080') version('8.1.0', sha256='1d1866f992626e61349a1ccd0b8d5253816222cdc13390dcfaa74b093aa2b153') @@ -107,12 +109,16 @@ class Gcc(AutotoolsPackage, GNUMirrorPackage): depends_on('zip', type='build', when='languages=java') depends_on('cuda', when='+nvptx') + # The server is sometimes a bit slow to respond + timeout = {'timeout': 60} + resource( name='newlib', url='ftp://sourceware.org/pub/newlib/newlib-3.0.0.20180831.tar.gz', sha256='3ad3664f227357df15ff34e954bfd9f501009a647667cd307bf0658aefd6eb5b', destination='newlibsource', - when='+nvptx' + when='+nvptx', + fetch_options=timeout ) # nvptx-tools does not seem to work as a dependency, @@ -193,6 +199,11 @@ class Gcc(AutotoolsPackage, GNUMirrorPackage): # Binutils can't build ld on macOS conflicts('+binutils', when='platform=darwin') + # Newer binutils than RHEL's is required to run `as` on some instructions + # generated by new GCC (see https://github.com/spack/spack/issues/12235) + conflicts('~binutils', when='@7: os=rhel6', + msg='New GCC cannot use system assembler on RHEL6') + if sys.platform == 'darwin': # Fix parallel build on APFS filesystem # https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81797 @@ -212,7 +223,7 @@ class Gcc(AutotoolsPackage, GNUMirrorPackage): # Fix system headers for Catalina SDK # (otherwise __OSX_AVAILABLE_STARTING ends up undefined) patch('https://raw.githubusercontent.com/Homebrew/formula-patches/b8b8e65e/gcc/9.2.0-catalina.patch', - sha256='0b8d14a7f3c6a2f0d2498526e86e088926671b5da50a554ffa6b7f73ac4f132b', when='@9.2.0:') + sha256='0b8d14a7f3c6a2f0d2498526e86e088926671b5da50a554ffa6b7f73ac4f132b', when='@9.2.0') # Use -headerpad_max_install_names in the build, # otherwise updated load commands won't fit in the Mach-O header. # This is needed because `gcc` avoids the superenv shim. @@ -224,6 +235,10 @@ class Gcc(AutotoolsPackage, GNUMirrorPackage): patch('piclibs.patch', when='+piclibs') patch('gcc-backport.patch', when='@4.7:4.9.2,5:5.3') + # Backport libsanitizer patch for glibc >= 2.31 and 8.1.0 <= gcc <= 9.2.0 + # https://bugs.gentoo.org/708346 + patch('glibc-2.31-libsanitizer-1.patch', when='@8.1.0:9.2.0') + patch('glibc-2.31-libsanitizer-2.patch', when='@8.1.0:9.2.0') # Older versions do not compile with newer versions of glibc # https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81712 patch('ucontext_t.patch', when='@4.9,5.1:5.4,6.1:6.4,7.1') diff --git a/var/spack/repos/builtin/packages/geant4-data/package.py b/var/spack/repos/builtin/packages/geant4-data/package.py index c1372dee1a..f5c4e72fac 100644 --- a/var/spack/repos/builtin/packages/geant4-data/package.py +++ b/var/spack/repos/builtin/packages/geant4-data/package.py @@ -14,6 +14,8 @@ class Geant4Data(Package): homepage = "http://geant4.cern.ch" url = "http://geant4-data.web.cern.ch/geant4-data/ReleaseNotes/ReleaseNotes4.10.3.html" + maintainers = ['drbenmorgan'] + version('10.03.p03', sha256='3e0d4d4e6854c8667d930fd5beaec09b7e6ec41f4847935e5d6a2720d0094b30', expand=False) version('10.04', sha256='f67fb899b99348a1a7e471a05f249f972e7e303c78238fc5f693b99968642255', expand=False) diff --git a/var/spack/repos/builtin/packages/geant4/package.py b/var/spack/repos/builtin/packages/geant4/package.py index 6fb2318479..f3bcb121f6 100644 --- a/var/spack/repos/builtin/packages/geant4/package.py +++ b/var/spack/repos/builtin/packages/geant4/package.py @@ -17,6 +17,8 @@ class Geant4(CMakePackage): homepage = "http://geant4.cern.ch/" url = "http://geant4.cern.ch/support/source/geant4.10.01.p03.tar.gz" + maintainers = ['drbenmorgan'] + version('10.05.p01', sha256='f4a292220500fad17e0167ce3153e96e3410ecbe96284e572dc707f63523bdff') version('10.04', sha256='f6d883132f110eb036c69da2b21df51f13c585dc7b99d4211ddd32f4ccee1670') version('10.03.p03', sha256='a164f49c038859ab675eec474d08c9d02be8c4be9c0c2d3aa8e69adf89e1e138') @@ -56,7 +58,6 @@ class Geant4(CMakePackage): depends_on("expat") depends_on("zlib") - depends_on("xerces-c") depends_on("gl", when='+opengl') depends_on("glx", when='+opengl+x11') depends_on("libx11", when='+x11') diff --git a/var/spack/repos/builtin/packages/gengetopt/package.py b/var/spack/repos/builtin/packages/gengetopt/package.py new file mode 100644 index 0000000000..44389fa38a --- /dev/null +++ b/var/spack/repos/builtin/packages/gengetopt/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 Gengetopt(AutotoolsPackage): + """Tool to write command line option parsing code for C programs""" + + homepage = "https://www.gnu.org/software/gengetopt/gengetopt.html" + url = "ftp://ftp.gnu.org/gnu/gengetopt/gengetopt-2.23.tar.xz" + + maintainers = ['rblake-llnl'] + + version('2.23', sha256='b941aec9011864978dd7fdeb052b1943535824169d2aa2b0e7eae9ab807584ac') + version('2.22.6', sha256='30b05a88604d71ef2a42a2ef26cd26df242b41f5b011ad03083143a31d9b01f7') + version('2.22.5', sha256='3b6fb3240352b0eb0c5b8583b58b62cbba58167cef5a7e82fa08a7f968ed2137') + version('2.22.4', sha256='4edf6b24ec8085929c86835c51d5bf904052cc671530c15f9314d9b87fe54421') + version('2.22.3', sha256='8ce6b3df49cefea97bd522dc054ede2037939978bf23754d5c17311e5a1df3dc') + version('2.22.2', sha256='4bf96bea9f80ac85c716cd07f5fe68602db7f380f6dc2d025f17139aa0b56455') + version('2.22.1', sha256='e8d1de4f8c102263844886a2f2b57d82c291c1eae6307ea406fb96f29a67c3a7') + version('2.22', sha256='b605555e41e9bf7e852a37b051e6a49014e561f21290680e3a60c279488d417e') + version('2.21', sha256='355a32310b2fee5e7289d6d6e89eddd13275a7c85a243dc5dd293a6cb5bb047e') + version('2.20', sha256='4c8b3b42cecff579f5f9de5ccad47e0849e0245e325a04ff5985c248141af1a4') + + parallel = False + + def url_for_version(self, version): + url = 'ftp://ftp.gnu.org/gnu/gengetopt/gengetopt-{0}.tar.{1}' + if version >= Version('2.23'): + suffix = 'xz' + else: + suffix = 'gz' + return url.format(version, suffix) diff --git a/var/spack/repos/builtin/packages/glfw/package.py b/var/spack/repos/builtin/packages/glfw/package.py new file mode 100644 index 0000000000..168fff8b0e --- /dev/null +++ b/var/spack/repos/builtin/packages/glfw/package.py @@ -0,0 +1,39 @@ +# 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 Glfw(CMakePackage): + """GLFW is an Open Source, multi-platform library for + OpenGL, OpenGL ES and Vulkan development on the desktop. It + provides a simple API for creating windows, contexts and + surfaces, receiving input and events.""" + + homepage = "https://www.glfw.org/" + url = "https://github.com/glfw/glfw/archive/3.3.2.tar.gz" + + version('3.3.2', sha256='98768e12e615fbe9f3386f5bbfeb91b5a3b45a8c4c77159cef06b1f6ff749537') + version('3.3.1', sha256='6bca16e69361798817a4b62a5239a77253c29577fcd5d52ae8b85096e514177f') + version('3.3', sha256='81bf5fde487676a8af55cb317830703086bb534c53968d71936e7b48ee5a0f3e') + version('3.2.1', sha256='e10f0de1384d75e6fc210c53e91843f6110d6c4f3afbfb588130713c2f9d8fe8') + version('3.2', sha256='cb3aab46757981a39ae108e5207a1ecc4378e68949433a2b040ce2e17d8f6aa6') + version('3.1.2', sha256='6ac642087682aaf7f8397761a41a99042b2c656498217a1c63ba9706d1eef122') + version('3.1.1', sha256='4de311ec9bf43bfdc8423ddf93b91dc54dc73dcfbedfb0991b6fbb3a9baf245f') + version('3.1', sha256='2140f4c532e7ce4c84cb7e4c419d0979d5954fa1ce204b7646491bd2cc5bf308') + version('3.0.4', sha256='a4e7c57db2086803de4fc853bd472ff8b6d2639b9aa16e6ac6b19ffb53958caf') + version('3.0.3', sha256='7a182047ba6b1fdcda778b79aac249bb2328b6d141188cb5df29560715d01693') + + depends_on('libxrandr') + depends_on('libxinerama') + depends_on('libxcursor') + depends_on('libxdamage') + depends_on('libxft') + depends_on('libxi') + depends_on('libxmu') + depends_on('freetype') + depends_on('fontconfig') + depends_on('doxygen', type='build') + depends_on('pkgconfig', type='build') diff --git a/var/spack/repos/builtin/packages/glusterfs/package.py b/var/spack/repos/builtin/packages/glusterfs/package.py new file mode 100644 index 0000000000..89024cf977 --- /dev/null +++ b/var/spack/repos/builtin/packages/glusterfs/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 Glusterfs(AutotoolsPackage): + """Gluster is a software defined distributed storage that can scale to + several petabytes. It provides interfaces for object, block and file + storage.""" + + homepage = "https://www.gluster.org/" + url = "https://download.gluster.org/pub/gluster/glusterfs/7/7.3/glusterfs-7.3.tar.gz" + list_url = "https://download.gluster.org/pub/gluster/glusterfs/" + list_depth = 2 + + version('7.3', sha256='2401cc7c3f5488f6fc5ea09ce2ab30c918612f592571fb3de6124f8482ad4954') + version('7.2', sha256='8e43614967b90d64495fbe2c52230dd72572ce219507fb48bc317b1c228a06e1') + version('7.1', sha256='ffc5bd78b079009382bd01391865646bc9b2e8e72366afc96d62ba891dd9dbce') + version('7.0', sha256='8a872518bf9bd4dc1568f45c716bcde09e3bf7abf5b156ea90405e0fc2e9f07b') + version('6.8', sha256='41e855bdc456759c8c15ef494c636a25cc7b62c55ad132ecd55bec05df64793f') + version('6.7', sha256='e237dd59a2d5b73e156b0b71df49ff64a143b3aaf8f0a65daaf369bb40f5e923') + + depends_on('m4', type='build') + depends_on('autoconf', type='build') + depends_on('automake', type='build') + depends_on('libtool', type='build') + depends_on('flex', type='build') + depends_on('bison', type='build') + depends_on('rpcsvc-proto') + depends_on('acl') + depends_on('libuuid') + depends_on('libtirpc') + depends_on('userspace-rcu') + + def url_for_version(self, version): + url = 'https://download.gluster.org/pub/gluster/glusterfs/{0}/{1}/glusterfs-{1}.tar.gz' + return url.format(version.up_to(1), version) + + def autoreconf(self, spec, prefix): + bash = which('bash') + bash('./autogen.sh') diff --git a/var/spack/repos/builtin/packages/gmsh/package.py b/var/spack/repos/builtin/packages/gmsh/package.py index b5d677bd99..522a315f29 100644 --- a/var/spack/repos/builtin/packages/gmsh/package.py +++ b/var/spack/repos/builtin/packages/gmsh/package.py @@ -19,6 +19,7 @@ class Gmsh(CMakePackage): homepage = 'http://gmsh.info' url = 'http://gmsh.info/src/gmsh-4.4.1-source.tgz' + version('4.5.4', sha256='ccf8c74f43cbe3c371abe79862025d41642b3538a0148f018949494e3b3e2ecd') version('4.4.1', sha256='853c6438fc4e4b765206e66a514b09182c56377bb4b73f1d0d26eda7eb8af0dc') version('4.2.2', sha256='e9ee9f5c606bbec5f2adbb8c3d6023c4e2577f487fa4e4ecfcfc94a241cc8dcc') version('4.0.0', sha256='fb0c8afa37425c6f4315ab3b3124e9e102fcf270a35198423a4002796f04155f') @@ -31,16 +32,18 @@ class Gmsh(CMakePackage): variant('shared', default=True, description='Enables the build of shared libraries') variant('mpi', default=True, description='Builds MPI support for parser and solver') - variant('openmp', default=False, description='Enable OpenMP support') + variant('openmp', default=False, description='Enable OpenMP support') variant('fltk', default=False, description='Enables the build of the FLTK GUI') variant('hdf5', default=False, description='Enables HDF5 support') variant('compression', default=True, description='Enables IO compression through zlib') variant('netgen', default=False, description='Build with Netgen') + variant('opencascade', default=False, description='Build with OpenCASCADE') variant('oce', default=False, description='Build with OCE') variant('petsc', default=False, description='Build with PETSc') variant('slepc', default=False, description='Build with SLEPc (only when PETSc is enabled)') variant('tetgen', default=False, description='Build with Tetgen') - variant('metis', default=False, description='Build with Metis') + variant('metis', default=False, description='Build with Metis') + variant('privateapi', default=False, description='Enable the private API') depends_on('blas') depends_on('lapack') @@ -51,6 +54,7 @@ class Gmsh(CMakePackage): depends_on('fltk', when='+fltk') depends_on('hdf5', when='+hdf5') depends_on('netgen', when='+netgen') + depends_on('opencascade', when='+opencascade') depends_on('oce', when='+oce') depends_on('petsc+mpi', when='+petsc+mpi') depends_on('petsc', when='+petsc~mpi') @@ -60,6 +64,7 @@ class Gmsh(CMakePackage): depends_on('metis', when='+metis') conflicts('+slepc', when='~petsc') + conflicts('+oce', when='+opencascade') def cmake_args(self): spec = self.spec @@ -96,6 +101,9 @@ class Gmsh(CMakePackage): if '+oce' in spec: env['CASROOT'] = self.spec['oce'].prefix options.append('-DENABLE_OCC=ON') + elif '+opencascade' in spec: + env['CASROOT'] = self.spec['opencascade'].prefix + options.append('-DENABLE_OCC=ON') else: options.append('-DENABLE_OCC=OFF') @@ -142,4 +150,9 @@ class Gmsh(CMakePackage): if '+compression' in spec: options.append('-DENABLE_COMPRESSED_IO:BOOL=ON') + if '+privateapi' in spec: + options.append('-DENABLE_PRIVATE_API=ON') + else: + options.append('-DENABLE_PRIVATE_API=OFF') + return options diff --git a/var/spack/repos/builtin/packages/gnupg/package.py b/var/spack/repos/builtin/packages/gnupg/package.py index 65005a4bba..943f14d31f 100644 --- a/var/spack/repos/builtin/packages/gnupg/package.py +++ b/var/spack/repos/builtin/packages/gnupg/package.py @@ -7,38 +7,49 @@ from spack import * class Gnupg(AutotoolsPackage): - """GnuPG is a complete and free implementation of the OpenPGP - standard as defined by RFC4880 """ + """GNU Pretty Good Privacy (PGP) package.""" homepage = "https://gnupg.org/index.html" - url = "https://gnupg.org/ftp/gcrypt/gnupg/gnupg-2.2.17.tar.bz2" + url = "https://gnupg.org/ftp/gcrypt/gnupg/gnupg-2.2.19.tar.bz2" + version('2.2.19', sha256='242554c0e06f3a83c420b052f750b65ead711cc3fddddb5e7274fcdbb4e9dec0') version('2.2.17', sha256='afa262868e39b651a2db4c071fba90415154243e83a830ca00516f9a807fd514') version('2.2.15', sha256='cb8ce298d7b36558ffc48aec961b14c830ff1783eef7a623411188b5e0f5d454') version('2.2.3', sha256='cbd37105d139f7aa74f92b6f65d136658682094b0e308666b820ae4b984084b4') version('2.1.21', sha256='7aead8a8ba75b69866f583b6c747d91414d523bfdfbe9a8e0fe026b16ba427dd') + depends_on('npth@1.2:') + depends_on('libgpg-error@1.24:') depends_on('libgcrypt@1.7.0:') + depends_on('libksba@1.3.4:') depends_on('libassuan@2.4:', when='@:2.2.3') depends_on('libassuan@2.5:', when='@2.2.15:') - depends_on('libksba@1.3.4:') - depends_on('libgpg-error@1.24:') - depends_on('npth@1.2:') - depends_on('zlib') + depends_on('pinentry', type='run') depends_on('libiconv') + depends_on('zlib') def configure_args(self): - return [ - '--without-tar', + args = [ + '--disable-bzip2', + '--disable-sqlite', + '--disable-ntbtls', + '--disable-gnutls', + '--disable-ldap', + '--disable-regex', + '--with-pinentry-pgm=' + self.spec['pinentry'].command.path, '--with-libgpg-error-prefix=' + self.spec['libgpg-error'].prefix, '--with-libgcrypt-prefix=' + self.spec['libgcrypt'].prefix, '--with-libassuan-prefix=' + self.spec['libassuan'].prefix, '--with-ksba-prefix=' + self.spec['libksba'].prefix, '--with-npth-prefix=' + self.spec['npth'].prefix, - '--without-ldap', '--with-libiconv-prefix=' + self.spec['libiconv'].prefix, - '--without-regex', '--with-zlib=' + self.spec['zlib'].prefix, - '--without-bzip2', + '--without-tar', + '--without-libiconv-prefix', '--without-readline', ] + + if self.run_tests: + args.append('--enable-all-tests') + + return args diff --git a/var/spack/repos/builtin/packages/go/package.py b/var/spack/repos/builtin/packages/go/package.py index 75d183148f..09d5796c09 100644 --- a/var/spack/repos/builtin/packages/go/package.py +++ b/var/spack/repos/builtin/packages/go/package.py @@ -35,6 +35,7 @@ class Go(Package): extendable = True + version('1.14', sha256='6d643e46ad565058c7a39dac01144172ef9bd476521f42148be59249e4b74389') version('1.13.8', sha256='b13bf04633d4d8cf53226ebeaace8d4d2fd07ae6fa676d0844a688339debec34') version('1.13.7', sha256='e4ad42cc5f5c19521fbbbde3680995f2546110b5c6aa2b48c3754ff7af9b41f4') version('1.13.6', sha256='aae5be954bdc40bcf8006eb77e8d8a5dde412722bc8effcdaf9772620d06420c') diff --git a/var/spack/repos/builtin/packages/gromacs/package.py b/var/spack/repos/builtin/packages/gromacs/package.py index bc61efdbe9..037b25721b 100644 --- a/var/spack/repos/builtin/packages/gromacs/package.py +++ b/var/spack/repos/builtin/packages/gromacs/package.py @@ -2,8 +2,7 @@ # Spack Project Developers. See the top-level COPYRIGHT file for details. # # SPDX-License-Identifier: (Apache-2.0 OR MIT) - -from spack import * +import llnl.util.cpu class Gromacs(CMakePackage): @@ -24,8 +23,10 @@ class Gromacs(CMakePackage): git = 'https://github.com/gromacs/gromacs.git' maintainers = ['junghans', 'marvinbernhardt'] - version('develop', branch='master') + version('master', branch='master') + version('2020.1', sha256='e1666558831a3951c02b81000842223698016922806a8ce152e8f616e29899cf') version('2020', sha256='477e56142b3dcd9cb61b8f67b24a55760b04d1655e8684f979a75a5eec40ba01') + version('2019.6', sha256='bebe396dc0db11a9d4cc205abc13b50d88225617642508168a2195324f06a358') version('2019.5', sha256='438061a4a2d45bbb5cf5c3aadd6c6df32d2d77ce8c715f1c8ffe56156994083a') version('2019.4', sha256='ba4366eedfc8a1dbf6bddcef190be8cd75de53691133f305a7f9c296e5ca1867') version('2019.3', sha256='4211a598bf3b7aca2b14ad991448947da9032566f13239b1a05a2d4824357573') @@ -60,12 +61,6 @@ class Gromacs(CMakePackage): description='The build type to build', values=('Debug', 'Release', 'RelWithDebInfo', 'MinSizeRel', 'Reference', 'RelWithAssert', 'Profile')) - variant('simd', default='auto', - description='The SIMD instruction set to use', - values=('auto', 'none', 'SSE2', 'SSE4.1', 'AVX_128_FMA', 'AVX_256', - 'AVX2_128', 'AVX2_256', 'AVX_512', 'AVX_512_KNL', - 'IBM_QPX', 'Sparc64_HPC_ACE', 'IBM_VMX', 'IBM_VSX', - 'ARM_NEON', 'ARM_NEON_ASIMD')) variant('rdtscp', default=True, description='Enable RDTSCP instruction usage') variant('mdrun_only', default=False, description='Enables the build of a cut-down version' @@ -117,13 +112,40 @@ class Gromacs(CMakePackage): else: options.append('-DGMX_GPU:BOOL=OFF') - simd_value = self.spec.variants['simd'].value - if simd_value == 'auto': - pass - elif simd_value == 'none': - options.append('-DGMX_SIMD:STRING=None') + # Activate SIMD based on properties of the target + target = self.spec.target + if target >= llnl.util.cpu.targets['bulldozer']: + # AMD Family 15h + options.append('-DGMX_SIMD=AVX_128_FMA') + elif target >= llnl.util.cpu.targets['zen']: + # AMD Family 17h + options.append('-DGMX_SIMD=AVX2_128') + elif target >= llnl.util.cpu.targets['power7']: + # IBM Power 7 and beyond + options.append('-DGMX_SIMD=IBM_VSX') + elif target.family == llnl.util.cpu.targets['aarch64']: + # ARMv8 + options.append('-DGMX_SIMD=ARM_NEON_ASIMD') + elif target == llnl.util.cpu.targets['mic_knl']: + # Intel KNL + options.append('-DGMX_SIMD=AVX_512_KNL') + elif target.vendor == 'GenuineIntel': + # Other Intel architectures + simd_features = [ + ('sse2', 'SSE2'), + ('sse4_1', 'SSE4.1'), + ('avx', 'AVX_256'), + ('axv128', 'AVX2_128'), + ('avx2', 'AVX2_256'), + ('avx512', 'AVX_512'), + ] + for feature, flag in reversed(simd_features): + if feature in target: + options.append('-DGMX_SIMD:STRING={0}'.format(flag)) + break else: - options.append('-DGMX_SIMD:STRING=' + simd_value) + # Fall back to this for unknown microarchitectures + options.append('-DGMX_SIMD:STRING=None') if '-rdtscp' in self.spec: options.append('-DGMX_USE_RDTSCP:BOOL=OFF') diff --git a/var/spack/repos/builtin/packages/gsl/gsl-2.3-cblas.patch b/var/spack/repos/builtin/packages/gsl/gsl-2.3-cblas.patch new file mode 100644 index 0000000000..7417ca57a7 --- /dev/null +++ b/var/spack/repos/builtin/packages/gsl/gsl-2.3-cblas.patch @@ -0,0 +1,323 @@ + Makefile.am | 8 +- + ax_cblas.m4 | 69 +++++ + bspline/Makefile.am | 2 +- + configure.ac | 10 + + eigen/Makefile.am | 2 +- + gsl-config.in | 4 +- + gsl.pc.in | 2 +- + interpolation/Makefile.am | 2 +- + linalg/Makefile.am | 2 +- + multifit/Makefile.am | 4 +- + multimin/Makefile.am | 4 +- + multiroots/Makefile.am | 2 +- + ode-initval/Makefile.am | 2 +- + poly/Makefile.am | 2 +- + specfunc/Makefile.am | 2 +- + wavelet/Makefile.am | 2 +- + 31 files changed, 1157 insertions(+), 19 deletions(-) + +diff --git a/Makefile.am b/Makefile.am +index c522001..4513bc8 100644 +--- a/Makefile.am ++++ b/Makefile.am +@@ -19,7 +19,7 @@ EXTRA_DIST = autogen.sh gsl-config.in gsl.pc.in configure.ac THANKS BUGS gsl.spe + + lib_LTLIBRARIES = libgsl.la + libgsl_la_SOURCES = version.c +-libgsl_la_LIBADD = $(GSL_LIBADD) $(SUBLIBS) ++libgsl_la_LIBADD = $(GSL_LIBADD) $(SUBLIBS) @CBLAS_LINK_LIBS@ + libgsl_la_LDFLAGS = $(GSL_LDFLAGS) -version-info $(GSL_LT_VERSION) + noinst_HEADERS = templates_on.h templates_off.h build.h + +@@ -29,10 +29,10 @@ m4data_DATA = gsl.m4 + bin_PROGRAMS = gsl-randist gsl-histogram + + gsl_randist_SOURCES = gsl-randist.c +-gsl_randist_LDADD = libgsl.la cblas/libgslcblas.la ++gsl_randist_LDADD = libgsl.la + + gsl_histogram_SOURCES = gsl-histogram.c +-gsl_histogram_LDADD = libgsl.la cblas/libgslcblas.la ++gsl_histogram_LDADD = libgsl.la + + check_SCRIPTS = test_gsl_histogram.sh pkgconfig.test + TESTS = test_gsl_histogram.sh pkgconfig.test +@@ -51,6 +51,8 @@ edit = $(SED) \ + -e 's|@GSL_CFLAGS[@]|$(GSL_CFLAGS)|g' \ + -e 's|@GSL_LIBM[@]|$(GSL_LIBM)|g' \ + -e 's|@GSL_LIBS[@]|$(GSL_LIBS)|g' \ ++ -e 's|@CBLAS_CFLAGS[@]|$(CBLAS_CFLAGS)|g' \ ++ -e 's|@CBLAS_LIBS[@]|$(CBLAS_LIBS)|g' \ + -e 's|@LIBS[@]|$(LIBS)|g' \ + -e 's|@VERSION[@]|$(VERSION)|g' + +diff --git a/ax_cblas.m4 b/ax_cblas.m4 +new file mode 100644 +index 0000000..6ef143a +--- /dev/null ++++ b/ax_cblas.m4 +@@ -0,0 +1,69 @@ ++AC_DEFUN([AX_CBLAS],[ ++ ++ ext_cblas=no ++ ext_cblas_libs="-lcblas" ++ ext_cblas_cflags="" ++ ++ AC_ARG_WITH(cblas-external, ++ [AS_HELP_STRING([--with-cblas-external], ++ [Use external CBLAS library (default is no)])], ++ [with_ext_cblas=$withval], ++ [with_ext_cblas=no]) ++ ++ case $with_ext_cblas in ++ no) ext_cblas=no ;; ++ yes) ext_cblas=yes ;; ++ -* | */* | *.a | *.so | *.so.* | *.o) ++ ext_cblas=yes ++ ext_cblas_libs="$with_cblas" ;; ++ *) ext_cblas=yes ++ ext_cblas_libs="-l$with_cblas" ;; ++ esac ++ ++ AC_ARG_WITH(cblas-external-libs, ++ [AS_HELP_STRING([--with-cblas-external-libs=<libs>], ++ [External cblas libraries to link with (default is "$ext_cblas_libs")])], ++ [ext_cblas_libs=$withval], ++ []) ++ ++ AC_ARG_WITH(cblas-external-cflags, ++ [AS_HELP_STRING([--with-cblas-external-cflags=<flags>], ++ [Pre-processing flags to compile with external cblas ("-I<dir>")])], ++ [ext_cblas_cflags=$withval], ++ []) ++ ++ if test x$ext_cblas != xno; then ++ if test "x$CBLAS_LIBS" = x; then ++ CBLAS_LIBS="$ext_cblas_libs" ++ fi ++ if test "x$CBLAS_CFLAGS" = x; then ++ CBLAS_CFLAGS="$ext_cblas_cflags" ++ fi ++ ++ CFLAGS_sav="$CFLAGS" ++ CFLAGS="$CFLAGS $CBLAS_CFLAGS" ++ AC_CHECK_HEADER(cblas.h, , ++ [AC_MSG_ERROR([ ++ *** Header file cblas.h not found. ++ *** If you installed cblas header in a non standard place, ++ *** specify its install prefix using the following option ++ *** --with-cblas-external-cflags="-I<include_dir>"]) ++ ]) ++ CFLAGS="$CFLAGS_sav" ++ ++ LIBS_sav="$LIBS" ++ LIBS="$LIBS $CBLAS_LIBS -lm" ++ AC_MSG_CHECKING([for cblas_sgemm in $CBLAS_LIBS]) ++ AC_TRY_LINK_FUNC(cblas_sgemm, [ext_cblas=yes], ++ [AC_MSG_ERROR([ ++ *** Linking with cblas with $LIBS failed. ++ *** If you installed cblas library in a non standard place, ++ *** specify its install prefix using the following option ++ *** --with-cblas-external-libs="-L<lib_dir> -l<lib>"]) ++ ]) ++ AC_MSG_RESULT($ext_cblas) ++ LIBS="$LIBS_sav" ++ AC_SUBST([CBLAS_CFLAGS]) ++ AC_SUBST([CBLAS_LIBS]) ++ fi ++]) +diff --git a/bspline/Makefile.am b/bspline/Makefile.am +index 3f4f950..d413036 100644 +--- a/bspline/Makefile.am ++++ b/bspline/Makefile.am +@@ -12,6 +12,6 @@ check_PROGRAMS = test + + TESTS = $(check_PROGRAMS) + +-test_LDADD = libgslbspline.la ../linalg/libgsllinalg.la ../permutation/libgslpermutation.la ../blas/libgslblas.la ../matrix/libgslmatrix.la ../vector/libgslvector.la ../block/libgslblock.la ../complex/libgslcomplex.la ../cblas/libgslcblas.la ../ieee-utils/libgslieeeutils.la ../err/libgslerr.la ../test/libgsltest.la ../sys/libgslsys.la ../utils/libutils.la ../statistics/libgslstatistics.la ++test_LDADD = libgslbspline.la ../linalg/libgsllinalg.la ../permutation/libgslpermutation.la ../blas/libgslblas.la ../matrix/libgslmatrix.la ../vector/libgslvector.la ../block/libgslblock.la ../complex/libgslcomplex.la @CBLAS_LINK_LIBS@ ../ieee-utils/libgslieeeutils.la ../err/libgslerr.la ../test/libgsltest.la ../sys/libgslsys.la ../utils/libutils.la ../statistics/libgslstatistics.la + + test_SOURCES = test.c +diff --git a/configure.ac b/configure.ac +index a26fc1e..564d426 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -208,6 +208,16 @@ if test "x$LIBS" = "x" ; then + AC_CHECK_LIB(m, cos) + fi + ++sinclude(ax_cblas.m4) ++AX_CBLAS ++if test "x$CBLAS_LIBS" != "x"; then ++ CBLAS_LINK_LIBS="$CBLAS_LIBS" ++else ++ CBLAS_LINK_LIBS="\$(top_builddir)/cblas/libgslcblas.la" ++ CBLAS_LIBS="-lgslcblas" ++fi ++AC_SUBST(CBLAS_LINK_LIBS) ++ + dnl Remember to put a definition in acconfig.h for each of these + AC_CHECK_DECLS(feenableexcept,,,[#define _GNU_SOURCE 1 + #include <fenv.h>]) +diff --git a/eigen/Makefile.am b/eigen/Makefile.am +index c28bfde..14197a4 100644 +--- a/eigen/Makefile.am ++++ b/eigen/Makefile.am +@@ -11,7 +11,7 @@ noinst_HEADERS = qrstep.c + + TESTS = $(check_PROGRAMS) + +-test_LDADD = libgsleigen.la ../test/libgsltest.la ../linalg/libgsllinalg.la ../permutation/libgslpermutation.la ../blas/libgslblas.la ../cblas/libgslcblas.la ../matrix/libgslmatrix.la ../vector/libgslvector.la ../block/libgslblock.la ../complex/libgslcomplex.la ../ieee-utils/libgslieeeutils.la ../sys/libgslsys.la ../err/libgslerr.la ../utils/libutils.la ../rng/libgslrng.la ../sort/libgslsort.la ++test_LDADD = libgsleigen.la ../test/libgsltest.la ../linalg/libgsllinalg.la ../permutation/libgslpermutation.la ../blas/libgslblas.la @CBLAS_LINK_LIBS@ ../matrix/libgslmatrix.la ../vector/libgslvector.la ../block/libgslblock.la ../complex/libgslcomplex.la ../ieee-utils/libgslieeeutils.la ../sys/libgslsys.la ../err/libgslerr.la ../utils/libutils.la ../rng/libgslrng.la ../sort/libgslsort.la + + test_SOURCES = test.c + +diff --git a/gsl-config.in b/gsl-config.in +old mode 100755 +new mode 100644 +index 3f3fa61..c9c4262 +--- a/gsl-config.in ++++ b/gsl-config.in +@@ -58,11 +58,11 @@ while test $# -gt 0; do + ;; + + --cflags) +- echo @GSL_CFLAGS@ ++ echo @GSL_CFLAGS@ @CBLAS_CFLAGS@ + ;; + + --libs) +- : ${GSL_CBLAS_LIB=-lgslcblas} ++ : ${GSL_CBLAS_LIB=@CBLAS_LIBS@} + echo @GSL_LIBS@ $GSL_CBLAS_LIB @GSL_LIBM@ + ;; + +diff --git a/gsl.pc.in b/gsl.pc.in +index 5e9ef21..5a7a0f3 100644 +--- a/gsl.pc.in ++++ b/gsl.pc.in +@@ -2,7 +2,7 @@ prefix=@prefix@ + exec_prefix=@exec_prefix@ + libdir=@libdir@ + includedir=@includedir@ +-GSL_CBLAS_LIB=-lgslcblas ++GSL_CBLAS_LIB=@CBLAS_LIBS@ + + Name: GSL + Description: GNU Scientific Library +diff --git a/interpolation/Makefile.am b/interpolation/Makefile.am +index 1d80755..e45bd51 100644 +--- a/interpolation/Makefile.am ++++ b/interpolation/Makefile.am +@@ -12,7 +12,7 @@ AM_CPPFLAGS = -I$(top_srcdir) + + TESTS = $(check_PROGRAMS) + +-test_LDADD = libgslinterpolation.la ../poly/libgslpoly.la ../linalg/libgsllinalg.la ../permutation/libgslpermutation.la ../blas/libgslblas.la ../matrix/libgslmatrix.la ../vector/libgslvector.la ../block/libgslblock.la ../complex/libgslcomplex.la ../cblas/libgslcblas.la ../ieee-utils/libgslieeeutils.la ../err/libgslerr.la ../test/libgsltest.la ../sys/libgslsys.la ../utils/libutils.la ++test_LDADD = libgslinterpolation.la ../poly/libgslpoly.la ../linalg/libgsllinalg.la ../permutation/libgslpermutation.la ../blas/libgslblas.la ../matrix/libgslmatrix.la ../vector/libgslvector.la ../block/libgslblock.la ../complex/libgslcomplex.la @CBLAS_LINK_LIBS@ ../ieee-utils/libgslieeeutils.la ../err/libgslerr.la ../test/libgsltest.la ../sys/libgslsys.la ../utils/libutils.la + + test_SOURCES = test.c + +diff --git a/linalg/Makefile.am b/linalg/Makefile.am +index a6c15b0..447ebbe 100644 +--- a/linalg/Makefile.am ++++ b/linalg/Makefile.am +@@ -13,4 +13,4 @@ TESTS = $(check_PROGRAMS) + check_PROGRAMS = test + + test_SOURCES = test.c +-test_LDADD = libgsllinalg.la ../blas/libgslblas.la ../cblas/libgslcblas.la ../permutation/libgslpermutation.la ../matrix/libgslmatrix.la ../vector/libgslvector.la ../block/libgslblock.la ../complex/libgslcomplex.la ../ieee-utils/libgslieeeutils.la ../err/libgslerr.la ../test/libgsltest.la ../sys/libgslsys.la ../utils/libutils.la ../rng/libgslrng.la ++test_LDADD = libgsllinalg.la ../blas/libgslblas.la @CBLAS_LINK_LIBS@ ../permutation/libgslpermutation.la ../matrix/libgslmatrix.la ../vector/libgslvector.la ../block/libgslblock.la ../complex/libgslcomplex.la ../ieee-utils/libgslieeeutils.la ../err/libgslerr.la ../test/libgsltest.la ../sys/libgslsys.la ../utils/libutils.la ../rng/libgslrng.la +diff --git a/multifit/Makefile.am b/multifit/Makefile.am +index 988614e..793b485 100644 +--- a/multifit/Makefile.am ++++ b/multifit/Makefile.am +@@ -67,8 +67,8 @@ check_PROGRAMS = test #demo + TESTS = $(check_PROGRAMS) + + test_SOURCES = test.c +-test_LDADD = libgslmultifit.la ../linalg/libgsllinalg.la ../permutation/libgslpermutation.la ../blas/libgslblas.la ../cblas/libgslcblas.la ../matrix/libgslmatrix.la ../sort/libgslsort.la ../statistics/libgslstatistics.la ../vector/libgslvector.la ../block/libgslblock.la ../complex/libgslcomplex.la ../ieee-utils/libgslieeeutils.la ../err/libgslerr.la ../test/libgsltest.la ../utils/libutils.la ../sys/libgslsys.la ../rng/libgslrng.la ../specfunc/libgslspecfunc.la ../min/libgslmin.la ++test_LDADD = libgslmultifit.la ../linalg/libgsllinalg.la ../permutation/libgslpermutation.la ../blas/libgslblas.la @CBLAS_LINK_LIBS@ ../matrix/libgslmatrix.la ../sort/libgslsort.la ../statistics/libgslstatistics.la ../vector/libgslvector.la ../block/libgslblock.la ../complex/libgslcomplex.la ../ieee-utils/libgslieeeutils.la ../err/libgslerr.la ../test/libgsltest.la ../utils/libutils.la ../sys/libgslsys.la ../rng/libgslrng.la ../specfunc/libgslspecfunc.la ../min/libgslmin.la + + #demo_SOURCES = demo.c +-#demo_LDADD = libgslmultifit.la ../linalg/libgsllinalg.la ../permutation/libgslpermutation.la ../blas/libgslblas.la ../cblas/libgslcblas.la ../matrix/libgslmatrix.la ../vector/libgslvector.la ../block/libgslblock.la ../randist/libgslrandist.la ../rng/libgslrng.la ../complex/libgslcomplex.la ../ieee-utils/libgslieeeutils.la ../err/libgslerr.la ../test/libgsltest.la ../utils/libutils.la ../sys/libgslsys.la ++#demo_LDADD = libgslmultifit.la ../linalg/libgsllinalg.la ../permutation/libgslpermutation.la ../blas/libgslblas.la @CBLAS_LINK_LIBS@ ../matrix/libgslmatrix.la ../vector/libgslvector.la ../block/libgslblock.la ../randist/libgslrandist.la ../rng/libgslrng.la ../complex/libgslcomplex.la ../ieee-utils/libgslieeeutils.la ../err/libgslerr.la ../test/libgsltest.la ../utils/libutils.la ../sys/libgslsys.la + +diff --git a/multimin/Makefile.am b/multimin/Makefile.am +index 7071359..65a488a 100644 +--- a/multimin/Makefile.am ++++ b/multimin/Makefile.am +@@ -13,8 +13,8 @@ check_PROGRAMS = test #demo + TESTS = $(check_PROGRAMS) + + test_SOURCES = test.c test_funcs.c test_funcs.h +-test_LDADD = libgslmultimin.la ../min/libgslmin.la ../poly/libgslpoly.la ../blas/libgslblas.la ../cblas/libgslcblas.la ../linalg/libgsllinalg.la ../permutation/libgslpermutation.la ../matrix/libgslmatrix.la ../vector/libgslvector.la ../block/libgslblock.la ../complex/libgslcomplex.la ../ieee-utils/libgslieeeutils.la ../err/libgslerr.la ../test/libgsltest.la ../sys/libgslsys.la ../utils/libutils.la ++test_LDADD = libgslmultimin.la ../min/libgslmin.la ../poly/libgslpoly.la ../blas/libgslblas.la @CBLAS_LINK_LIBS@ ../linalg/libgsllinalg.la ../permutation/libgslpermutation.la ../matrix/libgslmatrix.la ../vector/libgslvector.la ../block/libgslblock.la ../complex/libgslcomplex.la ../ieee-utils/libgslieeeutils.la ../err/libgslerr.la ../test/libgsltest.la ../sys/libgslsys.la ../utils/libutils.la + + #demo_SOURCES = demo.c +-#demo_LDADD = libgslmultimin.la ../min/libgslmin.la ../blas/libgslblas.la ../cblas/libgslcblas.la ../linalg/libgsllinalg.la ../matrix/libgslmatrix.la ../vector/libgslvector.la ../block/libgslblock.la ../complex/libgslcomplex.la ../ieee-utils/libgslieeeutils.la ../err/libgslerr.la ../test/libgsltest.la ../sys/libgslsys.la ../utils/libutils.la ++#demo_LDADD = libgslmultimin.la ../min/libgslmin.la ../blas/libgslblas.la @CBLAS_LINK_LIBS@ ../linalg/libgsllinalg.la ../matrix/libgslmatrix.la ../vector/libgslvector.la ../block/libgslblock.la ../complex/libgslcomplex.la ../ieee-utils/libgslieeeutils.la ../err/libgslerr.la ../test/libgsltest.la ../sys/libgslsys.la ../utils/libutils.la + +diff --git a/multiroots/Makefile.am b/multiroots/Makefile.am +index a351c3f..6178448 100644 +--- a/multiroots/Makefile.am ++++ b/multiroots/Makefile.am +@@ -15,5 +15,5 @@ check_PROGRAMS = test + TESTS = $(check_PROGRAMS) + + test_SOURCES = test.c test_funcs.c test_funcs.h +-test_LDADD = libgslmultiroots.la ../linalg/libgsllinalg.la ../blas/libgslblas.la ../cblas/libgslcblas.la ../permutation/libgslpermutation.la ../matrix/libgslmatrix.la ../vector/libgslvector.la ../block/libgslblock.la ../complex/libgslcomplex.la ../ieee-utils/libgslieeeutils.la ../err/libgslerr.la ../test/libgsltest.la ../sys/libgslsys.la ../utils/libutils.la ++test_LDADD = libgslmultiroots.la ../linalg/libgsllinalg.la ../blas/libgslblas.la @CBLAS_LINK_LIBS@ ../permutation/libgslpermutation.la ../matrix/libgslmatrix.la ../vector/libgslvector.la ../block/libgslblock.la ../complex/libgslcomplex.la ../ieee-utils/libgslieeeutils.la ../err/libgslerr.la ../test/libgsltest.la ../sys/libgslsys.la ../utils/libutils.la + +diff --git a/ode-initval/Makefile.am b/ode-initval/Makefile.am +index 9c774b5..346c381 100644 +--- a/ode-initval/Makefile.am ++++ b/ode-initval/Makefile.am +@@ -12,7 +12,7 @@ check_PROGRAMS = test + + TESTS = $(check_PROGRAMS) + +-test_LDADD = libgslodeiv.la ../linalg/libgsllinalg.la ../blas/libgslblas.la ../cblas/libgslcblas.la ../matrix/libgslmatrix.la ../permutation/libgslpermutation.la ../vector/libgslvector.la ../block/libgslblock.la ../complex/libgslcomplex.la ../ieee-utils/libgslieeeutils.la ../err/libgslerr.la ../test/libgsltest.la ../sys/libgslsys.la ../utils/libutils.la ++test_LDADD = libgslodeiv.la ../linalg/libgsllinalg.la ../blas/libgslblas.la @CBLAS_LINK_LIBS@ ../matrix/libgslmatrix.la ../permutation/libgslpermutation.la ../vector/libgslvector.la ../block/libgslblock.la ../complex/libgslcomplex.la ../ieee-utils/libgslieeeutils.la ../err/libgslerr.la ../test/libgsltest.la ../sys/libgslsys.la ../utils/libutils.la + + test_SOURCES = test.c + +diff --git a/poly/Makefile.am b/poly/Makefile.am +index f1dae5d..e0f8e83 100644 +--- a/poly/Makefile.am ++++ b/poly/Makefile.am +@@ -10,7 +10,7 @@ noinst_HEADERS = balance.c companion.c qr.c + + TESTS = $(check_PROGRAMS) + +-check_PROGRAMS = test ++#check_PROGRAMS = test + + test_SOURCES = test.c + test_LDADD = libgslpoly.la ../ieee-utils/libgslieeeutils.la ../err/libgslerr.la ../test/libgsltest.la ../sys/libgslsys.la ../utils/libutils.la ../sort/libgslsort.la +diff --git a/specfunc/Makefile.am b/specfunc/Makefile.am +index eba9ab2..772cc7e 100644 +--- a/specfunc/Makefile.am ++++ b/specfunc/Makefile.am +@@ -12,7 +12,7 @@ TESTS = $(check_PROGRAMS) + + check_PROGRAMS = test + +-test_LDADD = libgslspecfunc.la ../eigen/libgsleigen.la ../linalg/libgsllinalg.la ../sort/libgslsort.la ../matrix/libgslmatrix.la ../vector/libgslvector.la ../blas/libgslblas.la ../cblas/libgslcblas.la ../block/libgslblock.la ../complex/libgslcomplex.la ../poly/libgslpoly.la ../ieee-utils/libgslieeeutils.la ../err/libgslerr.la ../test/libgsltest.la ../sys/libgslsys.la ../utils/libutils.la ++test_LDADD = libgslspecfunc.la ../eigen/libgsleigen.la ../linalg/libgsllinalg.la ../sort/libgslsort.la ../matrix/libgslmatrix.la ../vector/libgslvector.la ../blas/libgslblas.la @CBLAS_LINK_LIBS@ ../block/libgslblock.la ../complex/libgslcomplex.la ../poly/libgslpoly.la ../ieee-utils/libgslieeeutils.la ../err/libgslerr.la ../test/libgsltest.la ../sys/libgslsys.la ../utils/libutils.la + + test_SOURCES = test_sf.c test_sf.h test_airy.c test_bessel.c test_coulomb.c test_dilog.c test_gamma.c test_hyperg.c test_legendre.c test_mathieu.c + +diff --git a/wavelet/Makefile.am b/wavelet/Makefile.am +index 9da20d8..8cdbd77 100644 +--- a/wavelet/Makefile.am ++++ b/wavelet/Makefile.am +@@ -10,7 +10,7 @@ check_PROGRAMS = test + + TESTS = $(check_PROGRAMS) + +-test_LDADD = libgslwavelet.la ../blas/libgslblas.la ../cblas/libgslcblas.la ../matrix/libgslmatrix.la ../vector/libgslvector.la ../block/libgslblock.la ../ieee-utils/libgslieeeutils.la ../err/libgslerr.la ../test/libgsltest.la ../sys/libgslsys.la ../utils/libutils.la ++test_LDADD = libgslwavelet.la ../blas/libgslblas.la @CBLAS_LINK_LIBS@ ../matrix/libgslmatrix.la ../vector/libgslvector.la ../block/libgslblock.la ../ieee-utils/libgslieeeutils.la ../err/libgslerr.la ../test/libgsltest.la ../sys/libgslsys.la ../utils/libutils.la + + test_SOURCES = test.c + diff --git a/var/spack/repos/builtin/packages/gsl/package.py b/var/spack/repos/builtin/packages/gsl/package.py index 3ad7b11971..fb81843c64 100644 --- a/var/spack/repos/builtin/packages/gsl/package.py +++ b/var/spack/repos/builtin/packages/gsl/package.py @@ -24,3 +24,31 @@ class Gsl(AutotoolsPackage, GNUMirrorPackage): version('2.1', sha256='59ad06837397617f698975c494fe7b2b698739a59e2fcf830b776428938a0c66') version('2.0', sha256='e361f0b19199b5e6c21922e9f16adf7eca8dd860842802424906d0f83485ca2d') version('1.16', sha256='73bc2f51b90d2a780e6d266d43e487b3dbd78945dd0b04b14ca5980fe28d2f53') + + variant('external-cblas', default=False, description='Build against external blas') + + # from https://dev.gentoo.org/~mgorny/dist/gsl-2.3-cblas.patch.bz2 + patch('gsl-2.3-cblas.patch', when="+external-cblas") + + conflicts('+external-cblas', when="@:2.2.9999") + depends_on('m4', type='build', when='+external-cblas') + depends_on('autoconf', type='build', when='+external-cblas') + depends_on('automake', type='build', when='+external-cblas') + depends_on('libtool', type='build', when='+external-cblas') + depends_on('blas', when='+external-cblas') + + @property + def force_autoreconf(self): + # The external cblas patch touches configure + return self.spec.satisfies('+external-cblas') + + def configure_args(self): + configure_args = [] + if self.spec.satisfies('+external-cblas'): + configure_args.append('--with-external-cblas') + configure_args.append('CBLAS_CFLAGS=%s' + % self.spec['blas'].headers.include_flags) + configure_args.append('CBLAS_LIBS=%s' + % self.spec['blas'].libs.ld_flags) + + return configure_args diff --git a/var/spack/repos/builtin/packages/gunrock/package.py b/var/spack/repos/builtin/packages/gunrock/package.py new file mode 100644 index 0000000000..f47c1bf635 --- /dev/null +++ b/var/spack/repos/builtin/packages/gunrock/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 Gunrock(CMakePackage, CudaPackage): + """High-Performance Graph Primitives on GPUs""" + + homepage = "https://gunrock.github.io/docs/" + git = "https://github.com/gunrock/gunrock.git" + + version('master', submodules=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') + version('0.5', submodules=True, tag='v0.5') + version('0.4', submodules=True, tag='v0.4') + version('0.3.1', submodules=True, tag='v0.3.1') + version('0.3', submodules=True, tag='v0.3') + version('0.2', submodules=True, tag='v0.2') + version('0.1', submodules=True, tag='v0.1') + + depends_on('cuda') + + def install(self, spec, prefix): + with working_dir(self.build_directory): + install_tree('bin', prefix.bin) + install_tree('lib', prefix.lib) diff --git a/var/spack/repos/builtin/packages/hcol/package.py b/var/spack/repos/builtin/packages/hcol/package.py new file mode 100644 index 0000000000..70278eba93 --- /dev/null +++ b/var/spack/repos/builtin/packages/hcol/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 Hcol(Package): + """This is the SPIRAL package for the Hybrid Control Operator Language + (HCOL).""" + + homepage = "https://https://spiral.net" + url = "https://github.com/spiral-software/spiral-package-hcol/archive/1.0.0.zip" + + maintainers = ['spiralgen'] + extends('spiral') + + version('1.0.0', sha256='9a95574e2b061d03d264c32dbf733e893017d1644b6486c7a8a55a3b24783f58') + + # HCOL package is an extension for Spiral. Install the files in their own + # prefix, in "namespaces/packages/hcol". This allows 'spack activate' to + # symlink hcol at the right location for spiral packages. + def install(self, spec, prefix): + install_tree('.', prefix.namespaces.packages.hcol) diff --git a/var/spack/repos/builtin/packages/hdf5/package.py b/var/spack/repos/builtin/packages/hdf5/package.py index 3c62d46f0d..e560c23f44 100644 --- a/var/spack/repos/builtin/packages/hdf5/package.py +++ b/var/spack/repos/builtin/packages/hdf5/package.py @@ -23,6 +23,8 @@ class Hdf5(AutotoolsPackage): version('develop', branch='develop') + version('1.12.0', sha256='a62dcb276658cb78e6795dd29bf926ed7a9bc4edf6e77025cd2c689a8f97c17a') + version('1.10.6', sha256='5f9a3ee85db4ea1d3b1fa9159352aebc2af72732fc2f58c96a3f0768dba0e9aa') version('1.10.5', sha256='6d4ce8bf902a97b050f6f491f4268634e252a63dadd6656a1a9be5b7b7726fa8') version('1.10.4', sha256='8f60dc4dd6ab5fcd23c750d1dc5bca3d0453bdce5c8cdaf0a4a61a9d1122adb2') diff --git a/var/spack/repos/builtin/packages/hepmc/package.py b/var/spack/repos/builtin/packages/hepmc/package.py index 2828a179ff..d208e7ecde 100644 --- a/var/spack/repos/builtin/packages/hepmc/package.py +++ b/var/spack/repos/builtin/packages/hepmc/package.py @@ -28,24 +28,46 @@ class Hepmc(CMakePackage): variant('python', default=False, description='Enable Python bindings') variant('rootio', default=False, description='Enable ROOT I/O') + variant('interfaces', default=False, description='Install interfaces for some Monte-Carlo Event Gens') depends_on('cmake@2.8.9:', type='build') - # FIXME: Officially supports Python3, but the build system doesn't find it - depends_on('python@:2.99.99', when='+python') + depends_on('python', when='+python') depends_on('root', when='+rootio') - conflicts('+python', when='@:3.1.99') - conflicts('+rootio', when='@:2.99.99') + conflicts('+python', when='@:3.1') + conflicts('+rootio', when='@:2') + conflicts('+interfaces', when='@:2') + @when('@:2') + def cmake_args(self): + return ['-Dmomentum:STRING=GEV', '-Dlength:STRING=MM'] + + @when('@3:') def cmake_args(self): spec = self.spec - return [ + args = [ '-Dmomentum:STRING=GEV', '-Dlength:STRING=MM', '-DHEPMC3_ENABLE_PYTHON={0}'.format(spec.satisfies('+python')), - '-DHEPMC3_ENABLE_ROOTIO={0}'.format(spec.satisfies('+rootio')) + '-DHEPMC3_ENABLE_ROOTIO={0}'.format(spec.satisfies('+rootio')), + '-DHEPMC3_INSTALL_INTERFACES={0}'.format( + spec.satisfies('+interfaces')), ] + if self.spec.satisfies('+python'): + py_ver = spec['python'].version.up_to(2) + py_sitepkg = join_path(self.prefix, site_packages_dir) + args.extend([ + '-DHEPMC3_PYTHON_VERSIONS={0}'.format(py_ver), + '-DHEPMC3_Python_SITEARCH{0}={1}'.format( + py_ver.joined, py_sitepkg) + ]) + + if self.spec.satisfies('+rootio'): + args.append('-DROOT_DIR={0}'.format(self.spec['root'].prefix)) + + return args + def url_for_version(self, version): if version > Version("3.0.0"): url = "http://hepmc.web.cern.ch/hepmc/releases/HepMC3-{0}.tar.gz" diff --git a/var/spack/repos/builtin/packages/hpctoolkit/package.py b/var/spack/repos/builtin/packages/hpctoolkit/package.py index fef2ec7b3e..d64ce78fad 100644 --- a/var/spack/repos/builtin/packages/hpctoolkit/package.py +++ b/var/spack/repos/builtin/packages/hpctoolkit/package.py @@ -19,6 +19,7 @@ class Hpctoolkit(AutotoolsPackage): maintainers = ['mwkrentel'] version('master', branch='master') + version('2020.03.01', commit='94ede4e6fa1e05e6f080be8dc388240ea027f769') version('2019.12.28', commit='b4e1877ff96069fd8ed0fdf0e36283a5b4b62240') version('2019.08.14', commit='6ea44ed3f93ede2d0a48937f288a2d41188a277c') version('2018.12.28', commit='8dbf0d543171ffa9885344f32f23cc6f7f6e39bc') @@ -52,27 +53,28 @@ class Hpctoolkit(AutotoolsPackage): 'for the compute nodes.') variant('cuda', default=False, - description='Support CUDA on NVIDIA GPUs (master branch).') + description='Support CUDA on NVIDIA GPUs (2020.03.01 or later).') boost_libs = ( '+atomic +chrono +date_time +filesystem +system +thread +timer' ' +graph +regex +shared +multithreaded visibility=global' ) - depends_on('binutils+libiberty~nls', type='link') + depends_on('binutils+libiberty~nls', type='link', when='@master') + depends_on('binutils@:2.33.1+libiberty~nls', type='link', when='@:2020.03.99') depends_on('boost' + boost_libs) - depends_on('bzip2', type='link') - depends_on('dyninst') - depends_on('elfutils~nls', type='link') - depends_on('intel-tbb') + depends_on('bzip2+shared', type='link') + depends_on('dyninst@9.3.2:') + depends_on('elfutils+bzip2+xz~nls', type='link') + depends_on('intel-tbb+shared') depends_on('libdwarf') - depends_on('libmonitor+hpctoolkit') - depends_on('libmonitor+bgq', when='+bgq') - depends_on('libunwind@1.4:') + depends_on('libmonitor+hpctoolkit+bgq', when='+bgq') + depends_on('libmonitor+hpctoolkit~bgq', when='~bgq') + depends_on('libunwind@1.4: +xz') depends_on('mbedtls+pic') depends_on('xerces-c transcoder=iconv') depends_on('xz', type='link') - depends_on('zlib') + depends_on('zlib+shared') depends_on('cuda', when='+cuda') depends_on('intel-xed', when='target=x86_64:') @@ -83,11 +85,14 @@ class Hpctoolkit(AutotoolsPackage): conflicts('%gcc@:4.7.99', when='^dyninst@10.0.0:', msg='hpctoolkit requires gnu gcc 4.8.x or later') - conflicts('%gcc@:4.99.99', when='@master', - msg='the master branch requires gnu gcc 5.x or later') + conflicts('%gcc@:4.99.99', when='@2020.03.01:', + msg='hpctoolkit requires gnu gcc 5.x or later') conflicts('+cuda', when='@2018.0.0:2019.99.99', - msg='cuda is only available on the master branch') + 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 diff --git a/var/spack/repos/builtin/packages/hpcviewer/package.py b/var/spack/repos/builtin/packages/hpcviewer/package.py index 21cfa67daa..97688963cf 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.02', 'x86_64'): 'af1f514547a9325aee30eb891b31e38c7ea3f33d2d1978b44f83e7daa3d5de6b', + ('2020.02', 'ppc64'): '7bb4926202db663aedd5a6830778c5f73f6b08a65d56861824ea95ba83b1f59c', + ('2020.02', 'ppc64le'): 'cfcebb7ba301affd6d21d2afd43c540e6dd4c5bc39b0d20e8bd1e4fed6aa3481', ('2020.01', 'x86_64'): '3cd5a2a382cec1d64c8bd0abaf2b1461dcd4092a4b4074ddbdc1b96d2a0b4220', ('2020.01', 'ppc64'): '814394a5f410033cc1019526c268ef98b5b381e311fcd39ae8b2bde6c6ff017c', ('2020.01', 'ppc64le'): 'e830e956b8088c415fb25ef44a8aca16ebcb27bcd34536866612343217e3f9e4', @@ -61,6 +64,9 @@ class Hpcviewer(Package): } trace_sha = { + ('2020.02', 'x86_64'): 'b7b634e91108aa50a2e8647ac6bac87df775ae38aff078545efaa84735e0a666', + ('2020.02', 'ppc64'): 'a3e845901689e1b32bc6ab2826c6ac6ed352df4839090fa530b20f747e6e0957', + ('2020.02', 'ppc64le'): 'a64a283f61e706d988952a7cede9fac0328b09d2d0b64e4c08acc54e38781c98', ('2020.01', 'x86_64'): '9459177a2445e85d648384e2ccee20524592e91a74d615262f32d0876831cd7c', ('2020.01', 'ppc64'): '02366a2ba30b9b2450d50cf44933288f04fae5bf9868eef7bb2ae1b49d4f454e', ('2020.01', 'ppc64le'): '39970e84e397ed96bc994e7b8db3b7b3aab4e3155fa7ca8e68b9274bb58115f0', diff --git a/var/spack/repos/builtin/packages/hpx/package.py b/var/spack/repos/builtin/packages/hpx/package.py index 9d24fc0e88..a8f028b27b 100644 --- a/var/spack/repos/builtin/packages/hpx/package.py +++ b/var/spack/repos/builtin/packages/hpx/package.py @@ -15,6 +15,8 @@ class Hpx(CMakePackage, CudaPackage): maintainers = ['msimberg', 'albestro'] version('master', git='https://github.com/STEllAR-GROUP/hpx.git', branch='master') + version('stable', git='https://github.com/STEllAR-GROUP/hpx.git', tag='stable') + version('1.4.1', sha256='965dabe44d17480e326d92da4eec56722d98b33943c53d2b0f8f4655cb208023') version('1.4.0', sha256='241a1c47fafba751848fac12446e7bf4ad3d342d5eb2fa1ef94dd904acc329ed') version('1.3.0', sha256='cd34da674064c4cc4a331402edbd65c5a1f8058fb46003314ca18fa08423c5ad') version('1.2.1', sha256='8cba9b48e919035176d3b7bbfc2c110df6f07803256626f1dad8d9dde16ab77a') @@ -67,6 +69,7 @@ class Hpx(CMakePackage, CudaPackage): depends_on('boost cxxstd=11', when='cxxstd=11') depends_on('boost cxxstd=14', when='cxxstd=14') depends_on('boost cxxstd=17', when='cxxstd=17') + depends_on('boost cxxstd=17', when='@stable') # Malloc depends_on('gperftools', when='malloc=tcmalloc') @@ -156,7 +159,8 @@ class Hpx(CMakePackage, CudaPackage): '-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' + '-DBUILD_SHARED_LIBS=ON', + '-DHPX_DATASTRUCTURES_WITH_ADAPT_STD_TUPLE=OFF' ]) return args diff --git a/var/spack/repos/builtin/packages/htop/package.py b/var/spack/repos/builtin/packages/htop/package.py index 9de69ae0bf..e0d9960467 100644 --- a/var/spack/repos/builtin/packages/htop/package.py +++ b/var/spack/repos/builtin/packages/htop/package.py @@ -18,6 +18,7 @@ class Htop(AutotoolsPackage): version('2.0.2', sha256='179be9dccb80cee0c5e1a1f58c8f72ce7b2328ede30fb71dcdf336539be2f487') depends_on('ncurses') + depends_on('python+pythoncmd', type='build') def configure_args(self): return ['--enable-shared'] diff --git a/var/spack/repos/builtin/packages/hydrogen/package.py b/var/spack/repos/builtin/packages/hydrogen/package.py index 625c336fff..d0aef797e7 100644 --- a/var/spack/repos/builtin/packages/hydrogen/package.py +++ b/var/spack/repos/builtin/packages/hydrogen/package.py @@ -18,7 +18,7 @@ class Hydrogen(CMakePackage): maintainers = ['bvanessen'] version('develop', branch='hydrogen') - version('1.3.3', sha256='140112066b84d33ca4b75c8e520fb15748fa648c4d2b934c1eb5510173ede5f5') + version('1.3.3', sha256='a51a1cfd40ac74d10923dfce35c2c04a3082477683f6b35e7b558ea9f4bb6d51') version('1.3.2', sha256='50bc5e87955f8130003d04dfd9dcad63107e92b82704f8107baf95b0ccf98ed6') version('1.3.1', sha256='a8b8521458e9e747f2b24af87c4c2749a06e500019c383e0cefb33e5df6aaa1d') version('1.3.0', sha256='0f3006aa1d8235ecdd621e7344c99f56651c6836c2e1bc0cf006331b70126b36') diff --git a/var/spack/repos/builtin/packages/intel-tbb/package.py b/var/spack/repos/builtin/packages/intel-tbb/package.py index 72ed301bd8..6dbb1971f5 100644 --- a/var/spack/repos/builtin/packages/intel-tbb/package.py +++ b/var/spack/repos/builtin/packages/intel-tbb/package.py @@ -21,7 +21,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.1', sha256='48d51c63b16787af54e1ee4aaf30042087f20564b4eecf9a032d5568bc2f0bf8') + version('2020.1', sha256='7c96a150ed22bc3c6628bc3fef9ed475c00887b26d37bca61518d76a56510971') version('2020.0', sha256='8eed2377ac62e6ac10af5a8303ce861e4525ffe491a061b48e8fe094fc741ce9') version('2019.9', sha256='15652f5328cf00c576f065e5cd3eaf3317422fe82afb67a9bcec0dc065bd2abe') version('2019.8', sha256='7b1fd8caea14be72ae4175896510bf99c809cd7031306a1917565e6de7382fba') diff --git a/var/spack/repos/builtin/packages/intel-xed/package.py b/var/spack/repos/builtin/packages/intel-xed/package.py index ac9a7a4b0c..31b157531e 100644 --- a/var/spack/repos/builtin/packages/intel-xed/package.py +++ b/var/spack/repos/builtin/packages/intel-xed/package.py @@ -42,7 +42,8 @@ class IntelXed(Package): variant('debug', default=False, description='Enable debug symbols') - depends_on('python@2.7:', type='build') + # python module 'platform.linux_distribution' was removed in python 3.8 + depends_on('python@2.7:3.7', type='build') conflicts('target=ppc64:', msg='intel-xed only runs on x86') conflicts('target=ppc64le:', msg='intel-xed only runs on x86') diff --git a/var/spack/repos/builtin/packages/jblob/package.py b/var/spack/repos/builtin/packages/jblob/package.py new file mode 100644 index 0000000000..1aa1738230 --- /dev/null +++ b/var/spack/repos/builtin/packages/jblob/package.py @@ -0,0 +1,35 @@ +# 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 Jblob(Package): + """ + The German Climate Computing Center + (DKRZ: Deutsches Klimarechenzentrum GmbH) + provides a Long Term Archiving Service for large research + data sets which are relevant for climate or Earth system research. + """ + + homepage = "https://cera-www.dkrz.de/WDCC/ui/cerasearch" + url = "https://cera-www.dkrz.de/jblob/jblob-3.0.zip" + + maintainers = ['ajkotobi'] + + version('3.0', sha256='576b5956358386a8832c6d1d13c410705e54888354a10cfd4f094513458067e4') + + depends_on('java@8:', type='run') + + def setup_run_environment(self, env): + env.set('JAVA_HOME', self.spec['java'].prefix) + + def install(self, spec, prefix): + filter_file('/opt/jblob-' + self.version, prefix, 'jblob') + + mkdir(prefix.bin) + install('jblob', prefix.bin) + install_tree('lib', prefix.lib) + install_tree('docs', prefix.docs) diff --git a/var/spack/repos/builtin/packages/jdk/package.py b/var/spack/repos/builtin/packages/jdk/package.py index 431943ac86..025d12be65 100644 --- a/var/spack/repos/builtin/packages/jdk/package.py +++ b/var/spack/repos/builtin/packages/jdk/package.py @@ -24,11 +24,7 @@ class Jdk(Package): # automate this process, we need to utilize these additional curl # command-line options. See: # http://stackoverflow.com/questions/10268583/how-to-automate-download-and-installation-of-java-jdk-on-linux - curl_options = [ - '-j', # junk cookies - '-b', # specify required License Agreement cookie - 'oraclelicense=accept-securebackup-cookie' - ] + fetch_options = {'cookie': 'oraclelicense=accept-securebackup-cookie'} # To add the latest version, go to the homepage listed above, # click "JDK Download", click "Accept License Agreement", right-click the @@ -36,29 +32,29 @@ class Jdk(Package): # found in a link above. The build number can be deciphered from the URL. # Alternatively, run `bin/java -version` after extracting. Replace '+' # symbol in version with '_', otherwise it will be interpreted as a variant - version('12.0.2_10', sha256='2dde6fda89a4ec6e6560ed464e917861c9e40bf576e7a64856dafc55abaaff51', curl_options=curl_options, + version('12.0.2_10', sha256='2dde6fda89a4ec6e6560ed464e917861c9e40bf576e7a64856dafc55abaaff51', url='https://download.oracle.com/otn-pub/java/jdk/12.0.2+10/e482c34c86bd4bf8b56c0b35558996b9/jdk-12.0.2_linux-x64_bin.tar.gz') - version('12.0.1_12', sha256='9fd6dcdaf2cfca7da59e39b009a0f5bcd53bec2fb16105f7ca8d689cdab68d75', curl_options=curl_options, + version('12.0.1_12', sha256='9fd6dcdaf2cfca7da59e39b009a0f5bcd53bec2fb16105f7ca8d689cdab68d75', url='https://download.oracle.com/otn-pub/java/jdk/12.0.1+12/69cfe15208a647278a19ef0990eea691/jdk-12.0.1_linux-x64_bin.tar.gz') - version('11.0.2_9', sha256='7b4fd8ffcf53e9ff699d964a80e4abf9706b5bdb5644a765c2b96f99e3a2cdc8', curl_options=curl_options, + version('11.0.2_9', sha256='7b4fd8ffcf53e9ff699d964a80e4abf9706b5bdb5644a765c2b96f99e3a2cdc8', url='https://download.oracle.com/otn-pub/java/jdk/11.0.2+9/f51449fcd52f4d52b93a989c5c56ed3c/jdk-11.0.2_linux-x64_bin.tar.gz') - version('11.0.1_13', sha256='e7fd856bacad04b6dbf3606094b6a81fa9930d6dbb044bbd787be7ea93abc885', curl_options=curl_options, + version('11.0.1_13', sha256='e7fd856bacad04b6dbf3606094b6a81fa9930d6dbb044bbd787be7ea93abc885', url='https://download.oracle.com/otn-pub/java/jdk/11.0.1+13/90cf5d8f270a4347a95050320eef3fb7/jdk-11.0.1_linux-x64_bin.tar.gz') - version('10.0.2_13', sha256='6633c20d53c50c20835364d0f3e172e0cbbce78fff81867488f22a6298fa372b', curl_options=curl_options, + version('10.0.2_13', sha256='6633c20d53c50c20835364d0f3e172e0cbbce78fff81867488f22a6298fa372b', url='https://download.oracle.com/otn-pub/java/jdk/10.0.2+13/19aef61b38124481863b1413dce1855f/jdk-10.0.2_linux-x64_bin.tar.gz') - version('10.0.1_10', sha256='ae8ed645e6af38432a56a847597ac61d4283b7536688dbab44ab536199d1e5a4', curl_options=curl_options, + version('10.0.1_10', sha256='ae8ed645e6af38432a56a847597ac61d4283b7536688dbab44ab536199d1e5a4', url='https://download.oracle.com/otn-pub/java/jdk/10.0.1+10/fb4372174a714e6b8c52526dc134031e/jdk-10.0.1_linux-x64_bin.tar.gz') - version('1.8.0_241-b07', sha256='419d32677855f676076a25aed58e79432969142bbd778ff8eb57cb618c69e8cb', curl_options=curl_options, + version('1.8.0_241-b07', sha256='419d32677855f676076a25aed58e79432969142bbd778ff8eb57cb618c69e8cb', url='https://download.oracle.com/otn-pub/java/jdk/8u241-b07/1f5b5a70bf22433b84d0e960903adac8/jdk-8u241-linux-x64.tar.gz') - version('1.8.0_231-b11', sha256='a011584a2c9378bf70c6903ef5fbf101b30b08937441dc2ec67932fb3620b2cf', curl_options=curl_options, + version('1.8.0_231-b11', sha256='a011584a2c9378bf70c6903ef5fbf101b30b08937441dc2ec67932fb3620b2cf', url='https://download.oracle.com/otn-pub/java/jdk/8u231-b11/5b13a193868b4bf28bcb45c792fce896/jdk-8u231-linux-x64.tar.gz') - version('1.8.0_212-b10', sha256='3160c50aa8d8e081c8c7fe0f859ea452922eca5d2ae8f8ef22011ae87e6fedfb', curl_options=curl_options, + version('1.8.0_212-b10', sha256='3160c50aa8d8e081c8c7fe0f859ea452922eca5d2ae8f8ef22011ae87e6fedfb', url='https://download.oracle.com/otn-pub/java/jdk/8u212-b10/59066701cf1a433da9770636fbc4c9aa/jdk-8u212-linux-x64.tar.gz') - version('1.8.0_202-b08', sha256='9a5c32411a6a06e22b69c495b7975034409fa1652d03aeb8eb5b6f59fd4594e0', curl_options=curl_options, + version('1.8.0_202-b08', sha256='9a5c32411a6a06e22b69c495b7975034409fa1652d03aeb8eb5b6f59fd4594e0', url='https://download.oracle.com/otn-pub/java/jdk/8u202-b08/1961070e4c9b4e26a04e7f5a083f551e/jdk-8u202-linux-x64.tar.gz') - version('1.8.0_141-b15', sha256='041d5218fbea6cd7e81c8c15e51d0d32911573af2ed69e066787a8dc8a39ba4f', curl_options=curl_options, + version('1.8.0_141-b15', sha256='041d5218fbea6cd7e81c8c15e51d0d32911573af2ed69e066787a8dc8a39ba4f', url='https://download.oracle.com/otn-pub/java/jdk/8u141-b15/336fa29ff2bb4ef291e347e091f7f4a7/jdk-8u141-linux-x64.tar.gz') - version('1.8.0_131-b11', sha256='62b215bdfb48bace523723cdbb2157c665e6a25429c73828a32f00e587301236', curl_options=curl_options, + version('1.8.0_131-b11', sha256='62b215bdfb48bace523723cdbb2157c665e6a25429c73828a32f00e587301236', url='https://download.oracle.com/otn-pub/java/jdk/8u131-b11/d54c1d3a095b4ff2b6607d096fa80163/jdk-8u131-linux-x64.tar.gz') provides('java@12', when='@12.0:12.999') diff --git a/var/spack/repos/builtin/packages/kallisto/package.py b/var/spack/repos/builtin/packages/kallisto/package.py index 337b50f188..d33bd970a2 100644 --- a/var/spack/repos/builtin/packages/kallisto/package.py +++ b/var/spack/repos/builtin/packages/kallisto/package.py @@ -13,8 +13,37 @@ class Kallisto(CMakePackage): homepage = "http://pachterlab.github.io/kallisto" url = "https://github.com/pachterlab/kallisto/archive/v0.43.1.tar.gz" + version('0.46.2', sha256='c447ca8ddc40fcbd7d877d7c868bc8b72807aa8823a8a8d659e19bdd515baaf2') version('0.43.1', sha256='7baef1b3b67bcf81dc7c604db2ef30f5520b48d532bf28ec26331cb60ce69400') depends_on('zlib') depends_on('hdf5') depends_on('mpich') + + # htslib isn't built in time to be used.... + parallel = False + + # v0.44.0 vendored a copy of htslib and uses auto* to build + # its configure script. + depends_on('autoconf', type='build', when='@0.44.0:') + depends_on('automake', type='build', when='@0.44.0:') + depends_on('libtool', type='build', when='@0.44.0:') + depends_on('m4', type='build', when='@0.44.0:') + + # Including '-DCMAKE_VERBOSE_MAKEFILE:BOOL=ON' in the cmake args + # causes bits of cmake's output to end up in the autoconf-generated + # configure script. + # See https://github.com/spack/spack/issues/15274 and + # https://github.com/pachterlab/kallisto/issues/253 + @property + def std_cmake_args(self): + """Call the original std_cmake_args and then filter the verbose + setting. + """ + a = super(Kallisto, self).std_cmake_args + if (self.spec.version >= Version('0.44.0')): + args = [i for i in a if i != '-DCMAKE_VERBOSE_MAKEFILE:BOOL=ON'] + else: + args = a + + return args diff --git a/var/spack/repos/builtin/packages/kealib/package.py b/var/spack/repos/builtin/packages/kealib/package.py index e164dac4b4..3e050a213c 100644 --- a/var/spack/repos/builtin/packages/kealib/package.py +++ b/var/spack/repos/builtin/packages/kealib/package.py @@ -23,12 +23,13 @@ class Kealib(CMakePackage): Development work on this project has been funded by Landcare Research. """ homepage = "http://www.kealib.org/" - url = "https://bitbucket.org/chchrsc/kealib/downloads/kealib-1.4.11.tar.gz" - hg = "https://bitbucket.org/chchrsc/kealib" + url = "https://github.com/ubarsc/kealib/releases/download/kealib-1.4.12/kealib-1.4.12.tar.gz" + git = "https://github.com/ubarsc/kealib" maintainers = ['gillins'] - version('develop', hg=hg) + version('develop', git=git) + version('1.4.12', sha256='0b100e36b3e25e57487aa197d7be47f22e1b30afb16a57fdaa5f877696ec321e') version('1.4.11', sha256='3d64cdec560c7a338ccb38e3a456db4e3b176ac62f945daa6e332e60fe4eca90') version('1.4.10', sha256='b1bd2d6834d2fe09ba456fce77f7a9452b406dbe302f7ef1aabe924e45e6bb5e') version('1.4.9', sha256='1c80489f17114a229097c2e8c61d5e4c82ea63ae631c81a817fef95cfd527174') diff --git a/var/spack/repos/builtin/packages/keyutils/package.py b/var/spack/repos/builtin/packages/keyutils/package.py new file mode 100644 index 0000000000..049dbb1c22 --- /dev/null +++ b/var/spack/repos/builtin/packages/keyutils/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 * +import glob + + +class Keyutils(MakefilePackage): + """These tools are used to control the key management system built + into the Linux kernel.""" + + homepage = "https://git.kernel.org/pub/scm/linux/kernel/git/dhowells/keyutils.git/" + url = "https://git.kernel.org/pub/scm/linux/kernel/git/dhowells/keyutils.git/snapshot/keyutils-1.6.1.tar.gz" + + version('1.6.1', sha256='3c71dcfc6900d07b02f4e061d8fb218a4ae6519c1d283d6a57b8e27718e2f557') + version('1.6', sha256='c6a27b4e3d0122d921f3dcea4b1f02a8616ca844535960d6af76ef67d015b5cf') + version('1.5.10', sha256='e1fdbde234c786b65609a4cf080a2c5fbdb57f049249c139160c85fc3dfa7da9') + version('1.5.9', sha256='2dc0bdb099ab8331e02e5dbbce320359bef76eda0a4ddbd2ba1d1b9d3a8cdff8') + + def install(self, spec, prefix): + install_tree('.', prefix) + mkdirp(prefix.include) + headers = glob.glob(join_path(prefix, '*.h')) + for h in headers: + install(h, prefix.include) diff --git a/var/spack/repos/builtin/packages/kraken2/package.py b/var/spack/repos/builtin/packages/kraken2/package.py new file mode 100644 index 0000000000..e970752ad2 --- /dev/null +++ b/var/spack/repos/builtin/packages/kraken2/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 * +import glob +import os + + +class Kraken2(Package): + """Kraken2 is a system for assigning taxonomic labels to short DNA + sequences, usually obtained through metagenomic studies.""" + + homepage = "https://ccb.jhu.edu/software/kraken2/" + url = "https://github.com/DerrickWood/kraken2/archive/v2.0.8-beta.tar.gz" + + maintainers = ['rberg2'] + + version('2.0.8-beta', sha256='f2a91fc57a40b3e87df8ac2ea7c0ff1060cc9295c95de417ee53249ee3f7ad8e') + version('2.0.7-beta', sha256='baa160f5aef73327e1a79e6d1c54b64b2fcdaee0be31b456f7bc411d1897a744') + version('2.0.6-beta', sha256='d77db6251179c4d7e16bc9b5e5e9043d25acf81f3e32ad6eadfba829a31e1d09') + + depends_on('perl', type=('build', 'run')) + depends_on('rsync', type=('run')) + depends_on('wget', type=('run')) + + def install(self, spec, prefix): + installer = Executable('./install_kraken2.sh') + installer(self.stage.source_path) + mkdirp(prefix.bin) + files = glob.iglob('*') + for file in files: + if os.path.isfile(file): + install(file, prefix.bin) diff --git a/var/spack/repos/builtin/packages/kvtree/package.py b/var/spack/repos/builtin/packages/kvtree/package.py index be265f5ecd..40e57ed0ee 100644 --- a/var/spack/repos/builtin/packages/kvtree/package.py +++ b/var/spack/repos/builtin/packages/kvtree/package.py @@ -10,8 +10,8 @@ class Kvtree(CMakePackage): """KVTree provides a fully extensible C datastructure modeled after perl hashes.""" - homepage = "https://github.com/ECP-VeloC/KVTree" - url = "https://github.com/ECP-VeloC/KVTree/archive/v1.0.2.zip" + homepage = "https://github.com/ecp-veloc/KVTree" + url = "https://github.com/ecp-veloc/KVTree/archive/v1.0.2.zip" git = "https://github.com/ecp-veloc/kvtree.git" tags = ['ecp'] diff --git a/var/spack/repos/builtin/packages/lammps/package.py b/var/spack/repos/builtin/packages/lammps/package.py index 72a1a9246f..9a6ef2e2b4 100644 --- a/var/spack/repos/builtin/packages/lammps/package.py +++ b/var/spack/repos/builtin/packages/lammps/package.py @@ -20,7 +20,16 @@ class Lammps(CMakePackage, CudaPackage): tags = ['ecp', 'ecp-apps'] - version('develop', branch='master') + version('master', branch='master') + version('20200303', sha256='9aa56dfb8673a06e6c88588505ec1dfc01dd94f9d60e719ed0c605e48cc06c58') + version('20200227', sha256='1aabcf38bc72285797c710b648e906151a912c36b634a9c88ac383aacf85516e') + version('20200218', sha256='73bcf146660804ced954f6a0a8dce937482677778d46018ca5a688127bf97211') + version('20200204', sha256='3bf3de546ede34ffcd89f1fca5fd66aa78c662e7c8a76e30ce593e44a00d23ce') + version('20200124', sha256='443829560d760690e1ae21ad54922f56f34f640a81e817f5cc65d2a4af3a6a5d') + version('20200109', sha256='f2fd24f6c10837801f490913d73f672ec7c6becda08465d7e834a2bfbe3d7cd6') + version('20191120', sha256='fd146bf517a6c2fb8a69ecb3749dc352eef94414739cd7855c668c690af85d27') + version('20191030', sha256='5279567f731386ffdb87800b448903a63de2591064e13b4d5216acae25b7e541') + version('20190919', sha256='0f693203afe86bc70c084c55f29330bdeea3e3ad6791f81c727f7a34a7f6caf3') version('20190807', sha256='895d71914057e070fdf0ae5ccf9d6552b932355056690bdb8e86d96549218cc0') version('20190605', sha256='c7b35090aef7b114d2b47a7298c1e8237dd811da87995c997bf7639cca743152') version('20181212', sha256='ccc5d2c21c4b62ce4afe7b3a0fe2f37b83e5a5e43819b7c2e2e255cce2ce0f24') diff --git a/var/spack/repos/builtin/packages/lastz/package.py b/var/spack/repos/builtin/packages/lastz/package.py index cbe4ee4e14..4b0431b2e9 100644 --- a/var/spack/repos/builtin/packages/lastz/package.py +++ b/var/spack/repos/builtin/packages/lastz/package.py @@ -12,7 +12,15 @@ class Lastz(MakefilePackage): homepage = "https://lastz.github.io/lastz" url = "https://github.com/lastz/lastz/archive/1.04.00.tar.gz" + version('1.04.03', sha256='c58ed8e37c4b0e82492b3a2b3e12447a3c40286fb8358906d19f10b0a713e9f4') version('1.04.00', sha256='a4c2c7a77430387e96dbc9f5bdc75874334c672be90f5720956c0f211abf9f5a') + # Ref: https://github.com/lastz/lastz/commit/20aa14f483265b4eac97f25aca666c708b9655e4 + patch('sequences.c.patch', when='@:1.04.03') + + # set compile commands for each compiler + def edit(self, spec, prefix): + filter_file('gcc', spack_cc, 'src/Makefile') + def install(self, spec, prefix): make('install', 'LASTZ_INSTALL={0}'.format(prefix.bin)) diff --git a/var/spack/repos/builtin/packages/lastz/sequences.c.patch b/var/spack/repos/builtin/packages/lastz/sequences.c.patch new file mode 100644 index 0000000000..b5c34108aa --- /dev/null +++ b/var/spack/repos/builtin/packages/lastz/sequences.c.patch @@ -0,0 +1,244 @@ +--- spack-src/src/sequences.c.org 2020-03-05 13:34:15.764971874 +0900 ++++ spack-src/src/sequences.c 2020-03-05 13:49:45.315370741 +0900 +@@ -2180,7 +2180,7 @@ + + ch = skip_seq_whitespace (_seq); + +- if (ch != '>') seq_ungetc (ch, _seq); ++ if (ch != '>') seq_ungetc ((char)ch, _seq); + else parse_fasta_header (_seq); + + debugFastaFile_2; +@@ -2298,7 +2298,7 @@ + if (ch == '\r') // handle possible DOS CR-LF line ending + { + ch = seq_getc (_seq); +- if (ch != '\n') seq_ungetc (ch, _seq); ++ if (ch != '\n') seq_ungetc ((char)ch, _seq); + } + + } +@@ -2346,7 +2346,7 @@ + while (ch != EOF) + { + if ((prevCh == '\n') && (ch == '>')) // (start of next sequence) +- { seq_ungetc (ch, _seq); break; } ++ { seq_ungetc ((char)ch, _seq); break; } + + if ((_seq->separatorCh == 0) || (ch != _seq->separatorCh)) + { +@@ -2445,7 +2445,7 @@ + // while (ch != EOF) + // { + // if ((prevCh == '\n') && (ch == '>')) // (start of next sequence) +-// { seq_ungetc (ch, _seq); break; } ++// { seq_ungetc ((char)ch, _seq); break; } + // + // switch (char_to_fasta_type[(u8)ch]) + // { +@@ -2627,7 +2627,7 @@ + if (ch == '\r') // handle possible DOS CR-LF line ending + { + ch = seq_getc (_seq); +- if (ch != '\n') seq_ungetc (ch, _seq); ++ if (ch != '\n') seq_ungetc ((char)ch, _seq); + } + + // copy from trueHeader into the header (unless the header is locked), then +@@ -2762,7 +2762,7 @@ + if (ch == '\r') // handle possible DOS CR-LF line ending + { + ch = seq_getc (_seq); +- if (ch != '\n') seq_ungetc (ch, _seq); ++ if (ch != '\n') seq_ungetc ((char)ch, _seq); + } + + _seq->v[_seq->len] = 0; // (set the terminating zero) +@@ -2834,7 +2834,7 @@ + if (ch == '\r') // handle possible DOS CR-LF line ending + { + ch = seq_getc (_seq); +- if (ch != '\n') seq_ungetc (ch, _seq); ++ if (ch != '\n') seq_ungetc ((char)ch, _seq); + } + + ////////// +@@ -2877,7 +2877,7 @@ + if (ch == '\r') // handle possible DOS CR-LF line ending + { + ch = seq_getc (_seq); +- if (ch != '\n') seq_ungetc (ch, _seq); ++ if (ch != '\n') seq_ungetc ((char)ch, _seq); + } + + if (qualCount < nucCount) goto not_enough_qualities; +@@ -3061,7 +3061,7 @@ + ch = seq_getc (_seq); + } + +- if (ch != '>') seq_ungetc (ch, _seq); ++ if (ch != '>') seq_ungetc ((char)ch, _seq); + else parse_csfasta_header (_seq); + + ////////// +@@ -3166,7 +3166,7 @@ + if (ch == '\r') // handle possible DOS CR-LF line ending + { + ch = seq_getc (_seq); +- if (ch != '\n') seq_ungetc (ch, _seq); ++ if (ch != '\n') seq_ungetc ((char)ch, _seq); + } + + } +@@ -3223,7 +3223,7 @@ + { + if ((prevCh == '\n') + && ((ch == '#') || (ch == '>'))) // (start of next sequence) +- { seq_ungetc (ch, _seq); break; } ++ { seq_ungetc ((char)ch, _seq); break; } + + chType = char_to_csfasta_type[(u8)ch]; + switch (chType) +@@ -3324,7 +3324,7 @@ + // { + // if ((prevCh == '\n') + // && ((ch == '#') || (ch == '>'))) // (start of next sequence) +-// { seq_ungetc (ch, _seq); break; } ++// { seq_ungetc ((char)ch, _seq); break; } + // + // switch (char_to_csfasta_type[(u8)ch]) + // { +@@ -4701,10 +4701,10 @@ + else if (magic == oldQdnaMagicBig) { oldFormat = bigEndian = true; } + else + { +- seq_ungetc ((magic >> 24) & 0xFF, _seq); +- seq_ungetc ((magic >> 16) & 0xFF, _seq); +- seq_ungetc ((magic >> 8) & 0xFF, _seq); +- seq_ungetc ( magic & 0xFF, _seq); ++ seq_ungetc ((char) ((magic >> 24) & 0xFF), _seq); ++ seq_ungetc ((char) ((magic >> 16) & 0xFF), _seq); ++ seq_ungetc ((char) ((magic >> 8) & 0xFF), _seq); ++ seq_ungetc ((char) ( magic & 0xFF), _seq); + oldFormat = true; + } + +@@ -5050,7 +5050,7 @@ + _seq->filename); + if (ch == EOF) return false; // we're at end of file now + +- seq_ungetc (ch, _seq); // save what we peeked at ++ seq_ungetc ((char)ch, _seq); // save what we peeked at + return true; // we have characters to process + } + +@@ -5074,7 +5074,8 @@ + int headerLen; + int mustBeHeader; + int leadingWhite; +- char ch, *s; ++ int ch; ++ char* s; + int ix; + + debugNamesFile_12; +@@ -5118,7 +5119,7 @@ + + ch = seq_getc (_seq); + if (ch == EOF) goto failure; +- while ((ch != '\n') && (isspace (ch))) ++ while ((ch != '\n') && (isspace (ch))) // nota bene: isspace's arg type is an int + { + leadingWhite++; + ch = seq_getc (_seq); +@@ -5186,7 +5187,7 @@ + + // unget the header + +- seq_ungetc (ch, _seq); // (ch terminated the header) ++ seq_ungetc ((char)ch, _seq); // (ch terminated the header) + + for (ix=strlen(buffer) ; ix>0 ; ) + seq_ungetc (buffer[--ix], _seq); +@@ -5218,7 +5219,8 @@ + char buffer[maxSequenceHeader+1]; + char* header; + int headerLen; +- char ch, *s; ++ int ch; ++ char* s; + int ix; + int ok; + +@@ -5257,7 +5259,7 @@ + if (ch == '\r') // handle possible DOS CR-LF line ending + { + ch = seq_getc (_seq); +- if (ch != '\n') seq_ungetc (ch, _seq); ++ if (ch != '\n') seq_ungetc ((char)ch, _seq); + } + + // if we have a name trigger, locate the sequence's name +@@ -5310,7 +5312,7 @@ + + // unget the header + +- seq_ungetc (ch, _seq); // (ch terminated the header) ++ seq_ungetc ((char)ch, _seq); // (ch terminated the header) + + for (ix=strlen(buffer) ; ix>0 ; ) + seq_ungetc (buffer[--ix], _seq); +@@ -9067,10 +9069,10 @@ + + // put those four bytes back in the file (in reverse of the read order) + +- seq_ungetc (magic >> 24, _seq); +- seq_ungetc (magic >> 16, _seq); +- seq_ungetc (magic >> 8, _seq); +- seq_ungetc (magic , _seq); ++ seq_ungetc ((char) (magic >> 24), _seq); ++ seq_ungetc ((char) (magic >> 16), _seq); ++ seq_ungetc ((char) (magic >> 8), _seq); ++ seq_ungetc ((char) magic , _seq); + + if (type != seq_type_unknown) + return type; +@@ -9080,7 +9082,7 @@ + ////////// + + ch = seq_getc (_seq); +- seq_ungetc (ch, _seq); ++ seq_ungetc ((char)ch, _seq); + if (ch == '@') + return seq_type_fastq; + +@@ -9095,12 +9097,12 @@ + ch = seq_getc (_seq); + if (ch == '#') + { +- seq_ungetc (ch, _seq); ++ seq_ungetc ((char)ch, _seq); + return seq_type_csfasta; + } + + if (ch != '>') +- seq_ungetc (ch, _seq); ++ seq_ungetc ((char)ch, _seq); + else + { + // read header +@@ -9122,12 +9124,12 @@ + + intCh = seq_getc (_seq); + if (intCh == EOF) goto unknown; +- buffer[bufferLen++] = intCh; ++ buffer[bufferLen++] = (char) intCh; + if (ustrchr ("ACGTacgtNn", intCh) != NULL) + { + intCh = seq_getc (_seq); + if (intCh == EOF) goto unknown; +- buffer[bufferLen++] = intCh; ++ buffer[bufferLen++] = (char) intCh; + if (ustrchr ("ACGTacgtNn", intCh) != NULL) + type = seq_type_fasta; + else if (ustrchr ("0123", intCh) != NULL) diff --git a/var/spack/repos/builtin/packages/legion/package.py b/var/spack/repos/builtin/packages/legion/package.py index 5b8b761d49..15effc6bea 100644 --- a/var/spack/repos/builtin/packages/legion/package.py +++ b/var/spack/repos/builtin/packages/legion/package.py @@ -27,9 +27,9 @@ class Legion(CMakePackage): version('master', branch='master') version('ctrl-rep', branch='control_replication') - version('ctrl-rep-2', commit='96682fd8aae071ecd30a3ed5f481a9d84457a4b6') - version('ctrl-rep-1', commit='a03671b21851d5f0d3f63210343cb61a630f4405') - version('ctrl-rep-0', commit='177584e77036c9913d8a62e33b55fa784748759c') + version('19.12.0', sha256='ea517638de7256723bb9c119796d4d9d4ef662c52d0151ad24af5288e5a72e7d') + version('19.09.1', sha256='c507133fb9dce16b7fcccd7eb2933d13cce96ecf835da60a27c0f66840cabf51') + version('19.09.0', sha256='a01c3e3c6698cafb64b77a66341cc06d039faed4fa31b764159f021b94ce13e8') version('19.06.0', sha256='31cd97e9264c510ab83b1f9e8e1e6bf72021a0c6ee4a028966fce08736e39fbf') version('19.04.0', sha256='279bbc8dcdab4c75be570318989a9fc9821178143e9db9c3f62e58bf9070b5ac') version('18.12.0', sha256='71f2c409722975c0ad92f2caffcc9eaa9260f7035e2b55b731d819eb6a94016c') @@ -46,14 +46,15 @@ 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('build_type', default='Release', values=('Debug', 'Release'), - description='The build type to build') + variant('build_type', default='Release', + values=('Debug', 'Release', 'RelWithDebInfo', 'MinSizeRel'), + description='The build type to build', multi=False) depends_on("cmake@3.1:", type='build') depends_on("gasnet~aligned-segments~pshm segment-mmap-max='16GB'", when='~mpi') depends_on("gasnet~aligned-segments~pshm segment-mmap-max='16GB' +mpi", when='+mpi') depends_on("gasnet~aligned-segments~pshm segment-mmap-max='16GB' +ibv", when='+ibv') - depends_on("hdf5~mpi", when='+hdf5') + depends_on("hdf5", when='+hdf5') def cmake_args(self): cmake_cxx_flags = [ @@ -69,7 +70,11 @@ class Legion(CMakePackage): '-DBUILD_SHARED_LIBS=%s' % ('+shared' in self.spec)] if self.spec.variants['build_type'].value == 'Debug': - cmake_cxx_flags.append('-DDEBUG_REALM', '-DDEBUG_LEGION', '-ggdb') + cmake_cxx_flags.extend([ + '-DDEBUG_REALM', + '-DDEBUG_LEGION', + '-ggdb', + ]) options.append('-DCMAKE_CXX_FLAGS=%s' % (" ".join(cmake_cxx_flags))) diff --git a/var/spack/repos/builtin/packages/libfabric/package.py b/var/spack/repos/builtin/packages/libfabric/package.py index 030b4b0788..cddaee99a7 100644 --- a/var/spack/repos/builtin/packages/libfabric/package.py +++ b/var/spack/repos/builtin/packages/libfabric/package.py @@ -3,7 +3,6 @@ # # SPDX-License-Identifier: (Apache-2.0 OR MIT) -import os.path from spack import * @@ -12,24 +11,22 @@ class Libfabric(AutotoolsPackage): fabric communication services to applications.""" homepage = "https://libfabric.org/" - url = "https://github.com/ofiwg/libfabric/releases/download/v1.6.1/libfabric-1.6.1.tar.gz" + url = "https://github.com/ofiwg/libfabric/releases/download/v1.8.0/libfabric-1.8.0.tar.bz2" git = "https://github.com/ofiwg/libfabric.git" - version('develop', branch='master') - version('1.9.0', sha256='559bfb7376c38253c936d0b104591c3394880376d676894895706c4f5f88597c', - url='https://github.com/ofiwg/libfabric/releases/download/v1.9.0/libfabric-1.9.0.tar.bz2') - version('1.8.1', sha256='3c560b997f9eafd89f961dd8e8a29a81aad3e39aee888e3f3822da419047dc88', - url='https://github.com/ofiwg/libfabric/releases/download/v1.8.1/libfabric-1.8.1.tar.bz2') - version('1.8.0', sha256='c4763383a96af4af52cd81b3b094227f5cf8e91662f861670965994539b7ee37', - url='https://github.com/ofiwg/libfabric/releases/download/v1.8.0/libfabric-1.8.0.tar.bz2') - version('1.7.1', sha256='312e62c57f79b7274f89c41823932c00b15f1cc8de9c1f8dce17cd7fdae66fa1') - version('1.7.0', sha256='9d7059e2ef48341f967f2a20ee215bc50f9079b32aad485f654098f83040e4be') - version('1.6.2', sha256='b1a9cf8c47189a1c918f8b5710d05cb50df6b47a1c9b2ba51d927e97503b4df0') - version('1.6.1', sha256='ac85f18bbf09226e868d72771ecba39cfdb7915aab3aeb855c95f8be7817f8bc') - version('1.6.0', sha256='cd7d4543cf706820e4a33003457eff97336b5160f35d0e8b001aea18b5470423') - version('1.5.3', sha256='770e505185074b4c66a0c33ac2155670142746a71a6299c286f6d5cd220cbff8') - version('1.5.0', sha256='f62709e70fab6abea719402da854f3c6ab60369be6b1e31e4f77554c7454da28') - version('1.4.2', sha256='858e30d92b69ee5e47ac10a8ac0c731b491d75a6e28267a128f3d6eb43f940a1') + version('master', branch='master') + version('1.9.1', sha256='c305c6035c992523e08c7591a6a3707225ba3e72de40443eaed837a10df6771a') + version('1.9.0', sha256='559bfb7376c38253c936d0b104591c3394880376d676894895706c4f5f88597c') + version('1.8.1', sha256='3c560b997f9eafd89f961dd8e8a29a81aad3e39aee888e3f3822da419047dc88') + version('1.8.0', sha256='c4763383a96af4af52cd81b3b094227f5cf8e91662f861670965994539b7ee37') + version('1.7.1', sha256='f4e9cc48319763cff4943de96bf527b737c9f1d6ac3088b8b5c75d07bd719569') + version('1.7.0', sha256='b3dd9cc0fa36fe8c3b9997ba279ec831a905704816c25fe3c4c09fc7eeceaac4') + version('1.6.2', sha256='ec63f61f5e529964ef65fd101627d8782c0efc2b88b3d5fc7f0bfd2c1e95ab2c') + version('1.6.1', sha256='33215a91450e2234ebdc7c467f041b6757f76f5ba926425e89d80c27b3fd7da2') + version('1.6.0', sha256='b3ce7bd655052ea4da7bf01a3177d96d94e5f41b3fd6011ac43f50fcb2dc7581') + version('1.5.3', sha256='f62a40da06f8951db267a59a4ee7363b6ee60a7abbc55cd5db6c8b067d93fa0c') + version('1.5.0', sha256='88a8ad6772f11d83e5b6f7152a908ffcb237af273a74a1bd1cb4202f577f1f23') + version('1.4.2', sha256='5d027d7e4e34cb62508803e51d6bd2f477932ad68948996429df2bfff37ca2a5') fabrics = ('psm', 'psm2', @@ -76,38 +73,8 @@ class Libfabric(AutotoolsPackage): depends_on('automake', when='@develop', type='build') depends_on('libtool', when='@develop', type='build') - resource(name='fabtests', - url='https://github.com/ofiwg/libfabric/releases/download/v1.9.0/fabtests-1.9.0.tar.bz2', - sha256='60cc21db7092334904cbdafd142b2403572976018a22218e7c453195caef366e', - placement='fabtests', when='@1.9.0') - resource(name='fabtests', - url='https://github.com/ofiwg/libfabric/releases/download/v1.8.0/fabtests-1.8.0.tar.gz', - sha256='4b9af18c9c7c8b28eaeac4e6e9148bd2ea7dc6b6f00f8e31c90a6fc536c5bb6c', - placement='fabtests', when='@1.8.0') - resource(name='fabtests', - url='https://github.com/ofiwg/libfabric/releases/download/v1.7.0/fabtests-1.7.0.tar.gz', - sha256='ebb4129dc69dc0e1f48310ce1abb96673d8ddb18166bc595312ebcb96e803de9', - placement='fabtests', when='@1.7.0') - resource(name='fabtests', - url='https://github.com/ofiwg/fabtests/releases/download/v1.6.1/fabtests-1.6.1.tar.gz', - sha256='d357466b868fdaf1560d89ffac4c4e93a679486f1b4221315644d8d3e21174bf', - placement='fabtests', when='@1.6.1') - resource(name='fabtests', - url='https://github.com/ofiwg/fabtests/releases/download/v1.6.0/fabtests-1.6.0.tar.gz', - sha256='dc3eeccccb005205017f5af60681ede15782ce202a0103450a6d56a7ff515a67', - placement='fabtests', when='@1.6.0') - resource(name='fabtests', - url='https://github.com/ofiwg/fabtests/releases/download/v1.5.3/fabtests-1.5.3.tar.gz', - sha256='3835b3bf86cd00d23df0ddba8bf317e4a195e8d5c3c2baa918b373d548f77f29', - placement='fabtests', when='@1.5.3') - resource(name='fabtests', - url='https://github.com/ofiwg/fabtests/releases/download/v1.5.0/fabtests-1.5.0.tar.gz', - sha256='1dddd446c3f1df346899f9a8636f1b4265de5b863103ae24876e9f0c1e40a69d', - placement='fabtests', when='@1.5.0') - resource(name='fabtests', - url='https://github.com/ofiwg/fabtests/releases/download/v1.4.2/fabtests-1.4.2.tar.gz', - sha256='3b78d0ca1b223ff21b7f5b3627e67e358e3c18b700f86b017e2233fee7e88c2e', - placement='fabtests', when='@1.4.2') + conflicts('@1.9.0', when='platform=darwin', + msg='This distribution is missing critical files') def setup_build_environment(self, env): if self.run_tests: @@ -118,10 +85,6 @@ class Libfabric(AutotoolsPackage): bash = which('bash') bash('./autogen.sh') - if self.run_tests: - with working_dir('fabtests'): - bash('./autogen.sh') - def configure_args(self): args = [] @@ -138,29 +101,6 @@ class Libfabric(AutotoolsPackage): return args - def install(self, spec, prefix): - # Call main install method - super(Libfabric, self).install(spec, prefix) - - # Build and install fabtests, if available - if not os.path.isdir('fabtests'): - return - with working_dir('fabtests'): - configure = Executable('./configure') - configure('--prefix={0}'.format(self.prefix), - '--with-libfabric={0}'.format(self.prefix)) - make() - make('install') - def installcheck(self): fi_info = Executable(self.prefix.bin.fi_info) fi_info() - - # Run fabtests test suite if available - if not os.path.isdir('fabtests'): - return - if self.spec.satisfies('@1.8.0,1.9.0'): - # make test seems broken. - return - with working_dir('fabtests'): - make('test') diff --git a/var/spack/repos/builtin/packages/libffi/package.py b/var/spack/repos/builtin/packages/libffi/package.py index e5bf7b1df6..07ec319fb8 100644 --- a/var/spack/repos/builtin/packages/libffi/package.py +++ b/var/spack/repos/builtin/packages/libffi/package.py @@ -13,6 +13,9 @@ class Libffi(AutotoolsPackage): run time.""" homepage = "https://sourceware.org/libffi/" + # The server is sometimes a bit slow to respond + fetch_options = {'timeout': 60} + version('3.2.1', sha256='d06ebb8e1d9a22d19e38d63fdb83954253f39bedc5d46232a05645685722ca37', url="https://sourceware.org/pub/libffi/libffi-3.2.1.tar.gz") diff --git a/var/spack/repos/builtin/packages/libgcrypt/package.py b/var/spack/repos/builtin/packages/libgcrypt/package.py index 496bfc3465..bc566fad52 100644 --- a/var/spack/repos/builtin/packages/libgcrypt/package.py +++ b/var/spack/repos/builtin/packages/libgcrypt/package.py @@ -7,14 +7,10 @@ from spack import * class Libgcrypt(AutotoolsPackage): - """Libgcrypt is a general purpose cryptographic library based on - the code from GnuPG. It provides functions for all cryptographic - building blocks: symmetric ciphers, hash algorithms, MACs, public - key algorithms, large integer functions, random numbers and a lot - of supporting functions.""" + """Cryptographic library based on the code from GnuPG.""" - homepage = "http://www.gnu.org/software/libgcrypt/" - url = "https://gnupg.org/ftp/gcrypt/libgcrypt/libgcrypt-1.8.5.tar.bz2" + homepage = "https://gnupg.org/software/libgcrypt/index.html" + url = "https://gnupg.org/ftp/gcrypt/libgcrypt/libgcrypt-1.8.5.tar.bz2" version('1.8.5', sha256='3b4a2a94cb637eff5bdebbcaf46f4d95c4f25206f459809339cdada0eb577ac3') version('1.8.4', sha256='f638143a0672628fde0cad745e9b14deb85dffb175709cacc1f4fe24b93f2227') @@ -23,3 +19,18 @@ class Libgcrypt(AutotoolsPackage): version('1.6.2', sha256='de084492a6b38cdb27b67eaf749ceba76bf7029f63a9c0c3c1b05c88c9885c4c') depends_on('libgpg-error@1.25:') + + def check(self): + # Without this hack, `make check` fails on macOS when SIP is enabled + # https://bugs.gnupg.org/gnupg/issue2056 + # https://github.com/Homebrew/homebrew-core/pull/3004 + if self.spec.satisfies('platform=darwin'): + old = self.prefix.lib.join('libgcrypt.20.dylib') + new = join_path( + self.stage.source_path, 'src', '.libs', 'libgcrypt.20.dylib') + filename = 'tests/.libs/random' + + install_name_tool = Executable('install_name_tool') + install_name_tool('-change', old, new, filename) + + make('check') diff --git a/var/spack/repos/builtin/packages/libgit2/package.py b/var/spack/repos/builtin/packages/libgit2/package.py index 58ea638de0..222075ffdb 100644 --- a/var/spack/repos/builtin/packages/libgit2/package.py +++ b/var/spack/repos/builtin/packages/libgit2/package.py @@ -16,8 +16,79 @@ class Libgit2(CMakePackage): homepage = "https://libgit2.github.com/" url = "https://github.com/libgit2/libgit2/archive/v0.26.0.tar.gz" - version('0.28.2', sha256='42b5f1e9b9159d66d86fff0394215c5733b6ef8f9b9d054cdd8c73ad47177fc3') - version('0.26.0', sha256='6a62393e0ceb37d02fe0d5707713f504e7acac9006ef33da1e88960bd78b6eac') + version('0.99.0', sha256='174024310c1563097a6613a0d3f7539d11a9a86517cd67ce533849065de08a11') + version('0.28.4', sha256='30f3877469d09f2e4a21be933b4e2800560d16646028dd800744dc5f7fb0c749') + version('0.28.3', sha256='ee5344730fe11ce7c86646e19c2d257757be293f5a567548d398fb3af8b8e53b') + version('0.28.2', sha256='42b5f1e9b9159d66d86fff0394215c5733b6ef8f9b9d054cdd8c73ad47177fc3') + version('0.28.1', sha256='0ca11048795b0d6338f2e57717370208c2c97ad66c6d5eac0c97a8827d13936b') + version('0.28.0', sha256='9d60d64dc77085e8e530e5c66314057eafe0c06e4a7a61149a70ff3e0688f284') + version('0.27.10', sha256='f6fd26378ff71bd7a4b17b576c82c774a2e9c2d6b74b24718a8fb29551e1c4a5') + version('0.27.9', sha256='adf17310b590e6e7618f070c742b5ee028aeeed2c60099bc4190c386b5060de1') + version('0.27.8', sha256='8313873d49dc01e8b880ec334d7430ae67496a89aaa8c6e7bbd3affb47a00c76') + version('0.27.7', sha256='1a5435a483759b1cd96feb12b11abb5231b0688016db506ce5947178f6ba2531') + version('0.27.6', sha256='d98db2ed11ec82fee94dce4819b466524613852c2c9c3426d351c57729ec49da') + version('0.27.5', sha256='15f2775f4f325951d9139ed906502b6c71fee6787cada9b045f5994072ccbd33') + version('0.27.4', sha256='0b7ca31cb959ff1b22afa0da8621782afe61f99242bf716c403802ffbdb21d51') + version('0.27.3', sha256='50a57bd91f57aa310fb7d5e2a340b3779dc17e67b4e7e66111feac5c2432f1a5') + version('0.27.2', sha256='ffacdbd5588aeb03e98e3866a7e2ceace468723a439bdc9bb01362fe140fa9e5') + version('0.27.1', sha256='837b11927bc5f64e7f9ab0376f57cfe3ca5aa52ffd2007ac41184b21124fb086') + version('0.27.0', sha256='545b0458292c786aba334f1bf1c8f73600ae73dd7205a7bb791a187ee48ab8d2') + version('0.26.8', sha256='0f20d7e239be030db33d7350bab38ada2830b3bffab5539730074e71b0267796') + version('0.26.7', sha256='65584ac1f4de2c3ab8491351c8629eb68bad2d65e67f6411bf0333b8976dc4ef') + version('0.26.6', sha256='7669dd47ebdab86ced8888816c552596ec923b6e126704a3445b2081cb0e5662') + version('0.26.5', sha256='52e28a5166564bc4365a2e4112f5e5c6e334708dbf13596241b2fd34efc1b0a9') + version('0.26.4', sha256='292fa2600bbb4e52641793cfcc1c19ffc0bf97b5fd8378d422a6bfe7afffcb97') + version('0.26.3', sha256='0da4e211dfb63c22e5f43f2a4a5373e86a140afa88a25ca6ba3cc2cae58263d2') + version('0.26.2', sha256='747b47d5b02a2387ff81301c694763785181b895690b6eb91ed1ae4b7904307b') + version('0.26.1', sha256='68cd0f8ee9e0ca84dcf0f0267d0a8297471d3365622d22d3da67c57165bb0722') + version('0.26.0', sha256='6a62393e0ceb37d02fe0d5707713f504e7acac9006ef33da1e88960bd78b6eac') - depends_on('cmake@2.8:', type='build') - depends_on('libssh2') + # Backends + variant( + 'https', default='system', description='HTTPS support', + values=('system', 'openssl', 'none'), multi=False) + variant('ssh', default=True, description='Enable SSH support') + variant('curl', default=False, description='Enable libcurl support (only supported through v0.27)') + + # Build Dependencies + depends_on('cmake@2.8:', type='build', when="@:0.28") + depends_on('cmake@3.5:', type='build', when="@0.99:") + + # Runtime Dependencies + depends_on('libssh2', when='+ssh') + depends_on('openssl', when='https=system platform=linux') + depends_on('openssl', when='https=system platform=cray') + depends_on('openssl', when='https=openssl') + depends_on('curl', when='+curl') + + conflicts('+curl', when='@0.28:') + + def cmake_args(self): + args = [] + if 'https=system' in self.spec: + if 'platform=linux' in self.spec or 'platform=cray' in self.spec: + args.append('-DUSE_HTTPS=OpenSSL') + elif 'platform=darwin' in self.spec: + args.append('-DUSE_HTTPS=SecureTransport') + else: + # Let CMake try to find an HTTPS implementation. Mileage on + # your platform may vary + args.append('-DUSE_HTTPS=ON') + elif 'https=openssl' in self.spec: + args.append('-DUSE_HTTPS=OpenSSL') + else: + args.append('-DUSE_HTTPS=OFF') + + args.append( + '-DUSE_SSH={0}'.format('ON' if '+ssh' in self.spec else 'OFF')) + + # The curl backed is not supported after 0.27.x + if '@:0.27 +curl' in self.spec: + args.append( + '-DCURL={0}'.format('ON' if '+curl' in self.spec else 'OFF')) + + # Control tests + args.append( + '-DBUILD_CLAR={0}'.format('ON' if self.run_tests else 'OFF')) + + return args diff --git a/var/spack/repos/builtin/packages/libgpg-error/package.py b/var/spack/repos/builtin/packages/libgpg-error/package.py index 6e61bf1403..c4978751ff 100644 --- a/var/spack/repos/builtin/packages/libgpg-error/package.py +++ b/var/spack/repos/builtin/packages/libgpg-error/package.py @@ -7,14 +7,12 @@ from spack import * class LibgpgError(AutotoolsPackage): - """Libgpg-error is a small library that defines common error - values for all GnuPG components. Among these are GPG, GPGSM, - GPGME, GPG-Agent, libgcrypt, Libksba, DirMngr, Pinentry, - SmartCard Daemon and possibly more in the future. """ + """Common error values for all GnuPG components.""" - homepage = "https://www.gnupg.org/related_software/libgpg-error" - url = "https://gnupg.org/ftp/gcrypt/libgpg-error/libgpg-error-1.27.tar.bz2" + homepage = "https://www.gnupg.org/related_software/libgpg-error/index.en.html" + url = "https://gnupg.org/ftp/gcrypt/libgpg-error/libgpg-error-1.37.tar.bz2" + version('1.37', sha256='b32d6ff72a73cf79797f7f2d039e95e9c6f92f0c1450215410840ab62aea9763') version('1.36', sha256='babd98437208c163175c29453f8681094bcaf92968a15cafb1a276076b33c97c') version('1.27', sha256='4f93aac6fecb7da2b92871bb9ee33032be6a87b174f54abf8ddf0911a22d29d2') version('1.21', sha256='b7dbdb3cad63a740e9f0c632a1da32d4afdb694ec86c8625c98ea0691713b84d') @@ -23,3 +21,13 @@ class LibgpgError(AutotoolsPackage): depends_on('awk', type=('build')) # Patch for using gawk@5, c.f. https://dev.gnupg.org/T4459 patch('awk-5.patch', when='@1.36^gawk@5:') + + def configure_args(self): + args = ['--enable-static'] + + if self.run_tests: + args.append('--enable-tests') + else: + args.append('--disable-tests') + + return args diff --git a/var/spack/repos/builtin/packages/libhio/package.py b/var/spack/repos/builtin/packages/libhio/package.py index 42ef377a5a..f04dc7c660 100644 --- a/var/spack/repos/builtin/packages/libhio/package.py +++ b/var/spack/repos/builtin/packages/libhio/package.py @@ -16,11 +16,15 @@ class Libhio(AutotoolsPackage): homepage = "https://github.com/hpc/libhio" url = "https://github.com/hpc/libhio/releases/download/hio.1.4.1.0/libhio-1.4.1.0.tar.bz2" + git = "https://github.com/hpc/libhio.git" + maintainers = ['plamborn'] # # We don't include older versions since they are missing features # needed by current and future consumers of libhio # + version('master', branch='master') + version('1.4.1.4', sha256='6998a424cff97be9a207032b3addd19f292d8ebda72043be92a8f942ae3b4da1') version('1.4.1.3', sha256='b6ad2354f1bc597e7e55fc989ff50944835d64149f4925c2f45df950919e4d08') version('1.4.1.2', sha256='87a0f9b72b7aa69485c40d9bd36f02af653b70e8eed3eb0b50eaeb02ff0a9049') version('1.4.1.1', sha256='5c65d18bf74357f9d9960bf6b9ad2432f8fc5a2b653e72befe4d1caabb9a2f7a') @@ -57,4 +61,6 @@ class Libhio(AutotoolsPackage): if '+hdf5' in spec: args.append('--with-hdf5={0}'.format(spec['hdf5'].prefix)) + args.append('--with-external-json={0}'.format(spec['json-c'].prefix)) + return args diff --git a/var/spack/repos/builtin/packages/libiscsi/package.py b/var/spack/repos/builtin/packages/libiscsi/package.py new file mode 100644 index 0000000000..621cc875d6 --- /dev/null +++ b/var/spack/repos/builtin/packages/libiscsi/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 Libiscsi(AutotoolsPackage): + """Libiscsi is a client-side library to implement the iSCSI protocol that can + be used to access the resources of an iSCSI target.""" + + homepage = "https://github.com/sahlberg/libiscsi" + url = "https://github.com/sahlberg/libiscsi/archive/1.19.0.tar.gz" + + version('1.19.0', sha256='c7848ac722c8361d5064654bc6e926c2be61ef11dd3875020a63931836d806df') + version('1.18.0', sha256='464d104e12533dc11f0dd7662cbc2f01c132f94aa4f5bd519e3413ef485830e8') + version('1.17.0', sha256='80a7f75bfaffc8bec9920ba7af3f1d14cd862c35c3c5f2c9617b45b975232112') + version('1.16.0', sha256='35c7be63a8c3a7cee7b697901b6d2dd464e098e1881671eb67462983053b3c7b') + version('1.15.0', sha256='489e625e58c1e6da2fa3536f9c4b12290f2d3fb4ce14edc0583b8ba500605c34') + + depends_on('autoconf', type='build') + depends_on('automake', type='build') + depends_on('libtool', type='build') + depends_on('m4', type='build') + + def autoreconf(self, spec, prefix): + autoreconf('--install', '--force') diff --git a/var/spack/repos/builtin/packages/libmesh/package.py b/var/spack/repos/builtin/packages/libmesh/package.py index 541e98a0d4..a828b3c87a 100644 --- a/var/spack/repos/builtin/packages/libmesh/package.py +++ b/var/spack/repos/builtin/packages/libmesh/package.py @@ -79,10 +79,7 @@ class Libmesh(AutotoolsPackage): 'variant.') depends_on('boost', when='+boost') - # The Scotch dependency of Eigen is not used by libMesh. Since Scotch can - # only be used with certain versions of flex it conflicts with several - # versions of GCC, so explicitly disable it. - depends_on('eigen~scotch', when='+eigen') + depends_on('eigen', when='+eigen') depends_on('hdf5+mpi', when='+hdf5+mpi') depends_on('mpi', when='+mpi') depends_on('mpi', when='+slepc') diff --git a/var/spack/repos/builtin/packages/libsndfile/package.py b/var/spack/repos/builtin/packages/libsndfile/package.py new file mode 100644 index 0000000000..4c5c294d48 --- /dev/null +++ b/var/spack/repos/builtin/packages/libsndfile/package.py @@ -0,0 +1,40 @@ +# 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 Libsndfile(AutotoolsPackage): + """Libsndfile is a C library for reading and writing files containing + sampled sound (such as MS Windows WAV and the Apple/SGI AIFF format) + through one standard library interface. It is released in source code + format under the Gnu Lesser General Public License.""" + + homepage = "http://www.mega-nerd.com/libsndfile/" + url = "http://www.mega-nerd.com/libsndfile/files/libsndfile-1.0.28.tar.gz" + + version('1.0.28', sha256='1ff33929f042fa333aed1e8923aa628c3ee9e1eb85512686c55092d1e5a9dfa9') + + variant('alsa', default=False, description='Use alsa in example programs') + variant('external-libs', + default=False, + description='Build with support for FLAC, Ogg and Vorbis') + variant('sqlite', default=False, description='Build with sqlite support') + + depends_on('pkgconfig', type='build') + depends_on('alsa-lib', when='+alsa') + depends_on('flac@1.3.1:', when='+external-libs') + depends_on('libogg@1.1.3:', when='+external-libs') + depends_on('libvorbis@1.2.3:', when='+external-libs') + depends_on('sqlite@3.2:', when='+sqlite') + + def configure_args(self): + args = [] + + args += self.enable_or_disable('alsa') + args += self.enable_or_disable('external-libs') + args += self.enable_or_disable('sqlite') + + return args diff --git a/var/spack/repos/builtin/packages/libunwind/package.py b/var/spack/repos/builtin/packages/libunwind/package.py index b8e01f0a92..971840f5e0 100644 --- a/var/spack/repos/builtin/packages/libunwind/package.py +++ b/var/spack/repos/builtin/packages/libunwind/package.py @@ -13,9 +13,10 @@ class Libunwind(AutotoolsPackage): homepage = "http://www.nongnu.org/libunwind/" url = "http://download.savannah.gnu.org/releases/libunwind/libunwind-1.1.tar.gz" git = "https://github.com/libunwind/libunwind" + maintainers = ['mwkrentel'] - version('develop', branch='master') - version('2018.10.12', commit='f551e16213c52169af8bda554e4051b756a169cc') + version('master', branch='master') + version('1.4-head', branch='v1.4-stable') version('1.4-rc1', sha256='1928459139f048f9b4aca4bb5010540cb7718d44220835a2980b85429007fa9f') version('1.3.1', sha256='43997a3939b6ccdf2f669b50fdb8a4d3205374728c2923ddc2354c65260214f8', preferred=True) version('1.2.1', sha256='3f3ecb90e28cbe53fba7a4a27ccce7aad188d3210bb1964a923a731a27a75acb') @@ -24,14 +25,19 @@ class Libunwind(AutotoolsPackage): variant('xz', default=False, description='Support xz (lzma) compressed symbol tables.') + variant('zlib', default=False, + description='Support zlib compressed symbol tables (master ' + 'branch only).') + # The libunwind releases contain the autotools generated files, # but the git repo snapshots do not. - depends_on('autoconf', type='build', when='@2018:') - depends_on('automake', type='build', when='@2018:') - depends_on('libtool', type='build', when='@2018:') - depends_on('m4', type='build', when='@2018:') + depends_on('autoconf', type='build', when='@master,1.4-head') + depends_on('automake', type='build', when='@master,1.4-head') + depends_on('libtool', type='build', when='@master,1.4-head') + depends_on('m4', type='build', when='@master,1.4-head') depends_on('xz', type='link', when='+xz') + depends_on('zlib', type='link', when='+zlib') conflicts('platform=darwin', msg='Non-GNU libunwind needs ELF libraries Darwin does not have') @@ -49,4 +55,11 @@ class Libunwind(AutotoolsPackage): else: args.append('--disable-minidebuginfo') + # zlib support is only in the master branch (for now). + if spec.satisfies('@master'): + if '+zlib' in spec: + args.append('--enable-zlibdebuginfo') + else: + args.append('--disable-zlibdebuginfo') + return args diff --git a/var/spack/repos/builtin/packages/libxpresent/package.py b/var/spack/repos/builtin/packages/libxpresent/package.py index 0fddba389a..1305623472 100644 --- a/var/spack/repos/builtin/packages/libxpresent/package.py +++ b/var/spack/repos/builtin/packages/libxpresent/package.py @@ -15,10 +15,15 @@ class Libxpresent(AutotoolsPackage): version('1.0.0', sha256='92f1bdfb67ae2ffcdb25ad72c02cac5e4912dc9bc792858240df1d7f105946fa') - depends_on('libx11') + depends_on('libx11', type='link') + depends_on('libxext', type='link') + depends_on('libxfixes', type='link') + depends_on('libxrandr', type='link') - depends_on('xproto', type='build') - depends_on('presentproto@1.0:', type='build') - depends_on('xextproto', type='build') + depends_on('xproto', type='link') + depends_on('presentproto@1.0:', type='link') + depends_on('xextproto', type='link') + depends_on('fixesproto', type='link') + depends_on('randrproto', type='link') depends_on('pkgconfig', type='build') depends_on('util-macros', type='build') diff --git a/var/spack/repos/builtin/packages/libxsmm/package.py b/var/spack/repos/builtin/packages/libxsmm/package.py index 070b24396f..12cfc32dfd 100644 --- a/var/spack/repos/builtin/packages/libxsmm/package.py +++ b/var/spack/repos/builtin/packages/libxsmm/package.py @@ -14,10 +14,11 @@ class Libxsmm(MakefilePackage): and deep learning primitives.""" homepage = 'https://github.com/hfp/libxsmm' - url = 'https://github.com/hfp/libxsmm/archive/1.14.tar.gz' + url = 'https://github.com/hfp/libxsmm/archive/1.15.tar.gz' git = 'https://github.com/hfp/libxsmm.git' - version('develop', branch='master') + version('master', branch='master') + version('1.15', sha256='499e5adfbf90cd3673309243c2b56b237d54f86db2437e1ac06c8746b55ab91c') version('1.14', sha256='9c0af4509ea341d1ee2c6c19fc6f19289318c3bd4b17844efeb9e7f9691abf76') version('1.13', sha256='47c034e169820a9633770eece0e0fdd8d4a744e09b81da2af8c2608a4625811e') version('1.12.1', sha256='3687fb98da00ba92cd50b5f0d18b39912c7886dad3856843573aee0cb34e9791') diff --git a/var/spack/repos/builtin/packages/likwid/package.py b/var/spack/repos/builtin/packages/likwid/package.py index c24d5e720a..8556fb0d8e 100644 --- a/var/spack/repos/builtin/packages/likwid/package.py +++ b/var/spack/repos/builtin/packages/likwid/package.py @@ -19,7 +19,9 @@ class Likwid(Package): homepage = "https://github.com/RRZE-HPC/likwid" url = "https://github.com/RRZE-HPC/likwid/archive/v5.0.0.tar.gz" git = "https://github.com/RRZE-HPC/likwid.git" + maintainers = ['TomTheBear'] + version('5.0.1', sha256='3757b0cb66e8af0116f9288c7f90543acbd8e2af8f72f77aef447ca2b3e76453') version('5.0.0', sha256='26623f5a1a5fec19d798f0114774a5293d1c93a148538b9591a13e50930fa41e') version('4.3.4', sha256='5c0d1c66b25dac8292a02232f06454067f031a238f010c62f40ef913c6609a83') version('4.3.3', sha256='a681378cd66c1679ca840fb5fac3136bfec93c01b3d78cc1d00a641db325a9a3') @@ -40,8 +42,6 @@ class Likwid(Package): depends_on('perl', type=('build', 'run')) - supported_compilers = {'clang': 'CLANG', 'gcc': 'GCC', 'intel': 'ICC'} - def patch(self): files = glob.glob('perl/*.*') + glob.glob('bench/perl/*.*') @@ -59,13 +59,18 @@ class Likwid(Package): *files) def install(self, spec, prefix): - if self.compiler.name not in self.supported_compilers: + supported_compilers = {'clang': 'CLANG', 'gcc': 'GCC', 'intel': 'ICC'} + if spec.target.family == 'aarch64': + supported_compilers = {'gcc': 'GCCARMv8', 'clang': 'ARMCLANG'} + elif spec.target.family == 'ppc64' or spec.target.family == 'ppc64le': + supported_compilers = {'gcc': 'GCCPOWER'} + if self.compiler.name not in supported_compilers: raise RuntimeError('{0} is not a supported compiler \ to compile Likwid'.format(self.compiler.name)) filter_file('^COMPILER .*', 'COMPILER = ' + - self.supported_compilers[self.compiler.name], + supported_compilers[self.compiler.name], 'config.mk') filter_file('^PREFIX .*', 'PREFIX = ' + diff --git a/var/spack/repos/builtin/packages/lksctp-tools/package.py b/var/spack/repos/builtin/packages/lksctp-tools/package.py new file mode 100644 index 0000000000..ca168aa320 --- /dev/null +++ b/var/spack/repos/builtin/packages/lksctp-tools/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 LksctpTools(AutotoolsPackage): + """A Linux SCTP helper library""" + + homepage = "https://github.com/sctp/lksctp-tools" + url = "https://github.com/sctp/lksctp-tools/archive/v1.0.18.tar.gz" + + version('1.0.18', sha256='3e9ab5b3844a8b65fc8152633aafe85f406e6da463e53921583dfc4a443ff03a') + + depends_on('autoconf', type='build') + depends_on('automake', type='build') + depends_on('libtool', type='build') + depends_on('m4', type='build') diff --git a/var/spack/repos/builtin/packages/lmbench/package.py b/var/spack/repos/builtin/packages/lmbench/package.py new file mode 100644 index 0000000000..e38ca29e24 --- /dev/null +++ b/var/spack/repos/builtin/packages/lmbench/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 Lmbench(MakefilePackage): + """lmbench is a suite of simple, portable, ANSI/C microbenchmarks for + UNIX/POSIX. In general, it measures two key features: latency and + bandwidth. lmbench is intended to give system developers insight into + basic costs of key operations.""" + + homepage = "http://lmbench.sourceforge.net/" + git = "https://github.com/intel/lmbench.git" + + version('master', branch='master') + + depends_on('libtirpc') + + def setup_build_environment(self, env): + env.prepend_path('CPATH', self.spec['libtirpc'].prefix.include.tirpc) + env.append_flags('LDFLAGS', '-ltirpc') + + def build(self, spec, prefix): + make('build') + + def install(self, spec, prefix): + install_tree('.', prefix) diff --git a/var/spack/repos/builtin/packages/lua-luaposix/package.py b/var/spack/repos/builtin/packages/lua-luaposix/package.py index f69c2a3682..f5290eae1c 100644 --- a/var/spack/repos/builtin/packages/lua-luaposix/package.py +++ b/var/spack/repos/builtin/packages/lua-luaposix/package.py @@ -13,6 +13,7 @@ class LuaLuaposix(Package): url = "https://github.com/luaposix/luaposix/archive/release-v33.4.0.tar.gz" version('33.4.0', sha256='e66262f5b7fe1c32c65f17a5ef5ffb31c4d1877019b4870a5d373e2ab6526a21') + version('33.2.1', sha256='4fb34dfea67f4cf3194cdecc6614c9aea67edc3c4093d34137669ea869c358e1') extends("lua") diff --git a/var/spack/repos/builtin/packages/lvm2/package.py b/var/spack/repos/builtin/packages/lvm2/package.py index c552fe3ef5..55fa1f1d39 100644 --- a/var/spack/repos/builtin/packages/lvm2/package.py +++ b/var/spack/repos/builtin/packages/lvm2/package.py @@ -20,6 +20,9 @@ class Lvm2(AutotoolsPackage): homepage = "https://www.sourceware.org/lvm2" url = "https://sourceware.org/pub/lvm2/releases/LVM2.2.03.05.tgz" + # The server is sometimes a bit slow to respond + fetch_options = {'timeout': 60} + version('2.03.05', sha256='ca52815c999b20c6d25e3192f142f081b93d01f07b9d787e99664b169dba2700') version('2.03.04', sha256='f151f36fc0039997d2d9369b607b9262568b1a268afe19fd1535807355402142') version('2.03.03', sha256='cedefa63ec5ae1b62fedbfddfc30706c095be0fc7c6aaed6fd1c50bc8c840dde') diff --git a/var/spack/repos/builtin/packages/margo/package.py b/var/spack/repos/builtin/packages/margo/package.py index c6f932e1bb..30e124cac6 100644 --- a/var/spack/repos/builtin/packages/margo/package.py +++ b/var/spack/repos/builtin/packages/margo/package.py @@ -13,7 +13,7 @@ class Margo(AutotoolsPackage): url = "https://xgitlab.cels.anl.gov/sds/margo/-/archive/v0.4.3/margo-v0.4.3.tar.gz" git = "https://xgitlab.cels.anl.gov/sds/margo.git" - maintainers = ['fbudin69500', 'chuckatkins'] + maintainers = ['fbudin69500', 'chuckatkins', 'carns'] version('develop', branch='master') version('0.4.3', sha256='61a634d6983bee2ffa06e1e2da4c541cb8f56ddd9dd9f8e04e8044fb38657475') diff --git a/var/spack/repos/builtin/packages/minigan/package.py b/var/spack/repos/builtin/packages/minigan/package.py new file mode 100644 index 0000000000..5d3b553bcf --- /dev/null +++ b/var/spack/repos/builtin/packages/minigan/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 Minigan(Package): + """miniGAN is a generative adversarial network code developed as part of the + Exascale Computing Project's (ECP) ExaLearn project at + Sandia National Laboratories.""" + + homepage = "https://github.com/SandiaMLMiniApps/miniGAN" + url = "https://github.com/SandiaMLMiniApps/miniGAN/archive/1.0.0.tar.gz" + + version('1.0.0', sha256='ef6d5def9c7040af520acc64b7a8b6c8ec4b7901721b11b0cb25a583ea0c8ae3') + + depends_on('python', type=('build', 'run')) + depends_on('py-setuptools', type='build') + depends_on('py-torch', type=('build', 'run')) + depends_on('py-numpy', type=('build', 'run')) + depends_on('py-horovod@master', type=('build', 'run')) + depends_on('py-torchvision', type=('build', 'run')) + depends_on('py-matplotlib@3.0.0', type=('build', 'run')) + + def install(self, spec, prefix): + install_tree('.', prefix) diff --git a/var/spack/repos/builtin/packages/mofem-cephas/package.py b/var/spack/repos/builtin/packages/mofem-cephas/package.py index 28e00565d2..24e8815084 100644 --- a/var/spack/repos/builtin/packages/mofem-cephas/package.py +++ b/var/spack/repos/builtin/packages/mofem-cephas/package.py @@ -42,7 +42,7 @@ class MofemCephas(CMakePackage): depends_on("parmetis") # Fixed version of hdf5, to remove some problems with dependent # packages, f.e. MED format - depends_on("hdf5@:1.8.19+hl+mpi") + depends_on("hdf5@:1.8.19+hl+mpi+fortran") depends_on("petsc@:3.9.3+mumps+mpi") depends_on('slepc', when='+slepc') depends_on("moab") diff --git a/var/spack/repos/builtin/packages/netcdf-fortran/nag.patch b/var/spack/repos/builtin/packages/mpich/nag_libtool_2.4.2_0.patch index 458c18813e..18d5c2ad65 100644 --- a/var/spack/repos/builtin/packages/netcdf-fortran/nag.patch +++ b/var/spack/repos/builtin/packages/mpich/nag_libtool_2.4.2_0.patch @@ -1,30 +1,28 @@ -diff --git a/configure b/configure -index 06ac8b0..d518a1a 100755 --- a/configure +++ b/configure -@@ -10657,6 +10657,8 @@ _LT_EOF +@@ -11563,6 +11563,8 @@ _LT_EOF lf95*) # Lahey Fortran 8.1 whole_archive_flag_spec= tmp_sharedflag='--shared' ;; -+ nagfor*) ++ nagfor*) # NAGFOR 5.3 + tmp_sharedflag='-Wl,-shared' ;; xl[cC]* | bgxl[cC]* | mpixl[cC]*) # IBM XL C 8.0 on PPC (deal with xlf below) tmp_sharedflag='-qmkshrobj' tmp_addflag= ;; -@@ -14252,6 +14254,8 @@ _LT_EOF +@@ -19036,6 +19038,8 @@ _LT_EOF lf95*) # Lahey Fortran 8.1 whole_archive_flag_spec_F77= tmp_sharedflag='--shared' ;; -+ nagfor*) ++ nagfor*) # NAGFOR 5.3 + tmp_sharedflag='-Wl,-shared' ;; xl[cC]* | bgxl[cC]* | mpixl[cC]*) # IBM XL C 8.0 on PPC (deal with xlf below) tmp_sharedflag='-qmkshrobj' tmp_addflag= ;; -@@ -17142,6 +17146,8 @@ _LT_EOF +@@ -22116,6 +22120,8 @@ _LT_EOF lf95*) # Lahey Fortran 8.1 whole_archive_flag_spec_FC= tmp_sharedflag='--shared' ;; -+ nagfor*) ++ nagfor*) # NAGFOR 5.3 + tmp_sharedflag='-Wl,-shared' ;; xl[cC]* | bgxl[cC]* | mpixl[cC]*) # IBM XL C 8.0 on PPC (deal with xlf below) tmp_sharedflag='-qmkshrobj' diff --git a/var/spack/repos/builtin/packages/mpich/nag_libtool_2.4.2_1.patch b/var/spack/repos/builtin/packages/mpich/nag_libtool_2.4.2_1.patch new file mode 100644 index 0000000000..8fb671093b --- /dev/null +++ b/var/spack/repos/builtin/packages/mpich/nag_libtool_2.4.2_1.patch @@ -0,0 +1,71 @@ +--- a/confdb/ltmain.sh ++++ b/confdb/ltmain.sh +@@ -180,6 +180,20 @@ func_basename () + func_basename_result=`$ECHO "${1}" | $SED "$basename"` + } # func_basename may be replaced by extended shell implementation + ++# Calculate cc_basename. Skip known compiler wrappers and cross-prefix. ++func_cc_basename () ++{ ++ for cc_temp in $*""; do ++ case $cc_temp in ++ compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; ++ distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; ++ \-*) ;; ++ *) break;; ++ esac ++ done ++ func_cc_basename_result=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"` ++} ++ + + # func_dirname_and_basename file append nondir_replacement + # perform func_basename and func_dirname in a single function +@@ -6419,6 +6433,13 @@ func_mode_link () + # Convert "-framework foo" to "foo.ltframework" + if test -n "$inherited_linker_flags"; then + tmp_inherited_linker_flags=`$ECHO "$inherited_linker_flags" | $SED 's/-framework \([^ $]*\)/\1.ltframework/g'` ++ ++ # Additionally convert " -pthread" to " -Wl,-pthread" for nagfor ++ func_cc_basename $CC ++ case $func_cc_basename_result in ++ nagfor*) tmp_inherited_linker_flags=`$ECHO "$tmp_inherited_linker_flags" | $SED 's/ -pthread/ -Wl,-pthread/g'` ;; ++ esac ++ + for tmp_inherited_linker_flag in $tmp_inherited_linker_flags; do + case " $new_inherited_linker_flags " in + *" $tmp_inherited_linker_flag "*) ;; +@@ -8001,6 +8022,13 @@ EOF + ;; + esac + ++ # Time to revert the changes made for nagfor. ++ func_cc_basename $CC ++ case $func_cc_basename_result in ++ nagfor*) ++ new_inherited_linker_flags=`$ECHO " $new_inherited_linker_flags" | $SED 's% -Wl,-pthread% -pthread%g'` ;; ++ esac ++ + # move library search paths that coincide with paths to not yet + # installed libraries to the beginning of the library search list + new_libs= +--- a/configure ++++ b/configure +@@ -11614,6 +11614,8 @@ _LT_EOF + whole_archive_flag_spec= + tmp_sharedflag='--shared' ;; + nagfor*) # NAGFOR 5.3 ++ whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' ++ compiler_needs_object=yes + tmp_sharedflag='-Wl,-shared' ;; + xl[cC]* | bgxl[cC]* | mpixl[cC]*) # IBM XL C 8.0 on PPC (deal with xlf below) + tmp_sharedflag='-qmkshrobj' +@@ -19246,6 +19248,8 @@ _LT_EOF + whole_archive_flag_spec_FC= + tmp_sharedflag='--shared' ;; + nagfor*) # NAGFOR 5.3 ++ whole_archive_flag_spec_FC='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' ++ compiler_needs_object_FC=yes + tmp_sharedflag='-Wl,-shared' ;; + xl[cC]* | bgxl[cC]* | mpixl[cC]*) # IBM XL C 8.0 on PPC (deal with xlf below) + tmp_sharedflag='-qmkshrobj' diff --git a/var/spack/repos/builtin/packages/mpich/nag_libtool_2.4.2_2.patch b/var/spack/repos/builtin/packages/mpich/nag_libtool_2.4.2_2.patch new file mode 100644 index 0000000000..871ffe6dd2 --- /dev/null +++ b/var/spack/repos/builtin/packages/mpich/nag_libtool_2.4.2_2.patch @@ -0,0 +1,11 @@ +--- a/configure ++++ b/configure +@@ -22237,6 +22237,8 @@ _LT_EOF + whole_archive_flag_spec_F77= + tmp_sharedflag='--shared' ;; + nagfor*) # NAGFOR 5.3 ++ whole_archive_flag_spec_F77='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' ++ compiler_needs_object_F77=yes + tmp_sharedflag='-Wl,-shared' ;; + xl[cC]* | bgxl[cC]* | mpixl[cC]*) # IBM XL C 8.0 on PPC (deal with xlf below) + tmp_sharedflag='-qmkshrobj' diff --git a/var/spack/repos/builtin/packages/mpich/nag_libtool_2.4.6.patch b/var/spack/repos/builtin/packages/mpich/nag_libtool_2.4.6.patch new file mode 100644 index 0000000000..50f73f2dde --- /dev/null +++ b/var/spack/repos/builtin/packages/mpich/nag_libtool_2.4.6.patch @@ -0,0 +1,69 @@ +--- a/confdb/ltmain.sh ++++ b/confdb/ltmain.sh +@@ -7867,6 +7867,13 @@ func_mode_link () + # Convert "-framework foo" to "foo.ltframework" + if test -n "$inherited_linker_flags"; then + tmp_inherited_linker_flags=`$ECHO "$inherited_linker_flags" | $SED 's/-framework \([^ $]*\)/\1.ltframework/g'` ++ ++ # Additionally convert " -pthread" to " -Wl,-pthread" for nagfor ++ func_cc_basename $CC ++ case $func_cc_basename_result in ++ nagfor*) tmp_inherited_linker_flags=`$ECHO "$tmp_inherited_linker_flags" | $SED 's/ -pthread/ -Wl,-pthread/g'` ;; ++ esac ++ + for tmp_inherited_linker_flag in $tmp_inherited_linker_flags; do + case " $new_inherited_linker_flags " in + *" $tmp_inherited_linker_flag "*) ;; +@@ -8886,7 +8893,8 @@ func_mode_link () + xlcverstring="$wl-compatibility_version $wl$minor_current $wl-current_version $wl$minor_current.$revision" + verstring="-compatibility_version $minor_current -current_version $minor_current.$revision" + # On Darwin other compilers +- case $CC in ++ func_cc_basename $CC ++ case $func_cc_basename_result in + nagfor*) + verstring="$wl-compatibility_version $wl$minor_current $wl-current_version $wl$minor_current.$revision" + ;; +@@ -9498,6 +9506,13 @@ EOF + ;; + esac + ++ # Time to revert the changes made for nagfor. ++ func_cc_basename $CC ++ case $func_cc_basename_result in ++ nagfor*) ++ new_inherited_linker_flags=`$ECHO " $new_inherited_linker_flags" | $SED 's% -Wl,-pthread% -pthread%g'` ;; ++ esac ++ + # move library search paths that coincide with paths to not yet + # installed libraries to the beginning of the library search list + new_libs= +--- a/configure ++++ b/configure +@@ -12583,6 +12583,8 @@ _LT_EOF + whole_archive_flag_spec= + tmp_sharedflag='--shared' ;; + nagfor*) # NAGFOR 5.3 ++ whole_archive_flag_spec='$wl--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive' ++ compiler_needs_object=yes + tmp_sharedflag='-Wl,-shared' ;; + xl[cC]* | bgxl[cC]* | mpixl[cC]*) # IBM XL C 8.0 on PPC (deal with xlf below) + tmp_sharedflag='-qmkshrobj' +@@ -20684,6 +20686,8 @@ _LT_EOF + whole_archive_flag_spec_FC= + tmp_sharedflag='--shared' ;; + nagfor*) # NAGFOR 5.3 ++ whole_archive_flag_spec_FC='$wl--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive' ++ compiler_needs_object_FC=yes + tmp_sharedflag='-Wl,-shared' ;; + xl[cC]* | bgxl[cC]* | mpixl[cC]*) # IBM XL C 8.0 on PPC (deal with xlf below) + tmp_sharedflag='-qmkshrobj' +@@ -23958,6 +23962,8 @@ _LT_EOF + whole_archive_flag_spec_F77= + tmp_sharedflag='--shared' ;; + nagfor*) # NAGFOR 5.3 ++ whole_archive_flag_spec_F77='$wl--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive' ++ compiler_needs_object_F77=yes + tmp_sharedflag='-Wl,-shared' ;; + xl[cC]* | bgxl[cC]* | mpixl[cC]*) # IBM XL C 8.0 on PPC (deal with xlf below) + tmp_sharedflag='-qmkshrobj' diff --git a/var/spack/repos/builtin/packages/mpich/package.py b/var/spack/repos/builtin/packages/mpich/package.py index 0980c66818..8360046ab4 100644 --- a/var/spack/repos/builtin/packages/mpich/package.py +++ b/var/spack/repos/builtin/packages/mpich/package.py @@ -63,6 +63,9 @@ spack package at this time.''', ) variant('pci', default=(sys.platform != 'darwin'), description="Support analyzing devices on PCI bus") + variant('libxml2', default=True, + description='Use libxml2 for XML support instead of the custom ' + 'minimalistic implementation') provides('mpi') provides('mpi@:3.0', when='@3:') @@ -86,6 +89,23 @@ spack package at this time.''', sha256='c7d4ecf865dccff5b764d9c66b6a470d11b0b1a5b4f7ad1ffa61079ad6b5dede', when='@3.3:3.3.0') + # This patch for Libtool 2.4.2 enables shared libraries for NAG and is + # applied by MPICH starting version 3.1. + patch('nag_libtool_2.4.2_0.patch', when='@:3.0%nag') + + # This patch for Libtool 2.4.2 fixes the problem with '-pthread' flag and + # enables convenience libraries for NAG. Starting version 3.1, the order of + # checks for FC and F77 is changed, therefore we need to apply the patch in + # two steps (the patch files can be merged once the support for versions + # 3.1 and older is dropped). + patch('nag_libtool_2.4.2_1.patch', when='@:3.1.3%nag') + patch('nag_libtool_2.4.2_2.patch', when='@:3.1.3%nag') + + # This patch for Libtool 2.4.6 does the same as the previous two. The + # problem is not fixed upstream yet and the upper version constraint is + # given just to avoid application of the patch to the develop version. + patch('nag_libtool_2.4.6.patch', when='@3.1.4:3.3%nag') + depends_on('findutils', type='build') depends_on('pkgconfig', type='build') @@ -96,8 +116,14 @@ spack package at this time.''', depends_on('ucx', when='netmod=ucx') - depends_on('libpciaccess', when="+pci") - depends_on('libxml2') + # The dependencies on libpciaccess and libxml2 come from the embedded + # hwloc, which, before version 3.3, was used only for Hydra. + depends_on('libpciaccess', when="@:3.2+hydra+pci") + depends_on('libxml2', when='@:3.2+hydra+libxml2') + + # Starting with version 3.3, MPICH uses hwloc directly. + depends_on('libpciaccess', when="@3.3:+pci") + depends_on('libxml2', when='@3.3:+libxml2') # Starting with version 3.3, Hydra can use libslurm for nodelist parsing depends_on('slurm', when='+slurm') @@ -119,6 +145,12 @@ spack package at this time.''', conflicts('pmi=pmi2', when='device=ch3 netmod=ofi') conflicts('pmi=pmix', when='device=ch3') + # MPICH does not require libxml2 and libpciaccess for versions before 3.3 + # when ~hydra is set: prevent users from setting +libxml2 and +pci in this + # case to avoid generating an identical MPICH installation. + conflicts('+pci', when='@:3.2~hydra') + conflicts('+libxml2', when='@:3.2~hydra') + def setup_build_environment(self, env): env.unset('F90') env.unset('F90FLAGS') @@ -181,6 +213,7 @@ spack package at this time.''', def configure_args(self): spec = self.spec config_args = [ + '--disable-silent-rules', '--enable-shared', '--with-pm={0}'.format('hydra' if '+hydra' in spec else 'no'), '--{0}-romio'.format('enable' if '+romio' in spec else 'disable'), @@ -234,4 +267,11 @@ spack package at this time.''', config_args.append('--with-ucx={0}'.format( spec['ucx'].prefix)) + # In other cases the argument is redundant. + if '@:3.2+hydra' in spec or '@3.3:' in spec: + # The root configure script passes the argument to the configure + # scripts of all instances of hwloc (there are three copies of it: + # for hydra, for hydra2, and for MPICH itself). + config_args += self.enable_or_disable('libxml2') + return config_args diff --git a/var/spack/repos/builtin/packages/mrcpp/package.py b/var/spack/repos/builtin/packages/mrcpp/package.py new file mode 100644 index 0000000000..558b145a71 --- /dev/null +++ b/var/spack/repos/builtin/packages/mrcpp/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 Mrcpp(CMakePackage): + """The MultiResolution Computation Program Package (MRCPP) is a general purpose + numerical mathematics library based on multiresolution analysis and the + multiwavelet basis which provide low-scaling algorithms as well as rigorous + error control in numerical computations.""" + + homepage = "https://mrcpp.readthedocs.io/en/latest/" + url = "https://github.com/MRChemSoft/mrcpp/archive/v1.1.0.tar.gz" + + maintainers = ["robertodr", "stigrj", "ilfreddy"] + + version('1.2.0-alpha2', + sha256='8f4df594751a5b7e76b09a62450c6c4956b1974876afa143cc9b5703156ccd40') + version('1.1.0', + sha256='e9ffb87eccbd45305f822a0b46b875788b70386b3c1d38add6540dc4e0327ab2', + preferred=True) + version('1.0.2', + sha256='d2b26f7d7b16fa67f16788119abc0f6c7562cb37ece9ba075c116463dcf19df3') + version('1.0.1', + sha256='b4d7120545da3531bc7aa0a4cb4eb579fdbe1f8e5d32b1fd1086976583e3e27c') + version('1.0.0', + sha256='0858146141d3a60232e8874380390f9e9fa0b1bd6e67099d5833704478213efd') + + variant("openmp", default=True, description="Enable OpenMP support.") + + variant("mpi", default=True, description="Enable MPI support") + depends_on("mpi", when="+mpi") + + depends_on("cmake@3.11:", type="build") + depends_on("eigen") + + def cmake_args(self): + args = [ + "-DENABLE_OPENMP={0}".format("ON" if "+openmp" in + self.spec else "OFF"), + "-DENABLE_MPI={0}".format("ON" if "+mpi" in self.spec else "OFF"), + ] + return args diff --git a/var/spack/repos/builtin/packages/mumps/package.py b/var/spack/repos/builtin/packages/mumps/package.py index a56bc111e2..de34b6aa19 100644 --- a/var/spack/repos/builtin/packages/mumps/package.py +++ b/var/spack/repos/builtin/packages/mumps/package.py @@ -241,7 +241,7 @@ class Mumps(Package): else: makefile_conf.extend([ 'LIBEXT = .a', - 'AR = ar vr', + 'AR = ar vr ', 'RANLIB = ranlib' ]) diff --git a/var/spack/repos/builtin/packages/munge/package.py b/var/spack/repos/builtin/packages/munge/package.py index 5c10720e77..66d14ec5d7 100644 --- a/var/spack/repos/builtin/packages/munge/package.py +++ b/var/spack/repos/builtin/packages/munge/package.py @@ -10,14 +10,28 @@ import os class Munge(AutotoolsPackage): """ MUNGE Uid 'N' Gid Emporium """ homepage = "https://code.google.com/p/munge/" - url = "https://github.com/dun/munge/releases/download/munge-0.5.13/munge-0.5.13.tar.xz" + url = "https://github.com/dun/munge/releases/download/munge-0.5.14/munge-0.5.14.tar.xz" + maintainers = ['ChristianTackeGSI'] + + version('0.5.14', sha256='6606a218f18090fa1f702e3f6fb608073eb6aafed534cf7dd81b67b2e0d30640') version('0.5.13', sha256='99753dfd06a4f063c36f3fb0eb1964f394feb649937d94c4734d85b7964144da') version('0.5.12', sha256='e972e3c3e947995a99e023f5758047db16cfe2f0c2c9ca76399dc1511fa71be8') version('0.5.11', sha256='8e075614f81cb0a6df21a0aafdc825498611a04429d0876f074fc828739351a5', url='https://github.com/dun/munge/releases/download/munge-0.5.11/munge-0.5.11.tar.bz2') + variant('localstatedir', default='PREFIX/var', values=any, + description='Set local state path (possibly to /var)') + depends_on('openssl') depends_on('libgcrypt') + depends_on('bzip2') + + def configure_args(self): + args = [] + localstatedir = self.spec.variants['localstatedir'].value + if localstatedir != 'PREFIX/var': + args.append('--localstatedir={0}'.format(localstatedir)) + return args def install(self, spec, prefix): os.makedirs(os.path.join(prefix, "lib/systemd/system")) diff --git a/var/spack/repos/builtin/packages/mvapich2/package.py b/var/spack/repos/builtin/packages/mvapich2/package.py index 87e9f77848..f6301a564a 100644 --- a/var/spack/repos/builtin/packages/mvapich2/package.py +++ b/var/spack/repos/builtin/packages/mvapich2/package.py @@ -10,10 +10,11 @@ import sys class Mvapich2(AutotoolsPackage): """MVAPICH2 is an MPI implementation for Infiniband networks.""" homepage = "http://mvapich.cse.ohio-state.edu/" - url = "http://mvapich.cse.ohio-state.edu/download/mvapich/mv2/mvapich2-2.3.2.tar.gz" + url = "http://mvapich.cse.ohio-state.edu/download/mvapich/mv2/mvapich2-2.3.3.tar.gz" list_url = "http://mvapich.cse.ohio-state.edu/downloads/" # Prefer the latest stable release + version('2.3.3', sha256='41d3261be57e5bc8aabf4e32981543c015c5443ff032a26f18205985e18c2b73') version('2.3.2', sha256='30cc0d7bcaa075d204692f76bca4d65a539e0f661c7460ffa9f835d6249e1ebf') version('2.3.1', sha256='314e12829f75f3ed83cd4779a972572d1787aac6543a3d024ea7c6080e0ee3bf') version('2.3', sha256='01d5fb592454ddd9ecc17e91c8983b6aea0e7559aa38f410b111c8ef385b50dd') diff --git a/var/spack/repos/builtin/packages/mxnet/package.py b/var/spack/repos/builtin/packages/mxnet/package.py index f3b7cddb23..492a2573bc 100644 --- a/var/spack/repos/builtin/packages/mxnet/package.py +++ b/var/spack/repos/builtin/packages/mxnet/package.py @@ -13,6 +13,8 @@ class Mxnet(MakefilePackage): homepage = "http://mxnet.io" url = "https://github.com/apache/incubator-mxnet/releases/download/1.3.0/apache-mxnet-src-1.3.0-incubating.tar.gz" + maintainers = ['adamjstewart'] + version('1.3.0', sha256='c00d6fbb2947144ce36c835308e603f002c1eb90a9f4c5a62f4d398154eed4d2') variant('cuda', default=False, description='Enable CUDA support') diff --git a/var/spack/repos/builtin/packages/ncurses/package.py b/var/spack/repos/builtin/packages/ncurses/package.py index 7b9b67b939..9df2de49b7 100644 --- a/var/spack/repos/builtin/packages/ncurses/package.py +++ b/var/spack/repos/builtin/packages/ncurses/package.py @@ -20,13 +20,14 @@ class Ncurses(AutotoolsPackage, GNUMirrorPackage): # URL must remain http:// so Spack can bootstrap curl gnu_mirror_path = "ncurses/ncurses-6.1.tar.gz" + version('6.2', sha256='30306e0c76e0f9f1f0de987cf1c82a5c21e1ce6568b9227f7da5b71cbea86c9d') version('6.1', sha256='aa057eeeb4a14d470101eff4597d5833dcef5965331be3528c08d99cebaa0d17') version('6.0', sha256='f551c24b30ce8bfb6e96d9f59b42fbea30fa3a6123384172f9e7284bcf647260') version('5.9', sha256='9046298fb440324c9d4135ecea7879ffed8546dd1b58e59430ea07a4633f563b') variant('symlinks', default=False, description='Enables symlinks. Needed on AFS filesystem.') - variant('termlib', default=False, + variant('termlib', default=True, description='Enables termlib needs for gnutls in emacs.') depends_on('pkgconfig', type='build') diff --git a/var/spack/repos/builtin/packages/netcdf-fortran/excessive_linking.patch b/var/spack/repos/builtin/packages/netcdf-fortran/excessive_linking.patch new file mode 100644 index 0000000000..11e149081a --- /dev/null +++ b/var/spack/repos/builtin/packages/netcdf-fortran/excessive_linking.patch @@ -0,0 +1,312 @@ +--- a/config.h.in ++++ b/config.h.in +@@ -52,9 +52,6 @@ + /* Define to 1 if you have the <inttypes.h> header file. */ + #undef HAVE_INTTYPES_H + +-/* Define to 1 if you have the `curl' library (-lcurl). */ +-#undef HAVE_LIBCURL +- + /* Define to 1 if you have the `m' library (-lm). */ + #undef HAVE_LIBM + +--- a/configure ++++ b/configure +@@ -22122,6 +22122,14 @@ $as_echo "$as_me: checking types, headers, and functions" >&6;} + + # We must check for all these, because they may be used by the netCDF + # C library. ++# Removing the checks for some of the libraries because of issues ++# observed when they are detected, are not needed, and an attempt to ++# link against is made anyways. ++# See https://github.com/Unidata/netcdf-fortran/issues/164 ++# ++# Specifying LDFLAGS="$(nc-config --libs [--static])" should ++# let downstream developers link more reliably against libnetcdf. ++ + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for floor in -lm" >&5 + $as_echo_n "checking for floor in -lm... " >&6; } + if ${ac_cv_lib_m_floor+:} false; then : +@@ -22167,163 +22175,6 @@ _ACEOF + + fi + +-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for curl_easy_setopt in -lcurl" >&5 +-$as_echo_n "checking for curl_easy_setopt in -lcurl... " >&6; } +-if ${ac_cv_lib_curl_curl_easy_setopt+:} false; then : +- $as_echo_n "(cached) " >&6 +-else +- ac_check_lib_save_LIBS=$LIBS +-LIBS="-lcurl $LIBS" +-cat confdefs.h - <<_ACEOF >conftest.$ac_ext +-/* end confdefs.h. */ +- +-/* Override any GCC internal prototype to avoid an error. +- Use char because int might match the return type of a GCC +- builtin and then its argument prototype would still apply. */ +-#ifdef __cplusplus +-extern "C" +-#endif +-char curl_easy_setopt (); +-int +-main () +-{ +-return curl_easy_setopt (); +- ; +- return 0; +-} +-_ACEOF +-if ac_fn_c_try_link "$LINENO"; then : +- ac_cv_lib_curl_curl_easy_setopt=yes +-else +- ac_cv_lib_curl_curl_easy_setopt=no +-fi +-rm -f core conftest.err conftest.$ac_objext \ +- conftest$ac_exeext conftest.$ac_ext +-LIBS=$ac_check_lib_save_LIBS +-fi +-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_curl_curl_easy_setopt" >&5 +-$as_echo "$ac_cv_lib_curl_curl_easy_setopt" >&6; } +-if test "x$ac_cv_lib_curl_curl_easy_setopt" = xyes; then : +- cat >>confdefs.h <<_ACEOF +-#define HAVE_LIBCURL 1 +-_ACEOF +- +- LIBS="-lcurl $LIBS" +- +-fi +- +-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing deflate" >&5 +-$as_echo_n "checking for library containing deflate... " >&6; } +-if ${ac_cv_search_deflate+:} false; then : +- $as_echo_n "(cached) " >&6 +-else +- ac_func_search_save_LIBS=$LIBS +-cat confdefs.h - <<_ACEOF >conftest.$ac_ext +-/* end confdefs.h. */ +- +-/* Override any GCC internal prototype to avoid an error. +- Use char because int might match the return type of a GCC +- builtin and then its argument prototype would still apply. */ +-#ifdef __cplusplus +-extern "C" +-#endif +-char deflate (); +-int +-main () +-{ +-return deflate (); +- ; +- return 0; +-} +-_ACEOF +-for ac_lib in '' zlibwapi zlibstat zlib zlib1 z; do +- if test -z "$ac_lib"; then +- ac_res="none required" +- else +- ac_res=-l$ac_lib +- LIBS="-l$ac_lib $ac_func_search_save_LIBS" +- fi +- if ac_fn_c_try_link "$LINENO"; then : +- ac_cv_search_deflate=$ac_res +-fi +-rm -f core conftest.err conftest.$ac_objext \ +- conftest$ac_exeext +- if ${ac_cv_search_deflate+:} false; then : +- break +-fi +-done +-if ${ac_cv_search_deflate+:} false; then : +- +-else +- ac_cv_search_deflate=no +-fi +-rm conftest.$ac_ext +-LIBS=$ac_func_search_save_LIBS +-fi +-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_deflate" >&5 +-$as_echo "$ac_cv_search_deflate" >&6; } +-ac_res=$ac_cv_search_deflate +-if test "$ac_res" != no; then : +- test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" +- +-fi +- +-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing SZ_Compress" >&5 +-$as_echo_n "checking for library containing SZ_Compress... " >&6; } +-if ${ac_cv_search_SZ_Compress+:} false; then : +- $as_echo_n "(cached) " >&6 +-else +- ac_func_search_save_LIBS=$LIBS +-cat confdefs.h - <<_ACEOF >conftest.$ac_ext +-/* end confdefs.h. */ +- +-/* Override any GCC internal prototype to avoid an error. +- Use char because int might match the return type of a GCC +- builtin and then its argument prototype would still apply. */ +-#ifdef __cplusplus +-extern "C" +-#endif +-char SZ_Compress (); +-int +-main () +-{ +-return SZ_Compress (); +- ; +- return 0; +-} +-_ACEOF +-for ac_lib in '' szip sz; do +- if test -z "$ac_lib"; then +- ac_res="none required" +- else +- ac_res=-l$ac_lib +- LIBS="-l$ac_lib $ac_func_search_save_LIBS" +- fi +- if ac_fn_c_try_link "$LINENO"; then : +- ac_cv_search_SZ_Compress=$ac_res +-fi +-rm -f core conftest.err conftest.$ac_objext \ +- conftest$ac_exeext +- if ${ac_cv_search_SZ_Compress+:} false; then : +- break +-fi +-done +-if ${ac_cv_search_SZ_Compress+:} false; then : +- +-else +- ac_cv_search_SZ_Compress=no +-fi +-rm conftest.$ac_ext +-LIBS=$ac_func_search_save_LIBS +-fi +-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_SZ_Compress" >&5 +-$as_echo "$ac_cv_search_SZ_Compress" >&6; } +-ac_res=$ac_cv_search_SZ_Compress +-if test "$ac_res" != no; then : +- test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" +- +-fi +- + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing dlopen" >&5 + $as_echo_n "checking for library containing dlopen... " >&6; } + if ${ac_cv_search_dlopen+:} false; then : +@@ -22380,118 +22231,6 @@ if test "$ac_res" != no; then : + + fi + +-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing H5Fflush" >&5 +-$as_echo_n "checking for library containing H5Fflush... " >&6; } +-if ${ac_cv_search_H5Fflush+:} false; then : +- $as_echo_n "(cached) " >&6 +-else +- ac_func_search_save_LIBS=$LIBS +-cat confdefs.h - <<_ACEOF >conftest.$ac_ext +-/* end confdefs.h. */ +- +-/* Override any GCC internal prototype to avoid an error. +- Use char because int might match the return type of a GCC +- builtin and then its argument prototype would still apply. */ +-#ifdef __cplusplus +-extern "C" +-#endif +-char H5Fflush (); +-int +-main () +-{ +-return H5Fflush (); +- ; +- return 0; +-} +-_ACEOF +-for ac_lib in '' hdf5dll hdf5; do +- if test -z "$ac_lib"; then +- ac_res="none required" +- else +- ac_res=-l$ac_lib +- LIBS="-l$ac_lib $ac_func_search_save_LIBS" +- fi +- if ac_fn_c_try_link "$LINENO"; then : +- ac_cv_search_H5Fflush=$ac_res +-fi +-rm -f core conftest.err conftest.$ac_objext \ +- conftest$ac_exeext +- if ${ac_cv_search_H5Fflush+:} false; then : +- break +-fi +-done +-if ${ac_cv_search_H5Fflush+:} false; then : +- +-else +- ac_cv_search_H5Fflush=no +-fi +-rm conftest.$ac_ext +-LIBS=$ac_func_search_save_LIBS +-fi +-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_H5Fflush" >&5 +-$as_echo "$ac_cv_search_H5Fflush" >&6; } +-ac_res=$ac_cv_search_H5Fflush +-if test "$ac_res" != no; then : +- test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" +- +-fi +- +-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing H5DSis_scale" >&5 +-$as_echo_n "checking for library containing H5DSis_scale... " >&6; } +-if ${ac_cv_search_H5DSis_scale+:} false; then : +- $as_echo_n "(cached) " >&6 +-else +- ac_func_search_save_LIBS=$LIBS +-cat confdefs.h - <<_ACEOF >conftest.$ac_ext +-/* end confdefs.h. */ +- +-/* Override any GCC internal prototype to avoid an error. +- Use char because int might match the return type of a GCC +- builtin and then its argument prototype would still apply. */ +-#ifdef __cplusplus +-extern "C" +-#endif +-char H5DSis_scale (); +-int +-main () +-{ +-return H5DSis_scale (); +- ; +- return 0; +-} +-_ACEOF +-for ac_lib in '' hdf5_hldll hdf5_hl; do +- if test -z "$ac_lib"; then +- ac_res="none required" +- else +- ac_res=-l$ac_lib +- LIBS="-l$ac_lib $ac_func_search_save_LIBS" +- fi +- if ac_fn_c_try_link "$LINENO"; then : +- ac_cv_search_H5DSis_scale=$ac_res +-fi +-rm -f core conftest.err conftest.$ac_objext \ +- conftest$ac_exeext +- if ${ac_cv_search_H5DSis_scale+:} false; then : +- break +-fi +-done +-if ${ac_cv_search_H5DSis_scale+:} false; then : +- +-else +- ac_cv_search_H5DSis_scale=no +-fi +-rm conftest.$ac_ext +-LIBS=$ac_func_search_save_LIBS +-fi +-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_H5DSis_scale" >&5 +-$as_echo "$ac_cv_search_H5DSis_scale" >&6; } +-ac_res=$ac_cv_search_H5DSis_scale +-if test "$ac_res" != no; then : +- test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" +- +-fi +- + + # Find the netCDF header and library. + for ac_header in netcdf.h diff --git a/var/spack/repos/builtin/packages/netcdf-fortran/logging.patch b/var/spack/repos/builtin/packages/netcdf-fortran/logging.patch new file mode 100644 index 0000000000..fadeb8cfe6 --- /dev/null +++ b/var/spack/repos/builtin/packages/netcdf-fortran/logging.patch @@ -0,0 +1,13 @@ +--- a/fortran/nf_logging.F90 ++++ b/fortran/nf_logging.F90 +@@ -1,3 +1,10 @@ ++! This file is compiled only if logging is enabled. However, the macro LOGGING ++! is never defined. For most of the compilers this simply leads to an empty ++! object: they do not complain when a source file is empty. This is not the ++! case for NAG: the compiler fails the compilation of empty sources. To fix ++! this problem, we define the macro here. ++#define LOGGING ++ + #ifdef LOGGING + ! Function to turn on logging + !-------------------------------- nf_set_log_level ---------------------------- diff --git a/var/spack/repos/builtin/packages/netcdf-fortran/nag_libtool_2.4.2.patch b/var/spack/repos/builtin/packages/netcdf-fortran/nag_libtool_2.4.2.patch new file mode 100644 index 0000000000..73fbdbd03b --- /dev/null +++ b/var/spack/repos/builtin/packages/netcdf-fortran/nag_libtool_2.4.2.patch @@ -0,0 +1,124 @@ +--- a/configure ++++ b/configure +@@ -9584,6 +9584,10 @@ for cc_temp in $compiler""; do + esac + done + cc_basename=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"` ++case $cc_basename in ++ nagfor*) ;; ++ *) $cc_temp -V 2>&1 | $GREP '^NAG Fortran Compiler Release' >/dev/null 2>&1 && cc_basename='nagfor-wrapper' ;; ++esac + + + # Only perform the check for file, if the check method requires it +@@ -10657,6 +10661,10 @@ _LT_EOF + lf95*) # Lahey Fortran 8.1 + whole_archive_flag_spec= + tmp_sharedflag='--shared' ;; ++ nagfor*) ++ whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' ++ compiler_needs_object=yes ++ tmp_sharedflag='-Wl,-shared' ;; + xl[cC]* | bgxl[cC]* | mpixl[cC]*) # IBM XL C 8.0 on PPC (deal with xlf below) + tmp_sharedflag='-qmkshrobj' + tmp_addflag= ;; +@@ -13415,6 +13423,10 @@ $RM -r conftest* + esac + done + cc_basename=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"` ++case $cc_basename in ++ nagfor*) ;; ++ *) $cc_temp -V 2>&1 | $GREP '^NAG Fortran Compiler Release' >/dev/null 2>&1 && cc_basename='nagfor-wrapper' ;; ++esac + + GCC=$G77 + if test -n "$compiler"; then +@@ -14252,6 +14264,10 @@ _LT_EOF + lf95*) # Lahey Fortran 8.1 + whole_archive_flag_spec_F77= + tmp_sharedflag='--shared' ;; ++ nagfor*) ++ whole_archive_flag_spec_F77='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' ++ compiler_needs_object_F77=yes ++ tmp_sharedflag='-Wl,-shared' ;; + xl[cC]* | bgxl[cC]* | mpixl[cC]*) # IBM XL C 8.0 on PPC (deal with xlf below) + tmp_sharedflag='-qmkshrobj' + tmp_addflag= ;; +@@ -16142,6 +16158,10 @@ $RM -r conftest* + esac + done + cc_basename=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"` ++case $cc_basename in ++ nagfor*) ;; ++ *) $cc_temp -V 2>&1 | $GREP '^NAG Fortran Compiler Release' >/dev/null 2>&1 && cc_basename='nagfor-wrapper' ;; ++esac + + + if test -n "$compiler"; then +@@ -17142,6 +17162,10 @@ _LT_EOF + lf95*) # Lahey Fortran 8.1 + whole_archive_flag_spec_FC= + tmp_sharedflag='--shared' ;; ++ nagfor*) ++ whole_archive_flag_spec_FC='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' ++ compiler_needs_object_FC=yes ++ tmp_sharedflag='-Wl,-shared' ;; + xl[cC]* | bgxl[cC]* | mpixl[cC]*) # IBM XL C 8.0 on PPC (deal with xlf below) + tmp_sharedflag='-qmkshrobj' + tmp_addflag= ;; +--- a/ltmain.sh ++++ b/ltmain.sh +@@ -180,6 +180,24 @@ func_basename () + func_basename_result=`$ECHO "${1}" | $SED "$basename"` + } # func_basename may be replaced by extended shell implementation + ++# Calculate cc_basename. Skip known compiler wrappers and cross-prefix. ++func_cc_basename () ++{ ++ for cc_temp in $*""; do ++ case $cc_temp in ++ compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; ++ distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; ++ \-*) ;; ++ *) break;; ++ esac ++ done ++ func_cc_basename_result=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"` ++ case $func_cc_basename_result in ++ nagfor*) ;; ++ *) $cc_temp -V 2>&1 | $GREP '^NAG Fortran Compiler Release' >/dev/null 2>&1 && func_cc_basename_result='nagfor-wrapper' ;; ++ esac ++} ++ + + # func_dirname_and_basename file append nondir_replacement + # perform func_basename and func_dirname in a single function +@@ -6422,6 +6440,13 @@ func_mode_link () + # Convert "-framework foo" to "foo.ltframework" + if test -n "$inherited_linker_flags"; then + tmp_inherited_linker_flags=`$ECHO "$inherited_linker_flags" | $SED 's/-framework \([^ $]*\)/\1.ltframework/g'` ++ ++ # Additionally convert " -pthread" to " -Wl,-pthread" for nagfor ++ func_cc_basename $CC ++ case $func_cc_basename_result in ++ nagfor*) tmp_inherited_linker_flags=`$ECHO "$tmp_inherited_linker_flags" | $SED 's/ -pthread/ -Wl,-pthread/g'` ;; ++ esac ++ + for tmp_inherited_linker_flag in $tmp_inherited_linker_flags; do + case " $new_inherited_linker_flags " in + *" $tmp_inherited_linker_flag "*) ;; +@@ -8007,6 +8032,14 @@ EOF + ;; + esac + ++ # Time to revert the changes made for nagfor. ++ ++ func_cc_basename $CC ++ case $func_cc_basename_result in ++ nagfor*) ++ new_inherited_linker_flags=`$ECHO " $new_inherited_linker_flags" | $SED 's% -Wl,-pthread% -pthread%g'` ;; ++ esac ++ + # move library search paths that coincide with paths to not yet + # installed libraries to the beginning of the library search list + new_libs= diff --git a/var/spack/repos/builtin/packages/netcdf-fortran/nag_libtool_2.4.6.patch b/var/spack/repos/builtin/packages/netcdf-fortran/nag_libtool_2.4.6.patch new file mode 100644 index 0000000000..dfb47fd5f2 --- /dev/null +++ b/var/spack/repos/builtin/packages/netcdf-fortran/nag_libtool_2.4.6.patch @@ -0,0 +1,96 @@ +--- a/configure ++++ b/configure +@@ -9034,6 +9034,12 @@ func_cc_basename () + esac + done + func_cc_basename_result=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"` ++ ++ # Set result to 'nagfor-wrapper' when NAG compiler is called via a wrapper (e.g. mpif90). ++ case $func_cc_basename_result in ++ nagfor*) ;; ++ *) $cc_temp -V 2>&1 | $GREP '^NAG Fortran Compiler Release' >/dev/null 2>&1 && func_cc_basename_result='nagfor-wrapper' ;; ++ esac + } + + # Check whether --enable-libtool-lock was given. +@@ -11811,6 +11817,8 @@ _LT_EOF + whole_archive_flag_spec= + tmp_sharedflag='--shared' ;; + nagfor*) # NAGFOR 5.3 ++ whole_archive_flag_spec='$wl--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive' ++ compiler_needs_object=yes + tmp_sharedflag='-Wl,-shared' ;; + xl[cC]* | bgxl[cC]* | mpixl[cC]*) # IBM XL C 8.0 on PPC (deal with xlf below) + tmp_sharedflag='-qmkshrobj' +@@ -15663,6 +15671,8 @@ _LT_EOF + whole_archive_flag_spec_F77= + tmp_sharedflag='--shared' ;; + nagfor*) # NAGFOR 5.3 ++ whole_archive_flag_spec_F77='$wl--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive' ++ compiler_needs_object_F77=yes + tmp_sharedflag='-Wl,-shared' ;; + xl[cC]* | bgxl[cC]* | mpixl[cC]*) # IBM XL C 8.0 on PPC (deal with xlf below) + tmp_sharedflag='-qmkshrobj' +@@ -18788,6 +18798,8 @@ _LT_EOF + whole_archive_flag_spec_FC= + tmp_sharedflag='--shared' ;; + nagfor*) # NAGFOR 5.3 ++ whole_archive_flag_spec_FC='$wl--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive' ++ compiler_needs_object_FC=yes + tmp_sharedflag='-Wl,-shared' ;; + xl[cC]* | bgxl[cC]* | mpixl[cC]*) # IBM XL C 8.0 on PPC (deal with xlf below) + tmp_sharedflag='-qmkshrobj' +@@ -26086,6 +26098,12 @@ func_cc_basename () + esac + done + func_cc_basename_result=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"` ++ ++ # Set result to 'nagfor-wrapper' when NAG compiler is called via a wrapper (e.g. mpif90). ++ case $func_cc_basename_result in ++ nagfor*) ;; ++ *) $cc_temp -V 2>&1 | $GREP '^NAG Fortran Compiler Release' >/dev/null 2>&1 && func_cc_basename_result='nagfor-wrapper' ;; ++ esac + } + + +--- a/ltmain.sh ++++ b/ltmain.sh +@@ -7868,6 +7868,13 @@ func_mode_link () + # Convert "-framework foo" to "foo.ltframework" + if test -n "$inherited_linker_flags"; then + tmp_inherited_linker_flags=`$ECHO "$inherited_linker_flags" | $SED 's/-framework \([^ $]*\)/\1.ltframework/g'` ++ ++ # Additionally convert " -pthread" to " -Wl,-pthread" for nagfor ++ func_cc_basename $CC ++ case $func_cc_basename_result in ++ nagfor*) tmp_inherited_linker_flags=`$ECHO "$tmp_inherited_linker_flags" | $SED 's/ -pthread/ -Wl,-pthread/g'` ;; ++ esac ++ + for tmp_inherited_linker_flag in $tmp_inherited_linker_flags; do + case " $new_inherited_linker_flags " in + *" $tmp_inherited_linker_flag "*) ;; +@@ -8890,7 +8897,8 @@ func_mode_link () + xlcverstring="$wl-compatibility_version $wl$minor_current $wl-current_version $wl$minor_current.$revision" + verstring="-compatibility_version $minor_current -current_version $minor_current.$revision" + # On Darwin other compilers +- case $CC in ++ func_cc_basename $CC ++ case $func_cc_basename_result in + nagfor*) + verstring="$wl-compatibility_version $wl$minor_current $wl-current_version $wl$minor_current.$revision" + ;; +@@ -9502,6 +9510,14 @@ EOF + ;; + esac + ++ # Time to revert the changes made for nagfor. ++ ++ func_cc_basename $CC ++ case $func_cc_basename_result in ++ nagfor*) ++ new_inherited_linker_flags=`$ECHO " $new_inherited_linker_flags" | $SED 's% -Wl,-pthread% -pthread%g'` ;; ++ esac ++ + # move library search paths that coincide with paths to not yet + # installed libraries to the beginning of the library search list + new_libs= diff --git a/var/spack/repos/builtin/packages/netcdf-fortran/nag_testing.patch b/var/spack/repos/builtin/packages/netcdf-fortran/nag_testing.patch new file mode 100644 index 0000000000..4c730f94c8 --- /dev/null +++ b/var/spack/repos/builtin/packages/netcdf-fortran/nag_testing.patch @@ -0,0 +1,11 @@ +--- a/nf_test/ftst_rengrps.F ++++ b/nf_test/ftst_rengrps.F +@@ -11,7 +11,7 @@ C use typeSizes + C use netcdf + C use netcdf4_f03 + implicit none +- include "netcdf.inc" ++ include "netcdf.inc" + + C This is the name of the data file we will create. + character (len = *), parameter :: FILE_NAME = "ftst_rengrps.nc" diff --git a/var/spack/repos/builtin/packages/netcdf-fortran/package.py b/var/spack/repos/builtin/packages/netcdf-fortran/package.py index e3703fd609..5aed9697cd 100644 --- a/var/spack/repos/builtin/packages/netcdf-fortran/package.py +++ b/var/spack/repos/builtin/packages/netcdf-fortran/package.py @@ -13,7 +13,9 @@ class NetcdfFortran(AutotoolsPackage): distribution.""" homepage = "https://www.unidata.ucar.edu/software/netcdf" - url = "https://www.unidata.ucar.edu/downloads/netcdf/ftp/netcdf-fortran-4.5.2.tar.gz" + url = "https://www.gfd-dennou.org/arch/netcdf/unidata-mirror/netcdf-fortran-4.5.2.tar.gz" + + maintainers = ['skosukhin'] version('4.5.2', sha256='b959937d7d9045184e9d2040a915d94a7f4d0185f4a9dceb8f08c94b0c3304aa') version('4.4.5', sha256='2467536ce29daea348c736476aa8e684c075d2f6cab12f3361885cb6905717b8') @@ -24,6 +26,7 @@ class NetcdfFortran(AutotoolsPackage): description='Enable parallel I/O for netcdf-4') variant('pic', default=True, description='Produce position-independent code (for shared libs)') + variant('shared', default=True, description='Enable shared library') # We need to build with MPI wrappers if parallel I/O features is enabled: # https://www.unidata.ucar.edu/software/netcdf/docs/building_netcdf_fortran.html @@ -34,42 +37,79 @@ class NetcdfFortran(AutotoolsPackage): # The default libtool.m4 is too old to handle NAG compiler properly: # https://github.com/Unidata/netcdf-fortran/issues/94 - patch('nag.patch', when='@:4.4.4%nag') + # Moreover, Libtool can't handle '-pthread' flag coming from libcurl, + # doesn't inject convenience libraries into the shared ones, and is unable + # to detect NAG when it is called with an MPI wrapper. + patch('nag_libtool_2.4.2.patch', when='@:4.4.4%nag') + patch('nag_libtool_2.4.6.patch', when='@4.4.5:%nag') + + # Enable 'make check' for NAG, which is too strict. + patch('nag_testing.patch', when='@4.4.5%nag') + + # File fortran/nf_logging.F90 is compiled without -DLOGGING, which leads + # to missing symbols in the library. Additionally, the patch enables + # building with NAG, which refuses to compile empty source files (see also + # comments in the patch): + patch('logging.patch', when='@:4.4.5') + + # Prevent excessive linking to system libraries. Without this patch the + # library might get linked to the system installation of libcurl. See + # https://github.com/Unidata/netcdf-fortran/commit/0a11f580faebbc1c4dce68bf5135709d1c7c7cc1#diff-67e997bcfdac55191033d57a16d1408a + patch('excessive_linking.patch', when='@4.4.5') # Parallel builds do not work in the fortran directory. This patch is # derived from https://github.com/Unidata/netcdf-fortran/pull/211 patch('no_parallel_build.patch', when='@4.5.2') def flag_handler(self, name, flags): + config_flags = None + if name in ['cflags', 'fflags'] and '+pic' in self.spec: - flags.append(self.compiler.pic_flag) + # Unlike NetCDF-C, we add PIC flag only when +pic. Adding the + # flags also when ~shared would make it impossible to build a + # static-only version of the library with NAG. + config_flags = [self.compiler.pic_flag] elif name == 'cppflags': - flags.append(self.spec['netcdf-c'].headers.cpp_flags) + config_flags = [self.spec['netcdf-c'].headers.cpp_flags] elif name == 'ldflags': # We need to specify LDFLAGS to get correct dependency_libs # in libnetcdff.la, so packages that use libtool for linking # could correctly link to all the dependencies even when the # building takes place outside of Spack environment, i.e. # without Spack's compiler wrappers. - flags.append(self.spec['netcdf-c'].libs.search_flags) + config_flags = [self.spec['netcdf-c'].libs.search_flags] - return None, None, flags + return flags, None, config_flags @property def libs(self): libraries = ['libnetcdff'] - # This package installs both shared and static libraries. Permit - # clients to query which one they want. query_parameters = self.spec.last_query.extra_parameters - shared = 'shared' in query_parameters - return find_libraries( + if 'shared' in query_parameters: + shared = True + elif 'static' in query_parameters: + shared = False + else: + shared = '+shared' in self.spec + + libs = find_libraries( libraries, root=self.prefix, shared=shared, recursive=True ) + if libs: + return libs + + msg = 'Unable to recursively locate {0} {1} libraries in {2}' + raise spack.error.NoLibrariesError( + msg.format('shared' if shared else 'static', + self.spec.name, + self.spec.prefix)) + def configure_args(self): - config_args = [] + config_args = self.enable_or_disable('shared') + config_args.append('--enable-static') if '+mpi' in self.spec: config_args.append('CC=%s' % self.spec['mpi'].mpicc) @@ -77,3 +117,8 @@ class NetcdfFortran(AutotoolsPackage): config_args.append('F77=%s' % self.spec['mpi'].mpif77) return config_args + + @when('@:4.4.5') + def check(self): + with working_dir(self.build_directory): + make('check', parallel=False) diff --git a/var/spack/repos/builtin/packages/nfs-utils/package.py b/var/spack/repos/builtin/packages/nfs-utils/package.py new file mode 100644 index 0000000000..be46c57030 --- /dev/null +++ b/var/spack/repos/builtin/packages/nfs-utils/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 NfsUtils(AutotoolsPackage): + """The NFS Utilities package contains the userspace server and client tools + necessary to use the kernel's NFS abilities. NFS is a protocol that allows + sharing file systems over the network.""" + + homepage = "http://linux-nfs.org/" + url = "https://sourceforge.net/projects/nfs/files/nfs-utils/2.4.2/nfs-utils-2.4.2.tar.gz/download" + + version('2.4.2', sha256='bb08106cd7bd397c6cc34e2461bc7818a664450d2805da08b07e1ced88e5155f') + version('2.4.1', sha256='c0dda96318af554881f4eb1590bfe91f1aba2fba59ed2ac3ba099f80fdf838e9') + version('2.3.4', sha256='36e70b0a583751ead0034ebe5d8826caf2dcc7ee7c0beefe94d6ee5a3b0b2484') + + depends_on('libtirpc') + depends_on('libevent') + depends_on('libdmx') + depends_on('lvm2') + depends_on('keyutils') + depends_on('sqlite') + depends_on('util-linux') + + def setup_build_environment(self, env): + env.append_flags('LDFLAGS', '-lintl') + + def configure_args(self): + args = ['--disable-gss', '--with-rpcgen=internal'] + return args diff --git a/var/spack/repos/builtin/packages/nlopt/package.py b/var/spack/repos/builtin/packages/nlopt/package.py index c533bf60e8..509218ea83 100644 --- a/var/spack/repos/builtin/packages/nlopt/package.py +++ b/var/spack/repos/builtin/packages/nlopt/package.py @@ -17,6 +17,7 @@ class Nlopt(CMakePackage): git = "https://github.com/stevengj/nlopt.git" version('master', branch='master') + version('2.6.1', sha256='66d63a505187fb6f98642703bd0ef006fedcae2f9a6d1efa4f362ea919a02650') version('2.5.0', sha256='c6dd7a5701fff8ad5ebb45a3dc8e757e61d52658de3918e38bab233e7fd3b4ae') variant('shared', default=True, description='Enables the build of shared libraries') diff --git a/var/spack/repos/builtin/packages/ntirpc/package.py b/var/spack/repos/builtin/packages/ntirpc/package.py new file mode 100644 index 0000000000..fa29056e16 --- /dev/null +++ b/var/spack/repos/builtin/packages/ntirpc/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 Ntirpc(CMakePackage): + """New development on tirpc""" + + homepage = "https://github.com/nfs-ganesha/ntirpc" + url = "https://github.com/nfs-ganesha/ntirpc/archive/v3.2.tar.gz" + + version('3.2', sha256='db1639ca2f15df7e30d8c0a820ed9adf4eb623798db03b56a3659eedff49af76') + version('3.1', sha256='280b57db3a37c5b05116a7850460152b1ac53c050fd61ce190f5a5eb55ed3ba1') + version('3.0', sha256='9a6b11c1aa3e7f5f1f491bca0275e759de5bed2d73c8a028af7b6aadb68ac795') + version('1.8.0', sha256='3bb642dccc8f2506b57a03b5d3358654f59f47b33fddfaa5a7330df4cf336f9f') + version('1.7.3', sha256='8713ef095efc44df426bbd2b260ad457e5335bf3008fb97f01b0775c8042e54b') + + depends_on('libnsl') + depends_on('userspace-rcu') diff --git a/var/spack/repos/builtin/packages/ocaml/package.py b/var/spack/repos/builtin/packages/ocaml/package.py index 34ff99eb93..f155c55c13 100644 --- a/var/spack/repos/builtin/packages/ocaml/package.py +++ b/var/spack/repos/builtin/packages/ocaml/package.py @@ -13,11 +13,22 @@ class Ocaml(Package): homepage = "http://ocaml.org/" url = "https://caml.inria.fr/pub/distrib/ocaml-4.06/ocaml-4.06.0.tar.gz" + maintainers = ['scemama'] + + version('4.10.0', sha256='58d431dde66f5750ebe9b15d5a1c4872f80d283dec23448689b0d1a498b7e4c7') + version('4.09.0', sha256='2b728f8a0e90da14f22fdc04660f2ab33819cdbb12bff0ceae3fdbb0133cf7a6') + version('4.08.1', sha256='ee50118ee88472fd4b64311fa560f8f8ab66a1899f0117815c69a16070980f78') + version('4.08.0', sha256='e6e244f893f2070ebcdeac0637fbe2054fd82deebefefa3e3ed85a405cd4ecd8') + version('4.07.1', sha256='2ad43be17ed5c74ea27887ae0cc4793b835408180c0b9175bc9ad53082a59af4') + version('4.07.0', sha256='50e10b0c4e28300cb889e56839ec9e07e2847a85e04bfbd5a7ed0290b7239ef8') + version('4.06.1', sha256='0c38c6f531103e87fab1c218a7e76287d7cb4d7ee4dea64e7f85952af3b1b50e') version('4.06.0', sha256='c17578e243c4b889fe53a104d8927eb8749c7be2e6b622db8b3c7b386723bf50') version('4.03.0', sha256='7fdf280cc6c0a2de4fc9891d0bf4633ea417046ece619f011fd44540fcfc8da2') depends_on('ncurses') + sanity_check_file = ['bin/ocaml'] + def url_for_version(self, version): url = "http://caml.inria.fr/pub/distrib/ocaml-{0}/ocaml-{1}.tar.gz" return url.format(str(version)[:-2], version) diff --git a/var/spack/repos/builtin/packages/opam/package.py b/var/spack/repos/builtin/packages/opam/package.py index 179fad0bd9..d25999f89e 100644 --- a/var/spack/repos/builtin/packages/opam/package.py +++ b/var/spack/repos/builtin/packages/opam/package.py @@ -16,14 +16,35 @@ class Opam(AutotoolsPackage): homepage = "https://opam.ocaml.org/" url = "https://github.com/ocaml/opam/releases/download/1.2.2/opam-full-1.2.2.tar.gz" + maintainers = ['scemama'] + + version('2.0.6', sha256='7c4bff5e5f3628ad00c53ee1b044ced8128ffdcfbb7582f8773fb433e12e07f4') + version('2.0.5', sha256='776c7e64d6e24c2ef1efd1e6a71d36e007645efae94eaf860c05c1929effc76f') + version('2.0.4', sha256='debfb828b400fb511ca290f1bfc928db91cad74ec1ccbddcfdbfeff26f7099e5') + version('2.0.3', sha256='0589da4da184584a5445d59385009536534f60bc0e27772245b2f49e5fa8f0e2') + version('2.0.2', sha256='eeb99fdda4b10ad3467a700fa4d1dfedb30714837d18d2faf1ef9c87d94cf0bc') + version('2.0.1', sha256='81f7f1b661a0c1e04642fe02d0bea5524b32aa2cbed0ecf9b18d7145324ed97c') + version('2.0.0', sha256='9dad4fcb4f53878c9daa6285d8456ccc671e21bfa71544d1f926fb8a63bfed25') version('1.2.2', sha256='15e617179251041f4bf3910257bbb8398db987d863dd3cfc288bdd958de58f00') version('1.2.1', sha256='f210ece7a2def34b486c9ccfb75de8febd64487b2ea4a14a7fa0358f37eacc3b') - depends_on('ocaml') # Not a strict dependency, but recommended + # OCaml 4.10.0 has removed the -safe-string flag, which is necessary + # for OPAM 1i (see docstring of setup_build_environment). + depends_on('ocaml@:4.09.0', type='build', when='@:1.2.2') + depends_on('ocaml', type='build', when='@2.0.0:') parallel = False + sanity_check_is_file = ['bin/opam'] + + @when('@:1.2.2') def setup_build_environment(self, env): + ''' In OCaml <4.06.1, the default was -safe-string=0, and this has + changed in OCaml >=4.06.1. OPAM version 1 was written before 4.06.1 + was released, so OPAM <2.0 assumes mutable strings and requires the + safe-string=0 flag. This is not true with OPAM >=2.0, so the flag + should not be set.''' + # Environment variable setting taken from # https://github.com/Homebrew/homebrew-core/blob/master/Formula/opam.rb env.set('OCAMLPARAM', 'safe-string=0,_') # OCaml 4.06.0 compat @@ -31,4 +52,5 @@ class Opam(AutotoolsPackage): def build(self, spec, prefix): make('lib-ext') make() - make('man') + if spec.satisfies('@:1.2.2'): + make('man') diff --git a/var/spack/repos/builtin/packages/openblas/lapack-0.3.9-xerbl.patch b/var/spack/repos/builtin/packages/openblas/lapack-0.3.9-xerbl.patch new file mode 100644 index 0000000000..a61f3b3c00 --- /dev/null +++ b/var/spack/repos/builtin/packages/openblas/lapack-0.3.9-xerbl.patch @@ -0,0 +1,14 @@ +diff --git a/lapack-netlib/SRC/sorhr_col.f b/lapack-netlib/SRC/sorhr_col.f +index 38976245..600c19fb 100644 +--- a/lapack-netlib/SRC/sorhr_col.f ++++ b/lapack-netlib/SRC/sorhr_col.f +@@ -282,7 +282,8 @@ + $ NPLUSONE + * .. + * .. External Subroutines .. +- EXTERNAL SCOPY, SLAORHR_COL_GETRFNP, SSCAL, STRSM, XERBLA ++ EXTERNAL SCOPY, SLAORHR_COL_GETRFNP, SSCAL, STRSM, ++ $ XERBLA + * .. + * .. Intrinsic Functions .. + INTRINSIC MAX, MIN diff --git a/var/spack/repos/builtin/packages/openblas/package.py b/var/spack/repos/builtin/packages/openblas/package.py index 0ad58605c4..71d2ec4a6b 100644 --- a/var/spack/repos/builtin/packages/openblas/package.py +++ b/var/spack/repos/builtin/packages/openblas/package.py @@ -18,6 +18,7 @@ class Openblas(MakefilePackage): git = 'https://github.com/xianyi/OpenBLAS.git' version('develop', branch='develop') + version('0.3.9', sha256='17d4677264dfbc4433e97076220adc79b050e4f8a083ea3f853a53af253bc380') version('0.3.8', sha256='8f86ade36f0dbed9ac90eb62575137388359d97d8f93093b38abe166ad7ef3a8') version('0.3.7', sha256='bde136122cef3dd6efe2de1c6f65c10955bbb0cc01a520c2342f5287c28f9379') version('0.3.6', sha256='e64c8fe083832ffbc1459ab6c72f71d53afd3b36e8497c922a15a06b72e9002f') @@ -37,7 +38,7 @@ class Openblas(MakefilePackage): variant('ilp64', default=False, description='Force 64-bit Fortran native integers') variant('pic', default=True, description='Build position independent code') variant('shared', default=True, description='Build shared libraries') - variant('consistentFPCSR', default=False, description='Synchronize FP CSR between threads (x86/x86_64 only)') + variant('consistent_fpcsr', default=False, description='Synchronize FP CSR between threads (x86/x86_64 only)') variant( 'threads', default='none', @@ -59,6 +60,8 @@ class Openblas(MakefilePackage): patch('openblas_icc_openmp.patch', when='@:0.2.20%intel@16.0:') patch('openblas_icc_fortran.patch', when='%intel@16.0:') patch('openblas_icc_fortran2.patch', when='%intel@18.0:') + # See https://github.com/spack/spack/issues/15385 + patch('lapack-0.3.9-xerbl.patch', when='@0.3.8: %intel') # Fixes compilation error on POWER8 with GCC 7 # https://github.com/xianyi/OpenBLAS/pull/1098 @@ -93,7 +96,10 @@ class Openblas(MakefilePackage): # Add conditions to f_check to determine the Fujitsu compiler patch('openblas_fujitsu.patch', when='%fj') + # See https://github.com/spack/spack/issues/3036 conflicts('%intel@16', when='@0.2.15:0.2.19') + conflicts('+consistent_fpcsr', when='threads=none', + msg='FPCSR consistency only applies to multithreading') @property def parallel(self): @@ -136,12 +142,23 @@ class Openblas(MakefilePackage): return micros - @staticmethod - def _microarch_target_args(microarch, available_targets): + def _microarch_target_args(self): """Given a spack microarchitecture and a list of targets found in OpenBLAS' TargetList.txt, determine the best command-line arguments. """ - args = [] # Return value + # Read available openblas targets + targetlist_name = join_path(self.stage.source_path, "TargetList.txt") + if os.path.exists(targetlist_name): + with open(targetlist_name) as f: + available_targets = self._read_targets(f) + else: + available_targets = [] + + # Get our build microarchitecture + microarch = self.spec.target + + # List of arguments returned by this function + args = [] # List of available architectures, and possible aliases openblas_arch = set(['alpha', 'arm', 'ia64', 'mips', 'mips64', @@ -165,11 +182,14 @@ class Openblas(MakefilePackage): if microarch.name in available_targets: break - arch_name = microarch.family.name - if arch_name in openblas_arch: - # Apply possible spack->openblas arch name mapping - arch_name = openblas_arch_map.get(arch_name, arch_name) - args.append('ARCH=' + arch_name) + if self.version >= Version("0.3"): + # 'ARCH' argument causes build errors in older OpenBLAS + # see https://github.com/spack/spack/issues/15385 + arch_name = microarch.family.name + if arch_name in openblas_arch: + # Apply possible spack->openblas arch name mapping + arch_name = openblas_arch_map.get(arch_name, arch_name) + args.append('ARCH=' + arch_name) if microarch.vendor == 'generic': # User requested a generic platform, or we couldn't find a good @@ -189,8 +209,6 @@ class Openblas(MakefilePackage): @property def make_defs(self): - spec = self.spec - # Configure fails to pick up fortran from FC=/abs/path/to/fc, but # works fine with FC=/abs/path/to/gfortran. # When mixing compilers make sure that @@ -208,13 +226,7 @@ class Openblas(MakefilePackage): make_defs.append('MAKE_NB_JOBS=0') # flag provided by OpenBLAS # Add target and architecture flags - targetlist_name = join_path(self.stage.source_path, "TargetList.txt") - if os.path.exists(targetlist_name): - with open(targetlist_name) as f: - avail_targets = self._read_targets(f) - else: - avail_targets = [] - make_defs += self._microarch_target_args(spec.target, avail_targets) + make_defs += self._microarch_target_args() if '~shared' in self.spec: if '+pic' in self.spec: @@ -241,7 +253,7 @@ class Openblas(MakefilePackage): # Synchronize floating-point control and status register (FPCSR) # between threads (x86/x86_64 only). - if '+consistentFPCSR' in self.spec: + if '+consistent_fpcsr' in self.spec: make_defs += ['CONSISTENT_FPCSR=1'] # Prevent errors in `as` assembler from newer instructions diff --git a/var/spack/repos/builtin/packages/opencv/package.py b/var/spack/repos/builtin/packages/opencv/package.py index 95abf6368a..7adacd1eef 100644 --- a/var/spack/repos/builtin/packages/opencv/package.py +++ b/var/spack/repos/builtin/packages/opencv/package.py @@ -105,8 +105,7 @@ class Opencv(CMakePackage, CudaPackage): # the current development branch of OpenCV. See #8461 for more information. patch('dnn_cuda.patch', when='@3.3.0:3.4.1+cuda+dnn') - depends_on('eigen~mpfr', when='+eigen', type='build') - + depends_on('eigen', when='+eigen') depends_on('zlib', when='+zlib') depends_on('libpng', when='+png') depends_on('jpeg', when='+jpeg') diff --git a/var/spack/repos/builtin/packages/openfoam/package.py b/var/spack/repos/builtin/packages/openfoam/package.py index f741db61d9..72fd615805 100644 --- a/var/spack/repos/builtin/packages/openfoam/package.py +++ b/var/spack/repos/builtin/packages/openfoam/package.py @@ -825,10 +825,12 @@ class OpenfoamArch(object): self.arch_option = '-march=knl' # spec.architecture.platform is like `uname -s`, but lower-case - platform = spec.architecture.platform + platform = str(spec.architecture.platform) # spec.target.family is like `uname -m` - target = spec.target.family + target = str(spec.target.family) + + # No spack platform family for ia64 or armv7l if platform == 'linux': if target == 'x86_64': diff --git a/var/spack/repos/builtin/packages/openmpi/nag_ltmain_1.patch b/var/spack/repos/builtin/packages/openmpi/nag_ltmain_1.patch new file mode 100644 index 0000000000..3d20169718 --- /dev/null +++ b/var/spack/repos/builtin/packages/openmpi/nag_ltmain_1.patch @@ -0,0 +1,49 @@ +--- a/config/ltmain.sh ++++ b/config/ltmain.sh +@@ -7860,14 +7860,15 @@ func_mode_link () + func_source "$lib" + + # Convert "-framework foo" to "foo.ltframework" +- # and "-pthread" to "-Wl,-pthread" if NAG compiler + if test -n "$inherited_linker_flags"; then +- case "$CC" in +- *nagfor*) +- tmp_inherited_linker_flags=`$ECHO "$inherited_linker_flags" | $SED 's/-framework \([^ $]*\)/\1.ltframework/g' | $SED 's/-pthread/-Wl,-pthread/g'`;; +- *) +- tmp_inherited_linker_flags=`$ECHO "$inherited_linker_flags" | $SED 's/-framework \([^ $]*\)/\1.ltframework/g'`;; +- esac ++ tmp_inherited_linker_flags=`$ECHO "$inherited_linker_flags" | $SED 's/-framework \([^ $]*\)/\1.ltframework/g'` ++ ++ # Additionally convert " -pthread" to " -Wl,-pthread" for nagfor ++ func_cc_basename $CC ++ case $func_cc_basename_result in ++ nagfor*) tmp_inherited_linker_flags=`$ECHO "$tmp_inherited_linker_flags" | $SED 's/ -pthread/ -Wl,-pthread/g'` ;; ++ esac ++ + for tmp_inherited_linker_flag in $tmp_inherited_linker_flags; do + case " $new_inherited_linker_flags " in + *" $tmp_inherited_linker_flag "*) ;; +@@ -8887,7 +8888,8 @@ func_mode_link () + xlcverstring="$wl-compatibility_version $wl$minor_current $wl-current_version $wl$minor_current.$revision" + verstring="-compatibility_version $minor_current -current_version $minor_current.$revision" + # On Darwin other compilers +- case $CC in ++ func_cc_basename $CC ++ case $func_cc_basename_result in + nagfor*) + verstring="$wl-compatibility_version $wl$minor_current $wl-current_version $wl$minor_current.$revision" + ;; +@@ -9499,6 +9501,13 @@ EOF + ;; + esac + ++ # Time to revert the changes made for nagfor. ++ func_cc_basename $CC ++ case $func_cc_basename_result in ++ nagfor*) ++ new_inherited_linker_flags=`$ECHO " $new_inherited_linker_flags" | $SED 's% -Wl,-pthread% -pthread%g'` ;; ++ esac ++ + # move library search paths that coincide with paths to not yet + # installed libraries to the beginning of the library search list + new_libs= diff --git a/var/spack/repos/builtin/packages/openmpi/nag_ltmain_2.patch b/var/spack/repos/builtin/packages/openmpi/nag_ltmain_2.patch new file mode 100644 index 0000000000..af1b600039 --- /dev/null +++ b/var/spack/repos/builtin/packages/openmpi/nag_ltmain_2.patch @@ -0,0 +1,49 @@ +--- a/config/ltmain.sh ++++ b/config/ltmain.sh +@@ -7860,14 +7860,15 @@ func_mode_link () + func_source "$lib" + + # Convert "-framework foo" to "foo.ltframework" +- # and "-pthread" to "-Wl,-pthread" if NAG compiler + if test -n "$inherited_linker_flags"; then +- case "$CC" in +- nagfor*) +- tmp_inherited_linker_flags=`$ECHO "$inherited_linker_flags" | $SED 's/-framework \([^ $]*\)/\1.ltframework/g' | $SED 's/-pthread/-Wl,-pthread/g'`;; +- *) +- tmp_inherited_linker_flags=`$ECHO "$inherited_linker_flags" | $SED 's/-framework \([^ $]*\)/\1.ltframework/g'`;; +- esac ++ tmp_inherited_linker_flags=`$ECHO "$inherited_linker_flags" | $SED 's/-framework \([^ $]*\)/\1.ltframework/g'` ++ ++ # Additionally convert " -pthread" to " -Wl,-pthread" for nagfor ++ func_cc_basename $CC ++ case $func_cc_basename_result in ++ nagfor*) tmp_inherited_linker_flags=`$ECHO "$tmp_inherited_linker_flags" | $SED 's/ -pthread/ -Wl,-pthread/g'` ;; ++ esac ++ + for tmp_inherited_linker_flag in $tmp_inherited_linker_flags; do + case " $new_inherited_linker_flags " in + *" $tmp_inherited_linker_flag "*) ;; +@@ -8887,7 +8888,8 @@ func_mode_link () + xlcverstring="$wl-compatibility_version $wl$minor_current $wl-current_version $wl$minor_current.$revision" + verstring="-compatibility_version $minor_current -current_version $minor_current.$revision" + # On Darwin other compilers +- case $CC in ++ func_cc_basename $CC ++ case $func_cc_basename_result in + nagfor*) + verstring="$wl-compatibility_version $wl$minor_current $wl-current_version $wl$minor_current.$revision" + ;; +@@ -9499,6 +9501,13 @@ EOF + ;; + esac + ++ # Time to revert the changes made for nagfor. ++ func_cc_basename $CC ++ case $func_cc_basename_result in ++ nagfor*) ++ new_inherited_linker_flags=`$ECHO " $new_inherited_linker_flags" | $SED 's% -Wl,-pthread% -pthread%g'` ;; ++ esac ++ + # move library search paths that coincide with paths to not yet + # installed libraries to the beginning of the library search list + new_libs= diff --git a/var/spack/repos/builtin/packages/openmpi/nag_ltmain_3.patch b/var/spack/repos/builtin/packages/openmpi/nag_ltmain_3.patch new file mode 100644 index 0000000000..0d4250001a --- /dev/null +++ b/var/spack/repos/builtin/packages/openmpi/nag_ltmain_3.patch @@ -0,0 +1,40 @@ +--- a/config/ltmain.sh ++++ b/config/ltmain.sh +@@ -7862,6 +7862,13 @@ func_mode_link () + # Convert "-framework foo" to "foo.ltframework" + if test -n "$inherited_linker_flags"; then + tmp_inherited_linker_flags=`$ECHO "$inherited_linker_flags" | $SED 's/-framework \([^ $]*\)/\1.ltframework/g'` ++ ++ # Additionally convert " -pthread" to " -Wl,-pthread" for nagfor ++ func_cc_basename $CC ++ case $func_cc_basename_result in ++ nagfor*) tmp_inherited_linker_flags=`$ECHO "$tmp_inherited_linker_flags" | $SED 's/ -pthread/ -Wl,-pthread/g'` ;; ++ esac ++ + for tmp_inherited_linker_flag in $tmp_inherited_linker_flags; do + case " $new_inherited_linker_flags " in + *" $tmp_inherited_linker_flag "*) ;; +@@ -8881,7 +8888,8 @@ func_mode_link () + xlcverstring="$wl-compatibility_version $wl$minor_current $wl-current_version $wl$minor_current.$revision" + verstring="-compatibility_version $minor_current -current_version $minor_current.$revision" + # On Darwin other compilers +- case $CC in ++ func_cc_basename $CC ++ case $func_cc_basename_result in + nagfor*) + verstring="$wl-compatibility_version $wl$minor_current $wl-current_version $wl$minor_current.$revision" + ;; +@@ -9493,6 +9501,13 @@ EOF + ;; + esac + ++ # Time to revert the changes made for nagfor. ++ func_cc_basename $CC ++ case $func_cc_basename_result in ++ nagfor*) ++ new_inherited_linker_flags=`$ECHO " $new_inherited_linker_flags" | $SED 's% -Wl,-pthread% -pthread%g'` ;; ++ esac ++ + # move library search paths that coincide with paths to not yet + # installed libraries to the beginning of the library search list + new_libs= diff --git a/var/spack/repos/builtin/packages/openmpi/nag_ltmain_4.patch b/var/spack/repos/builtin/packages/openmpi/nag_ltmain_4.patch new file mode 100644 index 0000000000..82bdb9f752 --- /dev/null +++ b/var/spack/repos/builtin/packages/openmpi/nag_ltmain_4.patch @@ -0,0 +1,49 @@ +--- a/config/ltmain.sh ++++ b/config/ltmain.sh +@@ -7860,14 +7860,15 @@ func_mode_link () + func_source "$lib" + + # Convert "-framework foo" to "foo.ltframework" +- # and "-pthread" to "-Wl,-pthread" if NAG compiler + if test -n "$inherited_linker_flags"; then +- case "$CC" in +- nagfor*) +- tmp_inherited_linker_flags=`$ECHO "$inherited_linker_flags" | $SED 's/-framework \([^ $]*\)/\1.ltframework/g' | $SED 's/-pthread/-Wl,-pthread'`;; +- *) +- tmp_inherited_linker_flags=`$ECHO "$inherited_linker_flags" | $SED 's/-framework \([^ $]*\)/\1.ltframework/g'`;; +- esac ++ tmp_inherited_linker_flags=`$ECHO "$inherited_linker_flags" | $SED 's/-framework \([^ $]*\)/\1.ltframework/g'` ++ ++ # Additionally convert " -pthread" to " -Wl,-pthread" for nagfor ++ func_cc_basename $CC ++ case $func_cc_basename_result in ++ nagfor*) tmp_inherited_linker_flags=`$ECHO "$tmp_inherited_linker_flags" | $SED 's/ -pthread/ -Wl,-pthread/g'` ;; ++ esac ++ + for tmp_inherited_linker_flag in $tmp_inherited_linker_flags; do + case " $new_inherited_linker_flags " in + *" $tmp_inherited_linker_flag "*) ;; +@@ -8887,7 +8888,8 @@ func_mode_link () + xlcverstring="$wl-compatibility_version $wl$minor_current $wl-current_version $wl$minor_current.$revision" + verstring="-compatibility_version $minor_current -current_version $minor_current.$revision" + # On Darwin other compilers +- case $CC in ++ func_cc_basename $CC ++ case $func_cc_basename_result in + nagfor*) + verstring="$wl-compatibility_version $wl$minor_current $wl-current_version $wl$minor_current.$revision" + ;; +@@ -9499,6 +9501,13 @@ EOF + ;; + esac + ++ # Time to revert the changes made for nagfor. ++ func_cc_basename $CC ++ case $func_cc_basename_result in ++ nagfor*) ++ new_inherited_linker_flags=`$ECHO " $new_inherited_linker_flags" | $SED 's% -Wl,-pthread% -pthread%g'` ;; ++ esac ++ + # move library search paths that coincide with paths to not yet + # installed libraries to the beginning of the library search list + new_libs= diff --git a/var/spack/repos/builtin/packages/openmpi/nolegacylaunchers.sh b/var/spack/repos/builtin/packages/openmpi/nolegacylaunchers.sh index b6defd69f0..61ee50c53d 100755 --- a/var/spack/repos/builtin/packages/openmpi/nolegacylaunchers.sh +++ b/var/spack/repos/builtin/packages/openmpi/nolegacylaunchers.sh @@ -3,7 +3,7 @@ echo "This version of Spack (openmpi ~legacylaunchers schedulers=slurm) " echo "is installed without the mpiexec/mpirun commands to prevent " echo "unintended performance issues. See https://github.com/spack/spack/pull/10340 " echo "for more details." -echo "If you understand the potential consequences of a misconfigured `mpirun`, you can" -echo "use spack to install `openmpi+legacylaunchers` to restore the executables." -echo "Otherwise, use `srun` to launch your MPI executables." +echo "If you understand the potential consequences of a misconfigured mpirun, you can" +echo "use spack to install 'openmpi+legacylaunchers' to restore the executables." +echo "Otherwise, use srun to launch your MPI executables." exit 2 diff --git a/var/spack/repos/builtin/packages/openmpi/package.py b/var/spack/repos/builtin/packages/openmpi/package.py index aac0c4c60b..a2b75bd67e 100644 --- a/var/spack/repos/builtin/packages/openmpi/package.py +++ b/var/spack/repos/builtin/packages/openmpi/package.py @@ -80,9 +80,10 @@ class Openmpi(AutotoolsPackage): version('develop', branch='master') # Current - version('4.0.2', sha256='900bf751be72eccf06de9d186f7b1c4b5c2fa9fa66458e53b77778dffdfe4057') # libmpi.so.40.20.2 + version('4.0.3', sha256='1402feced8c3847b3ab8252165b90f7d1fa28c23b6b2ca4632b6e4971267fd03') # libmpi.so.40.20.3 # Still supported + version('4.0.2', sha256='900bf751be72eccf06de9d186f7b1c4b5c2fa9fa66458e53b77778dffdfe4057') # libmpi.so.40.20.2 version('4.0.1', sha256='cce7b6d20522849301727f81282201d609553103ac0b09162cf28d102efb9709') # libmpi.so.40.20.1 version('4.0.0', sha256='2f0b8a36cfeb7354b45dda3c5425ef8393c9b04115570b615213faaa3f97366b') # libmpi.so.40.20.0 version('3.1.5', preferred=True, sha256='fbf0075b4579685eec8d56d34d4d9c963e6667825548554f5bf308610af72133') # libmpi.so.40.10.4 @@ -193,7 +194,7 @@ class Openmpi(AutotoolsPackage): patch('llnl-platforms.patch', when="@1.6.5") patch('configure.patch', when="@1.10.1") patch('fix_multidef_pmi_class.patch', when="@2.0.0:2.0.1") - patch('fix-ucx-1.7.0-api-instability.patch', when='@4.0.0:4.0.3') + patch('fix-ucx-1.7.0-api-instability.patch', when='@4.0.0:4.0.2') # Vader Bug: https://github.com/open-mpi/ompi/issues/5375 # Haven't release fix for 2.1.x @@ -203,6 +204,13 @@ class Openmpi(AutotoolsPackage): patch('btl_vader.patch', when='@3.0.1:3.0.2') patch('btl_vader.patch', when='@3.1.0:3.1.2') + # Reported upstream: https://github.com/open-mpi/ompi/pull/6378 + # We support only versions based on Libtool 2.4.6. + patch('nag_ltmain_1.patch', when='@2.1.4:2.1.999,3.0.1:4%nag') + patch('nag_ltmain_2.patch', when='@2.1.2:2.1.3,3.0.0%nag') + patch('nag_ltmain_3.patch', when='@2.0.0:2.1.1%nag') + patch('nag_ltmain_4.patch', when='@1.10.4:1.10.999%nag') + variant( 'fabrics', values=disjoint_sets( @@ -398,6 +406,7 @@ class Openmpi(AutotoolsPackage): spec = self.spec config_args = [ '--enable-shared', + '--disable-silent-rules' ] # Add extra_rpaths dirs from compilers.yaml into link wrapper diff --git a/var/spack/repos/builtin/packages/openpmd-api/hdf5-1.12.0.patch b/var/spack/repos/builtin/packages/openpmd-api/hdf5-1.12.0.patch new file mode 100644 index 0000000000..f190f12ff1 --- /dev/null +++ b/var/spack/repos/builtin/packages/openpmd-api/hdf5-1.12.0.patch @@ -0,0 +1,23 @@ +From 61ccc18cdd478c6281466f1f77de416559234dd8 Mon Sep 17 00:00:00 2001 +From: Axel Huebl <axel.huebl@plasma.ninja> +Date: Tue, 17 Mar 2020 10:51:20 -0700 +Subject: [PATCH] HDF5: H5Oget_info Compatibility + +Update to work with HDF5 1.12.0 signature. +Macro for older releases. +--- + src/IO/HDF5/HDF5IOHandler.cpp | 4 ++++ + 1 file changed, 4 insertions(+) + +diff --git a/src/IO/HDF5/HDF5IOHandler.cpp b/src/IO/HDF5/HDF5IOHandler.cpp +index 7043861b..c125e1f4 100644 +--- a/src/IO/HDF5/HDF5IOHandler.cpp ++++ b/src/IO/HDF5/HDF5IOHandler.cpp +@@ -1535,3 +1535,7 @@ void HDF5IOHandlerImpl::listAttributes(Writable* writable, + H5O_info_t object_info; + herr_t status; ++#if H5_VERSION_GE(1,12,0) ++ status = H5Oget_info(node_id, &object_info, H5O_INFO_NUM_ATTRS); ++#else + status = H5Oget_info(node_id, &object_info); ++#endif diff --git a/var/spack/repos/builtin/packages/openpmd-api/package.py b/var/spack/repos/builtin/packages/openpmd-api/package.py index 46ac2eaecb..1459a11271 100644 --- a/var/spack/repos/builtin/packages/openpmd-api/package.py +++ b/var/spack/repos/builtin/packages/openpmd-api/package.py @@ -15,6 +15,7 @@ class OpenpmdApi(CMakePackage): maintainers = ['ax3l'] version('dev', branch='dev') + version('0.11.0', tag='0.11.0-alpha') version('0.10.3', tag='0.10.3-alpha') version('0.10.2', tag='0.10.2-alpha') version('0.10.1', tag='0.10.1-alpha') @@ -54,6 +55,10 @@ class OpenpmdApi(CMakePackage): extends('python', when='+python') + # Fix breaking HDF5 1.12.0 API + # https://github.com/openPMD/openPMD-api/pull/696 + patch('hdf5-1.12.0.patch', when='@:0.11.0 +hdf5') + def cmake_args(self): spec = self.spec diff --git a/var/spack/repos/builtin/packages/openspeedshop/package.py b/var/spack/repos/builtin/packages/openspeedshop/package.py index 56f9b0c689..a0cf6e46cd 100644 --- a/var/spack/repos/builtin/packages/openspeedshop/package.py +++ b/var/spack/repos/builtin/packages/openspeedshop/package.py @@ -96,7 +96,7 @@ class Openspeedshop(CMakePackage): depends_on("libxml2") - depends_on("qt@3", when='gui=qt3') + depends_on("qt@3:3.9", when='gui=qt3') # Dependencies for the openspeedshop cbtf packages. depends_on("cbtf@develop", when='@develop', type=('build', 'link', 'run')) diff --git a/var/spack/repos/builtin/packages/openssl/package.py b/var/spack/repos/builtin/packages/openssl/package.py index 450990c179..3f8e4647c4 100644 --- a/var/spack/repos/builtin/packages/openssl/package.py +++ b/var/spack/repos/builtin/packages/openssl/package.py @@ -25,6 +25,7 @@ class Openssl(Package): # Uses Fake Autotools, should subclass Package # 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.1e', sha256='694f61ac11cb51c9bf73f54e771ff6022b0327a43bbdfa1b2f19de1662a6dcbe') version('1.1.1d', sha256='1e3a91bc1f9dfce01af26026f856e064eab4c8ee0a8f457b5ae30b40b8b711f2') version('1.1.1c', sha256='f6fb3079ad15076154eda9413fed42877d668e7069d9b87396d0804fdb3f4c90') version('1.1.1b', sha256='5c557b023230413dfb0756f3137a13e6d726838ccd1430888ad15bfb2b43ea4b') @@ -45,6 +46,7 @@ class Openssl(Package): # Uses Fake Autotools, should subclass Package # Our previous LTS version (1.0.2 series) will continue to be supported # until 31st December 2019 (security fixes only during the last year of # support). + version('1.0.2u', sha256='ecd0c6ffb493dd06707d38b14bb4d8c2288bb7033735606569d8f90f89669d16') version('1.0.2t', sha256='14cb464efe7ac6b54799b34456bd69558a749a4931ecfd9cf9f71d7881cac7bc') version('1.0.2s', sha256='cabd5c9492825ce5bd23f3c3aeed6a97f8142f606d893df216411f07d1abab96') version('1.0.2r', sha256='ae51d08bba8a83958e894946f15303ff894d75c2b8bbd44a852b64e3fe11d0d6') diff --git a/var/spack/repos/builtin/packages/opensubdiv/package.py b/var/spack/repos/builtin/packages/opensubdiv/package.py new file mode 100644 index 0000000000..69f9aeba4c --- /dev/null +++ b/var/spack/repos/builtin/packages/opensubdiv/package.py @@ -0,0 +1,85 @@ +# 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 Opensubdiv(CMakePackage, CudaPackage): + """OpenSubdiv is a set of open source libraries that + implement high performance subdivision surface (subdiv) + evaluation on massively parallel CPU and GPU architectures. + This code path is optimized for drawing deforming surfaces + with static topology at interactive framerates.""" + + homepage = "http://graphics.pixar.com/opensubdiv/docs/intro.html" + url = "https://github.com/PixarAnimationStudios/OpenSubdiv/archive/v3_4_0.tar.gz" + git = "https://github.com/PixarAnimationStudios/OpenSubdiv" + + version('develop', branch='dev') + version('3_4_0', sha256='d932b292f83371c7518960b2135c7a5b931efb43cdd8720e0b27268a698973e4') + + variant('tbb', default=False, description='Builds with Intel TBB support') + variant('openmp', default=False, description='Builds with OpenMP support') + variant('doc', default=False, description='Builds documentation. Requires Python 2') + + depends_on('cmake@2.8.6:', type='build') + depends_on('graphviz', type='build', when='+doc') + depends_on('doxygen', type='build', when='+doc') + depends_on('py-docutils', type='build', when='+doc') + depends_on('python@2.6:2.999', type='build', when='+doc') + depends_on('gl') + depends_on('glew@1.9.0:') + depends_on('glfw@3.0.0:') + depends_on('intel-tbb@4.0:', when='+tbb') + depends_on('libxrandr') + depends_on('libxcursor') + depends_on('libxinerama') + depends_on('llvm-openmp', when='+openmp') + + def cmake_args(self): + spec = self.spec + args = [] + + args.append('-DNO_EXAMPLES=1') # disable examples build + args.append('-DNO_TUTORIALS=1') # disable tutorials build + args.append('-DNO_REGRESSION=1') # disable regression tests build + args.append('-DNO_PTEX=1') # disable PTex support + args.append('-DNO_OPENCL=1') # disable OpenCL + args.append('-DNO_CLEW=1') # disable CLEW wrapper library + args.append('-DNO_METAL=1') # disable Metal + + args.append('-DNO_OPENGL=0') # OpenGL always on + args.append('-DGLEW_LOCATION={0}'.format(spec['glew'].prefix)) + + if '+cuda' in spec: + args.append('-DNO_CUDA=0') + + cuda_arch = [x for x in spec.variants['cuda_arch'].value if x] + if cuda_arch: + args.append('-DOSD_CUDA_NVCC_FLAGS={0}'.format( + ' '.join(self.cuda_flags(cuda_arch)))) + else: + args.append('-DOSD_CUDA_NVCC_FLAGS=') + + else: + args.append('-DNO_CUDA=1') + + if '+tbb' in spec: + args.append('-DNO_TBB=0') + else: + args.append('-DNO_TBB=1') + + if '+doc' in spec: + args.append('-DNO_DOC=0') + else: + args.append('-DNO_DOC=1') + + if '+openmp' in spec: + args.append('-DNO_OMP=0') + else: + args.append('-DNO_OMP=1') + + return args diff --git a/var/spack/repos/builtin/packages/papi/package.py b/var/spack/repos/builtin/packages/papi/package.py index c6dc408eb6..6e0b6cb817 100644 --- a/var/spack/repos/builtin/packages/papi/package.py +++ b/var/spack/repos/builtin/packages/papi/package.py @@ -23,6 +23,7 @@ class Papi(Package): maintainers = ['G-Ragghianti'] url = "http://icl.cs.utk.edu/projects/papi/downloads/papi-5.4.1.tar.gz" + version('6.0.0', sha256='3442709dae3405c2845b304c06a8b15395ecf4f3899a89ceb4d715103cb4055f') version('5.7.0', sha256='d1a3bb848e292c805bc9f29e09c27870e2ff4cda6c2fba3b7da8b4bba6547589') version('5.6.0', sha256='49b7293f9ca2d74d6d80bd06b5c4be303663123267b4ac0884cbcae4c914dc47') version('5.5.1', sha256='49dc2c2323f6164c4a7e81b799ed690ee73158671205e71501f849391dd2c2d4') diff --git a/var/spack/repos/builtin/packages/parallel-netcdf/nag_libtool.patch b/var/spack/repos/builtin/packages/parallel-netcdf/nag_libtool.patch new file mode 100644 index 0000000000..f391c1dc5e --- /dev/null +++ b/var/spack/repos/builtin/packages/parallel-netcdf/nag_libtool.patch @@ -0,0 +1,69 @@ +--- a/configure ++++ b/configure +@@ -11745,6 +11745,8 @@ _LT_EOF + whole_archive_flag_spec= + tmp_sharedflag='--shared' ;; + nagfor*) # NAGFOR 5.3 ++ whole_archive_flag_spec='$wl--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive' ++ compiler_needs_object=yes + tmp_sharedflag='-Wl,-shared' ;; + xl[cC]* | bgxl[cC]* | mpixl[cC]*) # IBM XL C 8.0 on PPC (deal with xlf below) + tmp_sharedflag='-qmkshrobj' +@@ -21030,6 +21032,8 @@ _LT_EOF + whole_archive_flag_spec_F77= + tmp_sharedflag='--shared' ;; + nagfor*) # NAGFOR 5.3 ++ whole_archive_flag_spec_F77='$wl--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive' ++ compiler_needs_object_F77=yes + tmp_sharedflag='-Wl,-shared' ;; + xl[cC]* | bgxl[cC]* | mpixl[cC]*) # IBM XL C 8.0 on PPC (deal with xlf below) + tmp_sharedflag='-qmkshrobj' +@@ -24765,6 +24769,8 @@ _LT_EOF + whole_archive_flag_spec_FC= + tmp_sharedflag='--shared' ;; + nagfor*) # NAGFOR 5.3 ++ whole_archive_flag_spec_FC='$wl--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive' ++ compiler_needs_object_FC=yes + tmp_sharedflag='-Wl,-shared' ;; + xl[cC]* | bgxl[cC]* | mpixl[cC]*) # IBM XL C 8.0 on PPC (deal with xlf below) + tmp_sharedflag='-qmkshrobj' +--- a/scripts/ltmain.sh ++++ b/scripts/ltmain.sh +@@ -7862,6 +7862,13 @@ func_mode_link () + # Convert "-framework foo" to "foo.ltframework" + if test -n "$inherited_linker_flags"; then + tmp_inherited_linker_flags=`$ECHO "$inherited_linker_flags" | $SED 's/-framework \([^ $]*\)/\1.ltframework/g'` ++ ++ # Additionally convert " -pthread" to " -Wl,-pthread" for nagfor ++ func_cc_basename $CC ++ case $func_cc_basename_result in ++ nagfor*) tmp_inherited_linker_flags=`$ECHO "$tmp_inherited_linker_flags" | $SED 's/ -pthread/ -Wl,-pthread/g'` ;; ++ esac ++ + for tmp_inherited_linker_flag in $tmp_inherited_linker_flags; do + case " $new_inherited_linker_flags " in + *" $tmp_inherited_linker_flag "*) ;; +@@ -8881,7 +8888,8 @@ func_mode_link () + xlcverstring="$wl-compatibility_version $wl$minor_current $wl-current_version $wl$minor_current.$revision" + verstring="-compatibility_version $minor_current -current_version $minor_current.$revision" + # On Darwin other compilers +- case $CC in ++ func_cc_basename $CC ++ case $func_cc_basename_result in + nagfor*) + verstring="$wl-compatibility_version $wl$minor_current $wl-current_version $wl$minor_current.$revision" + ;; +@@ -9493,6 +9501,13 @@ EOF + ;; + esac + ++ # Time to revert the changes made for nagfor. ++ func_cc_basename $CC ++ case $func_cc_basename_result in ++ nagfor*) ++ new_inherited_linker_flags=`$ECHO " $new_inherited_linker_flags" | $SED 's% -Wl,-pthread% -pthread%g'` ;; ++ esac ++ + # move library search paths that coincide with paths to not yet + # installed libraries to the beginning of the library search list + new_libs= diff --git a/var/spack/repos/builtin/packages/parallel-netcdf/package.py b/var/spack/repos/builtin/packages/parallel-netcdf/package.py index 34a1af5984..384717d05e 100644 --- a/var/spack/repos/builtin/packages/parallel-netcdf/package.py +++ b/var/spack/repos/builtin/packages/parallel-netcdf/package.py @@ -25,7 +25,6 @@ class ParallelNetcdf(AutotoolsPackage): return url.format(version.dotted) - version('develop', branch='develop') version('master', branch='master') version('1.12.1', sha256='56f5afaa0ddc256791c405719b6436a83b92dcd5be37fe860dea103aee8250a2') version('1.11.2', sha256='d2c18601b364c35b5acb0a0b46cd6e14cae456e0eb854e5c789cf65f3cd6a2a7') @@ -42,41 +41,74 @@ class ParallelNetcdf(AutotoolsPackage): variant('fortran', default=True, description='Build the Fortran Interface') variant('pic', default=True, description='Produce position-independent code (for shared libs)') + variant('shared', default=True, description='Enable shared library') depends_on('mpi') depends_on('m4', type='build') + depends_on('autoconf', when='@master', type='build') + depends_on('automake', when='@master', type='build') + depends_on('libtool', when='@master', type='build') - # See: - # https://trac.mcs.anl.gov/projects/parallel-netcdf/browser/trunk/INSTALL - def configure_args(self): - spec = self.spec + conflicts('+shared', when='@:1.9%nag+fortran') + conflicts('+shared', when='@:1.8') + + patch('nag_libtool.patch', when='@1.9:1.12.1%nag') - args = ['--with-mpi={0}'.format(spec['mpi'].prefix)] - args.append('MPICC={0}'.format(spec['mpi'].mpicc)) - args.append('MPICXX={0}'.format(spec['mpi'].mpicxx)) - args.append('MPIF77={0}'.format(spec['mpi'].mpifc)) - args.append('MPIF90={0}'.format(spec['mpi'].mpifc)) - args.append('SEQ_CC={0}'.format(spack_cc)) + @property + def libs(self): + libraries = ['libpnetcdf'] - if '+pic' in spec: - args.extend([ - 'CFLAGS={0}'.format(self.compiler.pic_flag), - 'CXXFLAGS={0}'.format(self.compiler.pic_flag), - 'FFLAGS={0}'.format(self.compiler.pic_flag) - ]) + query_parameters = self.spec.last_query.extra_parameters + + if 'shared' in query_parameters: + shared = True + elif 'static' in query_parameters: + shared = False + else: + shared = '+shared' in self.spec - if '~cxx' in spec: - args.append('--disable-cxx') + libs = find_libraries( + libraries, root=self.prefix, shared=shared, recursive=True + ) - if '~fortran' in spec: - args.append('--disable-fortran') + if libs: + return libs - if spec.satisfies('@1.8.0:'): + msg = 'Unable to recursively locate {0} {1} libraries in {2}' + raise spack.error.NoLibrariesError( + msg.format('shared' if shared else 'static', + self.spec.name, + self.spec.prefix)) + + @when('@master') + def autoreconf(self, spec, prefix): + with working_dir(self.configure_directory): + # We do not specify '-f' because we need to use libtool files from + # the repository. + autoreconf('-iv') + + def configure_args(self): + args = ['--with-mpi=%s' % self.spec['mpi'].prefix, + 'SEQ_CC=%s' % spack_cc] + + args += self.enable_or_disable('cxx') + args += self.enable_or_disable('fortran') + + if '+pic' in self.spec: + args.extend(['{0}FLAGS={1}'.format(lang, self.compiler.pic_flag) + for lang in ['C', 'CXX', 'F', 'FC']]) + + if self.version >= Version('1.8'): args.append('--enable-relax-coord-bound') - return args + if self.version >= Version('1.9'): + args += self.enable_or_disable('shared') + args.extend(['--enable-static', + '--disable-silent-rules']) + + if self.spec.satisfies('%nag+fortran+shared'): + args.extend(['ac_cv_prog_fc_v=-Wl,-v', + 'ac_cv_prog_f77_v=-Wl,-v']) - def install(self, spec, prefix): - # Installation fails in parallel - make('install', parallel=False) + return args diff --git a/var/spack/repos/builtin/packages/paraview/package.py b/var/spack/repos/builtin/packages/paraview/package.py index 111c8df7a4..48dff877e0 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.0', sha256='219e4107abf40317ce054408e9c3b22fb935d464238c1c00c0161f1c8697a3f9') version('5.7.0', sha256='e41e597e1be462974a03031380d9e5ba9a7efcdb22e4ca2f3fec50361f310874') version('5.6.2', sha256='1f3710b77c58a46891808dbe23dc59a1259d9c6b7bb123aaaeaa6ddf2be882ea') version('5.6.0', sha256='cb8c4d752ad9805c74b4a08f8ae6e83402c3f11e38b274dba171b99bb6ac2460') diff --git a/var/spack/repos/builtin/packages/perfstubs/package.py b/var/spack/repos/builtin/packages/perfstubs/package.py new file mode 100644 index 0000000000..9162e749fc --- /dev/null +++ b/var/spack/repos/builtin/packages/perfstubs/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 Perfstubs(CMakePackage): + """Profiling API for adding tool instrumentation support to any project. + + This was motivated by the need to quickly add instrumentation to the + [ADIOS2](https://github.com/ornladios/ADIOS2) library without adding a build + dependency, or tying to a specific measurement tool. + + The initial prototype implementation was tied to TAU, but evolved to this more + generic version, which was extracted as a separate repository for testing and + demonstration purposes. + """ + + homepage = "https://github.com/khuck/perfstubs" + git = "https://github.com/khuck/perfstubs.git" + + version('master', branch='master') + variant('static', default=False, description='Build static executable support') + + def cmake_args(self): + spec = self.spec + + args = [ + '-DPERFSTUBS_USE_STATIC:BOOL={0}'.format( + 'ON' if '+static' in spec else 'OFF') + ] + return args diff --git a/var/spack/repos/builtin/packages/perl-want/package.py b/var/spack/repos/builtin/packages/perl-want/package.py index 8cf43446ba..82b926234a 100644 --- a/var/spack/repos/builtin/packages/perl-want/package.py +++ b/var/spack/repos/builtin/packages/perl-want/package.py @@ -9,7 +9,7 @@ from spack import * class PerlWant(PerlPackage): """A generalisation of wantarray.""" - homepage = "search.cpan.org/~robin/Want/Want.pm" + homepage = "http://search.cpan.org/~robin/Want/Want.pm" url = "http://search.cpan.org/CPAN/authors/id/R/RO/ROBIN/Want-0.29.tar.gz" version('0.29', sha256='b4e4740b8d4cb783591273c636bd68304892e28d89e88abf9273b1de17f552f7') diff --git a/var/spack/repos/builtin/packages/petsc/package.py b/var/spack/repos/builtin/packages/petsc/package.py index 88332caec9..577f53a163 100644 --- a/var/spack/repos/builtin/packages/petsc/package.py +++ b/var/spack/repos/builtin/packages/petsc/package.py @@ -24,6 +24,7 @@ class Petsc(Package): version('develop', branch='master') version('xsdk-0.2.0', tag='xsdk-0.2.0') + version('3.12.4', sha256='56a941130da93bbacb3cfa74dcacea1e3cd8e36a0341f9ced09977b1457084c3') version('3.12.3', sha256='91f77d7b0f54056f085b9e27938922db3d9bb1734a2e2a6d26f43d3e6c0cf631') version('3.12.2', sha256='d874b2e198c4cb73551c2eca1d2c5d27da710be4d00517adb8f9eb3d6d0375e8') version('3.12.1', sha256='b72d895d0f4a79acb13ebc782b47b26d10d4e5706d399f533afcd5b3dba13737') @@ -99,6 +100,8 @@ class Petsc(Package): description='Activate X support') variant('batch', default=False, description='Enable when mpiexec is not available to run binaries') + variant('valgrind', default=False, + description='Enable Valgrind Client Request mechanism') # 3.8.0 has a build issue with MKL - so list this conflict explicitly conflicts('^intel-mkl', when='@3.8.0') @@ -143,9 +146,10 @@ class Petsc(Package): depends_on('metis@5:~int64', when='@3.8:+metis~int64') depends_on('metis@5:+int64', when='@3.8:+metis+int64') - depends_on('hdf5+mpi+hl+fortran', when='+hdf5+mpi') + depends_on('hdf5@:1.10.99+mpi+hl+fortran', when='+hdf5+mpi') depends_on('zlib', when='+hdf5') 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 @@ -160,8 +164,8 @@ class Petsc(Package): depends_on('hypre@develop~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:~int64', when='@3.7:3.7.99+superlu-dist+mpi~int64') - depends_on('superlu-dist@5.0.0:+int64', when='@3.7:3.7.99+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') + depends_on('superlu-dist@5.0.0:5.1.3+int64', when='@3.7:3.7.99+superlu-dist+mpi+int64') depends_on('superlu-dist@5.2:5.2.99~int64', when='@3.8:3.9.99+superlu-dist+mpi~int64') depends_on('superlu-dist@5.2:5.2.99+int64', when='@3.8:3.9.99+superlu-dist+mpi+int64') depends_on('superlu-dist@5.4:5.4.99~int64', when='@3.10:3.10.2+superlu-dist+mpi~int64') @@ -280,7 +284,7 @@ class Petsc(Package): # Activates library support if needed for library in ('metis', 'hdf5', 'hypre', 'parmetis', - 'mumps', 'trilinos', 'fftw'): + 'mumps', 'trilinos', 'fftw', 'valgrind'): options.append( '--with-{library}={value}'.format( library=library, value=('1' if library in spec else '0')) diff --git a/var/spack/repos/builtin/packages/pfunit/package.py b/var/spack/repos/builtin/packages/pfunit/package.py index 30704ac62e..ab6bc53d2c 100644 --- a/var/spack/repos/builtin/packages/pfunit/package.py +++ b/var/spack/repos/builtin/packages/pfunit/package.py @@ -30,10 +30,14 @@ class Pfunit(CMakePackage): variant('shared', default=True, description='Build shared library in addition to static') variant('mpi', default=False, description='Enable MPI') - variant('use_comm_world', default=False, description='Enable MPI_COMM_WORLD for testing') + variant('use_comm_world', default=False, + description='Enable MPI_COMM_WORLD for testing') variant('openmp', default=False, description='Enable OpenMP') variant('docs', default=False, description='Build docs') + variant('max_array_rank', values=int, default=5, + description='Max number of Fortran dimensions of array asserts') + depends_on('python@2.7:', type=('build', 'run')) # python3 too! depends_on('mpi', when='+mpi') @@ -53,7 +57,8 @@ class Pfunit(CMakePackage): '-DBUILD_SHARED=%s' % ('YES' if '+shared' in spec else 'NO'), '-DCMAKE_Fortran_MODULE_DIRECTORY=%s' % spec.prefix.include, '-DBUILD_DOCS=%s' % ('YES' if '+docs' in spec else 'NO'), - '-DOPENMP=%s' % ('YES' if '+openmp' in spec else 'NO')] + '-DOPENMP=%s' % ('YES' if '+openmp' in spec else 'NO'), + '-DMAX_RANK=%s' % spec.variants['max_array_rank'].value] if spec.satisfies('+mpi'): args.extend(['-DMPI=YES', '-DMPI_USE_MPIEXEC=YES', diff --git a/var/spack/repos/builtin/packages/pgi/package.py b/var/spack/repos/builtin/packages/pgi/package.py index 783bf75faa..aa6e60ddcc 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('19.10', sha256='ac9db73ba80a66fe3bc875f63aaa9e16f54674a4e88b25416432430ba8cf203d') version('19.4', sha256='23eee0d4da751dd6f247d624b68b03538ebd172e63a053c41bb67013f07cf68e') version('19.1', sha256='3e05a6db2bf80b5d15f6ff83188f20cb89dc23e233417921e5c0822e7e57d34f') version('18.10', sha256='4b3ff83d2a13de6001bed599246eff8e63ef711b8952d4a9ee12efd666b3e326') @@ -90,6 +91,9 @@ class Pgi(Package): def setup_run_environment(self, env): prefix = Prefix(join_path(self.prefix, 'linux86-64', self.version)) + env.prepend_path('PATH', prefix.bin) + env.prepend_path('MANPATH', prefix.man) + env.prepend_path('LD_LIBRARY_PATH', prefix.lib) env.set('CC', join_path(prefix.bin, 'pgcc')) env.set('CXX', join_path(prefix.bin, 'pgc++')) env.set('F77', join_path(prefix.bin, 'pgfortran')) diff --git a/var/spack/repos/builtin/packages/php/package.py b/var/spack/repos/builtin/packages/php/package.py new file mode 100644 index 0000000000..714bfb0e8f --- /dev/null +++ b/var/spack/repos/builtin/packages/php/package.py @@ -0,0 +1,41 @@ +# 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 Php(AutotoolsPackage): + """ + PHP is a popular general-purpose scripting language that is especially + suited to web development. Fast, flexible and pragmatic, PHP powers + everything from your blog to the most popular websites in the world. + """ + + homepage = "https://php.net/" + url = "https://github.com/php/php-src/archive/php-7.3.13.tar.gz" + + version('7.4.1', sha256='4d9d7c5681bec3af38a935d033657dce09a9913498f8022d7ca163a7f2f493a7') + version('7.4.0', sha256='91d34b48025ab9789216df89e247b6904912eeeaeff38c300ef314bdda8920b0') + version('7.3.13', sha256='e68b8d9e659f2993eee912f05860e546fdc18e459f31cd2771f404df21285f0b') + version('7.3.12', sha256='d0672ea84c0ab184f636acff3230d376d89a2067d59a87a2f1842361ee1f97d6') + version('7.3.11', sha256='4d861b2f3bc640ded8b591ce87250161392a6244a3c84042da0c06fd8c500eb2') + version('7.2.26', sha256='da132a836cec8021c00f22952e6044d91628ee3d2ef92a95d65cf91bad810600') + version('7.2.25', sha256='049b2d291c45cb889d15fcd2bac6da7d15ca5d535d272d2f8879fb834bbf276e') + version('7.2.24', sha256='334c9915733f6a29e1462f64038b1b4b1b21cb18f4f5f980add86792b5550ab3') + version('7.1.33', sha256='f80a795a09328a9441bae4a8a60fa0d6d43ec5adc98f5aa5f51d06f4522c07fe') + + depends_on('autoconf', type='build') + depends_on('automake', type='build') + depends_on('libtool', type='build') + depends_on('m4', type='build') + depends_on('pkgconfig', type='build') + depends_on('bison', type='build') + depends_on('re2c', type='build') + depends_on('libxml2') + depends_on('sqlite') + + def autoreconf(self, spec, prefix): + bash = which('bash') + bash('./buildconf', '--force') diff --git a/var/spack/repos/builtin/packages/pinentry/package.py b/var/spack/repos/builtin/packages/pinentry/package.py new file mode 100644 index 0000000000..3a9e6e526c --- /dev/null +++ b/var/spack/repos/builtin/packages/pinentry/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 Pinentry(AutotoolsPackage): + """pinentry is a small collection of dialog programs that allow GnuPG to + read passphrases and PIN numbers in a secure manner. There are versions for + the common GTK and Qt toolkits as well as for the text terminal (Curses). + """ + + homepage = "https://gnupg.org/related_software/pinentry/index.html" + url = "https://gnupg.org/ftp/gcrypt/pinentry/pinentry-1.1.0.tar.bz2" + + version('1.1.0', sha256='68076686fa724a290ea49cdf0d1c0c1500907d1b759a3bcbfbec0293e8f56570') + + depends_on('libgpg-error@1.16:') + depends_on('libassuan@2.1.0:') + + def configure_args(self): + return [ + # Autotools automatically enables these if dependencies found + # TODO: add variants for these + '--disable-pinentry-curses', + '--disable-pinentry-emacs', + '--disable-pinentry-gtk2', + '--disable-pinentry-gnome3', + '--disable-pinentry-qt', + '--disable-pinentry-qt5', + '--disable-pinentry-tqt', + '--disable-pinentry-fltk', + + # No dependencies, simplest installation + '--enable-pinentry-tty', + + # Disable extra features + '--disable-fallback-curses', + '--disable-inside-emacs', + '--disable-libsecret', + + # Required dependencies + '--with-gpg-error-prefix=' + self.spec['libgpg-error'].prefix, + '--with-libassuan-prefix=' + self.spec['libassuan'].prefix, + ] diff --git a/var/spack/repos/builtin/packages/plumed/package.py b/var/spack/repos/builtin/packages/plumed/package.py index c8b1f8e9b9..b51d3c12c2 100644 --- a/var/spack/repos/builtin/packages/plumed/package.py +++ b/var/spack/repos/builtin/packages/plumed/package.py @@ -25,8 +25,9 @@ class Plumed(AutotoolsPackage): git = 'https://github.com/plumed/plumed2.git' version('master', branch='master') - version('2.6b', sha256='3ecda9d46967c8ddd08e820aed974794d926cffb78b262f9d42cdbece3b15677') - version('2.5.3', preferred=True, sha256='543288be667dc4201fc461ecd2dd4878ddfbeac682d0c021c99ea8e501c7c9dc') + version('2.6.0', sha256='3d57ae460607a49547ef38a52c4ac93493a3966857c352280a9c05f5dcdb1820') + version('2.5.4', preferred=True, sha256='a1647e598191f261e75d06351e607475d395af481315052a4c28563ac9989a7f') + version('2.5.3', sha256='543288be667dc4201fc461ecd2dd4878ddfbeac682d0c021c99ea8e501c7c9dc') version('2.5.2', sha256='85d10cc46e2e37c7719cf51c0931278f56c2c8f8a9d86188b2bf97c2535a2ab4') version('2.5.1', sha256='de309980dcfd6f6e0e70e138856f4bd9eb4d8a513906a5e6389f18a5af7f2eba') version('2.5.0', sha256='53e08187ec9f8af2326fa84407e34644a7c51d2af93034309fb70675eee5e4f7') @@ -68,6 +69,7 @@ class Plumed(AutotoolsPackage): depends_on('autoconf', type='build') depends_on('automake', type='build') depends_on('libtool', type='build') + depends_on('py-cython', type='build', when='@2.5:') force_autoreconf = True diff --git a/var/spack/repos/builtin/packages/portage/package.py b/var/spack/repos/builtin/packages/portage/package.py index 097ec9aab1..95c881ae6c 100644 --- a/var/spack/repos/builtin/packages/portage/package.py +++ b/var/spack/repos/builtin/packages/portage/package.py @@ -60,6 +60,6 @@ class Portage(CMakePackage): self.spec['lapack'].libs.joined()) options.append("-DLAPACKE_LIBRARY=" + - self.spec["lapack"].libs.joined(";")) + self.spec["lapack:c"].libs.joined(";")) return options diff --git a/var/spack/repos/builtin/packages/precice/package.py b/var/spack/repos/builtin/packages/precice/package.py index 22556719e4..40661e4329 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.0.1', sha256='e4fe2d2063042761ab325f8c802f88ae088c90862af288ad1a642967d074bd50') version('2.0.0', sha256='c8979d366f06e35626a8da08a1c589df77ec13972eb524a1ba99a011e245701f') version('1.6.1', sha256='7d0c54faa2c69e52304f36608d93c408629868f16f3201f663a0f9b2008f0763') version('1.6.0', sha256='c3b16376fda9eb3449adb6cc3c1e267c3dc792a5d118e37d93a32a59b5a4bc6f') diff --git a/var/spack/repos/builtin/packages/protobuf/package.py b/var/spack/repos/builtin/packages/protobuf/package.py index 0923d3a961..05702d9fc9 100644 --- a/var/spack/repos/builtin/packages/protobuf/package.py +++ b/var/spack/repos/builtin/packages/protobuf/package.py @@ -39,6 +39,9 @@ class Protobuf(CMakePackage): variant('shared', default=True, description='Enables the build of shared libraries') + variant('build_type', default='Release', + description='The build type to build', + values=('Debug', 'Release')) depends_on('zlib') diff --git a/var/spack/repos/builtin/packages/py-arviz/package.py b/var/spack/repos/builtin/packages/py-arviz/package.py new file mode 100644 index 0000000000..20e1be3839 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-arviz/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 PyArviz(PythonPackage): + """ArviZ (pronounced "AR-vees") is a Python package for exploratory + analysis of Bayesian models. Includes functions for posterior analysis, + model checking, comparison and diagnostics.""" + + homepage = "http://github.com/arviz-devs/arviz" + url = "https://pypi.io/packages/source/a/arviz/arviz-0.6.1.tar.gz" + + version('0.6.1', sha256='435edf8db49c41a8fa198f959e7581063006c49a4efdef4755bb778db6fd4f72') + + depends_on('py-setuptools', type='build') + depends_on('py-matplotlib@3.0:', type=('build', 'run')) + depends_on('py-numpy@1.12:', type=('build', 'run')) + depends_on('py-scipy@0.19:', type=('build', 'run')) + depends_on('py-packaging', type=('build', 'run')) + depends_on('py-pandas@0.23:', type=('build', 'run')) + depends_on('py-xarray@0.11:', type=('build', 'run')) + depends_on('py-netcdf4', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-astpretty/package.py b/var/spack/repos/builtin/packages/py-astpretty/package.py new file mode 100644 index 0000000000..b6b4e9855f --- /dev/null +++ b/var/spack/repos/builtin/packages/py-astpretty/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 PyAstpretty(PythonPackage): + """Pretty print the output of python stdlib `ast.parse`.""" + + homepage = "https://github.com/asottile/astpretty" + url = "https://pypi.io/packages/source/a/astpretty/astpretty-2.0.0.tar.gz" + + version('2.0.0', sha256='e4724bfd753636ba4a84384702e9796e5356969f40af2596d846ce64addde086') + + variant('typed', default=False, description='Add support for typed comments') + + depends_on('python@3.6.1:', type=('build', 'run')) + depends_on('py-setuptools', type=('build', 'run')) + depends_on('py-typed-ast', type=('build', 'run'), when='+typed') diff --git a/var/spack/repos/builtin/packages/py-audioread/package.py b/var/spack/repos/builtin/packages/py-audioread/package.py new file mode 100644 index 0000000000..b69f22b720 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-audioread/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 PyAudioread(PythonPackage): + """cross-library (GStreamer + Core Audio + MAD + FFmpeg) audio decoding for + Python.""" + + homepage = "https://github.com/beetbox/audioread" + url = "https://pypi.io/packages/source/a/audioread/audioread-2.1.8.tar.gz" + + version('2.1.8', sha256='073904fabc842881e07bd3e4a5776623535562f70b1655b635d22886168dd168') + + depends_on('py-setuptools', type='build') + # the following does not seem to be used for building but is listed in + # setup.py + depends_on('py-pytest-runner', type='build') diff --git a/var/spack/repos/builtin/packages/py-auxlib/package.py b/var/spack/repos/builtin/packages/py-auxlib/package.py new file mode 100644 index 0000000000..4d18101e5d --- /dev/null +++ b/var/spack/repos/builtin/packages/py-auxlib/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 PyAuxlib(PythonPackage): + """Auxlib is an auxiliary library to the python standard library.""" + + homepage = "https://github.com/kalefranz/auxlib" + url = "https://pypi.io/packages/source/a/auxlib/auxlib-0.0.43.tar.gz" + + version('0.0.43', sha256='0f175637e96a090a785767ce28483cf1aeec316a19afce9b2fbd113e1122786a') + + depends_on('py-setuptools', type='build') + depends_on('py-enum34', type=('build', 'run'), when='^python@:3.3') + depends_on('py-ordereddict', type=('build', 'run'), when='^python@:2.6') + depends_on('py-wheel', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-basis-set-exchange/package.py b/var/spack/repos/builtin/packages/py-basis-set-exchange/package.py new file mode 100644 index 0000000000..92cd2b6d72 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-basis-set-exchange/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 PyBasisSetExchange(PythonPackage): + """Command-line interface for the Basis Set Exchange Website""" + + homepage = "https://www.basissetexchange.org" + url = "https://github.com/MolSSI-BSE/basis_set_exchange/archive/v0.8.12.tar.gz" + + maintainers = ['bennybp', 'scemama'] + + version('0.8.12', sha256='41f0242e2c11392c511d3308c0345e14b0eb3344686d865bdfcb48257910fc0d') + version('0.8.11', sha256='dbd4cf9382d97b79a3143c6b2086d1d24562bd13e0ab0d18fc0423b9ee877b9b') + version('0.8.10', sha256='7f974faf513791d59ef47dd4eba9d8386f75bbd85f253ca5c08732ff56004a57') + version('0.8.9', sha256='faf01a00c8ef7cf7331562052fbf1ff861e901545a927310ab09ac03604b400b') + version('0.8.8', sha256='4770bc901b93bfbf1aa5e1c4b486804753b3ff19c41794d3200ffe990b12dfa1') + version('0.8.7', sha256='5e9e18ca84bd378d1e02b6543cee122d8cc4efeaf05b1801061b500dda4cb2fc') + version('0.8.6', sha256='96da4ab45adaab11825917dc4cf0e236f5d2f0af0f2e026578262ce389784912') + version('0.8.5', sha256='ff8e6e03474319245e641c9da05715a6ea90dccab0e60ad2b0bc8556f85a9bca') + version('0.8.4', sha256='005f95794ce55f1b1e8faa0b6910b814819dd4ee9dba367a3ec29dfe53816684') + version('0.8.3', sha256='0721f3cf55f588f62d74a408bccdd44046ebeaab8ec802c02fae7983d8f0359f') + + depends_on('py-argcomplete', type=('build', 'run')) + depends_on('py-jsonschema', type=('build', 'run')) + depends_on('py-setuptools', type='build') + depends_on('python@3:', type=('build', 'run')) + depends_on('py-pytest@4.0:', type='test') + depends_on('py-pytest-cov', type='test') diff --git a/var/spack/repos/builtin/packages/py-bx-python/package.py b/var/spack/repos/builtin/packages/py-bx-python/package.py index ee4dfff7fc..3d73b21d18 100644 --- a/var/spack/repos/builtin/packages/py-bx-python/package.py +++ b/var/spack/repos/builtin/packages/py-bx-python/package.py @@ -11,10 +11,17 @@ class PyBxPython(PythonPackage): to allow for rapid implementation of genome scale analyses.""" homepage = "https://github.com/bxlab/bx-python" - url = "https://github.com/bxlab/bx-python/archive/v0.7.4.tar.gz" + url = "https://pypi.io/packages/source/b/bx-python/bx-python-0.8.8.tar.gz" - version('0.7.4', sha256='1066d1e56d062d0661f23c19942eb757bd7ab7cb8bc7d89a72fdc3931c995cb4') + version('0.8.8', sha256='ad0808ab19c007e8beebadc31827e0d7560ac0e935f1100fb8cc93607400bb47') + version('0.7.4', + sha256='1066d1e56d062d0661f23c19942eb757bd7ab7cb8bc7d89a72fdc3931c995cb4', + url="https://github.com/bxlab/bx-python/archive/v0.7.4.tar.gz") + depends_on('python@2.4:2.7', type=('build', 'run'), when='@:0.7') + depends_on('python@2.7:2.8,3.5:', type=('build', 'run'), when='@0.8:') depends_on('py-setuptools', type='build') - depends_on('py-numpy', type=('build', 'run')) - depends_on('py-six', type=('build', 'run')) + depends_on('py-python-lzo', type=('build', 'run'), when='@:0.7') + depends_on('py-cython', type='build', when='@0.8:') + depends_on('py-numpy', type=('build', 'run')) + depends_on('py-six', type=('build', 'run'), when='@0.8:') diff --git a/var/spack/repos/builtin/packages/py-cnvkit/package.py b/var/spack/repos/builtin/packages/py-cnvkit/package.py new file mode 100644 index 0000000000..17d4508b15 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-cnvkit/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 PyCnvkit(PythonPackage): + """Copy number variation toolkit for high-throughput sequencing.""" + + homepage = "https://github.com/etal/cnvkit" + url = "https://pypi.io/packages/source/C/CNVkit/CNVkit-0.9.6.tar.gz" + + version('0.9.6', sha256='be889c98a5cf0a994330b8c31c0a65151fb0095fe4e75a1e04118da2516248c2') + + depends_on('py-setuptools', type='build') + depends_on('py-futures@3.0:', type=('build', 'run'), when='^python@:2.7') + depends_on('py-biopython@1.62:', type=('build', 'run')) + depends_on('py-future@0.15.2:', type=('build', 'run')) + depends_on('py-pomegranate@0.9.0:', type=('build', 'run')) + depends_on('py-matplotlib@1.3.1:', type=('build', 'run')) + depends_on('py-numpy@1.9:', type=('build', 'run')) + depends_on('py-pandas@0.20.1:0.24.999', type=('build', 'run')) + depends_on('py-pyfaidx@0.4.7:', type=('build', 'run')) + depends_on('py-pysam@0.10.0:', type=('build', 'run')) + depends_on('py-reportlab@3.0:', type=('build', 'run')) + depends_on('py-scipy@0.15.0:', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-contextlib2/package.py b/var/spack/repos/builtin/packages/py-contextlib2/package.py index c4409c8497..7231512b35 100644 --- a/var/spack/repos/builtin/packages/py-contextlib2/package.py +++ b/var/spack/repos/builtin/packages/py-contextlib2/package.py @@ -15,6 +15,7 @@ class PyContextlib2(PythonPackage): url = "https://github.com/jazzband/contextlib2/archive/v0.6.0.tar.gz" version('0.6.0', sha256='4f18e2f28bb642aae9447aacec93b1319c8ee838711553c0a2bd906753f2ad33') + version('0.5.5', sha256='613569263db0271f34c8484792360272a731f2185567c31c8118e9c994412170') depends_on('py-setuptools', type='build') depends_on('python@2.7:2.8,3.4:', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-decorator/package.py b/var/spack/repos/builtin/packages/py-decorator/package.py index 80174932ee..d174fc8a1f 100644 --- a/var/spack/repos/builtin/packages/py-decorator/package.py +++ b/var/spack/repos/builtin/packages/py-decorator/package.py @@ -12,8 +12,9 @@ class PyDecorator(PythonPackage): various non-trivial examples.""" homepage = "https://github.com/micheles/decorator" - url = "https://pypi.io/packages/source/d/decorator/decorator-4.4.0.tar.gz" + url = "https://pypi.io/packages/source/d/decorator/decorator-4.4.2.tar.gz" + version('4.4.2', sha256='e3a62f0520172440ca0dcc823749319382e377f37f140a0b99ef45fecb84bfe7') version('4.4.0', sha256='86156361c50488b84a3f148056ea716ca587df2f0de1d34750d35c21312725de') version('4.3.2', sha256='33cd704aea07b4c28b3eb2c97d288a06918275dac0ecebdaf1bc8a48d98adb9e') version('4.3.0', sha256='c39efa13fbdeb4506c476c9b3babf6a718da943dab7811c206005a4a956c080c') diff --git a/var/spack/repos/builtin/packages/py-deprecated/package.py b/var/spack/repos/builtin/packages/py-deprecated/package.py new file mode 100644 index 0000000000..7d1fe4af93 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-deprecated/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 PyDeprecated(PythonPackage): + """Python @deprecated decorator to deprecate old python classes, + functions or methods.""" + + homepage = "https://github.com/tantale/deprecated" + url = "https://github.com/tantale/deprecated/archive/v1.2.7.tar.gz" + + version("1.2.7", sha256="7db3c814ddcac9d79c5bae8a0e82a5bba55cb8e46f3d611d0d8611c34a72a783") + + depends_on("python@2.7:2.8,3.4:", type=("build", "run")) + depends_on("py-wrapt@1.10:1.99999", type=("build", "run")) + depends_on("py-setuptools", type="build") diff --git a/var/spack/repos/builtin/packages/py-dgl/package.py b/var/spack/repos/builtin/packages/py-dgl/package.py new file mode 100644 index 0000000000..336d69edf2 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-dgl/package.py @@ -0,0 +1,94 @@ +# 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 PyDgl(CMakePackage): + """Deep Graph Library (DGL). + + DGL is an easy-to-use, high performance and scalable Python package for + deep learning on graphs. DGL is framework agnostic, meaning if a deep graph + model is a component of an end-to-end application, the rest of the logics + can be implemented in any major frameworks, such as PyTorch, Apache MXNet + or TensorFlow.""" + + homepage = "https://www.dgl.ai/" + git = "https://github.com/dmlc/dgl.git" + + maintainers = ['adamjstewart'] + + version('master', branch='master', submodules=True) + version('0.4.2', tag='0.4.2', submodules=True) + + variant('cuda', default=True, description='Build with CUDA') + variant('openmp', default=True, description='Build with OpenMP') + variant('backend', default='pytorch', description='Default backend', + values=['pytorch', 'mxnet', 'tensorflow'], multi=False) + + depends_on('cmake@3.5:', type='build') + depends_on('cuda', when='+cuda') + depends_on('llvm-openmp', when='%clang platform=darwin +openmp') + + # Python dependencies + extends('python') + depends_on('python@3.5:', type=('build', 'run')) + depends_on('py-setuptools', type='build') + depends_on('py-cython', type='build') + depends_on('py-numpy@1.14.0:', type=('build', 'run')) + depends_on('py-scipy@1.1.0:', type=('build', 'run')) + depends_on('py-networkx@2.1:', type=('build', 'run')) + + # Backends + depends_on('py-torch@0.4.1:', when='backend=pytorch', type='run') + depends_on('mxnet@1.5:', when='backend=mxnet', type='run') + depends_on('py-tensorflow@2.0:', when='backend=tensorflow', type='run') + depends_on('py-tfdlpack', when='backend=tensorflow', type='run') + + build_directory = 'build' + + def cmake_args(self): + args = [] + + if '+cuda' in self.spec: + args.append('-DUSE_CUDA=ON') + else: + args.append('-DUSE_CUDA=OFF') + + if '+openmp' in self.spec: + args.append('-DUSE_OPENMP=ON') + + if self.spec.satisfies('%clang platform=darwin'): + args.extend([ + '-DOpenMP_CXX_FLAGS=' + + self.spec['llvm-openmp'].headers.include_flags, + '-DOpenMP_CXX_LIB_NAMES=' + + self.spec['llvm-openmp'].libs.names[0], + '-DOpenMP_C_FLAGS=' + + self.spec['llvm-openmp'].headers.include_flags, + '-DOpenMP_C_LIB_NAMES=' + + self.spec['llvm-openmp'].libs.names[0], + '-DOpenMP_omp_LIBRARY=' + + self.spec['llvm-openmp'].libs[0], + ]) + else: + args.append('-DUSE_OPENMP=OFF') + + if self.run_tests: + args.append('-DBUILD_CPP_TEST=ON') + else: + args.append('-DBUILD_CPP_TEST=OFF') + + return args + + def install(self, spec, prefix): + with working_dir('python'): + import os + print('Current dir:', os.getcwd()) + setup_py('install', '--prefix=' + prefix, + '--single-version-externally-managed', '--root=/') + + def setup_run_environment(self, env): + # https://docs.dgl.ai/install/backend.html + backend = self.spec.variants['backend'].value + env.set('DGLBACKEND', backend) diff --git a/var/spack/repos/builtin/packages/py-git-review/package.py b/var/spack/repos/builtin/packages/py-git-review/package.py index b68538eaac..5f4caa3b5c 100644 --- a/var/spack/repos/builtin/packages/py-git-review/package.py +++ b/var/spack/repos/builtin/packages/py-git-review/package.py @@ -12,6 +12,7 @@ class PyGitReview(PythonPackage): homepage = "http://docs.openstack.org/infra/git-review" url = "https://pypi.io/packages/source/g/git-review/git-review-1.25.0.tar.gz" + version('1.28.0', sha256='8e3aabb7b9484063e49c2504d137609401e32ad5128ff2a5cf43e98d5d3dc15a') version('1.26.0', sha256='487c3c1d7cc81d02b303a1245e432579f683695c827ad454685b3953f70f0b94') version('1.25.0', sha256='087e0a7dc2415796a9f21c484a6f652c5410e6ba4562c36291c5399f9395a11d') diff --git a/var/spack/repos/builtin/packages/py-h5glance/package.py b/var/spack/repos/builtin/packages/py-h5glance/package.py index 93a1be4028..9d3c3c9171 100644 --- a/var/spack/repos/builtin/packages/py-h5glance/package.py +++ b/var/spack/repos/builtin/packages/py-h5glance/package.py @@ -15,7 +15,9 @@ class PyH5glance(PythonPackage): homepage = "https://github.com/European-XFEL/h5glance" url = "https://pypi.io/packages/source/h/h5glance/h5glance-0.4.tar.gz" - version('0.4', sha256='03babaee0d481991062842796126bc9e6b11e2e6e7daba57c26f2b58bf3bbd32') + version('0.6', sha256='203369ab614273aaad3419f151e234609bb8390b201b65f678d7e17c57633e35') + version('0.5', sha256='bc34ee42429f0440b329083e3f67fbf3d7016a4aed9e8b30911e5905217bc8d9') + version('0.4', sha256='03babaee0d481991062842796126bc9e6b11e2e6e7daba57c26f2b58bf3bbd32') depends_on('python@3.5:', type=('build', 'run')) depends_on('py-h5py', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-h5py/package.py b/var/spack/repos/builtin/packages/py-h5py/package.py index d09fc71505..5f05081de1 100644 --- a/var/spack/repos/builtin/packages/py-h5py/package.py +++ b/var/spack/repos/builtin/packages/py-h5py/package.py @@ -11,10 +11,11 @@ class PyH5py(PythonPackage): HDF5 library from Python.""" homepage = "http://www.h5py.org/" - url = "https://pypi.io/packages/source/h/h5py/h5py-2.9.0.tar.gz" + url = "https://pypi.io/packages/source/h/h5py/h5py-2.10.0.tar.gz" import_modules = ['h5py', 'h5py._hl'] + version('2.10.0', sha256='84412798925dc870ffd7107f045d7659e60f5d46d1c70c700375248bf6bf512d') version('2.9.0', sha256='9d41ca62daf36d6b6515ab8765e4c8c4388ee18e2a665701fef2b41563821002') version('2.8.0', sha256='e626c65a8587921ebc7fb8d31a49addfdd0b9a9aa96315ea484c09803337b955') version('2.7.1', sha256='180a688311e826ff6ae6d3bda9b5c292b90b28787525ddfcb10a29d5ddcae2cc') @@ -31,6 +32,7 @@ class PyH5py(PythonPackage): depends_on('py-setuptools', type='build') # Build and runtime dependencies + depends_on('py-cached-property@1.5:', type=('build', 'run')) depends_on('py-numpy@1.7:', type=('build', 'run')) depends_on('py-six', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-hatchet/package.py b/var/spack/repos/builtin/packages/py-hatchet/package.py new file mode 100644 index 0000000000..91df70b61b --- /dev/null +++ b/var/spack/repos/builtin/packages/py-hatchet/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 PyHatchet(PythonPackage): + """Hatchet is an analysis tool for structured tree or graph performance data + using an indexed Pandas dataframe.""" + + homepage = "https://github.com/LLNL/hatchet" + url = "https://github.com/LLNL/hatchet/archive/v1.0.0.tar.gz" + + maintainers = ["slabasan", "bhatele", "tgamblin"] + + version('1.0.0', sha256='efd218bc9152abde0a8006489a2c432742f00283a114c1eeb6d25abc10f5862d') + + depends_on('python@2.7,3:', type=('build', 'run')) + + depends_on('py-setuptools', type='build') + depends_on('py-matplotlib', type=('build', 'run')) + depends_on('py-numpy', type=('build', 'run')) + depends_on('py-pandas', type=('build', 'run')) + depends_on('py-pydot', type=('build', 'run')) + depends_on('py-pyyaml', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-horovod/package.py b/var/spack/repos/builtin/packages/py-horovod/package.py new file mode 100644 index 0000000000..598e01c6f9 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-horovod/package.py @@ -0,0 +1,120 @@ +# 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 PyHorovod(PythonPackage): + """Horovod is a distributed deep learning training framework for + TensorFlow, Keras, PyTorch, and Apache MXNet.""" + + homepage = "https://github.com/horovod" + git = "https://github.com/horovod/horovod.git" + + maintainers = ['adamjstewart'] + + version('master', branch='master', submodules=True) + version('0.19.1', tag='v0.19.1', submodules=True) + version('0.19.0', tag='v0.19.0', submodules=True) + version('0.18.2', tag='v0.18.2', submodules=True) + version('0.18.1', tag='v0.18.1', submodules=True) + version('0.18.0', tag='v0.18.0', submodules=True) + version('0.17.1', tag='v0.17.1', submodules=True) + version('0.17.0', tag='v0.17.0', submodules=True) + version('0.16.4', tag='v0.16.4', submodules=True) + version('0.16.3', tag='v0.16.3', submodules=True) + version('0.16.2', tag='v0.16.2', submodules=True) + + # Deep learning frameworks + variant('pytorch', default=True, description='Enables PyTorch') + variant('tensorflow', default=False, description='Enables TensorFlow') + variant('mxnet', default=False, description='Enables Apache MXNet') + + # Distributed support + variant('gloo', default=False, description='Enables features related to distributed support') + variant('mpi', default=True, description='Enables MPI build') + + # GPU support + variant('cuda', default=True, description='Enables CUDA build') + variant('gpu_allreduce', default='mpi', + description='Backend to use for GPU_ALLREDUCE', + values=('mpi', 'nccl'), multi=False) # DDL support is deprecated + variant('gpu_allgather', default='mpi', + description='Backend to use for GPU_ALLGATHER', + values=('mpi',), multi=False) + variant('gpu_broadcast', default='mpi', + description='Backend to use for GPU_BROADCAST', + values=('mpi', 'nccl'), multi=False) + + # Required dependencies + depends_on('py-setuptools', type='build') + depends_on('py-cloudpickle', type=('build', 'run')) + depends_on('py-psutil', type=('build', 'run')) + depends_on('py-pyyaml', type=('build', 'run')) + depends_on('py-six', type=('build', 'run')) + + # Deep learning frameworks + depends_on('py-torch@0.4.0:', type=('build', 'run'), when='+pytorch') + depends_on('py-torch+cuda', type=('build', 'run'), when='+pytorch+cuda') + depends_on('py-cffi@1.4.0:', type=('build', 'run'), when='+pytorch') + depends_on('py-tensorflow@1.1.0:', type=('build', 'link', 'run'), when='+tensorflow') + depends_on('mxnet@1.4.0:+python', type=('build', 'link', 'run'), when='+mxnet') + depends_on('mxnet+cuda', type=('build', 'link', 'run'), when='+mxnet+cuda') + + # Distributed support + # There does not appear to be a way to use an external Gloo installation + depends_on('cmake', type='build', when='+gloo') + depends_on('mpi', when='+mpi') + depends_on('mpi', when='gpu_allreduce=mpi') + depends_on('mpi', when='gpu_allgather=mpi') + depends_on('mpi', when='gpu_broadcast=mpi') + + # GPU support + depends_on('cuda', when='+cuda') + depends_on('nccl@2.0:', when='gpu_allreduce=nccl') + depends_on('nccl@2.0:', when='gpu_broadcast=nccl') + + # Test dependencies + depends_on('py-mock', type='test') + depends_on('py-pytest', type='test') + depends_on('py-pytest-forked', type='test') + + conflicts('+gloo', when='platform=darwin', msg='Gloo cannot be compiled on MacOS') + conflicts('~gloo~mpi', msg='One of Gloo or MPI are required for Horovod to run') + conflicts('~pytorch~tensorflow~mxnet', msg='At least one deep learning backend is required') + + def setup_build_environment(self, env): + # Deep learning frameworks + if '~pytorch' in self.spec: + env.set('HOROVOD_WITHOUT_PYTORCH', 1) + if '~tensorflow' in self.spec: + env.set('HOROVOD_WITHOUT_TENSORFLOW', 1) + if '~mxnet' in self.spec: + env.set('HOROVOD_WITHOUT_MXNET', 1) + + # Distributed support + if '~gloo' in self.spec: + env.set('HOROVOD_WITHOUT_GLOO', 1) + if '+mpi' in self.spec: + env.set('HOROVOD_WITH_MPI', 1) + else: + env.set('HOROVOD_WITHOUT_MPI', 1) + + # GPU support + if '+cuda' in self.spec: + env.set('HOROVOD_CUDA_HOME', self.spec['cuda'].prefix) + env.set('HOROVOD_CUDA_INCLUDE', + self.spec['cuda'].headers.directories[0]) + env.set('HOROVOD_CUDA_LIB', self.spec['cuda'].libs.directories[0]) + if '^nccl' in self.spec: + env.set('HOROVOD_NCCL_HOME', self.spec['nccl'].prefix) + env.set('HOROVOD_NCCL_INCLUDE', + self.spec['nccl'].headers.directories[0]) + env.set('HOROVOD_NCCL_LIB', self.spec['nccl'].libs.directories[0]) + env.set('HOROVOD_GPU_ALLREDUCE', + self.spec.variants['gpu_allreduce'].value.upper()) + env.set('HOROVOD_GPU_ALLGATHER', + self.spec.variants['gpu_allgather'].value.upper()) + env.set('HOROVOD_GPU_BROADCAST', + self.spec.variants['gpu_broadcast'].value.upper()) + env.set('HOROVOD_ALLOW_MIXED_GPU_IMPL', 1) diff --git a/var/spack/repos/builtin/packages/py-ipython/package.py b/var/spack/repos/builtin/packages/py-ipython/package.py index d21d272a4b..5bfad819e7 100644 --- a/var/spack/repos/builtin/packages/py-ipython/package.py +++ b/var/spack/repos/builtin/packages/py-ipython/package.py @@ -18,7 +18,8 @@ class PyIpython(PythonPackage): version('3.1.0', sha256='532092d3f06f82b1d8d1e5c37097eae19fcf025f8f6a4b670dd49c3c338d5624') version('2.3.1', sha256='3e98466aa2fe54540bcba9aa6e01a39f40110d67668c297340c4b9514b7cc49c') - depends_on('python@2.7:2.8,3.3:') + depends_on('python@2.7:2.8,3.3:', type=('build', 'run'), when='@:6') + depends_on('python@3.5:', type=('build', 'run'), when='@7:') depends_on('py-backports-shutil-get-terminal-size', type=('build', 'run'), when="^python@:3.2") depends_on('py-pathlib2', type=('build', 'run'), when="^python@:3.3") @@ -32,5 +33,3 @@ class PyIpython(PythonPackage): depends_on('py-pexpect', type=('build', 'run')) depends_on('py-backcall', type=('build', 'run'), when="^python@3.3:") depends_on('py-appnope', type=('build', 'run'), when='platform=darwin') - - conflicts('^python@2.7:2.8', when='@7.0.0:') diff --git a/var/spack/repos/builtin/packages/py-ipywidgets/package.py b/var/spack/repos/builtin/packages/py-ipywidgets/package.py index 5f211e977b..11b0989069 100644 --- a/var/spack/repos/builtin/packages/py-ipywidgets/package.py +++ b/var/spack/repos/builtin/packages/py-ipywidgets/package.py @@ -12,6 +12,7 @@ class PyIpywidgets(PythonPackage): homepage = "https://github.com/ipython/ipywidgets" url = "https://github.com/ipython/ipywidgets/archive/5.2.2.tar.gz" + version('7.5.1', sha256='e4253384886aabbaf10966916a2cf9ffa72551bd045d536fa2a379f14b50cec3') version('7.4.2', sha256='f156165e8a855ed862fdf48e72700bdcd6956d089a2018c5b36d358255d45b2b') version('5.2.2', sha256='d61ab8bb12b90981a3a6010429816d70eaa041e622043207bcb74239b664d4f3') @@ -23,6 +24,11 @@ class PyIpywidgets(PythonPackage): depends_on('py-traitlets@4.2.1:', type=('build', 'run')) depends_on('py-traitlets@4.3.1:', type=('build', 'run'), when='@6:') depends_on('py-nbformat@4.2.0:', type=('build', 'run'), when='@6:') - depends_on('py-widgetsnbextension@3.4.0:3.4.999', type=('build', 'run'), when='@6:') + depends_on('py-widgetsnbextension@1.2.6:1.9', type=('build', 'run'), + when='@5.2.2') + depends_on('py-widgetsnbextension@3.4.0:3.4.999', type=('build', 'run'), + when='@7.4.2') + depends_on('py-widgetsnbextension@3.5.0:3.5.999', type=('build', 'run'), + when='@7.5.1') depends_on('py-mock', type='test', when='^python@2.7:2.8') depends_on('py-nose', type='test') diff --git a/var/spack/repos/builtin/packages/py-jupyter-console/package.py b/var/spack/repos/builtin/packages/py-jupyter-console/package.py index 990c8a4f7b..0f06d1422d 100644 --- a/var/spack/repos/builtin/packages/py-jupyter-console/package.py +++ b/var/spack/repos/builtin/packages/py-jupyter-console/package.py @@ -12,6 +12,7 @@ class PyJupyterConsole(PythonPackage): homepage = "https://github.com/jupyter/jupyter_console" url = "https://github.com/jupyter/jupyter_console/archive/5.0.0.tar.gz" + version('6.1.0', sha256='838c95c99ce52978e1660e7a30dd933dede158e2f4da1bc5fad1a8fad44570b7') version('5.2.0', sha256='371d03aeefcf48967f2f00af4c1709f52d2a688deee33f395c6330e4e8aa171c') version('5.0.0', sha256='e966b2b5bf9a1e8c5bd11a6335bb11f68ec585ea39b801721b2ed9dd964468fa') version('4.1.1', sha256='0bb06a1f878d0c44c2f6f66406a80f949bcd86f3508035500af7dceffb9cc7dc') @@ -19,8 +20,12 @@ class PyJupyterConsole(PythonPackage): version('4.0.3', sha256='b1867a89b693f247e9089a8f367fa4f27af6eac27930cad2966054adfa7b9aa1') version('4.0.2', sha256='116a56763899bbb12c762f865372eb52c08619ef070c237c7f1387e192bfd3df') - depends_on('python@2.7:2.8,3.3:') + depends_on('python@2.7:2.8,3.3:', type=('build', 'run')) + depends_on('python@3.5:', type=('build', 'run'), when='@6:') depends_on('py-jupyter-client', type=('build', 'run')) + depends_on('py-ipython@:5.8.0', type=('build', 'run'), when='@:5') depends_on('py-ipython', type=('build', 'run')) depends_on('py-ipykernel', type=('build', 'run')) depends_on('py-pygments', type=('build', 'run')) + depends_on('py-prompt-toolkit@1.0.0:1.999', type=('build', 'run'), when='@:5') + depends_on('py-prompt-toolkit@2.0.0:2.999,3.0.2:3.0.999', type=('build', 'run'), when='@6:') diff --git a/var/spack/repos/builtin/packages/py-librosa/package.py b/var/spack/repos/builtin/packages/py-librosa/package.py new file mode 100644 index 0000000000..c720c12e63 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-librosa/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 PyLibrosa(PythonPackage): + """A python package for music and audio analysis.""" + + homepage = "http://github.com/librosa/librosa" + url = "https://pypi.io/packages/source/l/librosa/librosa-0.7.2.tar.gz" + + version('0.7.2', sha256='656bbda80e98e6330db1ead79cd084b13a762284834d7603fcf7cf7c0dc65f3c') + + depends_on('py-setuptools', type='build') + depends_on('py-audioread@2.0.0:', type=('build', 'run')) + depends_on('py-numpy@1.15.0:', type=('build', 'run')) + depends_on('py-scipy@1.0.0:', type=('build', 'run')) + depends_on('py-scikit-learn@0.14.0:0.18.999,0.19.1:', type=('build', 'run')) + depends_on('py-joblib@0.12:', type=('build', 'run')) + depends_on('py-decorator@3.0.0:', type=('build', 'run')) + depends_on('py-six@1.3:', type=('build', 'run')) + depends_on('py-resampy@0.2.2:', type=('build', 'run')) + depends_on('py-numba@0.43.0:', type=('build', 'run')) + depends_on('py-soundfile@0.9.0:', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-llvmlite/package.py b/var/spack/repos/builtin/packages/py-llvmlite/package.py index ad5e401963..c225e74354 100644 --- a/var/spack/repos/builtin/packages/py-llvmlite/package.py +++ b/var/spack/repos/builtin/packages/py-llvmlite/package.py @@ -12,6 +12,7 @@ class PyLlvmlite(PythonPackage): homepage = "http://llvmlite.readthedocs.io/en/latest/index.html" url = "https://pypi.io/packages/source/l/llvmlite/llvmlite-0.23.0.tar.gz" + version('0.31.0', sha256='22ab2b9d7ec79fab66ac8b3d2133347de86addc2e2df1b3793e523ac84baa3c8') version('0.29.0', sha256='3adb0d4c9a17ad3dca82c7e88118babd61eeee0ee985ce31fa43ec27aa98c963') version('0.27.1', sha256='48a1c3ae69fd8920cba153bfed8a46ac46474bc706a2100226df4abffe0000ab') version('0.26.0', sha256='13e84fe6ebb0667233074b429fd44955f309dead3161ec89d9169145dbad2ebf') @@ -25,7 +26,11 @@ class PyLlvmlite(PythonPackage): # llvmlite compatibility information taken from https://github.com/numba/llvmlite#compatibility depends_on('llvm@7.0:8.0.99', when='@0.29.0:') - depends_on('llvm@7.0:7.99', when='@0.27.0:0.28.99') - depends_on('llvm@6.0:6.99', when='@0.23.0:0.26.99') - depends_on('llvm@4.0:4.99', when='@0.17.0:0.20.99') + depends_on('llvm@7.0:7.0.99', when='@0.27.0:0.28.99') + depends_on('llvm@6.0:6.0.99', when='@0.23.0:0.26.99') + depends_on('llvm@4.0:4.0.99', when='@0.17.0:0.20.99') depends_on('binutils', type='build') + + def setup_build_environment(self, env): + # Need to set PIC flag since this is linking statically with LLVM + env.set('CXX_FLTO_FLAGS', '-flto {0}'.format(self.compiler.pic_flag)) diff --git a/var/spack/repos/builtin/packages/py-matplotlib/package.py b/var/spack/repos/builtin/packages/py-matplotlib/package.py index eb4f5e3da5..4e5dbf9135 100644 --- a/var/spack/repos/builtin/packages/py-matplotlib/package.py +++ b/var/spack/repos/builtin/packages/py-matplotlib/package.py @@ -9,12 +9,11 @@ from spack import * class PyMatplotlib(PythonPackage): - """matplotlib is a python 2D plotting library which produces publication - quality figures in a variety of hardcopy formats and interactive - environments across platforms.""" + """Matplotlib is a comprehensive library for creating static, animated, + and interactive visualizations in Python.""" - homepage = "https://pypi.python.org/pypi/matplotlib" - url = "https://pypi.io/packages/source/m/matplotlib/matplotlib-3.1.3.tar.gz" + homepage = "https://matplotlib.org/" + url = "https://pypi.io/packages/source/m/matplotlib/matplotlib-3.2.1.tar.gz" maintainers = ['adamjstewart'] @@ -28,6 +27,8 @@ class PyMatplotlib(PythonPackage): 'matplotlib.testing.jpl_units' ] + version('3.2.1', sha256='ffe2f9cdcea1086fc414e82f42271ecf1976700b8edd16ca9d376189c6d93aee') + version('3.2.0', sha256='651d76daf9168250370d4befb09f79875daa2224a9096d97dfc3ed764c842be4') version('3.1.3', sha256='db3121f12fb9b99f105d1413aebaeb3d943f269f3d262b45586d12765866f0c6') version('3.1.2', sha256='8e8e2c2fe3d873108735c6ee9884e6f36f467df4a143136209cff303b183bada') version('3.1.1', sha256='1febd22afe1489b13c6749ea059d392c03261b2950d1d45c17e3aed812080c93') @@ -84,7 +85,7 @@ class PyMatplotlib(PythonPackage): depends_on('py-cycler@0.10:', type=('build', 'run')) depends_on('py-python-dateutil@2.1:', type=('build', 'run')) depends_on('py-kiwisolver@1.0.1:', type=('build', 'run'), when='@2.2.0:') - depends_on('py-pyparsing', type=('build', 'run')) + depends_on('py-pyparsing@2.0.3,2.0.5:2.1.1,2.1.3:2.1.5,2.1.7:', type=('build', 'run')) depends_on('py-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') diff --git a/var/spack/repos/builtin/packages/py-merlin/package.py b/var/spack/repos/builtin/packages/py-merlin/package.py index 7ae05a8014..c4185e9193 100644 --- a/var/spack/repos/builtin/packages/py-merlin/package.py +++ b/var/spack/repos/builtin/packages/py-merlin/package.py @@ -7,15 +7,30 @@ from spack import * class PyMerlin(PythonPackage): - """A custom version of Phillip J. Eby's setuptools.""" + """Merlin Workflow for HPC.""" - homepage = "https://pypi.org/project/merlin/" - url = "https://pypi.io/packages/source/m/merlin/merlin-1.8.tar.gz" + homepage = "https://github.com/LLNL/merlin" + url = "https://pypi.io/packages/source/m/merlin/merlin-1.4.1.tar.gz" + git = "https://github.com/LLNL/merlin.git" - version('1.8', sha256='a1ba9c13c74daa1724dd3820f1c241d7594d487b11f35347606986028c1881fd') + version('1.4.1', sha256='9d515cfdbcde2443892afd92b78dbc5bf2aed2060ed3a336e683188e015bca7c') + version('master', branch='master') + version('develop', branch='develop') - depends_on('python@:2', type=('build', 'run')) + depends_on('python@3.6:', type=('build', 'run')) + depends_on('py-setuptools', type=('build', 'run')) - def test(self): - # Unit tests are missing from tarball - pass + depends_on('py-pytest', type='test') + + depends_on('py-cached-property', type=('build', 'run')) + depends_on('py-celery@4.3.0:+redis', type=('build', 'run')) + depends_on('py-coloredlogs@10.0:', type=('build', 'run')) + depends_on('py-cryptography', type=('build', 'run')) + depends_on('py-importlib-resources', when="^python@3.0:3.6.99", type=('build', 'run')) + depends_on('py-maestrowf@1.1.7dev0:', when="@1.2.0:", type=('build', 'run')) + depends_on('py-maestrowf@1.1.6:', when="@:1.1.99", type=('build', 'run')) + depends_on('py-numpy', type=('build', 'run')) + depends_on('py-parse', type=('build', 'run')) + depends_on('py-psutil@5.1.0:', type=('build', 'run')) + depends_on('py-pyyaml@5.1.2:', type=('build', 'run')) + depends_on('py-tabulate', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-merlinwf/package.py b/var/spack/repos/builtin/packages/py-merlinwf/package.py deleted file mode 100644 index 2082e77997..0000000000 --- a/var/spack/repos/builtin/packages/py-merlinwf/package.py +++ /dev/null @@ -1,38 +0,0 @@ -# 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 PyMerlinwf(PythonPackage): - """Merlin Workflow for HPC.""" - - homepage = "https://github.com/LLNL/merlin" - url = "https://pypi.io/packages/source/m/merlinwf/merlinwf-1.2.3.tar.gz" - git = "https://github.com/LLNL/merlin.git" - - version('1.2.3', sha256='6b13a315f3e8e2894ea05d9cc072639f02eaf71ae0fdbd2bafebd1c20c8470ab') - version('1.1.1', sha256='306055a987e42a79ce348a3f9d71293ed8a9b7f5909c26b6fd233d6a176fff6d') - version('1.0.5', sha256='d66f50eac84ff9d7aa484f2d9655dc60f0352196d333284d81b6623a6f0aa180') - version('master', branch='master') - version('develop', branch='develop') - - depends_on('python@3.6:', type=('build', 'run')) - depends_on('py-setuptools', type=('build', 'run')) - - depends_on('py-pytest', type='test') - - depends_on('py-cached-property', type=('build', 'run')) - depends_on('py-celery@4.3.0:+redis', type=('build', 'run')) - depends_on('py-coloredlogs@10.0:', type=('build', 'run')) - depends_on('py-cryptography', type=('build', 'run')) - depends_on('py-importlib-resources', when="^python@3.0:3.6.99", type=('build', 'run')) - depends_on('py-maestrowf@1.1.7dev0:', when="@1.2.0:", type=('build', 'run')) - depends_on('py-maestrowf@1.1.6:', when="@:1.1.99", type=('build', 'run')) - depends_on('py-numpy', type=('build', 'run')) - depends_on('py-parse', type=('build', 'run')) - depends_on('py-psutil@5.1.0:', type=('build', 'run')) - depends_on('py-pyyaml@5.1.2:', type=('build', 'run')) - depends_on('py-tabulate', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-networkx/package.py b/var/spack/repos/builtin/packages/py-networkx/package.py index da616eefd4..04f82dac03 100644 --- a/var/spack/repos/builtin/packages/py-networkx/package.py +++ b/var/spack/repos/builtin/packages/py-networkx/package.py @@ -9,16 +9,29 @@ from spack import * class PyNetworkx(PythonPackage): """NetworkX is a Python package for the creation, manipulation, and study of the structure, dynamics, and functions of complex networks.""" + homepage = "http://networkx.github.io/" - url = "https://pypi.io/packages/source/n/networkx/networkx-1.11.tar.gz" + url = "https://pypi.io/packages/source/n/networkx/networkx-2.4.tar.gz" - version('2.2', sha256='45e56f7ab6fe81652fb4bc9f44faddb0e9025f469f602df14e3b2551c2ea5c8b', - url='https://pypi.io/packages/source/n/networkx/networkx-2.2.zip') - version('2.1', sha256='64272ca418972b70a196cb15d9c85a5a6041f09a2f32e0d30c0255f25d458bb1', - url='https://pypi.io/packages/source/n/networkx/networkx-2.1.zip') + version('2.4', sha256='f8f4ff0b6f96e4f9b16af6b84622597b5334bf9cae8cf9b2e42e7985d5c95c64') + version('2.3', sha256='8311ddef63cf5c5c5e7c1d0212dd141d9a1fe3f474915281b73597ed5f1d4e3d') + version('2.2', sha256='45e56f7ab6fe81652fb4bc9f44faddb0e9025f469f602df14e3b2551c2ea5c8b') + version('2.1', sha256='64272ca418972b70a196cb15d9c85a5a6041f09a2f32e0d30c0255f25d458bb1') + version('2.0', sha256='cd5ff8f75d92c79237f067e2f0876824645d37f017cfffa5b7c9678cae1454aa') version('1.11', sha256='0d0e70e10dfb47601cbb3425a00e03e2a2e97477be6f80638fef91d54dd1e4b8') version('1.10', sha256='ced4095ab83b7451cec1172183eff419ed32e21397ea4e1971d92a5808ed6fb8') - depends_on('py-decorator', type=('build', 'run')) - depends_on('py-decorator@4.1.0:', type=('build', 'run'), when='@2.1:') + depends_on('python@2.7:', type=('build', 'run')) + depends_on('python@3.5:', type=('build', 'run'), when='@2.3:') depends_on('py-setuptools', type='build') + depends_on('py-decorator@3.4.0:', type=('build', 'run')) + depends_on('py-decorator@4.1.0:', type=('build', 'run'), when='@2.0:') + depends_on('py-decorator@4.3.0:', type=('build', 'run'), when='@2.2:') + + def url_for_version(self, version): + ext = 'tar.gz' + if Version('2.0') <= version <= Version('2.3'): + ext = 'zip' + + url = 'https://pypi.io/packages/source/n/networkx/networkx-{0}.{1}' + return url.format(version, ext) diff --git a/var/spack/repos/builtin/packages/py-numba/package.py b/var/spack/repos/builtin/packages/py-numba/package.py index a6f4175e07..c3c288a4ae 100644 --- a/var/spack/repos/builtin/packages/py-numba/package.py +++ b/var/spack/repos/builtin/packages/py-numba/package.py @@ -12,18 +12,22 @@ class PyNumba(PythonPackage): homepage = "https://numba.pydata.org/" url = "https://pypi.io/packages/source/n/numba/numba-0.35.0.tar.gz" + version('0.48.0', sha256='9d21bc77e67006b5723052840c88cc59248e079a907cc68f1a1a264e1eaba017') version('0.40.1', sha256='52d046c13bcf0de79dbfb936874b7228f141b9b8e3447cc35855e9ad3e12aa33') version('0.35.0', sha256='11564937757605bee590c5758c73cfe9fd6d569726b56d970316a6228971ecc3') + depends_on('python@3.6:', type=('build', 'run'), when='@0.48.0:') depends_on('python@3.3:3.7.9999', type=('build', 'run'), when='@0.40.1:') depends_on('python@3.3:3.6.9999', type=('build', 'run'), when='@:0.35.0') + depends_on('py-numpy@1.15:', type=('build', 'run'), when='@0.48.0:') depends_on('py-numpy@1.10:1.99', type=('build', 'run')) - depends_on('py-setuptools', type='build') + depends_on('py-setuptools', type=('build', 'run')) # Note: As of 1 Nov 2018, 0.25 was the latest version of py-llvmlite. # That's why it was chosen as an upper bound in the following depends_on # calls. If newer versions maintain backwards compatibility, the calls # can be updated accordingly. + depends_on('py-llvmlite@0.31.0:0.32.0', type=('build', 'run'), when='@0.48.0') depends_on('py-llvmlite@0.25:', type=('build', 'run'), when='@0.40.1:') depends_on('py-llvmlite@0.20:0.25', type=('build', 'run'), when='@0.35.1') diff --git a/var/spack/repos/builtin/packages/py-numpy/package.py b/var/spack/repos/builtin/packages/py-numpy/package.py index c685a6fb4c..639ff48d8e 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.18.1.zip" + url = "https://pypi.io/packages/source/n/numpy/numpy-1.18.2.zip" git = "https://github.com/numpy/numpy.git" maintainers = ['adamjstewart'] @@ -30,6 +30,7 @@ class PyNumpy(PythonPackage): ] version('master', branch='master') + version('1.18.2', sha256='e7894793e6e8540dbeac77c87b489e331947813511108ae097f1715c018b8f3d') version('1.18.1', sha256='b6ff59cee96b454516e47e7721098e6ceebef435e3e21ac2d6c3b8b02628eb77') version('1.18.0', sha256='a9d72d9abaf65628f0f31bbb573b7d9304e43b1e6bbae43149c17737a42764c4') version('1.17.5', sha256='16507ba6617f62ae3c6ab1725ae6f550331025d4d9a369b83f6d5a470446c342') diff --git a/var/spack/repos/builtin/packages/py-pomegranate/package.py b/var/spack/repos/builtin/packages/py-pomegranate/package.py new file mode 100644 index 0000000000..91085ba554 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-pomegranate/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 PyPomegranate(PythonPackage): + """Fast, flexible and easy to use probabilistic modelling in Python.""" + + homepage = "https://github.com/jmschrei/pomegranate" + url = "https://pypi.io/packages/source/p/pomegranate/pomegranate-0.12.0.tar.gz" + + version('0.12.0', sha256='8b00c88f7cf9cad8d38ea00ea5274821376fefb217a1128afe6b1fcac54c975a') + + depends_on('py-setuptools', type='build') + depends_on('py-cython@0.22.1:', type='build') + depends_on('py-numpy@1.8.0:', type=('build', 'run')) + depends_on('py-joblib@0.9.0b4:', type=('build', 'run')) + depends_on('py-networkx@2.0:', type=('build', 'run')) + depends_on('py-scipy@0.17.0:', type=('build', 'run')) + depends_on('py-pyyaml', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-pycairo/package.py b/var/spack/repos/builtin/packages/py-pycairo/package.py index 7a373609cd..a8838cfa19 100644 --- a/var/spack/repos/builtin/packages/py-pycairo/package.py +++ b/var/spack/repos/builtin/packages/py-pycairo/package.py @@ -11,14 +11,16 @@ class PyPycairo(PythonPackage): """Pycairo is a set of Python bindings for the cairo graphics library.""" homepage = "https://www.cairographics.org/pycairo/" - url = "https://github.com/pygobject/pycairo/releases/download/v1.17.1/pycairo-1.17.1.tar.gz" - url = "https://files.pythonhosted.org/packages/68/76/340ff847897296b2c8174dfa5a5ec3406e3ed783a2abac918cf326abad86/pycairo-1.17.1.tar.gz" + url = "https://pypi.io/packages/source/p/pycairo/pycairo-1.17.1.tar.gz" + version('1.18.1', sha256='70172e58b6bad7572a3518c26729b074acdde15e6fee6cbab6d3528ad552b786') version('1.17.1', sha256='0f0a35ec923d87bc495f6753b1e540fd046d95db56a35250c44089fbce03b698') - depends_on('cairo@1.2.0:') + depends_on('cairo@1.13.1:') depends_on('pkgconfig', type='build') depends_on('py-setuptools', type='build') + depends_on('python@2.7:2.8,3.3:', when='@:1.17.1', type=('build', 'run')) + depends_on('python@2.7:2.8,3.4:', when='@1.18.1:', type=('build', 'run')) @run_after('install') def post_install(self): diff --git a/var/spack/repos/builtin/packages/py-pycifrw/package.py b/var/spack/repos/builtin/packages/py-pycifrw/package.py new file mode 100644 index 0000000000..c16a3b2894 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-pycifrw/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 PyPycifrw(PythonPackage): + """Python library for interacting with Crystallographic Information + Framework (CIF) files.""" + + homepage = "https://bitbucket.org/jamesrhester/pycifrw/src/development/" + url = "https://pypi.io/packages/source/P/PyCifRW/PyCifRW-4.4.1.tar.gz" + + version('4.4.1', sha256='cef7662f475e0eb78a55c2d55774d474e888c96b0539e5f08550afa902cdc4e1') + + depends_on('py-setuptools', type='build') diff --git a/var/spack/repos/builtin/packages/py-pycosat/package.py b/var/spack/repos/builtin/packages/py-pycosat/package.py new file mode 100644 index 0000000000..ac10891cef --- /dev/null +++ b/var/spack/repos/builtin/packages/py-pycosat/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 PyPycosat(PythonPackage): + """PicoSAT is a popular SAT solver written by Armin Biere in pure C. This + package provides efficient Python bindings to picosat on the C level, i.e. + when importing pycosat, the picosat solver becomes part of the Python + process itself. For ease of deployment, the picosat source (namely + picosat.c and picosat.h) is included in this project. These files have been + extracted from the picosat source (picosat-965.tar.gz).""" + + homepage = "https://github.com/ContinuumIO/pycosat" + url = "https://pypi.io/packages/source/p/pycosat/pycosat-0.6.3.zip" + + version('0.6.3', sha256='4c99874946a7e939bb941bbb019dd2c20e6068e3107c91366e7779c69d70e0ed') diff --git a/var/spack/repos/builtin/packages/py-pyfftw/package.py b/var/spack/repos/builtin/packages/py-pyfftw/package.py index f021516857..41d9db5b74 100644 --- a/var/spack/repos/builtin/packages/py-pyfftw/package.py +++ b/var/spack/repos/builtin/packages/py-pyfftw/package.py @@ -13,11 +13,12 @@ class PyPyfftw(PythonPackage): homepage = "http://hgomersall.github.com/pyFFTW" url = "https://pypi.io/packages/source/p/pyFFTW/pyFFTW-0.10.4.tar.gz" + version('0.12.0', sha256='60988e823ca75808a26fd79d88dbae1de3699e72a293f812aa4534f8a0a58cb0') version('0.11.1', sha256='05ea28dede4c3aaaf5c66f56eb0f71849d0d50f5bc0f53ca0ffa69534af14926') version('0.10.4', sha256='739b436b7c0aeddf99a48749380260364d2dc027cf1d5f63dafb5f50068ede1a') depends_on('fftw') - depends_on('py-setuptools', type='build') - depends_on('py-cython', type='build') - depends_on('py-numpy@1.6:', type=('build', 'run')) - depends_on('py-scipy@0.12.0:', type=('build', 'run')) + depends_on('py-setuptools', type='build') + depends_on('py-cython@0.29:0.999', type='build') + depends_on('py-numpy@1.6:', type=('build', 'run'), when='@:0.10.4') + depends_on('py-numpy@1.10:1.999', type=('build', 'run'), when='@0.11.0:') diff --git a/var/spack/repos/builtin/packages/py-pymc3/package.py b/var/spack/repos/builtin/packages/py-pymc3/package.py new file mode 100644 index 0000000000..5f4fbce9a6 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-pymc3/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 PyPymc3(PythonPackage): + """PyMC3 is a Python package for Bayesian statistical modeling and + Probabilistic Machine Learning focusing on advanced Markov chain Monte + Carlo (MCMC) and variational inference (VI) algorithms. Its flexibility and + extensibility make it applicable to a large suite of problems.""" + + homepage = "http://github.com/pymc-devs/pymc3" + url = "https://pypi.io/packages/source/p/pymc3/pymc3-3.8.tar.gz" + + version('3.8', sha256='1bb2915e4a29877c681ead13932b0b7d276f7f496e9c3f09ba96b977c99caf00') + + depends_on('python@3.5.4:', type=('build', 'run')) + depends_on('py-setuptools', type='build') + depends_on('py-arviz@0.4.1:', type=('build', 'run')) + depends_on('py-theano@1.0.4:', type=('build', 'run')) + depends_on('py-numpy@1.13.0:', type=('build', 'run')) + depends_on('py-scipy@0.18.1:', type=('build', 'run')) + depends_on('py-pandas@0.18.0:', type=('build', 'run')) + depends_on('py-patsy@0.4.0:', type=('build', 'run')) + depends_on('py-tqdm@4.8.4:', type=('build', 'run')) + depends_on('py-h5py@2.7.0:', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-pyqt4/package.py b/var/spack/repos/builtin/packages/py-pyqt4/package.py index c0e3ae1085..d1a90042d9 100644 --- a/var/spack/repos/builtin/packages/py-pyqt4/package.py +++ b/var/spack/repos/builtin/packages/py-pyqt4/package.py @@ -34,6 +34,7 @@ class PyPyqt4(SIPPackage): # Supposedly can also be built with Qt 5 compatibility layer depends_on('qt@:4') depends_on('qscintilla', when='+qsci') + depends_on('py-sip module=PyQt4.sip') # For building Qscintilla python bindings resource(name='qscintilla', @@ -68,7 +69,7 @@ class PyPyqt4(SIPPackage): pydir = join_path(site_packages_dir, 'PyQt4') python = self.spec['python'].command python('configure.py', - '--sip=' + self.prefix.bin.sip, + '--sip=' + self.spec['py-sip'].prefix.bin.sip, '--qsci-incdir=' + self.spec['qscintilla'].prefix.include, '--qsci-libdir=' + self.spec['qscintilla'].prefix.lib, @@ -76,7 +77,10 @@ class PyPyqt4(SIPPackage): '--apidir=' + self.prefix.share.qsci, '--destdir=' + pydir, '--pyqt-sipdir=' + self.prefix.share.sip.PyQt4, - '--sip-incdir=' + python_include_dir, + '--sip-incdir=' + + join_path(self.spec['py-sip'].prefix.include, + 'python' + + str(self.spec['python'].version.up_to(2))), '--stubsdir=' + pydir) # Fix build errors diff --git a/var/spack/repos/builtin/packages/py-pyqt5/package.py b/var/spack/repos/builtin/packages/py-pyqt5/package.py index f70461a1b7..bc37d4dcab 100644 --- a/var/spack/repos/builtin/packages/py-pyqt5/package.py +++ b/var/spack/repos/builtin/packages/py-pyqt5/package.py @@ -26,6 +26,7 @@ class PyPyqt5(SIPPackage): 'PyQt5.QtXmlPatterns' ] + version('5.13.1', sha256='54b7f456341b89eeb3930e786837762ea67f235e886512496c4152ebe106d4af') version('5.13.0', sha256='0cdbffe5135926527b61cc3692dd301cd0328dd87eeaf1313e610787c46faff9') version('5.12.3', sha256='0db0fa37debab147450f9e052286f7a530404e2aaddc438e97a7dcdf56292110') @@ -36,7 +37,8 @@ class PyPyqt5(SIPPackage): depends_on('qt@5:+opengl') depends_on('python@2.6:', type=('build', 'run')) depends_on('py-enum34', type=('build', 'run'), when='^python@:3.3') - + depends_on('py-sip module=PyQt5.sip', type=('build', 'run')) + depends_on('py-sip@:4.19.18 module=PyQt5.sip', type=('build', 'run'), when='@:5.13.0') depends_on('qscintilla', when='+qsci') # For building Qscintilla python bindings @@ -52,7 +54,10 @@ class PyPyqt5(SIPPackage): args = [ '--pyuic5-interpreter', self.spec['python'].command.path, '--sipdir', self.prefix.share.sip.PyQt5, - '--stubsdir', join_path(site_packages_dir, 'PyQt5'), + '--stubsdir', join_path( + self.prefix, + self.spec['python'].package.site_packages_dir, + 'PyQt5'), ] if '+qsci' in self.spec: args.extend(['--qsci-api-destdir', self.prefix.share.qsci]) @@ -66,10 +71,13 @@ class PyPyqt5(SIPPackage): 'spack-resource-qscintilla/QScintilla_gpl-' + str(self.spec['qscintilla'].version), 'Python') with working_dir(rsrc_py_path): - pydir = join_path(site_packages_dir, 'PyQt5') + pydir = join_path( + self.prefix, + self.spec['python'].package.site_packages_dir, + 'PyQt5') python = self.spec['python'].command python('configure.py', '--pyqt=PyQt5', - '--sip=' + self.prefix.bin.sip, + '--sip=' + self.spec['py-sip'].prefix.bin.sip, '--qsci-incdir=' + self.spec['qscintilla'].prefix.include, '--qsci-libdir=' + self.spec['qscintilla'].prefix.lib, @@ -77,7 +85,10 @@ class PyPyqt5(SIPPackage): '--apidir=' + self.prefix.share.qsci, '--destdir=' + pydir, '--pyqt-sipdir=' + self.prefix.share.sip.PyQt5, - '--sip-incdir=' + python_include_dir, + '--sip-incdir=' + + join_path(self.spec['py-sip'].prefix.include, + 'python' + + str(self.spec['python'].version.up_to(2))), '--stubsdir=' + pydir) # Fix build errors diff --git a/var/spack/repos/builtin/packages/py-pythia/package.py b/var/spack/repos/builtin/packages/py-pythia/package.py deleted file mode 100644 index 721d7470fa..0000000000 --- a/var/spack/repos/builtin/packages/py-pythia/package.py +++ /dev/null @@ -1,20 +0,0 @@ -# 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 PyPythia(PythonPackage): - """Pythia refers to the Pyre framework and a collection of packages that - interact with it, such as an interface to the ACIS solid modelling package. - """ - - homepage = "https://geodynamics.org/cig/software/pythia/" - url = "https://geodynamics.org/cig/software/github/pythia/v0.8.1.18/pythia-0.8.1.18.tar.gz" - - version('0.8.1.18', sha256='f6025e6d70046dc71e375eded3d731506f8dd79e2e53b7e1436754439dcdef1e') - - depends_on('python@:2', type=('build', 'run')) - depends_on('py-merlin', type='build') diff --git a/var/spack/repos/builtin/packages/py-python-lzo/package.py b/var/spack/repos/builtin/packages/py-python-lzo/package.py new file mode 100644 index 0000000000..acf60351b7 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-python-lzo/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 PyPythonLzo(PythonPackage): + """This module provides Python bindings for the LZO data compression + library.""" + + homepage = "https://github.com/jd-boyd/python-lzo" + url = "https://pypi.io/packages/source/p/python-lzo/python-lzo-1.12.tar.gz" + + version('1.12', sha256='97a8e46825e8f1abd84c2a3372bc09adae9745a5be5d3af2692cd850dac35345') + + depends_on('lzo') diff --git a/var/spack/repos/builtin/packages/py-qtconsole/package.py b/var/spack/repos/builtin/packages/py-qtconsole/package.py index 9fd8475662..046e04c2e5 100644 --- a/var/spack/repos/builtin/packages/py-qtconsole/package.py +++ b/var/spack/repos/builtin/packages/py-qtconsole/package.py @@ -17,7 +17,7 @@ class PyQtconsole(PythonPackage): variant('doc', default=False, description='Build documentation') - depends_on('python@2.7:2.8,3.3:', type=('build', 'run')) + depends_on('python@2.7:2.8,3.3:', type=('build', 'run')) depends_on('py-ipykernel@4.1:', type=('build', 'run')) depends_on('py-jupyter-client@4.1:', type=('build', 'run')) depends_on('py-jupyter-core', type=('build', 'run')) @@ -25,5 +25,6 @@ class PyQtconsole(PythonPackage): depends_on('py-traitlets', type=('build', 'run')) depends_on('py-ipython-genutils', type=('build', 'run'), when='@4.5.1:') depends_on('py-sphinx@1.3:', type=('build', 'run'), when='+docs') + depends_on('py-pyqt5', type='run') depends_on('py-mock', type='test', when='^python@2.7:2.8') diff --git a/var/spack/repos/builtin/packages/py-resampy/package.py b/var/spack/repos/builtin/packages/py-resampy/package.py new file mode 100644 index 0000000000..35249c8acc --- /dev/null +++ b/var/spack/repos/builtin/packages/py-resampy/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 PyResampy(PythonPackage): + """Efficient sample rate conversion in python""" + + homepage = "https://github.com/bmcfee/resampy" + url = "https://pypi.io/packages/source/r/resampy/resampy-0.2.2.tar.gz" + + version('0.2.2', sha256='62af020d8a6674d8117f62320ce9470437bb1d738a5d06cd55591b69b463929e') + + depends_on('py-setuptools', type='build') + depends_on('py-numpy@1.10:', type=('build', 'run')) + depends_on('py-scipy@0.13:', type=('build', 'run')) + depends_on('py-numba@0.32:', type=('build', 'run')) + depends_on('py-six@1.3:', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-resultsfile/package.py b/var/spack/repos/builtin/packages/py-resultsfile/package.py new file mode 100644 index 0000000000..6f00a3ab1d --- /dev/null +++ b/var/spack/repos/builtin/packages/py-resultsfile/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 PyResultsfile(PythonPackage): + """Python module to read output files of quantum chemistry programs""" + + homepage = "https://gitlab.com/scemama/resultsFile" + url = "https://gitlab.com/scemama/resultsFile/-/archive/v1.0/resultsFile-v1.0.tar.gz" + git = "https://gitlab.com/scemama/resultsFile.git" + + maintainers = ['scemama'] + + version('2.0', sha256='2a34208254e4bea155695690437f6a59bf5f7b0ddb421d6c1a2d377510f018f7') + version('1.0', sha256='e029054b2727131da9684fa2ec9fb8b6a3225dc7f648216a9390267b2d5d60c3') + + depends_on('python@2.7:2.8.999', type=('build', 'run'), when='@1.0:1.999') + depends_on('python@3:', type=('build', 'run'), when='@2.0:') diff --git a/var/spack/repos/builtin/packages/py-rseqc/package.py b/var/spack/repos/builtin/packages/py-rseqc/package.py index 1b3ac0a88a..fa9fc581b4 100644 --- a/var/spack/repos/builtin/packages/py-rseqc/package.py +++ b/var/spack/repos/builtin/packages/py-rseqc/package.py @@ -14,10 +14,16 @@ class PyRseqc(PythonPackage): homepage = "http://rseqc.sourceforge.net" url = "https://pypi.io/packages/source/R/RSeQC/RSeQC-2.6.4.tar.gz" + version('3.0.1', sha256='d5f4cb2c24a7348929f5c4947d84c5869e8cd2cba5ba5248d991ebb37c4c6b3d') version('2.6.4', sha256='e11df661bda1c24fc950f0bce06f586a68ab5f4a2c356f43e4a0dfdc1e184315') + depends_on('python@2.7:2.8', type=('build', 'run'), when='@:2') + depends_on('python@3.5:', type=('build', 'run'), when='@3:') depends_on('py-setuptools', type='build') - depends_on('py-bx-python', type=('build', 'run')) - depends_on('py-numpy', type=('build', 'run')) - depends_on('py-pysam', type=('build', 'run')) - depends_on('r', type=('build', 'run')) + depends_on('py-nose@0.10.4:', type='build') + depends_on('py-cython@0.17:', type=('build', 'run')) + depends_on('py-bx-python', type=('build', 'run')) + depends_on('py-numpy', type=('build', 'run')) + depends_on('py-pysam', type=('build', 'run')) + depends_on('py-pybigwig', type=('build', 'run'), when='@3:') + depends_on('r', type='run') diff --git a/var/spack/repos/builtin/packages/py-sentencepiece/package.py b/var/spack/repos/builtin/packages/py-sentencepiece/package.py new file mode 100644 index 0000000000..9d9552a47b --- /dev/null +++ b/var/spack/repos/builtin/packages/py-sentencepiece/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 PySentencepiece(PythonPackage): + """Unsupervised text tokenizer for Neural Network-based text generation. + + These are the Python bindings.""" + + homepage = "https://github.com/google/sentencepiece/blob/master/python/README.md" + url = "https://github.com/google/sentencepiece/archive/v0.1.85.tar.gz" + + maintainers = ['adamjstewart'] + + version('0.1.85', sha256='dd4956287a1b6af3cbdbbd499b7227a859a4e3f41c9882de5e6bdd929e219ae6') + + depends_on('sentencepiece') + depends_on('sentencepiece@0.1.85', when='@0.1.85') + depends_on('pkgconfig', type='build') + depends_on('py-setuptools', type='build') + + build_directory = 'python' diff --git a/var/spack/repos/builtin/packages/py-setproctitle/package.py b/var/spack/repos/builtin/packages/py-setproctitle/package.py new file mode 100644 index 0000000000..972e595cad --- /dev/null +++ b/var/spack/repos/builtin/packages/py-setproctitle/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 PySetproctitle(PythonPackage): + """The setproctitle module allows a process to change its title (as + displayed by system tools such as ps and top).""" + + homepage = "https://github.com/dvarrazzo/py-setproctitle" + url = "https://pypi.io/packages/source/s/setproctitle/setproctitle-1.1.10.tar.gz" + + version('1.1.10', sha256='6283b7a58477dd8478fbb9e76defb37968ee4ba47b05ec1c053cb39638bd7398') + + depends_on('py-setuptools', type='build') diff --git a/var/spack/repos/builtin/packages/py-simplejson/package.py b/var/spack/repos/builtin/packages/py-simplejson/package.py index ea8799b75a..7206102d2e 100644 --- a/var/spack/repos/builtin/packages/py-simplejson/package.py +++ b/var/spack/repos/builtin/packages/py-simplejson/package.py @@ -13,6 +13,7 @@ class PySimplejson(PythonPackage): homepage = "https://github.com/simplejson/simplejson" url = "https://pypi.io/packages/source/s/simplejson/simplejson-3.10.0.tar.gz" + version('3.16.0', sha256='b1f329139ba647a9548aa05fb95d046b4a677643070dc2afc05fa2e975d09ca5') version('3.10.0', sha256='953be622e88323c6f43fad61ffd05bebe73b9fd9863a46d68b052d2aa7d71ce2') version('3.9.0', sha256='e9abeee37424f4bfcd27d001d943582fb8c729ffc0b74b72bd0e9b626ed0d1b6') version('3.8.2', sha256='d58439c548433adcda98e695be53e526ba940a4b9c44fb9a05d92cd495cdd47f') diff --git a/var/spack/repos/builtin/packages/py-sip/package.py b/var/spack/repos/builtin/packages/py-sip/package.py index 09c6b743b1..d454f05740 100644 --- a/var/spack/repos/builtin/packages/py-sip/package.py +++ b/var/spack/repos/builtin/packages/py-sip/package.py @@ -4,6 +4,7 @@ # SPDX-License-Identifier: (Apache-2.0 OR MIT) from spack import * +import os class PySip(Package): @@ -16,6 +17,9 @@ class PySip(Package): hg = "https://www.riverbankcomputing.com/hg/sip" version('develop', hg=hg) # wasn't actually able to clone this + version('4.19.21', sha256='6af9979ab41590e8311b8cc94356718429ef96ba0e3592bdd630da01211200ae') + version('4.19.20', sha256='04cc2f87ac97e8718d8e1ef036e3ec26050ab44c21f9277618d5b67432fcbfd6') + version('4.19.19', sha256='5436b61a78f48c7e8078e93a6b59453ad33780f80c644e5f3af39f94be1ede44') version('4.19.18', sha256='c0bd863800ed9b15dcad477c4017cdb73fa805c25908b0240564add74d697e1e') version('4.19.15', sha256='2b5c0b2c0266b467b365c21376d50dde61a3236722ab87ff1e8dacec283eb610') version('4.19.13', sha256='e353a7056599bf5fbd5d3ff9842a6ab2ea3cf4e0304a0f925ec5862907c0d15e') @@ -53,3 +57,14 @@ class PySip(Package): def install(self, spec, prefix): make('install') + + @run_after('install') + def extend_path_setup(self): + # See github issue #14121 and PR #15297 + module = self.spec.variants['module'].value + if module != 'sip': + module = module.split('.')[0] + with working_dir(site_packages_dir): + with open(os.path.join(module, '__init__.py'), 'w') as f: + f.write('from pkgutil import extend_path\n') + f.write('__path__ = extend_path(__path__, __name__)\n') diff --git a/var/spack/repos/builtin/packages/py-soundfile/package.py b/var/spack/repos/builtin/packages/py-soundfile/package.py new file mode 100644 index 0000000000..aa485deca3 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-soundfile/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 PySoundfile(PythonPackage): + """SoundFile is an audio library based on libsndfile, CFFI and NumPy.""" + + homepage = "https://github.com/bastibe/PySoundFile" + url = "https://pypi.io/packages/source/S/SoundFile/SoundFile-0.10.3.post1.tar.gz" + + version('0.10.3.post1', sha256='490cff42650733d1832728b937fe99fa1802896f5ef4d61bcf78cf7ebecb107b') + + variant('numpy', default=True, + description='Support for processing audio data as numpy arrays') + + depends_on('py-setuptools', type='build') + depends_on('py-cffi@1.0:', type=('build', 'run')) + depends_on('py-numpy', type=('build', 'run'), when='+numpy') + depends_on('libsndfile', type='run') diff --git a/var/spack/repos/builtin/packages/py-tfdlpack/package.py b/var/spack/repos/builtin/packages/py-tfdlpack/package.py new file mode 100644 index 0000000000..678cc2d6db --- /dev/null +++ b/var/spack/repos/builtin/packages/py-tfdlpack/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) + + +class PyTfdlpack(CMakePackage): + """Tensorflow plugin for DLPack.""" + + homepage = "https://github.com/VoVAllen/tf-dlpack" + git = "https://github.com/VoVAllen/tf-dlpack.git" + + maintainers = ['adamjstewart'] + + version('master', branch='master', submodules=True) + version('0.1.1', tag='v0.1.1', submodules=True) + + variant('cuda', default=True, description='Build with CUDA support') + + depends_on('cmake@3.5:', type='build') + depends_on('cuda', when='+cuda') + + # Python dependencies + extends('python') + depends_on('py-setuptools', type='build') + depends_on('py-tensorflow', type=('build', 'run')) + + def cmake_args(self): + args = ['-DPYTHON_EXECUTABLE=' + self.spec['python'].command.path] + + if '+cuda' in self.spec: + args.append('-DUSE_CUDA=ON') + else: + args.append('-DUSE_CUDA=OFF') + + return args + + def install(self, spec, prefix): + with working_dir('python'): + setup_py('install', '--prefix=' + prefix, + '--single-version-externally-managed', '--root=/') + + def setup_run_environment(self, env): + # Prevent TensorFlow from taking over the whole GPU + env.set('TF_FORCE_GPU_ALLOW_GROWTH', 'true') diff --git a/var/spack/repos/builtin/packages/py-torch/package.py b/var/spack/repos/builtin/packages/py-torch/package.py index e40bc840fe..c0be1176e4 100644 --- a/var/spack/repos/builtin/packages/py-torch/package.py +++ b/var/spack/repos/builtin/packages/py-torch/package.py @@ -105,22 +105,22 @@ class PyTorch(PythonPackage, CudaPackage): cuda_arch_conflict = ('This version of Torch/Caffe2 only supports compute ' 'capabilities ') - conflicts('cuda_arch=none', when='+cuda+caffe2', + conflicts('cuda_arch=none', when='+cuda', msg='Must specify CUDA compute capabilities of your GPU, see ' 'https://developer.nvidia.com/cuda-gpus') - conflicts('cuda_arch=52', when='@1.3.0:+cuda+caffe2', + conflicts('cuda_arch=52', when='@1.3.0:+cuda', msg=cuda_arch_conflict + '>=5.3') - conflicts('cuda_arch=50', when='@1.3.0:+cuda+caffe2', + conflicts('cuda_arch=50', when='@1.3.0:+cuda', msg=cuda_arch_conflict + '>=5.3') - conflicts('cuda_arch=35', when='@1.3.0:+cuda+caffe2', + conflicts('cuda_arch=35', when='@1.3.0:+cuda', msg=cuda_arch_conflict + '>=5.3') - conflicts('cuda_arch=32', when='@1.3.0:+cuda+caffe2', + conflicts('cuda_arch=32', when='@1.3.0:+cuda', msg=cuda_arch_conflict + '>=5.3') - conflicts('cuda_arch=30', when='@1.3.0:+cuda+caffe2', + conflicts('cuda_arch=30', when='@1.3.0:+cuda', msg=cuda_arch_conflict + '>=5.3') - conflicts('cuda_arch=30', when='@1.2.0:+cuda+caffe2', + conflicts('cuda_arch=30', when='@1.2.0:+cuda', msg=cuda_arch_conflict + '>=3.2') - conflicts('cuda_arch=20', when='@1.0.0:+cuda+caffe2', + conflicts('cuda_arch=20', when='@1.0.0:+cuda', msg=cuda_arch_conflict + '>=3.0') # Required dependencies diff --git a/var/spack/repos/builtin/packages/py-torchtext/package.py b/var/spack/repos/builtin/packages/py-torchtext/package.py new file mode 100644 index 0000000000..6bcae3d1e9 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-torchtext/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 PyTorchtext(PythonPackage): + """Text utilities and datasets for PyTorch.""" + + homepage = "https://github.com/pytorch/text" + url = "https://pypi.io/packages/source/t/torchtext/torchtext-0.5.0.tar.gz" + + maintainers = ['adamjstewart'] + + version('0.5.0', sha256='7f22e24e9b939fff56b9118c78dc07aafec8dcc67164de15b9b5ed339e4179c6') + + depends_on('python@2.7:2.8,3.5:', type=('build', 'run')) + depends_on('py-setuptools', type='build') + depends_on('py-tqdm', type=('build', 'run')) + depends_on('py-requests', type=('build', 'run')) + depends_on('py-torch@0.4.0:', type=('build', 'run')) + depends_on('py-numpy', type=('build', 'run')) + depends_on('py-six', type=('build', 'run')) + depends_on('py-sentencepiece', type=('build', 'run')) diff --git a/var/spack/repos/builtin/packages/py-tuiview/package.py b/var/spack/repos/builtin/packages/py-tuiview/package.py index 95090a2694..9757dd2343 100644 --- a/var/spack/repos/builtin/packages/py-tuiview/package.py +++ b/var/spack/repos/builtin/packages/py-tuiview/package.py @@ -11,11 +11,13 @@ class PyTuiview(PythonPackage): table manipulation abilities. """ - homepage = "https://bitbucket.org/chchrsc/tuiview" - url = "https://bitbucket.org/chchrsc/tuiview/get/tuiview-1.1.7.tar.gz" + homepage = "https://github.com/ubarsc/tuiview" + url = "https://github.com/ubarsc/tuiview/releases/download/tuiview-1.2.6/tuiview-1.2.6.tar.gz" + version('1.2.6', sha256='61b136fa31c949d7a7a4dbf8562e6fc677d5b1845b152ec39e337f4eb2e91662') version('1.1.7', sha256='fbf0bf29cc775357dad4f8a2f0c2ffa98bbf69d603a96353e75b321adef67573') - depends_on("py-pyqt4", type=('build', 'run')) + depends_on("py-pyqt4", type=('build', 'run'), when='@:1.1.99') + depends_on("py-pyqt5", type=('build', 'run'), when='@1.2.0:') depends_on("py-numpy", type=('build', 'run')) - depends_on("gdal") + depends_on("gdal@1.11.0:+python") diff --git a/var/spack/repos/builtin/packages/py-versioneer/package.py b/var/spack/repos/builtin/packages/py-versioneer/package.py new file mode 100644 index 0000000000..d98ec6524c --- /dev/null +++ b/var/spack/repos/builtin/packages/py-versioneer/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 PyVersioneer(PythonPackage): + """Versioneer is a tool to automatically update version strings by + asking your version-control system about the current tree.""" + + homepage = "https://github.com/warner/python-versioneer" + url = "https://github.com/warner/python-versioneer/archive/0.18.tar.gz" + git = "https://github.com/warner/python-versioneer.git" + + maintainers = ['scemama'] + + version('0.18', sha256='cf895b67f5bc62d61c4837458069ded8f66b4e5764c19f7253c51ee27e8b3a99') + + depends_on('py-setuptools', type='build') diff --git a/var/spack/repos/builtin/packages/py-widgetsnbextension/package.py b/var/spack/repos/builtin/packages/py-widgetsnbextension/package.py index aa6dbb31c2..347641a8da 100644 --- a/var/spack/repos/builtin/packages/py-widgetsnbextension/package.py +++ b/var/spack/repos/builtin/packages/py-widgetsnbextension/package.py @@ -14,6 +14,7 @@ class PyWidgetsnbextension(PythonPackage): version('3.5.1', sha256='079f87d87270bce047512400efd70238820751a11d2d8cb137a5a5bdbaf255c7') version('3.4.2', sha256='fa618be8435447a017fd1bf2c7ae922d0428056cfc7449f7a8641edf76b48265') + version('3.4.0', sha256='c9d6e426a1d79d132b57b93b368feba2c66eb7b0fd34bdb901716b4b88e94497') version('3.3.0', sha256='c5280a62d293735cdadc7b8884e2affcfb0488420ee09963577f042359726392') version('1.2.6', sha256='c618cfb32978c9517caf0b4ef3aec312f8dd138577745e7b0d4abfcc7315ce51') diff --git a/var/spack/repos/builtin/packages/python/package.py b/var/spack/repos/builtin/packages/python/package.py index 978548163b..b35584d2c9 100644 --- a/var/spack/repos/builtin/packages/python/package.py +++ b/var/spack/repos/builtin/packages/python/package.py @@ -31,6 +31,7 @@ class Python(AutotoolsPackage): maintainers = ['adamjstewart'] + version('3.8.2', sha256='e634a7a74776c2b89516b2e013dda1728c89c8149b9863b8cea21946daf9d561') version('3.8.1', sha256='c7cfa39a43b994621b245e029769e9126caa2a93571cee2e743b213cceac35fb') version('3.8.0', sha256='f1069ad3cae8e7ec467aa98a6565a62a48ef196cb8f1455a245a08db5e1792df') version('3.7.6', sha256='aeee681c235ad336af116f08ab6563361a0c81c537072c1b309d6e4050aa2114', preferred=True) diff --git a/var/spack/repos/builtin/packages/qgis/package.py b/var/spack/repos/builtin/packages/qgis/package.py new file mode 100644 index 0000000000..4a6d6a3583 --- /dev/null +++ b/var/spack/repos/builtin/packages/qgis/package.py @@ -0,0 +1,217 @@ +# 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 Qgis(CMakePackage): + """QGIS is a free and open-source cross-platform desktop geographic + information system application that supports viewing, editing, and + analysis of geospatial data. + """ + + homepage = "https://qgis.org" + url = "https://qgis.org/downloads/qgis-3.8.1.tar.bz2" + + maintainers = ['adamjstewart', 'Sinan81'] + + version('3.12.0', sha256='19e9c185dfe88cad7ee6e0dcf5ab7b0bbfe1672307868a53bf771e0c8f9d5e9c') + # Prefer latest long term release + version('3.10.3', sha256='0869704df9120dd642996ff1ed50213ac8247650aa0640b62f8c9c581c05d7a7', preferred=True) + version('3.10.2', sha256='381cb01a8ac2f5379a915b124e9c830d727d2c67775ec49609c7153fe765a6f7') + version('3.10.1', sha256='466ac9fad91f266cf3b9d148f58e2adebd5b9fcfc03e6730eb72251e6c34c8ab') + version('3.10.0', sha256='25eb1c41d9fb922ffa337a720dfdceee43cf2d38409923f087c2010c9742f012') + version('3.8.3', sha256='3cca3e8483bc158cb8e972eb819a55a5734ba70f2c7da28ebc485864aafb17bd') + version('3.8.2', sha256='4d682f7625465a5b3596b3f7e83eddad86a60384fead9c81a6870704baffaddd') + version('3.8.1', sha256='d65c8e1c7471bba46f5017f261ebbef81dffb5843a24f0e7713a00f70785ea99') + version('3.4.15', sha256='81c93b72adbea41bd765294c0cdb09476a632d8b3f90101abc409ca9ea7fb04d') + version('3.4.14', sha256='e138716c7ea84011d3b28fb9c75e6a79322fb66f532246393571906a595d7261') + + variant('3d', default=False, description='Build QGIS 3D library') + variant('analysis', default=True, description='Build QGIS analysis library') + variant('apidoc', default=False, description='Build QGIS API doxygen documentation') + variant('astyle', default=False, description='Contribute QGIS with astyle') + variant('bindings', default=True, description='Build Python bindings') + variant('clang_tidy', default=False, description='Use Clang tidy') + variant('core', default=True, description='Build QGIS Core') + variant('custom_widgets', default=False, description='Build QGIS custom widgets for Qt Designer') + variant('desktop', default=True, description='Build QGIS desktop') + variant('georeferencer', default=True, description='Build GeoReferencer plugin') + variant('globe', default=False, description='Build Globe plugin') + variant('grass7', default=False, description='Build with GRASS providers and plugin') + variant('gui', default=True, description='Build QGIS GUI library and everything built on top of it') + variant('internal_mdal', default=True, description='Build with MDAl support') + variant('internal_o2', default=True, description='Download and locally include source of o2 library') + variant('oauth2_plugin', default=True, description='Build OAuth2 authentication method plugin') + variant('oracle', default=False, description='Build with Oracle support') + variant('postgresql', default=True, description='Build with PostreSQL support') + variant('py_compile', default=False, description='Byte compile Python modules in staged or installed locations') + variant('qsciapi', default=True, description='Generate PyQGIS QScintilla2 API') + variant('qspatialite', default=False, description='Build QSpatialite sql driver') + variant('qt5serialport', default=True, description='Try Qt5SerialPort for GPS positioning') + variant('qtmobility', default=False, description='Build QtMobility related code') + variant('qtwebkit', default=False, description='Enable QtWebkit Support') + variant('quick', default=False, description='Build QGIS Quick library') + variant('qwtpolar', default=False, description='Build QwtPolar') + variant('server', default=False, description='Build QGIS server') + variant('staged_plugins', default=True, description='Stage-install core Python plugins to run from build directory') + variant('thread_local', default=True, description='Use std::thread_local') + variant('txt2tags', default=False, description='Generate PDF for txt2tags documentation') + + # Ref. for dependencies: + # http://htmlpreview.github.io/?https://raw.github.com/qgis/QGIS/master/doc/INSTALL.html + # https://github.com/qgis/QGIS/blob/master/INSTALL + depends_on('qt+dbus') + depends_on('proj@4.4.0:') + depends_on('geos@3.4.0:') + depends_on('sqlite@3.0.0: +column_metadata') + depends_on('libspatialite@4.2.0:') + depends_on('libspatialindex') + depends_on('gdal@2.1.0: +python', type=('build', 'link', 'run')) + depends_on('qwt@5:') + depends_on('qwtpolar') + depends_on('expat@1.95:') + depends_on('qca@2.2.1') + depends_on('py-pyqt4 +qsci', when='@2') + depends_on('py-pyqt5@5.3: +qsci', when='@3') + depends_on('qscintilla') + depends_on('qjson') + depends_on('py-requests', type=('build', 'run')) # TODO: is build dependency necessary? + depends_on('py-psycopg2', type=('build', 'run')) # TODO: is build dependency necessary? + depends_on('qtkeychain@0.5:', when='@3:') + depends_on('libzip') + depends_on('exiv2') + depends_on('python@3.0.0:', type=('build', 'run'), when='@3') + depends_on('python@2.7:2.8', type=('build', 'run'), when='@2') + + # Runtime python dependencies, not mentioned in install instructions + depends_on('py-pyyaml', type='run') + depends_on('py-owslib', type='run') + depends_on('py-jinja2', type='run') + depends_on('py-pygments', type='run') + + # optionals + depends_on('postgresql@8:', when='+postgresql') # for PostGIS support + depends_on('gsl', when='+georeferencer') # for georeferencer + depends_on('grass@7.0.0', type=('build', 'link', 'run'), when='+grass7') # for georeferencer + + # the below dependencies are shown in cmake config + depends_on('hdf5') + depends_on('netcdf-c') + + # build + depends_on('cmake@3.0.0:', type='build') + depends_on('flex@2.5.6:', type='build') + depends_on('bison@2.4:', type='build') + depends_on('pkg-config', type='build') + + # Take care of conflicts using depends_on + depends_on('proj@5:', when='@3.8.2:') + depends_on('qt@5.9.0:5.12.99', when='@3.8') + depends_on('qt@5.9.0:', when='@3.10.0:') + depends_on('qtkeychain@:1.5.99', when='^qt@4') + depends_on('qt@:4', when='@2') + + patch('pyqt5.patch', when='^qt@5') + + def cmake_args(self): + spec = self.spec + args = [] + # qtwebkit module was removed from qt as of version 5.6 + # needs to be compiled as a separate package + args.extend([ + '-DUSE_OPENCL=OFF', + # cmake couldn't determine the following paths + '-DEXPAT_LIBRARY={0}'.format(self.spec['expat'].libs), + '-DPOSTGRESQL_PREFIX={0}'.format( + self.spec['postgresql'].prefix), + '-DQSCINTILLA_INCLUDE_DIR=' + + self.spec['qscintilla'].prefix.include, + '-DQSCINTILLA_LIBRARY=' + self.spec['qscintilla'].prefix + + '/lib/libqscintilla2_qt5.so', + '-DLIBZIP_INCLUDE_DIR=' + + self.spec['libzip'].prefix.include, + '-DLIBZIP_CONF_INCLUDE_DIR=' + + self.spec['libzip'].prefix.lib.libzip.include, + '-DGDAL_CONFIG_PREFER_PATH=' + + self.spec['gdal'].prefix.bin, + '-DGEOS_CONFIG_PREFER_PATH=' + + self.spec['geos'].prefix.bin, + '-DGSL_CONFIG_PREFER_PATH=' + self.spec['gsl'].prefix.bin, + '-DPOSTGRES_CONFIG_PREFER_PATH=' + + self.spec['postgresql'].prefix.bin + ]) + + args.extend([ + '-DWITH_3D={0}'.format( + 'TRUE' if '+3d' in spec else 'FALSE'), + '-DWITH_ANALYSIS={0}'.format( + 'TRUE' if '+analysis' in spec else 'FALSE'), + '-DWITH_APIDOC={0}'.format( + 'TRUE' if '+apidoc' in spec else 'FALSE'), + '-DWITH_ASTYLE={0}'.format( + 'TRUE' if '+astyle' in spec else 'FALSE'), + '-DWITH_BINDINGS={0}'.format( + 'TRUE' if '+bindings' in spec else 'FALSE'), + '-DWITH_CLANG_TIDY={0}'.format( + 'TRUE' if '+clang_tidy' in spec else 'FALSE'), + '-DWITH_CORE={0}'.format( + 'TRUE' if '+core' in spec else 'FALSE'), + '-DWITH_CUSTOM_WIDGETS={0}'.format( + 'TRUE' if '+custom_widgets' in spec else 'FALSE'), + '-DWITH_DESKTOP={0}'.format( + 'TRUE' if '+desktop' in spec else 'FALSE'), + '-DWITH_GEOREFERENCER={0}'.format( + 'TRUE' if '+georeferencer' in spec else 'FALSE'), + '-DWITH_GLOBE={0}'.format( + 'TRUE' if '+globe' in spec else 'FALSE'), + '-DWITH_GUI={0}'.format( + 'TRUE' if '+gui' in spec else 'FALSE'), + '-DWITH_INTERNAL_MDAL={0}'.format( + 'TRUE' if '+internal_mdal' in spec else 'FALSE'), + '-DWITH_INTERNAL_O2={0}'.format( + 'ON' if '+internal_o2' in spec else 'OFF'), + '-DWITH_OAUTH2_PLUGIN={0}'.format( + 'TRUE' if '+oauth2_plugin' in spec else 'FALSE'), + '-DWITH_ORACLE={0}'.format( + 'TRUE' if '+oracle' in spec else 'FALSE'), + '-DWITH_POSTGRESQL={0}'.format( + 'TRUE' if '+postgresql' in spec else 'FALSE'), + '-DWITH_PY_COMPILE={0}'.format( + 'TRUE' if '+py_compile' in spec else 'FALSE'), + '-DWITH_QSCIAPI={0}'.format( + 'TRUE' if '+qsciapi' in spec else 'FALSE'), + '-DWITH_QSPATIALITE={0}'.format( + 'ON' if '+qspatialite' in spec else 'OFF'), + '-DWITH_QT5SERIALPORT={0}'.format( + 'TRUE' if '+qt5serialport' in spec else 'FALSE'), + '-DWITH_QTMOBILITY={0}'.format( + 'TRUE' if '+qtmobility' in spec else 'FALSE'), + '-DWITH_QTWEBKIT={0}'.format( + 'ON' if '+qtwebkit' in spec else 'OFF'), + '-DWITH_QUICK={0}'.format( + 'TRUE' if '+quick' in spec else 'FALSE'), + '-DWITH_QWTPOLAR={0}'.format( + 'TRUE' if '+qwtpolar' in spec else 'FALSE'), + '-DWITH_SERVER={0}'.format( + 'TRUE' if '+server' in spec else 'FALSE'), + '-DWITH_STAGED_PLUGINS={0}'.format( + 'TRUE' if '+staged_plugins' in spec else 'FALSE'), + '-DWITH_THREAD_LOCAL={0}'.format( + 'TRUE' if '+thread_local' in spec else 'FALSE'), + '-DWITH_TXT2TAGS_PDF={0}'.format( + 'TRUE' if '+txt2tags_pdf' in spec else 'FALSE'), + ]) + + if '+grass7' in self.spec: + args.extend([ + '-DWITH_GRASS7=ON', + '-DGRASS_PREFIX7={0}'.format(self.spec['grass'].prefix), + '-DGRASS_INCLUDE_DIR7={0}'.format( + self.spec['grass'].prefix.include) + ]) + else: + args.append('-DWITH_GRASS7=OFF') + return args diff --git a/var/spack/repos/builtin/packages/qgis/pyqt5.patch b/var/spack/repos/builtin/packages/qgis/pyqt5.patch new file mode 100644 index 0000000000..1e6b7e6149 --- /dev/null +++ b/var/spack/repos/builtin/packages/qgis/pyqt5.patch @@ -0,0 +1,25 @@ +diff --git a/cmake/FindPyQt5.py b/cmake/FindPyQt5.py +index 6a55a0f801..d6eda1fa1e 100644 +--- a/cmake/FindPyQt5.py ++++ b/cmake/FindPyQt5.py +@@ -40,6 +40,7 @@ except ImportError: + import sys + cfg = sipconfig.Configuration() + sip_dir = cfg.default_sip_dir ++ pyqt_prefix = os.sep.join(PyQt5.QtCore.__file__.split(os.sep)[0:-5]) + if sys.platform.startswith('freebsd'): + py_version = str(sys.version_info.major) + str(sys.version_info.minor) + sip_dir = sip_dir.replace(py_version, '') +@@ -53,9 +54,9 @@ except ImportError: + 'pyqt_version': PyQt5.QtCore.PYQT_VERSION, + 'pyqt_version_str': PyQt5.QtCore.PYQT_VERSION_STR, + 'pyqt_sip_flags': PyQt5.QtCore.PYQT_CONFIGURATION['sip_flags'], +- 'pyqt_mod_dir': os.path.join(cfg.default_mod_dir, "PyQt5"), +- 'pyqt_sip_dir': sip_dir, +- 'pyqt_bin_dir': cfg.default_bin_dir, ++ 'pyqt_mod_dir': os.path.dirname(PyQt5.QtCore.__file__), ++ 'pyqt_sip_dir': os.path.join(pyqt_prefix,'share','sip','PyQt5'), ++ 'pyqt_bin_dir': os.path.join(pyqt_prefix,'bin'), + } + pyqtcfg = sipconfig.Configuration([cfg]) + diff --git a/var/spack/repos/builtin/packages/qmcpack/package.py b/var/spack/repos/builtin/packages/qmcpack/package.py index 0ad9ac2418..ba67282c0c 100644 --- a/var/spack/repos/builtin/packages/qmcpack/package.py +++ b/var/spack/repos/builtin/packages/qmcpack/package.py @@ -44,11 +44,10 @@ class Qmcpack(CMakePackage, CudaPackage): description='Build the complex (general twist/k-point) version') variant('mixed', default=False, description='Build the mixed precision (mixture of single and ' - 'double precision) version for gpu and cpu') + 'double precision) version') variant('soa', default=True, description='Build with Structure-of-Array instead of ' - 'Array-of-Structure code. Only for CPU code' - 'and only in mixed precision') + 'Array-of-Structure code. Only for CPU code') variant('timers', default=False, description='Build with support for timers') variant('da', default=False, @@ -57,10 +56,20 @@ class Qmcpack(CMakePackage, CudaPackage): description='Install with Matplotlib (long installation time)') variant('qe', default=False, description='Install with patched Quantum Espresso 6.4.1') + variant('afqmc', default=False, + description='Install with AFQMC support. NOTE that if used in ' + 'combination with CUDA, only AFQMC will have CUDA.') + # Notes about CUDA-centric peculiarities: + # # cuda variant implies mixed precision variant by default, but there is # no way to express this in variant syntax, need something like # variant('+mixed', default=True, when='+cuda', description="...") + # + # cuda+afqmc variant will not build the legacy CUDA code in real-space + # QMCPACK. This is due to a conflict in the build system. This is not + # worth fixing since the legacy CUDA code, will be superseded + # by the OpenMP 4.5 code. # high-level variant conflicts conflicts( @@ -94,6 +103,12 @@ class Qmcpack(CMakePackage, CudaPackage): conflicts('%pgi@:17', when='@3.6.0:', msg=compiler_warning) conflicts('%llvm@:3.4', when='@3.6.0:', msg=compiler_warning) + conflicts('+afqmc', when='@:3.6.0', msg='AFQMC not recommended before v3.7') + conflicts('+afqmc', when='~mpi', msg='AFQMC requires building with +mpi') + conflicts('+afqmc', when='%gcc@:6.0', msg='AFQMC code requires gcc@6.1 or greater') + conflicts('+afqmc', when='%clang@:4.0', msg='AFQMC code requires clang 4.1 or greater') + conflicts('+afqmc', when='%intel@:18', msg='AFQMC code requires intel19 or greater') + # Prior to QMCPACK 3.5.0 Intel MKL was not properly detected with # non-Intel compilers without a Spack-based hack. This hack # had the potential for negative side effects and led to more @@ -231,6 +246,11 @@ class Qmcpack(CMakePackage, CudaPackage): else: args.append('-DQMC_COMPLEX=0') + if '+afqmc' in spec: + args.append('-DBUILD_AFQMC=1') + else: + args.append('-DBUILD_AFQMC=0') + # When '-DQMC_CUDA=1', CMake automatically sets: # '-DQMC_MIXED_PRECISION=1' # @@ -238,7 +258,12 @@ class Qmcpack(CMakePackage, CudaPackage): # tested. if '+cuda' in spec: - args.append('-DQMC_CUDA=1') + # Cannot support both CUDA builds at the same time, see + # earlier notes in this package. + if '+afqmc' in spec: + args.append('-DENABLE_CUDA=1') + else: + args.append('-DQMC_CUDA=1') cuda_arch_list = spec.variants['cuda_arch'].value cuda_arch = cuda_arch_list[0] if len(cuda_arch_list) > 1: diff --git a/var/spack/repos/builtin/packages/qrupdate/package.py b/var/spack/repos/builtin/packages/qrupdate/package.py index 185bd1f421..3f21501711 100644 --- a/var/spack/repos/builtin/packages/qrupdate/package.py +++ b/var/spack/repos/builtin/packages/qrupdate/package.py @@ -29,17 +29,31 @@ class Qrupdate(MakefilePackage): return def install(self, spec, prefix): + lapack_blas = spec['lapack'].libs + spec['blas'].libs - # Build static and dynamic libraries - make('lib', 'solib', - 'BLAS={0}'.format(lapack_blas.ld_flags), - 'LAPACK={0}'.format(lapack_blas.ld_flags)) - # "INSTALL" confuses "make install" on case-insensitive filesystems + + make_args = [ + 'BLAS={0}'.format(lapack_blas.ld_flags), + 'LAPACK={0}'.format(lapack_blas.ld_flags) + ] + + # If 64-bit BLAS is used: + if (spec.satisfies('^openblas+ilp64') or + spec.satisfies('^intel-mkl+ilp64') or + spec.satisfies('^intel-parallel-studio+mkl+ilp64')): + make_args.append('FFLAGS=-fdefault-integer-8') + + # Build static and dynamic libraries: + make('lib', 'solib', *make_args) + + # "INSTALL" confuses "make install" on case-insensitive filesystems: if os.path.isfile("INSTALL"): os.remove("INSTALL") - # create lib folder: + + # Create lib folder: if (sys.platform == 'darwin'): mkdirp(prefix.lib) + make("install", "PREFIX=%s" % prefix) @run_after('install') diff --git a/var/spack/repos/builtin/packages/qt/package.py b/var/spack/repos/builtin/packages/qt/package.py index c07aa5c86e..3f4c767a69 100644 --- a/var/spack/repos/builtin/packages/qt/package.py +++ b/var/spack/repos/builtin/packages/qt/package.py @@ -128,13 +128,13 @@ class Qt(Package): depends_on("gperf", when='+webkit') depends_on("gtkplus", when='+gtk') depends_on("openssl", when='+ssl') - depends_on("sqlite", when='+sql', type=('build', 'run')) - depends_on("sqlite+column_metadata", when='+sql%intel', type=('build', 'run')) + depends_on("sqlite+column_metadata", when='+sql', type=('build', 'run')) depends_on("libpng@1.2.57", when='@3') + depends_on("libsm", when='@3') depends_on("pcre+multibyte", when='@5.0:5.8') depends_on("inputproto", when='@:5.8') - depends_on("openssl@:1.0.999", when='@:5.9+ssl') + depends_on("openssl@:1.0.999", when='@4:5.9+ssl') depends_on("glib", when='@4:') depends_on("libpng", when='@4:') diff --git a/var/spack/repos/builtin/packages/quantum-espresso/package.py b/var/spack/repos/builtin/packages/quantum-espresso/package.py index 49352192f7..403a8a3082 100644 --- a/var/spack/repos/builtin/packages/quantum-espresso/package.py +++ b/var/spack/repos/builtin/packages/quantum-espresso/package.py @@ -78,7 +78,7 @@ class QuantumEspresso(Package): # Conflicts # MKL with 64-bit integers not supported. conflicts( - '^intel-mkl+ilp64', + '^mkl+ilp64', msg='Quantum ESPRESSO does not support MKL 64-bit integer variant' ) @@ -211,7 +211,7 @@ class QuantumEspresso(Package): # 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 '^intel-mkl' in spec: + 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'], @@ -230,10 +230,21 @@ class QuantumEspresso(Package): # appear twice in in link line but this is harmless lapack_blas = spec['lapack'].libs + spec['blas'].libs - options.append('BLAS_LIBS={0}'.format(lapack_blas.ld_flags)) + # 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 '^intel-mkl' in spec else 'yes' + scalapack_option = 'intel' if '^mkl' in spec else 'yes' options.append('--with-scalapack={0}'.format(scalapack_option)) if '+elpa' in spec: diff --git a/var/spack/repos/builtin/packages/r-openssl/package.py b/var/spack/repos/builtin/packages/r-openssl/package.py index 36ddd5ed7d..71f648b480 100644 --- a/var/spack/repos/builtin/packages/r-openssl/package.py +++ b/var/spack/repos/builtin/packages/r-openssl/package.py @@ -30,3 +30,8 @@ class ROpenssl(RPackage): depends_on('r-askpass', when='@1.2:', type=('build', 'run')) depends_on('openssl@1.0.1:') + + def flag_handler(self, name, flags): + if name == 'cflags': + flags.append(self.compiler.c99_flag) + return (flags, None, None) diff --git a/var/spack/repos/builtin/packages/r-sys/package.py b/var/spack/repos/builtin/packages/r-sys/package.py index bd9aff9519..1901e54354 100644 --- a/var/spack/repos/builtin/packages/r-sys/package.py +++ b/var/spack/repos/builtin/packages/r-sys/package.py @@ -18,3 +18,8 @@ class RSys(RPackage): list_url = "https://cloud.r-project.org/src/contrib/Archive/sys" version('3.2', sha256='2819498461fe2ce83d319d1a47844e86bcea6d01d10861818dba289e7099bbcc') + + def flag_handler(self, name, flags): + if name == 'cflags': + flags.append(self.compiler.c99_flag) + return (flags, None, None) diff --git a/var/spack/repos/builtin/packages/r/change_optflags_tmp.patch b/var/spack/repos/builtin/packages/r/change_optflags_tmp.patch new file mode 100644 index 0000000000..4e39b02be7 --- /dev/null +++ b/var/spack/repos/builtin/packages/r/change_optflags_tmp.patch @@ -0,0 +1,67 @@ +diff -ur R-3.6.3.org/configure R-3.6.3/configure +--- R-3.6.3.org/configure 2020-03-09 11:09:16.060825352 +0900 ++++ R-3.6.3/configure 2020-03-09 11:10:47.011280195 +0900 +@@ -6470,13 +6470,13 @@ + CFLAGS=$ac_save_CFLAGS + elif test $ac_cv_prog_cc_g = yes; then + if test "$GCC" = yes; then +- CFLAGS="-g -O2" ++ CFLAGS="-g -O1" + else + CFLAGS="-g" + fi + else + if test "$GCC" = yes; then +- CFLAGS="-O2" ++ CFLAGS="-O1" + else + CFLAGS= + fi +@@ -7445,13 +7445,13 @@ + FCFLAGS=$ac_save_FCFLAGS + elif test $ac_cv_prog_fc_g = yes; then + if test "x$ac_cv_fc_compiler_gnu" = xyes; then +- FCFLAGS="-g -O2" ++ FCFLAGS="-g -O1" + else + FCFLAGS="-g" + fi + else + if test "x$ac_cv_fc_compiler_gnu" = xyes; then +- FCFLAGS="-O2" ++ FCFLAGS="-O1" + else + FCFLAGS= + fi +@@ -7717,13 +7717,13 @@ + CXXFLAGS=$ac_save_CXXFLAGS + elif test $ac_cv_prog_cxx_g = yes; then + if test "$GXX" = yes; then +- CXXFLAGS="-g -O2" ++ CXXFLAGS="-g -O1" + else + CXXFLAGS="-g" + fi + else + if test "$GXX" = yes; then +- CXXFLAGS="-O2" ++ CXXFLAGS="-O1" + else + CXXFLAGS= + fi +@@ -8336,13 +8336,13 @@ + OBJCFLAGS=$ac_save_OBJCFLAGS + elif test $ac_cv_prog_objc_g = yes; then + if test "$GOBJC" = yes; then +- OBJCFLAGS="-g -O2" ++ OBJCFLAGS="-g -O1" + else + OBJCFLAGS="-g" + fi + else + if test "$GOBJC" = yes; then +- OBJCFLAGS="-O2" ++ OBJCFLAGS="-O1" + else + OBJCFLAGS= + fi diff --git a/var/spack/repos/builtin/packages/r/package.py b/var/spack/repos/builtin/packages/r/package.py index 6489a8585c..1893aca9ac 100644 --- a/var/spack/repos/builtin/packages/r/package.py +++ b/var/spack/repos/builtin/packages/r/package.py @@ -21,6 +21,7 @@ class R(AutotoolsPackage): extendable = True + version('3.6.3', sha256='89302990d8e8add536e12125ec591d6951022cf8475861b3690bc8bf1cefaa8f') version('3.6.2', sha256='bd65a45cddfb88f37370fbcee4ac8dd3f1aebeebe47c2f968fd9770ba2bbc954') version('3.6.1', sha256='5baa9ebd3e71acecdcc3da31d9042fb174d55a42829f8315f2457080978b1389') version('3.6.0', sha256='36fcac3e452666158e62459c6fc810adc247c7109ed71c5b6c3ad5fc2bf57509') @@ -85,6 +86,12 @@ class R(AutotoolsPackage): patch('zlib.patch', when='@:3.3.2') + # R cannot be built with '-O2' optimization + # with Fujitsu Compiler @4.1.0 now. + # Until the Fujitsu compiler resolves this problem, + # temporary fix to lower the optimization level. + patch('change_optflags_tmp.patch', when='%fj@4.1.0') + filter_compiler_wrappers( 'Makeconf', relative_root=os.path.join('rlib', 'R', 'etc') ) diff --git a/var/spack/repos/builtin/packages/rankstr/package.py b/var/spack/repos/builtin/packages/rankstr/package.py index 6cf2dc42f9..98d7aea87f 100644 --- a/var/spack/repos/builtin/packages/rankstr/package.py +++ b/var/spack/repos/builtin/packages/rankstr/package.py @@ -9,8 +9,8 @@ from spack import * class Rankstr(CMakePackage): """Assign one-to-one mapping of MPI ranks to strings""" - homepage = "https://github.com/ECP-VeloC/rankstr" - url = "https://github.com/ECP-VeloC/rankstr/archive/v0.0.2.zip" + homepage = "https://github.com/ecp-veloc/rankstr" + url = "https://github.com/ecp-veloc/rankstr/archive/v0.0.2.zip" git = "https://github.com/ecp-veloc/rankstr.git" tags = ['ecp'] diff --git a/var/spack/repos/builtin/packages/redset/package.py b/var/spack/repos/builtin/packages/redset/package.py index d06eaca108..88ea8b92d4 100644 --- a/var/spack/repos/builtin/packages/redset/package.py +++ b/var/spack/repos/builtin/packages/redset/package.py @@ -9,8 +9,8 @@ from spack import * class Redset(CMakePackage): """Create MPI communicators for disparate redundancy sets""" - homepage = "https://github.com/ECP-VeloC/redset" - url = "https://github.com/ECP-VeloC/redset/archive/v0.0.3.zip" + homepage = "https://github.com/ecp-veloc/redset" + url = "https://github.com/ecp-veloc/redset/archive/v0.0.3.zip" git = "https://github.com/ecp-veloc/redset.git" tags = ['ecp'] diff --git a/var/spack/repos/builtin/packages/revbayes/package.py b/var/spack/repos/builtin/packages/revbayes/package.py index 7cf707a72e..5e02dc974d 100644 --- a/var/spack/repos/builtin/packages/revbayes/package.py +++ b/var/spack/repos/builtin/packages/revbayes/package.py @@ -15,10 +15,10 @@ class Revbayes(CMakePackage): git = "https://github.com/revbayes/revbayes.git" version('develop', branch='development') - version('1.0.13', sha256='472b4ccc44d813c1ff1b8d27e8ccf3d96388de79aa1688b3714f683ba65038fa') - version('1.0.12', sha256='d79f3a9bc72305cab35009d11e1f027fcaacde7329a4c49b5b8285588a8d3588') - version('1.0.11', sha256='7e81b1952e3a63cb84617fa632f4ccdf246b4d79e7d537a423540de047dadf50') - version('1.0.10', sha256='95e9affe8ca8d62880cf46778b6ec9dd8726e62a185670ebcbadf2eb2bb79f93') + version('1.0.13', sha256='e85e2e1fe182fe9f504900150d936a06d252a362c591b9d3d8272dd085aa85d9') + version('1.0.12', sha256='80c926bb6b37288d02e36e07b44e4663841cd1fe541e2cc0b0e44c89ca929759') + version('1.0.11', sha256='03052194baa220dde7e622a739f09f34393f67ea00a0b163b409d313d7fc7c02') + version('1.0.10', sha256='6a3cf303e7224b0b32637bd8e2c3c2cf2621f5dbe599cd74ce4b0c215d0fcd2d') variant('mpi', default=True, description='Enable MPI parallel support') @@ -27,6 +27,12 @@ class Revbayes(CMakePackage): conflicts('%gcc@7.1.0:', when='@:1.0.12') + def url_for_version(self, version): + if version > Version('1.0.13'): + return 'https://github.com/revbayes/revbayes/archive/v{0}.tar.gz'.format(version) + else: + return 'https://github.com/revbayes/revbayes.archive/archive/v{0}.tar.gz'.format(version) + @property def root_cmakelists_dir(self): if self.spec.version > Version('1.0.13') and '+mpi' in self.spec: @@ -38,6 +44,11 @@ class Revbayes(CMakePackage): def regenerate(self): with working_dir(join_path('projects', 'cmake')): mkdirp('build') + if self.spec.version > Version('1.0.13'): + generate_version = Executable('./generate_version_number.sh') + generate_version() + dest = join_path('..', '..', 'src', 'revlanguage', 'utils') + install('GitVersion.cpp', dest) edit = FileFilter('regenerate.sh') edit.filter('boost="true"', 'boost="false"') if '+mpi' in self.spec: diff --git a/var/spack/repos/builtin/packages/ripgrep/package.py b/var/spack/repos/builtin/packages/ripgrep/package.py new file mode 100644 index 0000000000..eadaa6df79 --- /dev/null +++ b/var/spack/repos/builtin/packages/ripgrep/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 Ripgrep(Package): + """ripgrep is a line-oriented search tool that recursively searches + your current directory for a regex pattern. ripgrep is similar to + other popular search tools like The Silver Searcher, ack and grep. + """ + + homepage = "https://github.com/BurntSushi/ripgrep" + url = "https://github.com/BurntSushi/ripgrep/archive/11.0.2.tar.gz" + + version('11.0.2', sha256='0983861279936ada8bc7a6d5d663d590ad34eb44a44c75c2d6ccd0ab33490055') + + depends_on('rust') + + def install(self, spec, prefix): + cargo = which('cargo') + cargo('install', '--root', prefix, '--path', '.') + + # needed for onig_sys + def setup_build_environment(self, env): + env.append_flags('LLVM_CONFIG_PATH', + join_path(self.spec['llvm'].prefix.libexec.llvm, + 'llvm-config')) + env.append_flags('LIBCLANG_PATH', self.spec['llvm'].prefix.lib) diff --git a/var/spack/repos/builtin/packages/root/package.py b/var/spack/repos/builtin/packages/root/package.py index 4def4129da..9db1a70254 100644 --- a/var/spack/repos/builtin/packages/root/package.py +++ b/var/spack/repos/builtin/packages/root/package.py @@ -15,7 +15,7 @@ class Root(CMakePackage): homepage = "https://root.cern.ch" url = "https://root.cern/download/root_v6.16.00.source.tar.gz" - maintainers = ['chissg', 'HadrienG2'] + maintainers = ['chissg', 'HadrienG2', 'drbenmorgan'] # ###################### Versions ########################## @@ -26,6 +26,8 @@ class Root(CMakePackage): # Development version (when more recent than production). # Production version + version('6.20.02', sha256='0997586bf097c0afbc6f08edbffcebf5eb6a4237262216114ba3f5c8087dcba6') + version('6.20.00', sha256='68421eb0434b38b66346fa8ea6053a0fdc9a6d254e4a72019f4e3633ae118bf0') version('6.18.04', sha256='315a85fc8363f8eb1bffa0decbf126121258f79bd273513ed64795675485cfa4', preferred=True) @@ -110,6 +112,9 @@ class Root(CMakePackage): # otherwise it crashes with the internal minuit library variant('minuit', default=True, description='Automatically search for support libraries') + variant('mlp', default=False, + description="Enable support for TMultilayerPerceptron " + "classes' federation") variant('mysql', default=False) variant('opengl', default=True, description='Enable OpenGL support') @@ -143,7 +148,7 @@ class Root(CMakePackage): description='TBB multi-threading support') variant('threads', default=True, description='Enable using thread library') - variant('tmva', default=True, + variant('tmva', default=False, description='Build TMVA multi variate analysis library') variant('unuran', default=True, description='Use UNURAN for random number generation') @@ -185,6 +190,7 @@ class Root(CMakePackage): depends_on('xxhash', when='@6.13.02:') # See cmake_args, below. depends_on('xz') depends_on('zlib') + depends_on('zstd', when='@6.20:') # X-Graphics depends_on('libx11', when="+x") @@ -203,8 +209,14 @@ class Root(CMakePackage): # Qt4 depends_on('qt@:4.999', when='+qt4') - # TMVA - depends_on('py-numpy', when='+tmva') + # Python + depends_on('python@2.7:', when='+python', type=('build', 'run')) + depends_on('py-numpy', type=('build', 'run'), when='+tmva') + # This numpy dependency was not intended and will hopefully + # be fixed in 6.20.04. + # See: https://sft.its.cern.ch/jira/browse/ROOT-10626 + depends_on('py-numpy', type=('build', 'run'), + when='@6.20.00:6.20.03 +python') # Optional dependencies depends_on('davix @0.7.1:', when='+davix') @@ -219,7 +231,6 @@ class Root(CMakePackage): depends_on('postgresql', when='+postgres') depends_on('pythia6+root', when='+pythia6') depends_on('pythia8', when='+pythia8') - depends_on('python@2.7:', when='+python', type=('build', 'run')) 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')) @@ -255,6 +266,7 @@ class Root(CMakePackage): # Incompatible variants conflicts('+opengl', when='~x', msg='OpenGL requires X') conflicts('+tmva', when='~gsl', msg='TVMA requires GSL') + conflicts('+tmva', when='~mlp', msg='TVMA requires MLP') conflicts('cxxstd=11', when='+root7', msg='root7 requires at least C++14') # Feature removed in 6.18: @@ -357,6 +369,7 @@ class Root(CMakePackage): ['minimal'], ['minuit'], ['minuit2', 'minuit'], + ['mlp'], ['monalisa', False], ['mysql'], ['odbc'], diff --git a/var/spack/repos/builtin/packages/rust/package.py b/var/spack/repos/builtin/packages/rust/package.py index 2ae30b5c03..59e827f67d 100644 --- a/var/spack/repos/builtin/packages/rust/package.py +++ b/var/spack/repos/builtin/packages/rust/package.py @@ -4,59 +4,455 @@ # SPDX-License-Identifier: (Apache-2.0 OR MIT) from spack import * +from six import iteritems class Rust(Package): - """The rust programming language toolchain""" + """The Rust programming language toolchain - homepage = "http://www.rust-lang.org" - git = "https://github.com/rust-lang/rust.git" + This package can bootstrap any version of the Rust compiler since Rust + 1.23. It does this by downloading the platform-appropriate binary + distribution of the desired version of the rust compiler, and then building + that compiler from source. + """ - version('develop', branch='master') - version('1.41.0', tag='1.41.0') - version('1.34.0', tag='1.34.0') - version('1.32.0', tag='1.32.0') - version('1.31.1', tag='1.31.1') - version('1.31.0', tag='1.31.0') # "Rust 2018" edition - version('1.30.1', tag='1.30.1') + homepage = "https://www.rust-lang.org" + url = "https://static.rust-lang.org/dist/rustc-1.42.0-src.tar.gz" + + maintainers = ["AndrewGaspar"] + + phases = ['configure', 'build', 'install'] extendable = True - # Rust - depends_on("llvm") - depends_on("curl") - depends_on("git") - depends_on("cmake") - depends_on("binutils") - depends_on("python@:2.8") + variant( + 'rustfmt', + default=True, + description='Formatting tool for Rust code' + ) + + variant( + 'analysis', + default=True, + description='Outputs code analysis that can be consumed by other tools' + ) + + variant( + 'clippy', + default=True, + description='Linting tool for Rust' + ) + + variant( + 'rls', + default=False, + description='The Rust Language Server can be used for IDE integration' + ) + + variant( + 'src', + default=True, + description='Install Rust source files' + ) + + depends_on('cmake', type='build') + depends_on('python@:2.8', type='build') + depends_on('openssl') + depends_on('libssh2') + depends_on('libgit2') + + # Version Notes: + # Here's some information on why your favorite Rust version may be missing. + # + # < 1.23: + # Rust seems to eagerly search for ar next to cc. Spack makes wrappers for + # cc and c++, but not for ar, so no ar is found. In future versions, ar + # can be specified in the config. + # + # < 1.17: + # 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.42.0', sha256='d2e8f931d16a0539faaaacd801e0d92c58df190269014b2360c6ab2a90ee3475') + version('1.41.1', sha256='38c93d016e6d3e083aa15e8f65511d3b4983072c0218a529f5ee94dd1de84573') + version('1.41.0', sha256='5546822c09944c4d847968e9b7b3d0e299f143f307c00fa40e84a99fabf8d74b') + version('1.40.0', sha256='dd97005578defc10a482bff3e4e728350d2099c60ffcf1f5e189540c39a549ad') + version('1.39.0', sha256='b4a1f6b6a93931f270691aba4fc85eee032fecda973e6b9c774cd06857609357') + version('1.38.0', sha256='644263ca7c7106f8ee8fcde6bb16910d246b30668a74be20b8c7e0e9f4a52d80') + version('1.37.0', sha256='120e7020d065499cc6b28759ff04153bfdc2ac9b5adeb252331a4eb87cbe38c3') + version('1.36.0', sha256='04c4e4d7213d036d6aaed392841496d272146312c0290f728b7400fccd15bb1b') + version('1.35.0', sha256='5a4d637a716bac18d085f44dd87ef48b32195f71b967d872d80280b38cff712d') + version('1.34.2', sha256='c69a4a85a1c464368597df8878cb9e1121aae93e215616d45ad7d23af3052f56') + version('1.34.1', sha256='b0c785264d17e1dac4598627c248a2d5e07dd39b6666d1881fcfc8e2cf4c40a7') + version('1.34.0', sha256='7ac85acffd79dd3a7c44305d9eaabd1f1e7116e2e6e11e770e4bf5f92c0f1f59') + version('1.33.0', sha256='5a01a8d7e65126f6079042831385e77485fa5c014bf217e9f3e4aff36a485d94') + version('1.32.0', sha256='4c594c7712a0e7e8eae6526c464bf6ea1d82f77b4f61717c3fc28fb27ba2224a') + version('1.31.1', sha256='91d2fc22f08d986adab7a54eb3a6a9b99e490f677d2d092e5b9e4e069c23686a') + version('1.30.1', sha256='36a38902dbd9a3e1240d46ab0f2ca40d2fd07c2ab6508ed7970c6c4c036b5b29') + version('1.30.0', sha256='cd0ba83fcca55b64c0c9f23130fe731dfc1882b73ae21bef96be8f2362c108ee') + version('1.29.2', sha256='5088e796aa2e47478cdf41e7243fc5443fafab0a7c70a11423e57c80c04167c9') + version('1.29.1', sha256='f1b0728b66ce6bce6d72bbe5ea9e3a24ea22a045665da2ed8fcdfad14f61a349') + version('1.29.0', sha256='a4eb34ffd47f76afe2abd813f398512d5a19ef00989d37306217c9c9ec2f61e9') + version('1.28.0', sha256='1d5a81729c6f23a0a23b584dd249e35abe9c6f7569cee967cc42b1758ecd6486') + version('1.27.2', sha256='9a818c50cdb7880abeaa68b3d97792711e6c64c1cdfb6efdc23f75b8ced0e15d') + version('1.27.1', sha256='2133beb01ddc3aa09eebc769dd884533c6cfb08ce684f042497e097068d733d1') + version('1.27.0', sha256='2cb9803f690349c9fd429564d909ddd4676c68dc48b670b8ddf797c2613e2d21') + version('1.26.2', sha256='fb9ecf304488c9b56600ab20cfd1937482057f7e5db7899fddb86e0774548700') + version('1.26.1', sha256='70a7961bd8ec43b2c01e9896e90b0a06804a7fbe0a5c05acc7fd6fed19500df0') + version('1.26.0', sha256='4fb09bc4e233b71dcbe08a37a3f38cabc32219745ec6a628b18a55a1232281dd') + version('1.25.0', sha256='eef63a0aeea5147930a366aee78cbde248bb6e5c6868801bdf34849152965d2d') + version('1.24.1', sha256='3ea53d45e8d2e9a41afb3340cf54b9745f845b552d802d607707cf04450761ef') + version('1.24.0', sha256='bb8276f6044e877e447f29f566e4bbf820fa51fea2f912d59b73233ffd95639f') + version('1.23.0', sha256='7464953871dcfdfa8afcc536916a686dd156a83339d8ec4d5cb4eb2fe146cb91') + + # The Rust bootstrapping process requires a bootstrapping compiler. The + # easiest way to do this is to download the binary distribution of the + # same version of the compiler and build with that. + # + # This dictionary contains a version: hash dictionary for each supported + # Rust target. + rust_releases = { + '1.42.0': { + 'x86_64-unknown-linux-gnu': '7d1e07ad9c8a33d8d039def7c0a131c5917aa3ea0af3d0cc399c6faf7b789052', + 'powerpc64le-unknown-linux-gnu': '805b08fa1e0aad4d706301ca1f13e2d80810d385cece2c15070360b3c4bd6e4a', + 'aarch64-unknown-linux-gnu': 'fdd39f856a062af265012861949ff6654e2b7103be034d046bec84ebe46e8d2d', + 'x86_64-apple-darwin': 'db1055c46e0d54b99da05e88c71fea21b3897e74a4f5ff9390e934f3f050c0a8' + }, + '1.41.1': { + 'x86_64-unknown-linux-gnu': 'a6d5a3b3f574aafc8f787fea37aad9fb8a7946b383ae5348146927192ff0bef0', + 'powerpc64le-unknown-linux-gnu': 'f9b53ca636625b3a2dd87600b6274223c11f866c9b5a34b638ea0013186659d3', + 'aarch64-unknown-linux-gnu': 'd54c0f9165b86216b6f1b499f451141407939c5dc6b36c89a3772895a1370242', + 'x86_64-apple-darwin': '16615288cf74239783de1b435d329f3d56ed13803c7c10cd4b207d7c8ffa8f67' + }, + '1.41.0': { + 'x86_64-unknown-linux-gnu': '343ba8ef7397eab7b3bb2382e5e4cb08835a87bff5c8074382c0b6930a41948b', + 'powerpc64le-unknown-linux-gnu': 'ba231b0d8273d6928f61e2be3456e816a1de8050135e20c0623dc7a6ea03ba68', + 'aarch64-unknown-linux-gnu': '79ddfb5e2563d0ee09a567fbbe121a2aed3c3bc61255b2787f2dd42183a10f27', + 'x86_64-apple-darwin': 'b6504003ab70b11f278e0243a43ba9d6bf75e8ad6819b4058a2b6e3991cc8d7a' + }, + '1.40.0': { + 'x86_64-unknown-linux-gnu': 'fc91f8b4bd18314e83a617f2389189fc7959146b7177b773370d62592d4b07d0', + 'powerpc64le-unknown-linux-gnu': 'b1a23e35c383f99e647df6a9239b1dc9313e293deb70a76ba58e8ebe55ef623b', + 'aarch64-unknown-linux-gnu': '639271f59766d291ebdade6050e7d05d61cb5c822a3ef9a1e2ab185fed68d729', + 'x86_64-apple-darwin': '749ca5e0b94550369cc998416b8854c13157f5d11d35e9b3276064b6766bcb83' + }, + '1.39.0': { + 'x86_64-unknown-linux-gnu': 'b10a73e5ba90034fe51f0f02cb78f297ed3880deb7d3738aa09dc5a4d9704a25', + 'powerpc64le-unknown-linux-gnu': '53b3fd942c52709f7e6fe11ea572d086e315a57a40b84b9b3290ac0ec8c7c84a', + 'aarch64-unknown-linux-gnu': 'e27dc8112fe577012bd88f30e7c92dffd8c796478ce386c49465c03b6db8209f', + 'x86_64-apple-darwin': '3736d49c5e9592844e1a5d5452883aeaf8f1e25d671c1bc8f01e81c1766603b5' + }, + '1.38.0': { + 'x86_64-unknown-linux-gnu': 'adda26b3f0609dbfbdc2019da4a20101879b9db2134fae322a4e863a069ec221', + 'powerpc64le-unknown-linux-gnu': 'f9ed1bb6525abdd4dd6ef10782ad45d2f71496e0c3c88e806b510c81a91c4ff7', + 'aarch64-unknown-linux-gnu': '06afd6d525326cea95c3aa658aaa8542eab26f44235565bb16913ac9d12b7bda', + 'x86_64-apple-darwin': 'bd301b78ddcd5d4553962b115e1dca5436dd3755ed323f86f4485769286a8a5a' + }, + '1.37.0': { + 'x86_64-unknown-linux-gnu': 'cb573229bfd32928177c3835fdeb62d52da64806b844bc1095c6225b0665a1cb', + 'powerpc64le-unknown-linux-gnu': '27c59ec40e9e9f71490dc00bf165156ae3ea77c20ffa4b5e5fd712e67527b477', + 'aarch64-unknown-linux-gnu': '263ef98fa3a6b2911b56f89c06615cdebf6ef676eb9b2493ad1539602f79b6ba', + 'x86_64-apple-darwin': 'b2310c97ffb964f253c4088c8d29865f876a49da2a45305493af5b5c7a3ca73d' + }, + '1.36.0': { + 'x86_64-unknown-linux-gnu': '15e592ec52f14a0586dcebc87a957e472c4544e07359314f6354e2b8bd284c55', + 'powerpc64le-unknown-linux-gnu': '654a7a18d881811c09f630b0c917825b586e94a6142eceaede6b8046718e4054', + 'aarch64-unknown-linux-gnu': 'db78c24d93756f9fe232f081dbc4a46d38f8eec98353a9e78b9b164f9628042d', + 'x86_64-apple-darwin': '91f151ec7e24f5b0645948d439fc25172ec4012f0584dd16c3fb1acb709aa325' + }, + '1.35.0': { + 'x86_64-unknown-linux-gnu': 'cf600e2273644d8629ed57559c70ca8db4023fd0156346facca9ab3ad3e8f86c', + 'powerpc64le-unknown-linux-gnu': 'a933955adec386d75d126e78df5b9941936e156acb3353fc44b85995a81c7bb2', + 'aarch64-unknown-linux-gnu': '31e6da56e67838fd2874211ae896a433badf67c13a7b68481f1d5f7dedcc5952', + 'x86_64-apple-darwin': 'ac14b1c7dc330dcb53d8641d74ebf9b32aa8b03b9d650bcb9258030d8b10dbd6' + }, + '1.34.2': { + 'x86_64-unknown-linux-gnu': '2bf6622d980a52832bae141304e96f317c8a1ccd2dfd69a134a14033e6e43c0f', + 'powerpc64le-unknown-linux-gnu': '4ddd55014bbd954b3499859bfa3146bff471de21c1d73fc6e7cccde290fc1918', + 'aarch64-unknown-linux-gnu': '15fc6b7ec121df9d4e42483dd12c677203680bec8c69b6f4f62e5a35a07341a8', + 'x86_64-apple-darwin': '6fdd4bf7fe26dded0cd57b41ab5f0500a5a99b7bc770523a425e9e34f63d0fd8' + }, + '1.34.1': { + 'x86_64-unknown-linux-gnu': '8e2eead11bd5bf61409e29018d007c6fc874bcda2ff54db3d04d1691e779c14e', + 'powerpc64le-unknown-linux-gnu': '94ac92d08afcfa2d77ae207e91b57c00cb48ff7ba08a27ed3deb2493f33e8fb1', + 'aarch64-unknown-linux-gnu': '0565e50dae58759a3a5287abd61b1a49dfc086c4d6acf2ce604fe1053f704e53', + 'x86_64-apple-darwin': 'f4e46b9994ccfab4a84059298d1dc8fd446b1bbb7449462e0459948f7debea0e' + }, + '1.34.0': { + 'x86_64-unknown-linux-gnu': '170647ed41b497dc937a6b2556700210bc4be187b1735029ef9ccf52e2cb5ab8', + 'powerpc64le-unknown-linux-gnu': '3027e87802e161cce6f3a23d961f6d73b9ed6e829b2cd7af5dfccf6e1207e552', + 'aarch64-unknown-linux-gnu': '370c3a8fb9a69df36d645a95e622fb59ac5b513baecddde706cedaf20defa269', + 'x86_64-apple-darwin': 'e6bea8d865cc7341c17fa3b8f25f7989e6b04f53e9da24878addc524f3a32664' + }, + '1.33.0': { + 'x86_64-unknown-linux-gnu': '6623168b9ee9de79deb0d9274c577d741ea92003768660aca184e04fe774393f', + 'powerpc64le-unknown-linux-gnu': 'db885aa4c2c6896c85257be2ade5c9edea660ca6878970683e8d5796618329b5', + 'aarch64-unknown-linux-gnu': 'a308044e4076b62f637313ea803fa0a8f340b0f1b53136856f2c43afcabe5387', + 'x86_64-apple-darwin': '864e7c074a0b88e38883c87c169513d072300bb52e1d320a067bd34cf14f66bd' + }, + '1.32.0': { + 'x86_64-unknown-linux-gnu': 'e024698320d76b74daf0e6e71be3681a1e7923122e3ebd03673fcac3ecc23810', + 'powerpc64le-unknown-linux-gnu': 'd6d5c9154f4459465d68ebd4fa1e17bad4b6cfe219667dddd9123c3bfb5dd839', + 'aarch64-unknown-linux-gnu': '60def40961728212da4b3a9767d5a2ddb748400e150a5f8a6d5aa0e1b8ba1cee', + 'x86_64-apple-darwin': 'f0dfba507192f9b5c330b5984ba71d57d434475f3d62bd44a39201e36fa76304' + }, + '1.31.1': { + 'x86_64-unknown-linux-gnu': 'a64685535d0c457f49a8712a096a5c21564cd66fd2f7da739487f028192ebe3c', + 'powerpc64le-unknown-linux-gnu': 'a6f61b7a8a06a2b0a785391cc3e6bb8004aa72095eea80db1561039f5bb3e975', + 'aarch64-unknown-linux-gnu': '29a7c6eb536fefd0ca459e48dfaea006aa8bff8a87aa82a9b7d483487033632a', + 'x86_64-apple-darwin': '8398b1b303bdf0e7605d08b87070a514a4f588797c6fb3593718cb9cec233ad6' + }, + '1.30.1': { + 'x86_64-unknown-linux-gnu': 'a01a493ed8946fc1c15f63e74fc53299b26ebf705938b4d04a388a746dfdbf9e', + 'powerpc64le-unknown-linux-gnu': 'a7d4806e6702bdbad5017eeddc62f7ff7eb2438b1b9c39cbc90c2b1207f8e65f', + 'aarch64-unknown-linux-gnu': '6d87d81561285abd6c1987e07b60b2d723936f037c4b46eedcc12e8566fd3874', + 'x86_64-apple-darwin': '3ba1704a7defe3d9a6f0c1f68792c084da83bcba85e936d597bac0c019914b94' + }, + '1.30.0': { + 'x86_64-unknown-linux-gnu': 'f620e3125cc505c842150bd873c0603432b6cee984cdae8b226cf92c8aa1a80f', + 'powerpc64le-unknown-linux-gnu': '0b53e257dc3d9f3d75cd97be569d3bf456d2c0af57ed0bd5e7a437227d8f465a', + 'aarch64-unknown-linux-gnu': '9690c7c50eba5a8461184ee4138b4c284bad31ccc4aa1f2ddeec58b253e6363e', + 'x86_64-apple-darwin': '07008d90932712282bc599f1e9a226e97879c758dc1f935e6e2675e45694cc1b' + }, + '1.29.2': { + 'x86_64-unknown-linux-gnu': 'e9809825c546969a9609ff94b2793c9107d7d9bed67d557ed9969e673137e8d8', + 'powerpc64le-unknown-linux-gnu': '344003b808c20424c4699c9452bd37cdee23857dd4aa125e67d1d6e4bc992091', + 'aarch64-unknown-linux-gnu': 'e11461015ca7106ef8ebf00859842bf4be518ee170226cb8eedaaa666946509f', + 'x86_64-apple-darwin': '63f54e3013406b39fcb5b84bcf5e8ce85860d0b97a1e156700e467bf5fb5d5f2' + }, + '1.29.1': { + 'x86_64-unknown-linux-gnu': 'b36998aea6d58525f25d89f1813b6bfd4cad6ff467e27bd11e761a20dde43745', + 'powerpc64le-unknown-linux-gnu': '26a6d652ade6b6a96e6af18e846701ee28f912233372dfe15432139252f88958', + 'aarch64-unknown-linux-gnu': '2685224f67b2ef951e0e8b48829f786cbfed95e19448ba292ac33af719843dbe', + 'x86_64-apple-darwin': '07b07fbd6fab2390e19550beb8008745a8626cc5e97b72dc659061c1c3b3d008' + }, + '1.29.0': { + 'x86_64-unknown-linux-gnu': '09f99986c17b1b6b1bfbc9dd8785e0e4693007c5feb67915395d115c1a3aea9d', + 'powerpc64le-unknown-linux-gnu': 'd6954f1da53f7b3618fba3284330d99b6142bb25d9febba6dbfedad59ca53329', + 'aarch64-unknown-linux-gnu': '0ed3be0fd9f847afeb4e587fff61f6769ea61b53719d3ea999326284e8975b36', + 'x86_64-apple-darwin': '28a0473637585742f6d80ccd8afd88b6b400e65d623c33cb892412759444da93' + }, + '1.28.0': { + 'x86_64-unknown-linux-gnu': '2a1390340db1d24a9498036884e6b2748e9b4b057fc5219694e298bdaa37b810', + 'powerpc64le-unknown-linux-gnu': '255818156ec1f795ed808a44b4fdb8019187d5ebb7f837ae8f55a1ca40862bb6', + 'aarch64-unknown-linux-gnu': '9b6fbcee73070332c811c0ddff399fa31965bec62ef258656c0c90354f6231c1', + 'x86_64-apple-darwin': '5d7a70ed4701fe9410041c1eea025c95cad97e5b3d8acc46426f9ac4f9f02393' + }, + '1.27.2': { + 'x86_64-unknown-linux-gnu': '5028a18e913ef3eb53e8d8119d2cc0594442725e055a9361012f8e26f754f2bf', + 'powerpc64le-unknown-linux-gnu': '11034d150e811d4903b09fd42f0cb76d467a6365a158101493405fff1054572f', + 'aarch64-unknown-linux-gnu': 'cf84da70269c0e50bb3cc3d248bae1ffcd70ee69dc5a4e3513b54fefc6685fb4', + 'x86_64-apple-darwin': '30c5cc58759caa4efdf2ea7d8438633139c98bee3408beb29ceb26985f3f5f70' + }, + '1.27.1': { + 'x86_64-unknown-linux-gnu': '435778a837af764da2a7a7fb4d386b7b78516c7dfc732d892858e9a8a539989b', + 'powerpc64le-unknown-linux-gnu': 'a08e6b6fed3329fcd1220b2ee4cd7a311d99121cf780fb6e1c6353bfeddfb176', + 'aarch64-unknown-linux-gnu': 'd1146b240e6f628224c3a67e3aae2a57e6c25d544115e5ece9ce91861ec92b3a', + 'x86_64-apple-darwin': '475be237962d6aef1038a2faada26fda1e0eaea5d71d6950229a027a9c2bfe08' + }, + '1.27.0': { + 'x86_64-unknown-linux-gnu': '235ad78e220b10a2d0267aea1e2c0f19ef5eaaff53ad6ff8b12c1d4370dec9a3', + 'powerpc64le-unknown-linux-gnu': '847774a751e848568215739d384e3baf4d6ec37d27fb3add7a8789208c213aff', + 'aarch64-unknown-linux-gnu': 'e74ebc33dc3fc19e501a677a87b619746efdba2901949a0319176352f556673a', + 'x86_64-apple-darwin': 'a1d48190992e01aac1a181bce490c80cb2c1421724b4ff0e2fb7e224a958ce0f' + }, + '1.26.2': { + 'x86_64-unknown-linux-gnu': 'd2b4fb0c544874a73c463993bde122f031c34897bb1eeb653d2ba2b336db83e6', + 'powerpc64le-unknown-linux-gnu': 'ea045869074ae3617eeb51207ce183e6915784b9ed615ecb92ce082ddb86ec1f', + 'aarch64-unknown-linux-gnu': '3dfad0dc9c795f7ee54c2099c9b7edf06b942adbbf02e9ed9e5d4b5e3f1f3759', + 'x86_64-apple-darwin': 'f193705d4c0572a358670dbacbf0ffadcd04b3989728b442f4680fa1e065fa72' + }, + '1.26.1': { + 'x86_64-unknown-linux-gnu': 'b7e964bace1286696d511c287b945f3ece476ba77a231f0c31f1867dfa5080e0', + 'powerpc64le-unknown-linux-gnu': 'ad8b2f6dd8c5cca1251d65b75ed2120aae3c5375d2c8ed690259cf4a652d7d3c', + 'aarch64-unknown-linux-gnu': 'd4a369053c2dfd5f457de6853557dab563944579fa4bb55bc919bacf259bff6d', + 'x86_64-apple-darwin': 'ebf898b9fa7e2aafc53682a41f18af5ca6660ebe82dd78f28cd9799fe4dc189a' + }, + '1.26.0': { + 'x86_64-unknown-linux-gnu': '13691d7782577fc9f110924b26603ade1990de0b691a3ce2dc324b4a72a64a68', + 'powerpc64le-unknown-linux-gnu': '3ba3a4905730ec01007ca1096d9fc3780f4e81f71139a619e1f526244301b7f4', + 'aarch64-unknown-linux-gnu': 'e12dc84bdb569cdb382268a5fe6ae6a8e2e53810cb890ec3a7133c20ba8451ac', + 'x86_64-apple-darwin': '38708803c3096b8f101d1919ee2d7e723b0adf1bc1bb986b060973b57d8c7c28' + }, + '1.25.0': { + 'x86_64-unknown-linux-gnu': '06fb45fb871330a2d1b32a27badfe9085847fe824c189ddc5204acbe27664f5e', + 'powerpc64le-unknown-linux-gnu': '79eeb2a7fafa2e0f65f29a1dc360df69daa725347e4b6a533684f1c07308cc6e', + 'aarch64-unknown-linux-gnu': '19a43451439e515a216d0a885d14203f9a92502ee958abf86bf7000a7d73d73d', + 'x86_64-apple-darwin': 'fcd0302b15e857ba4a80873360cf5453275973c64fa82e33bfbed02d88d0ad17' + }, + '1.24.1': { + 'x86_64-unknown-linux-gnu': '4567e7f6e5e0be96e9a5a7f5149b5452828ab6a386099caca7931544f45d5327', + 'powerpc64le-unknown-linux-gnu': '6f6c4bebbd7d6dc9989bf372c512dea55af8f56a1a0cfe97784667f0ac5430ee', + 'aarch64-unknown-linux-gnu': '64bb25a9689b18ddadf025b90d9bdb150b809ebfb74432dc69cc2e46120adbb2', + 'x86_64-apple-darwin': '9d4aacdb5849977ea619d399903c9378163bd9c76ea11dac5ef6eca27849f501' + }, + '1.24.0': { + 'x86_64-unknown-linux-gnu': '336cf7af6c857cdaa110e1425719fa3a1652351098dc73f156e5bf02ed86443c', + 'powerpc64le-unknown-linux-gnu': '25d9b965a63ad2f345897028094d4c7eafa432237b478754ccbcc299f80629c8', + 'aarch64-unknown-linux-gnu': 'a981de306164b47f3d433c1d53936185260642849c79963af7e07d36b063a557', + 'x86_64-apple-darwin': '1aecba7cab4bc1a9e0e931c04aa00849e930b567d243da7b676ede8f527a2992' + }, + '1.23.0': { + 'x86_64-unknown-linux-gnu': '9a34b23a82d7f3c91637e10ceefb424539dcfa327c2dcd292ff10c047b1fdc7e', + 'powerpc64le-unknown-linux-gnu': '60f1a1cc182c516de08c1f42ada01604a3d94383e9dded6b237ae2233999437b', + 'aarch64-unknown-linux-gnu': '38379fbd976d2286cb73f21466db40a636a583b9f8a80af5eea73617c7912bc7', + 'x86_64-apple-darwin': '9274e977322bb4b153f092255ac9bd85041142c73eaabf900cb2ef3d3abb2eba' + } + } + + # This dictionary maps Rust target architectures to Spack constraints that + # match that target. + rust_archs = { + 'x86_64-unknown-linux-gnu': [ + {'platform': 'linux', 'target': 'x86_64:'}, + {'platform': 'cray', 'target': 'x86_64:'} + ], + 'powerpc64le-unknown-linux-gnu': [ + {'platform': 'linux', 'target': 'ppc64le:'}, + {'platform': 'cray', 'target': 'ppc64le:'} + ], + 'aarch64-unknown-linux-gnu': [ + {'platform': 'linux', 'target': 'aarch64:'}, + {'platform': 'cray', 'target': 'aarch64:'} + ], + 'x86_64-apple-darwin': [ + {'platform': 'darwin', 'target': 'x86_64:'} + ] + } - # Cargo - depends_on("openssl") + # This loop generates resources for each binary distribution, and maps + # them to the version of the compiler they bootstrap. This is in place + # of listing each resource explicitly, which would be potentially even + # more verbose. + # + # NOTE: This loop should technically specify the architecture to be the + # _host_ architecture, not the target architecture, in order to support + # cross compiling. I'm not sure Spack provides a way to specify a + # distinction in the when clause, though. + for rust_version, rust_targets in iteritems(rust_releases): + for rust_target, rust_sha256 in iteritems(rust_targets): + for rust_arch in rust_archs[rust_target]: + resource( + name='rust-{version}-{target}'.format( + version=rust_version, + target=rust_target + ), + url='https://static.rust-lang.org/dist/rust-{version}-{target}.tar.gz'.format( + version=rust_version, + target=rust_target + ), + sha256=rust_sha256, + destination='spack_bootstrap_stage', + when='@{version} platform={platform} target={target}'\ + .format( + version=rust_version, + platform=rust_arch['platform'], + target=rust_arch['target'] + ) + ) - phases = ['configure', 'install'] + # This routine returns the target architecture we intend to build for. + def get_rust_target(self): + if 'platform=linux' in self.spec or 'platform=cray' in self.spec: + if 'target=x86_64:' in self.spec: + return 'x86_64-unknown-linux-gnu' + elif 'target=ppc64le:' in self.spec: + return 'powerpc64le-unknown-linux-gnu' + elif 'target=aarch64:' in self.spec: + return 'aarch64-unknown-linux-gnu' + elif 'platform=darwin target=x86_64:' in self.spec: + return 'x86_64-apple-darwin' + + raise InstallError( + "rust is not supported for '{0}'".format( + self.spec.architecture + )) def configure(self, spec, prefix): - configure_args = [ - '--prefix=%s' % prefix, - '--llvm-root=' + spec['llvm'].prefix, - # Workaround for "FileCheck does not exist" error - '--disable-codegen-tests', - # Includes Cargo in the build - # https://github.com/rust-lang/cargo/issues/3772#issuecomment-283109482 - '--enable-extended', - # Prevent build from writing bash completion into system path - '--sysconfdir=%s' % join_path(prefix, 'etc/') - ] - - configure(*configure_args) - - # Build system defaults to searching in the same path as Spack's - # compiler wrappers which causes the build to fail - filter_file( - '#ar = "ar"', - 'ar = "%s"' % join_path(spec['binutils'].prefix.bin, 'ar'), - 'config.toml') + target = self.get_rust_target() + # See the NOTE above the resource loop - should be host architecture, + # not target aarchitecture if we're to support cross-compiling. + bootstrapping_install = Executable( + './spack_bootstrap_stage/rust-{version}-{target}/install.sh' + .format( + version=spec.version, + target=target + ) + ) + # install into the staging area + bootstrapping_install('--prefix={0}'.format( + join_path(self.stage.source_path, 'spack_bootstrap') + )) + + boot_bin = join_path(self.stage.source_path, 'spack_bootstrap/bin') + + # Always build rustc and cargo + tools = ['rustc', 'cargo'] + # Only make additional components available in 'rust-bootstrap' + if '+rustfmt' in self.spec: + tools.append('rustfmt') + if '+analysis' in self.spec: + tools.append('analysis') + if '@1.33: +clippy' in self.spec: + tools.append('clippy') + if '+rls' in self.spec: + tools.append('rls') + if '+src' in self.spec: + tools.append('src') + + ar = which('ar', required=True) + + # build.tools was introduced in Rust 1.25 + tools_spec = 'tools={0}'.format(tools) if '@1.25:' in self.spec else '' + # This is a temporary fix due to rust 1.42 breaking self bootstrapping + # See: https://github.com/rust-lang/rust/issues/69953 + # + # In general, this should be safe because bootstrapping typically + # ensures everything but the bootstrapping script is warning free for + # the latest set of warning. + deny_warnings_spec = \ + 'deny-warnings = false' if '@1.42.0' in self.spec else '' + + with open('config.toml', 'w') as out_file: + out_file.write("""\ +[build] +cargo = "{cargo}" +rustc = "{rustc}" +docs = false +vendor = true +extended = true +verbose = 2 +{tools_spec} + +[rust] +channel = "stable" +rpath = true +{deny_warnings_spec} + +[target.{target}] +ar = "{ar}" + +[install] +prefix = "{prefix}" +sysconfdir = "etc" +""".format( + cargo=join_path(boot_bin, 'cargo'), + rustc=join_path(boot_bin, 'rustc'), + prefix=prefix, + target=target, + deny_warnings_spec=deny_warnings_spec, + ar=ar.path, + tools_spec=tools_spec + ) + ) + + def build(self, spec, prefix): + python('./x.py', 'build', extra_env={ + # vendored libgit2 wasn't correctly building (couldn't find the + # vendored libssh2), so let's just have spack build it + 'LIBSSH2_SYS_USE_PKG_CONFIG': '1', + 'LIBGIT2_SYS_USE_PKG_CONFIG': '1' + }) def install(self, spec, prefix): - make() - make("install") + python('./x.py', 'install') diff --git a/var/spack/repos/builtin/packages/samtools/package.py b/var/spack/repos/builtin/packages/samtools/package.py index ad1eb5e38d..bce5fe7b52 100644 --- a/var/spack/repos/builtin/packages/samtools/package.py +++ b/var/spack/repos/builtin/packages/samtools/package.py @@ -11,8 +11,8 @@ class Samtools(Package): the SAM format, including sorting, merging, indexing and generating alignments in a per-position format""" - homepage = "www.htslib.org" - url = "https://github.com/samtools/samtools/releases/download/1.3.1/samtools-1.3.1.tar.bz2" + homepage = "http://www.htslib.org" + url = "https://github.com/samtools/samtools/releases/download/1.3.1/samtools-1.3.1.tar.bz2" version('1.10', sha256='7b9ec5f05d61ec17bd9a82927e45d8ef37f813f79eb03fe06c88377f1bd03585') version('1.9', sha256='083f688d7070082411c72c27372104ed472ed7a620591d06f928e653ebc23482') diff --git a/var/spack/repos/builtin/packages/scr/package.py b/var/spack/repos/builtin/packages/scr/package.py index 63d0af34eb..3e0e1456cd 100644 --- a/var/spack/repos/builtin/packages/scr/package.py +++ b/var/spack/repos/builtin/packages/scr/package.py @@ -17,7 +17,10 @@ class Scr(CMakePackage): url = "https://github.com/LLNL/scr/archive/v1.2.0.tar.gz" git = "https://github.com/llnl/scr.git" - version('master', branch='master') + version('develop', branch='develop') + version('legacy', branch='legacy') + + version('2.0.0', sha256='471978ae0afb56a20847d3989b994fbd680d1dea21e77a5a46a964b6e3deed6b') version('1.2.2', sha256='764a85638a9e8762667ec1f39fa5f7da7496fca78de379a22198607b3e027847') version('1.2.1', sha256='23acab2dc7203e9514455a5168f2fd57bc590affb7a1876912b58201513628fe') version('1.2.0', sha256='e3338ab2fa6e9332d2326c59092b584949a083a876adf5a19d4d5c7a1bbae047') @@ -26,6 +29,14 @@ class Scr(CMakePackage): depends_on('zlib') depends_on('mpi') + # SCR legacy is anything 2.x.x or earlier + # SCR components is anything 3.x.x or later + depends_on('er', when="@3:") + depends_on('kvtree', when="@3:") + depends_on('rankstr', when="@3:") + depends_on('filo', when="@3:") + depends_on('spath', when="@3:") + variant('dtcmp', default=True, description="Build with DTCMP. " "Necessary to enable user directory naming at runtime") diff --git a/var/spack/repos/builtin/packages/seacas/package.py b/var/spack/repos/builtin/packages/seacas/package.py index 0e5ac9b72a..f9790370a0 100644 --- a/var/spack/repos/builtin/packages/seacas/package.py +++ b/var/spack/repos/builtin/packages/seacas/package.py @@ -26,6 +26,8 @@ class Seacas(CMakePackage): # ###################### Versions ########################## version('master', branch='master') + version('2020-03-16', sha256='2eb404f3dcb17c3e7eacf66978372830d40ef3722788207741fcd48417807af6') + version('2020-01-16', sha256='5ae84f61e410a4f3f19153737e0ac0493b144f20feb1bbfe2024f76613d8bff5') version('2019-12-18', sha256='f82cfa276ebc5fe6054852383da16eba7a51c81e6640c73b5f01fc3109487c6f') version('2019-10-14', sha256='ca4cf585cdbc15c25f302140fe1f61ee1a30d72921e032b9a854492b6c61fb91') version('2019-08-20', sha256='a82c1910c2b37427616dc3716ca0b3c1c77410db6723aefb5bea9f47429666e5') diff --git a/var/spack/repos/builtin/packages/sentencepiece/package.py b/var/spack/repos/builtin/packages/sentencepiece/package.py new file mode 100644 index 0000000000..f3b168db66 --- /dev/null +++ b/var/spack/repos/builtin/packages/sentencepiece/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 Sentencepiece(CMakePackage): + """Unsupervised text tokenizer for Neural Network-based text generation. + + This is the C++ package.""" + + homepage = "https://github.com/google/sentencepiece" + url = "https://github.com/google/sentencepiece/archive/v0.1.85.tar.gz" + + maintainers = ['adamjstewart'] + + version('0.1.85', sha256='dd4956287a1b6af3cbdbbd499b7227a859a4e3f41c9882de5e6bdd929e219ae6') + + depends_on('cmake@3.1:', type='build') + depends_on('gperftools') # optional, 10-40% performance improvement diff --git a/var/spack/repos/builtin/packages/shuffile/package.py b/var/spack/repos/builtin/packages/shuffile/package.py index 1dc23f1a2c..e7a8da2c0e 100644 --- a/var/spack/repos/builtin/packages/shuffile/package.py +++ b/var/spack/repos/builtin/packages/shuffile/package.py @@ -9,8 +9,8 @@ from spack import * class Shuffile(CMakePackage): """Shuffle files between MPI ranks""" - homepage = "https://github.com/ECP-VeloC/shuffile" - url = "https://github.com/ECP-VeloC/shuffile/archive/v0.0.3.zip" + homepage = "https://github.com/ecp-veloc/shuffile" + url = "https://github.com/ecp-veloc/shuffile/archive/v0.0.3.zip" git = "https://github.com/ecp-veloc/shuffile.git" tags = ['ecp'] diff --git a/var/spack/repos/builtin/packages/silo/package.py b/var/spack/repos/builtin/packages/silo/package.py index ef39dfdaaf..98e8b4be15 100644 --- a/var/spack/repos/builtin/packages/silo/package.py +++ b/var/spack/repos/builtin/packages/silo/package.py @@ -28,17 +28,26 @@ class Silo(AutotoolsPackage): variant('mpi', default=True, description='Compile with MPI Compatibility') + depends_on('hdf5@:1.10.999', when='@:4.10.2') depends_on('hdf5~mpi', when='~mpi') depends_on('mpi', when='+mpi') depends_on('hdf5+mpi', when='+mpi') - depends_on('qt', when='+silex') + depends_on('qt~framework@4.8:4.9', when='+silex') + depends_on('libx11', when='+silex') + depends_on('readline') depends_on('zlib') patch('remove-mpiposix.patch', when='@4.8:4.10.2') def flag_handler(self, name, flags): - if name == 'ldflags' and self.spec['hdf5'].satisfies('~shared'): - flags.append('-ldl') + spec = self.spec + if name == 'ldflags': + if spec['hdf5'].satisfies('~shared'): + flags.append('-ldl') + flags.append(spec['readline'].libs.search_flags) + elif name in ('cflags', 'cxxflags', 'fcflags'): + if '+pic' in spec: + flags.append(self.compiler.pic_flag) return (flags, None, None) @when('%clang@9:') @@ -81,13 +90,13 @@ class Silo(AutotoolsPackage): ] if '+silex' in spec: - config_args.append('--with-Qt-dir=%s' % spec['qt'].prefix) - - if '+pic' in spec: - config_args += [ - 'CFLAGS={0}'.format(self.compiler.pic_flag), - 'CXXFLAGS={0}'.format(self.compiler.pic_flag), - 'FCFLAGS={0}'.format(self.compiler.pic_flag)] + x = spec['libx11'] + config_args.extend([ + '--with-Qt-dir=' + spec['qt'].prefix, + '--with-Qt-lib=QtGui -lQtCore', + '--x-includes=' + x.prefix.include, + '--x-libraries=' + x.prefix.lib, + ]) if '+mpi' in spec: config_args.append('CC=%s' % spec['mpi'].mpicc) diff --git a/var/spack/repos/builtin/packages/sirius/package.py b/var/spack/repos/builtin/packages/sirius/package.py index 5ac903e263..f45aa07781 100644 --- a/var/spack/repos/builtin/packages/sirius/package.py +++ b/var/spack/repos/builtin/packages/sirius/package.py @@ -19,6 +19,8 @@ class Sirius(CMakePackage, CudaPackage): version('develop', branch='develop') version('master', branch='master') + version('6.5.0', sha256='5544f3abbb71dcd6aa08d18aceaf53c38373de4cbd0c3af44fbb39c20cfeb7cc') + version('6.4.4', sha256='1c5de9565781847658c3cc11edcb404e6e6d1c5a9dfc81e977de7a9a7a162c8a') version('6.4.3', sha256='4d1effeadb84b3e1efd7d9ac88018ef567aa2e0aa72e1112f0abf2e493e2a189') version('6.4.2', sha256='40b9b66deebb6538fc0f4cd802554d0d763ea6426b9b2f0e8db8dc617e494479') version('6.4.1', sha256='86f25c71517952a63e92e0a9bcf66d27e4afb2b0d67cf84af480f116b8e7f53c') @@ -59,7 +61,7 @@ class Sirius(CMakePackage, CudaPackage): depends_on('py-pybind11', when='+python', type=('build', 'run')) depends_on('magma', when='+magma') - depends_on('spfft', when='@6.4.0:~cuda') + depends_on('spfft', when='@6.4.0:') depends_on('spfft+cuda', when='@6.4.0:+cuda') depends_on('elpa+openmp', when='+elpa+openmp') depends_on('elpa~openmp', when='+elpa~openmp') diff --git a/var/spack/repos/builtin/packages/slepc/package.py b/var/spack/repos/builtin/packages/slepc/package.py index 2c72af0342..6d3bb5dba2 100644 --- a/var/spack/repos/builtin/packages/slepc/package.py +++ b/var/spack/repos/builtin/packages/slepc/package.py @@ -11,8 +11,8 @@ from spack import * class Slepc(Package): """Scalable Library for Eigenvalue Problem Computations.""" - homepage = "http://slepc.upv.es" - url = "http://slepc.upv.es/download/distrib/slepc-3.6.2.tar.gz" + homepage = "https://slepc.upv.es" + url = "https://slepc.upv.es/download/distrib/slepc-3.6.2.tar.gz" git = "https://gitlab.com/slepc/slepc.git" maintainers = ['joseeroman', 'balay'] diff --git a/var/spack/repos/builtin/packages/source-highlight/package.py b/var/spack/repos/builtin/packages/source-highlight/package.py new file mode 100644 index 0000000000..eee706518a --- /dev/null +++ b/var/spack/repos/builtin/packages/source-highlight/package.py @@ -0,0 +1,21 @@ +# 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 SourceHighlight(AutotoolsPackage, GNUMirrorPackage): + """This program, given a source file, produces a document with syntax + highlighting. It also provides a C++ highlight library + (since version 3.0). """ + + homepage = "https://www.gnu.org/software/src-highlite/" + gnu_mirror_path = "src-highlite/source-highlight-3.1.8.tar.gz" + + version('3.1.9', sha256='3a7fd28378cb5416f8de2c9e77196ec915145d44e30ff4e0ee8beb3fe6211c91') + version('3.1.8', sha256='01336a7ea1d1ccc374201f7b81ffa94d0aecb33afc7d6903ebf9fbf33a55ada3') + + depends_on('boost') diff --git a/var/spack/repos/builtin/packages/spath/package.py b/var/spack/repos/builtin/packages/spath/package.py new file mode 100644 index 0000000000..5ccd259f48 --- /dev/null +++ b/var/spack/repos/builtin/packages/spath/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 Spath(CMakePackage): + """Represent and manipulate file system paths""" + + homepage = "https://github.com/ecp-veloc/spath" + git = "https://github.com/ecp-veloc/spath.git" + + tags = ['ecp'] + + version('master', branch='master') + + variant('mpi', default=True, description="Build with MPI support.") + depends_on('mpi', when='+mpi') + + def cmake_args(self): + args = [] + + if self.spec.satisfies('platform=cray'): + args.append("-DSPATH_LINK_STATIC=ON") + + if "+mpi" in self.spec: + args.append('-DMPI=ON') + args.append("-DMPI_C_COMPILER=%s" % self.spec['mpi'].mpicc) + else: + args.append('-DMPI=OFF') + + return args diff --git a/var/spack/repos/builtin/packages/spdlog/package.py b/var/spack/repos/builtin/packages/spdlog/package.py index e4aad3bf42..15a0cc1d9d 100644 --- a/var/spack/repos/builtin/packages/spdlog/package.py +++ b/var/spack/repos/builtin/packages/spdlog/package.py @@ -12,6 +12,8 @@ class Spdlog(CMakePackage): homepage = "https://github.com/gabime/spdlog" url = "https://github.com/gabime/spdlog/archive/v0.9.0.tar.gz" + version('1.5.0', sha256='b38e0bbef7faac2b82fed550a0c19b0d4e7f6737d5321d4fd8f216b80f8aee8a') + version('1.4.2', sha256='821c85b120ad15d87ca2bc44185fa9091409777c756029125a02f81354072157') version('1.4.1', sha256='3291958eb54ed942d1bd3aef1b4f8ccf70566cbc04d34296ec61eb96ceb73cff') version('1.2.1', sha256='867a4b7cedf9805e6f76d3ca41889679054f7e5a3b67722fe6d0eae41852a767') version('1.2.0', sha256='0ba31b9e7f8e43a7be328ab0236d57810e5d4fc8a1a7842df665ae22d5cbd128') diff --git a/var/spack/repos/builtin/packages/spiral/package.py b/var/spack/repos/builtin/packages/spiral/package.py new file mode 100644 index 0000000000..5011875e13 --- /dev/null +++ b/var/spack/repos/builtin/packages/spiral/package.py @@ -0,0 +1,65 @@ +# 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 Spiral(CMakePackage): + """SPIRAL is a program generation system for linear transforms and other + mathematical functions that produces very high performance code for a wide + spectrum of hardware platforms.""" + + homepage = "https://spiral.net" + url = "https://github.com/spiral-software/spiral-software/archive/8.1.2.tar.gz" + + maintainers = ['spiralgen'] + + version('8.1.2', sha256='506f1dbf923aa1c9f19f05444fa947085715eef37c9d2494d133fcaaa1dd50bc') + + extendable = True + + # No dependencies. + + def build(self, spec, prefix): + with working_dir(self.build_directory): + make('all') + make('install/local') + + # For some reason the make install/local doesn't seem to install + # the gap exe...though it does work if run manually + gapfil = join_path(self.build_directory, 'gap/src/gap') + dest = join_path(self.stage.source_path, 'gap/bin') + install(gapfil, dest) + + def install(self, spec, prefix): + mkdirp(prefix.gap.bin) + gapfil = join_path(self.build_directory, 'gap/src/gap') + install(gapfil, prefix.gap.bin) + with working_dir(join_path(self.build_directory, 'gap')): + files = ('spiral', 'spirald', '_spiral.g') + for fil in files: + install(fil, prefix) + set_executable(join_path(prefix, fil)) + + with working_dir(self.stage.source_path): + files = ('LICENSE', 'README.md', 'ReleaseNotes.md') + for fil in files: + install(fil, prefix) + + mkdirp(prefix.gap.lib) + mkdirp(prefix.gap.grp) + mkdirp(prefix.namespaces) + mkdirp(prefix.profiler) + mkdirp(prefix.tests) + + print("self.stage.source_path = " + self.stage.source_path) + with working_dir(self.stage.source_path): + install_tree('namespaces', prefix.namespaces) + install_tree('profiler', prefix.profiler) + install_tree('tests', prefix.tests) + + with working_dir(join_path(self.stage.source_path, 'gap')): + install_tree('lib', prefix.gap.lib) + install_tree('grp', prefix.gap.grp) diff --git a/var/spack/repos/builtin/packages/sqlite/package.py b/var/spack/repos/builtin/packages/sqlite/package.py index f8dd0e4948..4e79463f36 100644 --- a/var/spack/repos/builtin/packages/sqlite/package.py +++ b/var/spack/repos/builtin/packages/sqlite/package.py @@ -38,7 +38,7 @@ class Sqlite(AutotoolsPackage): '(unsafe for <3.26.0.0 due to Magellan).') variant('rtree', default=False, description='Build with Rtree module') - variant('column_metadata', default=False, description="Build with COLUMN_METADATA") + variant('column_metadata', default=True, description="Build with COLUMN_METADATA") # See https://blade.tencent.com/magellan/index_en.html conflicts('+fts', when='@:3.25.99.99') diff --git a/var/spack/repos/builtin/packages/ssht/float_conversion.patch b/var/spack/repos/builtin/packages/ssht/float_conversion.patch new file mode 100644 index 0000000000..af81bcafd8 --- /dev/null +++ b/var/spack/repos/builtin/packages/ssht/float_conversion.patch @@ -0,0 +1,11 @@ +--- spack-src/src/c/ssht_sampling.h ++++ spack-src/src/c/ssht_sampling.h +@@ -89,7 +89,7 @@ + */ + static inline void ssht_sampling_ind2elm(int *el, int *m, int ind) { + +- *el = sqrt(ind); ++ *el = lrint(floor(sqrt(ind))); + *m = ind - (*el)*(*el) - (*el); + + } diff --git a/var/spack/repos/builtin/packages/ssht/package.py b/var/spack/repos/builtin/packages/ssht/package.py index 293ab0eedd..7a4cd4857b 100644 --- a/var/spack/repos/builtin/packages/ssht/package.py +++ b/var/spack/repos/builtin/packages/ssht/package.py @@ -7,18 +7,41 @@ from spack import * class Ssht(Package): - """The SSHT code provides functionality to perform fast and exact - spin spherical harmonic transforms.""" + """ssht: Spin spherical harmonic transforms + + The SSHT code provides functionality to perform fast and exact + spin spherical harmonic transforms based on the sampling theorem + on the sphere derived in our paper: A novel sampling theorem on + the sphere <http://dx.doi.org/10.1109/TSP.2011.2166394>. + """ homepage = "https://astro-informatics.github.io/ssht/" git = "https://github.com/astro-informatics/ssht.git" + maintainers = ['eschnett'] + version('1.2b1', commit='7378ce8853897cbd1b08adebf7ec088c1e40f860') depends_on('fftw') + patch('float_conversion.patch') + def install(self, spec, prefix): - make('default') - install_tree('include/c', join_path(prefix, 'include')) + make('default', 'SSHTDIR=.') + mkdirp(join_path(prefix, 'include')) + install('src/c/ssht.h', + join_path(prefix, 'include', 'ssht.h')) + install('src/c/ssht_adjoint.h', + join_path(prefix, 'include', 'ssht_adjoint.h')) + install('src/c/ssht_core.h', + join_path(prefix, 'include', 'ssht_core.h')) + install('src/c/ssht_dl.h', + join_path(prefix, 'include', 'ssht_dl.h')) + install('src/c/ssht_error.h', + join_path(prefix, 'include', 'ssht_error.h')) + install('src/c/ssht_sampling.h', + join_path(prefix, 'include', 'ssht_sampling.h')) + install('src/c/ssht_types.h', + join_path(prefix, 'include', 'ssht_types.h')) install_tree('doc/c', join_path(prefix, 'doc')) install_tree('lib/c', join_path(prefix, 'lib')) diff --git a/var/spack/repos/builtin/packages/stat/package.py b/var/spack/repos/builtin/packages/stat/package.py index 86338a2b9d..2db8a33ab8 100644 --- a/var/spack/repos/builtin/packages/stat/package.py +++ b/var/spack/repos/builtin/packages/stat/package.py @@ -14,6 +14,8 @@ class Stat(AutotoolsPackage): git = "https://github.com/llnl/stat.git" version('develop', branch='develop') + version('4.0.2', sha256='9ece10dde8e1579c9db469ac8d2391b26e59498c0947dbb271c2d01d7ef0a65d', + url='https://github.com/LLNL/STAT/releases/download/v4.0.2/stat-4.0.2.tar.gz') version('4.0.1', sha256='ae3fbd6946003fb16233d82d40285780a9a802da5fe30d09adb8a8b2a2cc4ad6', url='https://github.com/LLNL/STAT/files/2489327/stat-4.0.1.tar.gz') version('4.0.0', sha256='1c4f62686645f6dc1d9ef890acc9c2839c150789dc220718775878feb41bdabf', diff --git a/var/spack/repos/builtin/packages/suite-sparse/package.py b/var/spack/repos/builtin/packages/suite-sparse/package.py index 0e6a27f1dd..20c1dbd88e 100644 --- a/var/spack/repos/builtin/packages/suite-sparse/package.py +++ b/var/spack/repos/builtin/packages/suite-sparse/package.py @@ -14,6 +14,7 @@ class SuiteSparse(Package): url = 'https://github.com/DrTimothyAldenDavis/SuiteSparse/archive/v4.5.3.tar.gz' git = 'https://github.com/DrTimothyAldenDavis/SuiteSparse.git' + version('5.7.1', sha256='5ba5add1663d51a1b6fb128b50fe869b497f3096765ff7f8212f0ede044b9557') version('5.6.0', sha256='76d34d9f6dafc592b69af14f58c1dc59e24853dcd7c2e8f4c98ffa223f6a1adb') version('5.5.0', sha256='63c73451734e2bab19d1915796c6776565ea6aea5da4063a9797ecec60da2e3d') version('5.4.0', sha256='d9d62d539410d66550d0b795503a556830831f50087723cb191a030525eda770') @@ -130,8 +131,7 @@ class SuiteSparse(Package): # In those SuiteSparse versions calling "make install" in one go is # not possible, mainly because of GraphBLAS. Thus compile first and # install in a second run. - if (self.spec.version >= Version('5.4.0') and - self.spec.version <= Version('5.6.0')): + if '@5.4.0:' in self.spec: make('default', *make_args) make_args.append('INSTALL=%s' % prefix) diff --git a/var/spack/repos/builtin/packages/swig/package.py b/var/spack/repos/builtin/packages/swig/package.py index ac48fb1246..ebc04dd077 100644 --- a/var/spack/repos/builtin/packages/swig/package.py +++ b/var/spack/repos/builtin/packages/swig/package.py @@ -23,6 +23,7 @@ class Swig(AutotoolsPackage): url = "http://prdownloads.sourceforge.net/swig/swig-3.0.12.tar.gz" version('master', git='https://github.com/swig/swig.git') + version('4.0.1', sha256='7a00b4d0d53ad97a14316135e2d702091cd5f193bb58bcfcd8bc59d41e7887a9') version('4.0.0', sha256='e8a39cd6437e342cdcbd5af27a9bf11b62dc9efec9248065debcb8276fcbb925') version('3.0.12', sha256='7cf9f447ae7ed1c51722efc45e7f14418d15d7a1e143ac9f09a668999f4fc94d') version('3.0.11', sha256='d9031d531d7418829a54d0d51c4ed9007016b213657ec70be44031951810566e') diff --git a/var/spack/repos/builtin/packages/sz/package.py b/var/spack/repos/builtin/packages/sz/package.py index 3453a5675e..0982883e29 100644 --- a/var/spack/repos/builtin/packages/sz/package.py +++ b/var/spack/repos/builtin/packages/sz/package.py @@ -3,21 +3,20 @@ # # SPDX-License-Identifier: (Apache-2.0 OR MIT) - from spack import * -class Sz(AutotoolsPackage): - """Error-bounded Lossy Compressor for HPC Data.""" +class Sz(CMakePackage): + """Error-bounded Lossy Compressor for HPC Data""" homepage = "https://collab.cels.anl.gov/display/ESR/SZ" url = "https://github.com/disheng222/SZ/archive/v2.1.8.0.tar.gz" + git = "https://github.com/disheng222/sz" maintainers = ['disheng222'] - parallel = False - - git = "https://github.com/disheng222/SZ.git" version('develop', branch='master') + version('2.1.8.3', sha256='be94f3c8ab03d6849c59a98e0ebf80816a6b8d07a1d762a4b285498acb2f3871') + version('2.1.8.1', sha256='a27c9c9da16c9c4232c54813ba79178945f47609043f11501d49a171e47d3f46') version('2.1.8.0', sha256='8d6bceb59a03d52e601e29d9b35c21b146c248abae352f9a4828e91d8d26aa24') version('2.0.2.0', sha256='176c65b421bdec8e91010ffbc9c7bf7852c799972101d6b66d2a30d9702e59b0') version('1.4.13.5', sha256='b5e37bf3c377833eed0a7ca0471333c96cd2a82863abfc73893561aaba5f18b9') @@ -32,17 +31,88 @@ class Sz(AutotoolsPackage): version('1.4.10.0', sha256='cf23cf1ffd7c69c3d3128ae9c356b6acdc03a38f92c02db5d9bfc04f3fabc506') version('1.4.9.2', sha256='9dc785274d068d04c2836955fc93518a9797bfd409b46fea5733294b7c7c18f8') - variant('fortran', default=False, - description='Enable fortran compilation') + variant('python', default=False, description="builds the python wrapper") + variant('netcdf', default=False, description="build the netcdf reader") + variant('hdf5', default=False, description="build the hdf5 filter") + variant('pastri', default=False, description="build the pastri mode") + variant('time_compression', default=False, description="build the time based compression mode") + variant('random_access', default=False, description="build the random access compression mode") + variant('fortran', default=False, description='Enable fortran compilation') + variant('shared', default=True, description="build shared versions of the libraries") # Part of latest sources don't support -O3 optimization # with Fujitsu compiler. patch('fix_optimization.patch', when='@2.0.2.0:%fj') - def configure_args(self): + depends_on('zlib') + depends_on('zstd') + + extends('python', when="+python") + depends_on('python@3:', when="+python", type=('build', 'link', 'run')) + depends_on('swig@3.12:', when="+python", type='build') + depends_on('py-numpy', when="+python", type=('build', 'link', 'run')) + depends_on('hdf5', when="+hdf5") + depends_on('netcdf-c', when="+netcdf") + + @property + def build_directory(self): + """autotools needs a different build directory to work""" + if self.version >= Version("2.1.8.1"): + return "spack-build" + else: + return "." + + @when("@:2.1.8.0") + def cmake(self, spec, prefix): + """use autotools before 2.1.8.1""" + configure_args = ["--prefix=" + prefix] + if "+fortran" in spec: + configure_args.append("--enable-fortran") + else: + configure_args.append("--disable-fortran") + configure(*configure_args) + + def cmake_args(self): + """configure the package with CMake for version 2.1.8.1 and later""" args = [] - if '+fortran' in self.spec: - args += ['--enable-fortran'] + + if "+python" in self.spec: + args.append("-DBUILD_PYTHON_WRAPPER=ON") + else: + args.append("-DBUILD_PYTHON_WRAPPER=OFF") + + if "+netcdf" in self.spec: + args.append("-DBUILD_NETCDF_READER=ON") + else: + args.append("-DBUILD_NETCDF_READER=OFF") + + if "+hdf5" in self.spec: + args.append("-DBUILD_HDF5_FILTER=ON") + else: + args.append("-DBUILD_HDF5_FILTER=OFF") + + if "+pastri" in self.spec: + args.append("-DBUILD_PASTRI=ON") + else: + args.append("-DBUILD_PASTRI=OFF") + + if "+time_compression" in self.spec: + args.append("-DBUILD_TIMECMPR=ON") + else: + args.append("-DBUILD_TIMECMPR=OFF") + + if "+random_access" in self.spec: + args.append("-DBUILD_RANDOMACCESS=ON") + else: + args.append("-DBUILD_RANDOMACCESS=OFF") + + if "+fortran" in self.spec: + args.append("-DBUILD_FORTRAN=ON") + else: + args.append("-DBUILD_FORTRAN=OFF") + + if "+shared" in self.spec: + args.append("-DBUILD_SHARED_LIBS=ON") else: - args += ['--disable-fortran'] + args.append("-DBUILD_SHARED_LIBS=OFF") return args diff --git a/var/spack/repos/builtin/packages/tau/package.py b/var/spack/repos/builtin/packages/tau/package.py index c5ac0a43e8..0329841029 100644 --- a/var/spack/repos/builtin/packages/tau/package.py +++ b/var/spack/repos/builtin/packages/tau/package.py @@ -67,6 +67,8 @@ class Tau(Package): variant('cuda', default=False, description='Activates CUDA support') variant('fortran', default=darwin_default, description='Activates Fortran support') variant('io', default=True, description='Activates POSIX I/O support') + variant('adios2', default=False, description='Activates ADIOS2 output support') + variant('sqlite', default=False, description='Activates SQLite3 output support') # Support cross compiling. # This is a _reasonable_ subset of the full set of TAU @@ -85,18 +87,23 @@ class Tau(Package): depends_on('libdwarf', when='+libdwarf') depends_on('libelf', when='+libdwarf') # TAU requires the ELF header support, libiberty and demangle. - depends_on('binutils+libiberty+headers~nls', when='+binutils') + depends_on('binutils@:2.33.1+libiberty+headers~nls', when='+binutils') depends_on('python@2.7:', when='+python') depends_on('libunwind', when='+libunwind') - depends_on('mpi', when='+mpi') + depends_on('mpi', when='+mpi', type=('build', 'run', 'link')) depends_on('cuda', when='+cuda') depends_on('gasnet', when='+gasnet') + depends_on('adios2', when='+adios2') + depends_on('sqlite', when='+sqlite') + depends_on('hwloc') # Elf only required from 2.28.1 on conflicts('+libelf', when='@:2.28.0') conflicts('+libdwarf', when='@:2.28.0') - filter_compiler_wrappers('tau_cc.sh', 'Makefile.tau', relative_root='bin') + # ADIOS2, SQLite only available from 2.29.1 on + conflicts('+adios2', when='@:2.29.1') + conflicts('+sqlite', when='@:2.29.1') def set_compiler_options(self, spec): @@ -145,8 +152,7 @@ class Tau(Package): # TAU configure, despite the name , seems to be a manually # written script (nothing related to autotools). As such it has # a few #peculiarities# that make this build quite hackish. - options = ["-prefix=%s" % prefix, - "-iowrapper"] + options = ["-prefix=%s" % prefix] if '+craycnl' in spec: options.append('-arch=craycnl') @@ -206,6 +212,11 @@ class Tau(Package): options.append("-otf=%s" % spec['otf2'].prefix) if '+mpi' in spec: + env['CC'] = spec['mpi'].mpicc + env['CXX'] = spec['mpi'].mpicxx + env['F77'] = spec['mpi'].mpif77 + env['FC'] = spec['mpi'].mpifc + options.append('-mpi') if '+comm' in spec: options.append('-PROFILECOMMUNICATORS') @@ -219,6 +230,12 @@ class Tau(Package): if '+cuda' in spec: options.append("-cuda=%s" % spec['cuda'].prefix) + if '+adios2' in spec: + options.append("-adios=%s" % spec['adios2'].prefix) + + if '+sqlite' in spec: + options.append("-sqlite3=%s" % spec['sqlite'].prefix) + if '+phase' in spec: options.append('-PROFILEPHASE') @@ -253,11 +270,15 @@ class Tau(Package): compiler_specific_options = self.set_compiler_options(spec) options.extend(compiler_specific_options) configure(*options) + make("install") # Link arch-specific directories into prefix since there is # only one arch per prefix the way spack installs. self.link_tau_arch_dirs() + # TAU may capture Spack's internal compiler wrapper. Replace + # it with the correct compiler. + self.fix_tau_compilers() def link_tau_arch_dirs(self): for subdir in os.listdir(self.prefix): @@ -267,6 +288,22 @@ class Tau(Package): if os.path.isdir(src) and not os.path.exists(dest): os.symlink(join_path(subdir, d), dest) + def fix_tau_compilers(self): + filter_file('FULL_CC=' + spack_cc, 'FULL_CC=' + self.compiler.cc, + self.prefix + '/include/Makefile', backup=False, + string=True) + filter_file('FULL_CXX=' + spack_cxx, 'FULL_CXX=' + + self.compiler.cxx, self.prefix + '/include/Makefile', + backup=False, string=True) + for makefile in os.listdir(self.prefix.lib): + if makefile.startswith('Makefile.tau'): + filter_file('FULL_CC=' + spack_cc, 'FULL_CC=' + + self.compiler.cc, self.prefix.lib + "/" + + makefile, backup=False, string=True) + filter_file('FULL_CXX=' + spack_cxx, 'FULL_CXX=' + + self.compiler.cxx, self.prefix.lib + + "/" + makefile, backup=False, string=True) + def setup_run_environment(self, env): pattern = join_path(self.prefix.lib, 'Makefile.*') files = glob.glob(pattern) diff --git a/var/spack/repos/builtin/packages/tcsh/package.py b/var/spack/repos/builtin/packages/tcsh/package.py index 19bdde1503..90625e352d 100644 --- a/var/spack/repos/builtin/packages/tcsh/package.py +++ b/var/spack/repos/builtin/packages/tcsh/package.py @@ -15,10 +15,11 @@ class Tcsh(AutotoolsPackage): syntax.""" homepage = "http://www.tcsh.org/" - url = "http://ftp.funet.fi/pub/mirrors/ftp.astron.com/pub/tcsh/old/tcsh-6.20.00.tar.gz" + url = "http://ftp.funet.fi/pub/mirrors/ftp.astron.com/pub/tcsh/tcsh-6.20.00.tar.gz" + list_url = "http://ftp.funet.fi/pub/mirrors/ftp.astron.com/pub/tcsh/old/" - version('6.21.00', sha256='c438325448371f59b12a4c93bfd3f6982e6f79f8c5aef4bc83aac8f62766e972', - url='http://ftp.funet.fi/pub/mirrors/ftp.astron.com/pub/tcsh/tcsh-6.21.00.tar.gz') + version('6.22.02', sha256='ed287158ca1b00ba477e8ea57bac53609838ebcfd05fcb05ca95021b7ebe885b') + version('6.21.00', sha256='c438325448371f59b12a4c93bfd3f6982e6f79f8c5aef4bc83aac8f62766e972') version('6.20.00', sha256='b89de7064ab54dac454a266cfe5d8bf66940cb5ed048d0c30674ea62e7ecef9d') def fedora_patch(commit, file, **kwargs): # noqa @@ -40,7 +41,7 @@ class Tcsh(AutotoolsPackage): # Downstream patches fedora_patch('8a6066c901fb4fc75013dd488ba958387f00c74d', 'tcsh-6.20.00-manpage-memoryuse.patch', sha256='3a4e60fe56a450632140c48acbf14d22850c1d72835bf441e3f8514d6c617a9f') # noqa: E501 - depends_on('ncurses') + depends_on('ncurses+termlib') @run_after('install') def link_csh(self): diff --git a/var/spack/repos/builtin/packages/the-silver-searcher/package.py b/var/spack/repos/builtin/packages/the-silver-searcher/package.py index 905fdabba2..516e744247 100644 --- a/var/spack/repos/builtin/packages/the-silver-searcher/package.py +++ b/var/spack/repos/builtin/packages/the-silver-searcher/package.py @@ -12,6 +12,7 @@ class TheSilverSearcher(AutotoolsPackage): homepage = "http://geoff.greer.fm/ag/" url = "http://geoff.greer.fm/ag/releases/the_silver_searcher-0.32.0.tar.gz" + version('2.2.0', sha256='d9621a878542f3733b5c6e71c849b9d1a830ed77cb1a1f6c2ea441d4b0643170') version('2.1.0', sha256='d4652bd91c3a05e87a15809c5f3f14ad2e5e1f80185af510e3fa4ad2038c15d4') version('0.32.0', sha256='944ca77e498f344b2bfbd8df6d5d8df7bbc1c7e080b50c0bab3d1a9a55151b60') version('0.30.0', sha256='b4bf9e50bf48bc5fde27fc386f7bcad8644ef15a174c862a10813e81bd127e69') diff --git a/var/spack/repos/builtin/packages/tixi/package.py b/var/spack/repos/builtin/packages/tixi/package.py new file mode 100644 index 0000000000..74a7ed7c65 --- /dev/null +++ b/var/spack/repos/builtin/packages/tixi/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 Tixi(CMakePackage): + """TiXI is a fast and simple XML interface library and could be used + from applications written in C, C++, Fortran, JAVA and Python. """ + + homepage = "https://github.com/DLR-SC/tixi" + url = "https://github.com/DLR-SC/tixi/archive/v3.0.3.tar.gz" + git = "https://github.com/DLR-SC/tixi.git" + + version('3.0.3', sha256='3584e0cec6ab811d74fb311a9af0663736b1d7f11b81015fcb378efaf5ad3589') + version('2.2.4', sha256='9080d2a617b7c411b9b4086de23998ce86e261b88075f38c73d3ce25da94b21c') + + depends_on('python', type='build') + depends_on('expat') + depends_on('curl') + depends_on('libxml2') + depends_on('libxslt') diff --git a/var/spack/repos/builtin/packages/tmux/package.py b/var/spack/repos/builtin/packages/tmux/package.py index 6ee165a7b1..e6677668fd 100644 --- a/var/spack/repos/builtin/packages/tmux/package.py +++ b/var/spack/repos/builtin/packages/tmux/package.py @@ -29,13 +29,7 @@ class Tmux(AutotoolsPackage): version('2.1', sha256='31564e7bf4bcef2defb3cb34b9e596bd43a3937cad9e5438701a81a5a9af6176') version('1.9a', sha256='c5e3b22b901cf109b20dab54a4a651f0471abd1f79f6039d79b250d21c2733f5') + # used by configure to e.g. find libtinfo + depends_on('pkgconfig', type='build') depends_on('libevent') depends_on('ncurses') - - def flag_handler(self, name, flags): - if name == 'cppflags': - flags.append(self.spec['ncurses'].headers.include_flags) - return (None, flags, None) - - def configure_args(self): - return ['LIBTINFO_LIBS=-lncurses'] diff --git a/var/spack/repos/builtin/packages/tree/package.py b/var/spack/repos/builtin/packages/tree/package.py index c3823d313c..3f3e480969 100644 --- a/var/spack/repos/builtin/packages/tree/package.py +++ b/var/spack/repos/builtin/packages/tree/package.py @@ -18,6 +18,7 @@ class Tree(Package): homepage = "http://mama.indstate.edu/users/ice/tree/" url = "http://mama.indstate.edu/users/ice/tree/src/tree-1.7.0.tgz" + version('1.8.0', sha256='715d5d4b434321ce74706d0dd067505bb60c5ea83b5f0b3655dae40aa6f9b7c2') version('1.7.0', sha256='6957c20e82561ac4231638996e74f4cfa4e6faabc5a2f511f0b4e3940e8f7b12') def install(self, spec, prefix): @@ -30,6 +31,10 @@ class Tree(Package): 'hash.o', 'color.o' ] + # version 1.8.0 added file.c + if spec.version >= Version('1.8.0'): + objs.append('file.o') + if (sys.platform == 'darwin'): objs.append('strverscmp.o') diff --git a/var/spack/repos/builtin/packages/triangle/package.py b/var/spack/repos/builtin/packages/triangle/package.py index 882b8b472b..f8703f33b3 100644 --- a/var/spack/repos/builtin/packages/triangle/package.py +++ b/var/spack/repos/builtin/packages/triangle/package.py @@ -18,6 +18,8 @@ class Triangle(Package): version('1.6', sha256='1766327add038495fa3499e9b7cc642179229750f7201b94f8e1b7bee76f8480') + depends_on('libx11', type='link') + def install(self, spec, prefix): make() mkdirp(prefix.bin) diff --git a/var/spack/repos/builtin/packages/trilinos/fix_clang_errors_12_18_1.patch b/var/spack/repos/builtin/packages/trilinos/fix_clang_errors_12_18_1.patch new file mode 100644 index 0000000000..6da3f4314d --- /dev/null +++ b/var/spack/repos/builtin/packages/trilinos/fix_clang_errors_12_18_1.patch @@ -0,0 +1,39 @@ +From 01b88601a85691da73042089778db6db5bf6cf01 Mon Sep 17 00:00:00 2001 +From: Jean-Paul Pelteret <jppelteret@gmail.com> +Date: Sat, 1 Feb 2020 05:48:48 +0100 +Subject: [PATCH] Fix Clang 8.0.0 compiler errors 12.18.1 + +--- + packages/belos/tpetra/src/solvers/Belos_Tpetra_Krylov.hpp | 2 +- + packages/muelu/src/Interface/MueLu_ParameterListUtils.cpp | 2 +- + 2 files changed, 2 insertions(+), 2 deletions(-) + +diff --git a/packages/belos/tpetra/src/solvers/Belos_Tpetra_Krylov.hpp b/packages/belos/tpetra/src/solvers/Belos_Tpetra_Krylov.hpp +index d4f72bc..302dfc2 100644 +--- a/packages/belos/tpetra/src/solvers/Belos_Tpetra_Krylov.hpp ++++ b/packages/belos/tpetra/src/solvers/Belos_Tpetra_Krylov.hpp +@@ -126,7 +126,7 @@ public: + virtual void + getDefaultParameters (Teuchos::ParameterList& params) const + { +- const SolverInput<SC> input; ++ const SolverInput<SC> input{}; + const int verbosity = 0; + const std::string implResScal = input.needToScale ? + "Norm of Preconditioned Initial Residual" : "None"; // ??? +diff --git a/packages/muelu/src/Interface/MueLu_ParameterListUtils.cpp b/packages/muelu/src/Interface/MueLu_ParameterListUtils.cpp +index 051a2df..a703aff 100644 +--- a/packages/muelu/src/Interface/MueLu_ParameterListUtils.cpp ++++ b/packages/muelu/src/Interface/MueLu_ParameterListUtils.cpp +@@ -143,7 +143,7 @@ namespace MueLu { + + // Usage: GetMLSubList(paramList, "smoother", 2); + const Teuchos::ParameterList & GetMLSubList(const Teuchos::ParameterList & paramList, const std::string & type, int levelID) { +- static const Teuchos::ParameterList emptyParamList; ++ static const Teuchos::ParameterList emptyParamList{}; + + char levelChar[11]; + sprintf(levelChar, "(level %d)", levelID); +-- +2.10.1 (Apple Git-78) + diff --git a/var/spack/repos/builtin/packages/trilinos/package.py b/var/spack/repos/builtin/packages/trilinos/package.py index 74e6b7f85e..fd623fe8db 100644 --- a/var/spack/repos/builtin/packages/trilinos/package.py +++ b/var/spack/repos/builtin/packages/trilinos/package.py @@ -66,6 +66,10 @@ class Trilinos(CMakePackage): description='Enable explicit template instantiation (ETI)') variant('float', default=False, description='Enable single precision (float) numbers in Trilinos') + variant('gotype', default='long', + values=('int', 'long', 'long_long'), + multi=False, + description='global ordinal type for Tpetra') variant('fortran', default=True, description='Compile with Fortran support') variant('openmp', default=False, @@ -82,18 +86,24 @@ class Trilinos(CMakePackage): description='Compile with Boost') variant('cgns', default=False, description='Enable CGNS') - variant('adios2', default=False, + variant('adios2', default=False, description='Enable ADIOS2') + variant('glm', default=True, + description='Compile with GLM') variant('gtest', default=True, description='Compile with Gtest') variant('hdf5', default=True, description='Compile with HDF5') variant('hypre', default=True, description='Compile with Hypre preconditioner') + variant('matio', default=True, + description='Compile with Matio') variant('metis', default=True, description='Compile with METIS and ParMETIS') variant('mumps', default=True, description='Compile with support for MUMPS solvers') + variant('netcdf', default=True, + description='Compile with netcdf') variant('pnetcdf', default=False, description='Compile with parallel-netcdf') variant('suite-sparse', default=True, @@ -185,6 +195,8 @@ class Trilinos(CMakePackage): description='Enable DataTransferKit') variant('fortrilinos', default=False, description='Enable ForTrilinos') + variant('mesquite', default=False, + description='Enable Mesquite') resource(name='dtk', git='https://github.com/ornl-cees/DataTransferKit.git', @@ -208,6 +220,21 @@ class Trilinos(CMakePackage): tag='develop', placement='packages/ForTrilinos', when='+fortrilinos') + resource(name='mesquite', + url='https://github.com/trilinos/mesquite/archive/trilinos-release-12-12-1.tar.gz', + sha256='e0d09b0939dbd461822477449dca611417316e8e8d8268fd795debb068edcbb5', + placement='packages/mesquite', + when='+mesquite @12.12.1:12.16.99') + resource(name='mesquite', + git='https://github.com/trilinos/mesquite.git', + commit='20a679679b5cdf15bf573d66c5dc2b016e8b9ca1', # branch trilinos-release-12-12-1 + placement='packages/mesquite', + when='+mesquite @12.18.1:12.18.99') + resource(name='mesquite', + git='https://github.com/trilinos/mesquite.git', + tag='develop', + placement='packages/mesquite', + when='+mesquite @develop') conflicts('+amesos2', when='~teuchos') conflicts('+amesos2', when='~tpetra') @@ -266,6 +293,8 @@ class Trilinos(CMakePackage): conflicts('+fortrilinos', when='~fortran') conflicts('+fortrilinos', when='@:99') conflicts('+fortrilinos', when='@master') + # Only allow Mesquite with Trilinos 12.12 and up, and develop + conflicts('+mesquite', when='@0:12.10.99,master') # Can only use one type of SuperLU conflicts('+superlu-dist', when='+superlu') # For Trilinos v11 we need to force SuperLUDist=OFF, since only the @@ -289,6 +318,8 @@ class Trilinos(CMakePackage): # ADIOS2 was only added after v12.14.1 conflicts('+adios2', when='@:12.14.1') conflicts('+adios2', when='@xsdk-0.2.0') + conflicts('+pnetcdf', when='~netcdf') + # ###################### Dependencies ########################## # Everything should be compiled position independent (-fpic) @@ -296,17 +327,17 @@ class Trilinos(CMakePackage): depends_on('lapack') depends_on('boost', when='+boost') depends_on('boost', when='+dtk') - depends_on('matio') - depends_on('glm') + depends_on('matio', when='+matio') + depends_on('glm', when='+glm') depends_on('metis@5:', when='+metis') depends_on('suite-sparse', when='+suite-sparse') depends_on('zlib', when="+zlib") # MPI related dependencies depends_on('mpi') - depends_on('netcdf-c+mpi', when="~pnetcdf") - depends_on('netcdf-c+mpi+parallel-netcdf', when="+pnetcdf@master,12.12.1:") - depends_on('parallel-netcdf', when="+pnetcdf@master,12.12.1:") + depends_on('netcdf-c+mpi', when="+netcdf~pnetcdf") + depends_on('netcdf-c+mpi+parallel-netcdf', when="+netcdf+pnetcdf@master,12.12.1:") + depends_on('parallel-netcdf', when="+netcdf+pnetcdf@master,12.12.1:") depends_on('parmetis', when='+metis') depends_on('cgns', when='+cgns') depends_on('adios2', when='+adios2') @@ -342,6 +373,7 @@ class Trilinos(CMakePackage): patch('xlf_tpetra.patch', when='@12.12.1%xl') patch('xlf_tpetra.patch', when='@12.12.1%xl_r') patch('xlf_tpetra.patch', when='@12.12.1%clang') + patch('fix_clang_errors_12_18_1.patch', when='@12.18.1%clang') def url_for_version(self, version): url = "https://github.com/trilinos/Trilinos/archive/trilinos-release-{0}.tar.gz" @@ -417,6 +449,8 @@ class Trilinos(CMakePackage): 'ON' if '+kokkos' in spec else 'OFF'), '-DTrilinos_ENABLE_MiniTensor=%s' % ( 'ON' if '+minitensor' in spec else 'OFF'), + '-DTrilinos_ENABLE_Mesquite:BOOL=%s' % ( + 'ON' if '+mesquite' in spec else 'OFF'), '-DTrilinos_ENABLE_ML:BOOL=%s' % ( 'ON' if '+ml' in spec else 'OFF'), '-DTrilinos_ENABLE_MueLu:BOOL=%s' % ( @@ -511,14 +545,23 @@ class Trilinos(CMakePackage): '-DTPL_ENABLE_LAPACK=ON', '-DLAPACK_LIBRARY_NAMES=%s' % ';'.join(lapack.names), '-DLAPACK_LIBRARY_DIRS=%s' % ';'.join(lapack.directories), - '-DTPL_ENABLE_Netcdf:BOOL=ON', - '-DNetCDF_ROOT:PATH=%s' % spec['netcdf-c'].prefix, + '-DTPL_ENABLE_GLM:BOOL=%s' % ('ON' if '+glm' in spec else 'OFF'), + '-DTPL_ENABLE_Matio:BOOL=%s' % ( + 'ON' if '+matio' in spec else 'OFF'), '-DTPL_ENABLE_X11:BOOL=%s' % ( 'ON' if '+x11' in spec else 'OFF'), '-DTrilinos_ENABLE_Gtest:BOOL=%s' % ( 'ON' if '+gtest' in spec else 'OFF'), ]) + if '+netcdf' in spec: + options.extend([ + '-DTPL_ENABLE_Netcdf:BOOL=ON', + '-DNetCDF_ROOT:PATH=%s' % spec['netcdf-c'].prefix + ]) + else: + options.extend(['-DTPL_ENABLE_Netcdf:BOOL=OFF']) + if '+hypre' in spec: options.extend([ '-DTPL_ENABLE_HYPRE:BOOL=ON', @@ -722,10 +765,15 @@ class Trilinos(CMakePackage): ) if '+explicit_template_instantiation' in spec and '+tpetra' in spec: + gotype = spec.variants['gotype'].value options.extend([ '-DTpetra_INST_DOUBLE:BOOL=ON', - '-DTpetra_INST_INT_LONG:BOOL=ON', - '-DTpetra_INST_INT_LONG_LONG:BOOL=ON', + '-DTpetra_INST_INT_INT:BOOL=%s' % ( + 'ON' if gotype == 'int' else 'OFF'), + '-DTpetra_INST_INT_LONG:BOOL=%s' % ( + 'ON' if gotype == 'long' else 'OFF'), + '-DTpetra_INST_INT_LONG_LONG:BOOL=%s' % ( + 'ON' if gotype == 'long_long' else 'OFF'), '-DTpetra_INST_COMPLEX_DOUBLE=%s' % complex_s, '-DTpetra_INST_COMPLEX_FLOAT=%s' % complex_float_s, '-DTpetra_INST_FLOAT=%s' % float_s, diff --git a/var/spack/repos/builtin/packages/ucx/package.py b/var/spack/repos/builtin/packages/ucx/package.py index 681fa5b6bf..e6ce377c70 100644 --- a/var/spack/repos/builtin/packages/ucx/package.py +++ b/var/spack/repos/builtin/packages/ucx/package.py @@ -13,7 +13,10 @@ class Ucx(AutotoolsPackage): homepage = "http://www.openucx.org" url = "https://github.com/openucx/ucx/releases/download/v1.3.1/ucx-1.3.1.tar.gz" + maintainers = ['hppritcha'] + # Current + version('1.7.0', sha256='6ab81ee187bfd554fe7e549da93a11bfac420df87d99ee61ffab7bb19bdd3371') version('1.6.1', sha256='1425648aa03f5fa40e4bc5c4a5a83fe0292e2fe44f6054352fbebbf6d8f342a1') version('1.6.0', sha256='360e885dd7f706a19b673035a3477397d100a02eb618371697c7f3ee4e143e2c') version('1.5.2', sha256='1a333853069860e86ba69b8d071ccc9871209603790e2b673ec61f8086913fad') diff --git a/var/spack/repos/builtin/packages/umpire/package.py b/var/spack/repos/builtin/packages/umpire/package.py index fc33ca7feb..90ea23dde3 100644 --- a/var/spack/repos/builtin/packages/umpire/package.py +++ b/var/spack/repos/builtin/packages/umpire/package.py @@ -16,6 +16,13 @@ class Umpire(CMakePackage): version('develop', branch='develop', submodules='True') version('master', branch='master', 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') + version('1.0.1', tag='v1.0.1', submodules='True') + version('1.0.0', tag='v1.0.0', submodules='True') + version('0.3.5', tag='v0.3.5', submodules='True') + version('0.3.4', tag='v0.3.4', submodules='True') version('0.3.3', tag='v0.3.3', submodules='True') version('0.3.2', tag='v0.3.2', submodules='True') version('0.3.1', tag='v0.3.1', submodules='True') @@ -29,7 +36,8 @@ class Umpire(CMakePackage): version('0.1.3', tag='v0.1.3', submodules='True') variant('cuda', default=False, description='Build with CUDA support') - variant('fortran', default=False, description='Build C/Fortran API') + variant('fortran', default=False, description='Build Fortran API') + variant('c', default=True, description='Build C API') variant('numa', default=False, description='Enable NUMA support') depends_on('cuda', when='+cuda') @@ -37,6 +45,7 @@ class Umpire(CMakePackage): depends_on('cmake@3.9:', when='+cuda', type='build') conflicts('+numa', when='@:0.3.2') + conflicts('~c', when='+fortran', msg='Fortran API requires C API') def cmake_args(self): spec = self.spec @@ -50,6 +59,9 @@ class Umpire(CMakePackage): else: options.append('-DENABLE_CUDA=Off') + if '+c' in spec: + options.append('-DENABLE_C=On') + if '+fortran' in spec: options.append('-DENABLE_FORTRAN=On') diff --git a/var/spack/repos/builtin/packages/unifyfs/auto-mount.patch b/var/spack/repos/builtin/packages/unifyfs/auto-mount.patch new file mode 100644 index 0000000000..a621f7dd11 --- /dev/null +++ b/var/spack/repos/builtin/packages/unifyfs/auto-mount.patch @@ -0,0 +1,25 @@ +diff --git a/client/src/pmpi_wrappers.c b/client/src/pmpi_wrappers.c +index ac86d39..38755f5 100644 +--- a/client/src/pmpi_wrappers.c ++++ b/client/src/pmpi_wrappers.c +@@ -14,7 +14,6 @@ + + #include "pmpi_wrappers.h" + #include "unifyfs.h" +-#include <mpi.h> + #include <stdio.h> + + int unifyfs_mpi_init(int* argc, char*** argv) +diff --git a/client/src/pmpi_wrappers.h b/client/src/pmpi_wrappers.h +index b90057c..995e44b 100644 +--- a/client/src/pmpi_wrappers.h ++++ b/client/src/pmpi_wrappers.h +@@ -15,6 +15,8 @@ + #ifndef UNIFYFS_PMPI_WRAPPERS_H + #define UNIFYFS_PMPI_WRAPPERS_H + ++#include <mpi.h> ++ + /* MPI_Init PMPI wrapper */ + int unifyfs_mpi_init(int* argc, char*** argv); + int MPI_Init(int* argc, char*** argv); diff --git a/var/spack/repos/builtin/packages/unifyfs/package.py b/var/spack/repos/builtin/packages/unifyfs/package.py index cf4a8e0c4f..77b4014741 100644 --- a/var/spack/repos/builtin/packages/unifyfs/package.py +++ b/var/spack/repos/builtin/packages/unifyfs/package.py @@ -43,6 +43,7 @@ class Unifyfs(AutotoolsPackage): depends_on('margo') depends_on('mercury+bmi+sm') depends_on('mpi') + depends_on('openssl') # Optional dependencies depends_on('hdf5', when='+hdf5') @@ -53,6 +54,10 @@ class Unifyfs(AutotoolsPackage): conflicts('%intel', when='+fortran') conflicts('%xl', when='+fortran') + # Fix broken --enable-mpi-mount config option for version 0.9.0 + # See https://github.com/LLNL/UnifyFS/issues/467 + patch('auto-mount.patch', when='@0.9.0') + # Parallel disabled to prevent tests from being run out-of-order when # installed with the --test={root, all} option. parallel = False diff --git a/var/spack/repos/builtin/packages/unqlite/package.py b/var/spack/repos/builtin/packages/unqlite/package.py new file mode 100644 index 0000000000..84c3b5575e --- /dev/null +++ b/var/spack/repos/builtin/packages/unqlite/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 Unqlite(CMakePackage): + """UnQLite is a in-process software library which implements a self-contained, + serverless, zero-configuration, transactional NoSQL database engine.""" + + homepage = "https://unqlite.org/" + url = "https://github.com/symisc/unqlite/archive/v1.1.9.tar.gz" + git = 'https://github.com/symisc/unqlite.git' + + version('master', branch='master') + version('1.1.9', sha256='33d5b5e7b2ca223942e77d31112d2e20512bc507808414451c8a98a7be5e15c0') diff --git a/var/spack/repos/builtin/packages/uqtk/package.py b/var/spack/repos/builtin/packages/uqtk/package.py new file mode 100644 index 0000000000..c6af83e759 --- /dev/null +++ b/var/spack/repos/builtin/packages/uqtk/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 Uqtk(CMakePackage): + """Sandia Uncertainty Quantification Toolkit. The UQ Toolkit (UQTk) is a + collection of libraries and tools for the quantification of uncertainty + in numerical model predictions""" + + homepage = "https://www.sandia.gov/UQToolkit/" + url = "https://github.com/sandialabs/UQTk/archive/v3.0.4.tar.gz" + git = "https://github.com/sandialabs/UQTk.git" + + version('master', branch='master') + version('3.0.4', sha256='0a72856438134bb571fd328d1d30ce3d0d7aead32eda9b7fb6e436a27d546d2e') + + depends_on('expat') diff --git a/var/spack/repos/builtin/packages/userspace-rcu/examples.patch b/var/spack/repos/builtin/packages/userspace-rcu/examples.patch new file mode 100644 index 0000000000..ef65ab4b79 --- /dev/null +++ b/var/spack/repos/builtin/packages/userspace-rcu/examples.patch @@ -0,0 +1,13 @@ +diff --git a/doc/examples/Makefile.am b/doc/examples/Makefile.am +index edf00eb..cd491df 100644 +--- a/doc/examples/Makefile.am ++++ b/doc/examples/Makefile.am +@@ -141,7 +141,7 @@ all-local: + else \ + rel_build_subdir="../"; \ + fi; \ +- $(MAKE) -f dist-files/Makefile CC="$(CC)" CPPFLAGS="$(CPPFLAGS)" AM_CPPFLAGS="$(AM_CPPFLAGS) -I"$${rel_src_subdir}/$(top_srcdir)/include/" -I"$${rel_src_subdir}/$(top_srcdir)/src/" -I"$${rel_build_subdir}$(top_builddir)/include/" -I"$${rel_build_subdir}$(top_builddir)/include/src/"" CFLAGS="$(CFLAGS)" AM_CFLAGS="$(AM_CFLAGS)" LDFLAGS="$(LDFLAGS)" AM_LDFLAGS="$(AM_LDFLAGS) -L../../../src/.libs/ -Wl,-rpath "$(PWD)/../../src/.libs/"" AM_V_P="$(AM_V_P)" AM_V_at="$(AM_V_at)" $(AM_MAKEFLAGS) all; ++ $(MAKE) -f dist-files/Makefile CC="$(CC)" CPPFLAGS="$(CPPFLAGS)" AM_CPPFLAGS="$(AM_CPPFLAGS) -I"$${rel_src_subdir}/$(top_srcdir)/include/" -I"$${rel_src_subdir}/$(top_srcdir)/src/" -I"$${rel_build_subdir}$(top_builddir)/include/" -I"$${rel_build_subdir}$(top_builddir)/include/src/"" CFLAGS="$(CFLAGS)" AM_CFLAGS="$(AM_CFLAGS)" LDFLAGS="$(LDFLAGS)" AM_LDFLAGS="$(AM_LDFLAGS) -L../../../src/.libs/ -Wl,-rpath="$(PWD)/../../src/.libs/"" AM_V_P="$(AM_V_P)" AM_V_at="$(AM_V_at)" $(AM_MAKEFLAGS) all; + + clean-local: + $(AM_V_at)$(MAKE) -f dist-files/Makefile $(AM_MAKEFLAGS) clean; \ diff --git a/var/spack/repos/builtin/packages/userspace-rcu/package.py b/var/spack/repos/builtin/packages/userspace-rcu/package.py new file mode 100644 index 0000000000..be03459d34 --- /dev/null +++ b/var/spack/repos/builtin/packages/userspace-rcu/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 UserspaceRcu(AutotoolsPackage): + """liburcu is a LGPLv2.1 userspace RCU (read-copy-update) library. This + data synchronization library provides read-side access which scales + linearly with the number of cores.""" + + homepage = "http://liburcu.org/" + url = "https://github.com/urcu/userspace-rcu/archive/v0.11.1.tar.gz" + + version('0.11.1', sha256='a0ed8995edfbeac5f5eb2f152a8f3654040ecfc99a746bfe3da3bccf435b7d5d') + version('0.11.0', sha256='7834e4692565b491b9d2d258095d6c05089c9bae8a1bef280c338d15ba02e9ac') + version('0.10.2', sha256='e117c416fced894e24720cc1b38247074a13020f19d6704b38e554cbcb993d06') + version('0.9.6', sha256='4d9e4ca40c079e0b0e9f912a9092589b97fbaf80eb6537e9ae70d48c09472efa') + + depends_on('m4', type='build') + depends_on('autoconf', type='build') + depends_on('automake', type='build') + depends_on('libtool', type='build') + + patch('examples.patch', sha256='49aa8fa99d3a1315c639d2a90014079c34a7d0a6dde110b6cbb7b02f87324742') + + def autoreconf(self, spec, prefix): + bash = which('bash') + bash('./bootstrap') diff --git a/var/spack/repos/builtin/packages/util-linux/package.py b/var/spack/repos/builtin/packages/util-linux/package.py index 49afb16f54..b95f8222e2 100644 --- a/var/spack/repos/builtin/packages/util-linux/package.py +++ b/var/spack/repos/builtin/packages/util-linux/package.py @@ -14,6 +14,10 @@ class UtilLinux(AutotoolsPackage): list_url = "https://www.kernel.org/pub/linux/utils/util-linux" list_depth = 1 + version('2.35.1', sha256='37ac05d82c6410d89bc05d43cee101fefc8fe6cf6090b3ce7a1409a6f35db606') + version('2.35', sha256='98acab129a8490265052e6c1e033ca96d68758a13bb7fcd232c06bf16cc96238') + version('2.34', sha256='b62c92e5e1629642113cd41cec1ee86d1ee7e36b8ffe8ec3ac89c11797e9ac25') + version('2.33', sha256='952fb0d3498e81bd67b3c48e283c80cb12c719bc2357ec5801e7d420991ad319') version('2.29.2', sha256='29ccdf91d2c3245dc705f0ad3bf729ac41d8adcdbeff914e797c552ecb04a4c7') version('2.29.1', sha256='a6a7adba65a368e6dad9582d9fbedee43126d990df51266eaee089a73c893653') version('2.25', sha256='7e43273a9e2ab99b5a54ac914fddf5d08ba7ab9b114c550e9f03474672bd23a1') diff --git a/var/spack/repos/builtin/packages/valgrind/package.py b/var/spack/repos/builtin/packages/valgrind/package.py index 684a5bdfa8..3f759efeac 100644 --- a/var/spack/repos/builtin/packages/valgrind/package.py +++ b/var/spack/repos/builtin/packages/valgrind/package.py @@ -22,6 +22,9 @@ class Valgrind(AutotoolsPackage): url = "https://sourceware.org/pub/valgrind/valgrind-3.13.0.tar.bz2" git = "git://sourceware.org/git/valgrind.git" + # The server is sometimes a bit slow to respond + fetch_options = {'timeout': 60} + version('develop', branch='master') version('3.15.0', sha256='417c7a9da8f60dd05698b3a7bc6002e4ef996f14c13f0ff96679a16873e78ab1') version('3.14.0', sha256='037c11bfefd477cc6e9ebe8f193bb237fe397f7ce791b4a4ce3fa1c6a520baa5') diff --git a/var/spack/repos/builtin/packages/veccore/package.py b/var/spack/repos/builtin/packages/veccore/package.py new file mode 100644 index 0000000000..a339358a08 --- /dev/null +++ b/var/spack/repos/builtin/packages/veccore/package.py @@ -0,0 +1,40 @@ +# 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 Veccore(CMakePackage, CudaPackage): + """SIMD Vectorization Library for VecGeom and GeantV""" + + homepage = "https://gitlab.cern.ch/VecGeom/VecCore" + url = "https://gitlab.cern.ch/VecGeom/VecCore/-/archive/v0.6.0/VecCore-v0.6.0.tar.gz" + git = "https://gitlab.cern.ch/VecGeom/VecCore.git" + + maintainers = ['drbenmorgan', 'sethrj'] + + version('master', branch='master') + version('0.6.0', sha256='e7ff874ba2a8201624795cbe11c84634863e4ac7da691a936772d4202ef54413') + version('0.5.2', sha256='0cfaa830b9d10fb9df4ced5208a742623da08520fea5949461fe81637a27db15') + version('0.5.1', sha256='5ef3a8d8692d8f82641aae76b58405b8b3a1539a8f21b23d66a5df8327eeafc4') + version('0.5.0', sha256='aba3e0217c0cd829290c9fe63f1db865838aa25312ae0a09effdcb186f7771be') + version('0.4.2', sha256='4a3bb944bce63dc1dc9757ba53624b822e1aff5ed088d542039a20227ed2b715') + + variant('cxxstd', + default='11', + values=('11', '14', '17'), + multi=False, + description='Use the specified C++ standard when building.') + conflicts('cxxstd=14', when='@:0.5') + conflicts('cxxstd=17', when='@:0.5') + + def cmake_args(self): + define = CMakePackage.define + return [ + define('VC', False), + define('UMESIMD', False), + self.define_from_variant('CMAKE_CXX_STANDARD', 'cxxstd'), + self.define_from_variant('CUDA'), + ] diff --git a/var/spack/repos/builtin/packages/vecgeom/package.py b/var/spack/repos/builtin/packages/vecgeom/package.py index ed6e516c8a..2e28586ef6 100644 --- a/var/spack/repos/builtin/packages/vecgeom/package.py +++ b/var/spack/repos/builtin/packages/vecgeom/package.py @@ -5,49 +5,96 @@ from spack import * -import platform -class Vecgeom(CMakePackage): +class Vecgeom(CMakePackage, CudaPackage): """The vectorized geometry library for particle-detector simulation (toolkits).""" homepage = "https://gitlab.cern.ch/VecGeom/VecGeom" - url = "https://gitlab.cern.ch/api/v4/projects/VecGeom%2FVecGeom/repository/archive.tar.gz?sha=v0.3.rc" + url = "https://gitlab.cern.ch/VecGeom/VecGeom/-/archive/v1.1.6/VecGeom-v1.1.6.tar.gz" + git = "https://gitlab.cern.ch/VecGeom/VecGeom.git" - version('01.01.03', git='https://gitlab.cern.ch/VecGeom/VecGeom.git', tag='v01.01.03', preferred=True) - version('01.00.00', git='https://gitlab.cern.ch/VecGeom/VecGeom.git', tag='v01.00.00') - version('00.05.00', git='https://gitlab.cern.ch/VecGeom/VecGeom.git', tag='v00.05.00') + maintainers = ['drbenmorgan', 'sethrj'] + + version('master', branch='master') + version('1.1.6', sha256='c4806a6b67d01b40074b8cc6865d78574a6a1c573be51696f2ecdf98b9cb954a') + version('1.1.5', sha256='da674f3bbc75c30f56c1a2d251fa8930c899f27fa64b03a36569924030d87b95') + version('1.1.3', sha256='ada09e8b6b2fa6c058290302b2cb5a6c2e644192aab1623c31d18c6a2f4c01c8') + version('1.0.1', sha256='1eae7ac9014c608e8d8db5568058b8c0fea1a1dc7a8f54157a3a1c997b6fd9eb') + version('0.5.2', tag='v00.05.02', + commit='a7e0828c915ff936a79e672d1dd84b087a323b51') version('0.3.rc', sha256='a87a9ea4ab126b59ff9c79182bc0911ead3d76dd197194742e2a35ccd341299d') - variant('cxxstd', - default='17', - values=('11', '14', '17'), - multi=False, - description='Use the specified C++ standard when building.') - variant('vector', - default='native', - values=('sse3', 'sse4.2', 'native'), - multi=False, - description='Specify the instruction set for vectorization.') + _cxxstd_values = ('11', '14', '17') + variant('cxxstd', default='11', values=_cxxstd_values, multi=False, + description='Use the specified C++ standard when building') + variant('gdml', default=True, + description='Support native GDML geometry descriptions') + variant('geant4', default=False, + description='Support Geant4 geometry construction') + variant('root', default=False, + description='Support ROOT geometry construction') + variant('shared', default=True, + description='Build shared libraries') + + depends_on('veccore@0.5.2:', type=('build', 'link'), when='@1.1.0:') + depends_on('veccore@0.4.2', type=('build', 'link'), when='@:1.0') + depends_on('veccore+cuda', type=('build', 'link'), when='+cuda') + + conflicts('+cuda', when='@:1.1.5') - depends_on('cmake@3.5:', type='build') + for std in _cxxstd_values: + depends_on('geant4 cxxstd=' + std, when='+geant4 cxxstd=' + std) + depends_on('root cxxstd=' + std, when='+root cxxstd=' + std) + depends_on('veccore cxxstd=' + std, when='cxxstd=' + std) + depends_on('xerces-c cxxstd=' + std, when='+gdml cxxstd=' + std) def cmake_args(self): - options = [ - '-DBACKEND=Scalar', - '-DGEANT4=OFF', - '-DUSOLIDS=ON', - '-DUSOLIDS_VECGEOM=ON', - '-DROOT=OFF', - '-DNO_SPECIALIZATION=ON', - '-DCMAKE_VERBOSE_MAKEFILE=TRUE'] - options.append('-DCMAKE_CXX_STANDARD={0}'. - format(self.spec.variants['cxxstd'].value)) - arch = platform.machine() - if arch == 'x86_64': - options.append('-DVECGEOM_VECTOR={0}'. - format(self.spec.variants['vector'].value)) + # Possible target options are from the main CMakeLists.txt, assuming + # "best" is last + target = self.spec.target + vecgeom_arch = "sse2 sse3 ssse3 sse4.1 sse4.2 avx avx2".split() + for feature in reversed(vecgeom_arch): + if feature.replace('.', '_') in target: + target_instructions = feature + break else: - options.append('-DVECGEOM_VECTOR=' + arch) + # No features available (could be 'generic' arch) + target_instructions = 'empty' + + define = CMakePackage.define + options = [ + define('BACKEND', 'Scalar'), + define('BUILTIN_VECCORE', False), + define('NO_SPECIALIZATION', True), + define('VECGEOM_VECTOR', target_instructions), + self.define_from_variant('BUILD_SHARED_LIBS', 'shared'), + self.define_from_variant('CMAKE_CXX_STANDARD', 'cxxstd'), + self.define_from_variant('CUDA'), + self.define_from_variant('GDML'), + self.define_from_variant('GEANT4'), + self.define_from_variant('ROOT'), + ] + + # Set testing flags + build_tests = self.run_tests + options.extend([ + define('BUILD_TESTING', build_tests), + define('CTEST', build_tests), + define('GDMLTESTING', build_tests and '+gdml' in self.spec), + ]) + + if '+cuda' in self.spec: + arch = self.spec.variants['cuda_arch'].value + if len(arch) != 1 or arch[0] == 'none': + raise InstallError("Exactly one cuda_arch must be specified") + options.append(define('CUDA_ARCH', arch[0])) + + if self.spec.satisfies("@:0.5.2"): + options.extend([ + define('USOLIDS', True), + define('USOLIDS_VECGEOM', True), + ]) + return options diff --git a/var/spack/repos/builtin/packages/verrou/package.py b/var/spack/repos/builtin/packages/verrou/package.py index 265ee2b096..f92443d144 100644 --- a/var/spack/repos/builtin/packages/verrou/package.py +++ b/var/spack/repos/builtin/packages/verrou/package.py @@ -32,18 +32,24 @@ class Verrou(AutotoolsPackage): version('2.0.0', sha256='798df6e426ec57646a2a626d756b72f0171647ae5b07c982952dae2d71e26045') version('1.1.0', sha256='b5105f61c65680f31551199cd143b2e15f412c34c821537998a7165e315dde2d') + # The server is sometimes a bit slow to respond + timeout = {'timeout': 60} + resource(name='valgrind-3.15.0', url='https://sourceware.org/pub/valgrind/valgrind-3.15.0.tar.bz2', sha256='417c7a9da8f60dd05698b3a7bc6002e4ef996f14c13f0ff96679a16873e78ab1', - when='@2.2.0:') + when='@2.2.0:', + fetch_options=timeout) resource(name='valgrind-3.14.0', url='https://sourceware.org/pub/valgrind/valgrind-3.14.0.tar.bz2', sha256='037c11bfefd477cc6e9ebe8f193bb237fe397f7ce791b4a4ce3fa1c6a520baa5', - when='@2.1.0:2.1.99') + when='@2.1.0:2.1.99', + fetch_options=timeout) resource(name='valgrind-3.13.0', url='https://sourceware.org/pub/valgrind/valgrind-3.13.0.tar.bz2', sha256='d76680ef03f00cd5e970bbdcd4e57fb1f6df7d2e2c071635ef2be74790190c3b', - when='@1.1.0:2.0.99') + when='@1.1.0:2.0.99', + fetch_options=timeout) variant('fma', default=True, description='Activates fused multiply-add support for Verrou') diff --git a/var/spack/repos/builtin/packages/xcfun/package.py b/var/spack/repos/builtin/packages/xcfun/package.py new file mode 100644 index 0000000000..a40234c643 --- /dev/null +++ b/var/spack/repos/builtin/packages/xcfun/package.py @@ -0,0 +1,37 @@ +# 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 Xcfun(CMakePackage): + """Exchange-Correlation functionals with arbitrary order derivatives.""" + + homepage = "https://github.com/dftlibs/xcfun" + url = "https://github.com/dftlibs/xcfun/archive/v2.0.0a4.tar.gz" + + maintainers = ['robertodr', 'bast'] + + version('2.0.0a6', + sha256='a51086490890393439f98c5e3e4e1622908fe934bbc5063b1d4363cc4c15496d') + + extends('python') + depends_on('cmake@3.11:', type='build') + depends_on('python@3:') + depends_on('py-pybind11') + depends_on('py-numpy') + + def cmake_args(self): + spec = self.spec + + args = [ + "-DCMAKE_INSTALL_LIBDIR=lib", + "-DPYMOD_INSTALL_LIBDIR=/python{0}/site-packages".format( + spec["python"].version[:-1]), + "-DXCFUN_MAX_ORDER=8", + "-DXCFUN_PYTHON_INTERFACE=ON", + "-DPYTHON_EXECUTABLE={0}".format(spec['python'].command), + ] + return args diff --git a/var/spack/repos/builtin/packages/xgboost/package.py b/var/spack/repos/builtin/packages/xgboost/package.py index f65ea1621b..15cdbb763e 100644 --- a/var/spack/repos/builtin/packages/xgboost/package.py +++ b/var/spack/repos/builtin/packages/xgboost/package.py @@ -13,7 +13,9 @@ class Xgboost(CMakePackage, CudaPackage): homepage = "https://xgboost.ai/" url = "https://github.com/dmlc/xgboost/releases/download/v0.81/xgboost-0.81.tar.bz2" + git = "https://github.com/dmlc/xgboost.git" + version('0.90', tag='v0.90', submodules=True) version('0.81', sha256='9d8ff161699111d45c96bd15229aa6d80eb1cab7cbbef7e8eaa60ccfb5a4f806') def cmake_args(self): diff --git a/var/spack/repos/builtin/packages/xsetpointer/package.py b/var/spack/repos/builtin/packages/xsetpointer/package.py index 57775a6a19..cfd89eb061 100644 --- a/var/spack/repos/builtin/packages/xsetpointer/package.py +++ b/var/spack/repos/builtin/packages/xsetpointer/package.py @@ -14,9 +14,9 @@ class Xsetpointer(AutotoolsPackage): version('1.0.1', sha256='54be93b20fd6f1deac67246d6e214a60b02dcfbf05295e43751f7a04edb986ac') - depends_on('libxi') - depends_on('libx11') + depends_on('libxi', type='link') + depends_on('libx11', type='link') + depends_on('inputproto@1.4:', type='link') - depends_on('inputproto@1.4:', type='build') depends_on('pkgconfig', type='build') depends_on('util-macros', type='build') diff --git a/var/spack/repos/builtin/packages/xts/package.py b/var/spack/repos/builtin/packages/xts/package.py index 19149f9ec9..89dcc96bf7 100644 --- a/var/spack/repos/builtin/packages/xts/package.py +++ b/var/spack/repos/builtin/packages/xts/package.py @@ -15,14 +15,17 @@ class Xts(AutotoolsPackage): version('0.99.1', sha256='d04d987b9a9f8b3921dfe8de8577d0c2a0f21d2c4c3196948fc9805838a352e6') - depends_on('libx11') - depends_on('libxext') - depends_on('libxi') - depends_on('libxtst') - depends_on('libxau') - depends_on('libxt') - depends_on('libxmu') - depends_on('libxaw') + depends_on('libx11', type='link') + depends_on('libxext', type='link') + depends_on('libxi', type='link') + depends_on('libxtst', type='link') + depends_on('libxau', type='link') + depends_on('libxt', type='link') + depends_on('libxmu', type='link') + depends_on('libxaw', type='link') + depends_on('inputproto', type='link') + depends_on('recordproto', type='link') + depends_on('fixesproto', type='link') depends_on('xtrans', type='build') depends_on('bdftopcf', type='build') diff --git a/var/spack/repos/builtin/packages/yarn/package.py b/var/spack/repos/builtin/packages/yarn/package.py new file mode 100644 index 0000000000..c9a5299a10 --- /dev/null +++ b/var/spack/repos/builtin/packages/yarn/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 Yarn(Package): + """Fast, reliable, and secure dependency management.""" + + homepage = "https://yarnpkg.com" + url = "https://github.com/yarnpkg/yarn/releases/download/v1.22.4/yarn-v1.22.4.tar.gz" + + version('1.22.4', sha256='bc5316aa110b2f564a71a3d6e235be55b98714660870c5b6b2d2d3f12587fb58') + version('1.22.2', sha256='de4cff575ae7151f8189bf1d747f026695d768d0563e2860df407ab79c70693d') + version('1.22.1', sha256='3af905904932078faa8f485d97c928416b30a86dd09dcd76e746a55c7f533b72') + version('1.22.0', sha256='de8871c4e2822cba80d58c2e72366fb78567ec56e873493c9ca0cca76c60f9a5') + version('1.21.1', sha256='d1d9f4a0f16f5ed484e814afeb98f39b82d4728c6c8beaafb5abc99c02db6674') + + def install(self, spec, prefix): + install_tree('.', prefix) |