Compare commits

..

9 Commits

Author SHA1 Message Date
Todd Gamblin
0ffeaa51d6 concretizer: --force is now config and a common argument
`--force` was previously available only on `spack concretize`
but not on `spack spec`, `spack solve`, and other commands that
do concretization.

This means you can now preview a force-concretize on an environment
or spec with `spack spec -f` or `spack solve -f`.  You can also set
concretization to *always* force in config with:

```yaml
spack:
    concretizer:
        force: true
```

- [x] make `concretizer:force` a configuration option
- [x] add `--force` to common concretizer arguments
2025-02-02 21:45:32 -08:00
Harmen Stoppels
763b35a2e0 import-check: improve how problematic imports are displayed (#48825)
The import-check action now presents problematic import statements
introduced by the PR better.

The idea is roughly:

* Let (V₁, E₁) be the graph of modules as vertices and import statements
  as edges before the change
* Let (V₂, E₂) be the graph after the code change, which is typically a small
  perturbation of (V₁, E₁).
* X₁ = FAS(V₁, E₁) is the feedback arc set before (a minimal set of edges to
  delete to make it acyclic)
* X₂ = FAS(V₂, E₂ ∖ X₁) is the feedback arc set after deletion of the minimal
  set of edges that made the old graph acyclic.
* X₃ = FAS(V₂, E₂) is the feedback arc set after

Previously I displayed X₁ and X₃ and users had to diff themselves.

Now, I'm showing X₂, which is a small set, typically directly related to
code changes.

However, it can be that a small code change adding say 2 problematic imports
creates a completely different solution X₃ that only requires deletion of just 1
different import. In that case the user is informed that they can potentially do
less work.

So for PR #48784 the output is now:

> The overall number of problematic import statements increased by 1 from 31 to 32.
> This is likely a direct consequence of the following import statements:
> 
> ```
> spack/config imports: spack.spec, spack.util.path, spack.util.remote_file_cache
> ```
> 
> However, instead of removing 3 import statements, it is sufficient to remove only 1
> import statement from the following list:
> 
> ```
> spack/concretize imports: spack.bootstrap, spack.solver.asp
> spack/environment imports: spack.bootstrap, spack.environment
> spack/fetch_strategy imports: spack.version.git_ref_lookup
> spack/install_test imports: spack.build_environment, spack.package_base
> spack/modules imports: spack.modules
> spack/platforms imports: spack.config
> spack/relocate imports: spack.bootstrap
> spack/repo imports: spack.package_base, spack.patch, spack.tag
> spack/spec imports: spack.binary_distribution, spack.compiler, spack.compilers, spack.concretize, spack.environment, spack.hash_types, spack.provider_index, spack.repo, spack.spec_parser, spack.store, spack.traverse, spack.variant, spack.version.git_ref_lookup
> spack/subprocess_context imports: spack.environment
> spack/util/gpg imports: spack.bootstrap
> spack/util/package_hash imports: spack.package_base
> spack/util/path imports: spack.config, spack.environment
> spack/util/remote_file_cache imports: spack.util.web
> ```

from which the user can figure out that
`spack/util/remote_file_cache imports: spack.util.web` is the "bottleneck" now.
2025-02-02 20:56:38 -08:00
Wouter Deconinck
12280f864c embree: fix tests by building tutorial's embree_viewer for tests (#48392) 2025-02-02 20:57:39 -06:00
Thomas Bouvier
253ba05732 nanotron: add new package (#48582)
* nanotron: add new package

Also, update some dependencies and add missing ones.

* Add variant +examples needed to execute example scripts

* fix: add missing branch attribute

* Remove master version

* fix: use Github hash
2025-02-02 14:17:26 -07:00
Harmen Stoppels
195b869e1c gcc: remove --with-ld=ld-classic (#48826) 2025-02-01 22:22:53 +01:00
Wouter Deconinck
393961ffd6 vtk-m: CMAKE_CXX_COMPILER is not a BOOL (#48813) 2025-02-01 20:10:10 +01:00
Till Ehrengruber
392a58e9be oci/opener.py: respect system proxy settings (#48783) 2025-02-01 09:26:55 +01:00
Rocco Meli
0e8e97a811 CP2K: add 2025.1 version and DFTD4 support (#48489)
* cp2k: add dftd4 variant

* better conflict and make support

* typo

* Update var/spack/repos/builtin/packages/cp2k/package.py

* Update var/spack/repos/builtin/packages/cp2k/package.py
2025-02-01 00:58:46 -07:00
danielsjensen1
43a0cbe7a2 py-sphinx-rtd-theme: add v2.0.0, v3.0.0 (#48756)
* Add versions 2 and 3 of py-sphinx-rtd-theme.
   Allow for versions of py-sphinx greater than 6.
   Fix the Python version for older versions that depend on distutils.
   Get the py-docutils dependency from the py-sphinx recipe.
* Depend purely on the py-docutils dependency in py-sphinx.
* More refined dependency versioning.
* Fixed versioning for py-sphinx and py-docutils.
2025-01-31 22:46:44 -07:00
103 changed files with 304 additions and 186 deletions

View File

@@ -121,31 +121,14 @@ jobs:
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
with:
repository: haampie/circular-import-fighter
ref: b5d6ce9be35f602cca7d5a6aa0259fca10639cca
ref: 9a2c728c97f594dec0210e7f85cb7167eaf29176
path: circular-import-fighter
- name: Install dependencies
working-directory: circular-import-fighter
run: make -j dependencies
- name: Problematic imports before
- name: Circular import check
working-directory: circular-import-fighter
run: make SPACK_ROOT=../old SUFFIX=.old
- name: Problematic imports after
working-directory: circular-import-fighter
run: make SPACK_ROOT=../new SUFFIX=.new
- name: Compare import cycles
working-directory: circular-import-fighter
run: |
edges_before="$(head -n1 solution.old)"
edges_after="$(head -n1 solution.new)"
if [ "$edges_after" -gt "$edges_before" ]; then
printf '\033[1;31mImport check failed: %s imports need to be deleted, ' "$edges_after"
printf 'previously this was %s\033[0m\n' "$edges_before"
printf 'Compare \033[1;97m"Problematic imports before"\033[0m and '
printf '\033[1;97m"Problematic imports after"\033[0m.\n'
exit 1
else
printf '\033[1;32mImport check passed: %s <= %s\033[0m\n' "$edges_after" "$edges_before"
fi
run: make -j compare "SPACK_ROOT=../old ../new"
# Further style checks from pylint
pylint:

View File

@@ -504,11 +504,22 @@ class ConfigSetAction(argparse.Action):
"""
def __init__(
self, option_strings, dest, const, default=None, required=False, help=None, metavar=None
self,
option_strings,
dest,
const,
default=None,
required=False,
help=None,
metavar=None,
require_environment=False,
):
# save the config option we're supposed to set
self.config_path = dest
# save whether the option requires an active env
self.require_environment = require_environment
# destination is translated to a legal python identifier by
# substituting '_' for ':'.
dest = dest.replace(":", "_")
@@ -524,6 +535,11 @@ def __init__(
)
def __call__(self, parser, namespace, values, option_string):
if self.require_environment and not ev.active_environment():
raise argparse.ArgumentTypeError(
f"argument '{self.option_strings[-1]}' requires an environment"
)
# Retrieve the name of the config option and set it to
# the const from the constructor or a value from the CLI.
# Note that this is only called if the argument is actually
@@ -545,6 +561,16 @@ def add_concretizer_args(subparser):
Just substitute ``_`` for ``:``.
"""
subgroup = subparser.add_argument_group("concretizer arguments")
subgroup.add_argument(
"-f",
"--force",
action=ConfigSetAction,
require_environment=True,
dest="concretizer:force",
const=True,
default=False,
help="allow changes to concretized specs in spack.lock (in an env)",
)
subgroup.add_argument(
"-U",
"--fresh",

View File

@@ -15,9 +15,6 @@
def setup_parser(subparser):
subparser.add_argument(
"-f", "--force", action="store_true", help="re-concretize even if already concretized"
)
subparser.add_argument(
"--test",
default=None,
@@ -43,7 +40,7 @@ def concretize(parser, args):
tests = False
with env.write_transaction():
concretized_specs = env.concretize(force=args.force, tests=tests)
concretized_specs = env.concretize(tests=tests)
if not args.quiet:
if concretized_specs:
tty.msg(f"Concretized {plural(len(concretized_specs), 'spec')}:")

View File

@@ -1427,7 +1427,7 @@ def is_develop(self, spec):
"""Returns true when the spec is built from local sources"""
return spec.name in self.dev_specs
def concretize(self, force=False, tests=False):
def concretize(self, tests=False):
"""Concretize user_specs in this environment.
Only concretizes specs that haven't been concretized yet unless
@@ -1437,8 +1437,6 @@ def concretize(self, force=False, tests=False):
write out a lockfile containing concretized specs.
Arguments:
force (bool): re-concretize ALL specs, even those that were
already concretized
tests (bool or list or set): False to run no tests, True to test
all packages, or a list of package names to run tests for some
@@ -1446,7 +1444,7 @@ def concretize(self, force=False, tests=False):
List of specs that have been concretized. Each entry is a tuple of
the user spec and the corresponding concretized spec.
"""
if force:
if spack.config.get("concretizer:force", False):
# Clear previously concretized specs
self.concretized_user_specs = []
self.concretized_order = []

View File

@@ -383,6 +383,7 @@ def create_opener():
"""Create an opener that can handle OCI authentication."""
opener = urllib.request.OpenerDirector()
for handler in [
urllib.request.ProxyHandler(),
urllib.request.UnknownHandler(),
urllib.request.HTTPSHandler(context=spack.util.web.ssl_create_default_context()),
spack.util.web.SpackHTTPDefaultErrorHandler(),

View File

@@ -15,6 +15,7 @@
"type": "object",
"additionalProperties": False,
"properties": {
"force": {"type": "boolean", "default": False},
"reuse": {
"oneOf": [
{"type": "boolean"},

View File

@@ -140,7 +140,8 @@ def cmake_args(self):
if spec.satisfies("+torch"):
args.append("-DWITH_TORCH=On")
args.append(
"-DTorch_DIR={0}/lib/python{1}/site-packages/torch/share/cmake/Torch".format(
"-DTorch_DIR={0}/lib/python{1}/site-packages"
"/torch/share/cmake/Torch".format(
spec["py-torch"].prefix, spec["python"].version.up_to(2)
)
)

View File

@@ -54,7 +54,7 @@ class Armcomputelibrary(SConsPackage):
variant(
"multi_isa",
default=False,
description="Build Multi ISA binary version of library. Note works only for armv8.2-a.",
description="Build Multi ISA binary version of library." " Note works only for armv8.2-a.",
)
variant(
"target_arch",

View File

@@ -61,7 +61,7 @@ class Atlas(Package):
"tune_cpu",
default=-1,
multi=False,
description="Number of threads to tune to, -1 for autodetect, 0 for no threading",
description="Number of threads to tune to, " "-1 for autodetect, 0 for no threading",
)
conflicts(

View File

@@ -8,9 +8,9 @@
def async_api_validator(pkg_name, variant_name, values):
if "none" in values and len(values) != 1:
raise SpackError("The value 'none' is not usable with other async_api values.")
raise SpackError("The value 'none' is not usable" " with other async_api values.")
if "intel_cppr" in values and "cray_dw" in values:
raise SpackError("The 'intel_cppr' and 'cray_dw' asynchronous APIs are incompatible.")
raise SpackError("The 'intel_cppr' and 'cray_dw' asynchronous" " APIs are incompatible.")
class Axl(CMakePackage):

View File

@@ -376,7 +376,9 @@ def initconfig_hardware_entries(self):
if "+fortran" in spec and self.is_fortran_compiler("xlf"):
# Grab lib directory for the current fortran compiler
libdir = pjoin(os.path.dirname(os.path.dirname(self.compiler.fc)), "lib")
description = "Adds a missing rpath for libraries associated with the fortran compiler"
description = (
"Adds a missing rpath for libraries " "associated with the fortran compiler"
)
linker_flags = "${BLT_EXE_LINKER_FLAGS} -Wl,-rpath," + libdir

View File

@@ -42,7 +42,7 @@ class Bcftools(AutotoolsPackage):
variant(
"libgsl",
default=False,
description="build options that require the GNU scientific library",
description="build options that require the GNU scientific " "library",
)
variant(

View File

@@ -38,7 +38,7 @@ def llnl_link_helpers(options, spec, compiler):
options.append(cmake_cache_string("BLT_EXE_LINKER_FLAGS", flags, description))
if "cce" in compiler.cxx:
description = "Adds a missing rpath for libraries associated with the fortran compiler"
description = "Adds a missing rpath for libraries " "associated with the fortran compiler"
# Here is where to find libs that work for fortran
libdir = "/opt/cray/pe/cce/{0}/cce-clang/x86_64/lib".format(compiler.version)
linker_flags = "${{BLT_EXE_LINKER_FLAGS}} -Wl,-rpath,{0}".format(libdir)

View File

@@ -40,7 +40,9 @@ class Bohrium(CMakePackage, CudaPackage):
variant("node", default=True, description="Build the node vector engine manager")
variant("proxy", default=False, description="Build the proxy vector engine manager")
variant(
"python", default=True, description="Build the numpy-like bridge to enable use from python"
"python",
default=True,
description="Build the numpy-like bridge " "to enable use from python",
)
variant("cbridge", default=True, description="Build the bridge interface towards plain C")

View File

@@ -237,7 +237,7 @@ def libs(self):
values=("global", "protected", "hidden"),
default="hidden",
multi=False,
description="Default symbol visibility in compiled libraries (1.69.0 or later)",
description="Default symbol visibility in compiled libraries " "(1.69.0 or later)",
)
# Unicode support

View File

@@ -53,7 +53,7 @@ class Bzip2(Package, SourcewarePackage):
@classmethod
def determine_version(cls, exe):
output = Executable(exe)("--help", output=str, error=str)
match = re.search(r"bzip2, a block-sorting file compressor. Version ([^,]+)", output)
match = re.search(r"bzip2, a block-sorting file compressor." " Version ([^,]+)", output)
return match.group(1) if match else None
# override default implementation

View File

@@ -71,7 +71,7 @@ class Care(CachedCMakePackage, CudaPackage, ROCmPackage):
variant(
"implicit_conversions",
default=False,
description="Enable implicit conversions to/from raw pointers",
description="Enable implicit" "conversions to/from raw pointers",
)
variant("tests", default=False, description="Build tests")
variant("benchmarks", default=False, description="Build benchmarks.")

View File

@@ -61,7 +61,7 @@ class CcsQcd(MakefilePackage):
def edit(self, spec, prefix):
if spec.satisfies("%gcc") and spec.satisfies("arch=aarch64:"):
chgopt = (
"FFLAGS =-O3 -ffixed-line-length-132 -g -fopenmp -mcmodel=large -funderscoring"
"FFLAGS =-O3 -ffixed-line-length-132 -g -fopenmp" " -mcmodel=large -funderscoring"
)
filter_file(
"FFLAGS =.*",

View File

@@ -131,7 +131,7 @@ class Cgal(CMakePackage):
conflicts(
"~header_only",
when="@:4.9",
msg="Header only builds became optional in 4.9, default thereafter",
msg="Header only builds became optional in 4.9," " default thereafter",
)
def url_for_version(self, version):

View File

@@ -351,7 +351,7 @@ def install(self, spec, prefix):
# This is a Charm++ limitation; it would lead to a
# build error
raise InstallError(
"The +tcp variant requires the backend=netlrts communication mechanism"
"The +tcp variant requires " "the backend=netlrts communication mechanism"
)
options.append("tcp")
if spec.satisfies("+omp"):

View File

@@ -31,9 +31,11 @@ def edit(self, spec, prefix):
# Replace -fopenmp with self.compiler.openmp_flag
makefile.filter("-fopenmp", self.compiler.openmp_flag)
# Replace CXX with CXXFLAGS
cxx11_flag = self.compiler.cxx11_flag
makefile.filter(
"CXX.*=.*", rf"CXXFLAGS = -DCNVNATOR_VERSION=\"$(VERSION)\" $(OMPFLAGS) {cxx11_flag}"
"CXX.*=.*",
r"CXXFLAGS = -DCNVNATOR_VERSION=\"$(VERSION)\""
" $(OMPFLAGS)"
" {0}".format(self.compiler.cxx11_flag),
)
makefile.filter("$(CXX)", "$(CXX) $(CXXFLAGS)", string=True)
# Replace -I$(SAMDIR) with -I$(SAMINC)

View File

@@ -78,7 +78,9 @@ def install(self, spec, prefix):
# rewrite the Makefile to use Spack's options all the time
if spec.satisfies("%gcc"):
if not spec.satisfies("%gcc@6:"):
raise InstallError("When using GCC, CosmoMC requires version gcc@6: for building")
raise InstallError(
"When using GCC, " "CosmoMC requires version gcc@6: for building"
)
choosecomp = "ifortErr=1" # choose gfortran
elif spec.satisfies("%intel"):
if not spec.satifies("%intel@14:"):

View File

@@ -38,10 +38,11 @@ class Cp2k(MakefilePackage, CMakePackage, CudaPackage, ROCmPackage):
git = "https://github.com/cp2k/cp2k.git"
list_url = "https://github.com/cp2k/cp2k/releases"
maintainers("dev-zero", "mtaillefumier")
maintainers("dev-zero", "mtaillefumier", "RMeli", "abussy")
license("GPL-2.0-or-later")
version("2025.1", sha256="65c8ad5488897b0f995919b9fa77f2aba4b61677ba1e3c19bb093d5c08a8ce1d")
version("2024.3", sha256="a6eeee773b6b1fb417def576e4049a89a08a0ed5feffcd7f0b33c7d7b48f19ba")
version("2024.2", sha256="cc3e56c971dee9e89b705a1103765aba57bf41ad39a11c89d3de04c8b8cdf473")
version("2024.1", sha256="a7abf149a278dfd5283dc592a2c4ae803b37d040df25d62a5e35af5c4557668f")
@@ -115,6 +116,7 @@ class Cp2k(MakefilePackage, CMakePackage, CudaPackage, ROCmPackage):
)
variant("pytorch", default=False, description="Enable libtorch support")
variant("quip", default=False, description="Enable quip support")
variant("dftd4", when="@2024.2:", default=False, description="Enable DFT-D4 support")
variant("mpi_f08", default=False, description="Use MPI F08 module")
variant("smeagol", default=False, description="Enable libsmeagol support", when="@2025.2:")
@@ -293,6 +295,8 @@ class Cp2k(MakefilePackage, CMakePackage, CudaPackage, ROCmPackage):
depends_on("spglib", when="+spglib")
depends_on("dftd4@3.6.0: build_system=cmake", when="+dftd4")
with when("build_system=cmake"):
depends_on("cmake@3.22:", type="build")
@@ -624,6 +628,12 @@ def edit(self, pkg, spec, prefix):
ldflags += [spglib.search_flags]
libs.append(spglib.ld_flags)
if spec.satisfies("+dftd4"):
cppflags += ["-D__DFTD4"]
dftd4 = spec["dftd4"].libs
ldflags += [dftd4.search_flags]
libs.append(dftd4.ld_flags)
if spec.satisfies("+smeagol"):
cppflags += ["-D__SMEAGOL"]
smeagol = spec["libsmeagol"].libs
@@ -801,10 +811,9 @@ def edit(self, pkg, spec, prefix):
mkf.write("include {0}\n".format(self.pkg["plumed"].plumed_inc))
mkf.write("\n# COMPILER, LINKER, TOOLS\n\n")
mkf.write(f"FC = {fc}\n")
mkf.write(f"CC = {cc}\n")
mkf.write(f"CXX = {cxx}\n")
mkf.write(f"LD = {fc}\n")
mkf.write(
"FC = {0}\n" "CC = {1}\n" "CXX = {2}\n" "LD = {3}\n".format(fc, cc, cxx, fc)
)
if spec.satisfies("%intel"):
intel_bin_dir = ancestor(pkg.compiler.cc)
@@ -1004,6 +1013,7 @@ def cmake_args(self):
self.define_from_variant("CP2K_USE_VORI", "libvori"),
self.define_from_variant("CP2K_USE_SPLA", "spla"),
self.define_from_variant("CP2K_USE_QUIP", "quip"),
self.define_from_variant("CP2K_USE_DFTD4", "dftd4"),
self.define_from_variant("CP2K_USE_MPI_F08", "mpi_f08"),
self.define_from_variant("CP2K_USE_LIBSMEAGOL", "smeagol"),
]

View File

@@ -153,7 +153,7 @@ class DavSdk(BundlePackage, CudaPackage, ROCmPackage):
# ParaView needs @5.11: in order to use CUDA/ROCM, therefore it is the minimum
# required version since GPU capability is desired for ECP
dav_sdk_depends_on(
"paraview@5.11:+mpi+openpmd+python+kits+shared+catalyst+libcatalyst use_vtkm=on",
"paraview@5.11:+mpi+openpmd+python+kits+shared+catalyst+libcatalyst" " use_vtkm=on",
when="+paraview",
propagate=["adios2", "cuda", "hdf5", "rocm"] + amdgpu_target_variants + cuda_arch_variants,
)

View File

@@ -418,16 +418,18 @@ class Dealii(CMakePackage, CudaPackage):
conflicts(
"+adol-c",
when="^trilinos+chaco",
msg="Symbol clash between the ADOL-C library and Trilinos SEACAS Chaco.",
msg="Symbol clash between the ADOL-C library and " "Trilinos SEACAS Chaco.",
)
conflicts(
"+adol-c",
when="^trilinos+exodus",
msg="Symbol clash between the ADOL-C library and Trilinos Netcdf.",
msg="Symbol clash between the ADOL-C library and " "Trilinos Netcdf.",
)
conflicts(
"+slepc", when="~petsc", msg="It is not possible to enable slepc interfaces without petsc."
"+slepc",
when="~petsc",
msg="It is not possible to enable slepc interfaces " "without petsc.",
)
def cmake_args(self):

View File

@@ -60,7 +60,7 @@ class Dftbplus(CMakePackage, MakefilePackage):
"chimes",
default=False,
when="@21.2:",
description="Whether repulsive corrections via the ChIMES library should be enabled.",
description="Whether repulsive corrections" "via the ChIMES library should be enabled.",
)
variant(
"elsi",
@@ -70,7 +70,9 @@ class Dftbplus(CMakePackage, MakefilePackage):
when="+mpi",
)
variant(
"gpu", default=False, description="Use the MAGMA library for GPU accelerated computation"
"gpu",
default=False,
description="Use the MAGMA library " "for GPU accelerated computation",
)
variant(
"mbd",
@@ -105,7 +107,7 @@ class Dftbplus(CMakePackage, MakefilePackage):
variant(
"sockets",
default=False,
description="Whether the socket library (external control) should be linked",
description="Whether the socket library " "(external control) should be linked",
)
variant(
"transport",
@@ -128,7 +130,7 @@ class Dftbplus(CMakePackage, MakefilePackage):
"dftd3",
default=False,
when="@:19.1",
description="Use DftD3 dispersion library (if you need this dispersion model)",
description="Use DftD3 dispersion library " "(if you need this dispersion model)",
)
depends_on("cmake@3.16:", type="build", when="@20.1:")

View File

@@ -75,7 +75,8 @@ def config_docbook(self):
"--noout",
"--add",
"public",
f"-//OASIS//ENTITIES DocBook XML Additional General Entities V{version}//EN",
"-//OASIS//ENTITIES DocBook XML Additional General Entities "
"V{0}//EN".format(version),
f"file://{prefix}/dbgenent.mod",
docbook,
)
@@ -115,7 +116,7 @@ def config_docbook(self):
"--noout",
"--add",
"public",
"ISO 8879:1986//ENTITIES Added Math Symbols: Arrow Relations//EN",
"ISO 8879:1986//ENTITIES Added Math Symbols: Arrow " "Relations//EN",
f"file://{ent_dir}/isoamsa.ent",
docbook,
)
@@ -123,7 +124,7 @@ def config_docbook(self):
"--noout",
"--add",
"public",
"ISO 8879:1986//ENTITIES Added Math Symbols: Binary Operators//EN",
"ISO 8879:1986//ENTITIES Added Math Symbols: Binary " "Operators//EN",
f"file://{ent_dir}/isoamsb.ent",
docbook,
)
@@ -139,7 +140,7 @@ def config_docbook(self):
"--noout",
"--add",
"public",
"ISO 8879:1986//ENTITIES Added Math Symbols: Negated Relations//EN",
"ISO 8879:1986//ENTITIES Added Math Symbols: " "Negated Relations//EN",
f"file://{ent_dir}/isoamsn.ent",
docbook,
)

View File

@@ -56,7 +56,7 @@ class Dyninst(CMakePackage):
variant(
"openmp",
default=True,
description="Enable OpenMP support for ParseAPI (version 10.0.0 or later)",
description="Enable OpenMP support for ParseAPI " "(version 10.0.0 or later)",
)
variant("static", default=False, description="Build static libraries")

View File

@@ -123,13 +123,13 @@ class Eccodes(CMakePackage):
conflicts(
"+netcdf",
when="~tools",
msg="Cannot enable the NetCDF conversion tool when the command line tools are disabled",
msg="Cannot enable the NetCDF conversion tool " "when the command line tools are disabled",
)
conflicts(
"~tools",
when="@:2.18.0",
msg="The command line tools can be disabled only starting version 2.19.0",
msg="The command line tools can be disabled " "only starting version 2.19.0",
)
for center, definitions in _definitions.items():

View File

@@ -65,7 +65,7 @@ class Eckit(CMakePackage):
variant(
"unicode",
default=True,
description="Enable support for Unicode characters in Yaml/JSON parsers",
description="Enable support for Unicode characters in Yaml/JSON" "parsers",
)
variant("aio", default=True, description="Enable asynchronous IO")
variant("fismahigh", default=False, description="Apply patching for FISMA-high compliance")

View File

@@ -170,7 +170,7 @@ class EcpDataVisSdk(BundlePackage, CudaPackage, ROCmPackage):
# ParaView needs @5.11: in order to use CUDA/ROCM, therefore it is the minimum
# required version since GPU capability is desired for ECP
dav_sdk_depends_on(
"paraview@5.11:+mpi+openpmd+python+kits+shared+catalyst+libcatalyst use_vtkm=on",
"paraview@5.11:+mpi+openpmd+python+kits+shared+catalyst+libcatalyst" " use_vtkm=on",
when="+paraview",
propagate=["adios2", "cuda", "hdf5", "rocm"] + amdgpu_target_variants + cuda_arch_variants,
)

View File

@@ -39,7 +39,7 @@ class Elemental(CMakePackage):
variant(
"int64_blas",
default=False,
description="Use 64bit integers for BLAS. Requires local build of BLAS library.",
description="Use 64bit integers for BLAS." " Requires local build of BLAS library.",
)
variant("scalapack", default=False, description="Build with ScaLAPACK library")
variant(
@@ -57,7 +57,7 @@ class Elemental(CMakePackage):
variant(
"mpfr",
default=False,
description="Support GNU MPFR's arbitrary-precision floating-point arithmetic",
description="Support GNU MPFR's" "arbitrary-precision floating-point arithmetic",
)
# Note that #1712 forces us to enumerate the different blas variants

View File

@@ -12,7 +12,7 @@ class Embree(CMakePackage):
url = "https://github.com/embree/embree/archive/v3.7.0.tar.gz"
maintainers("aumuell")
license("Apache-2.0")
license("Apache-2.0", checked_by="wdconinc")
version("4.3.3", sha256="8a3bc3c3e21aa209d9861a28f8ba93b2f82ed0dc93341dddac09f1f03c36ef2d")
version("4.3.2", sha256="dc7bb6bac095b2e7bc64321435acd07c6137d6d60e4b79ec07bb0b215ddf81cb")
@@ -60,9 +60,10 @@ def cmake_args(self):
spec = self.spec
args = [
"-DBUILD_TESTING=OFF",
"-DEMBREE_TUTORIALS=OFF",
"-DEMBREE_IGNORE_CMAKE_CXX_FLAGS=ON",
self.define("BUILD_TESTING", self.run_tests),
self.define("EMBREE_TUTORIALS", self.run_tests),
self.define("EMBREE_TUTORIALS_GLFW", False),
self.define("EMBREE_IGNORE_CMAKE_CXX_FLAGS", True),
self.define_from_variant("EMBREE_ISPC_SUPPORT", "ispc"),
]

View File

@@ -48,7 +48,7 @@ def patch(self):
)
edit = FileFilter("CMakeLists.txt")
edit.filter(
r"\${CMAKE_CURRENT_SOURCE_DIR}/../bamtools/lib/libbamtools.a",
r"\${CMAKE_CURRENT_SOURCE_DIR}/../bamtools/lib/" "libbamtools.a",
"%s" % self.spec["bamtools"].libs,
)

View File

@@ -31,12 +31,12 @@ class Flamemaster(CMakePackage):
variant(
"bilin_omega",
default=True,
description="Compile with bilinear interpolation for collision integrals (omega)",
description="Compile with bilinear interpolation" "for collision integrals (omega)",
)
variant(
"combustion",
default=False,
description="Integrate comustion libraries for kinetics, thermodynamics, and transport",
description="Integrate comustion libraries" "for kinetics, thermodynamics, and transport",
)
variant(
"fortran_code",
@@ -109,7 +109,7 @@ class Flamemaster(CMakePackage):
variant(
"tests",
default=False,
description="Install google-test framework for unit tests and enable units tests.",
description="Install google-test framework for unit tests" "and enable units tests.",
)
variant(
"third_party_in_build_dir",

View File

@@ -63,7 +63,7 @@ class Flexi(CMakePackage):
"parabolic",
default=True,
description=(
"Defines whether the parabolic part of the chosen system should be included or not"
"Defines whether the parabolic part of the chosen system " "should be included or not"
),
)
variant(

View File

@@ -66,7 +66,7 @@ class Fortrilinos(CMakePackage):
depends_on("trilinos gotype=long_long")
# Full trilinos dependencies
depends_on(
"trilinos+amesos2+anasazi+belos+kokkos+ifpack2+muelu+nox+tpetra+stratimikos", when="+hl"
"trilinos+amesos2+anasazi+belos+kokkos+ifpack2+muelu+nox+tpetra" "+stratimikos", when="+hl"
)
@run_before("cmake")

View File

@@ -35,7 +35,9 @@ class Freeipmi(AutotoolsPackage):
def configure_args(self):
# FIXME: If root checking of root installation is added fix this:
# Discussed in issue #4432
tty.warn("Requires 'root' for bmc-watchdog.service installation to /lib/systemd/system/ !")
tty.warn(
"Requires 'root' for bmc-watchdog.service installation to" " /lib/systemd/system/ !"
)
args = [
"--prefix={0}".format(prefix),

View File

@@ -599,7 +599,9 @@ def determine_variants(cls, exes, version_str):
@classmethod
def validate_detected_spec(cls, spec, extra_attributes):
# For GCC 'compilers' is a mandatory attribute
msg = f"the extra attribute 'compilers' must be set for the detected spec '{spec}'"
msg = 'the extra attribute "compilers" must be set for ' 'the detected spec "{0}"'.format(
spec
)
assert "compilers" in extra_attributes, msg
compilers = extra_attributes["compilers"]
@@ -798,11 +800,6 @@ def configure_args(self):
"--with-as=" + binutils.join("as"),
]
)
elif spec.satisfies("%apple-clang@15:"):
# https://github.com/iains/gcc-darwin-arm64/issues/117
# https://github.com/iains/gcc-12-branch/issues/22
# https://github.com/iains/gcc-13-branch/issues/8
options.append("--with-ld=/Library/Developer/CommandLineTools/usr/bin/ld-classic")
# enable_bootstrap
if spec.satisfies("+bootstrap"):
@@ -1088,7 +1085,8 @@ def detect_gdc(self):
return candidate_gdc
else:
raise InstallError(
f"Can't resolve ambiguity when detecting GDC for %{self.compiler.spec}",
"Cannot resolve ambiguity when detecting GDC that belongs to "
"%{0}".format(self.compiler.spec),
long_msg="The candidates are:{0}{0}{1}{0}".format(
error_nl,
error_nl.join(

View File

@@ -12,7 +12,7 @@ class GhostscriptFonts(Package, SourceforgePackage):
homepage = "https://ghostscript.com/"
sourceforge_mirror_path = (
"gs-fonts/gs-fonts/8.11%20%28base%2035%2C%20GPL%29/ghostscript-fonts-std-8.11.tar.gz"
"gs-fonts/gs-fonts/8.11%20%28base%2035%2C%20GPL%29/" "ghostscript-fonts-std-8.11.tar.gz"
)
license("GPL-2.0-or-later")

View File

@@ -55,7 +55,7 @@ class Graphviz(AutotoolsPackage):
variant(
lang,
default=False,
description="Enable for optional {0} language bindings".format(lang),
description="Enable for optional {0} language " "bindings".format(lang),
)
# Feature variants
@@ -147,7 +147,7 @@ class Graphviz(AutotoolsPackage):
conflicts(
"%gcc@:5.9",
when="@2.40.1+qt ^qt@5:",
msg="graphviz-2.40.1 needs gcc-6 or greater to compile with QT5 suppport",
msg="graphviz-2.40.1 needs gcc-6 or greater to compile with QT5 " "suppport",
)
def autoreconf(self, spec, prefix):

View File

@@ -53,7 +53,7 @@ class Grpc(CMakePackage):
variant(
"codegen",
default=True,
description="Builds code generation plugins for protobuf compiler (protoc)",
description="Builds code generation plugins for protobuf " "compiler (protoc)",
)
variant(
"cxxstd",

View File

@@ -602,7 +602,7 @@ def ensure_parallel_compiler_wrappers(self):
# 1.10.6 and 1.12.0. The current develop versions do not produce 'h5pfc'
# at all. Here, we make sure that 'h5pfc' is available when Fortran and
# MPI support are enabled (only for versions that generate 'h5fc').
if self.spec.satisfies("@1.8.22:1.8, 1.10.6:1.10.9, 1.12.0:1.12.2 +fortran+mpi"):
if self.spec.satisfies("@1.8.22:1.8," "1.10.6:1.10.9," "1.12.0:1.12.2" "+fortran+mpi"):
with working_dir(self.prefix.bin):
# No try/except here, fix the condition above instead:
symlink("h5fc", "h5pfc")

View File

@@ -26,7 +26,7 @@ class Hicops(CMakePackage):
variant(
"timemory",
default=False,
description="Enable timemory interface. Requires timemory installation.",
description="Enable timemory interface. Requires timemory " "installation.",
)
variant(
"mpip",
@@ -37,7 +37,7 @@ class Hicops(CMakePackage):
variant(
"tailfit",
default=True,
description="Use the tailfit method instead of Gumbelfit for e-value computation.",
description="Use the tailfit method instead of Gumbelfit " "for e-value computation.",
)
variant("progress", default=True, description="Display HiCOPS progress marks.")
variant(
@@ -50,14 +50,14 @@ class Hicops(CMakePackage):
variant(
"qalen",
default="100",
description="Maximum number of top K peaks to keep when spectrum preprocess.",
description="Maximum number of top K peaks to keep when " "spectrum preprocess.",
values=int,
multi=False,
)
variant(
"qchunk",
default="10000",
description="Max size of each batch extracted from the dataset.",
description="Max size of each batch extracted from the " "dataset.",
values=int,
multi=False,
)

View File

@@ -85,7 +85,7 @@ class Hiop(CMakePackage, CudaPackage, ROCmPackage):
variant(
"deepchecking",
default=False,
description="Ultra safety checks - used for increased robustness and self-diagnostics",
description="Ultra safety checks - " "used for increased robustness and self-diagnostics",
)
variant("ginkgo", default=False, description="Enable/disable ginkgo solver")
variant(

View File

@@ -181,8 +181,7 @@ def configure_args(self):
"--with-openjdk-checksum=no",
"--with-nashorn-src-zip=" + self.stage[8].archive_file,
"--with-nashorn-checksum=no",
"--disable-maintainer-mode",
"--disable-downloading",
"--disable-maintainer-mode" "--disable-downloading",
"--disable-system-pcsc",
"--disable-system-sctp",
"--disable-system-kerberos",

View File

@@ -38,7 +38,7 @@ class JsonC(CMakePackage, AutotoolsPackage):
def patch(self):
filter_file(
"-Wextra",
"-Wextra -Wno-error=implicit-fallthrough -Wno-error=unused-but-set-variable",
"-Wextra -Wno-error=implicit-fallthrough " "-Wno-error=unused-but-set-variable",
"Makefile.in",
)

View File

@@ -68,7 +68,7 @@ class Jsoncpp(CMakePackage, MesonPackage):
def patch(self):
filter_file(
"return d >= min && d <= max;",
"return d >= static_cast<double>(min) && d <= static_cast<double>(max);",
"return d >= static_cast<double>(min) && " "d <= static_cast<double>(max);",
"src/lib_json/json_value.cpp",
)

View File

@@ -45,7 +45,7 @@ class Libcint(CMakePackage):
variant(
"pypzpx",
default=False,
description="Enforce PYPZPX ordering of p-orbitals instead of PXPYPZ.",
description="Enforce PYPZPX ordering of p-orbitals " "instead of PXPYPZ.",
)
variant("test", default=False, description="Build test programs")
variant("shared", default=True, description="Build the shared library")

View File

@@ -59,7 +59,7 @@ class Libint(AutotoolsPackage):
"fma",
default=False,
description=(
"Generate code utilizing FMA (requires capable CPU and recent enough compiler)"
"Generate code utilizing FMA" " (requires capable CPU and recent enough compiler)"
),
)

View File

@@ -73,7 +73,9 @@ class Libunwind(AutotoolsPackage):
variant("xz", default=False, description="Support xz (lzma) compressed symbol tables.")
variant(
"zlib", default=False, description="Support zlib compressed symbol tables (1.5 and later)."
"zlib",
default=False,
description="Support zlib compressed symbol tables " "(1.5 and later).",
)
# The libunwind releases contain the autotools generated files,

View File

@@ -55,7 +55,7 @@ class LlvmDoe(CMakePackage, CudaPackage):
variant(
"polly",
default=True,
description="Build the LLVM polyhedral optimization plugin, only builds for 3.7.0+",
description="Build the LLVM polyhedral optimization plugin, " "only builds for 3.7.0+",
)
variant("libcxx", default=True, description="Build the LLVM C++ standard library")
variant(
@@ -288,7 +288,9 @@ def determine_variants(cls, exes, version_str):
@classmethod
def validate_detected_spec(cls, spec, extra_attributes):
# For LLVM 'compilers' is a mandatory attribute
msg = f"the extra attribute 'compilers' must be set for the detected spec '{spec}'"
msg = 'the extra attribute "compilers" must be set for ' 'the detected spec "{0}"'.format(
spec
)
assert "compilers" in extra_attributes, msg
compilers = extra_attributes["compilers"]
for key in ("c", "cxx"):

View File

@@ -724,7 +724,9 @@ def determine_variants(cls, exes, version_str):
@classmethod
def validate_detected_spec(cls, spec, extra_attributes):
# For LLVM 'compilers' is a mandatory attribute
msg = f"the extra attribute 'compilers' must be set for the detected spec '{spec}'"
msg = 'the extra attribute "compilers" must be set for ' 'the detected spec "{0}"'.format(
spec
)
assert "compilers" in extra_attributes, msg
compilers = extra_attributes["compilers"]
for key in ("c", "cxx"):

View File

@@ -41,7 +41,7 @@ class Mariadb(CMakePackage):
variant(
"nonblocking",
default=True,
description="Allow non blocking operations in the mariadb client library.",
description="Allow non blocking " "operations in the mariadb client library.",
)
provides("mariadb-client")

View File

@@ -56,7 +56,7 @@ def patch(self):
# workaround anonymous version tag linker error for the NVIDIA
# compilers
filter_file(
"${wl}-version-script ${wl}$output_objdir/$libname.ver",
"${wl}-version-script " "${wl}$output_objdir/$libname.ver",
"",
"configure",
string=True,

View File

@@ -83,7 +83,7 @@ class Mvapich2(MpichEnvironmentModifications, AutotoolsPackage):
description="List of the process managers to activate",
values=disjoint_sets(("auto",), ("slurm",), ("hydra", "gforker", "remshell"))
.prohibit_empty_set()
.with_error("'slurm' or 'auto' cannot be activated along with other process managers")
.with_error("'slurm' or 'auto' cannot be activated along with " "other process managers")
.with_default("auto")
.with_non_feature_values("auto"),
)

View File

@@ -182,7 +182,7 @@ def construct_ldflags(self):
spec = self.spec
xpmem_ldflags = ""
if "feature=basic-xpmem" in spec or "feature=advanced-xpmem" in spec:
xpmem_ldflags = " -Wl,-rpath,/opt/xpmem/lib -L/opt/xpmem/lib -lxpmem"
xpmem_ldflags = " -Wl,-rpath,/opt/xpmem/lib " "-L/opt/xpmem/lib -lxpmem"
# Add default LDFLAGS and combine together
LDFLAGS = "LDFLAGS=-Wl,-rpath,XORIGIN/placeholder"

View File

@@ -241,7 +241,7 @@ def _edit_arch_target_based(self, spec, prefix):
tty.info("Building binaries with AVX512-tile optimization")
copy("Linux-AVX512-icc.arch", arch_filename)
elif spec.version >= Version("2.14") and os.path.exists("Linux-SKX-icc.arch"):
tty.info("Building binaries with Skylake-X AVX512 optimization")
tty.info("Building binaries with Skylake-X" "AVX512 optimization")
copy("Linux-SKX-icc.arch", arch_filename)
else:
return False

View File

@@ -81,7 +81,7 @@ def patch(self):
if self.spec.satisfies("@:22_0_0 ^boost@1.70:"):
with working_dir(join_path("include", "corelib")):
filter_file(
("unit_test::ut_detail::ignore_unused_variable_warning"),
("unit_test::ut_detail::" "ignore_unused_variable_warning"),
"ignore_unused",
"test_boost.hpp",
string=True,

View File

@@ -162,7 +162,7 @@ def patch(self):
def install(self, spec, prefix):
if (self.compiler.fc is None) or (self.compiler.cc is None):
raise InstallError("NCL package requires both C and Fortran compilers.")
raise InstallError("NCL package requires both " "C and Fortran compilers.")
self.prepare_site_config()
self.prepare_install_config()

View File

@@ -151,7 +151,9 @@ def install(self, spec, prefix):
filter_file(r"\$\(OLAGS\)", "-qextname $(OLAGS)", join_path("postnek", "makefile"))
# Define 'rename_' function that calls 'rename'
with open(join_path("postnek", "xdriver.c"), "a") as xdriver:
xdriver.write("\nvoid rename_(char *from, char *to)\n{\n rename(from, to);\n}\n")
xdriver.write(
"\nvoid rename_(char *from, char *to)\n{\n" " rename(from, to);\n}\n"
)
maxnel = self.spec.variants["MAXNEL"].value
filter_file(r"^#MAXNEL\s*=.*", "MAXNEL=" + maxnel, "maketools")

View File

@@ -53,7 +53,7 @@ class Ngspice(AutotoolsPackage):
variant(
"debug",
default="auto",
description="Enable debugging features: auto is yes for build=lib, no for build=bin",
description="Enable debugging features: " "auto is yes for build=lib, no for build=bin",
values=("auto", "yes", "no"),
multi=False,
)

View File

@@ -360,8 +360,8 @@ def test_recipe(self):
expected = [
"Running octopus",
"CalculationMode = recipe",
"DISCLAIMER: The authors do not guarantee that the implementation",
'recipe leads to an edible dish, for it is clearly "system-dependent".',
"DISCLAIMER: The authors do not " "guarantee that the implementation",
"recipe leads to an edible dish, " 'for it is clearly "system-dependent".',
"Calculation ended on",
]

View File

@@ -473,7 +473,7 @@ class Openmpi(AutotoolsPackage, CudaPackage):
values=disjoint_sets(
("auto",), FABRICS # shared memory transports
).with_non_feature_values("auto", "none"),
description="List of fabrics that are enabled; 'auto' lets openmpi determine",
description="List of fabrics that are enabled; " "'auto' lets openmpi determine",
)
SCHEDULERS = ("alps", "lsf", "tm", "slurm", "sge", "loadleveler")
@@ -694,7 +694,7 @@ def patch(self):
conflicts(
"schedulers=loadleveler",
when="@3:",
msg="The loadleveler scheduler is not supported with openmpi(>=3).",
msg="The loadleveler scheduler is not supported with " "openmpi(>=3).",
)
# According to this comment on github:

View File

@@ -29,17 +29,17 @@ class P3dfft3(AutotoolsPackage):
variant(
"measure",
default=False,
description="Define if you want to use the measure fftw planner flag",
description="Define if you want to use" "the measure fftw planner flag",
)
variant(
"estimate",
default=False,
description="Define if you want to use the estimate fftw planner flag",
description="Define if you want to" "use the estimate fftw planner flag",
)
variant(
"patient",
default=False,
description="Define if you want to use the patient fftw planner flag",
description="Define if you want to" "use the patient fftw planner flag",
)
# TODO: Add more configure options!

View File

@@ -26,7 +26,7 @@ class Paradiseo(CMakePackage):
variant(
"mpi",
default=True,
description="Compile with parallel and distributed metaheuristics module",
description="Compile with parallel and distributed " "metaheuristics module",
)
variant("smp", default=True, description="Compile with symmetric multi-processing module ")
variant("edo", default=True, description="Compile with (Experimental) EDO module")

View File

@@ -41,7 +41,7 @@ class Pcre(AutotoolsPackage, CMakePackage):
variant(
"utf",
default=True,
description="Enable support for UTF-8/16/32, incompatible with EBCDIC.",
description="Enable support for UTF-8/16/32, " "incompatible with EBCDIC.",
)
variant("shared", default=True, description="Build shared libraries")

View File

@@ -138,7 +138,7 @@ class Phist(CMakePackage):
variant(
"fortran",
default=True,
description="generate Fortran 2003 bindings (requires Python3 and a Fortran compiler)",
description="generate Fortran 2003 bindings (requires Python3 and " "a Fortran compiler)",
)
# Build error with LLVM and recent Trilinos, fixed in phist-1.12.1

View File

@@ -75,7 +75,7 @@ def build_targets(self):
if "%gcc" in self.spec:
targets.append(
"FARGS=-g -fbounds-check -O3 -fopenmp -JModules -fallow-argument-mismatch"
"FARGS=-g -fbounds-check -O3 -fopenmp " "-JModules -fallow-argument-mismatch"
)
return targets

View File

@@ -34,7 +34,7 @@ class Pism(CMakePackage):
variant(
"proj",
default=True,
description="Use Proj to compute cell areas, longitudes, and latitudes.",
description="Use Proj to compute cell areas, " "longitudes, and latitudes.",
)
variant("parallel-netcdf4", default=False, description="Enables parallel NetCDF-4 I/O.")
variant(

View File

@@ -38,7 +38,7 @@ def check_fortran(self):
if self.spec.satisfies("+fortran"):
if is_no_fortran_compiler:
raise InstallError(
"pnmpi+fortran requires Fortran compiler but no Fortran compiler found!"
"pnmpi+fortran requires Fortran compiler " "but no Fortran compiler found!"
)
def cmake_args(self):

View File

@@ -29,7 +29,7 @@ class Postgis(AutotoolsPackage):
"gui",
default=False,
description=(
"Build with GUI support, creating shp2pgsql-gui graphical interface to shp2pgsql"
"Build with GUI support, creating shp2pgsql-gui graphical interface " "to shp2pgsql"
),
)

View File

@@ -44,7 +44,7 @@ class Povray(AutotoolsPackage):
variant(
"io-restrictions",
default=True,
description="Enable POV-Rays mechanism for control of I/O operations",
description="Enable POV-Rays mechanism for control of I/O " "operations",
)
variant("jpeg", default=True, description="Build with jpeg support")
variant("libpng", default=True, description="Build with libpng support")

View File

@@ -27,7 +27,7 @@ class PyCharm4py(PythonPackage):
variant(
"mpi",
default=True,
description="build Charm++ library with the MPI instead of TCP communication layer",
description="build Charm++ library with the MPI instead of TCP" " communication layer",
)
# Builds its own charm++, so no charmpp dependency

View File

@@ -0,0 +1,20 @@
# Copyright Spack Project Developers. See COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
from spack.package import *
class PyDacite(PythonPackage):
"""Simple creation of data classes from dictionaries."""
homepage = "https://github.com/konradhalas/dacite"
pypi = "dacite/dacite-1.8.0.tar.gz"
license("MIT")
version("1.8.0", sha256="6257a5e505b61a8cafee7ef3ad08cf32ee9b885718f42395d017e0a9b4c6af65")
depends_on("python@3.6:")
depends_on("py-setuptools", type="build")

View File

@@ -17,6 +17,7 @@ class PyDatasets(PythonPackage):
license("Apache-2.0")
version("3.2.0", sha256="9a6e1a356052866b5dbdd9c9eedb000bf3fc43d986e3584d9b028f4976937229")
version("2.20.0", sha256="3c4dbcd27e0f642b9d41d20ff2efa721a5e04b32b2ca4009e0fc9139e324553f")
version("2.8.0", sha256="a843b69593914071f921fc1086fde939f30a63415a34cdda5db3c0acdd58aff2")
version("1.8.0", sha256="d57c32bb29e453ee7f3eb0bbca3660ab4dd2d0e4648efcfa987432624cab29d3")
@@ -30,7 +31,7 @@ class PyDatasets(PythonPackage):
depends_on("py-pandas")
depends_on("py-requests@2.19:")
depends_on("py-xxhash")
depends_on("py-multiprocess")
depends_on("py-multiprocess@:0.70.16")
depends_on("py-packaging")
with when("@:1.8.0"):
depends_on("py-dill@:0.3.6")
@@ -39,24 +40,28 @@ class PyDatasets(PythonPackage):
depends_on("py-huggingface-hub@:0.0")
depends_on("py-importlib-metadata", when="^python@:3.7")
depends_on("py-pyarrow@1:3+parquet")
depends_on("py-tqdm@4.27:4.49", when="@:1.8.0")
depends_on("py-tqdm@4.27:4.49")
with when("@2.8.0"):
depends_on("py-responses@:0.18")
with when("@2.8.0:"):
depends_on("py-aiohttp")
depends_on("py-pyyaml@5.1:")
depends_on("python@3.7:")
with when("@2.8.0"):
depends_on("py-dill@:0.3.6")
depends_on("py-fsspec@2021.11.1:+http")
depends_on("py-huggingface-hub@0.2:0")
depends_on("py-pyarrow@6:+parquet")
depends_on("py-responses@:0.18")
depends_on("py-tqdm@4.62.1:")
depends_on("python@3.7:")
with when("@2.20.0:"):
depends_on("py-filelock")
depends_on("py-dill@0.3.0:0.3.8") # temporary upper bound
depends_on("py-fsspec@2023.1.0:2024.5.0+http")
depends_on("py-huggingface-hub@0.21.2:")
depends_on("py-pyarrow@15:+parquet")
depends_on("py-pyarrow@15:+parquet+dataset")
depends_on("py-requests@2.32.2:")
depends_on("py-tqdm@4.66.3:")
depends_on("python@3.8:")
with when("@3.2.0:"):
depends_on("py-huggingface-hub@0.23.0:")
depends_on("py-fsspec@2023.1.0:2024.9.0+http")
depends_on("python@3.9:")

View File

@@ -0,0 +1,37 @@
# Copyright Spack Project Developers. See COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
from spack.package import *
class PyNanotron(PythonPackage):
"""Minimalistic large language model 3D-parallelism training."""
homepage = "https://github.com/huggingface/nanotron"
url = "https://github.com/huggingface/nanotron/archive/refs/tags/v0.4.tar.gz"
git = "https://github.com/huggingface/nanotron.git"
maintainers("thomas-bouvier")
license("Apache-2.0")
version("main", branch="main")
version("0.4", sha256="30e9cdd07e86166dd9690351d9d995b3560810044fdca64737ed042cd91c792a")
variant("examples", default=True, description="Build with example scripts support")
depends_on("python@3.6:3.11")
depends_on("py-setuptools", type="build")
depends_on("py-torch@1.13.0:", type=("build", "run"))
depends_on("py-pyyaml", type=("build", "run"))
depends_on("py-numpy@:2", type=("build", "run"))
depends_on("py-packaging", type=("build", "run"))
depends_on("py-safetensors", type=("build", "run"))
depends_on("py-dacite", type=("build", "run"))
depends_on("py-tqdm", type=("build", "run"))
depends_on("py-datasets", type=("build", "run"), when="@0.5:")
depends_on("py-transformers", type=("build", "run"), when="+examples")
depends_on("py-flash-attn", type=("build", "run"), when="+examples")

View File

@@ -11,6 +11,8 @@ class PySafetensors(PythonPackage):
homepage = "https://github.com/huggingface/safetensors"
pypi = "safetensors/safetensors-0.3.1.tar.gz"
maintainers("thomas-bouvier")
version("0.4.5", sha256="d73de19682deabb02524b3d5d1f8b3aaba94c72f1bbfc7911b9b9d5d391c0310")
version("0.4.3", sha256="2f85fc50c4e07a21e95c24e07460fe6f7e2859d0ce88092838352b798ce711c2")
version("0.3.1", sha256="571da56ff8d0bec8ae54923b621cda98d36dcef10feb36fd492c4d0c2cd0e869")

View File

@@ -13,6 +13,8 @@ class PySphinxRtdTheme(PythonPackage):
license("MIT")
version("3.0.0", sha256="905d67de03217fd3d76fbbdd992034ac8e77044ef8063a544dda1af74d409e08")
version("2.0.0", sha256="bd5d7b80622406762073a04ef8fadc5f9151261563d47027de09910ce03afe6b")
version("1.2.2", sha256="01c5c5a72e2d025bd23d1f06c59a4831b06e6ce6c01fdd5ebfe9986c0a880fc7")
version("1.2.0", sha256="a0d8bd1a2ed52e0b338cbe19c4b2eef3c5e7a048769753dac6a9f059c7b641b8")
version("1.0.0", sha256="eec6d497e4c2195fa0e8b2016b337532b8a699a68bcb22a512870e16925c6a5c")
@@ -21,13 +23,20 @@ class PySphinxRtdTheme(PythonPackage):
version("0.5.0", sha256="22c795ba2832a169ca301cd0a083f7a434e09c538c70beb42782c073651b707d")
version("0.4.3", sha256="728607e34d60456d736cc7991fd236afb828b21b82f956c5ea75f94c8414040a")
depends_on("python@3.8:", when="@3:")
depends_on("python@3.6:", when="@:2")
depends_on("python@:3.11", when="@:1.0.0") # distutils was removed in python@3.12
depends_on("py-setuptools", type="build")
depends_on("py-sphinx@1.6:6", when="@1:", type=("build", "run"))
depends_on("py-sphinx@6:8", when="@3:", type=("build", "run"))
depends_on("py-sphinx@5:7", when="@2", type=("build", "run"))
depends_on("py-sphinx@1.6:6", when="@1", type=("build", "run"))
depends_on("py-sphinx@:6", when="@0", type=("build", "run"))
depends_on("py-docutils@:0.18", when="@1.2:", type=("build", "run"))
depends_on("py-docutils@0.19:0.21", when="@3:", type=("build", "run"))
depends_on("py-docutils@:0.20", when="@2", type=("build", "run"))
depends_on("py-docutils@:0.18", when="@1.2.0", type=("build", "run"))
depends_on("py-docutils@:0.17", when="@1:1.1", type=("build", "run"))
depends_on("py-docutils@:0.16", when="@0.5.2:0", type=("build", "run"))
depends_on("py-sphinxcontrib-jquery@4", when="@2:", type=("build", "run"))
depends_on("py-sphinxcontrib-jquery@4", when="@1.2.2:", type=("build", "run"))
depends_on("py-sphinxcontrib-jquery@2:", when="@1.2:1.2.1", type=("build", "run"))
conflicts("^py-sphinxcontrib-jquery@3.0.0")

View File

@@ -51,13 +51,15 @@ class PyUproot(PythonPackage):
variant("xrootd", default=True, description="Build with xrootd support ")
variant(
"lz4", default=True, description="Build with support for reading lz4-compressed rootfiles "
"lz4",
default=True,
description="Build with support for reading " "lz4-compressed rootfiles ",
)
variant(
"zstd",
default=True,
description="Build with support for reading zstd-compressed rootfiles ",
description="Build with support for reading " "zstd-compressed rootfiles ",
)
depends_on("python@2.6:2,3.5:", type=("build", "run"))

View File

@@ -132,13 +132,15 @@ class Qmcpack(CMakePackage, CudaPackage):
conflicts("%gcc@:8", when="@3.15.0:")
# QMCPACK 3.10.0 increased the minimum requirements for compiler versions
newer_compiler_warning = "QMCPACK v3.10.0 or later requires a newer version of this compiler"
newer_compiler_warning = (
"QMCPACK v3.10.0 or later requires a newer " "version of this compiler"
)
conflicts("%gcc@:6", when="@3.10.0:", msg=newer_compiler_warning)
conflicts("%intel@:18", when="@3.10.0:", msg=newer_compiler_warning)
conflicts("%clang@:6", when="@3.10.0:", msg=newer_compiler_warning)
# QMCPACK 3.6.0 or later requires support for C++14
cpp14_warning = "QMCPACK v3.6.0 or later requires a compiler with support for C++14"
cpp14_warning = "QMCPACK v3.6.0 or later requires a " "compiler with support for C++14"
conflicts("%gcc@:4", when="@3.6.0:", msg=cpp14_warning)
conflicts("%intel@:17", when="@3.6.0:", msg=cpp14_warning)
conflicts("%clang@:3.4", when="@3.6.0:", msg=cpp14_warning)
@@ -328,7 +330,7 @@ def cmake_args(self):
cuda_arch = cuda_arch_list[0]
if len(cuda_arch_list) > 1:
raise InstallError(
"QMCPACK only supports compilation for a single GPU architecture at a time"
"QMCPACK only supports compilation for a single " "GPU architecture at a time"
)
if "@3.14.0:" in self.spec:
args.append("-DCMAKE_CUDA_ARCHITECTURES={0}".format(cuda_arch))

View File

@@ -191,7 +191,7 @@ class QuantumEspresso(CMakePackage, Package):
)
conflicts(
"@6.3:6.4.0 hdf5=serial",
msg="QE-to-QMCPACK wave function converter only supported with parallel HDF5",
msg="QE-to-QMCPACK wave function converter only " "supported with parallel HDF5",
)
conflicts("@:7.0 hdf5=none", msg="QE-to-QMCPACK wave function converter requires HDF5")
# QE > 7.0, the converter for QMCPACK can be built without hdf5 enabled in QE.

View File

@@ -27,7 +27,7 @@ class R3d(CMakePackage):
"r3d_max_verts",
default="0",
description=(
"Maximum number of vertices allowed in a polyhedron (versions 2021-03-10 or later)"
"Maximum number of vertices allowed in a polyhedron " "(versions 2021-03-10 or later)"
),
)

View File

@@ -52,7 +52,7 @@ class Regcm(AutotoolsPackage):
variant(
"pnetcdf",
default=False,
description="Build NetCDF using the high performance parallel NetCDF implementation.",
description="Build NetCDF using the high performance parallel " "NetCDF implementation.",
)
depends_on("netcdf-c")
@@ -110,13 +110,13 @@ def configure_args(self):
# compiler from GCC and Intel, which are the only compiler
# supported by RegCM 4.7.x.
raise InstallError(
"Architecture optimizations are available only for GCC and Intel compilers."
"Architecture optimizations are available " "only for GCC and Intel compilers."
)
if len(optimizations) > 1 and self.spec.satisfies(r"%gcc"):
# https://github.com/spack/spack/issues/974
raise InstallError(
"The GCC compiler does not support multiple architecture optimizations."
"The GCC compiler does not support " "multiple architecture optimizations."
)
# RegCM configure script treats --disable-X as --enable-X, so we

View File

@@ -64,7 +64,7 @@ class Relion(CMakePackage, CudaPackage):
"allow_ctf_in_sagd",
default=True,
description=(
"Allow CTF-modulation in SAGD, as specified in Claim 1 of patent US10,282,513B2"
"Allow CTF-modulation in SAGD, " "as specified in Claim 1 of patent US10,282,513B2"
),
)
variant("altcpu", default=False, description="Use CPU acceleration", when="~cuda")
@@ -72,7 +72,7 @@ class Relion(CMakePackage, CudaPackage):
variant(
"external_motioncor2",
default=False,
description="Have external motioncor2 available in addition to Relion builtin",
description="Have external motioncor2 available in addition to " "Relion builtin",
)
depends_on("mpi")

View File

@@ -149,7 +149,7 @@ def install_pkgconfig(self):
f.write("\n")
f.write("Name: rocksdb\n")
f.write(
"Description: RocksDB: A Persistent Key-Value Store for Flash and RAM Storage\n"
"Description: RocksDB: A Persistent Key-Value Store for" " Flash and RAM Storage\n"
)
f.write("Version: {0}\n".format(self.spec.version))
f.write("Cflags: -I${includedir}\n")

View File

@@ -120,8 +120,7 @@ def configure_args(self):
"--disable-gdbtk",
"--disable-shared",
"--with-expat",
"--with-system-zlib",
"--without-guile",
"--with-system-zlib" "--without-guile",
"--with-babeltrace",
"--with-lzma",
"--with-python",

View File

@@ -204,7 +204,7 @@ class Root(CMakePackage):
variant(
"gminimal",
default=True,
description="Ignore most of Root's feature defaults except for basic graphic options",
description="Ignore most of Root's feature defaults except for " "basic graphic options",
)
variant("gsl", default=True, description="Enable linking against shared libraries for GSL")
variant("http", default=False, description="Enable HTTP server support")
@@ -227,7 +227,7 @@ class Root(CMakePackage):
variant(
"mlp",
default=False,
description="Enable support for TMultilayerPerceptron classes' federation",
description="Enable support for TMultilayerPerceptron " "classes' federation",
)
variant("mysql", default=False, description="Enable support for MySQL databases")
variant("opengl", default=True, description="Enable OpenGL support")

View File

@@ -121,7 +121,7 @@ def patch(self):
if self.spec.satisfies("@0.8.2:0.9.1"):
filter_file(
"${FAST_MALLOC_LIB}",
"${FAST_MALLOC_LIB}\n${CMAKE_DL_LIBS}",
"${FAST_MALLOC_LIB}\n" "${CMAKE_DL_LIBS}",
"src/CMakeLists.txt",
string=True,
)

View File

@@ -102,7 +102,7 @@ class Scr(CMakePackage):
"dtcmp",
default=True,
when="@:2",
description="Build with DTCMP. Necessary to enable user directory naming at runtime",
description="Build with DTCMP. " "Necessary to enable user directory naming at runtime",
)
depends_on("dtcmp", when="+dtcmp")
depends_on("dtcmp", when="@3:")

View File

@@ -40,7 +40,7 @@ class Serialbox(CMakePackage):
variant(
"std-filesystem",
default=True,
description="use std::experimental::filesystem (no dependency on compiled boost libs)",
description="use std::experimental::filesystem (no dependency on " "compiled boost libs)",
)
depends_on("cmake@3.12:", type="build")
@@ -73,12 +73,12 @@ class Serialbox(CMakePackage):
conflicts(
"+ftg",
when="~fortran",
msg="the FortranTestGenerator frontend requires the Fortran interface",
msg="the FortranTestGenerator frontend requires the Fortran " "interface",
)
conflicts(
"+ftg",
when="@:2.2.999",
msg="the FortranTestGenerator frontend is supported only starting version 2.3.0",
msg="the FortranTestGenerator frontend is supported only " "starting version 2.3.0",
)
conflicts("+sdb", when="~python", msg="the stencil debugger requires the Python interface")
conflicts("+fortran", when="~c", msg="the Fortran interface requires the C interface")

View File

@@ -42,7 +42,7 @@ class Sollve(CMakePackage):
variant(
"link_dylib",
default=False,
description="Build and link the libLLVM shared library rather than static",
description="Build and link the libLLVM shared library rather " "than static",
)
variant(
"all_targets",

View File

@@ -58,7 +58,7 @@ def mpicxx_check(self):
raise RuntimeError(msg)
if "+fortran" in self.spec:
if "fmpi" not in self.spec["fortran"].libs.names:
msg = "SPRNG requires fortran mpi libraries with mpi enabled"
msg = "SPRNG requires fortran mpi " "libraries with mpi enabled"
raise RuntimeError(msg)
# raise RuntimeError("test")

View File

@@ -159,7 +159,7 @@ def get_variant(name, has_variant):
# check for fts
def query_fts(version):
return "CREATE VIRTUAL TABLE name USING fts{:d}(sender, title, body);".format(
return "CREATE VIRTUAL TABLE name " "USING fts{:d}(sender, title, body);".format(
version
)

View File

@@ -44,7 +44,7 @@ def build(self, spec, prefix):
elif plat.startswith("darwin"):
make("-f", "Makefile.MacOS")
else:
raise InstallError("The communication mechanism %s is not supported" % plat)
raise InstallError("The communication mechanism %s is not" "supported" % plat)
def install(self, spec, prefix):
install_tree("bin", prefix.bin)

View File

@@ -40,7 +40,7 @@ class Timemory(CMakePackage, PythonExtension):
variant(
"python_hatchet",
default=False,
description="Build Python hatchet submodule (does not conflict with py-hatchet)",
description="Build Python hatchet submodule " "(does not conflict with py-hatchet)",
)
variant(
"python_line_profiler",
@@ -77,7 +77,9 @@ class Timemory(CMakePackage, PythonExtension):
variant(
"kokkos_tools",
default=False,
description=("Build generic kokkos-tools libraries, e.g. kp_timemory, kp_timemory_filter"),
description=(
"Build generic kokkos-tools libraries, e.g. " "kp_timemory, kp_timemory_filter"
),
)
variant(
"kokkos_build_config",
@@ -120,7 +122,7 @@ class Timemory(CMakePackage, PythonExtension):
variant(
"cpu_target",
default="auto",
description=("Build for specific cpu architecture (specify cpu-model)"),
description=("Build for specific cpu architecture (specify " "cpu-model)"),
)
variant(
"use_arch",
@@ -141,7 +143,7 @@ class Timemory(CMakePackage, PythonExtension):
variant(
"statistics",
default=True,
description=("Build components w/ support for statistics (min/max/stddev)"),
description=("Build components w/ support for statistics " "(min/max/stddev)"),
)
variant(
"extra_optimizations",
@@ -177,7 +179,7 @@ class Timemory(CMakePackage, PythonExtension):
variant(
"require_packages",
default=True,
description=("find_package(...) resulting in NOTFOUND generates error"),
description=("find_package(...) resulting in NOTFOUND " "generates error"),
)
variant("compiler", default=True, description="Enable compiler instrumentation support")
variant(

View File

@@ -42,7 +42,7 @@ class Turbomole(Package):
def do_fetch(self, mirror_only=True):
if "+mpi" in self.spec and "+smp" in self.spec:
raise InstallError("Can not have both SMP and MPI enabled in the same build.")
raise InstallError("Can not have both SMP and MPI enabled in the " "same build.")
super().do_fetch(mirror_only)
def get_tm_arch(self):

View File

@@ -238,7 +238,7 @@ def cmake_args(self):
os.environ["TBB_ROOT"] = spec["tbb"].prefix
if "+kokkos" in spec and "+rocm" in spec and spec.satisfies("^kokkos@4:"):
options.append(f"-DCMAKE_CXX_COMPILER:BOOL={spec['hip'].prefix.bin.hipcc}")
options.append(f"-DCMAKE_CXX_COMPILER:FILEPATH={spec['hip'].prefix.bin.hipcc}")
# Support for relocatable code
if "~shared" in spec and "+fpic" in spec:

View File

@@ -108,12 +108,12 @@ def edit(self, spec, prefix):
)
filter_file(
"../../wannier90.x: .*",
"../../wannier90.x: $(OBJS) ../wannier_prog.F90 $(LIBRARY)",
"../../wannier90.x: $(OBJS) " "../wannier_prog.F90 $(LIBRARY)",
join_path(self.stage.source_path, "src/Makefile.2"),
)
filter_file(
"../../postw90.x: $(OBJS_POST) $(POSTDIR)postw90.F90",
"../../postw90.x: $(OBJS_POST) $(POSTDIR)postw90.F90 $(LIBRARY)",
"../../postw90.x: $(OBJS_POST) " "$(POSTDIR)postw90.F90",
"../../postw90.x: $(OBJS_POST) " "$(POSTDIR)postw90.F90 $(LIBRARY)",
join_path(self.stage.source_path, "src/Makefile.2"),
string=True,
)
@@ -139,8 +139,8 @@ def edit(self, spec, prefix):
string=True,
)
filter_file(
"$(AR) $(ARFLAGS) $(LIBRARY) $(OBJS2) $(OBJS)",
"$(MPIF90) $(FCOPTS) -shared -o $(LIBRARY) $(OBJS2) $(OBJS) $(LIBS)",
"$(AR) $(ARFLAGS) " "$(LIBRARY) $(OBJS2) $(OBJS)",
"$(MPIF90) $(FCOPTS) -shared -o " "$(LIBRARY) $(OBJS2) $(OBJS) $(LIBS)",
join_path(self.stage.source_path, "src/Makefile.2"),
string=True,
)

View File

@@ -79,7 +79,7 @@ class Whizard(AutotoolsPackage):
depends_on("qgraf", when="+gosam")
depends_on(
"openloops@2.0.0: +compile_extra num_jobs=1 processes=eett,eevvjj,ppllj,tbw",
"openloops@2.0.0: +compile_extra num_jobs=1 " "processes=eett,eevvjj,ppllj,tbw",
when="+openloops",
)
depends_on("texlive", when="+latex")

Some files were not shown because too many files have changed in this diff Show More