Feature/composed boost pkg deps p1 (#28959)

* This commit removes the Boost.with_default_variants to variants
that packages are precisely dependant upon. This is the first batch
of 20 packages with modified boost dependencies.

* Style fixes

* Tested bridger: works for gcc-4.9.3 and gcc-8.3.1
This commit is contained in:
Abhik Sarkar 2022-03-22 12:42:15 -07:00 committed by GitHub
parent 6760175289
commit eda5b854a5
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
19 changed files with 22 additions and 111 deletions

View file

@ -6,6 +6,7 @@
import numbers import numbers
from spack import * from spack import *
from spack.pkg.builtin.boost import Boost
def is_multiple_32(x): def is_multiple_32(x):
@ -42,6 +43,8 @@ class Abyss(AutotoolsPackage):
depends_on('mpi') depends_on('mpi')
depends_on('boost@:1.50.0,1.53.0:', when='@2.0.2:') depends_on('boost@:1.50.0,1.53.0:', when='@2.0.2:')
depends_on('boost@:1.50.0,1.53.0:1.59.0', when='@:1.5.2') depends_on('boost@:1.50.0,1.53.0:1.59.0', when='@:1.5.2')
# Maintainers: Is boost really a dependency? In what conditions?
depends_on(Boost.with_default_variants)
depends_on('sparsehash') depends_on('sparsehash')
depends_on('sqlite') depends_on('sqlite')
depends_on('libtool') depends_on('libtool')

View file

@ -6,7 +6,6 @@
import sys import sys
from spack import * from spack import *
from spack.pkg.builtin.boost import Boost
class Apex(CMakePackage): class Apex(CMakePackage):
@ -66,12 +65,7 @@ class Apex(CMakePackage):
depends_on('hip', when='+hip') depends_on('hip', when='+hip')
depends_on('roctracer-dev', when='+hip') depends_on('roctracer-dev', when='+hip')
depends_on('rocm-smi-lib', when='+hip') depends_on('rocm-smi-lib', when='+hip')
depends_on('boost@1.54: +exception+chrono+system+atomic+container+regex+thread', when='+boost')
# TODO: replace this with an explicit list of components of Boost,
# for instance depends_on('boost +filesystem')
# See https://github.com/spack/spack/pull/22303 for reference
depends_on(Boost.with_default_variants, when='+boost')
depends_on('boost@1.54:', when='+boost')
# Conflicts # Conflicts
conflicts('+jemalloc', when='+gperftools') conflicts('+jemalloc', when='+gperftools')

View file

@ -4,7 +4,6 @@
# SPDX-License-Identifier: (Apache-2.0 OR MIT) # SPDX-License-Identifier: (Apache-2.0 OR MIT)
from spack import * from spack import *
from spack.pkg.builtin.boost import Boost
class Aspcud(CMakePackage): class Aspcud(CMakePackage):
@ -22,12 +21,7 @@ class Aspcud(CMakePackage):
version('1.9.5', sha256='9cd3a9490d377163d87b16fa1a10cc7254bc2dbb9f60e846961ac8233f3835cf') version('1.9.5', sha256='9cd3a9490d377163d87b16fa1a10cc7254bc2dbb9f60e846961ac8233f3835cf')
version('1.9.4', sha256='3645f08b079e1cc80e24cd2d7ae5172a52476d84e3ec5e6a6c0034492a6ea885') version('1.9.4', sha256='3645f08b079e1cc80e24cd2d7ae5172a52476d84e3ec5e6a6c0034492a6ea885')
depends_on('boost@1.74:', type=('build'), when='@1.9.5:') depends_on('boost@1.74:+exception+serialization+container', type=('build'), when='@1.9.5:')
# TODO: replace this with an explicit list of components of Boost,
# for instance depends_on('boost +filesystem')
# See https://github.com/spack/spack/pull/22303 for reference
depends_on(Boost.with_default_variants, type=('build'), when='@1.9.5:')
depends_on('cmake', type=('build')) depends_on('cmake', type=('build'))
depends_on('re2c', type=('build')) depends_on('re2c', type=('build'))
depends_on('clingo') depends_on('clingo')

View file

@ -4,7 +4,6 @@
# SPDX-License-Identifier: (Apache-2.0 OR MIT) # SPDX-License-Identifier: (Apache-2.0 OR MIT)
from spack import * from spack import *
from spack.pkg.builtin.boost import Boost
class Biobloom(AutotoolsPackage): class Biobloom(AutotoolsPackage):
@ -16,10 +15,7 @@ class Biobloom(AutotoolsPackage):
version('2.2.0', sha256='5d09f8690f0b6402f967ac09c5b0f769961f3fe3791000f8f73af6af7324f02c') version('2.2.0', sha256='5d09f8690f0b6402f967ac09c5b0f769961f3fe3791000f8f73af6af7324f02c')
# TODO: replace this with an explicit list of components of Boost, depends_on('boost+exception+math+serialization+container')
# for instance depends_on('boost +filesystem')
# See https://github.com/spack/spack/pull/22303 for reference
depends_on(Boost.with_default_variants)
depends_on('sdsl-lite') depends_on('sdsl-lite')
depends_on('sparsehash') depends_on('sparsehash')
depends_on('zlib') depends_on('zlib')

View file

@ -6,7 +6,6 @@
from os import symlink from os import symlink
from spack import * from spack import *
from spack.pkg.builtin.boost import Boost
class Bridger(MakefilePackage, SourceforgePackage): class Bridger(MakefilePackage, SourceforgePackage):
@ -17,11 +16,7 @@ class Bridger(MakefilePackage, SourceforgePackage):
sourceforge_mirror_path = "rnaseqassembly/Bridger_r2014-12-01.tar.gz" sourceforge_mirror_path = "rnaseqassembly/Bridger_r2014-12-01.tar.gz"
version('2014-12-01', sha256='8fbec8603ea8ad2162cbd0c658e4e0a4af6453bdb53310b4b7e0d112e40b5737') version('2014-12-01', sha256='8fbec8603ea8ad2162cbd0c658e4e0a4af6453bdb53310b4b7e0d112e40b5737')
depends_on('boost + exception + filesystem + system + serialization + graph')
# TODO: replace this with an explicit list of components of Boost,
# for instance depends_on('boost +filesystem')
# See https://github.com/spack/spack/pull/22303 for reference
depends_on(Boost.with_default_variants)
depends_on('perl', type='run') depends_on('perl', type='run')
def flag_handler(self, name, flags): def flag_handler(self, name, flags):

View file

@ -4,7 +4,6 @@
# SPDX-License-Identifier: (Apache-2.0 OR MIT) # SPDX-License-Identifier: (Apache-2.0 OR MIT)
from spack import * from spack import *
from spack.pkg.builtin.boost import Boost
class Casper(MakefilePackage): class Casper(MakefilePackage):
@ -19,11 +18,7 @@ class Casper(MakefilePackage):
version('0.8.2', sha256='3005e165cebf8ce4e12815b7660a833e0733441b5c7e5ecbfdccef7414b0c914') version('0.8.2', sha256='3005e165cebf8ce4e12815b7660a833e0733441b5c7e5ecbfdccef7414b0c914')
depends_on('jellyfish@2.2.3:') depends_on('jellyfish@2.2.3:')
depends_on('boost+exception')
# TODO: replace this with an explicit list of components of Boost,
# for instance depends_on('boost +filesystem')
# See https://github.com/spack/spack/pull/22303 for reference
depends_on(Boost.with_default_variants)
conflicts('%gcc@7.1.0') conflicts('%gcc@7.1.0')

View file

@ -4,7 +4,6 @@
# SPDX-License-Identifier: (Apache-2.0 OR MIT) # SPDX-License-Identifier: (Apache-2.0 OR MIT)
from spack import * from spack import *
from spack.pkg.builtin.boost import Boost
class Cgal(CMakePackage): class Cgal(CMakePackage):
@ -53,12 +52,7 @@ class Cgal(CMakePackage):
depends_on('cmake@2.8.11:', type='build') depends_on('cmake@2.8.11:', type='build')
# Essential Third Party Libraries # Essential Third Party Libraries
depends_on('boost+thread+system') depends_on('boost+exception+math+random+container')
# TODO: replace this with an explicit list of components of Boost,
# for instance depends_on('boost +filesystem')
# See https://github.com/spack/spack/pull/22303 for reference
depends_on(Boost.with_default_variants)
depends_on('gmp') depends_on('gmp')
depends_on('mpfr') depends_on('mpfr')

View file

@ -4,7 +4,6 @@
# SPDX-License-Identifier: (Apache-2.0 OR MIT) # SPDX-License-Identifier: (Apache-2.0 OR MIT)
from spack import * from spack import *
from spack.pkg.builtin.boost import Boost
class Cpprestsdk(CMakePackage): class Cpprestsdk(CMakePackage):
@ -19,12 +18,7 @@ class Cpprestsdk(CMakePackage):
version('2.10.16', git='https://github.com/Microsoft/cpprestsdk', branch='v2.10.16', submodules=True) version('2.10.16', git='https://github.com/Microsoft/cpprestsdk', branch='v2.10.16', submodules=True)
version('2.9.1', sha256='537358760acd782f4d2ed3a85d92247b4fc423aff9c85347dc31dbb0ab9bab16') version('2.9.1', sha256='537358760acd782f4d2ed3a85d92247b4fc423aff9c85347dc31dbb0ab9bab16')
depends_on('boost@:1.69.0') depends_on('boost@1.69.0: +random+chrono+locale+filesystem+system+exception+regex+thread+date_time')
# TODO: replace this with an explicit list of components of Boost,
# for instance depends_on('boost +filesystem')
# See https://github.com/spack/spack/pull/22303 for reference
depends_on(Boost.with_default_variants)
depends_on('openssl') depends_on('openssl')
# Ref: https://github.com/microsoft/cpprestsdk/commit/f9f518e4ad84577eb684ad8235181e4495299af4 # Ref: https://github.com/microsoft/cpprestsdk/commit/f9f518e4ad84577eb684ad8235181e4495299af4

View file

@ -4,7 +4,6 @@
# SPDX-License-Identifier: (Apache-2.0 OR MIT) # SPDX-License-Identifier: (Apache-2.0 OR MIT)
from spack import * from spack import *
from spack.pkg.builtin.boost import Boost
class Damaris(CMakePackage): class Damaris(CMakePackage):
@ -29,12 +28,7 @@ class Damaris(CMakePackage):
depends_on('mpi') depends_on('mpi')
depends_on('cmake@3.18.0:', type=('build')) depends_on('cmake@3.18.0:', type=('build'))
depends_on('boost +thread+log+filesystem+date_time @1.67:') depends_on('boost +exception+locale+system+serialization+chrono+atomic+container+regex+thread+log+filesystem+date_time @1.67:')
# TODO: replace this with an explicit list of components of Boost,
# for instance depends_on('boost +filesystem')
# See https://github.com/spack/spack/pull/22303 for reference
depends_on(Boost.with_default_variants)
depends_on('xsd') depends_on('xsd')
depends_on('xerces-c') depends_on('xerces-c')
depends_on('hdf5@1.8.20:', when='+hdf5') depends_on('hdf5@1.8.20:', when='+hdf5')

View file

@ -4,7 +4,6 @@
# SPDX-License-Identifier: (Apache-2.0 OR MIT) # SPDX-License-Identifier: (Apache-2.0 OR MIT)
from spack import * from spack import *
from spack.pkg.builtin.boost import Boost
class Denovogear(CMakePackage): class Denovogear(CMakePackage):
@ -20,12 +19,7 @@ class Denovogear(CMakePackage):
version('1.1.0', sha256='f818f80cd67183294c8aae312cad8311e6a9abede1f687567bb079d29f79c005') version('1.1.0', sha256='f818f80cd67183294c8aae312cad8311e6a9abede1f687567bb079d29f79c005')
depends_on('cmake@3.1:', type=('build')) depends_on('cmake@3.1:', type=('build'))
depends_on('boost@1.47:1.60', type=('build')) depends_on('boost@1.47:1.60 +exception+filesystem+system+serialization+graph+iostreams+regex+math+container', type=('build'))
# TODO: replace this with an explicit list of components of Boost,
# for instance depends_on('boost +filesystem')
# See https://github.com/spack/spack/pull/22303 for reference
depends_on(Boost.with_default_variants, type=('build'))
depends_on('htslib@1.2:', type=('build')) depends_on('htslib@1.2:', type=('build'))
depends_on('eigen', type=('build')) depends_on('eigen', type=('build'))
depends_on('zlib', type=('link')) depends_on('zlib', type=('link'))

View file

@ -4,7 +4,6 @@
# SPDX-License-Identifier: (Apache-2.0 OR MIT) # SPDX-License-Identifier: (Apache-2.0 OR MIT)
from spack import * from spack import *
from spack.pkg.builtin.boost import Boost
class Dimemas(AutotoolsPackage): class Dimemas(AutotoolsPackage):
@ -22,12 +21,7 @@ class Dimemas(AutotoolsPackage):
depends_on('bison', type=('build', 'link', 'run')) depends_on('bison', type=('build', 'link', 'run'))
depends_on('flex', type=('build', 'link', 'run')) depends_on('flex', type=('build', 'link', 'run'))
depends_on('boost@1.65.0+program_options cxxstd=11', type=('build', 'link')) depends_on('boost@1.65.0+container+math+exception+program_options cxxstd=11', type=('build', 'link'))
# TODO: replace this with an explicit list of components of Boost,
# for instance depends_on('boost +filesystem')
# See https://github.com/spack/spack/pull/22303 for reference
depends_on(Boost.with_default_variants, type=('build', 'link'))
def autoreconf(self, spec, prefix): def autoreconf(self, spec, prefix):
autoreconf('--install', '--verbose', '--force') autoreconf('--install', '--verbose', '--force')

View file

@ -45,6 +45,7 @@ class Dyninst(CMakePackage):
description="Patch for STAT's DySectAPI") description="Patch for STAT's DySectAPI")
boost_libs = '+atomic+chrono+date_time+filesystem+system+thread+timer' boost_libs = '+atomic+chrono+date_time+filesystem+system+thread+timer'
'+container+random+exception'
depends_on('boost@1.61.0:' + boost_libs, when='@10.1.0:') depends_on('boost@1.61.0:' + boost_libs, when='@10.1.0:')
depends_on('boost@1.61.0:1.69' + boost_libs, when='@:10.0') depends_on('boost@1.61.0:1.69' + boost_libs, when='@:10.0')

