Compare commits
13 Commits
features/r
...
hs/fix/aud
Author | SHA1 | Date | |
---|---|---|---|
![]() |
7aaf51c36e | ||
![]() |
908095e865 | ||
![]() |
f32a756800 | ||
![]() |
34338ef757 | ||
![]() |
c0bdc37226 | ||
![]() |
8bad9fb804 | ||
![]() |
2df7cc0087 | ||
![]() |
40d40ccc52 | ||
![]() |
afe7d6c39e | ||
![]() |
113733d9fb | ||
![]() |
a8e2da5bb8 | ||
![]() |
97750189b6 | ||
![]() |
bcd40835a0 |
@@ -61,6 +61,7 @@ def _search_duplicate_compilers(error_cls):
|
||||
import spack.util.crypto
|
||||
import spack.util.spack_yaml as syaml
|
||||
import spack.variant
|
||||
import spack.version
|
||||
|
||||
#: Map an audit tag to a list of callables implementing checks
|
||||
CALLBACKS = {}
|
||||
@@ -1137,10 +1138,23 @@ def _ensure_variants_have_descriptions(pkgs, error_cls):
|
||||
return errors
|
||||
|
||||
|
||||
def _skip_version_audit(host_arch: spack.spec.ArchSpec, pkg_cls) -> bool:
|
||||
"""The version audit is skipped if a package defines skip_version_audit as True or if the
|
||||
host architecture satisfies any of the archs in the list skip_version_audit."""
|
||||
skip_conditions = getattr(pkg_cls, "skip_version_audit", False)
|
||||
if type(skip_conditions) is bool:
|
||||
return skip_conditions
|
||||
for condition in skip_conditions:
|
||||
if host_arch.satisfies(spack.spec.Spec(condition).architecture):
|
||||
return True
|
||||
return False
|
||||
|
||||
|
||||
@package_directives
|
||||
def _version_constraints_are_satisfiable_by_some_version_in_repo(pkgs, error_cls):
|
||||
"""Report if version constraints used in directives are not satisfiable"""
|
||||
errors = []
|
||||
host_architecture = spack.spec.ArchSpec.default_arch()
|
||||
for pkg_name in pkgs:
|
||||
pkg_cls = spack.repo.PATH.get_pkg_class(pkg_name)
|
||||
filename = spack.repo.PATH.filename_for_package_name(pkg_name)
|
||||
@@ -1156,20 +1170,13 @@ def _version_constraints_are_satisfiable_by_some_version_in_repo(pkgs, error_cls
|
||||
|
||||
dependencies_to_check.append(dep.spec)
|
||||
|
||||
host_architecture = spack.spec.ArchSpec.default_arch()
|
||||
for s in dependencies_to_check:
|
||||
dependency_pkg_cls = None
|
||||
try:
|
||||
dependency_pkg_cls = spack.repo.PATH.get_pkg_class(s.name)
|
||||
# Some packages have hacks that might cause failures on some platform
|
||||
# Allow to explicitly set conditions to skip version checks in that case
|
||||
skip_conditions = getattr(dependency_pkg_cls, "skip_version_audit", [])
|
||||
skip_version_check = False
|
||||
for condition in skip_conditions:
|
||||
if host_architecture.satisfies(spack.spec.Spec(condition).architecture):
|
||||
skip_version_check = True
|
||||
break
|
||||
assert skip_version_check or any(
|
||||
assert _skip_version_audit(host_architecture, dependency_pkg_cls) or any(
|
||||
v.intersects(s.versions) for v in list(dependency_pkg_cls.versions)
|
||||
)
|
||||
except Exception:
|
||||
@@ -1188,6 +1195,64 @@ def _version_constraints_are_satisfiable_by_some_version_in_repo(pkgs, error_cls
|
||||
return errors
|
||||
|
||||
|
||||
@package_directives
|
||||
def _when_conditions_are_satisfiable_by_some_version(pkgs, error_cls):
|
||||
"""Report if versions in when conditions used in directives are not satisfiable"""
|
||||
errors = []
|
||||
attrs = {
|
||||
"conflicts": "conflicts",
|
||||
"dependencies": "depends_on",
|
||||
"licenses": "license",
|
||||
"patches": "patch",
|
||||
"provided_together": "provides",
|
||||
"provided": "provides",
|
||||
"requirements": "requires",
|
||||
"resources": "resource",
|
||||
"splice_specs": "can_splice",
|
||||
"variants": "variant",
|
||||
}
|
||||
host_architecture = spack.spec.ArchSpec.default_arch()
|
||||
for pkg_name in pkgs:
|
||||
pkg_cls = spack.repo.PATH.get_pkg_class(pkg_name)
|
||||
filename = spack.repo.PATH.filename_for_package_name(pkg_name)
|
||||
if _skip_version_audit(host_architecture, pkg_cls):
|
||||
continue
|
||||
if not pkg_cls.versions:
|
||||
continue
|
||||
range = spack.version.VersionRange(
|
||||
min(pkg_cls.versions), spack.version.StandardVersion.typemax()
|
||||
)
|
||||
details = []
|
||||
for attr, directive in attrs.items():
|
||||
if attr == "patches":
|
||||
# Patches should strictly apply to some known version
|
||||
unsatisfiable = [
|
||||
when
|
||||
for when in getattr(pkg_cls, attr)
|
||||
if not any(y.intersects(when.versions) for y in pkg_cls.versions)
|
||||
]
|
||||
else:
|
||||
# Other directives should just be in the range of min known version to infinity.
|
||||
# The reason being sometimes people add depends_on("foo@1.1", when="@1.1") because
|
||||
# it's copied, even though only 1.0 and 1.2 are registered in Spack. It's too
|
||||
# annoying to complain about that.
|
||||
unsatisfiable = [
|
||||
when for when in getattr(pkg_cls, attr) if not range.intersects(when.versions)
|
||||
]
|
||||
details.extend(f'{directive}(..., when="{x}")' for x in unsatisfiable)
|
||||
|
||||
if details:
|
||||
errors.append(
|
||||
error_cls(
|
||||
summary=f"{filename}: when conditions are not satisfiable by "
|
||||
f"any known version of {pkg_cls.name}",
|
||||
details=details,
|
||||
)
|
||||
)
|
||||
|
||||
return errors
|
||||
|
||||
|
||||
def _analyze_variants_in_directive(pkg, constraint, directive, error_cls):
|
||||
errors = []
|
||||
variant_names = pkg.variant_names()
|
||||
|
@@ -31,7 +31,6 @@
|
||||
import llnl.util.tty as tty
|
||||
from llnl.util.lang import classproperty, memoized
|
||||
|
||||
import spack
|
||||
import spack.compilers
|
||||
import spack.config
|
||||
import spack.dependency
|
||||
@@ -61,7 +60,6 @@
|
||||
from spack.util.package_hash import package_hash
|
||||
from spack.util.typing import SupportsRichComparison
|
||||
from spack.version import GitVersion, StandardVersion
|
||||
from spack.version import ver as version_from_str
|
||||
|
||||
FLAG_HANDLER_RETURN_TYPE = Tuple[
|
||||
Optional[Iterable[str]], Optional[Iterable[str]], Optional[Iterable[str]]
|
||||
@@ -733,22 +731,10 @@ class PackageBase(WindowsRPath, PackageViewMixin, metaclass=PackageMeta):
|
||||
#: TestSuite instance used to manage stand-alone tests for 1+ specs.
|
||||
test_suite: Optional[Any] = None
|
||||
|
||||
#: compatibility requirements with Spack
|
||||
#: if value is ``None``, requirements from repo are still applied
|
||||
required_spack_version = None
|
||||
|
||||
def __init__(self, spec):
|
||||
# this determines how the package should be built.
|
||||
self.spec: spack.spec.Spec = spec
|
||||
|
||||
# is this package more restrictive in compatibility than the repo is
|
||||
if self.required_spack_version:
|
||||
spack_version = version_from_str(spack.spack_version)
|
||||
required_version = version_from_str(self.required_spack_version)
|
||||
if not spack_version.satisfies(required_version):
|
||||
msg = f"Package {self.name} requires Spack version {self.required_spack_version}."
|
||||
raise PackageError(msg)
|
||||
|
||||
# Allow custom staging paths for packages
|
||||
self.path = None
|
||||
|
||||
@@ -2298,14 +2284,6 @@ def rpath_args(self):
|
||||
build_system_flags = PackageBase.build_system_flags
|
||||
|
||||
|
||||
def use_cray_compiler_names():
|
||||
"""Compiler names for builds that rely on cray compiler names."""
|
||||
os.environ["CC"] = "cc"
|
||||
os.environ["CXX"] = "CC"
|
||||
os.environ["FC"] = "ftn"
|
||||
os.environ["F77"] = "ftn"
|
||||
|
||||
|
||||
def possible_dependencies(
|
||||
*pkg_or_spec: Union[str, spack.spec.Spec, typing.Type[PackageBase]],
|
||||
transitive: bool = True,
|
||||
|
@@ -32,7 +32,6 @@
|
||||
import llnl.util.tty as tty
|
||||
from llnl.util.filesystem import working_dir
|
||||
|
||||
import spack
|
||||
import spack.caches
|
||||
import spack.config
|
||||
import spack.error
|
||||
@@ -41,7 +40,6 @@
|
||||
import spack.spec
|
||||
import spack.tag
|
||||
import spack.tengine
|
||||
import spack.version
|
||||
import spack.util.file_cache
|
||||
import spack.util.git
|
||||
import spack.util.naming as nm
|
||||
@@ -51,11 +49,6 @@
|
||||
#: Package modules are imported as spack.pkg.<repo-namespace>.<pkg-name>
|
||||
ROOT_PYTHON_NAMESPACE = "spack.pkg"
|
||||
|
||||
_required_repo_version = "0:"
|
||||
|
||||
#: Version of the repo interface that this version of Spack is compatible with
|
||||
required_repo_version = spack.version.ver(_required_repo_version)
|
||||
|
||||
|
||||
def python_package_for_repo(namespace):
|
||||
"""Returns the full namespace of a repository, given its relative one
|
||||
@@ -958,7 +951,7 @@ def check(condition, msg):
|
||||
self.config_file = os.path.join(self.root, repo_config_name)
|
||||
check(os.path.isfile(self.config_file), f"No {repo_config_name} found in '{root}'")
|
||||
|
||||
# Read configuration and validate
|
||||
# Read configuration and validate namespace
|
||||
config = self._read_config()
|
||||
check(
|
||||
"namespace" in config,
|
||||
@@ -972,19 +965,6 @@ def check(condition, msg):
|
||||
"Namespaces must be valid python identifiers separated by '.'",
|
||||
)
|
||||
|
||||
required_version = spack.version.ver(config.get("required_spack_version", ":"))
|
||||
spack_version = spack.version.ver(spack.spack_version)
|
||||
check(
|
||||
spack_version.satisfies(required_version),
|
||||
f"Repo {self.namespace} requires Spack version {required_version}",
|
||||
)
|
||||
|
||||
repo_version = spack.version.ver(config.get("version", "0"))
|
||||
check(
|
||||
repo_version.satisfies(required_repo_version),
|
||||
f"Spack requires repo version {required_repo_version}",
|
||||
)
|
||||
|
||||
# Set up 'full_namespace' to include the super-namespace
|
||||
self.full_namespace = python_package_for_repo(self.namespace)
|
||||
|
||||
|
@@ -38,27 +38,6 @@ def extra_repo(tmp_path_factory, request):
|
||||
return spack.repo.Repo(str(repo_dir), cache=repo_cache), request.param
|
||||
|
||||
|
||||
@pytest.fixture(scope="function")
|
||||
def versioned_repo(tmp_path_factory, request):
|
||||
def _execute(spack_version, repo_version):
|
||||
repo_namespace = "extra_test_repo"
|
||||
repo_dir = tmp_path_factory.mktemp(repo_namespace)
|
||||
cache_dir = tmp_path_factory.mktemp("cache")
|
||||
(repo_dir / "packages").mkdir(parents=True, exist_ok=True)
|
||||
(repo_dir / "repo.yaml").write_text(
|
||||
f"""
|
||||
repo:
|
||||
namespace: extra_test_repo
|
||||
required_spack_version: '{spack_version}'
|
||||
version: '{repo_version}'
|
||||
"""
|
||||
)
|
||||
repo_cache = spack.util.file_cache.FileCache(str(cache_dir))
|
||||
return spack.repo.Repo(str(repo_dir), cache=repo_cache)
|
||||
|
||||
return _execute
|
||||
|
||||
|
||||
def test_repo_getpkg(mutable_mock_repo):
|
||||
mutable_mock_repo.get_pkg_class("pkg-a")
|
||||
mutable_mock_repo.get_pkg_class("builtin.mock.pkg-a")
|
||||
@@ -324,24 +303,3 @@ def test_get_repo(self, mock_test_cache):
|
||||
# foo is not there, raise
|
||||
with pytest.raises(spack.repo.UnknownNamespaceError):
|
||||
repo.get_repo("foo")
|
||||
|
||||
|
||||
def test_incompatible_repo(versioned_repo):
|
||||
with pytest.raises(spack.repo.BadRepoError, match="requires Spack version"):
|
||||
# test added after Spack passed version 0.22
|
||||
versioned_repo(":0.22", ":")
|
||||
|
||||
with pytest.raises(spack.repo.BadRepoError, match="requires repo version"):
|
||||
# ":a" < "0", and all Spack versions require at least "0:"
|
||||
versioned_repo(":", ":a")
|
||||
|
||||
|
||||
def test_incompatible_package_version(mock_packages, monkeypatch):
|
||||
spec = spack.concretize.concretize_one("pkg-a")
|
||||
package = spack.repo.PATH.get(spec)
|
||||
|
||||
pkg_class = spec.package_class
|
||||
monkeypatch.setattr(pkg_class, "required_spack_version", ":0.22")
|
||||
|
||||
with pytest.raises(spack.error.PackageError, match="requires Spack version"):
|
||||
_ = spack.repo.PATH.get(spec)
|
||||
|
@@ -36,7 +36,7 @@ bin/spack -h
|
||||
bin/spack help -a
|
||||
|
||||
# Profile and print top 20 lines for a simple call to spack spec
|
||||
spack -p --lines 20 spec mpileaks%gcc ^dyninst@10.0.0 ^elfutils@0.170
|
||||
spack -p --lines 20 spec mpileaks%gcc
|
||||
$coverage_run $(which spack) bootstrap status --dev --optional
|
||||
|
||||
# Check that we can import Spack packages directly as a first import
|
||||
|
@@ -1,4 +1,2 @@
|
||||
repo:
|
||||
namespace: builtin.mock
|
||||
version: 0
|
||||
required_spack_version: '0.23:1.0.0.dev0'
|
||||
|
@@ -148,6 +148,14 @@ class Ascent(CMakePackage, CudaPackage):
|
||||
# https://github.com/Alpine-DAV/ascent/pull/1123
|
||||
patch("ascent-find-raja-pr1123.patch", when="@0.9.0")
|
||||
|
||||
# patch for fix typo in coord_type
|
||||
# https://github.com/Alpine-DAV/ascent/pull/1408
|
||||
patch(
|
||||
"https://github.com/Alpine-DAV/ascent/pull/1408.patch?full_index=1",
|
||||
when="@0.9.3 %oneapi@2025:",
|
||||
sha256="7de7f51e57f3d743c39ad80d8783a4eb482be1def51eb2d3f9259246c661f164",
|
||||
)
|
||||
|
||||
##########################################################################
|
||||
# package dependencies
|
||||
###########################################################################
|
||||
@@ -468,6 +476,9 @@ def hostconfig(self):
|
||||
if cflags:
|
||||
cfg.write(cmake_cache_entry("CMAKE_C_FLAGS", cflags))
|
||||
cxxflags = cppflags + " ".join(spec.compiler_flags["cxxflags"])
|
||||
if spec.satisfies("%oneapi@2025:"):
|
||||
cxxflags += "-Wno-error=missing-template-arg-list-after-template-kw "
|
||||
cxxflags += "-Wno-missing-template-arg-list-after-template-kw"
|
||||
if cxxflags:
|
||||
cfg.write(cmake_cache_entry("CMAKE_CXX_FLAGS", cxxflags))
|
||||
fflags = " ".join(spec.compiler_flags["fflags"])
|
||||
|
@@ -92,9 +92,9 @@ def pgo_train(self):
|
||||
|
||||
# Set PGO training flags.
|
||||
generate_mods = EnvironmentModifications()
|
||||
generate_mods.append_flags("CFLAGS", "-fprofile-generate={}".format(reports))
|
||||
generate_mods.append_flags("CXXFLAGS", "-fprofile-generate={}".format(reports))
|
||||
generate_mods.append_flags("LDFLAGS", "-fprofile-generate={} --verbose".format(reports))
|
||||
generate_mods.append_flags("CFLAGS", f"-fprofile-generate={reports}")
|
||||
generate_mods.append_flags("CXXFLAGS", f"-fprofile-generate={reports}")
|
||||
generate_mods.append_flags("LDFLAGS", f"-fprofile-generate={reports}")
|
||||
|
||||
with working_dir(self.build_directory, create=True):
|
||||
cmake(*cmake_options, sources, extra_env=generate_mods)
|
||||
@@ -118,14 +118,14 @@ def pgo_train(self):
|
||||
# Clean the build dir.
|
||||
rmtree(self.build_directory, ignore_errors=True)
|
||||
|
||||
if self.spec.satisfies("%clang") or self.spec.satisfies("apple-clang"):
|
||||
if self.spec.satisfies("%clang") or self.spec.satisfies("%apple-clang"):
|
||||
# merge reports
|
||||
use_report = join_path(reports, "merged.prof")
|
||||
raw_files = glob.glob(join_path(reports, "*.profraw"))
|
||||
llvm_profdata("merge", "--output={}".format(use_report), *raw_files)
|
||||
use_flag = "-fprofile-instr-use={}".format(use_report)
|
||||
llvm_profdata("merge", f"--output={use_report}", *raw_files)
|
||||
use_flag = f"-fprofile-instr-use={use_report}"
|
||||
else:
|
||||
use_flag = "-fprofile-use={}".format(reports)
|
||||
use_flag = f"-fprofile-use={reports}"
|
||||
|
||||
# Set PGO use flags for next cmake phase.
|
||||
use_mods = EnvironmentModifications()
|
||||
|
@@ -0,0 +1,39 @@
|
||||
From 7cea256ef1a6017e722bdfd5b7381fa90580d55a Mon Sep 17 00:00:00 2001
|
||||
From: "simit.ghane" <simit.ghane@lge.com>
|
||||
Date: Tue, 7 May 2024 14:09:03 +0530
|
||||
Subject: [PATCH] fix o_flag_munging
|
||||
|
||||
---
|
||||
cipher/Makefile.am | 2 +-
|
||||
random/Makefile.am | 2 +-
|
||||
2 files changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/cipher/Makefile.am b/cipher/Makefile.am
|
||||
index c3d642b2..04bf25e9 100644
|
||||
--- a/cipher/Makefile.am
|
||||
+++ b/cipher/Makefile.am
|
||||
@@ -153,7 +153,7 @@ gost-s-box: gost-s-box.c
|
||||
|
||||
|
||||
if ENABLE_O_FLAG_MUNGING
|
||||
-o_flag_munging = sed -e 's/-O\([2-9sgz][2-9sgz]*\)/-O1/' -e 's/-Ofast/-O1/g'
|
||||
+o_flag_munging = sed -e 's/[[:blank:]]-O\([2-9sgz][2-9sgz]*\)/ -O1 /g' -e 's/[[:blank:]]-Ofast/ -O1 /g'
|
||||
else
|
||||
o_flag_munging = cat
|
||||
endif
|
||||
diff --git a/random/Makefile.am b/random/Makefile.am
|
||||
index 0c935a05..a42e4306 100644
|
||||
--- a/random/Makefile.am
|
||||
+++ b/random/Makefile.am
|
||||
@@ -56,7 +56,7 @@ jitterentropy-base.c jitterentropy.h jitterentropy-base-user.h
|
||||
|
||||
# The rndjent module needs to be compiled without optimization. */
|
||||
if ENABLE_O_FLAG_MUNGING
|
||||
-o_flag_munging = sed -e 's/-O\([1-9sgz][1-9sgz]*\)/-O0/g' -e 's/-Ofast/-O0/g'
|
||||
+o_flag_munging = sed -e 's/[[:blank:]]-O\([1-9sgz][1-9sgz]*\)/ -O0 /g' -e 's/[[:blank:]]-Ofast/ -O0 /g'
|
||||
else
|
||||
o_flag_munging = cat
|
||||
endif
|
||||
--
|
||||
2.43.0
|
||||
|
@@ -0,0 +1,50 @@
|
||||
From 9c11f1e12a6ddbd49b5fd38c94e6a004f8da6e29 Mon Sep 17 00:00:00 2001
|
||||
From: "simit.ghane" <simit.ghane@lge.com>
|
||||
Date: Tue, 11 Jun 2024 07:22:28 +0530
|
||||
Subject: [PATCH] random:cipher: handle substitution in sed command
|
||||
|
||||
* cipher/Makefile.am (o_flag_munging): Add 'g' flag for first sed
|
||||
expression.
|
||||
* random/Makefile.am (o_flag_munging): Likewise.
|
||||
--
|
||||
|
||||
It was there earlier and accidentally removed from
|
||||
Makefile.am of cipher and random
|
||||
|
||||
Signed-off-by: simit.ghane <simit.ghane@lge.com>
|
||||
[jk: add changelog to commit message]
|
||||
Signed-off-by: Jussi Kivilinna <jussi.kivilinna@iki.fi>
|
||||
---
|
||||
cipher/Makefile.am | 2 +-
|
||||
random/Makefile.am | 2 +-
|
||||
2 files changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/cipher/Makefile.am b/cipher/Makefile.am
|
||||
index ea9014cc..149c9f21 100644
|
||||
--- a/cipher/Makefile.am
|
||||
+++ b/cipher/Makefile.am
|
||||
@@ -169,7 +169,7 @@ gost-s-box$(EXEEXT_FOR_BUILD): gost-s-box.c
|
||||
|
||||
|
||||
if ENABLE_O_FLAG_MUNGING
|
||||
-o_flag_munging = sed -e 's/[[:blank:]]-O\([2-9sgz][2-9sgz]*\)/ -O1 /' -e 's/[[:blank:]]-Ofast/ -O1 /g'
|
||||
+o_flag_munging = sed -e 's/[[:blank:]]-O\([2-9sgz][2-9sgz]*\)/ -O1 /g' -e 's/[[:blank:]]-Ofast/ -O1 /g'
|
||||
else
|
||||
o_flag_munging = cat
|
||||
endif
|
||||
diff --git a/random/Makefile.am b/random/Makefile.am
|
||||
index c7100ef8..a42e4306 100644
|
||||
--- a/random/Makefile.am
|
||||
+++ b/random/Makefile.am
|
||||
@@ -56,7 +56,7 @@ jitterentropy-base.c jitterentropy.h jitterentropy-base-user.h
|
||||
|
||||
# The rndjent module needs to be compiled without optimization. */
|
||||
if ENABLE_O_FLAG_MUNGING
|
||||
-o_flag_munging = sed -e 's/[[:blank:]]-O\([1-9sgz][1-9sgz]*\)/ -O0 /' -e 's/[[:blank:]]-Ofast/ -O0 /g'
|
||||
+o_flag_munging = sed -e 's/[[:blank:]]-O\([1-9sgz][1-9sgz]*\)/ -O0 /g' -e 's/[[:blank:]]-Ofast/ -O0 /g'
|
||||
else
|
||||
o_flag_munging = cat
|
||||
endif
|
||||
--
|
||||
2.43.0
|
||||
|
@@ -17,26 +17,26 @@ class Libgcrypt(AutotoolsPackage):
|
||||
|
||||
version("1.11.0", sha256="09120c9867ce7f2081d6aaa1775386b98c2f2f246135761aae47d81f58685b9c")
|
||||
version("1.10.3", sha256="8b0870897ac5ac67ded568dcfadf45969cfa8a6beb0fd60af2a9eadc2a3272aa")
|
||||
version("1.10.2", sha256="3b9c02a004b68c256add99701de00b383accccf37177e0d6c58289664cce0c03")
|
||||
version("1.10.1", sha256="ef14ae546b0084cd84259f61a55e07a38c3b53afc0f546bffcef2f01baffe9de")
|
||||
version("1.10.0", sha256="6a00f5c05caa4c4acc120c46b63857da0d4ff61dc4b4b03933fa8d46013fae81")
|
||||
|
||||
# End of life: 2024-03-31
|
||||
with default_args(deprecated=True):
|
||||
version("1.9.4", sha256="ea849c83a72454e3ed4267697e8ca03390aee972ab421e7df69dfe42b65caaf7")
|
||||
version("1.9.3", sha256="97ebe4f94e2f7e35b752194ce15a0f3c66324e0ff6af26659bbfb5ff2ec328fd")
|
||||
version("1.9.2", sha256="b2c10d091513b271e47177274607b1ffba3d95b188bbfa8797f948aec9053c5a")
|
||||
version("1.9.1", sha256="c5a67a8b9b2bd370fb415ed1ee31c7172e5683076493cf4a3678a0fbdf0265d9")
|
||||
version(
|
||||
"1.10.2", sha256="3b9c02a004b68c256add99701de00b383accccf37177e0d6c58289664cce0c03"
|
||||
)
|
||||
version(
|
||||
"1.10.1", sha256="ef14ae546b0084cd84259f61a55e07a38c3b53afc0f546bffcef2f01baffe9de"
|
||||
)
|
||||
version(
|
||||
"1.10.0", sha256="6a00f5c05caa4c4acc120c46b63857da0d4ff61dc4b4b03933fa8d46013fae81"
|
||||
)
|
||||
# End of life: 2024-12-31 (LTS)
|
||||
version("1.8.9", sha256="2bda4790aa5f0895d3407cf7bf6bd7727fd992f25a45a63d92fef10767fa3769")
|
||||
version("1.8.7", sha256="03b70f028299561b7034b8966d7dd77ef16ed139c43440925fe8782561974748")
|
||||
version("1.8.6", sha256="0cba2700617b99fc33864a0c16b1fa7fdf9781d9ed3509f5d767178e5fd7b975")
|
||||
version("1.8.5", sha256="3b4a2a94cb637eff5bdebbcaf46f4d95c4f25206f459809339cdada0eb577ac3")
|
||||
version("1.8.4", sha256="f638143a0672628fde0cad745e9b14deb85dffb175709cacc1f4fe24b93f2227")
|
||||
version("1.8.1", sha256="7a2875f8b1ae0301732e878c0cca2c9664ff09ef71408f085c50e332656a78b3")
|
||||
|
||||
# End of life: 2024-12-31 (LTS)
|
||||
version("1.8.9", sha256="2bda4790aa5f0895d3407cf7bf6bd7727fd992f25a45a63d92fef10767fa3769")
|
||||
version("1.8.7", sha256="03b70f028299561b7034b8966d7dd77ef16ed139c43440925fe8782561974748")
|
||||
version("1.8.6", sha256="0cba2700617b99fc33864a0c16b1fa7fdf9781d9ed3509f5d767178e5fd7b975")
|
||||
version("1.8.5", sha256="3b4a2a94cb637eff5bdebbcaf46f4d95c4f25206f459809339cdada0eb577ac3")
|
||||
version("1.8.4", sha256="f638143a0672628fde0cad745e9b14deb85dffb175709cacc1f4fe24b93f2227")
|
||||
version("1.8.1", sha256="7a2875f8b1ae0301732e878c0cca2c9664ff09ef71408f085c50e332656a78b3")
|
||||
|
||||
depends_on("c", type="build") # generated
|
||||
depends_on("c", type="build")
|
||||
|
||||
depends_on("libgpg-error@1.25:")
|
||||
depends_on("libgpg-error@1.27:", when="@1.9:")
|
||||
@@ -58,6 +58,9 @@ def flag_handler(self, name, flags):
|
||||
# https://git.gnupg.org/cgi-bin/gitweb.cgi?p=libgcrypt.git;a=commit;h=b42116d6067a5233f72e5598032d4b396bb8eaac
|
||||
patch("conditional_avx512.patch", when="@1.11.0")
|
||||
|
||||
patch("o_flag_munging-1.10.patch", when="@1.10")
|
||||
patch("o_flag_munging-1.11.patch", when="@1.11")
|
||||
|
||||
def check(self):
|
||||
# Without this hack, `make check` fails on macOS when SIP is enabled
|
||||
# https://bugs.gnupg.org/gnupg/issue2056
|
||||
|
36
var/spack/repos/builtin/packages/nwchem/oneapi2025.patch
Normal file
36
var/spack/repos/builtin/packages/nwchem/oneapi2025.patch
Normal file
@@ -0,0 +1,36 @@
|
||||
diff -ruN spack-src/src/config/makefile.h spack-src-patched/src/config/makefile.h
|
||||
--- spack-src/src/config/makefile.h 2024-08-28 02:30:22.000000000 +0000
|
||||
+++ spack-src-patched/src/config/makefile.h 2025-02-07 16:03:07.315882016 +0000
|
||||
@@ -2364,15 +2364,14 @@
|
||||
_GOTAVX2 := $(shell cat /proc/cpuinfo | grep fma | tail -n 1 | awk ' /fma/ {print "Y"}')
|
||||
_GOTAVX512F := $(shell cat /proc/cpuinfo | grep avx512f | tail -n 1 | awk ' /avx512f/ {print "Y"}')
|
||||
endif
|
||||
- _IFCE := $(shell ifort -V 2>&1 |head -1 |awk ' /64/ {print "Y";exit};')
|
||||
- _IFCV7 := $(shell ifort -v 2>&1|grep "Version "|head -n 1|awk ' /7./ {print "Y";exit}')
|
||||
- _IFCV11 := $(shell ifort -logo 2>&1|grep "Version "|head -n 1|sed 's/.*Version \([0-9][0-9]\).*/\1/' | awk '{if ($$1 >= 11) {print "Y";exit}}')
|
||||
- _IFCV12 := $(shell ifort -logo 2>&1|grep "Version "|head -n 1|sed 's/.*Version \([0-9][0-9]\).*/\1/' | awk '{if ($$1 >= 12) {print "Y";exit}}')
|
||||
- _IFCV14 := $(shell ifort -logo 2>&1|grep "Version "|head -n 1|sed 's/.*Version \([0-9][0-9]\).*/\1/' | awk '{if ($$1 >= 14) {print "Y";exit}}')
|
||||
- _IFCV15ORNEWER := $(shell ifort -logo 2>&1|grep "Version "|head -n 1 | sed 's/.*Version \([0-9][0-9]\).*/\1/' | awk '{if ($$1 >= 15) {print "Y";exit}}')
|
||||
- _IFCV17 := $(shell ifort -logo 2>&1|grep "Version "|head -n 1 | sed 's/.*Version \([0-9][0-9]\).*/\1/' | awk '{if ($$1 >= 17) {print "Y";exit}}')
|
||||
- _IFCV18 := $(shell ifort -logo 2>&1|grep "Version "|head -n 1 | sed 's/.*Version \([0-9][0-9]\).*/\1/' | awk '{if ($$1 >= 18) {print "Y";exit}}')
|
||||
-
|
||||
+ _IFCE := $(shell $(FC) -V 2>&1 |head -1 |awk ' /64/ {print "Y";exit};')
|
||||
+ _IFCV7 := $(shell $(FC) -v 2>&1|grep "Version "|head -n 1|awk ' /7./ {print "Y";exit}')
|
||||
+ _IFCV11 := $(shell $(FC) -logo 2>&1|grep "Version "|head -n 1|sed 's/.*Version \([0-9][0-9]\).*/\1/' | awk '{if ($$1 >= 11) {print "Y";exit}}')
|
||||
+ _IFCV12 := $(shell $(FC) -logo 2>&1|grep "Version "|head -n 1|sed 's/.*Version \([0-9][0-9]\).*/\1/' | awk '{if ($$1 >= 12) {print "Y";exit}}')
|
||||
+ _IFCV14 := $(shell $(FC) -logo 2>&1|grep "Version "|head -n 1|sed 's/.*Version \([0-9][0-9]\).*/\1/' | awk '{if ($$1 >= 14) {print "Y";exit}}')
|
||||
+ _IFCV15ORNEWER := $(shell $(FC) -logo 2>&1|grep "Version "|head -n 1 | sed 's/.*Version \([0-9][0-9]\).*/\1/' | awk '{if ($$1 >= 15) {print "Y";exit}}')
|
||||
+ _IFCV17 := $(shell $(FC) -logo 2>&1|grep "Version "|head -n 1 | sed 's/.*Version \([0-9][0-9]\).*/\1/' | awk '{if ($$1 >= 17) {print "Y";exit}}')
|
||||
+ _IFCV18 := $(shell $(FC) -logo 2>&1|grep "Version "|head -n 1 | sed 's/.*Version \([0-9][0-9]\).*/\1/' | awk '{if ($$1 >= 18) {print "Y";exit}}')
|
||||
# Intel EM64T is required
|
||||
ifneq ($(_IFCE),Y)
|
||||
defineFCE:
|
||||
@@ -2406,7 +2405,7 @@
|
||||
# CPP=fpp -P
|
||||
#
|
||||
ifeq ($(_IFCV15ORNEWER), Y)
|
||||
- IFORTVER := $(shell ifort -v 2>&1|cut -d " " -f 3)
|
||||
+ IFORTVER := $(shell $(FC) -v 2>&1|cut -d " " -f 3)
|
||||
# ifeq ($(IFORTVER),2021.7.0)
|
||||
# $(info )
|
||||
# $(info ifort 2021.7.0 not validated)
|
@@ -13,11 +13,14 @@ class Nwchem(Package):
|
||||
|
||||
homepage = "https://nwchemgit.github.io"
|
||||
url = "https://github.com/nwchemgit/nwchem/releases/download/v7.2.0-release/nwchem-7.2.0-release.revision-d0d141fd-srconly.2023-03-10.tar.bz2"
|
||||
git = "https://github.com/nwchemgit/nwchem.git"
|
||||
|
||||
tags = ["ecp", "ecp-apps"]
|
||||
|
||||
maintainers("jeffhammond")
|
||||
|
||||
version("master", branch="master")
|
||||
|
||||
version(
|
||||
"7.2.3",
|
||||
sha256="8cb4ec065215bc0316d8e01f67f1674a572f7d0f565c52e4a327975c04ddb6eb",
|
||||
@@ -69,6 +72,9 @@ class Nwchem(Package):
|
||||
"elpa", default=False, description="Enable optimised diagonalisation routines from ELPA"
|
||||
)
|
||||
|
||||
# https://github.com/nwchemgit/nwchem/pull/1034
|
||||
patch("oneapi2025.patch", when="@7.2.3 %oneapi@2025:")
|
||||
|
||||
# This patch is for the modification of the build system (e.g. compiler flags) and
|
||||
# Fortran syntax to enable the compilation with Fujitsu compilers. The modification
|
||||
# will be merged to the next release of NWChem (see https://github.com/nwchemgit/nwchem/issues/347
|
||||
|
@@ -17,6 +17,7 @@ class PyMaturin(PythonPackage):
|
||||
|
||||
license("Apache-2.0")
|
||||
|
||||
version("1.8.2", sha256="e31abc70f6f93285d6e63d2f4459c079c94c259dd757370482d2d4ceb9ec1fa0")
|
||||
version("1.6.0", sha256="b955025c24c8babc808db49e0ff90db8b4b1320dcc16b14eb26132841737230d")
|
||||
version("1.5.1", sha256="3dd834ece80edb866af18cbd4635e0ecac40139c726428d5f1849ae154b26dca")
|
||||
version("1.4.0", sha256="ed12e1768094a7adeafc3a74ebdb8dc2201fa64c4e7e31f14cfc70378bf93790")
|
||||
@@ -42,4 +43,5 @@ class PyMaturin(PythonPackage):
|
||||
# May be an accidental dependency, remove in the future
|
||||
# https://git.alpinelinux.org/aports/commit/?id=7ad298b467403b96a6b97d050170e367f147a75f
|
||||
# https://patchwork.yoctoproject.org/project/oe-core/patch/8803dc101b641c948805cab9e5784c38f43b0e51.1702791173.git.tim.orling@konsulko.com/
|
||||
depends_on("bzip2", when="platform=darwin")
|
||||
# This seems to still be an issue for others
|
||||
depends_on("bzip2")
|
||||
|
@@ -57,15 +57,21 @@ class Python(Package):
|
||||
|
||||
license("0BSD")
|
||||
|
||||
version("3.13.2", sha256="b8d79530e3b7c96a5cb2d40d431ddb512af4a563e863728d8713039aa50203f9")
|
||||
version("3.13.1", sha256="1513925a9f255ef0793dbf2f78bb4533c9f184bdd0ad19763fd7f47a400a7c55")
|
||||
version("3.13.0", sha256="12445c7b3db3126c41190bfdc1c8239c39c719404e844babbd015a1bc3fafcd4")
|
||||
version("3.12.9", sha256="45313e4c5f0e8acdec9580161d565cf5fea578e3eabf25df7cc6355bf4afa1ee")
|
||||
version("3.12.8", sha256="5978435c479a376648cb02854df3b892ace9ed7d32b1fead652712bee9d03a45")
|
||||
version("3.12.7", sha256="73ac8fe780227bf371add8373c3079f42a0dc62deff8d612cd15a618082ab623")
|
||||
version("3.12.6", sha256="85a4c1be906d20e5c5a69f2466b00da769c221d6a684acfd3a514dbf5bf10a66")
|
||||
version("3.12.5", sha256="38dc4e2c261d49c661196066edbfb70fdb16be4a79cc8220c224dfeb5636d405")
|
||||
version("3.12.4", sha256="01b3c1c082196f3b33168d344a9c85fb07bfe0e7ecfe77fee4443420d1ce2ad9")
|
||||
version("3.12.3", sha256="a6b9459f45a6ebbbc1af44f5762623fa355a0c87208ed417628b379d762dddb0")
|
||||
version("3.12.2", sha256="a7c4f6a9dc423d8c328003254ab0c9338b83037bd787d680826a5bf84308116e")
|
||||
version("3.12.1", sha256="d01ec6a33bc10009b09c17da95cc2759af5a580a7316b3a446eb4190e13f97b2")
|
||||
version("3.12.0", sha256="51412956d24a1ef7c97f1cb5f70e185c13e3de1f50d131c0aac6338080687afb")
|
||||
version("3.11.11", sha256="883bddee3c92fcb91cf9c09c5343196953cbb9ced826213545849693970868ed")
|
||||
version("3.11.10", sha256="92f2faf242681bfa406d53a51e17d42c5373affe23a130cd9697e132ef574706")
|
||||
version("3.11.9", sha256="e7de3240a8bc2b1e1ba5c81bf943f06861ff494b69fda990ce2722a504c6153d")
|
||||
version("3.11.8", sha256="d3019a613b9e8761d260d9ebe3bd4df63976de30464e5c0189566e1ae3f61889")
|
||||
version("3.11.7", sha256="068c05f82262e57641bd93458dfa883128858f5f4997aad7a36fd25b13b29209")
|
||||
@@ -76,6 +82,8 @@ class Python(Package):
|
||||
version("3.11.2", sha256="2411c74bda5bbcfcddaf4531f66d1adc73f247f529aee981b029513aefdbf849")
|
||||
version("3.11.1", sha256="baed518e26b337d4d8105679caf68c5c32630d702614fc174e98cb95c46bdfa4")
|
||||
version("3.11.0", sha256="64424e96e2457abbac899b90f9530985b51eef2905951febd935f0e73414caeb")
|
||||
version("3.10.16", sha256="f2e22ed965a93cfeb642378ed6e6cdbc127682664b24123679f3d013fafe9cd0")
|
||||
version("3.10.15", sha256="a27864e5ba2a4474f8f6c58ab92ff52767ac8b66f1646923355a53fe3ef15074")
|
||||
version("3.10.14", sha256="cefea32d3be89c02436711c95a45c7f8e880105514b78680c14fe76f5709a0f6")
|
||||
version("3.10.13", sha256="698ec55234c1363bd813b460ed53b0f108877c7a133d48bde9a50a1eb57b7e65")
|
||||
version("3.10.12", sha256="a43cd383f3999a6f4a7db2062b2fc9594fefa73e175b3aedafa295a51a7bb65c")
|
||||
@@ -91,6 +99,8 @@ class Python(Package):
|
||||
version("3.10.2", sha256="3c0ede893011319f9b0a56b44953a3d52c7abf9657c23fb4bc9ced93b86e9c97")
|
||||
version("3.10.1", sha256="b76117670e7c5064344b9c138e141a377e686b9063f3a8a620ff674fa8ec90d3")
|
||||
version("3.10.0", sha256="c4e0cbad57c90690cb813fb4663ef670b4d0f587d8171e2c42bd4c9245bd2758")
|
||||
version("3.9.21", sha256="667c3ba2ca98d39ead1162f6548c3475768582e2ff89e0821d25eb956ac09944")
|
||||
version("3.9.20", sha256="1e71f006222666e0a39f5a47be8221415c22c4dd8f25334cc41aee260b3d379e")
|
||||
version("3.9.19", sha256="f5f9ec8088abca9e399c3b62fd8ef31dbd2e1472c0ccb35070d4d136821aaf71")
|
||||
version("3.9.18", sha256="504ce8cfd59addc04c22f590377c6be454ae7406cb1ebf6f5a350149225a9354")
|
||||
version("3.9.17", sha256="8ead58f669f7e19d777c3556b62fae29a81d7f06a7122ff9bc57f7dd82d7e014")
|
||||
@@ -112,6 +122,9 @@ class Python(Package):
|
||||
version("3.9.1", sha256="29cb91ba038346da0bd9ab84a0a55a845d872c341a4da6879f462e94c741f117")
|
||||
version("3.9.0", sha256="df796b2dc8ef085edae2597a41c1c0a63625ebd92487adaef2fed22b567873e8")
|
||||
with default_args(deprecated=True):
|
||||
version(
|
||||
"3.8.20", sha256="9f2d5962c2583e67ef75924cd56d0c1af78bf45ec57035cf8a2cc09f74f4bf78"
|
||||
)
|
||||
version(
|
||||
"3.8.19", sha256="c7fa55a36e5c7a19ec37d8f90f60a2197548908c9ac8b31e7c0dbffdd470eeac"
|
||||
)
|
||||
@@ -159,8 +172,8 @@ class Python(Package):
|
||||
"3.6.15", sha256="54570b7e339e2cfd72b29c7e2fdb47c0b7b18b7412e61de5b463fc087c13b043"
|
||||
)
|
||||
|
||||
depends_on("c", type="build") # generated
|
||||
depends_on("cxx", type="build") # generated
|
||||
depends_on("c", type="build")
|
||||
depends_on("cxx", type="build")
|
||||
|
||||
extendable = True
|
||||
|
||||
|
@@ -18,6 +18,7 @@ class Serialbox(CMakePackage):
|
||||
|
||||
license("BSD-2-Clause")
|
||||
|
||||
version("2.6.2", sha256="d1b4c79078e3b1d4a45b7b024eb647d21873498ac666e41a5ee8b8e13c95a7ac")
|
||||
version("2.6.1", sha256="b795ce576e8c4fd137e48e502b07b136079c595c82c660cfa2e284b0ef873342")
|
||||
version("2.6.0", sha256="9199f8637afbd7f2b3c5ba932d1c63e9e14d553a0cafe6c29107df0e04ee9fae")
|
||||
version("2.5.4", sha256="f4aee8ef284f58e6847968fe4620e222ac7019d805bbbb26c199e4b6a5094fee")
|
||||
|
@@ -47,18 +47,16 @@ class Trexio(AutotoolsPackage, CMakePackage):
|
||||
depends_on("hdf5@1.8:+hl", when="@:2.3.0 +hdf5")
|
||||
depends_on("hdf5@1.8:", when="+hdf5")
|
||||
|
||||
# Append -lhdf5_hl to LIBS when hdf5 variant is activated
|
||||
# or use --without-hdf5 option otherwise.
|
||||
|
||||
|
||||
class AutotoolsBuilder(autotools.AutotoolsBuilder):
|
||||
def configure_args(self):
|
||||
config_args = []
|
||||
if "+hdf5" in self.spec:
|
||||
if self.spec("@:2.3.0"):
|
||||
if self.spec.satisfies("@:2.3.0"):
|
||||
# Autotools should take care of adding the necessary flags for HDF5
|
||||
# In older versions, it is not always the case for "hdf5_hl"
|
||||
# Append -lhdf5_hl to LIBS when hdf5 variant is activated
|
||||
config_args.append("LIBS=-lhdf5_hl")
|
||||
else:
|
||||
config.args.append("LIBS=-lhdf5")
|
||||
else:
|
||||
config_args.append("--without-hdf5")
|
||||
|
||||
|
@@ -1,4 +1,2 @@
|
||||
repo:
|
||||
namespace: builtin
|
||||
version: 0
|
||||
required_spack_version: '0.23:1.0.0.dev0'
|
||||
|
Reference in New Issue
Block a user