Compare commits

...

12 Commits

Author SHA1 Message Date
Wouter Deconinck
c034e1ba9f meshlab: allow downloads of vendored components 2024-06-28 11:01:09 -05:00
Wouter Deconinck
84b6266190 meshlab: put in builtin repo 2024-04-08 14:41:37 -05:00
Wouter Deconinck
94a42d786f meshlab: disable two failing plugins 2024-04-08 14:29:31 -05:00
Wouter Deconinck
0e71ea51ce meshlab: new package 2024-04-08 14:29:31 -05:00
Luc Berger
b3cef1072d Nalu: updating Trilinos recipe a bit (#43471)
* Nalu: updating Trilinos recipe a bit

Basic changes to build/install nalu properly using Spack.
Some more changes would be nice for instance adding an
option to build against Trilinos master or develop. Adding
a dependency on googletest to avoid the annoying build
failures in the unit-tests.

* Nalu: adding release 1.6.0

Nalu v1.6.0 can build cleanly against Trilinos 14.0.0 with the
proposed changes. The only other combo is master / master but
than one is "floating" as these branch evolve over time. When a
new Nalu comes out we might want to add another fixed version to
keep this recipes up to date!
2024-04-08 10:39:51 -06:00
Wouter Deconinck
e8ae9a403c acts: depends_on py-onnxruntime when +onnx for @23.3: (#43529) 2024-04-08 14:13:17 +02:00
Wouter Deconinck
1a8ef161c8 fastjet: new multi-valued variant plugins (#43523)
* fastjet: new multi-valued variant `plugins`

* rivet: depends_on fastjet plugins=cxx
2024-04-08 14:12:12 +02:00
Harmen Stoppels
d3913938bc py-tatsu: add upperbound on python (#43510) 2024-04-08 11:26:46 +02:00
Harmen Stoppels
4179880fe6 py-pymatgen: add forward compat bound for cython (#43511) 2024-04-08 11:26:09 +02:00
Harmen Stoppels
125dd0368e py-triton: add zlib (#43512) 2024-04-08 11:25:33 +02:00
Harmen Stoppels
fd68f8916c gperftools: add cmake build system (#43506)
the autotools build system does something funky which causes a link line
where gccs default link dirs are explicitly added and end up before the
-L from spack's libunwind, so that ultimately it links against system
libunwind.

the cmake build system does better.
2024-04-08 10:00:05 +02:00
Jonas Eschle
93e6f5fa4e Update jax & jaxlib versions (#42863)
* upgrade new versions

* style fix

* update jaxlib deps (not cuda and bazel yet)

* update jaxlib cuda versions

* update jaxlib cuda versions

* update jaxlib cuda versions

* chore: style fix

* Update package.py

* Update package.py

* fix:  typo

* docs: add source for cuda version

* py-jaxlib 0.4.14 also doesn't build on ppc64le

* Add 0.4.26

---------

Co-authored-by: Adam J. Stewart <ajstewart426@gmail.com>
2024-04-07 12:04:23 +02:00
11 changed files with 206 additions and 31 deletions

View File

@@ -331,10 +331,7 @@ class Acts(CMakePackage, CudaPackage):
depends_on("python@3.8:", when="+python @19.11:19")
depends_on("python@3.8:", when="+python @21:")
depends_on("py-onnxruntime@:1.12", when="+onnx @:23.2")
# FIXME py-onnxruntime@1.12: required but not yet available
# Ref: https://github.com/spack/spack/pull/37064
# depends_on("py-onnxruntime@1.12:", when="+onnx @23.3:")
conflicts("+onnx", when="@23.3:", msg="py-onnxruntime@1.12: required but not yet available")
depends_on("py-onnxruntime@1.12:", when="+onnx @23.3:")
depends_on("py-pybind11 @2.6.2:", when="+python @18:")
depends_on("py-pytest", when="+python +unit_tests")

View File

@@ -72,6 +72,28 @@ class Fastjet(AutotoolsPackage):
)
variant("atlas", default=False, description="Patch to make random generator thread_local")
available_plugins = (
conditional("atlascone", when="@2.4.0:"),
conditional("cdfcones", when="@2.1.0:"),
conditional("cmsiterativecone", when="@2.4.0:"),
conditional("d0runicone", when="@3.0.0:"),
conditional("d0runiicone", when="@2.4.0:"),
conditional("eecambridge", when="@2.4.0:"),
conditional("gridjet", when="@3.0.0:"),
conditional("jade", when="@2.4.0:"),
conditional("nesteddefs", when="@2.4.0:"),
conditional("pxcone", when="@2.1.0:"),
conditional("siscone", when="@2.1.0:"),
conditional("trackjet", when="@2.4.0:"),
)
variant(
"plugins",
multi=True,
values=("all", "cxx") + available_plugins,
default="all",
description="List of plugins to enable, or 'cxx' or 'all'",
)
patch("atlas.patch", when="@:3.3 +atlas", level=0)
patch(
"https://gitlab.cern.ch/sft/lcgcmake/-/raw/23c82f269b8e5df0190e20b7fbe06db16b24d667/externals/patches/fastjet-3.4.1.patch",
@@ -81,7 +103,21 @@ class Fastjet(AutotoolsPackage):
)
def configure_args(self):
extra_args = ["--enable-allplugins"]
extra_args = []
plugins = self.spec.variants["plugins"].value
if "all" in plugins:
extra_args += ["--enable-allplugins"]
elif "cxx" in plugins:
extra_args += ["--enable-allcxxplugins"]
else:
for plugin in self.available_plugins:
# conditional returns an iterable _ConditionalVariantValues
for v in plugin:
# this version does not support this plugin
if not self.spec.satisfies(v.when):
continue
enabled = v.value in plugins
extra_args += [f"--{'enable' if enabled else 'disable'}-{v.value}"]
extra_args += self.enable_or_disable("shared")
extra_args += self.enable_or_disable("auto-ptr")
if self.spec.variants["thread-safety"].value == "limited":

View File

@@ -3,10 +3,11 @@
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
from spack.build_systems import autotools, cmake
from spack.package import *
class Gperftools(AutotoolsPackage):
class Gperftools(AutotoolsPackage, CMakePackage):
"""Google's fast malloc/free implementation, especially for
multi-threaded applications. Contains tcmalloc, heap-checker,
heap-profiler, and cpu-profiler.
@@ -19,6 +20,8 @@ class Gperftools(AutotoolsPackage):
license("BSD-3-Clause")
build_system(conditional("cmake", when="@2.8.1:"), "autotools", default="cmake")
version("2.15", sha256="c69fef855628c81ef56f12e3c58f2b7ce1f326c0a1fe783e5cae0b88cbbe9a80")
version("2.14", sha256="6b561baf304b53d0a25311bd2e29bc993bed76b7c562380949e7cb5e3846b299")
version("2.13", sha256="4882c5ece69f8691e51ffd6486df7d79dbf43b0c909d84d3c0883e30d27323e7")
@@ -43,21 +46,38 @@ class Gperftools(AutotoolsPackage):
)
depends_on("unwind", when="+libunwind")
depends_on("cmake@3.12:", type="build", when="build_system=cmake")
# Linker error: src/base/dynamic_annotations.cc:46: undefined reference to
# `TCMallocGetenvSafe'
conflicts("target=ppc64:", when="@2.14")
conflicts("target=ppc64le:", when="@2.14")
def configure_args(self):
args = []
args += self.enable_or_disable("sized-delete", variant="sized_delete")
args += self.enable_or_disable(
"dynamic-sized-delete-support", variant="dynamic_sized_delete_support"
)
args += self.enable_or_disable("debugalloc")
args += self.enable_or_disable("libunwind")
if self.spec.satisfies("+libunwind"):
args += ["LDFLAGS=-lunwind"]
# the autotools build system creates an explicit list of -L <system dir> flags that end up
# before the -L <spack dir> flags, which causes the system libunwind to be linked instead of
# the spack libunwind. This is a workaround to fix that.
conflicts("+libunwind", when="build_system=autotools")
return args
class CMakeBuilder(cmake.CMakeBuilder):
def cmake_args(self):
return [
self.define_from_variant("gperftools_sized_delete", "sized_delete"),
self.define_from_variant(
"gperftools_dynamic_sized_delete_support", "dynamic_sized_delete_support"
),
self.define_from_variant("GPERFTOOLS_BUILD_DEBUGALLOC", "debugalloc"),
self.define_from_variant("gperftools_enable_libunwind", "libunwind"),
]
class AutotooolsBuilder(autotools.AutotoolsBuilder):
def configure_args(self):
return [
*self.enable_or_disable("sized-delete", variant="sized_delete"),
*self.enable_or_disable(
"dynamic-sized-delete-support", variant="dynamic_sized_delete_support"
),
*self.enable_or_disable("debugalloc"),
*self.enable_or_disable("libunwind"),
]

View File

@@ -0,0 +1,44 @@
# 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 Meshlab(CMakePackage):
"""The open source mesh processing system."""
homepage = "https://www.meshlab.net"
url = "https://github.com/cnr-isti-vclab/meshlab/archive/refs/tags/MeshLab-2023.12.tar.gz"
git = "https://github.com/cnr-isti-vclab/meshlab.git"
maintainers("wdconinc")
license("GPL-3.0", checked_by="wdconinc")
version("main", branch="main", submodules=True)
version("2023.12", commit="2dbd2f4b12df3b47d8777b2b4a43cabd9e425735", submodules=True)
variant("double_scalar", default=False, description="Type to use for scalars")
depends_on("eigen")
depends_on("glew")
depends_on("mpfr")
depends_on("qt@5.15: +opengl")
def cmake_args(self):
args = [
self.define_from_variant("MESHLAB_BUILD_WITH_DOUBLE_SCALAR", "double_scalar"),
# E57 and Nexus plugins fail on gcc-13 due to missing include cstdint,
# but patching is cumbersome since build process downloads their source.
# Ref: https://github.com/asmaloney/libE57Format/pull/176
self.define("MESHLAB_ALLOW_DOWNLOAD_SOURCE_LIBE57", False),
# Ref: https://github.com/cnr-isti-vclab/corto/pull/44
self.define("MESHLAB_ALLOW_DOWNLOAD_SOURCE_NEXUS", False),
]
for bundle in "LIBIGL", "LEVMAR", "LIB3DS", "EMBREE", "NEXUS", "QHULL", "STRUCTURE_SYNTH", "TINYGLTF", "MUPARSER", "BOOST", "OPENCTM", "U3D", "LIBE57", "CGAL", "XERCES":
args.append(self.define(f"MESHLAB_ALLOW_DOWNLOAD_SOURCE_{bundle}", False))
return args

View File

@@ -15,9 +15,14 @@ class Nalu(CMakePackage):
"""
homepage = "https://github.com/NaluCFD/Nalu"
url = "https://github.com/NaluCFD/Nalu/archive/refs/tags/v1.6.0.tar.gz"
git = "https://github.com/NaluCFD/Nalu.git"
version("master", branch="master")
version("1.6.0", sha256="2eafafe25ed44a7bc1429881f8f944b9794ca51b1e1b29c28a45b91520c7cf97")
depends_on("trilinos@master", when="@master")
depends_on("trilinos@=14.0.0", when="@1.6.0")
# Options
variant(
@@ -31,16 +36,15 @@ class Nalu(CMakePackage):
# Required dependencies
depends_on("mpi")
depends_on("yaml-cpp@0.5.3:", when="+shared")
depends_on("yaml-cpp~shared@0.5.3:", when="~shared")
depends_on("yaml-cpp@0.5.3:0.6.2", when="+shared")
depends_on("yaml-cpp~shared@0.5.3:0.6.2", when="~shared")
# Cannot build Trilinos as a shared library with STK on Darwin
# which is why we have a 'shared' variant for Nalu
# https://github.com/trilinos/Trilinos/issues/2994
depends_on(
"trilinos"
"+mpi+exodus+tpetra+muelu+belos+ifpack2+amesos2+zoltan+stk+boost"
"~superlu-dist+superlu+hdf5+shards~hypre"
"@master"
"+mpi+exodus+tpetra+muelu+belos+ifpack2+amesos2+zoltan+stk+boost+gtest"
"~superlu-dist+superlu+hdf5+shards~hypre gotype=long"
)
depends_on("trilinos~shared", when="~shared")
# Optional dependencies

View File

@@ -22,11 +22,31 @@ class PyJax(PythonPackage):
pypi = "jax/jax-0.2.25.tar.gz"
license("Apache-2.0")
maintainers("adamjstewart")
maintainers("adamjstewart", "jonas-eschle")
version("0.4.26", sha256="2cce025d0a279ec630d550524749bc8efe25d2ff47240d2a7d4cfbc5090c5383")
version("0.4.25", sha256="a8ee189c782de2b7b2ffb64a8916da380b882a617e2769aa429b71d79747b982")
version("0.4.24", sha256="4a6b6fd026ddd22653c7fa2fac1904c3de2dbe845b61ede08af9a5cc709662ae")
version("0.4.23", sha256="2a229a5a758d1b803891b2eaed329723f6b15b4258b14dc0ccb1498c84963685")
version("0.4.22", sha256="801434dda6e14f82a45fff753969a33281ab22fb2a50fe801b651390321057ba")
version("0.4.21", sha256="c97fd0d2751d6e1eb15aa2052ff7cfdc129f8fafc2c14cd779720658926a587b")
version("0.4.20", sha256="ea96a763a8b1a9374639d1159ab4de163461d01cd022f67c34c09581b71ed2ac")
version("0.4.19", sha256="29f87f9a50964d3ca5eeb2973de3462f0e8b4eca6d46027894a0e9a903420601")
version("0.4.18", sha256="776cf33890100803e98f45f9af10aa727271c6993d4e766c069118733c928132")
version("0.4.17", sha256="d7508a69e87835f534cb07a2f21d79cc1cb8c4cfdcf7fb010927267ef7355f1d")
version("0.4.16", sha256="e2ca82c9bf973c2c1c01f5340a583692b31f277aa3abd0544229c1fe5fa44b02")
version("0.4.15", sha256="2aa123ccef591e355dea94a6e714b6559f8e1d6368a576a223f97d031ece0d15")
version("0.4.14", sha256="18fed3881f26e8b13c8cb46eeeea3dba9eb4d48e3714d8e8f2304dd6e237083d")
version("0.4.13", sha256="03bfe6749dfe647f16f15f6616638adae6c4a7ca7167c75c21961ecfd3a3baaa")
version("0.4.12", sha256="d2de9a2388ffe002f16506d3ad1cc6e34d7536b98948e49c7e05bbcfe8e57998")
version("0.4.11", sha256="8b1cd443b698339df8d8807578ee141e5b67e36125b3945b146f600177d60d79")
version("0.4.10", sha256="1bf0f2720f778f2937301a16a4d5cd3497f13a4d6c970c24a88918a81816a888")
version("0.4.9", sha256="1ed135cd08f48e4baf10f6eafdb4a4cdae781f9052b5838c09c91a9f4fa75f09")
version("0.4.8", sha256="08116481f7336db16c24812bfb5e6f9786915f4c2f6ff4028331fa69e7535202")
version("0.4.7", sha256="5e7002d74db25f97c99b979d4ba1233b1ef26e1597e5fc468ad11d1c8a9dc4f8")
version("0.4.6", sha256="d06ea8fba4ed315ec55110396058cb48c8edb2ab0b412f28c8a123beee9e58ab")
version("0.4.5", sha256="1633e56d34b18ddfa7d2a216ce214fa6fa712d36552532aaa71da416aede7268")
version("0.4.4", sha256="39b07e07343ed7c74492ee5e75db77456d3afdd038a322671f09fc748f6392cb")
version("0.4.3", sha256="d43f08f940aa30eb339965cfb3d6bee2296537b0dc2f0c65ccae3009279529ae")
version(
"0.3.23",
@@ -58,7 +78,33 @@ class PyJax(PythonPackage):
# See jax/_src/lib/__init__.py
# https://github.com/google/jax/commit/8be057de1f50756fe7522f7e98b2f30fad56f7e4
for v in ["0.4.25", "0.4.23", "0.4.16", "0.4.3", "0.3.23"]:
for v in [
"0.4.26",
"0.4.25",
"0.4.24",
"0.4.23",
"0.4.22",
"0.4.21",
"0.4.20",
"0.4.19",
"0.4.18",
"0.4.17",
"0.4.16",
"0.4.15",
"0.4.14",
"0.4.13",
"0.4.12",
"0.4.11",
"0.4.10",
"0.4.9",
"0.4.8",
"0.4.7",
"0.4.6",
"0.4.5",
"0.4.4",
"0.4.3",
"0.3.23",
]:
depends_on(f"py-jaxlib@:{v}", when=f"@{v}", type=("build", "run"))
# See _minimum_jaxlib_version in jax/version.py

View File

@@ -20,9 +20,19 @@ class PyJaxlib(PythonPackage, CudaPackage):
license("Apache-2.0")
maintainers("adamjstewart")
version("0.4.26", sha256="ddc14da1eaa34f23430d40ad9b9585088575cac439a2fa1c6833a247e1b221fd")
version("0.4.25", sha256="fc1197c401924942eb14185a61688d0c476e3e81ff71f9dc95e620b57c06eec8")
version("0.4.24", sha256="c4e6963c2c36f634a9a1765e476a1ed4e6c4a7954465ebf72e29f344c28ddc28")
version("0.4.23", sha256="e4c06d62ba54becffd91abc862627b8b11b79c5a77366af8843b819665b6d568")
version("0.4.21", sha256="8d57f66d00b9c0b824b1eff84adda5b765a412b3f316ef7c773632d1edbf9477")
version("0.4.20", sha256="058410d2bc12f7562c7b01e0c8cd587cb68059c12f78bc945055e5ddc445f5fd")
version("0.4.19", sha256="51242b217a1f82474e42d24f09ed5dedff951eeb4579c6e49e706d1adfd6949d")
version("0.4.16", sha256="85c8bc050abe0a2cf62e8cfc7edb4904dd3807924b5714ec6277f291c576b5ca")
version("0.4.14", sha256="9f309476a8f6337717b059b8d10b5859b4134c30cf8f1220bb70379b5e2744a4")
version("0.4.11", sha256="bdfc45f33970beba5caf28d061668a4863f05994deea26791db50ea605fc2e36")
version("0.4.7", sha256="0578d5dd5035b5225cadb6a62ca5f93dd76b70292268502fc01a0fd9ca7001d0")
version("0.4.6", sha256="2c9bf8962815bc54ef524e33dc8eda9d165d379fe87e0df210f316adead27787")
version("0.4.4", sha256="881f402c7983b56b185e182d5315dd64c9f5320be96213d0415996ece1826806")
version("0.4.3", sha256="2104735dc22be2b105e5517bd5bc6ae97f40e8e9e54928cac1585c6112a3d910")
version(
"0.3.22",
@@ -40,9 +50,12 @@ class PyJaxlib(PythonPackage, CudaPackage):
# build/build.py
depends_on("py-build", when="@0.4.14:", type="build")
# Based on PyPI wheels
depends_on("python@3.9:3.12", when="@0.4.17:", type=("build", "run"))
depends_on("python@3.9:3.11", when="@0.4.14:0.4.16", type=("build", "run"))
depends_on("python@3.8:3.11", when="@0.4.6:0.4.13", type=("build", "run"))
# jaxlib/setup.py
depends_on("python@3.9:", when="@0.4.14:", type=("build", "run"))
depends_on("python@3.8:", when="@0.4:", type=("build", "run"))
depends_on("py-setuptools", type="build")
depends_on("py-scipy@1.9:", when="@0.4.19:", type=("build", "run"))
depends_on("py-scipy@1.7:", when="@0.4.7:", type=("build", "run"))
@@ -63,12 +76,16 @@ class PyJaxlib(PythonPackage, CudaPackage):
depends_on("bazel@4.2.1", when="@0.1.75:0.1.76", type="build")
depends_on("bazel@4.1.0", when="@0.1.70:0.1.74", type="build")
# README.md
depends_on("cuda@11.4:", when="@0.4:+cuda")
# jaxlib/setup.py
depends_on("cuda@12.1.105:", when="@0.4.26:+cuda")
depends_on("cuda@11.8:", when="@0.4.11:+cuda")
depends_on("cuda@11.4:", when="@0.4.0:0.4.7+cuda")
depends_on("cuda@11.1:", when="@0.3+cuda")
# https://github.com/google/jax/issues/12614
depends_on("cuda@11.1:11.7.0", when="@0.1+cuda")
depends_on("cudnn@8.2:", when="@0.4:+cuda")
depends_on("cudnn@8.8:", when="@0.4.11:+cuda")
depends_on("cudnn@8.2:", when="@0.4:0.4.7+cuda")
depends_on("cudnn@8.0.5:", when="+cuda")
# Historical dependencies
@@ -83,7 +100,7 @@ class PyJaxlib(PythonPackage, CudaPackage):
)
# https://github.com/google/jax/issues/19992
conflicts("@0.4.16:0.4.25", when="target=ppc64le:")
conflicts("@0.4.4:", when="target=ppc64le:")
def patch(self):
self.tmp_path = tempfile.mkdtemp(prefix="spack")

View File

@@ -52,3 +52,8 @@ class PyPymatgen(PythonPackage):
depends_on("py-uncertainties@3.1.4:", when="@2021.1.1:", type=("build", "run"))
depends_on("py-pybtex", when="@2022.1.9:", type=("build", "run"))
depends_on("py-tqdm", when="@2022.1.9:", type=("build", "run"))
# <<< manual changes
# https://github.com/materialsproject/pymatgen/commit/29b5b909e109cb04d4b118d0de5b3929819b9378
depends_on("py-cython@:2", when="@:2023.7.16", type="build")
# manual changes >>>

View File

@@ -24,3 +24,8 @@ class PyTatsu(PythonPackage):
depends_on("py-setuptools", type="build")
# optional dependency, otherwise falls back to standard implementation
depends_on("py-regex@2018.8:", type=("build", "run"), when="+future_regex")
# <<< manual changes
# https://github.com/neogeny/TatSu/commit/a4fd84a2785fb0820ed65fe80ebd768458643b66
depends_on("python@:3.9", type=("build", "run"), when="@:4")
# manual changes >>>

View File

@@ -19,5 +19,6 @@ class PyTriton(PythonPackage):
depends_on("py-setuptools@40.8:", type="build")
depends_on("cmake@3.18:", type="build")
depends_on("py-filelock", type=("build", "run"))
depends_on("zlib-api", type="link")
build_directory = "python"

View File

@@ -54,7 +54,7 @@ class Rivet(AutotoolsPackage):
depends_on("hepmc", when="hepmc=2")
depends_on("hepmc3", when="hepmc=3")
depends_on("fastjet")
depends_on("fastjet plugins=cxx")
depends_on("fastjet@3.4.0:", when="@3.1.7:")
depends_on("fjcontrib")
depends_on("python", type=("build", "run"))