View file

@ -4,7 +4,6 @@
# SPDX-License-Identifier: (Apache-2.0 OR MIT) # SPDX-License-Identifier: (Apache-2.0 OR MIT)
from spack import * from spack import *
from spack.pkg.builtin.boost import Boost
class Dysco(CMakePackage): class Dysco(CMakePackage):
@ -17,9 +16,4 @@ class Dysco(CMakePackage):
depends_on('casacore') depends_on('casacore')
depends_on('gsl') depends_on('gsl')
depends_on('boost+date_time+python') depends_on('boost+date_time+python+container+exception')
# TODO: replace this with an explicit list of components of Boost,
# for instance depends_on('boost +filesystem')
# See https://github.com/spack/spack/pull/22303 for reference
depends_on(Boost.with_default_variants)

View file

@ -4,7 +4,6 @@
# SPDX-License-Identifier: (Apache-2.0 OR MIT) # SPDX-License-Identifier: (Apache-2.0 OR MIT)
from spack import * from spack import *
from spack.pkg.builtin.boost import Boost
class Erne(AutotoolsPackage): class Erne(AutotoolsPackage):
@ -18,12 +17,7 @@ class Erne(AutotoolsPackage):
variant('mpi', default=False, variant('mpi', default=False,
description='Build with OpenMPI support') description='Build with OpenMPI support')
depends_on('boost@1.40.0:', type=('build', 'link', 'run')) depends_on('boost@1.40.0: +exception+filesystem+system+chrono+serialization+random+atomic+iostreams+regex+thread+container', type=('build', 'link', 'run'))
# TODO: replace this with an explicit list of components of Boost,
# for instance depends_on('boost +filesystem')
# See https://github.com/spack/spack/pull/22303 for reference
depends_on(Boost.with_default_variants, type=('build', 'link', 'run'))
depends_on('openmpi', type=('build', 'run'), when='+mpi') depends_on('openmpi', type=('build', 'run'), when='+mpi')
def configure_args(self): def configure_args(self):

