diff --git a/var/spack/repos/builtin/packages/adios2/package.py b/var/spack/repos/builtin/packages/adios2/package.py index 16481106dcd78c..6083c1ff8aa681 100644 --- a/var/spack/repos/builtin/packages/adios2/package.py +++ b/var/spack/repos/builtin/packages/adios2/package.py @@ -200,6 +200,9 @@ class Adios2(CMakePackage, CudaPackage, ROCmPackage): depends_on("aws-sdk-cpp", when="+aws") depends_on("libcatalyst@2", when="+libcatalyst") + # error: invalid use of incomplete type 'PyFrameObject' {aka 'struct _frame'} + conflicts("^python@3.11:", when="@:2.7") + # Fix findmpi when called by dependees # See https://github.com/ornladios/ADIOS2/pull/1632 patch("cmake-update-findmpi.patch", when="@2.4.0") diff --git a/var/spack/repos/builtin/packages/byte-lite/package.py b/var/spack/repos/builtin/packages/byte-lite/package.py new file mode 100644 index 00000000000000..44dfe3b6417615 --- /dev/null +++ b/var/spack/repos/builtin/packages/byte-lite/package.py @@ -0,0 +1,29 @@ +# Copyright 2013-2024 Lawrence Livermore 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 ByteLite(CMakePackage): + """byte lite - A C++17-like byte type for C++98, C++11 and later + in a single-file header-only library""" + + homepage = "https://github.com/martinmoene/byte-lite" + url = "https://github.com/martinmoene/byte-lite/archive/refs/tags/v0.3.0.tar.gz" + + license("BSL-1.0", checked_by="pranav-sivaraman") + + version("0.3.0", sha256="1a19e237b12bb098297232b0a74ec08c18ac07ac5ac6e659c1d5d8a4ed0e4813") + + depends_on("cxx", type="build") + depends_on("cmake@3.5:", type="build") + + conflicts("%gcc@:4.7") + conflicts("%clang@:3.4") + conflicts("%apple-clang@:5") + conflicts("%mvsc@:5") + + def cmake_args(self): + return [self.define("BYTE_LITE_OPT_BUILD_TESTS", self.run_tests)] diff --git a/var/spack/repos/builtin/packages/gem5/package.py b/var/spack/repos/builtin/packages/gem5/package.py new file mode 100644 index 00000000000000..f18a478c3b7e00 --- /dev/null +++ b/var/spack/repos/builtin/packages/gem5/package.py @@ -0,0 +1,70 @@ +# Copyright 2013-2024 Lawrence Livermore 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 Gem5(SConsPackage): + """The gem5 simulator is a modular platform for computer-system + architecture research, encompassing system-level architecture as + well as processor microarchitecture. gem5 is a community led + project with an open governance model. gem5 was originally + conceived for computer architecture research in academia, but it + has grown to be used in computer system design by academia, + industry for research, and in teaching.""" + + homepage = "https://www.gem5.org" + git = "https://github.com/gem5/gem5" + url = "https://github.com/gem5/gem5/archive/refs/tags/v24.0.0.0.tar.gz" + + version("24.0.0.1", tag="v24.0.0.1", commit="b1a44b89c7bae73fae2dc547bc1f871452075b85") + version("24.0.0.0", tag="v24.0.0.0", commit="43769abaf05120fed1e4e0cfbb34619edbc10f3f") + + depends_on("c", type="build") + depends_on("cxx", type="build") + depends_on("scons", type="build") + depends_on("py-mypy", type="build") + depends_on("py-pybind11", type="build") + depends_on("python") + depends_on("gettext") + depends_on("hdf5+cxx") + depends_on("protobuf") + depends_on("gperftools") + depends_on("graphviz+pangocairo", type=("build", "run")) + depends_on("py-pydot", type=("build", "run")) + depends_on("capstone") + + def patch(self): + filter_file( + " Environment(tools=[", + " Environment(ENV=os.environ, tools=[", + "SConstruct", + string=True, + ) + filter_file( + """conf.env['CONF']['HAVE_PERF_ATTR_EXCLUDE_HOST'] = conf.CheckMember(""", + """conf.env['CONF']['HAVE_PERF_ATTR_EXCLUDE_HOST'] = bool(conf.CheckMember(""", + "src/cpu/kvm/SConsopts", + string=True, + ) + filter_file( + """perf_event_attr', 'exclude_host')""", + """perf_event_attr', 'exclude_host'))""", + "src/cpu/kvm/SConsopts", + string=True, + ) + + def install(self, spec, prefix): + mkdirp(prefix.bin) + install("build/ALL/gem5.opt", prefix.bin) + + def build_args(self, spec, prefix): + args = [] + args.append("build/ALL/gem5.opt") + args.append(f"-j{spack.config.determine_number_of_jobs(parallel=True)}") + args.append("--ignore-style") + + return args diff --git a/var/spack/repos/builtin/packages/nwchem/package.py b/var/spack/repos/builtin/packages/nwchem/package.py index 497ae0bf83872a..a3882f55f12bbe 100644 --- a/var/spack/repos/builtin/packages/nwchem/package.py +++ b/var/spack/repos/builtin/packages/nwchem/package.py @@ -46,6 +46,7 @@ class Nwchem(Package): depends_on("fortran", type="build") # generated variant("openmp", default=False, description="Enables OpenMP support") + variant("f90allocatable", default=False, description="Use F90 allocatable instead of MA") variant( "armci", values=("mpi-ts", "mpi-pr", "armcimpi", "mpi3", "openib", "ofi"), @@ -57,6 +58,7 @@ class Nwchem(Package): default=False, description="Enables rarely-used TCE features (CCSDTQ, CCSDTLR, EACCSD, IPCCSD, MRCC)", ) + variant("tcecuda", default=False, description="Enable TCE CCSD(T) CUDA support") variant("fftw3", default=False, description="Link against the FFTW library") variant("libxc", default=False, description="Support additional functionals via libxc") variant( @@ -86,6 +88,7 @@ class Nwchem(Package): depends_on("blas") depends_on("lapack") depends_on("mpi") + depends_on("cuda", when="+tcecuda") depends_on("armcimpi", when="armci=armcimpi") depends_on("libfabric", when="armci=ofi") depends_on("rdma-core", when="armci=openib") @@ -155,9 +158,18 @@ def install(self, spec, prefix): args.extend(["CCSDTLR=y"]) args.extend(["CCSDTQ=y"]) + if spec.satisfies("+tcecuda"): + args.extend(["TCE_CUDA=y"]) + args.extend(["CUDA_INCLUDE=-I{0}".format(self.spec["cuda"].headers.directories[0])]) + # args.extend(["CUDA_LIBS={0}".format(self.spec["cuda"].libs)]) + args.extend(["CUDA_LIBS=-L{0} -lcudart".format(self.spec["cuda"].libs.directories[0])]) + if spec.satisfies("+openmp"): args.extend(["USE_OPENMP=y"]) + if spec.satisfies("+f90allocatable"): + args.extend(["USE_F90_ALLOCATABLE=1"]) + if self.spec.variants["armci"].value == "armcimpi": armcimpi = spec["armci"] args.extend(["ARMCI_NETWORK=ARMCI"]) diff --git a/var/spack/repos/builtin/packages/opencolorio/package.py b/var/spack/repos/builtin/packages/opencolorio/package.py new file mode 100644 index 00000000000000..bed7b22eb3d0ec --- /dev/null +++ b/var/spack/repos/builtin/packages/opencolorio/package.py @@ -0,0 +1,39 @@ +# Copyright 2013-2024 Lawrence Livermore 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 Opencolorio(CMakePackage): + """OpenColorIO (OCIO) is a complete color management solution geared towards motion + picture production with an emphasis on visual effects and computer animation.""" + + homepage = "https://opencolorio.readthedocs.io" + git = "https://github.com/AcademySoftwareFoundation/OpenColorIO" + url = ( + "https://github.com/AcademySoftwareFoundation/OpenColorIO/archive/refs/tags/v2.4.0.tar.gz" + ) + license("Apache-2.0") + + version("2.4.0", sha256="0ff3966b9214da0941b2b1cbdab3975a00a51fc6f3417fa860f98f5358f2c282") + + # Core dependencies + depends_on("cmake@3.14:", type="build") + depends_on("expat@2.2.8:") + depends_on("yaml-cpp@0.6.3:") + depends_on("imath@3.0.5:") + depends_on("pystring@1.1.3:") + + # Optional dependencies + variant("lcms", default=False, description="Little CMS for ociobakelut") + depends_on("lcms@2.2:", when="+lcms") + + variant("python", default=False, description="Build python bindings") + extends("python", when="+python") + depends_on("py-pybind11", when="+python", type=("build", "run")) + + def cmake_args(self): + args = ["-DOCIO_BUILD_PYTHON={0}".format("ON" if "+python" in self.spec else "OFF")] + return args diff --git a/var/spack/repos/builtin/packages/openimageio/package.py b/var/spack/repos/builtin/packages/openimageio/package.py index 4f03b0df35ed3c..fe48959156bc3b 100644 --- a/var/spack/repos/builtin/packages/openimageio/package.py +++ b/var/spack/repos/builtin/packages/openimageio/package.py @@ -42,6 +42,9 @@ class Openimageio(CMakePackage): variant("qt", default=False, description="Build qt viewer") depends_on("qt@5.6.0:+opengl", when="+qt") + variant("ocio", default=False, description="Support video frames") + depends_on("opencolorio@2.2:", when="+ocio") + def url_for_version(self, version): if version >= Version("2"): return super().url_for_version(version) diff --git a/var/spack/repos/builtin/packages/pango/package.py b/var/spack/repos/builtin/packages/pango/package.py index 5e4db93eba4551..11930fe59f5aef 100644 --- a/var/spack/repos/builtin/packages/pango/package.py +++ b/var/spack/repos/builtin/packages/pango/package.py @@ -30,8 +30,14 @@ class Pango(MesonPackage): version("1.47.0", sha256="730db8652fc43188e03218c3374db9d152351f51fc7011b9acae6d0a6c92c367") version("1.46.2", sha256="d89fab5f26767261b493279b65cfb9eb0955cd44c07c5628d36094609fc51841") version("1.45.5", sha256="f61dd911de2d3318b43bbc56bd271637a46f9118a1ee4378928c06df8a1c1705") - version("1.44.6", sha256="3e1e41ba838737e200611ff001e3b304c2ca4cdbba63d200a20db0b0ddc0f86c") - version("1.42.4", sha256="1d2b74cd63e8bd41961f2f8d952355aa0f9be6002b52c8aa7699d9f5da597c9d") + with default_args(deprecated=True): + # https://nvd.nist.gov/vuln/detail/CVE-2019-1010238 + version( + "1.44.6", sha256="3e1e41ba838737e200611ff001e3b304c2ca4cdbba63d200a20db0b0ddc0f86c" + ) + version( + "1.42.4", sha256="1d2b74cd63e8bd41961f2f8d952355aa0f9be6002b52c8aa7699d9f5da597c9d" + ) depends_on("c", type="build") # generated depends_on("cxx", type="build") # generated diff --git a/var/spack/repos/builtin/packages/py-alive-progress/package.py b/var/spack/repos/builtin/packages/py-alive-progress/package.py index 944dce0a95f557..31c011e687a8e6 100644 --- a/var/spack/repos/builtin/packages/py-alive-progress/package.py +++ b/var/spack/repos/builtin/packages/py-alive-progress/package.py @@ -19,7 +19,7 @@ class PyAliveProgress(PythonPackage): version("2.4.1", sha256="089757c8197f27ad972ba27e1060f6db92368d83c736884e159034fd74865323") version("1.6.2", sha256="642e1ce98becf226c8c36bf24e10221085998c5465a357a66fb83b7dc618b43e") - depends_on("python@2.7:3.8", type=("build", "run")) + depends_on("python@2.7:3", type=("build", "run")) depends_on("python@3.6:3", type=("build", "run"), when="@2:") depends_on("python@3.7:3", type=("build", "run"), when="@2.2:") depends_on("py-setuptools", type="build") diff --git a/var/spack/repos/builtin/packages/py-olcf-velocity/package.py b/var/spack/repos/builtin/packages/py-olcf-velocity/package.py new file mode 100644 index 00000000000000..6a36cb60498a94 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-olcf-velocity/package.py @@ -0,0 +1,30 @@ +# Copyright 2013-2024 Lawrence Livermore 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 PyOlcfVelocity(PythonPackage): + """A tool to help with the maintenance of container build scripts on multiple systems, + backends (e.g podman or apptainer) and distros.""" + + homepage = "https://olcf.github.io/velocity/index.html" + pypi = "olcf_velocity/olcf_velocity-0.1.3.tar.gz" + + maintainers("AcerP-py") + + license("UNKNOWN", checked_by="AcerP-py") + + version("0.1.3", sha256="08bd82d464e8cab6c61cab095d460b927a18e082cadb663bd5f935cf651b5c03") + + depends_on("python@3.10:", type=("build", "run")) + + depends_on("py-pyyaml", type="run") + depends_on("py-networkx", type="run") + depends_on("py-colorama", type="run") + depends_on("py-loguru", type="run") + depends_on("py-typing-extensions", type="run") + + depends_on("py-setuptools", type="build") diff --git a/var/spack/repos/builtin/packages/pystring/package.py b/var/spack/repos/builtin/packages/pystring/package.py new file mode 100644 index 00000000000000..9d69f87adb5a2d --- /dev/null +++ b/var/spack/repos/builtin/packages/pystring/package.py @@ -0,0 +1,21 @@ +# Copyright 2013-2024 Lawrence Livermore 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 Pystring(CMakePackage): + """Pystring is a collection of C++ functions which match the interface and behavior + of python's string class methods using std::string.""" + + git = "https://github.com/imageworks/pystring" + url = "https://github.com/imageworks/pystring/archive/refs/tags/v1.1.4.tar.gz" + + license("Apache-2.0") + + version("1.1.4", sha256="49da0fe2a049340d3c45cce530df63a2278af936003642330287b68cefd788fb") + + # Core dependencies + depends_on("cmake@3.27.9:", type="build") diff --git a/var/spack/repos/builtin/packages/silo/package.py b/var/spack/repos/builtin/packages/silo/package.py index 58a2c12721abe0..3416a5c6108a23 100644 --- a/var/spack/repos/builtin/packages/silo/package.py +++ b/var/spack/repos/builtin/packages/silo/package.py @@ -142,8 +142,14 @@ def flag_handler(self, name, flags): # presented with an HDF5 API consistent with the HDF5 version. # Use the latest even-numbered API version, i.e. v1.13.1 uses # API v1.12 - maj_ver = int(spec["hdf5"].version[0]) - min_ver = int(spec["hdf5"].version[1]) + + # hdf5 support branches have a `develop` prefix + if "develop" in str(spec["hdf5"].version): + maj_ver = int(spec["hdf5"].version[1]) + min_ver = int(spec["hdf5"].version[2]) + else: + maj_ver = int(spec["hdf5"].version[0]) + min_ver = int(spec["hdf5"].version[1]) min_apiver = int(min_ver / 2) * 2 flags.append("-DH5_USE_{0}{1}_API".format(maj_ver, min_apiver)) diff --git a/var/spack/repos/builtin/packages/yosys/package.py b/var/spack/repos/builtin/packages/yosys/package.py index 9678f16528d8e3..d37712955a6536 100644 --- a/var/spack/repos/builtin/packages/yosys/package.py +++ b/var/spack/repos/builtin/packages/yosys/package.py @@ -20,7 +20,7 @@ class Yosys(MakefilePackage): """ homepage = "https://yosyshq.net/yosys" - url = "https://github.com/YosysHQ/yosys/archive/refs/tags/yosys-0.42.tar.gz" + url = "https://github.com/YosysHQ/yosys/archive/refs/tags/yosys-0.46.tar.gz" git = "https://github.com/YosysHQ/yosys.git" maintainers("davekeeshan") @@ -29,6 +29,10 @@ class Yosys(MakefilePackage): version("master", branch="master") + version("0.46", commit="e97731b9dda91fa5fa53ed87df7c34163ba59a41", submodules=True) + version("0.45", commit="9ed031ddd588442f22be13ce608547a5809b62f0", submodules=True) + version("0.44", commit="80ba43d26264738c93900129dc0aab7fab36c53f", submodules=True) + version("0.43", commit="ead4718e567aed2e552dcfe46294b132aa04c158", submodules=True) version("0.42", commit="9b6afcf3f83fea413b57c3790c25ba43b9914ce2", submodules=True) version("0.41", sha256="b0037d0a5864550a07a72ba81346e52a7d5f76b3027ef1d7c71b975d2c8bd2b2") version("0.40", sha256="c1d42ad90d587b587210b40cf3c5584e41e20f656e8630c33b6583322e8b764e")