Egbert Eich
56ffc9a15e
* Features in this Release + Spec splicing To make binary installation more seamless in Spack, `v0.23` introduces "splicing", which allows users to deploy binaries using local, optimized versions of a binary interface, even if they were not built with that interface. For example, this would allow you to build binaries in the cloud using `mpich` and install them on a system using a local, optimized version of `mvapich2` *without rebuilding*. Spack preserves full provenance for the installed packages and knows that they were built one way but deployed another. The intent is to leverage this across many key HPC binary packages, e.g. MPI, CUDA, ROCm, and libfabric. Fundamentally, splicing allows Spack to redeploy an existing spec with different dependencies than how it was built. There are two interfaces to splicing. a. Explicit Splicing In the concretizer config, you can specify a target spec and a replacement by hash. ```yaml concretizer: splice: explicit: - target: mpi replacement: mpich/abcdef ``` Here, every installation that would normally use the target spec will instead use its replacement. Above, any spec using *any* `mpi` will be spliced to depend on the specific `mpich` OBS-URL: https://build.opensuse.org/package/show/network:cluster/spack?expand=0&rev=111
28 lines
1.5 KiB
Plaintext
28 lines
1.5 KiB
Plaintext
# Fully intentional
|
|
addFilter("hidden-file-or-dir /etc/skel/.spack")
|
|
# These files are patches and not to be run directly
|
|
addFilter("script-without-shebang")
|
|
# These files are installed as part of the spack recipes
|
|
# and shouldn't be in a devel package
|
|
addFilter("devel-file-in-non-devel-package*")
|
|
# The spack group needs to be added to the list of known groups
|
|
addFilter("non-standard-group Unspecified")
|
|
addFilter("non-standard-gid .* spack")
|
|
# Spurious self-applying patches from an upstream source.
|
|
# These are part of recipes and not intended to run as scripts.
|
|
addFilter("non-executable-script /var/lib/spack/repos.*")
|
|
# Spack is used for building other software, so when it finds e.g
|
|
# the bzip binary it assumes that the devel libraries are also installed.
|
|
# So ignore the warnings:
|
|
addFilter("devel-dependency libbz2-devel")
|
|
addFilter("explicit-lib-dependency libbz2-devel")
|
|
# Non executible scripts are expected in recipes. These will be installed
|
|
# with the final software that Spack builds.
|
|
addFilter("spack-recipes.noarch: .* non-executable-script")
|
|
# 3rd party modules - not used stand-alone
|
|
addFilter(".* non-executable-script /usr/lib/spack/external/_vendoring")
|
|
addFilter(".* non-executable-script /usr/share/spack/gitlab/cloud_pipelines/scripts/common/aggregate_package_logs.spack.py")
|
|
# We need to test doc builds for SLE in OBS which depend in spack being built:
|
|
# for this, we need to defeat the 'backport policy'.
|
|
addFilter(".* E: SUSE_Backports_policy-SLE_conflict .*")
|