View file

@ -7,7 +7,6 @@
import os.path import os.path
from spack import * from spack import *
from spack.pkg.builtin.boost import Boost
class Express(CMakePackage): class Express(CMakePackage):
@ -22,10 +21,7 @@ class Express(CMakePackage):
version('1.5.2', sha256='25a63cca3dac6bd0daf04d2f0b2275e47d2190c90522bd231b1d7a875a59a52e') version('1.5.2', sha256='25a63cca3dac6bd0daf04d2f0b2275e47d2190c90522bd231b1d7a875a59a52e')
version('1.5.1', sha256='fa3522de9cc25f1ede22fa196928912a6da2a2038681911115ec3e4da3d61293') version('1.5.1', sha256='fa3522de9cc25f1ede22fa196928912a6da2a2038681911115ec3e4da3d61293')
# TODO: replace this with an explicit list of components of Boost, depends_on('boost+date_time+exception+filesystem+system+chrono+atomic+container+math+thread+program_options')
# for instance depends_on('boost +filesystem')
# See https://github.com/spack/spack/pull/22303 for reference
depends_on(Boost.with_default_variants)
depends_on('bamtools') depends_on('bamtools')
depends_on('zlib') depends_on('zlib')

View file

@ -4,7 +4,6 @@
# SPDX-License-Identifier: (Apache-2.0 OR MIT) # SPDX-License-Identifier: (Apache-2.0 OR MIT)
from spack import * from spack import *
from spack.pkg.builtin.boost import Boost
class Faodel(CMakePackage): class Faodel(CMakePackage):
@ -37,12 +36,7 @@ class Faodel(CMakePackage):
variant('serializer', default='xdr', values=('xdr', 'cereal'), description='Use Cereal to serialize NNTI data structures else XDR') variant('serializer', default='xdr', values=('xdr', 'cereal'), description='Use Cereal to serialize NNTI data structures else XDR')
depends_on('mpi', when='+mpi') depends_on('mpi', when='+mpi')
depends_on('boost@1.60.0:') depends_on('boost@1.60.0: +program_options+exception+locale+system+chrono+log+serialization+atomic+container+regex+thread+date_time')
# TODO: replace this with an explicit list of components of Boost,
# for instance depends_on('boost +filesystem')
# See https://github.com/spack/spack/pull/22303 for reference
depends_on(Boost.with_default_variants)
depends_on('cmake@3.8.0:', type='build') depends_on('cmake@3.8.0:', type='build')
depends_on('hdf5+mpi', when='+hdf5+mpi') depends_on('hdf5+mpi', when='+hdf5+mpi')
depends_on('hdf5~mpi', when='+hdf5~mpi') depends_on('hdf5~mpi', when='+hdf5~mpi')

