diff --git a/VERSION b/VERSION index 24ba9a38de68d00674ec97b283a967699716b9f4..c8e38b614057b7e417c63fde44726a4143de9da0 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -2.7.0 +2.9.0 diff --git a/containers/builder/Dockerfile b/containers/builder/Dockerfile index 3adcd9f1595aa9261e24b4ec9a2532a7d0a64654..5c1f58d3373cfa687410502273cb910c6c6d1baf 100644 --- a/containers/builder/Dockerfile +++ b/containers/builder/Dockerfile @@ -1,6 +1,6 @@ # Builder with Argonne EIC software # -FROM eicweb.phy.anl.gov:4567/containers/image_recipes/debian_spack:snapshot-20210111 +FROM eicweb.phy.anl.gov:4567/containers/image_recipes/debian_spack:snapshot-20210408 LABEL maintainer="Sylvester Joosten <sjoosten@anl.gov>" \ name="eic_builder" \ @@ -11,7 +11,7 @@ LABEL maintainer="Sylvester Joosten <sjoosten@anl.gov>" \ ENV DOCKERFILE_BASE=debian \ DOCKERFILE_DISTRO=debian \ - DOCKERFILE_DISTRO_VERSION=20210111-testing \ + DOCKERFILE_DISTRO_VERSION=20210408-testing \ SPACK_ROOT=/opt/spack \ DEBIAN_FRONTEND=noninteractive \ CURRENTLY_BUILDING_DOCKER_IMAGE=1 \ diff --git a/containers/builder/spack.yaml b/containers/builder/spack.yaml index d40f4248c45f1ae9415f53de1999f6cf83ce022c..b64f8f22a0a386cfb23e9f0b9bfecdcc8b851089 100644 --- a/containers/builder/spack.yaml +++ b/containers/builder/spack.yaml @@ -1,19 +1,19 @@ spack: specs: - madx@5.06.1 - - cmake@3.18.1 + - cmake@3.20.0 - fmt@7.1.2 cxxstd=17 - - spdlog@1.5.0 + - spdlog@1.8.1 - nlohmann-json@3.9.1 - heppdt@3.04.01 - - clhep@2.4.1.3 cxxstd=17 - - eigen@3.3.8 + - clhep@2.4.4.0 cxxstd=17 + - eigen@3.3.9 - python@3.7.8 - py-pip - py-numpy - py-pyyaml - - xrootd@4.12.3 cxxstd=17 +python - - root@6.22.06 cxxstd=17 + - xrootd@5.1.0 cxxstd=17 +python + - root@6.22.08 cxxstd=17 +fftw +fortran +gdml +http +mlp +pythia8 +root7 +tmva +vc +xrootd +ssl ^mesa+opengl -llvm -osmesa @@ -22,8 +22,8 @@ spack: - stow@2.3.1 - cairo+fc+ft+X+pdf+gobject - podio@0.13 - - geant4@10.6.2 cxxstd=17 +opengl +vecgeom +x11 +qt ^qt +opengl - - dd4hep@1.14.1 +geant4 +assimp +hepmc3 +ipo + - geant4@10.7.1 cxxstd=17 +opengl +vecgeom +x11 +qt ^qt +opengl + - dd4hep@1.16.1 +geant4 +assimp +hepmc3 +ipo - acts@5.00.0 +dd4hep +digitization +identification +json +tgeo +ipo - gaudi@34.0 - dawn@3_91a diff --git a/containers/release/Dockerfile.in b/containers/release/Dockerfile.in index 1a36fee9dfb192ac6d20011c27fdd5619fdc8353..8b259c63dc249d783d64bc6eb47cc482b9d26298 100644 --- a/containers/release/Dockerfile.in +++ b/containers/release/Dockerfile.in @@ -12,7 +12,7 @@ RUN find -L /usr/local/* -type f -exec readlink -f '{}' \; | \ grep 'x-executable\|x-archive\|x-sharedlib' | \ awk -F: '{print $1}' | xargs strip -s -FROM eicweb.phy.anl.gov:4567/containers/image_recipes/debian_minimal:testing-20210111 +FROM eicweb.phy.anl.gov:4567/containers/image_recipes/debian_minimal:testing-20210408 LABEL maintainer="Sylvester Joosten <sjoosten@anl.gov>" \ name="eic" \ group="eic" \ @@ -23,7 +23,7 @@ LABEL maintainer="Sylvester Joosten <sjoosten@anl.gov>" \ ## @ENV@ will be automatically expanded to auto-load the ## runtime environment ENV DOCKERFILE_DISTRO=debian \ - DOCKERFILE_DISTRO_VERSION=20210111-testing \ + DOCKERFILE_DISTRO_VERSION=20210408-testing \ DEBIAN_FRONTEND=noninteractive \ @ENV@ diff --git a/spack/README.md b/spack/README.md index 917b7c198971887ce470c28d6518cb921caaeaad..5ddb0d389e45671245811ab25c004773492b942d 100644 --- a/spack/README.md +++ b/spack/README.md @@ -16,11 +16,10 @@ Then use spack as you normally would. - `dawn`: A tool to visualize detector geometries. - `dawncut`: A tool to edit detector visualizations. * Package overrides - * `acts`: Added version 3.00.0 which is still missing in the main repo. - * `dd4hep`: Disabled use of the Ninja backend for cmake as it was running into dependency issues building assymp + * `dd4hep`: REMOVED Disabled use of the Ninja backend for cmake as it was running into dependency issues building assymp * `fmt`: Modified compiler flags to build shared library version. - * `geant4`: Added explicit glu dependency for OpenGL - * `graphviz`: Set upper version limit to stop applying implicit.patch to the newest version + * `madx`: Add madx package + * `mesa`: fix issue in meson step * `qt`: Added gcc10.patch to fix issues compiling QT with gcc10 * `root`: Re-enabled http module as this builds fine on modern Linux systems and we use this heavily. diff --git a/spack/packages/acts/README.md b/spack/packages/acts/README.md deleted file mode 100644 index 5d8500e622718cd278d5f869f5102d3f20216cb0..0000000000000000000000000000000000000000 --- a/spack/packages/acts/README.md +++ /dev/null @@ -1 +0,0 @@ -Same as develop version at 2021-1-17, except that I added acts version 4.1 diff --git a/spack/packages/acts/package.py b/spack/packages/acts/package.py deleted file mode 100644 index 59abfb5b2af2daca5010b44fb6a679d2443e1444..0000000000000000000000000000000000000000 --- a/spack/packages/acts/package.py +++ /dev/null @@ -1,217 +0,0 @@ -# Copyright 2013-2021 Lawrence Livermore National Security, LLC and other -# Spack Project Developers. See the top-level COPYRIGHT file for details. -# -# SPDX-License-Identifier: (Apache-2.0 OR MIT) - -from spack import * - - -class Acts(CMakePackage, CudaPackage): - """ - A Common Tracking Software (Acts) - - This project contains an experiment-independent set of track reconstruction - tools. The main philosophy is to provide high-level track reconstruction - modules that can be used for any tracking detector. The description of the - tracking detector's geometry is optimized for efficient navigation and - quick extrapolation of tracks. Converters for several common geometry - description languages exist. Having a highly performant, yet largely - customizable implementation of track reconstruction algorithms was a - primary objective for the design of this toolset. Additionally, the - applicability to real-life HEP experiments plays major role in the - development process. Apart from algorithmic code, this project also - provides an event data model for the description of track parameters and - measurements. - - Key features of this project include: tracking geometry description which - can be constructed from TGeo, DD4Hep, or GDML input, simple and efficient - event data model, performant and highly flexible algorithms for track - propagation and fitting, basic seed finding algorithms. - """ - - homepage = "http://acts.web.cern.ch/ACTS/" - git = "https://github.com/acts-project/acts.git" - maintainers = ['HadrienG2'] - - tags = ['hep'] - - # Supported Acts versions - version('master', branch='master') - version('5.00.0', commit='df77b91a7d37b8db6ed028a4d737014b5ad86bb7') - version('4.01.0', commit='c383bf434ef69939b47e840e0eac0ba632e6af9f') - version('4.00.0', commit='ed64b4b88d366b63adc4a8d1afe5bc97aa5751eb') - version('3.00.0', commit='e20260fccb469f4253519d3f0ddb3191b7046db3') - version('2.00.0', commit='8708eae2b2ccdf57ab7b451cfbba413daa1fc43c') - version('1.02.1', commit='f6ebeb9a28297ba8c54fd08b700057dd4ff2a311') - version('1.02.0', commit='e69b95acc9a264e63aded7d1714632066e090542') - version('1.01.0', commit='836fddd02c3eff33825833ff97d6abda5b5c20a0') - version('1.00.0', commit='ec9ce0bcdc837f568d42a12ddf3fc9c80db62f5d') - version('0.32.0', commit='a4cedab7e727e1327f2835db29d147cc86b21054') - version('0.31.0', commit='cfbd901555579a2f32f4efe2b76a7048442b42c3') - version('0.30.0', commit='a71ef0a9c742731611645214079884585a92b15e') - version('0.29.0', commit='33aa3e701728112e8908223c4a7fd521907c8ea4') - version('0.28.0', commit='55626b7401eeb93fc562e79bcf385f0ad0ac48bf') - version('0.27.1', commit='8ba3010a532137bc0ab6cf83a38b483cef646a01') - version('0.27.0', commit='f7b1a1c27d5a95d08bb67236ad0e117fcd1c679f') - version('0.26.0', commit='cf542b108b31fcc349fc18fb0466f889e4e42aa6') - version('0.25.2', commit='76bf1f3e4be51d4d27126b473a2caa8d8a72b320') - version('0.25.1', commit='6e8a1ea6d2c7385a78e3e190efb2a8a0c1fa957f') - version('0.25.0', commit='0aca171951a214299e8ff573682b1c5ecec63d42') - version('0.24.0', commit='ef4699c8500bfea59a5fe88bed67fde2f00f0adf') - version('0.23.0', commit='dc443dd7e663bc4d7fb3c1e3f1f75aaf57ffd4e4') - version('0.22.1', commit='ca1b8b1645db6b552f44c48d2ff34c8c29618f3a') - version('0.22.0', commit='2c8228f5843685fc0ae69a8b95dd8fc001139efb') - version('0.21.0', commit='10b719e68ddaca15b28ac25b3daddce8c0d3368d') - version('0.20.0', commit='1d37a849a9c318e8ca4fa541ef8433c1f004637b') - version('0.19.0', commit='408335636486c421c6222a64372250ef12544df6') - 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') - version('0.13.0', commit='b33f7270ddbbb33050b7ec60b4fa255dc2bfdc88') - version('0.12.1', commit='a8b3d36e7c6cb86487637589e0eff7bbe626054a') - version('0.12.0', commit='f9cda77299606d78c889fb1db2576c1971a271c4') - version('0.11.1', commit='c21196cd6c3ecc6da0f14d0a9ef227a274be584b') - version('0.11.0', commit='22bcea1f19adb0021ca61b843b95cfd2462dd31d') - version('0.10.5', commit='b6f7234ca8f18ee11e57709d019c14bf41cf9b19') - version('0.10.4', commit='42cbc359c209f5cf386e620b5a497192c024655e') - version('0.10.3', commit='a3bb86b79a65b3d2ceb962b60411fd0df4cf274c') - version('0.10.2', commit='64cbf28c862d8b0f95232b00c0e8c38949d5015d') - version('0.10.1', commit='0692dcf7824efbc504fb16f7aa00a50df395adbc') - version('0.10.0', commit='30ef843cb00427f9959b7de4d1b9843413a13f02') - version('0.09.5', commit='12b11fe8b0d428ccb8e92dda7dc809198f828672') - version('0.09.4', commit='e5dd9fbe179201e70347d1a3b9fa1899c226798f') - version('0.09.3', commit='a8f31303ee8720ed2946bfe2d59e81d0f70e307e') - version('0.09.2', commit='4e1f7fa73ffe07457080d787e206bf6466fe1680') - version('0.09.1', commit='69c451035516cb683b8f7bc0bab1a25893e9113d') - version('0.09.0', commit='004888b0a412f5bbaeef2ffaaeaf2aa182511494') - version('0.08.2', commit='c5d7568714e69e7344582b93b8d24e45d6b81bf9') - version('0.08.1', commit='289bdcc320f0b3ff1d792e29e462ec2d3ea15df6') - version('0.08.0', commit='99eedb38f305e3a1cd99d9b4473241b7cd641fa9') - - # Variants that affect the core Acts library - variant('benchmarks', default=False, description='Build the performance benchmarks') - variant('examples', default=False, description='Build the examples') - variant('integration_tests', default=False, description='Build the integration tests') - variant('unit_tests', default=False, description='Build the unit tests') - - # Variants that enable / disable Acts plugins - variant('autodiff', default=False, description='Build the auto-differentiation plugin') - variant('dd4hep', default=False, description='Build the DD4hep plugin') - variant('digitization', default=False, description='Build the geometric digitization plugin') - variant('fatras', default=False, description='Build the FAst TRAcking Simulation package') - variant('identification', default=False, description='Build the Identification plugin') - variant('json', default=False, description='Build the Json plugin') - variant('legacy', default=False, description='Build the Legacy package') - # FIXME: Cannot build ONNX plugin as Spack doesn't have an ONNX runtime - # FIXME: Cannot build SyCL plugin yet as Spack doesn't have SyCL support - variant('tgeo', default=False, description='Build the TGeo plugin') - - # Variants that only affect Acts examples for now - variant('geant4', default=False, description='Build the Geant4-based examples') - variant('hepmc3', default=False, description='Build the HepMC3-based examples') - variant('pythia8', default=False, description='Build the Pythia8-based examples') - - # Build dependencies - # FIXME: Use spack's autodiff package once there is one - depends_on('boost @1.62:1.69.99 +program_options +test', when='@:0.10.3') - depends_on('boost @1.69: +filesystem +program_options +test', when='@0.10.4:') - depends_on('cmake @3.11:', type='build') - depends_on('dd4hep @1.10:', when='+dd4hep') - depends_on('dd4hep @1.10: +geant4', when='+dd4hep +geant4') - depends_on('eigen @3.2.9:', type='build') - depends_on('geant4', when='+geant4') - depends_on('hepmc3@3.1:', when='+hepmc3') - depends_on('heppdt', when='+hepmc3') - depends_on('intel-tbb', when='+examples') - depends_on('nlohmann-json @3.2.0:', when='@0.14: +json') - depends_on('pythia8', when='+pythia8') - depends_on('root @6.10: cxxstd=14', when='+tgeo @:0.8.0') - depends_on('root @6.10: cxxstd=17', when='+tgeo @0.8.1:') - - # Some variant combinations do not make sense - conflicts('+autodiff', when='@:1.01') - conflicts('+benchmarks', when='@:0.15') - conflicts('+dd4hep', when='-tgeo') - conflicts('+examples', when='@:0.22') - conflicts('+examples', when='-digitization') - conflicts('+examples', when='-fatras') - conflicts('+examples', when='-identification') - conflicts('+examples', when='-json') - conflicts('+examples', when='-tgeo') - conflicts('+fatras', when='@:0.15') - conflicts('+geant4', when='@:0.22') - conflicts('+geant4', when='-examples') - conflicts('+hepmc3', when='@:0.22') - conflicts('+hepmc3', when='-examples') - conflicts('+pythia8', when='@:0.22') - conflicts('+pythia8', when='-examples') - conflicts('+tgeo', when='-identification') - conflicts('%gcc@:7', when='@0.23:') - - def cmake_args(self): - spec = self.spec - - def cmake_variant(cmake_label, spack_variant): - enabled = spec.satisfies('+' + spack_variant) - return "-DACTS_BUILD_{0}={1}".format(cmake_label, enabled) - - def example_cmake_variant(cmake_label, spack_variant): - enabled = spec.satisfies('+examples +' + spack_variant) - return "-DACTS_BUILD_EXAMPLES_{0}={1}".format(cmake_label, enabled) - - def plugin_label(plugin_name): - if spec.satisfies('@0.33:'): - return "PLUGIN_" + plugin_name - else: - return plugin_name + "_PLUGIN" - - def plugin_cmake_variant(plugin_name, spack_variant): - return cmake_variant(plugin_label(plugin_name), spack_variant) - - integration_tests_label = "INTEGRATIONTESTS" - unit_tests_label = "UNITTESTS" - legacy_plugin_label = "LEGACY_PLUGIN" - if spec.satisfies('@:0.15'): - integration_tests_label = "INTEGRATION_TESTS" - unit_tests_label = "TESTS" - if spec.satisfies('@:0.32'): - legacy_plugin_label = "LEGACY" - - args = [ - plugin_cmake_variant("AUTODIFF", "autodiff"), - cmake_variant("BENCHMARKS", "benchmarks"), - plugin_cmake_variant("CUDA", "cuda"), - plugin_cmake_variant("DD4HEP", "dd4hep"), - plugin_cmake_variant("DIGITIZATION", "digitization"), - cmake_variant("EXAMPLES", "examples"), - example_cmake_variant("DD4HEP", "dd4hep"), - example_cmake_variant("GEANT4", "geant4"), - example_cmake_variant("HEPMC3", "hepmc3"), - example_cmake_variant("PYTHIA8", "pythia8"), - cmake_variant("FATRAS", "fatras"), - plugin_cmake_variant("IDENTIFICATION", "identification"), - cmake_variant(integration_tests_label, "integration_tests"), - plugin_cmake_variant("JSON", "json"), - cmake_variant(unit_tests_label, "unit_tests"), - cmake_variant(legacy_plugin_label, "legacy"), - plugin_cmake_variant("TGEO", "tgeo") - ] - - cuda_arch = spec.variants['cuda_arch'].value - if cuda_arch != 'none': - args.append('-DCUDA_FLAGS=-arch=sm_{0}'.format(cuda_arch[0])) - - if 'root' in spec: - cxxstd = spec['root'].variants['cxxstd'].value - args.append("-DCMAKE_CXX_STANDARD={0}".format(cxxstd)) - - # FIXME: Once we can use spack's autodiff package, set - # ACTS_USE_SYSTEM_AUTODIFF too. - if spec.satisfies('@0.33: +json'): - args.append("-DACTS_USE_SYSTEM_NLOHMANN_JSON=ON") - elif spec.satisfies('@0.14.0: +json'): - args.append("-DACTS_USE_BUNDLED_NLOHMANN_JSON=OFF") - - return args diff --git a/spack/packages/dawn/package.py b/spack/packages/dawn/package.py index c9d3d050c2fc3370ff627e11e3804335ab192038..703a134b3cfdfc360b91904ac6c328858083a88c 100644 --- a/spack/packages/dawn/package.py +++ b/spack/packages/dawn/package.py @@ -30,8 +30,11 @@ class Dawn(MakefilePackage): installed on your system. """ + # Note: Dawn homepage not available anymore... homepage = "https://geant4.kek.jp/~tanaka" - url = "http://geant4.kek.jp/~tanaka/src/dawn_3_91a.tgz" + #url = "http://geant4.kek.jp/~tanaka/src/dawn_3_91a.tgz" + url = "http://10.10.241.24/software/dawn_3_91a.tgz" + maintainers = ['sly2j'] version('3_91a', sha256='81d855ead1117681b188242dd0be3a24e005d9bd4063fd2bda9a7a794ebcf5f4') diff --git a/spack/packages/dawncut/package.py b/spack/packages/dawncut/package.py index c0eac789f402ce621bbf75f7abe65f7ced118c87..56727106ca8485278e180de3d8429335343a9540 100644 --- a/spack/packages/dawncut/package.py +++ b/spack/packages/dawncut/package.py @@ -13,8 +13,9 @@ class Dawncut(MakefilePackage): visualized with Fukui Renderer DAWN. """ + # dawn webpage not available anymore homepage = "https://geant4.kek.jp/~tanaka" - url = "http://10.10.241.20/software/dawncut_1_54a.tar.gz" + url = "http://10.10.241.24/software/dawncut_1_54a.tar.gz" maintainers = ['sly2j'] version('1_54a', diff --git a/spack/packages/dd4hep/package.py b/spack/packages/dd4hep/package.py deleted file mode 100644 index 8b8412767b98035289193c1f1cdfb638b7697989..0000000000000000000000000000000000000000 --- a/spack/packages/dd4hep/package.py +++ /dev/null @@ -1,97 +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 Dd4hep(CMakePackage): - """DD4hep is a software framework for providing a complete solution for - full detector description (geometry, materials, visualization, readout, - alignment, calibration, etc.) for the full experiment life cycle - (detector concept development, detector optimization, construction, - operation). It offers a consistent description through a single source - of detector information for simulation, reconstruction, analysis, etc. - It distributed under the LGPLv3 License.""" - - homepage = "https://dd4hep.web.cern.ch/dd4hep/" - url = "https://github.com/AIDASoft/DD4hep/archive/v01-12-01.tar.gz" - git = "https://github.com/AIDASoft/DD4hep.git" - - maintainers = ['vvolkl', 'drbenmorgan'] - - version('master', branch='master') - version('1.14.1', sha256='5b5742f1e23c2b36d3174cca95f810ce909c0eb66f3d6d7acb0ba657819e6717') - version('1.14.0', sha256='b603aa3c0db8dda392253aa71fa4a0f0c3c9715d47df0b895d45c1e8849f4895') - version('1.13.1', sha256='83fa70cd74ce93b2f52f098388dff58d179f05ace5b50aea3f408bb8abf7cb73') - version('1.13.0', sha256='0b1f9d902ebe21a9178c1e41204c066b29f68c8836fd1d03a9ce979811ddb295') - version('1.12.1', sha256='85e8c775ec03c499ce10911e228342e757c81ce9ef2a9195cb253b85175a2e93') - version('1.12.0', sha256='133a1fb8ce0466d2482f3ebb03e60b3bebb9b2d3e33d14ba15c8fbb91706b398') - version('1.11.2', sha256='96a53dd26cb8df11c6dae54669fbc9cc3c90dd47c67e07b24be9a1341c95abc4') - version('1.11.1', sha256='d7902dd7f6744bbda92f6e303ad5a3410eec4a0d2195cdc86f6c1167e72893f0') - version('1.11.0', sha256='25643296f15f9d11ad4ad550b7c3b92e8974fc56f1ee8e4455501010789ae7b6') - version('1.10.0', sha256='1d6b5d1c368dc8bcedd9c61b7c7e1a44bad427f8bd34932516aff47c88a31d95') - - - # Workarounds for various TBB issues in DD4hep v1.11 - # See https://github.com/AIDASoft/DD4hep/pull/613 . - patch('tbb-workarounds.patch', when='@1.11.0') - patch('tbb2.patch', when='@1.12.1') - - variant('xercesc', default=False, description="Enable 'Detector Builders' based on XercesC") - variant('geant4', default=False, description="Enable the simulation part based on Geant4") - variant('assimp', default=False, description="Enable CAD interface based on Assimp") - variant('hepmc3', default=False, description="Enable build with hepmc3") - variant('lcio', default=False, description="Enable build with lcio") - variant('debug', default=False, description="Enable debug build") - - depends_on('cmake @3.12:', type='build') - depends_on('boost @1.49:') - depends_on('root @6.08: +gdml +math +opengl +python +x') - extends('python') - depends_on('xerces-c', when='+xercesc') - depends_on('geant4@10.2.2:', when='+geant4') - depends_on('assimp', when='+assimp') - depends_on('hepmc3', when="+hepmc3") - depends_on('lcio', when="+lcio") - - def cmake_args(self): - spec = self.spec - cxxstd = spec['root'].variants['cxxstd'].value - # root can be built with cxxstd=11, but dd4hep requires 14 - if cxxstd == "11": - cxxstd = "14" - args = [ - "-DCMAKE_CXX_STANDARD={0}".format(cxxstd), - "-DDD4HEP_USE_XERCESC={0}".format(spec.satisfies('+xercesc')), - "-DDD4HEP_USE_GEANT4={0}".format(spec.satisfies('+geant4')), - "-DDD4HEP_USE_LCIO={0}".format(spec.satisfies('+lcio')), - "-DDD4HEP_LOAD_ASSIMP={0}".format(spec.satisfies('+assimp')), - "-DDD4HEP_USE_HEPMC3={0}".format(spec.satisfies('+hepmc3')), - "-DDD4HEP_BUILD_DEBUG={0}".format(spec.satisfies('+debug')), - "-DBUILD_TESTING={0}".format(self.run_tests), - "-DBOOST_ROOT={0}".format(spec['boost'].prefix), - "-DBoost_NO_BOOST_CMAKE=ON", - "-DPYTHON_EXECUTABLE={0}".format(spec['python'].command.path), - ] - return args - - def setup_run_environment(self, env): - # used p.ex. in ddsim to find DDDetectors dir - env.set("DD4hepINSTALL", self.prefix) - env.set("DD4hep_DIR", self.prefix) - env.set("DD4hep_ROOT", self.prefix) - - def url_for_version(self, version): - # dd4hep releases are dashes and padded with a leading zero - # the patch version is omitted when 0 - # so for example v01-12-01, v01-12 ... - major = (str(version[0]).zfill(2)) - minor = (str(version[1]).zfill(2)) - patch = (str(version[2]).zfill(2)) - if version[2] == 0: - url = "https://github.com/AIDASoft/DD4hep/archive/v%s-%s.tar.gz" % (major, minor) - else: - url = "https://github.com/AIDASoft/DD4hep/archive/v%s-%s-%s.tar.gz" % (major, minor, patch) - return url diff --git a/spack/packages/dd4hep/tbb-workarounds.patch b/spack/packages/dd4hep/tbb-workarounds.patch deleted file mode 100644 index 6592329774349d13e33d0a799c0b57f4b08cc82b..0000000000000000000000000000000000000000 --- a/spack/packages/dd4hep/tbb-workarounds.patch +++ /dev/null @@ -1,41 +0,0 @@ -diff --git a/DDDigi/CMakeLists.txt b/DDDigi/CMakeLists.txt -index e6fb1096..88eb5c92 100644 ---- a/DDDigi/CMakeLists.txt -+++ b/DDDigi/CMakeLists.txt -@@ -34,12 +34,10 @@ target_include_directories(DDDigi - - FIND_PACKAGE(TBB QUIET) - if(TBB_FOUND) -- dd4hep_print( "|++> TBB_INCLUDE_DIR --> ${TBB_INCLUDE_DIR}") -- dd4hep_print( "|++> TBB_LIBRARY --> ${TBB_LIBRARY}") -+ dd4hep_print( "|++> TBB_IMPORTED_TARGETS --> ${TBB_IMPORTED_TARGETS}") - dd4hep_print( "|++> TBB found. DDDigi will run multi threaded.") - target_compile_definitions(DDDigi PUBLIC DD4HEP_USE_TBB) -- target_link_libraries(DDDigi ${TBB_LIBRARY}) -- target_include_directories(DDDigi ${TBB_INCLUDE_DIRS}) -+ target_link_libraries(DDDigi PUBLIC ${TBB_IMPORTED_TARGETS}) - else() - dd4hep_print( "|++> TBB not found. DDDigi will only work single threaded.") - endif() -diff --git a/DDDigi/src/DigiKernel.cpp b/DDDigi/src/DigiKernel.cpp -index d62c6694..f2c2e86c 100644 ---- a/DDDigi/src/DigiKernel.cpp -+++ b/DDDigi/src/DigiKernel.cpp -@@ -91,7 +91,7 @@ public: - DigiEventAction* action = 0; - Wrapper(DigiContext& c, DigiEventAction* a) - : context(c), action(a) {} -- Wrapper(Wrapper&& copy) = delete; -+ Wrapper(Wrapper&& copy) = default; - Wrapper(const Wrapper& copy) = default; - Wrapper& operator=(Wrapper&& copy) = delete; - Wrapper& operator=(const Wrapper& copy) = delete; -@@ -111,7 +111,7 @@ class DigiKernel::Processor { - DigiKernel& kernel; - public: - Processor(DigiKernel& k) : kernel(k) {} -- Processor(Processor&& l) = delete; -+ Processor(Processor&& l) = default; - Processor(const Processor& l) = default; - void operator()() const { - int todo = 1; diff --git a/spack/packages/dd4hep/tbb2.patch b/spack/packages/dd4hep/tbb2.patch deleted file mode 100644 index 932458001c211c75708555f2feee1ad8cdeb39e1..0000000000000000000000000000000000000000 --- a/spack/packages/dd4hep/tbb2.patch +++ /dev/null @@ -1,14 +0,0 @@ -diff --git a/DDDigi/src/DigiKernel.cpp b/DDDigi/src/DigiKernel.cpp -index f2c2e86c..f168ef9b 100644 ---- a/DDDigi/src/DigiKernel.cpp -+++ b/DDDigi/src/DigiKernel.cpp -@@ -273,7 +273,7 @@ void DigiKernel::submit(const DigiAction::Actors<DigiEventAction>& actions, Digi - if ( parallel ) { - tbb::task_group que; - for ( auto* i : actions ) -- que.run(Wrapper(context, *i)); -+ que.run(Wrapper(context, i)); - que.wait(); - goto print_stamp; - } - diff --git a/spack/packages/fmt/package.py b/spack/packages/fmt/package.py index 26de8998a4431997edbcaa992a6019a090ad0cf4..e0aea9bd48276a240332dabd2d26d7ac0117720a 100644 --- a/spack/packages/fmt/package.py +++ b/spack/packages/fmt/package.py @@ -1,4 +1,4 @@ -# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other +# Copyright 2013-2021 Lawrence Livermore National Security, LLC and other # Spack Project Developers. See the top-level COPYRIGHT file for details. # # SPDX-License-Identifier: (Apache-2.0 OR MIT) @@ -11,9 +11,10 @@ class Fmt(CMakePackage): It can be used as a safe alternative to printf or as a fast alternative to C++ IOStreams.""" - homepage = "http://fmtlib.net/latest/index.html" - url = "https://github.com/fmtlib/fmt/releases/download/7.1.2/fmt-7.1.2.zip" + homepage = "https://fmt.dev/" + url = "https://github.com/fmtlib/fmt/releases/download/7.1.3/fmt-7.1.3.zip" + version('7.1.3', sha256='5d98c504d0205f912e22449ecdea776b78ce0bb096927334f80781e720084c9f') version('7.1.2', sha256='4d6968ab7c01e95cc76df136755703defb985105a117b83057e4fd5d53680ea7') version('7.1.0', sha256='308af4e36ee3ab527b51014a2a5d862682c84f5d16f7a597aea34c84853cbcb0') version('6.1.2', sha256='63650f3c39a96371f5810c4e41d6f9b0bb10305064e6faf201cbafe297ea30e8') @@ -73,6 +74,7 @@ class Fmt(CMakePackage): # compiler supports the selected standard. args.append('-DCMAKE_CXX_STANDARD_REQUIRED=ON') + # S. Joosten --> hard build shared library version args.append('-DBUILD_SHARED_LIBS=TRUE') # When cxxstd is 98, must disable FMT_USE_CPP11 diff --git a/spack/packages/geant4/CLHEP-10.03.03.patch b/spack/packages/geant4/CLHEP-10.03.03.patch deleted file mode 100644 index b865f3bde24c1eead5cf2237289dfe7f886faaee..0000000000000000000000000000000000000000 --- a/spack/packages/geant4/CLHEP-10.03.03.patch +++ /dev/null @@ -1,34 +0,0 @@ -diff --git a/cmake/Modules/FindCLHEP.cmake b/cmake/Modules/FindCLHEP.cmake -index 8b59f1c0a..f616d678e 100644 ---- a/cmake/Modules/FindCLHEP.cmake -+++ b/cmake/Modules/FindCLHEP.cmake -@@ -180,7 +180,10 @@ if(UNIX) - execute_process(COMMAND ${CLHEP_CONFIG_EXECUTABLE} --prefix - OUTPUT_VARIABLE _clhep_config_prefix - OUTPUT_STRIP_TRAILING_WHITESPACE) -- -+ if (_clhep_config_prefix) -+ # Remove wrapping double quotes. -+ string(REGEX REPLACE "\"(.*)\"" "\\1" _clhep_config_prefix "${_clhep_config_prefix}") -+ endif() - list(APPEND _clhep_root_hints ${_clhep_config_prefix}) - endif() - elseif(WIN32 AND NOT UNIX) -diff --git a/cmake/Templates/Geant4Config.cmake.in b/cmake/Templates/Geant4Config.cmake.in -index d6fe408b3..f355be2af 100644 ---- a/cmake/Templates/Geant4Config.cmake.in -+++ b/cmake/Templates/Geant4Config.cmake.in -@@ -268,13 +268,7 @@ set(Geant4_builtin_clhep_FOUND @GEANT4_USE_BUILTIN_CLHEP@) - if(NOT Geant4_builtin_clhep_FOUND) - set(Geant4_system_clhep_ISGRANULAR @GEANT4_USE_SYSTEM_CLHEP_GRANULAR@) - -- set(CLHEP_ROOT_DIR "@CLHEP_ROOT_DIR@") -- set(__GEANT4_OLD_CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH}) -- set(CMAKE_MODULE_PATH "${_geant4_thisdir}/Modules" ${CMAKE_MODULE_PATH}) - find_package(CLHEP @CLHEP_VERSION@ REQUIRED @__g4_clhep_components@) -- set(CMAKE_MODULE_PATH ${__GEANT4_OLD_CMAKE_MODULE_PATH}) -- unset(CLHEP_ROOT_DIR) -- unset(__GEANT4_OLD_CMAKE_MODULE_PATH) - #CLHEP doesn't use target properties fully yet, so always include_directories - include_directories(${CLHEP_INCLUDE_DIRS}) - endif() diff --git a/spack/packages/geant4/cxx17.patch b/spack/packages/geant4/cxx17.patch deleted file mode 100644 index 3845e9e20bb6534467f6713285817b11310ee30d..0000000000000000000000000000000000000000 --- a/spack/packages/geant4/cxx17.patch +++ /dev/null @@ -1,22 +0,0 @@ -diff -Naur geant4.10.03.p03/cmake/Modules/Geant4LibraryBuildOptions.cmake geant4.10.03.p03/cmake/Modules/Geant4LibraryBuildOptions.cmake ---- geant4.10.03.p03/cmake/Modules/Geant4LibraryBuildOptions.cmake 2017-10-20 06:30:46.000000000 -0500 -+++ geant4.10.03.p03/cmake/Modules/Geant4LibraryBuildOptions.cmake 2018-04-16 16:48:02.194321171 -0500 -@@ -76,7 +76,7 @@ - # Mark as advanced because most users will not need it - enum_option(GEANT4_BUILD_CXXSTD - DOC "C++ Standard to compile against" -- VALUES 11 14 c++11 c++14 -+ VALUES 11 14 17 c++11 c++14 c++17 - CASE_INSENSITIVE - ) - -@@ -106,6 +106,9 @@ - - # Add Definition to flags for temporary back compatibility - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DG4USE_STD11") -+if(GEANT4_BUILD_CXXSTD GREATER 14) -+ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -D_LIBCPP_ENABLE_CXX17_REMOVED_FEATURES=1") -+endif() - - # Hold any appropriate compile flag(s) in variable for later export to - # config files. Needed to support late CMake 2.8 where compile features diff --git a/spack/packages/geant4/cxx17_geant4_10_0.patch b/spack/packages/geant4/cxx17_geant4_10_0.patch deleted file mode 100644 index 228985ebc446c30acf7975f3280e7f4be9431d27..0000000000000000000000000000000000000000 --- a/spack/packages/geant4/cxx17_geant4_10_0.patch +++ /dev/null @@ -1,22 +0,0 @@ -diff -Naur geant4/cmake/Modules/G4BuildSettings.cmake geant4/cmake/Modules/G4BuildSettings.cmake ---- geant4/cmake/Modules/G4BuildSettings.cmake 2017-10-20 06:30:46.000000000 -0500 -+++ geant4/cmake/Modules/G4BuildSettings.cmake 2018-04-16 16:48:02.194321171 -0500 -@@ -76,7 +76,7 @@ - # Mark as advanced because most users will not need it - enum_option(GEANT4_BUILD_CXXSTD - DOC "C++ Standard to compile against" -- VALUES 11 14 c++11 c++14 -+ VALUES 11 14 17 c++11 c++14 c++17 - CASE_INSENSITIVE - ) - -@@ -106,6 +106,9 @@ - - # Add Definition to flags for temporary back compatibility - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DG4USE_STD11") -+if(GEANT4_BUILD_CXXSTD GREATER 14) -+ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -D_LIBCPP_ENABLE_CXX17_REMOVED_FEATURES=1") -+endif() - - # Hold any appropriate compile flag(s) in variable for later export to - # config files. Needed to support late CMake 2.8 where compile features diff --git a/spack/packages/geant4/geant4-10.4.3-cxx17-removed-features.patch b/spack/packages/geant4/geant4-10.4.3-cxx17-removed-features.patch deleted file mode 100644 index a4938876794fab4c60ab35102fb25da84159192f..0000000000000000000000000000000000000000 --- a/spack/packages/geant4/geant4-10.4.3-cxx17-removed-features.patch +++ /dev/null @@ -1,18 +0,0 @@ -diff --git a/cmake/Modules/G4BuildSettings.cmake b/cmake/Modules/G4BuildSettings.cmake -index f68cb0a44..6bf4b6948 100644 ---- a/cmake/Modules/G4BuildSettings.cmake -+++ b/cmake/Modules/G4BuildSettings.cmake -@@ -205,6 +205,13 @@ endif() - # Add Definition to flags for temporary back compatibility - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DG4USE_STD11") - -+# Spack patch to support use of C++ features deprecated/removed in C++17 -+# Only checked on AppleClang for now -+if(GEANT4_BUILD_CXXSTD GREATER 14) -+ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -D_LIBCPP_ENABLE_CXX17_REMOVED_FEATURES=1") -+endif() -+#---- -+ - # Hold any appropriate compile flag(s) in variable for later export to - # config files. Needed to support clients using late CMake 2.8 where compile features - # are not available. diff --git a/spack/packages/geant4/package.py b/spack/packages/geant4/package.py deleted file mode 100644 index a8e6ea73fd4f7bd02189abf5255d9e1423ebfa71..0000000000000000000000000000000000000000 --- a/spack/packages/geant4/package.py +++ /dev/null @@ -1,159 +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 Geant4(CMakePackage): - """Geant4 is a toolkit for the simulation of the passage of particles - through matter. Its areas of application include high energy, nuclear - and accelerator physics, as well as studies in medical and space - science.""" - - homepage = "http://geant4.cern.ch/" - url = "https://gitlab.cern.ch/geant4/geant4/-/archive/v10.6.0/geant4-v10.6.0.tar.gz" - - maintainers = ['drbenmorgan'] - - version('10.6.2', sha256='e381e04c02aeade1ed8cdd9fdbe7dcf5d6f0f9b3837a417976b839318a005dbd') - version('10.6.1', sha256='4fd64149ae26952672a81ce5579d3806fda4bd251d486897093ac57633a42b7e') - version('10.6.0', sha256='eebe6a170546064ff81ab3b00f513ccd1d4122a026514982368d503ac55a4ee4') - version('10.5.1', sha256='2397eb859dc4de095ff66059d8bda9f060fdc42e10469dd7890946293eeb0e39') - version('10.4.3', sha256='67f3bb6405a2c77e573936c2b933f5a4a33915aa379626a2eb3012009b91e1da') - version('10.4.0', sha256='e919b9b0a88476e00c0b18ab65d40e6a714b55ee4778f66bac32a5396c22aa74') - version('10.3.3', sha256='bcd36a453da44de9368d1d61b0144031a58e4b43a6d2d875e19085f2700a89d8') - - _cxxstd_values = ('11', '14', '17') - variant('cxxstd', - default=_cxxstd_values[0], - values=_cxxstd_values, - multi=False, - description='Use the specified C++ standard when building.') - - variant('threads', default=True, description='Build with multithreading') - variant('vecgeom', default=False, description='Enable vecgeom support') - variant('opengl', default=False, description='Optional OpenGL support') - variant('x11', default=False, description='Optional X11 support') - variant('motif', default=False, description='Optional motif support') - variant('qt', default=False, description='Enable Qt support') - variant('python', default=False, description='Enable Python bindings') - - depends_on('cmake@3.5:', type='build') - depends_on('cmake@3.8:', type='build', when='@10.6.0:') - - depends_on('geant4-data@10.6.2', when='@10.6.2') - depends_on('geant4-data@10.6.1', when='@10.6.1') - depends_on('geant4-data@10.6.0', when='@10.6.0') - depends_on('geant4-data@10.5.1', when='@10.5.1') - depends_on('geant4-data@10.4.3', when='@10.4.3') - depends_on('geant4-data@10.4.0', when='@10.4.0') - depends_on('geant4-data@10.3.3', when='@10.3.3') - - depends_on("expat") - depends_on("zlib") - - # Python, with boost requirement dealt with in cxxstd section - depends_on('python@3:', when='+python') - extends('python', when='+python') - conflicts('+python', when='@:10.6.1', - msg='Geant4 <= 10.6.1 cannont be built with Python bindings') - - for std in _cxxstd_values: - # CLHEP version requirements to be reviewed - depends_on('clhep@2.3.3.0: cxxstd=' + std, - when='@10.3.3: cxxstd=' + std) - - # Spack only supports Xerces-c 3 and above, so no version req - depends_on('xerces-c cxxstd=' + std, when='cxxstd=' + std) - - # Vecgeom specific versions for each Geant4 version - depends_on('vecgeom@1.1.5 cxxstd=' + std, - when='@10.6.0:10.6.99 +vecgeom cxxstd=' + std) - depends_on('vecgeom@1.1.0 cxxstd=' + std, - when='@10.5.0:10.5.99 +vecgeom cxxstd=' + std) - depends_on('vecgeom@0.5.2 cxxstd=' + std, - when='@10.4.0:10.4.99 +vecgeom cxxstd=' + std) - depends_on('vecgeom@0.3rc cxxstd=' + std, - when='@10.3.0:10.3.99 +vecgeom cxxstd=' + std) - - # Boost.python, conflict handled earlier - depends_on('boost@1.70: +python cxxstd=' + std, - when='+python cxxstd=' + std) - - # Visualization driver dependencies - depends_on("gl", when='+opengl') - depends_on("glu", when='+opengl') - depends_on("glx", when='+opengl+x11') - depends_on("libx11", when='+x11') - depends_on("libxmu", when='+x11') - depends_on("motif", when='+motif') - depends_on("qt@5: +opengl", when="+qt") - - # As released, 10.03.03 has issues with respect to using external - # CLHEP. - patch('CLHEP-10.03.03.patch', level=1, when='@10.3.3') - # These patches can be applied independent of the cxxstd value? - patch('cxx17.patch', when='@:10.3.99 cxxstd=17') - patch('cxx17_geant4_10_0.patch', level=1, when='@10.4.0 cxxstd=17') - patch('geant4-10.4.3-cxx17-removed-features.patch', - level=1, when='@10.4.3 cxxstd=17') - - def cmake_args(self): - spec = self.spec - - # Core options - options = [ - '-DGEANT4_BUILD_CXXSTD=c++{0}'.format( - self.spec.variants['cxxstd'].value), - '-DGEANT4_USE_SYSTEM_CLHEP=ON', - '-DGEANT4_USE_SYSTEM_EXPAT=ON', - '-DGEANT4_USE_SYSTEM_ZLIB=ON', - '-DGEANT4_USE_G3TOG4=ON', - '-DGEANT4_USE_GDML=ON', - '-DXERCESC_ROOT_DIR={0}'.format(spec['xerces-c'].prefix) - ] - - # Multithreading - options.append(self.define_from_variant('GEANT4_BUILD_MULTITHREADED', - 'threads')) - if '+threads' in spec: - # Locked at global-dynamic to allow use cases that load the - # geant4 libs at application runtime - options.append('-DGEANT4_BUILD_TLS_MODEL=global-dynamic') - - # install the data with geant4 - datadir = spec['geant4-data'].prefix.share - dataver = '{0}-{1}'.format(spec['geant4-data'].name, - spec['geant4-data'].version.dotted) - datapath = join_path(datadir, dataver) - options.append('-DGEANT4_INSTALL_DATADIR={0}'.format(datapath)) - - # Vecgeom - if '+vecgeom' in spec: - options.append('-DGEANT4_USE_USOLIDS=ON') - options.append('-DUSolids_DIR=%s' % spec[ - 'vecgeom'].prefix.lib.CMake.USolids) - - # Visualization options - if 'platform=darwin' not in spec: - if "+x11" in spec and "+opengl" in spec: - options.append('-DGEANT4_USE_OPENGL_X11=ON') - if "+motif" in spec and "+opengl" in spec: - options.append('-DGEANT4_USE_XM=ON') - if "+x11" in spec: - options.append('-DGEANT4_USE_RAYTRACER_X11=ON') - - if '+qt' in spec: - options.append('-DGEANT4_USE_QT=ON') - options.append( - '-DQT_QMAKE_EXECUTABLE=%s' % - spec['qt'].prefix.bin.qmake) - - # Python - if spec.version > Version('10.6.1'): - options.append(self.define_from_variant('GEANT4_USE_PYTHON', - 'python')) - - return options diff --git a/spack/packages/graphviz/fix-quartz-darwin.patch b/spack/packages/graphviz/fix-quartz-darwin.patch deleted file mode 100644 index f20ade2f957c603f11d23841dc542007ea5a2ee2..0000000000000000000000000000000000000000 --- a/spack/packages/graphviz/fix-quartz-darwin.patch +++ /dev/null @@ -1,30 +0,0 @@ ---- a/configure.ac 2019-04-08 12:14:26.000000000 -0400 -+++ b/configure.ac 2019-04-08 12:15:03.000000000 -0400 -@@ -170,16 +170,8 @@ - BROWSER="open" - JSHEXT=jnilib - AC_DEFINE_UNQUOTED(DARWIN_DYLIB,"$DARWIN_DYLIB",[Define for Darwin-style shared library names.]) -- case "${host_os}" in -- *darwin9*) -- DARWIN9=yes -- ;; -- esac -- case "${host_os}" in -- *darwin9.4* | *darwin9.5* ) -- EXTRA_SMYRNA_LDFLAGS="-dylib_file /System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libGL.dylib:/System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libGL.dylib" -- ;; -- esac -+ DARWIN9=yes -+ EXTRA_SMYRNA_LDFLAGS="-dylib_file /System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libGL.dylib:/System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libGL.dylib" - ;; - * ) # This sucks! Whatever happened to standards for file system layout? (Good job its no longer used unless fontconfig is unavailable.) - DEFAULT_FONTPATH="/usr/share/fonts/sun/TrueType:/usr/share/fonts/TrueType:/usr/X11/lib/X11/fonts/TrueType:/usr/share/fonts/sun/Type1:/usr/openwin/lib/X11/fonts/Type1:/usr/share/fonts/X11/Type1:/usr/share/fonts/default/Type1:/usr/X11R6/lib/X11/fonts/TrueType:/usr/X11R6/lib/X11/fonts/truetype:/usr/X11R6/lib/X11/fonts/TTF:/usr/share/fonts/truetype:/usr/openwin/lib/X11/fonts/TrueType:/usr/X11R6/lib/X11/fonts/Type1:/usr/common/share/fonts/ttf"; ---- a/plugin/quartz/Makefile.am 2019-04-06 08:33:24.000000000 -0400 -+++ b/plugin/quartz/Makefile.am 2019-04-08 12:32:41.000000000 -0400 -@@ -39,5 +39,5 @@ - - if WITH_DARWIN9 - libgvplugin_quartz_la_LDFLAGS += -Wl,-exported_symbol,_gvplugin_quartz_LTX_library --AM_LIBTOOLSFLAGS = --tag=CC -+AM_LIBTOOLFLAGS = --tag=CC - endif diff --git a/spack/packages/graphviz/implicit.patch b/spack/packages/graphviz/implicit.patch deleted file mode 100644 index dd174761a9ae2c89b52d9b8eb25b2929ed478617..0000000000000000000000000000000000000000 --- a/spack/packages/graphviz/implicit.patch +++ /dev/null @@ -1,25 +0,0 @@ -Fix "error: implicit declaration of function 'makeTetrix'" and another -problem fixed by the same upstream commit. -https://gitlab.com/graphviz/graphviz/-/commit/b4947d67a4ebd48ca0105d44f92e47f044e51600 ---- cmd/lefty/dot2l/dotlex.c.orig 2016-08-09 16:02:09.000000000 -0500 -+++ cmd/lefty/dot2l/dotlex.c 2020-08-27 14:45:45.000000000 -0500 -@@ -252,7 +252,7 @@ - char *q; - - q = lexbuf; -- if (p == '\0') -+ if (!p || *p == '\0') - return NULL; - while (isalnum (*p) || (*p == '_') || (!isascii (*p))) - *q++ = *p++; ---- cmd/tools/gvgen.c.orig 2016-11-22 23:43:56.000000000 -0600 -+++ cmd/tools/gvgen.c 2020-08-27 14:45:45.000000000 -0500 -@@ -458,6 +458,8 @@ - fprintf(opts.outfile, "}\ngraph {\n"); - } - -+extern void makeTetrix(int depth, edgefn ef); -+ - int main(int argc, char *argv[]) - { - GraphType graphType; diff --git a/spack/packages/graphviz/package.py b/spack/packages/graphviz/package.py deleted file mode 100644 index 344ecd990e4f9cf42858c8b8a50772202f0a4d8e..0000000000000000000000000000000000000000 --- a/spack/packages/graphviz/package.py +++ /dev/null @@ -1,174 +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 * -from spack.operating_systems.mac_os import macos_version - -import os -import sys - - -MACOS_VERSION = macos_version() if sys.platform == 'darwin' else None - - -class Graphviz(AutotoolsPackage): - """Graph Visualization Software""" - - homepage = 'http://www.graphviz.org' - git = 'https://gitlab.com/graphviz/graphviz.git' - - # This commit hash is tag='stable_release_2.44.1' - version('2.44.1', commit='771bc4dbff3e6f358fa75cdc7774a413ccacad51') - # This commit hash is tag='stable_release_2.42.2' - version('2.42.2', commit='da4c2ec6f24ca1b6d1752c6b5bc4389e55682147') - # This commit hash is tag='stable_release_2.40.1' - version('2.40.1', commit='67cd2e5121379a38e0801cc05cce5033f8a2a609') - - conflicts('%gcc@:5.9', - when='@2.40.1+qt ^qt@5:', - msg='graphviz-2.40.1 needs gcc-6 or greater to compile with QT5 ' - 'suppport') - - # Language bindings - language_bindings = ['java'] - - # Additional language bindings are nominally supported by GraphViz via SWIG - # but are untested and need the proper dependencies added: - # language_bindings += ['sharp', 'go', 'guile', 'io', 'lua', 'ocaml', - # 'perl', 'php', 'python', 'r', 'ruby', 'tcl'] - - for lang in language_bindings: - variant(lang, default=False, - description='Enable for optional {0} language ' - 'bindings'.format(lang)) - - # Feature variants - variant('expat', default=False, - description='Build with Expat support (enables HTML-like labels)') - variant('gts', default=False, - description='Build with GNU Triangulated Surface Library') - variant('ghostscript', default=False, - description='Build with Ghostscript support') - variant('gtkplus', default=False, - description='Build with GTK+ support') - variant('libgd', default=False, - description='Build with libgd support (more output formats)') - variant('pangocairo', default=False, - description='Build with pango+cairo support (more output formats)') - variant('poppler', default=False, - description='Build with poppler support (pdf formats)') - variant('qt', default=False, - description='Build with Qt support') - variant('quartz', default=(MACOS_VERSION is not None), - description='Build with Quartz and PDF support') - variant('x', default=False, - description='Use the X Window System') - - patch('http://www.linuxfromscratch.org/patches/blfs/9.0/graphviz-2.40.1-qt5-1.patch', - sha256='bd532df325df811713e311d17aaeac3f5d6075ea4fd0eae8d989391e6afba930', - when='@:2.40+qt^qt@5:') - patch('https://raw.githubusercontent.com/easybuilders/easybuild-easyconfigs/master/easybuild/easyconfigs/g/Graphviz/Graphviz-2.38.0_icc_sfio.patch', - sha256='393a0a772315a89dcc970b5efd4765d22dba83493d7956303673eb89c45b949f', - level=0, - when='@:2.40%intel') - patch('https://raw.githubusercontent.com/easybuilders/easybuild-easyconfigs/master/easybuild/easyconfigs/g/Graphviz/Graphviz-2.40.1_icc_vmalloc.patch', - sha256='813e6529e79161a18b0f24a969b7de22f8417b2e942239e658b5402884541bc2', - when='@:2.40%intel') - patch('ps2pdf.patch') - ## Don't apply to newer versions, as they are already fixed - patch('implicit.patch', when='@:2.42.0') - - if not MACOS_VERSION: - conflicts('+quartz', - msg="Graphviz can only be build with Quartz on macOS.") - elif MACOS_VERSION >= Version('10.9'): - # Doesn't detect newer mac os systems as being new - patch('fix-quartz-darwin.patch') - - # Language dependencies - depends_on('java', when='+java') - for lang in language_bindings: - depends_on('swig', when=('+' + lang)) - - # Feature dependencies - depends_on('expat', when='+expat') - depends_on('libgd', when='+libgd') - depends_on('fontconfig', when='+libgd') - depends_on('freetype', when='+libgd') - depends_on('ghostscript', when='+ghostscript') - depends_on('gtkplus', when='+gtkplus') - depends_on('gts', when='+gts') - depends_on('cairo+pdf+png+svg', when='+pangocairo') - depends_on('fontconfig', when='+pangocairo') - depends_on('freetype', when='+pangocairo') - depends_on('glib', when='+pangocairo') - depends_on('libpng', when='+pangocairo') - depends_on('pango', when='+pangocairo') - depends_on('poppler+glib', when='+poppler') - depends_on('zlib') - depends_on('qt', when='+qt') - depends_on('libx11', when="+x") - - # Build dependencies - depends_on('pkgconfig', type='build') - # The following are needed when building from git - depends_on('automake', type='build') - depends_on('autoconf', type='build') - depends_on('bison', type='build') - depends_on('flex', type='build') - depends_on('libtool', type='build') - # required to build docs - depends_on('groff', type='build') - depends_on('ghostscript', type='build') - - parallel = False - - def autoreconf(self, spec, prefix): - # We need to generate 'configure' when checking out sources from git - # If configure exists nothing needs to be done - if os.path.exists(self.configure_abs_path): - return - # Else bootstrap (disabling auto-configure with NOCONFIG) - bash = which('bash') - bash('./autogen.sh', 'NOCONFIG') - - def setup_build_environment(self, env): - if '+quartz' in self.spec: - env.set('OBJC', self.compiler.cc) - - @when('%clang platform=darwin') - def patch(self): - # When using Clang, replace GCC's libstdc++ with LLVM's libc++ - mkdirs = ['cmd/dot', 'cmd/edgepaint', 'cmd/mingle', 'plugin/gdiplus'] - filter_file(r'-lstdc\+\+', '-lc++', 'configure.ac', - *(d + '/Makefile.am' for d in mkdirs)) - - @when('%apple-clang') - def patch(self): - # When using Clang, replace GCC's libstdc++ with LLVM's libc++ - mkdirs = ['cmd/dot', 'cmd/edgepaint', 'cmd/mingle', 'plugin/gdiplus'] - filter_file(r'-lstdc\+\+', '-lc++', 'configure.ac', - *(d + '/Makefile.am' for d in mkdirs)) - - def configure_args(self): - spec = self.spec - args = ['--disable-silent-rules'] - - use_swig = False - for lang in self.language_bindings: - if '+' + lang in spec: - use_swig = True - args.append('--enable-' + lang) - - args.append('--{0}-swig'.format('enable' if use_swig else 'disable')) - - for var in ["expat", "gts", "ghostscript", "libgd", "pangocairo", - "poppler", "qt", "quartz", "x"]: - args += self.with_or_without(var) - - args.append('--{0}-gtk'.format( - "with" if "+gtkplus" in spec else "without")) - - return args diff --git a/spack/packages/graphviz/ps2pdf.patch b/spack/packages/graphviz/ps2pdf.patch deleted file mode 100644 index 6bf9d067f322838b09b608a2be51fa59ee33b306..0000000000000000000000000000000000000000 --- a/spack/packages/graphviz/ps2pdf.patch +++ /dev/null @@ -1,15 +0,0 @@ -https://gitlab.com/graphviz/graphviz/-/issues/1826 -https://github.com/Homebrew/homebrew-core/pull/57132 -diff --git a/configure.ac b/configure.ac -index cf42504..68db027 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -284,8 +284,7 @@ AC_CHECK_PROGS(SORT,gsort sort,false) - - AC_CHECK_PROG(EGREP,egrep,egrep,false) - AC_CHECK_PROG(GROFF,groff,groff,false) --AC_CHECK_PROG(PS2PDF,ps2pdf,ps2pdf,false) --AC_CHECK_PROG(PS2PDF,pstopdf,pstopdf,false) -+AC_CHECK_PROGS(PS2PDF,ps2pdf pstopdf,false) - - PKG_PROG_PKG_CONFIG diff --git a/spack/packages/mesa/package.py b/spack/packages/mesa/package.py new file mode 100644 index 0000000000000000000000000000000000000000..dafac166c6b390590d4cf469cc9bc7a272cf325e --- /dev/null +++ b/spack/packages/mesa/package.py @@ -0,0 +1,239 @@ +# Copyright 2013-2021 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack import * + +import sys + + +class Mesa(MesonPackage): + """Mesa is an open-source implementation of the OpenGL specification + - a system for rendering interactive 3D graphics.""" + + homepage = "http://www.mesa3d.org" + maintainers = ['chuckatkins', 'v-dobrev'] + + git = "https://gitlab.freedesktop.org/mesa/mesa.git" + url = "https://archive.mesa3d.org/mesa-20.2.1.tar.xz" + + version('master', tag='master') + version('21.0.0', sha256='e6204e98e6a8d77cf9dc5d34f99dd8e3ef7144f3601c808ca0dd26ba522e0d84') + version('20.3.4', sha256='dc21a987ec1ff45b278fe4b1419b1719f1968debbb80221480e44180849b4084') + version('20.2.1', sha256='d1a46d9a3f291bc0e0374600bdcb59844fa3eafaa50398e472a36fc65fd0244a') + + depends_on('meson@0.52:', type='build') + + depends_on('pkgconfig', type='build') + depends_on('binutils', when=(sys.platform != 'darwin'), type='build') + depends_on('bison', type='build') + depends_on('cmake', type='build') + depends_on('flex', type='build') + depends_on('gettext', type='build') + depends_on('python@3:', type='build') + depends_on('py-mako@0.8.0:', type='build') + depends_on('expat') + depends_on('zlib@1.2.3:') + + # Internal options + variant('llvm', default=True, description="Enable LLVM.") + variant('swr', default='auto', + values=('auto', 'none', 'avx', 'avx2', 'knl', 'skx'), + multi=True, + description="Enable the SWR driver.") + # conflicts('~llvm', when='~swr=none') + + # Front ends + variant('osmesa', default=True, description="Enable the OSMesa frontend.") + + is_linux = sys.platform.startswith('linux') + variant('glx', default=is_linux, description="Enable the GLX frontend.") + + # TODO: effectively deal with EGL. The implications of this have not been + # worked through yet + # variant('egl', default=False, description="Enable the EGL frontend.") + + # TODO: Effectively deal with hardware drivers + # The implication of this is enabling DRI, among other things, and + # needing to check which llvm targets were built (ptx or amdgpu, etc.) + + # Back ends + variant('opengl', default=True, description="Enable full OpenGL support.") + variant('opengles', default=False, description="Enable OpenGL ES support.") + + # Provides + provides('gl@4.5', when='+opengl') + provides('glx@1.4', when='+glx') + # provides('egl@1.5', when='+egl') + provides('osmesa', when='+osmesa') + + # Variant dependencies + depends_on('llvm@6:', when='+llvm') + depends_on('libx11', when='+glx') + depends_on('libxcb', when='+glx') + depends_on('libxext', when='+glx') + depends_on('libxt', when='+glx') + depends_on('xrandr', when='+glx') + depends_on('glproto@1.4.14:', when='+glx') + + # version specific issue + # https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96130 + conflicts('%gcc@10.1.0', msg='GCC 10.1.0 has a bug') + + # Require at least 1 front-end + # TODO: Add egl to this conflict once made available + conflicts('~osmesa ~glx') + + # Require at least 1 back-end + # TODO: Add vulkan to this conflict once made available + conflicts('~opengl ~opengles') + + # OpenGL ES requires OpenGL + conflicts('~opengl +opengles') + + # 'auto' needed when shared llvm is built + @when('^llvm~shared_libs') + def patch(self): + filter_file( + r"_llvm_method = 'auto'", + "_llvm_method = 'config-tool'", + "meson.build") + + def meson_args(self): + spec = self.spec + args = [ + '-Dvulkan-drivers=', + '-Dgallium-vdpau=disabled', + '-Dgallium-xvmc=disabled', + '-Dgallium-omx=disabled', + '-Dgallium-va=disabled', + '-Dgallium-xa=disabled', + '-Dgallium-nine=false', + '-Dgallium-opencl=disabled', + '-Dbuild-tests=false', + '-Dglvnd=false'] + args_platforms = [] + args_gallium_drivers = ['swrast'] + args_dri_drivers = [] + + opt_enable = lambda c, o: '-D%s=%sabled' % (o, 'en' if c else 'dis') + opt_bool = lambda c, o: '-D%s=%s' % (o, str(c).lower()) + if spec.target.family == 'arm' or spec.target.family == 'aarch64': + args.append('-Dlibunwind=disabled') + + num_frontends = 0 + if '+osmesa' in spec: + num_frontends += 1 + args.append('-Dosmesa=gallium') + else: + #S. Joosten --> this line does not work in latest container + #args.append('-Dosmesa=none') + args.append('-Dosmesa=false') + + if '+glx' in spec: + num_frontends += 1 + if '+egl' in spec: + args.append('-Dglx=dri') + else: + args.append('-Dglx=gallium-xlib') + args_platforms.append('x11') + else: + args.append('-Dglx=disabled') + + if '+egl' in spec: + num_frontends += 1 + args.extend(['-Degl=enabled', '-Dgbm=enabled', '-Ddri3=enabled']) + args_platforms.append('surfaceless') + else: + args.extend( + ['-Degl=disabled', '-Dgbm=disabled', '-Ddri3=disabled']) + + args.append(opt_bool('+opengl' in spec, 'opengl')) + args.append(opt_enable('+opengles' in spec, 'gles1')) + args.append(opt_enable('+opengles' in spec, 'gles2')) + + args.append(opt_enable(num_frontends > 1, 'shared-glapi')) + + if '+llvm' in spec: + args.append('-Dllvm=enabled') + args.append(opt_enable( + '+link_dylib' in spec['llvm'], 'shared-llvm')) + else: + args.append('-Dllvm=disabled') + + args_swr_arches = [] + if 'swr=auto' in spec: + if 'avx' in spec.target: + args_swr_arches.append('avx') + if 'avx2' in spec.target: + args_swr_arches.append('avx2') + if 'avx512f' in spec.target: + if 'avx512er' in spec.target: + args_swr_arches.append('knl') + if 'avx512bw' in spec.target: + args_swr_arches.append('skx') + else: + if 'swr=avx' in spec: + args_swr_arches.append('avx') + if 'swr=avx2' in spec: + args_swr_arches.append('avx2') + if 'swr=knl' in spec: + args_swr_arches.append('knl') + if 'swr=skx' in spec: + args_swr_arches.append('skx') + + if args_swr_arches: + if '+llvm' not in spec: + raise SpecError('Variant swr requires +llvm') + args_gallium_drivers.append('swr') + args.append('-Dswr-arches=' + ','.join(args_swr_arches)) + + # Add the remaining list args + args.append('-Dplatforms=' + ','.join(args_platforms)) + args.append('-Dgallium-drivers=' + ','.join(args_gallium_drivers)) + args.append('-Ddri-drivers=' + ','.join(args_dri_drivers)) + + return args + + @property + def libs(self): + spec = self.spec + libs_to_seek = set() + + if '+osmesa' in spec: + libs_to_seek.add('libOSMesa') + + if '+glx' in spec: + libs_to_seek.add('libGL') + + if '+opengl' in spec: + libs_to_seek.add('libGL') + + if '+opengles' in spec: + libs_to_seek.add('libGLES') + libs_to_seek.add('libGLES2') + + if libs_to_seek: + return find_libraries(list(libs_to_seek), + root=self.spec.prefix, + recursive=True) + return LibraryList() + + @property + def osmesa_libs(self): + return find_libraries('libOSMesa', + root=self.spec.prefix, + recursive=True) + + @property + def glx_libs(self): + return find_libraries('libGL', + root=self.spec.prefix, + recursive=True) + + @property + def gl_libs(self): + return find_libraries('libGL', + root=self.spec.prefix, + recursive=True) diff --git a/spack/packages/podio/cpack.patch b/spack/packages/podio/cpack.patch deleted file mode 100644 index e685f9bc13dc94adde4ce15bf4e6a542d1379a3d..0000000000000000000000000000000000000000 --- a/spack/packages/podio/cpack.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -86,7 +86,7 @@ include(cmake/podioMacros.cmake) - include(CTest) - - #--- enable CPack -------------------------------------------------------------- --include(cmake/podioCPack.cmake) -+#include(cmake/podioCPack.cmake) - - #--- target for Doxygen documentation ------------------------------------------ - if(CREATE_DOC) diff --git a/spack/packages/podio/dictloading.patch b/spack/packages/podio/dictloading.patch deleted file mode 100644 index 15ec301b13984b354f7f6cd07cae6f3e4adf09f5..0000000000000000000000000000000000000000 --- a/spack/packages/podio/dictloading.patch +++ /dev/null @@ -1,20 +0,0 @@ -diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt -index 120a899..05991f1 100755 ---- a/src/CMakeLists.txt -+++ b/src/CMakeLists.txt -@@ -41,7 +41,7 @@ SET(headers - ${CMAKE_SOURCE_DIR}/include/podio/PythonEventStore.h - ) - PODIO_GENERATE_DICTIONARY(podioDict ${headers} SELECTION selection.xml -- OPTIONS --library ${CMAKE_SHARED_LIBRARY_PREFIX}podio${CMAKE_SHARED_LIBRARY_SUFFIX} -+ OPTIONS --library ${CMAKE_SHARED_LIBRARY_PREFIX}podioDict${CMAKE_SHARED_LIBRARY_SUFFIX} - ) - # prevent generating dictionary twice - set_target_properties(podioDict-dictgen PROPERTIES EXCLUDE_FROM_ALL TRUE) -@@ -58,5 +58,5 @@ install(TARGETS podio podioDict podioRootIO - install(DIRECTORY ${PROJECT_SOURCE_DIR}/include/podio DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}") - install(FILES - ${CMAKE_CURRENT_BINARY_DIR}/podioDictDict.rootmap -- ${CMAKE_CURRENT_BINARY_DIR}/libpodio_rdict.pcm -+ ${CMAKE_CURRENT_BINARY_DIR}/libpodioDict_rdict.pcm - DESTINATION "${CMAKE_INSTALL_LIBDIR}") diff --git a/spack/packages/podio/package.py b/spack/packages/podio/package.py deleted file mode 100644 index 360547a80a85ca910d461a7737a525063293c802..0000000000000000000000000000000000000000 --- a/spack/packages/podio/package.py +++ /dev/null @@ -1,87 +0,0 @@ -# Copyright 2013-2021 Lawrence Livermore National Security, LLC and other -# Spack Project Developers. See the top-level COPYRIGHT file for details. -# -# SPDX-License-Identifier: (Apache-2.0 OR MIT) - - -class Podio(CMakePackage): - """PODIO, or plain-old-data I/O, is a C++ library to support the creation - and handling of data models in particle physics.""" - - homepage = "https://github.com/AIDASoft/podio" - url = "https://github.com/AIDASoft/podio/archive/v00-09-02.tar.gz" - git = "https://github.com/AIDASoft/podio.git" - - maintainers = ['vvolkl', 'drbenmorgan'] - - tags = ["hep", "key4hep"] - - version('master', branch='master') - version('0.13', sha256='e9cbd4e25730003d3706ad82e28b15cb5bdc524a78b0a26e90b89ea852101498') - version('0.12', sha256='1729a2ce21e8b307fc37dfb9a9f5ae031e9f4be4992385cf99dba3e5fdf5323a') - version('0.11', sha256='4b2765566a14f0ddece2c894634e0a8e4f42f3e44392addb9110d856f6267fb6') - version('0.10', sha256='b5b42770ec8b96bcd2748abc05669dd3e4d4cc84f81ed57d57d2eda1ade90ef2') - version('0.9.2', sha256='8234d1b9636029124235ef81199a1220968dcc7fdaeab81cdc96a47af332d240') - version('0.9', sha256='3cde67556b6b76fd2d004adfaa3b3b6173a110c0c209792bfdb5f9353e21076f') - version('0.8', sha256='9d035a7f5ebfae5279a17405003206853271af692f762e2bac8e73825f2af327') - - variant('build_type', default='Release', - description='The build type to build', - values=('Debug', 'Release')) - - variant('sio', default=False, - description='Build the SIO I/O backend') - - # cpack config throws an error on some systems - patch('cpack.patch', when="@:0.10.0") - patch('dictloading.patch', when="@0.10.0") - - depends_on('root@6.08.06: cxxstd=17') - - depends_on('cmake@3.8:', type='build') - depends_on('python', type=('build', 'run')) - depends_on('py-pyyaml', type=('build', 'run')) - depends_on('py-jinja2@2.10.1:', type=('build', 'run'), when='@0.12.0:') - depends_on('sio', type=('build', 'run'), when='+sio') - - conflicts('+sio', when='@:0.12', msg='sio support requires at least podio@0.13') - - def cmake_args(self): - args = [ - self.define_from_variant('ENABLE_SIO', 'sio') - ] - return args - - def setup_run_environment(self, env): - env.prepend_path('PYTHONPATH', self.prefix.python) - - def url_for_version(self, version): - """Translate version numbers to ilcsoft conventions. - in spack, the convention is: 0.1 (or 0.1.0) 0.1.1, 0.2, 0.2.1 ... - in ilcsoft, releases are dashed and padded with a leading zero - the patch version is omitted when 0 - so for example v01-12-01, v01-12 ... - :param self: spack package class that has a url - :type self: class: `spack.PackageBase` - :param version: version - :type param: str - """ - base_url = self.url.rsplit('/', 1)[0] - - if len(version) == 1: - major = version[0] - minor, patch = 0, 0 - elif len(version) == 2: - major, minor = version - patch = 0 - else: - major, minor, patch = version - - # By now the data is normalized enough to handle it easily depending - # on the value of the patch version - if patch == 0: - version_str = 'v%02d-%02d.tar.gz' % (major, minor) - else: - version_str = 'v%02d-%02d-%02d.tar.gz' % (major, minor, patch) - - return base_url + '/' + version_str diff --git a/spack/packages/root/package.py b/spack/packages/root/package.py index 15a7e15cd37ae08cebcb3bf4fc6abfd06e428a2b..7cd544509e61588df8693d70e21173b786a8f231 100644 --- a/spack/packages/root/package.py +++ b/spack/packages/root/package.py @@ -28,6 +28,7 @@ class Root(CMakePackage): # Development version (when more recent than production). # Production version + version('6.22.08', sha256='6f061ff6ef8f5ec218a12c4c9ea92665eea116b16e1cd4df4f96f00c078a2f6f') version('6.22.06', sha256='c4688784a7e946cd10b311040b6cf0b2f75125a7520e04d1af0b746505911b57') version('6.22.02', sha256='89784afa9c9047e9da25afa72a724f32fa8aa646df267b7731e4527cc8a0c340') version('6.22.00', sha256='efd961211c0f9cd76cf4a486e4f89badbcf1d08e7535bba556862b3c1a80beed') @@ -247,11 +248,18 @@ class Root(CMakePackage): depends_on('shadow', when='+shadow') depends_on('sqlite', when='+sqlite') depends_on('tbb', when='+tbb') + # See: https://github.com/root-project/root/issues/6933 + conflicts('^intel-tbb@2021.1:', when='@:6.22', + msg='Please use an older intel-tbb version') + conflicts('^intel-oneapi-tbb@2021.1:', when='@:6.22', + msg='Please use an older intel-tbb/intel-oneapi-tbb version') + # depends_on('intel-tbb@:2021.0', when='@:6.22 ^intel-tbb') depends_on('unuran', when='+unuran') depends_on('vc', when='+vc') depends_on('vdt', when='+vdt') depends_on('libxml2', when='+xml') - depends_on('xrootd@:4.99.99', when='+xrootd') + depends_on('xrootd', when='+xrootd') + depends_on('xrootd@:4.99.99', when='@:6.22.03 +xrootd') # ###################### Conflicts ###################### @@ -271,7 +279,7 @@ class Root(CMakePackage): # See README.md ## S. Joosten --> commented out, this is not an issue when building in - ## a container + ## our container #conflicts('+http', # msg='HTTP server currently unsupported due to dependency issues') diff --git a/spack/packages/xcb-proto/package.py b/spack/packages/xcb-proto/package.py deleted file mode 100644 index 51cbd5b71f514897cbed100fbb34bc27c1c9ac70..0000000000000000000000000000000000000000 --- a/spack/packages/xcb-proto/package.py +++ /dev/null @@ -1,28 +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 XcbProto(AutotoolsPackage): - """xcb-proto provides the XML-XCB protocol descriptions that libxcb uses to - generate the majority of its code and API.""" - - homepage = "http://xcb.freedesktop.org/" - url = "http://xcb.freedesktop.org/dist/xcb-proto-1.13.tar.gz" - - version('1.13', sha256='0698e8f596e4c0dbad71d3dc754d95eb0edbb42df5464e0f782621216fa33ba7') - version('1.12', sha256='cfa49e65dd390233d560ce4476575e4b76e505a0e0bacdfb5ba6f8d0af53fd59') - version('1.11', sha256='d12152193bd71aabbdbb97b029717ae6d5d0477ab239614e3d6193cc0385d906') - - # TODO: uncomment once build deps can be resolved separately - # See #7646, #4145, #4063, and #2548 for details - # extends('python') - - patch('xcb-proto-1.12-schema-1.patch', when='@1.12') - - ## using fractions.gcd has been deprecated since python 3.5 - ## always apply fix - patch('python-fix.patch') diff --git a/spack/packages/xcb-proto/python-fix.patch b/spack/packages/xcb-proto/python-fix.patch deleted file mode 100644 index 353abcce684a5b6366428bedcb46723e53ad476c..0000000000000000000000000000000000000000 --- a/spack/packages/xcb-proto/python-fix.patch +++ /dev/null @@ -1,30 +0,0 @@ -diff --git a/xcbgen/align.py b/xcbgen/align.py -index d4c12ee..cc39764 100644 ---- a/xcbgen/align.py -+++ b/xcbgen/align.py -@@ -2,7 +2,7 @@ - This module contains helper classes for alignment arithmetic and checks - ''' - --from fractions import gcd -+import math - - class Alignment(object): - -@@ -73,14 +73,14 @@ class Alignment(object): - def combine_with(self, other): - # returns the alignment that is guaranteed when - # both, self or other, can happen -- new_align = gcd(self.align, other.align) -+ new_align = math.gcd(self.align, other.align) - new_offset_candidate1 = self.offset % new_align - new_offset_candidate2 = other.offset % new_align - if new_offset_candidate1 == new_offset_candidate2: - new_offset = new_offset_candidate1 - else: - offset_diff = abs(new_offset_candidate2 - new_offset_candidate1) -- new_align = gcd(new_align, offset_diff) -+ new_align = math.gcd(new_align, offset_diff) - new_offset_candidate1 = self.offset % new_align - new_offset_candidate2 = other.offset % new_align - assert new_offset_candidate1 == new_offset_candidate2 diff --git a/spack/packages/xcb-proto/xcb-proto-1.12-schema-1.patch b/spack/packages/xcb-proto/xcb-proto-1.12-schema-1.patch deleted file mode 100644 index 2a0b69255c4e6d8b91280c36cfb594b73586c514..0000000000000000000000000000000000000000 --- a/spack/packages/xcb-proto/xcb-proto-1.12-schema-1.patch +++ /dev/null @@ -1,52 +0,0 @@ -Submitted By: Bruce Dubbs <bdubbs at linuxfromscratch dot org> -Date: 2016-06-01 -Initial Package Version: 1.12 -Upstream Status: Not Committed -Origin: https://lists.freedesktop.org/archives/xcb/2016-February/010676.html -Description: Fixes make check - - ---- a/src/xcb.xsd -+++ b/src/xcb.xsd -@@ -44,6 +44,15 @@ authorization from the authors. - <xsd:complexType> - <xsd:attribute name="bytes" type="xsd:integer" use="optional" /> - <xsd:attribute name="align" type="xsd:integer" use="optional" /> -+ <xsd:attribute name="serialize" type="xsd:boolean" use="optional" /> -+ </xsd:complexType> -+ </xsd:element> -+ -+ <!-- Alignment --> -+ <xsd:element name="required_start_align" > -+ <xsd:complexType> -+ <xsd:attribute name="align" type="xsd:integer" use="required" /> -+ <xsd:attribute name="offset" type="xsd:integer" use="optional" /> - </xsd:complexType> - </xsd:element> - -@@ -76,14 +85,13 @@ authorization from the authors. - <xsd:sequence> - <!-- switch(expression) --> - <xsd:group ref="expression" minOccurs="1" maxOccurs="1" /> -+ <xsd:element ref="required_start_align" minOccurs="0" maxOccurs="1" /> - <xsd:choice> - <!-- bitcase expression - bit test --> - <xsd:element name="bitcase" type="caseexpr" minOccurs="0" maxOccurs="unbounded" /> - <!-- case expression - value test --> - <xsd:element name="case" type="caseexpr" minOccurs="0" maxOccurs="unbounded" /> - </xsd:choice> -- <!-- default: --> -- <xsd:group ref="fields" minOccurs="0" maxOccurs="1" /> - </xsd:sequence> - <xsd:attribute name="name" type="xsd:string" use="required" /> - </xsd:complexType> -@@ -201,6 +209,7 @@ authorization from the authors. - <xsd:element ref="field" /> - <xsd:element ref="list" /> - <xsd:element ref="fd" /> -+ <xsd:element ref="required_start_align" /> - </xsd:choice> - </xsd:group> - - -