Compare commits

...

16 Commits

Author SHA1 Message Date
Harmen Stoppels
bf17cd8dd6 vtk: lzma patch for v9.0 2024-08-30 10:16:18 +02:00
Harmen Stoppels
4b54e72351 troubleshoot further.. 2024-08-30 10:03:19 +02:00
Harmen Stoppels
199cbce5ef windows-vis: vtk~mpi (#46133) 2024-08-30 09:38:41 +02:00
Massimiliano Culpo
82dea7e6ce mpitrampoline: fix wrong use of compiler.cc_names (#46038) 2024-08-30 07:50:09 +02:00
Harmen Stoppels
bd71ce5856 cray: allow failure due to broken blas (#46111)
1. libsci_cray.so is broken, as it fails to list `libdl.so` in
   DT_NEEDED.
2. cray compilers fail to build a different blas
2024-08-30 07:49:10 +02:00
Mark Abraham
73fc86cbc3 gromacs: support version 2024.3 (#46117) 2024-08-29 17:38:04 -06:00
Chris White
3589edcc6d conduit package: Honor compiler extra_rpaths + extras (#46046)
- Honor compiler extra_rpaths (this build bypasses spack wrappers,
  so the RPATHs are added explicitly as CMake options)
- Use root_cmakelists_dir instead of adding it to the command line
- Add BLT as a dependency, allowing different versions outside of what
  is in the tarball
- Put a copy of host-config in the stage directory: this allows
  examination of the host-config when a build fails (before, the
  host-config was just stored in the install directory, which is
  deleted by default on a failed build)
2024-08-29 13:59:15 -07:00
Chris Marsh
cade66d842 CMakePackage: Set policy CMP0042 NEW on macos (#46114)
so linking to shared libraries works well at runtime on darwin for all packages with cmake_minimum_required < 3.
2024-08-29 18:49:53 +00:00
Louise Spellacy
c5766aa757 linaro-forge: added 24.0.4 version (#46112)
Updated platform.machine() to only match "aarch64".
"arm64" not supported by "spack arch"
2024-08-29 12:33:49 -06:00
Harmen Stoppels
c3e9bd4fbf spectrum-mpi: no windows (#46119) 2024-08-29 20:04:33 +02:00
Harmen Stoppels
05357052ac py-greenlet: add missing forward compat bound (#46113) 2024-08-29 17:55:26 +02:00
Harmen Stoppels
dc3f5cd606 windows_establish_runtime_linkage: post install hook (#46103) 2024-08-29 17:16:36 +02:00
Alberto Invernizzi
9a16927993 paraview: add cdi support (#44222)
* add basic CDI package

* add CDI variant to paraview

* [@spackbot] updating style on behalf of albestro

---------

Co-authored-by: albestro <albestro@users.noreply.github.com>
2024-08-29 14:19:04 +02:00
Wouter Deconinck
093b273f5c py-mypy: add v1.11.2 (#46099) 2024-08-29 05:46:36 -06:00
Tamara Dahlgren
b6ff126494 Executable: make the timeout message readable (#46098) 2024-08-29 11:46:15 +00:00
Harmen Stoppels
fe8f631b7d tau: fix (cray) compiler names/paths (#46104)
fixes a build issue on cray ci
2024-08-29 11:24:58 +02:00
17 changed files with 129 additions and 39 deletions

View File

@@ -2561,7 +2561,6 @@ def install_root_node(spec, unsigned=False, force=False, sha256=None):
with spack.util.path.filter_padding():
tty.msg('Installing "{0}" from a buildcache'.format(spec.format()))
extract_tarball(spec, download_result, force)
spec.package.windows_establish_runtime_linkage()
spack.hooks.post_install(spec, False)
spack.store.STORE.db.add(spec, spack.store.STORE.layout)

View File

@@ -108,6 +108,11 @@ def _conditional_cmake_defaults(pkg: spack.package_base.PackageBase, args: List[
if _supports_compilation_databases(pkg):
args.append(CMakeBuilder.define("CMAKE_EXPORT_COMPILE_COMMANDS", True))
# Enable MACOSX_RPATH by default when cmake_minimum_required < 3
# https://cmake.org/cmake/help/latest/policy/CMP0042.html
if pkg.spec.satisfies("platform=darwin") and cmake.satisfies("@3:"):
args.append(CMakeBuilder.define("CMAKE_POLICY_DEFAULT_CMP0042", "NEW"))
def generator(*names: str, default: Optional[str] = None):
"""The build system generator to use.

View File

@@ -488,7 +488,6 @@ def _process_binary_cache_tarball(
with timer.measure("install"), spack.util.path.filter_padding():
binary_distribution.extract_tarball(pkg.spec, download_result, force=False, timer=timer)
pkg.windows_establish_runtime_linkage()
if hasattr(pkg, "_post_buildcache_install_hook"):
pkg._post_buildcache_install_hook()

View File

@@ -275,9 +275,9 @@ def streamify(arg, mode):
long_msg = cmd_line_string + f"\n{result}"
if fail_on_error:
raise ProcessTimeoutError(
f"\nProcess timed out after {timeout}s"
f"We expected the following command to run quickly but\
it did not, please report this as an issue: {long_msg}",
f"\nProcess timed out after {timeout}s. "
"We expected the following command to run quickly but it did not, "
f"please report this as an issue: {long_msg}",
long_message=long_msg,
) from te

View File

@@ -885,6 +885,7 @@ e4s-cray-rhel-generate:
extends: [ ".generate-cray-rhel", ".e4s-cray-rhel" ]
e4s-cray-rhel-build:
allow_failure: true # libsci_cray.so broken, misses DT_NEEDED for libdl.so
extends: [ ".build", ".e4s-cray-rhel" ]
trigger:
include:
@@ -907,6 +908,7 @@ e4s-cray-sles-generate:
extends: [ ".generate-cray-sles", ".e4s-cray-sles" ]
e4s-cray-sles-build:
allow_failure: true # libsci_cray.so broken, misses DT_NEEDED for libdl.so
extends: [ ".build", ".e4s-cray-sles" ]
trigger:
include:

View File

@@ -6,7 +6,7 @@
spack:
view: false
specs:
- vtk
- vtk~mpi
cdash:
build-group: Windows Visualization (Kitware)

View File

@@ -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 Cdi(AutotoolsPackage):
"""
CDI is a C and Fortran Interface to access Climate and NWP model Data.
Supported data formats are GRIB, netCDF, SERVICE, EXTRA and IEG.
"""
homepage = "https://code.mpimet.mpg.de/projects/cdi"
url = "https://code.mpimet.mpg.de/attachments/download/29309/cdi-2.4.0.tar.gz"
version("2.4.0", sha256="91fca015b04c6841b9eab8b49e7726d35e35b9ec4350922072ec6e9d5eb174ef")
variant(
"netcdf", default=True, description="This is needed to read/write NetCDF files with CDI"
)
depends_on("netcdf-c", when="+netcdf")
def configure_args(self):
args = []
if "+netcdf" in self.spec:
args.append("--with-netcdf=" + self.spec["netcdf-c"].prefix)
return args

View File

@@ -14,7 +14,7 @@
from spack.package import *
def cmake_cache_entry(name, value, vtype=None):
def cmake_cache_entry(name, value, vtype=None, force=False):
"""
Helper that creates CMake cache entry strings used in
'host-config' files.
@@ -24,7 +24,8 @@ def cmake_cache_entry(name, value, vtype=None):
vtype = "BOOL"
else:
vtype = "PATH"
return 'set({0} "{1}" CACHE {2} "")\n\n'.format(name, value, vtype)
force_str = " FORCE" if force else ""
return 'set({0} "{1}" CACHE {2} ""{3})\n\n'.format(name, value, vtype, force_str)
class Conduit(CMakePackage):
@@ -76,6 +77,8 @@ class Conduit(CMakePackage):
maintainers("cyrush")
root_cmakelists_dir = "src"
###########################################################################
# package variants
###########################################################################
@@ -121,6 +124,12 @@ class Conduit(CMakePackage):
# package dependencies
###########################################################################
#######################
# BLT
#######################
depends_on("blt", type="build")
depends_on("blt@0.6.2:", type="build", when="@0.9:")
#######################
# CMake
#######################
@@ -245,7 +254,7 @@ def url_for_version(self, version):
def cmake_args(self):
host_config = self._get_host_config_path(self.spec)
options = []
options.extend(["-C", host_config, "../spack-src/src/"])
options.extend(["-C", host_config])
return options
@run_after("build")
@@ -255,6 +264,13 @@ def build_test(self):
print("Running Conduit Unit Tests...")
make("test")
# Copy the generated host-config to install directory for downstream use
@run_before("install")
def copy_host_config(self):
src = self._get_host_config_path(self.spec)
dst = join_path(self.spec.prefix, os.path.basename(src))
copy(src, dst)
@run_after("install")
@on_package_attributes(run_tests=True)
def check_install(self):
@@ -291,7 +307,8 @@ def _get_host_config_path(self, spec):
host_config_path = "{0}-{1}-{2}-conduit-{3}.cmake".format(
socket.gethostname(), sys_type, spec.compiler, spec.dag_hash()
)
dest_dir = spec.prefix
dest_dir = self.stage.source_path
host_config_path = os.path.abspath(join_path(dest_dir, host_config_path))
return host_config_path
@@ -392,15 +409,31 @@ def hostconfig(self):
if fflags:
cfg.write(cmake_cache_entry("CMAKE_Fortran_FLAGS", fflags))
# Add various rpath linker flags
rpaths = []
if self.compiler.extra_rpaths:
rpaths += self.compiler.extra_rpaths
# Note: This is not needed if we add `extra_rpaths` to this compiler spec case
if (f_compiler is not None) and ("gfortran" in f_compiler) and ("clang" in cpp_compiler):
libdir = os.path.join(os.path.dirname(os.path.dirname(f_compiler)), "lib")
flags = ""
for _libpath in [libdir, libdir + "64"]:
if os.path.exists(_libpath):
flags += " -Wl,-rpath,{0}".format(_libpath)
description = "Adds a missing libstdc++ rpath"
if flags:
cfg.write(cmake_cache_entry("BLT_EXE_LINKER_FLAGS", flags, description))
rpaths.append(_libpath)
linkerflags = ""
for rpath in rpaths:
linkerflags += "-Wl,-rpath,{} ".format(rpath)
cfg.write(cmake_cache_entry("CMAKE_EXE_LINKER_FLAGS", linkerflags))
if spec.satisfies("+shared"):
cfg.write(cmake_cache_entry("CMAKE_SHARED_LINKER_FLAGS", linkerflags))
else:
cfg.write(cmake_cache_entry("CMAKE_STATIC_LINKER_FLAGS", linkerflags))
#######################
# BLT
#######################
cfg.write(cmake_cache_entry("BLT_SOURCE_DIR", spec["blt"].prefix))
#######################
# Examples/Utilities
@@ -436,7 +469,7 @@ def hostconfig(self):
cfg.write(cmake_cache_entry("BLT_EXE_LINKER_FLAGS", flags))
if spec.satisfies("+shared"):
flags = "${CMAKE_SHARED_LINKER_FLAGS} " + rpaths
cfg.write(cmake_cache_entry("CMAKE_SHARED_LINKER_FLAGS", flags))
cfg.write(cmake_cache_entry("CMAKE_SHARED_LINKER_FLAGS", flags, force=True))
#######################
# Python

View File

@@ -33,6 +33,7 @@ class Gromacs(CMakePackage, CudaPackage):
version("main", branch="main")
version("master", branch="main", deprecated=True)
version("2024.3", sha256="bbda056ee59390be7d58d84c13a9ec0d4e3635617adf2eb747034922cba1f029")
version("2024.2", sha256="802a7e335f2e895770f57b159e4ec368ebb0ff2ce6daccf706c6e8025c36852b")
version("2024.1", sha256="937d8f12a36fffbf2af7add71adbb5aa5c5537892d46c9a76afbecab1aa0aac7")
version("2024", sha256="04d226d52066a8bc3a42e00d6213de737b4ec292e26703065924ff01956801e2")

View File

@@ -22,7 +22,10 @@ class LinaroForge(Package):
homepage = "https://www.linaroforge.com"
maintainers("kenche-linaro")
if platform.machine() in ["aarch64", "arm64"]:
if platform.machine() == "aarch64":
version(
"24.0.4", sha256="d126e4690f7c9bf21e541721dac51dcee1f336a882211426bf98a15d80671e3d"
)
version(
"24.0.3", sha256="5030c5c23824963f82e94ed606e47cce802393fa4cb7757966818baa7012aa21"
)
@@ -91,6 +94,9 @@ class LinaroForge(Package):
"21.1.3", sha256="eecbc5686d60994c5468b2d7cd37bebe5d9ac0ba37bd1f98fbfc69b071db541e"
)
elif platform.machine() == "x86_64":
version(
"24.0.4", sha256="001e7b7cd796d8e807971b99a9ca233c24f8fcd6eee4e9b4bbb0ec8560d44f08"
)
version(
"24.0.3", sha256="1796559fb86220d5e17777215d3820f4b04aba271782276b81601d5065284526"
)

View File

@@ -84,9 +84,9 @@ def libs(self):
def setup_run_environment(self, env):
# Because MPI implementations provide compilers, they have to add to
# their run environments the code to make the compilers available.
env.set("MPITRAMPOLINE_CC", self.compiler.cc_names[0])
env.set("MPITRAMPOLINE_CXX", self.compiler.cxx_names[0])
env.set("MPITRAMPOLINE_FC", self.compiler.fc_names[0])
env.set("MPITRAMPOLINE_CC", self.compiler.cc)
env.set("MPITRAMPOLINE_CXX", self.compiler.cxx)
env.set("MPITRAMPOLINE_FC", self.compiler.fc)
env.set("MPICC", join_path(self.prefix.bin, "mpicc"))
env.set("MPICXX", join_path(self.prefix.bin, "mpicxx"))
env.set("MPIF77", join_path(self.prefix.bin, "mpifc"))

View File

@@ -88,6 +88,7 @@ class Paraview(CMakePackage, CudaPackage, ROCmPackage):
variant("adios2", default=False, description="Enable ADIOS2 support", when="@5.8:")
variant("visitbridge", default=False, description="Enable VisItBridge support")
variant("raytracing", default=False, description="Enable Raytracing support")
variant("cdi", default=False, description="Enable CDI support")
variant(
"openpmd",
default=False,
@@ -234,6 +235,8 @@ class Paraview(CMakePackage, CudaPackage, ROCmPackage):
depends_on("openimagedenoise", when="+raytracing")
depends_on("ospray +mpi", when="+raytracing +mpi")
depends_on("cdi", when="+cdi")
depends_on("bzip2")
depends_on("double-conversion")
depends_on("expat")
@@ -706,6 +709,10 @@ def use_x11():
cmake_args.append(self.define_from_variant("VTK_ENABLE_OSPRAY", "raytracing"))
cmake_args.append(self.define_from_variant("VTKOSPRAY_ENABLE_DENOISER", "raytracing"))
# CDI
cmake_args.append(self.define_from_variant("PARAVIEW_PLUGIN_ENABLE_CDIReader", "cdi"))
cmake_args.append(self.define_from_variant("PARAVIEW_PLUGIN_AUTOLOAD_CDIReader", "cdi"))
return cmake_args
def test_smoke_test(self):

View File

@@ -32,5 +32,8 @@ class PyGreenlet(PythonPackage):
depends_on("c", type="build") # generated
depends_on("cxx", type="build") # generated
depends_on("python", type=("build", "link", "run"))
with default_args(type=("build", "link", "run")):
depends_on("python")
depends_on("python@:3.11", when="@:2")
depends_on("py-setuptools", type="build")

View File

@@ -17,6 +17,7 @@ class PyMypy(PythonPackage):
license("MIT AND PSF-2.0", checked_by="tgamblin")
version("1.11.2", sha256="7f9993ad3e0ffdc95c2a14b66dee63729f021968bff8ad911867579c65d13a79")
version("1.11.1", sha256="f404a0b069709f18bbdb702eb3dcfe51910602995de00bd39cea3050b5772d08")
version("1.10.1", sha256="1f8f492d7db9e3593ef42d4f115f04e556130f2819ad33ab84551403e97dd4c0")
version("1.9.0", sha256="3cc5da0127e6a478cddd906068496a97a7618a21ce9b54bde5bf7e539c7af974")

View File

@@ -20,6 +20,8 @@ class SpectrumMpi(BundlePackage):
provides("mpi")
conflicts("platform=windows")
executables = ["^ompi_info$"]
@classmethod

View File

@@ -204,25 +204,21 @@ def set_compiler_options(self, spec):
# ('CC', 'CXX' and 'FC')
# 4 - if no -cc=<compiler> -cxx=<compiler> is passed tau is built with
# system compiler silently
# (regardless of what %<compiler> is used in the spec)
# 5 - On cray gnu compilers are not provied by self.compilers
# Checking GCC_PATH will work if spack loads the gcc module
#
# In the following we give TAU what he expects and put compilers into
# PATH
compiler_path = os.path.dirname(self.compiler.cc)
if not compiler_path and self.compiler.cc_names[0] == "gcc":
compiler_path = os.environ.get("GCC_PATH", "")
if compiler_path:
compiler_path = compiler_path + "/bin/"
os.environ["PATH"] = ":".join([compiler_path, os.environ["PATH"]])
compiler_options = [
"-c++=%s" % os.path.basename(self.compiler.cxx),
"-cc=%s" % os.path.basename(self.compiler.cc),
]
compiler_flags: Dict[str, str] = {
flag: os.path.basename(getattr(self.compiler, compiler))
for flag, compiler in (("-cc", "cc"), ("-c++", "cxx"), ("-fortran", "fc"))
if getattr(self.compiler, compiler)
}
if "+fortran" in spec and self.compiler.fc:
compiler_options.append("-fortran=%s" % os.path.basename(self.compiler.fc))
if "~fortran" in spec:
compiler_flags.pop("-fortran", None)
# tau does not understand `craycc`, `crayCC`, `crayftn`, strip off the `cray` prefix
for flag, value in compiler_flags.items():
if value.startswith("cray"):
compiler_flags[flag] = value[4:]
compiler_options = [f"{flag}={value}" for flag, value in compiler_flags.items()]
##########

View File

@@ -128,6 +128,12 @@ class Vtk(CMakePackage):
depends_on("xz")
patch("vtk_find_liblzma.patch", when="@8.2")
patch(
"https://gitlab.kitware.com/vtk/vtk/-/commit/2100772c7840a712c61952afebe84ec4cae174eb.diff",
sha256="82a7d17535e732aa97e3cf895d8728f5fb42325a0cdae5befdb3a25bdb1615eb",
when="@9.0",
)
patch("vtk_movie_link_ogg.patch", when="@8.2")
patch("vtk_use_sqlite_name_vtk_expects.patch", when="@8.2")
patch("vtk_proj_include_no_strict.patch", when="@9: platform=windows")