diff --git a/lib/spack/spack/build_systems/cmake.py b/lib/spack/spack/build_systems/cmake.py index 3b3b61f1153..e51dbf92201 100644 --- a/lib/spack/spack/build_systems/cmake.py +++ b/lib/spack/spack/build_systems/cmake.py @@ -274,7 +274,6 @@ def std_args(pkg, generator=None): generator, define("CMAKE_INSTALL_PREFIX", pathlib.Path(pkg.prefix).as_posix()), define("CMAKE_BUILD_TYPE", build_type), - define("BUILD_TESTING", pkg.run_tests), ] # CMAKE_INTERPROCEDURAL_OPTIMIZATION only exists for CMake >= 3.9 @@ -451,7 +450,6 @@ def cmake_args(self): * CMAKE_INSTALL_PREFIX * CMAKE_BUILD_TYPE - * BUILD_TESTING which will be set automatically. """ diff --git a/lib/spack/spack/config.py b/lib/spack/spack/config.py index ea9d12d2bda..b3fb5648ac4 100644 --- a/lib/spack/spack/config.py +++ b/lib/spack/spack/config.py @@ -863,7 +863,6 @@ def add(fullpath, scope=None): has_existing_value = True path = "" override = False - value = syaml.load_config(components[-1]) for idx, name in enumerate(components[:-1]): # First handle double colons in constructing path colon = "::" if override else ":" if path else "" @@ -884,14 +883,14 @@ def add(fullpath, scope=None): existing = get_valid_type(path) # construct value from this point down + value = syaml.load_config(components[-1]) for component in reversed(components[idx + 1 : -1]): value = {component: value} break - if override: - path += "::" - if has_existing_value: + path, _, value = fullpath.rpartition(":") + value = syaml.load_config(value) existing = get(path, scope=scope) # append values to lists @@ -1232,17 +1231,11 @@ def they_are(t): return copy.copy(source) +# +# Process a path argument to config.set() that may contain overrides ('::' or +# trailing ':') +# def process_config_path(path): - """Process a path argument to config.set() that may contain overrides ('::' or - trailing ':') - - Note: quoted value path components will be processed as a single value (escaping colons) - quoted path components outside of the value will be considered ill formed and will - raise. - e.g. `this:is:a:path:'value:with:colon'` will yield: - - [this, is, a, path, value:with:colon] - """ result = [] if path.startswith(":"): raise syaml.SpackYAMLError("Illegal leading `:' in path `{0}'".format(path), "") @@ -1269,16 +1262,6 @@ def process_config_path(path): front = syaml.syaml_str(front) front.append = True - quote = "['\"]" - not_quote = "[^'\"]" - - if re.match(f"^{quote}", path): - m = re.match(rf"^{quote}({not_quote}+){quote}$", path) - if not m: - raise ValueError("Quotes indicate value, but there are additional path entries") - result.append(m.group(1)) - break - result.append(front) return result diff --git a/lib/spack/spack/test/config.py b/lib/spack/spack/test/config.py index 1dbbba9cdee..d3b5a544ba6 100644 --- a/lib/spack/spack/test/config.py +++ b/lib/spack/spack/test/config.py @@ -277,12 +277,6 @@ def test_add_config_path(mutable_config): compilers = spack.config.get("packages")["all"]["compiler"] assert "gcc" in compilers - # Try with an escaped colon - path = 'config:install_tree:root:"C:/path/to/config.yaml"' - spack.config.add(path) - set_value = spack.config.get("config")["install_tree"]["root"] - assert set_value == "C:/path/to/config.yaml" - @pytest.mark.regression("17543,23259") def test_add_config_path_with_enumerated_type(mutable_config): diff --git a/share/spack/gitlab/cloud_pipelines/.gitlab-ci.yml b/share/spack/gitlab/cloud_pipelines/.gitlab-ci.yml index ec4f5ac98fc..ff1ae645d92 100644 --- a/share/spack/gitlab/cloud_pipelines/.gitlab-ci.yml +++ b/share/spack/gitlab/cloud_pipelines/.gitlab-ci.yml @@ -1,5 +1,9 @@ stages: [ "generate", "build", "publish" ] +variables: + SPACK_DISABLE_LOCAL_CONFIG: "1" + SPACK_USER_CACHE_PATH: "${CI_PROJECT_DIR}/tmp/_user_cache/" + default: image: { "name": "ghcr.io/spack/e4s-ubuntu-18.04:v2021-10-18", "entrypoint": [""] } @@ -65,8 +69,6 @@ default: .base-job: variables: SPACK_BUILDCACHE_DESTINATION: "s3://spack-binaries/${CI_COMMIT_REF_NAME}/${SPACK_CI_STACK_NAME}" - SPACK_DISABLE_LOCAL_CONFIG: "1" - SPACK_USER_CACHE_PATH: "${CI_PROJECT_DIR}/tmp/_user_cache/" rules: - if: $CI_COMMIT_REF_NAME == "develop" # Pipelines on develop only rebuild what is missing from the mirror diff --git a/var/spack/repos/builtin/packages/axom/package.py b/var/spack/repos/builtin/packages/axom/package.py index cce186a564e..ab3ca1d9c00 100644 --- a/var/spack/repos/builtin/packages/axom/package.py +++ b/var/spack/repos/builtin/packages/axom/package.py @@ -40,6 +40,8 @@ class Axom(CachedCMakePackage, CudaPackage, ROCmPackage): version("main", branch="main") version("develop", branch="develop") + version("0.8.1", tag="v0.8.1", commit="0da8a5b1be596887158ac2fcd321524ba5259e15") + version("0.8.0", tag="v0.8.0", commit="71fab3262eb7e1aa44a04c21d072b77f06362f7b") version("0.7.0", tag="v0.7.0", commit="ea5158191181c137117ae37959879bdc8b107f35") version("0.6.1", tag="v0.6.1", commit="ee240d3963d7879ae0e9c392902195bd7b04e37d") version("0.6.0", tag="v0.6.0", commit="65287dc00bc7c271a08cb86c632f5909c30e3506") diff --git a/var/spack/repos/builtin/packages/cabana/package.py b/var/spack/repos/builtin/packages/cabana/package.py index cebc2d4aaff..eb43abc034e 100644 --- a/var/spack/repos/builtin/packages/cabana/package.py +++ b/var/spack/repos/builtin/packages/cabana/package.py @@ -44,7 +44,7 @@ class Cabana(CMakePackage): depends_on("cmake@3.9:", type="build", when="@:0.4.0") depends_on("cmake@3.16:", type="build", when="@0.5.0:") - depends_on("googletest", type="build", when="testing") + depends_on("googletest", type="test", when="+testing") _versions = {":0.2": "-legacy", "0.3:": "@3.1:", "0.4:": "@3.2:", "master": "@3.4:"} for _version in _versions: _kk_version = _versions[_version] diff --git a/var/spack/repos/builtin/packages/cmdlime/package.py b/var/spack/repos/builtin/packages/cmdlime/package.py new file mode 100644 index 00000000000..3f1045c8cea --- /dev/null +++ b/var/spack/repos/builtin/packages/cmdlime/package.py @@ -0,0 +1,16 @@ +# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack.package import * + + +class Cmdlime(CMakePackage): + """cmdlime is a C++17 header-only library for command line parsing that + provides a concise, declarative interface without many details to remember.""" + + homepage = "https://github.com/kamchatka-volcano/cmdlime" + url = "https://github.com/kamchatka-volcano/cmdlime/archive/refs/tags/v2.5.0.tar.gz" + + version("2.5.0", sha256="d5188d7f075142fcb546099a4ee2a967f8248109c0bee8c084e0e00f37603481") diff --git a/var/spack/repos/builtin/packages/exaca/package.py b/var/spack/repos/builtin/packages/exaca/package.py index 18a3bf473fb..d5d6b8785a2 100644 --- a/var/spack/repos/builtin/packages/exaca/package.py +++ b/var/spack/repos/builtin/packages/exaca/package.py @@ -12,13 +12,14 @@ class Exaca(CMakePackage): homepage = "https://github.com/LLNL/ExaCA" git = "https://github.com/LLNL/ExaCA.git" - url = "https://github.com/LLNL/ExaCA/archive/1.0.0.tar.gz" + url = "https://github.com/LLNL/ExaCA/archive/1.2.0.tar.gz" maintainers("streeve", "MattRolchigo") tags = ["ecp"] version("master", branch="master") + version("1.2.0", sha256="5038d63de96c6142ddea956998e1f4ebffbc4a5723caa4da0e73eb185e6623e4") version("1.1.0", sha256="10106fb1836964a19bc5bab3f374baa24188ba786c768e554442ab896b31ff24") version("1.0.0", sha256="48556233360a5e15e1fc20849e57dd60739c1991c7dfc7e6b2956af06688b96a") @@ -34,8 +35,9 @@ class Exaca(CMakePackage): depends_on("cmake@3.12:", type="build", when="@master") depends_on("googletest@1.10:", type="test", when="@1.1:+testing") depends_on("kokkos@3.0:", when="@:1.1") - depends_on("kokkos@3.2:", when="@master") + depends_on("kokkos@3.2:", when="@1.2:") depends_on("mpi") + depends_on("nlohmann-json", when="@1.2:") def cmake_args(self): options = [self.define_from_variant("BUILD_SHARED_LIBS", "shared")] diff --git a/var/spack/repos/builtin/packages/g2/package.py b/var/spack/repos/builtin/packages/g2/package.py index 2ff605df208..4e51507d047 100644 --- a/var/spack/repos/builtin/packages/g2/package.py +++ b/var/spack/repos/builtin/packages/g2/package.py @@ -7,22 +7,40 @@ class G2(CMakePackage): - """Utilities for coding/decoding GRIB2 messages. This library contains - Fortran 90 decoder/encoder routines for GRIB edition 2, as well as - indexing/searching utility routines. + """The NCEPLIBS-g2 library reads and writes GRIB2 files. GRIdded Binary or General + Regularly-distributed Information in Binary form (GRIB) is a data format for + meteorological and forecast data, standardized by the World Meteorological + Organization (WMO). This is part of the NCEPLIBS project.""" homepage = "https://noaa-emc.github.io/NCEPLIBS-g2" url = "https://github.com/NOAA-EMC/NCEPLIBS-g2/archive/refs/tags/v3.4.3.tar.gz" - maintainers("t-brown", "AlexanderRichert-NOAA", "Hang-Lei-NOAA", "edwardhartnett") + maintainers("AlexanderRichert-NOAA", "Hang-Lei-NOAA", "edwardhartnett") + version("3.4.6", sha256="c4b03946365ce0bacf1e10e8412a5debd72d8671d1696aa4fb3f3adb119175fe") version("3.4.5", sha256="c18e991c56964953d778632e2d74da13c4e78da35e8d04cb742a2ca4f52737b6") version("3.4.3", sha256="679ea99b225f08b168cbf10f4b29f529b5b011232f298a5442ce037ea84de17c") - depends_on("jasper@:2.0.32") + variant( + "build_with_w3emc", + description="Enable GRIB1 conversion routine", + default=True, + when="@3.4.5:", + ) + depends_on("libpng") + depends_on("bacio") + depends_on("jasper@:2.0.32", when="@:3.4.5") + depends_on("jasper", when="@3.4.6:") + depends_on("w3emc", when="@:3.4.5") + + def cmake_args(self): + args = [] + + if self.spec.satisfies("@3.4.5:"): + args.append(self.define_from_variant("BUILD_WITH_W3EMC", "build_with_w3emc")) def setup_run_environment(self, env): for suffix in ("4", "d"): diff --git a/var/spack/repos/builtin/packages/libfabric/package.py b/var/spack/repos/builtin/packages/libfabric/package.py index db73e246df9..fe0c9c6a40e 100644 --- a/var/spack/repos/builtin/packages/libfabric/package.py +++ b/var/spack/repos/builtin/packages/libfabric/package.py @@ -22,6 +22,8 @@ class Libfabric(AutotoolsPackage): executables = ["^fi_info$"] version("main", branch="main") + version("1.19.0", sha256="f14c764be9103e80c46223bde66e530e5954cb28b3835b57c8e728479603ef9e") + version("1.18.2", sha256="64d7837853ca84d2a413fdd96534b6a81e6e777cc13866e28cf86cd0ccf1b93e") version("1.18.1", sha256="4615ae1e22009e59c72ae03c20adbdbd4a3dce95aeefbc86cc2bf1acc81c9e38") version("1.18.0", sha256="912fb7c7b3cf2a91140520962b004a1c5d2f39184adbbd98ae5919b0178afd43") version("1.17.1", sha256="8b372ddb3f46784c53fdad50a701a6eb0e661239aee45a42169afbedf3644035") diff --git a/var/spack/repos/builtin/packages/pika/package.py b/var/spack/repos/builtin/packages/pika/package.py index e129609c7ef..7321aefc612 100644 --- a/var/spack/repos/builtin/packages/pika/package.py +++ b/var/spack/repos/builtin/packages/pika/package.py @@ -17,6 +17,7 @@ class Pika(CMakePackage, CudaPackage, ROCmPackage): git = "https://github.com/pika-org/pika.git" maintainers("msimberg", "albestro", "teonnik", "aurianer") + version("0.18.0", sha256="f34890e0594eeca6ac57f2b988d0807b502782817e53a7f7043c3f921b08c99f") version("0.17.0", sha256="717429fc1bc986d62cbec190a69939e91608122d09d54bda1b028871c9ca9ad4") version("0.16.0", sha256="59f2baec91cc9bf71ca96d21d0da1ec0092bf59da106efa51789089e0d7adcbb") version("0.15.1", sha256="b68b87cf956ad1448f5c2327a72ba4d9fb339ecabeabb0a87b8ea819457e293b") diff --git a/var/spack/repos/builtin/packages/umpire/package.py b/var/spack/repos/builtin/packages/umpire/package.py index 25963ac0226..51f0c034b2f 100644 --- a/var/spack/repos/builtin/packages/umpire/package.py +++ b/var/spack/repos/builtin/packages/umpire/package.py @@ -24,6 +24,12 @@ class Umpire(CachedCMakePackage, CudaPackage, ROCmPackage): version("develop", branch="develop", submodules=False) version("main", branch="main", submodules=False) + version( + "2022.10.0", + tag="v2022.10.0", + commit="93b1441aaa258c1dcd211a552b75cff6461a2a8a", + submodules=False, + ) version( "2022.03.1", tag="v2022.03.1", @@ -130,6 +136,20 @@ class Umpire(CachedCMakePackage, CudaPackage, ROCmPackage): when="@:5.0.1 ^blt@0.4:", ) + # https://github.com/LLNL/Umpire/pull/805 + patch( + "https://github.com/LLNL/Umpire/pull/805/commits/47ff0aa1f7a01a917c3b7ac618e8a9e44a10fd25.patch?full_index=1", + sha256="7ed5d2c315a3b31e339f664f6108e32d7cb4cb8e9f22e5c78a65ba02625ccc09", + when="@2022.10.0", + ) + + # https://github.com/LLNL/Umpire/pull/816 + patch( + "https://github.com/LLNL/Umpire/pull/816/commits/2292d1d6078f6d9523b7ad0886ffa053644569d5.patch?full_index=1", + sha256="0f43cad7cdaec3c225ab6414ab9f81bd405a1157abf5a508e515bcb6ca53326d", + when="@2022.10.0", + ) + variant("fortran", default=False, description="Build C/Fortran API") variant("c", default=True, description="Build C API") variant("numa", default=False, description="Enable NUMA support") @@ -150,6 +170,7 @@ class Umpire(CachedCMakePackage, CudaPackage, ROCmPackage): depends_on("cmake@3.9:", when="+cuda", type="build") depends_on("cmake@3.14:", when="@2022.03.0:") + depends_on("blt@0.5.2:", type="build", when="@2022.10.0:") depends_on("blt@0.5.0:", type="build", when="@2022.03.0:") depends_on("blt@0.4.1", type="build", when="@6.0.0") depends_on("blt@0.4.0:", type="build", when="@4.1.3:5.0.1") diff --git a/var/spack/repos/builtin/packages/yade/package.py b/var/spack/repos/builtin/packages/yade/package.py new file mode 100644 index 00000000000..95ee8f96e9b --- /dev/null +++ b/var/spack/repos/builtin/packages/yade/package.py @@ -0,0 +1,46 @@ +# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack.package import * + + +class Yade(CMakePackage): + """Yade is an free software for particle based simulations.""" + + homepage = "https://gitlab.com/yade-dev/trunk" + url = "https://gitlab.com/yade-dev/trunk/-/archive/2023.02a/trunk-2023.02a.tar.gz" + + maintainers("lmagdanello") + + version("2023.02a", sha256="f76b5a0aa7f202716efa94cd730e4bc442ffcb40a99caaf6e579ab8695efb0c1") + version("2022.01a", sha256="3b76185b706aba6113d1e932c5b883cd772e8d8c6b4e5230a01f3370e2b6904c") + version("2021.01a", sha256="3afab3380e8f5d185af7929213f63341445d6a5ee6bc21bbae102d8ffd93df1d") + version("2020.01a", sha256="e4856aaa0141c32404355ce9de4f25076fe3940dbc8d0fdbc8ace8020c5191f1") + version("2019.01a", sha256="7cb80b912cdc8752850de54ef3c084768c5ab69ce6af4b85dc3921674d7134a5") + version("2018.02b", sha256="d1b2ed3751cd4661af1ad4058196adb16eb227845d874e1c221074a699876634") + version("2018.02a", sha256="629a83ab71e2f47f2a7a83fd2c18ab5ce5573bf239445be0d4ff34ce08c11263") + version("2017.01a", sha256="cd35caa6b6a017ee82f894e7d6f0826fddc1d921aea04b5896d3f1da95cb649b") + version("2016.06a", sha256="6e7374d2dcb7c90026be9229a6b30373f9d82fdefd3dc1f952aa6262924f2579") + + depends_on("cmake", type="build") + depends_on("gcc@11.4:", type=("build", "run")) + depends_on("boost@1.47:", type=("build", "run")) + depends_on("qt", type=("build", "run")) + depends_on("freeglut", type=("build", "run")) + depends_on("libqglviewer", type=("build", "run")) + depends_on("python", type=("build", "run")) + depends_on("py-numpy", type=("build", "run")) + depends_on("py-ipython", type=("build", "run")) + depends_on("py-sphinx", type=("build", "run")) + depends_on("py-matplotlib", type=("build", "run")) + depends_on("eigen@3.2.1:", type=("build", "run")) + depends_on("gdb", type=("build", "run")) + depends_on("sqlite", type=("build", "run")) + + def cmake_args(self): + args = [self.define("CMAKE_BUILD_TYPE", "Release")] + + args.append("-DCMAKE_INSTALL_PREFIX={0}".format(self.stage.source_path)) + return args