Compare commits

...

29 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
Massimiliano Culpo
f9065f0c7e Remove "get_compiler_duplicates" (#46077)
This function is used only in tests.
2024-08-29 06:53:17 +02:00
etiennemlb
699735016f Add more compiler leniency (#46083) 2024-08-28 16:33:26 -07:00
Arne Becker
ec85bbe3f7 perl-compress-bzip2: new package (#46055)
* perl-compress-bzip2: new package
  Adds Compress::Bzip2
* Use bzip2 from Spack, not system
2024-08-28 13:57:01 -07:00
Taillefumier Mathieu
7e1ad8f321 [Update] New version of sirius (#46049) 2024-08-28 13:38:06 -07:00
Derek Ryan Strong
0eb8f4f0f9 pmix: add v5.0.3 and fix variants (#45621)
* Add pmix v5.0.3 and fix variants
* Update pmix homepage link
* pmix: Simplify/update hwloc dependency
* pmix: Update versions for --disable-sphinx configure option
* pmix: Add munge variant
* pmix: Add zlib dependency
* pmix: Fix dependency py-sphinx@5
2024-08-28 12:59:48 -07:00
renjithravindrankannath
ee27dc5d45 llvm-amdgpu: Updating LD_LIBRARY_PATH w.r.t new prefix path (#45940)
* Updating LD_LIBRARY_PATH w.r.t new prefix path

* Updating hsa external path for 6.x
2024-08-28 11:26:05 -07:00
Robert Underwood
ec0a57cba4 py-numcodecs rename git branch to match upstream (#46085)
* py-numcodecs rename git branch to match upstream
2024-08-28 19:16:23 +02:00
Jordan Galby
4c91e6245c Don't check checksums on spack-develop packages (#46076)
Fix regression introduced in spack 0.22.1 where Spack would ask about checksums
on spack-develop packages.
2024-08-28 17:07:30 +00:00
Satish Balay
6a1dfbda97 mfem, pflotran, alquimia: remove old versions with xsdk string (in version) that were used in old/removed xsdk releases (#45837) 2024-08-28 10:03:51 -07:00
Jordan Galby
6b0011c8f1 For "when:" and install_environment.json: Support fully qualified hostname (#45522) 2024-08-28 18:38:54 +02:00
Nicholas Sly
8b5521ec0a Replace unparsable apostrophe character with ASCII "'". (#46069) 2024-08-28 18:34:06 +02:00
Mikael Simberg
b9e4e98f15 boost: install BoostConfig.cmake even when header-only (#46062)
* Install BoostConfig.cmake even when header-only

* boost: Only use --without-libraries when --with-libraries would have an empty list
2024-08-28 17:44:02 +02:00
Harmen Stoppels
85487f23bc buildcache.py: elide string not spec (#46074) 2024-08-28 15:27:44 +02:00
37 changed files with 275 additions and 170 deletions

View File

@@ -893,8 +893,9 @@ The valid variables for a ``when`` clause are:
#. ``env``. The user environment (usually ``os.environ`` in Python).
#. ``hostname``. The hostname of the system (if ``hostname`` is an
executable in the user's PATH).
#. ``hostname``. The hostname of the system.
#. ``full_hostname``. The fully qualified hostname of the system.
^^^^^^^^^^^^^^^^^^^^^^^^
SpecLists as Constraints

View File

@@ -843,20 +843,19 @@ def uniq(sequence):
return uniq_list
def elide_list(line_list, max_num=10):
def elide_list(line_list: List[str], max_num: int = 10) -> List[str]:
"""Takes a long list and limits it to a smaller number of elements,
replacing intervening elements with '...'. For example::
elide_list([1,2,3,4,5,6], 4)
elide_list(["1", "2", "3", "4", "5", "6"], 4)
gives::
[1, 2, 3, '...', 6]
["1", "2", "3", "...", "6"]
"""
if len(line_list) > max_num:
return line_list[: max_num - 1] + ["..."] + line_list[-1:]
else:
return line_list
return [*line_list[: max_num - 1], "...", line_list[-1]]
return line_list
@contextlib.contextmanager

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

@@ -460,7 +460,7 @@ def push_fn(args):
"The following {} specs were skipped as they already exist in the buildcache:\n"
" {}\n"
" Use --force to overwrite them.".format(
len(skipped), ", ".join(elide_list(skipped, 5))
len(skipped), ", ".join(elide_list([_format_spec(s) for s in skipped], 5))
)
)

View File

@@ -599,24 +599,6 @@ def compiler_for_spec(compiler_spec, arch_spec):
return compilers[0]
@_auto_compiler_spec
def get_compiler_duplicates(compiler_spec, arch_spec):
config = spack.config.CONFIG
scope_to_compilers = {}
for scope in config.scopes:
compilers = compilers_for_spec(compiler_spec, arch_spec=arch_spec, scope=scope)
if compilers:
scope_to_compilers[scope] = compilers
cfg_file_to_duplicates = {}
for scope, compilers in scope_to_compilers.items():
config_file = config.get_config_filename(scope, "compilers")
cfg_file_to_duplicates[config_file] = compilers
return cfg_file_to_duplicates
@llnl.util.lang.memoized
def class_for_compiler_name(compiler_name):
"""Given a compiler module name, get the corresponding Compiler class."""

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

@@ -1467,6 +1467,7 @@ def do_fetch(self, mirror_only=False):
checksum
and (self.version not in self.versions)
and (not isinstance(self.version, GitVersion))
and ("dev_path" not in self.spec.variants)
):
tty.warn(
"There is no checksum on file to fetch %s safely."

View File

@@ -4892,6 +4892,7 @@ def get_host_environment() -> Dict[str, Any]:
"architecture": arch_spec,
"arch_str": str(arch_spec),
"hostname": socket.gethostname(),
"full_hostname": socket.getfqdn(),
}

View File

@@ -42,25 +42,6 @@ def test_multiple_conflicting_compiler_definitions(mutable_config):
assert cmp.f77 == "f77"
def test_get_compiler_duplicates(mutable_config, compiler_factory):
# In this case there is only one instance of the specified compiler in
# the test configuration (so it is not actually a duplicate), but the
# method behaves the same.
cnl_compiler = compiler_factory(spec="gcc@4.5.0", operating_system="CNL")
# CNL compiler has no target attribute, and this is essential to make detection pass
del cnl_compiler["compiler"]["target"]
mutable_config.set(
"compilers", [compiler_factory(spec="gcc@4.5.0", operating_system="SuSE11"), cnl_compiler]
)
cfg_file_to_duplicates = spack.compilers.get_compiler_duplicates(
"gcc@4.5.0", spack.spec.ArchSpec("cray-CNL-xeon")
)
assert len(cfg_file_to_duplicates) == 1
cfg_file, duplicates = next(iter(cfg_file_to_duplicates.items()))
assert len(duplicates) == 1
def test_compiler_flags_from_config_are_grouped():
compiler_entry = {
"spec": "intel@17.0.2",

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

@@ -21,8 +21,6 @@ class Alquimia(CMakePackage):
version("1.1.0", commit="211931c3e76b1ae7cdb48c46885b248412d6fe3d") # tag v1.1.0
version("1.0.10", commit="b2c11b6cde321f4a495ef9fcf267cb4c7a9858a0") # tag v.1.0.10
version("1.0.9", commit="2ee3bcfacc63f685864bcac2b6868b48ad235225") # tag v.1.0.9
version("xsdk-0.6.0", commit="9a0aedd3a927d4d5e837f8fd18b74ad5a78c3821")
version("xsdk-0.5.0", commit="8397c3b00a09534c5473ff3ab21f0e32bb159380")
depends_on("c", type="build") # generated
depends_on("cxx", type="build") # generated
@@ -35,8 +33,6 @@ class Alquimia(CMakePackage):
depends_on("pflotran@5.0.0", when="@1.1.0")
depends_on("pflotran@4.0.1", when="@1.0.10")
depends_on("pflotran@3.0.2", when="@1.0.9")
depends_on("pflotran@xsdk-0.6.0", when="@xsdk-0.6.0")
depends_on("pflotran@xsdk-0.5.0", when="@xsdk-0.5.0")
depends_on("pflotran@develop", when="@develop")
depends_on("petsc@3.10:", when="@develop")

View File

@@ -497,7 +497,7 @@ def bjam_python_line(self, spec):
spec["python"].libs[0],
)
def determine_bootstrap_options(self, spec, with_libs, options):
def determine_bootstrap_options(self, spec, with_libs, without_libs, options):
boost_toolset_id = self.determine_toolset(spec)
# Arm compiler bootstraps with 'gcc' (but builds as 'clang')
@@ -505,7 +505,10 @@ def determine_bootstrap_options(self, spec, with_libs, options):
options.append("--with-toolset=gcc")
else:
options.append("--with-toolset=%s" % boost_toolset_id)
options.append("--with-libraries=%s" % ",".join(with_libs))
if with_libs:
options.append("--with-libraries=%s" % ",".join(with_libs))
else:
options.append("--without-libraries=%s" % ",".join(without_libs))
if spec.satisfies("+python"):
options.append("--with-python=%s" % spec["python"].command.path)
@@ -677,43 +680,46 @@ def install(self, spec, prefix):
env["PATH"] = newdir + ":" + env["PATH"]
with_libs = list()
without_libs = list()
for lib in Boost.all_libs:
if "+{0}".format(lib) in spec:
with_libs.append(lib)
else:
without_libs.append(lib)
remove_if_in_list = lambda lib, libs: libs.remove(lib) if lib in libs else None
# Remove libraries that the release version does not support
if spec.satisfies("@1.69.0:") and "signals" in with_libs:
with_libs.remove("signals")
if not spec.satisfies("@1.54.0:") and "log" in with_libs:
with_libs.remove("log")
if not spec.satisfies("@1.53.0:") and "atomic" in with_libs:
with_libs.remove("atomic")
if not spec.satisfies("@1.48.0:") and "locale" in with_libs:
with_libs.remove("locale")
if not spec.satisfies("@1.47.0:") and "chrono" in with_libs:
with_libs.remove("chrono")
if not spec.satisfies("@1.43.0:") and "random" in with_libs:
with_libs.remove("random")
if not spec.satisfies("@1.39.0:") and "exception" in with_libs:
with_libs.remove("exception")
if spec.satisfies("@1.69.0:"):
remove_if_in_list("signals", with_libs)
remove_if_in_list("signals", without_libs)
if not spec.satisfies("@1.54.0:"):
remove_if_in_list("log", with_libs)
remove_if_in_list("log", without_libs)
if not spec.satisfies("@1.53.0:"):
remove_if_in_list("atomic", with_libs)
remove_if_in_list("atomic", without_libs)
if not spec.satisfies("@1.48.0:"):
remove_if_in_list("locale", with_libs)
remove_if_in_list("locale", without_libs)
if not spec.satisfies("@1.47.0:"):
remove_if_in_list("chrono", with_libs)
remove_if_in_list("chrono", without_libs)
if not spec.satisfies("@1.43.0:"):
remove_if_in_list("random", with_libs)
remove_if_in_list("random", without_libs)
if not spec.satisfies("@1.39.0:"):
remove_if_in_list("exception", with_libs)
remove_if_in_list("exception", without_libs)
if spec.satisfies("+graph") and spec.satisfies("+mpi"):
with_libs.append("graph_parallel")
if not with_libs:
# if no libraries are specified for compilation, then you dont have
# to configure/build anything, just copy over to the prefix
# directory.
src = join_path(self.stage.source_path, "boost")
mkdirp(join_path(prefix, "include"))
dst = join_path(prefix, "include", "boost")
install_tree(src, dst)
return
remove_if_in_list("graph_parallel", without_libs)
# to make Boost find the user-config.jam
env["BOOST_BUILD_PATH"] = self.stage.source_path
bootstrap_options = ["--prefix=%s" % prefix]
self.determine_bootstrap_options(spec, with_libs, bootstrap_options)
self.determine_bootstrap_options(spec, with_libs, without_libs, bootstrap_options)
if self.spec.satisfies("platform=windows"):
bootstrap = Executable("cmd.exe")

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

@@ -276,7 +276,7 @@ class Cp2k(MakefilePackage, CMakePackage, CudaPackage, ROCmPackage):
depends_on("sirius@7.3:", when="@9.1")
depends_on("sirius@7.4:7.5", when="@2023.2")
depends_on("sirius@7.5:", when="@2024.1:")
depends_on("sirius@7.6: +pugixml", when="@2024.2:")
with when("+libvori"):
depends_on("libvori@201219:", when="@8.1")
depends_on("libvori@210412:", when="@8.2:")

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

@@ -359,6 +359,9 @@ def get_paths(self):
if self.spec.satisfies("@5.7:"):
paths["hip-path"] = rocm_prefix
if self.spec.satisfies("@6.0:"):
paths["hsa-rocr-dev"] = rocm_prefix
else:
paths = {
"hip-path": self.spec.prefix,

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

@@ -274,12 +274,12 @@ def cmake_args(self):
# Make sure that the compiler paths are in the LD_LIBRARY_PATH
def setup_run_environment(self, env):
llvm_amdgpu_home = self.spec["llvm-amdgpu"].prefix
env.prepend_path("LD_LIBRARY_PATH", llvm_amdgpu_home + "/llvm/lib")
env.prepend_path("LD_LIBRARY_PATH", llvm_amdgpu_home + "/lib")
# Make sure that the compiler paths are in the LD_LIBRARY_PATH
def setup_dependent_run_environment(self, env, dependent_spec):
llvm_amdgpu_home = self.spec["llvm-amdgpu"].prefix
env.prepend_path("LD_LIBRARY_PATH", llvm_amdgpu_home + "/llvm/lib")
env.prepend_path("LD_LIBRARY_PATH", llvm_amdgpu_home + "/lib")
# Required for enabling asan on dependent packages
def setup_dependent_build_environment(self, env, dependent_spec):

View File

@@ -106,9 +106,6 @@ class Mfem(Package, CudaPackage, ROCmPackage):
extension="tar.gz",
)
# Tagged development version used by xSDK
version("4.0.1-xsdk", commit="c55c80d17b82d80de04b849dd526e17044f8c99a")
version(
"4.0.0",
sha256="df5bdac798ea84a263979f6fbf79de9013e1c55562f95f98644c3edcacfbc727",
@@ -309,8 +306,8 @@ class Mfem(Package, CudaPackage, ROCmPackage):
depends_on("sundials@2.7.0+mpi+hypre", when="@:3.3.0+sundials+mpi")
depends_on("sundials@2.7.0:", when="@3.3.2:+sundials~mpi")
depends_on("sundials@2.7.0:+mpi+hypre", when="@3.3.2:+sundials+mpi")
depends_on("sundials@5.0.0:5", when="@4.0.1-xsdk:4.4+sundials~mpi")
depends_on("sundials@5.0.0:5+mpi+hypre", when="@4.0.1-xsdk:4.4+sundials+mpi")
depends_on("sundials@5.0.0:5", when="@4.1.0:4.4+sundials~mpi")
depends_on("sundials@5.0.0:5+mpi+hypre", when="@4.1.0:4.4+sundials+mpi")
depends_on("sundials@5.0.0:6.7.0", when="@4.5.0:+sundials~mpi")
depends_on("sundials@5.0.0:6.7.0+mpi+hypre", when="@4.5.0:+sundials+mpi")
conflicts("cxxstd=11", when="^sundials@6.4.0:")

View File

@@ -74,10 +74,15 @@ class Mgard(CMakePackage, CudaPackage):
def flag_handler(self, name, flags):
if name == "cxxflags":
if self.spec.satisfies("@2020-10-01 %oneapi@2023:"):
flags.append("-Wno-error=c++11-narrowing")
if self.spec.satisfies("@2020-10-01 %apple-clang@15:"):
flags.append("-Wno-error=c++11-narrowing")
for a_spec in [
"@2020-10-01 %oneapi@2023:",
"@2020-10-01 %apple-clang@15:",
"@2020-10-01 %aocc@3:",
"@2020-10-01 %cce@15:",
"@2020-10-01 %rocmcc@4:",
]:
if self.spec.satisfies(a_spec):
flags.append("-Wno-error=c++11-narrowing")
return (flags, None, None)
def cmake_args(self):

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

@@ -0,0 +1,35 @@
# 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 PerlCompressBzip2(PerlPackage):
"""Interface to Bzip2 compression library"""
homepage = "https://metacpan.org/pod/Compress::Bzip2"
url = "https://cpan.metacpan.org/authors/id/R/RU/RURBAN/Compress-Bzip2-2.28.tar.gz"
maintainers("EbiArnie")
license("Artistic-1.0-Perl OR GPL-1.0-or-later")
version("2.28", sha256="859f835c3f5c998810d8b2a6f9e282ff99d6cb66ccfa55cae7e66dafb035116e")
depends_on("c", type="build")
depends_on("bzip2", type=("build", "test", "run"))
def setup_build_environment(self, env):
env.set("BZLIB_INCLUDE", self.spec["bzip2"].prefix.include)
env.set("BZLIB_LIB", self.spec["bzip2"].prefix.lib)
env.set("BZLIB_BIN", self.spec["bzip2"].prefix.bin)
def test_use(self):
"""Test 'use module'"""
options = ["-we", 'use strict; use Compress::Bzip2; print("OK\n")']
perl = self.spec["perl"].command
out = perl(*options, output=str.split, error=str.split)
assert "OK" in out

View File

@@ -23,10 +23,6 @@ class Pflotran(AutotoolsPackage):
version("5.0.0", commit="f0fe931c72c03580e489724afeb8c5451406b942") # tag v5.0.0
version("4.0.1", commit="fd351a49b687e27f46eae92e9259156eea74897d") # tag v4.0.1
version("3.0.2", commit="9e07f416a66b0ad304c720b61aa41cba9a0929d5") # tag v3.0.2
version("xsdk-0.6.0", commit="46e14355c1827c057f2e1b3e3ae934119ab023b2")
version("xsdk-0.5.0", commit="98a959c591b72f73373febf5f9735d2c523b4c20")
version("xsdk-0.4.0", commit="c851cbc94fc56a32cfdb0678f3c24b9936a5584e")
version("xsdk-0.3.0", branch="release/xsdk-0.3.0")
depends_on("c", type="build") # generated
depends_on("cxx", type="build") # generated
@@ -40,10 +36,6 @@ class Pflotran(AutotoolsPackage):
depends_on("petsc@3.20:+hdf5+metis", when="@5.0.0")
depends_on("petsc@3.18:+hdf5+metis", when="@4.0.1")
depends_on("petsc@3.16:+hdf5+metis", when="@3.0.2")
depends_on("petsc@3.14:+hdf5+metis", when="@xsdk-0.6.0")
depends_on("petsc@3.12:+hdf5+metis", when="@xsdk-0.5.0")
depends_on("petsc@3.10:+hdf5+metis", when="@xsdk-0.4.0")
depends_on("petsc@3.8.0:+hdf5+metis", when="@xsdk-0.3.0")
# https://github.com/spack/spack/pull/37579#issuecomment-1545998141
conflicts("^hdf5@1.14.1", when="%oneapi")
@@ -55,10 +47,6 @@ def build(self, spec, prefix):
else:
make("all")
@property
def parallel(self):
return self.spec.satisfies("@xsdk-0.4.0:")
def flag_handler(self, name, flags):
if "%gcc@10:" in self.spec and name == "fflags":
flags.append("-fallow-argument-mismatch")

View File

@@ -31,16 +31,16 @@ class Pmix(AutotoolsPackage):
while maintaining strict separation between it and the standard
itself."""
homepage = "https://pmix.org"
url = "https://github.com/pmix/pmix/releases/download/v3.1.3/pmix-3.1.3.tar.bz2"
homepage = "https://openpmix.github.io/"
url = "https://github.com/openpmix/openpmix/releases/download/v5.0.3/pmix-5.0.3.tar.bz2"
git = "https://github.com/openpmix/openpmix.git"
maintainers("rhc54")
license("BSD-3-Clause-Open-MPI")
# Branches 4.2 & 5.0 will also need submodules
version("master", branch="master", submodules=True)
version("5.0.3", sha256="3f779434ed59fc3d63e4f77f170605ac3a80cd40b1f324112214b0efbdc34f13")
version("5.0.2", sha256="28227ff2ba925da2c3fece44502f23a91446017de0f5a58f5cea9370c514b83c")
version("5.0.1", sha256="d4371792d4ba4c791e1010100b4bf9a65500ababaf5ff25d681f938527a67d4a")
version("5.0.0", sha256="92a85c4946346816c297ac244fbaf4f723bba87fb7e4424a057c2dabd569928d")
@@ -154,40 +154,46 @@ class Pmix(AutotoolsPackage):
deprecated=True,
)
depends_on("c", type="build") # generated
variant(
"pmi_backwards_compatibility",
default=True,
description="Toggle pmi backwards compatibility",
)
variant("docs", default=False, when="@master", description="Build documentation")
variant("munge", default=False, description="Enable MUNGE support")
variant("python", default=False, when="@4.1.2:", description="Enable Python bindings")
variant(
"restful",
default=False,
when="@4:",
description="Allow a PMIx server to request services from " "a system-level REST server",
description="Allow a PMIx server to request services from a system-level REST server",
)
variant(
"pmi_backwards_compatibility",
default=True,
when="@1.2.5:3",
description="Enable PMI backwards compatibility",
)
variant("python", default=False, when="@4.1.2:", description="Enable python bindings")
variant("docs", default=False, description="Build manpages")
depends_on("m4", type="build", when="@master")
depends_on("autoconf", type="build", when="@master")
depends_on("automake", type="build", when="@master")
depends_on("libtool", type="build", when="@master")
depends_on("perl", type="build", when="@master")
depends_on("pandoc", type="build", when="+docs")
depends_on("c", type="build")
depends_on("pkgconfig", type="build")
depends_on("m4", type="build", when="@master")
depends_on("autoconf@2.69:", type="build", when="@master")
depends_on("automake@1.13.4:", type="build", when="@master")
depends_on("libtool@2.4.2:", type="build", when="@master")
depends_on("flex@2.5.39:", type="build", when="@master")
depends_on("perl", type="build", when="@master")
depends_on("python@3.7:", type="build", when="+docs")
depends_on("py-sphinx@5:", type="build", when="+docs")
depends_on("py-recommonmark", type="build", when="+docs")
depends_on("py-docutils", type="build", when="+docs")
depends_on("py-sphinx-rtd-theme", type="build", when="+docs")
depends_on("libevent@2.0.20:")
depends_on("hwloc@1.0:1", when="@:2")
depends_on("hwloc@1.11:1,2:", when="@3:")
depends_on("hwloc@1.11:", when="@3:")
depends_on("hwloc@1", when="@:2")
depends_on("zlib-api", when="@2:")
depends_on("curl", when="+restful")
depends_on("jansson@2.11:", when="+restful")
depends_on("python", when="+python")
depends_on("py-cython", when="+python")
depends_on("py-setuptools", when="+python")
depends_on("munge", when="+munge")
def autoreconf(self, spec, prefix):
"""Only needed when building from git checkout"""
@@ -213,7 +219,13 @@ def find_external_lib_path(self, pkg_name, path_match_str=""):
def configure_args(self):
spec = self.spec
config_args = ["--enable-shared", "--enable-static", "--disable-sphinx", "--without-munge"]
config_args = ["--enable-shared", "--enable-static"]
if spec.satisfies("~docs") or spec.satisfies("@4.2.3:5"):
config_args.append("--disable-sphinx")
if spec.satisfies("@2:"):
config_args.append("--with-zlib=" + spec["zlib-api"].prefix)
config_args.append("--with-libevent=" + spec["libevent"].prefix)
config_args.append("--with-hwloc=" + spec["hwloc"].prefix)
@@ -233,15 +245,21 @@ def configure_args(self):
config_args.extend(self.enable_or_disable("python-bindings", variant="python"))
if spec.satisfies("+munge"):
config_args.append("--with-munge=" + spec["munge"].prefix)
else:
config_args.append("--without-munge")
if spec.satisfies("+restful"):
config_args.append("--with-curl=" + spec["curl"].prefix)
config_args.append("--with-jansson=" + spec["jansson"].prefix)
config_args.extend(
self.enable_or_disable(
"pmi-backward-compatibility", variant="pmi_backwards_compatibility"
)
)
if "~docs" in self.spec:
config_args.append("--disable-man-pages")
# Versions < 2.1.1 have a bug in the test code that *sometimes*
# causes problems on strict alignment architectures such as
# aarch64. Work-around is to just not build the test code.

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

@@ -22,7 +22,8 @@ class PyNumcodecs(PythonPackage):
license("MIT")
version("master", branch="master", submodules=True)
version("main", branch="main", submodules=True)
version("master", branch="main", submodules=True, deprecated=True)
version("0.11.0", sha256="6c058b321de84a1729299b0eae4d652b2e48ea1ca7f9df0da65cb13470e635eb")
version("0.7.3", sha256="022b12ad83eb623ec53f154859d49f6ec43b15c36052fa864eaf2d9ee786dd85")
version("0.6.4", sha256="ef4843d5db4d074e607e9b85156835c10d006afc10e175bda62ff5412fca6e4d")

View File

@@ -185,7 +185,7 @@ class Raja(CachedCMakePackage, CudaPackage, ROCmPackage):
# and remove the +tests conflict below.
variant("tests", default=False, description="Build tests")
# we dont use variants to express the failing test, we only add a variant to
# we don't use variants to express the failing test, we only add a variant to
# define whether we want to run all the tests (including those known to fail)
# or only the passing ones.
variant(

View File

@@ -23,6 +23,7 @@ class Sirius(CMakePackage, CudaPackage, ROCmPackage):
version("develop", branch="develop")
version("master", branch="master")
version("7.6.0", sha256="e424206fecb35bb2082b5c87f0865a9536040e984b88b041e6f7d531f8a65b20")
version("7.5.2", sha256="9ae01935578532c84f1d0d673dbbcdd490e26be22efa6c4acf7129f9dc1a0c60")
version("7.5.1", sha256="aadfa7976e90a109aeb1677042454388a8d1a50d75834d59c86c8aef06bc12e4")
version("7.5.0", sha256="c583f88ffc02e9acac24e786bc35c7c32066882d2f70a1e0c14b5780b510365d")

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")