View file

@ -5,7 +5,6 @@
from spack import * from spack import *
from spack.pkg.builtin.boost import Boost
class Flann(CMakePackage): class Flann(CMakePackage):
@ -66,12 +65,7 @@ def url_for_version(self, version):
depends_on("hdf5", when="+hdf5") depends_on("hdf5", when="+hdf5")
# HDF5_IS_PARALLEL actually comes from hdf5+mpi # HDF5_IS_PARALLEL actually comes from hdf5+mpi
# https://github.com/mariusmuja/flann/blob/06a49513138009d19a1f4e0ace67fbff13270c69/CMakeLists.txt#L108-L112 # https://github.com/mariusmuja/flann/blob/06a49513138009d19a1f4e0ace67fbff13270c69/CMakeLists.txt#L108-L112
depends_on("boost+mpi+system+serialization+thread", when="+mpi ^hdf5+mpi") depends_on("boost+mpi+system+serialization+thread+regex+graph+chrono+exception", when="+mpi ^hdf5+mpi")
# TODO: replace this with an explicit list of components of Boost,
# for instance depends_on('boost +filesystem')
# See https://github.com/spack/spack/pull/22303 for reference
depends_on(Boost.with_default_variants, when="+mpi ^hdf5+mpi")
# Doc deps # Doc deps
depends_on("texlive", when="+doc") depends_on("texlive", when="+doc")

View file

@ -6,7 +6,6 @@
import os import os
from spack import * from spack import *
from spack.pkg.builtin.boost import Boost
class FluxSched(AutotoolsPackage): class FluxSched(AutotoolsPackage):
@ -41,14 +40,9 @@ class FluxSched(AutotoolsPackage):
variant('cuda', default=False, description='Build dependencies with support for CUDA') variant('cuda', default=False, description='Build dependencies with support for CUDA')
# Needs to be seen if tis is needed once we remove the default variants # Needs to be seen if tis is needed once we remove the default variants
depends_on("boost+graph@1.53.0,1.59.0:") depends_on("boost+exception+filesystem+system+serialization+graph+container+regex@1.53.0,1.59.0: ")
depends_on("py-pyyaml@3.10:", type=('build', 'run')) depends_on("py-pyyaml@3.10:", type=('build', 'run'))
depends_on("py-jsonschema@2.3:", type=('build', 'run')) depends_on("py-jsonschema@2.3:", type=('build', 'run'))
# TODO: replace this with an explicit list of components of Boost,
# for instance depends_on('boost +filesystem')
# See https://github.com/spack/spack/pull/22303 for reference
depends_on(Boost.with_default_variants)
depends_on("libedit") depends_on("libedit")
depends_on("libxml2@2.9.1:") depends_on("libxml2@2.9.1:")
# pin yaml-cpp to 0.6.3 due to issue #886 # pin yaml-cpp to 0.6.3 due to issue #886

View file

@ -26,11 +26,8 @@ class Folly(CMakePackage):
# folly requires gcc 5+ and a version of boost compiled with >= C++14 # folly requires gcc 5+ and a version of boost compiled with >= C++14
variant('cxxstd', default='14', values=('14', '17'), multi=False, description='Use the specified C++ standard when building.') variant('cxxstd', default='14', values=('14', '17'), multi=False, description='Use the specified C++ standard when building.')
# Boost library dependencies: depends_on('boost+context+container+exception+filesystem+program_options+regex+serialization+system+thread cxxstd=14', when='cxxstd=14')
# CMake threw errors when program_options and thread were not included. depends_on('boost+context+container+exception+filesystem+program_options+regex+serialization+system+thread cxxstd=17', when='cxxstd=17')
# See https://github.com/spack/spack/pull/22303 for reference
depends_on('boost+container+context+exception+filesystem+program_options+regex+serialization+system+thread cxxstd=14', when='cxxstd=14')
depends_on('boost+container+context+exception+filesystem+program_options+regex+serialization+system+thread cxxstd=17', when='cxxstd=17')
# required dependencies # required dependencies
depends_on('gflags') depends_on('gflags')