spack/spack.changes
Egbert Eich d67b8bdc5b - Update to version 0.22.2
* Bugfixes
    - Forward compatibility with Spack 0.23 packages with language
      dependencies.
    - Forward compatibility with `urllib` from Python 3.12.6+.
    - Bump vendored `archspec` for better aarch64 support.
    - Fix regression in `{variants.X}` and `{variants.X.value}`
      format strings.
    - Ensure shell escaping of environment variable values in load
      and activate commands.
    - Fix an issue where `spec[pkg]` considers specs outside the
      current DAG.
    - Do not halt concretization on unknown variants in externals.
    - Improve validation of `develop` config section/
    - Explicitly disable `ccache` if turned off in config, to
      avoid cache pollution.
    - Improve backwards compatibility in `include_concrete`.
    - Fix issue where package tags were sometimes repeated.
    - Make `setup-env.sh` "sourced only" by dropping execution bits.
    - Make certain source/binary fetch errors recoverable instead
      of a hard error.
    - Remove debug statements in package hash computation.
    - Remove redundant clingo warnings.
    - Remove hard-coded layout version.
    - Do not initialize previous store state in `use_store`.
  * Package updates
    - `chapel` major update/

OBS-URL: https://build.opensuse.org/package/show/network:cluster/spack?expand=0&rev=109
2024-11-01 12:27:09 +00:00

1132 lines
53 KiB
Plaintext

-------------------------------------------------------------------
Fri Nov 1 06:32:35 UTC 2024 - Egbert Eich <eich@suse.com>
- Update to version 0.22.2
* Bugfixes
- Forward compatibility with Spack 0.23 packages with language
dependencies.
- Forward compatibility with `urllib` from Python 3.12.6+.
- Bump vendored `archspec` for better aarch64 support.
- Fix regression in `{variants.X}` and `{variants.X.value}`
format strings.
- Ensure shell escaping of environment variable values in load
and activate commands.
- Fix an issue where `spec[pkg]` considers specs outside the
current DAG.
- Do not halt concretization on unknown variants in externals.
- Improve validation of `develop` config section/
- Explicitly disable `ccache` if turned off in config, to
avoid cache pollution.
- Improve backwards compatibility in `include_concrete`.
- Fix issue where package tags were sometimes repeated.
- Make `setup-env.sh` "sourced only" by dropping execution bits.
- Make certain source/binary fetch errors recoverable instead
of a hard error.
- Remove debug statements in package hash computation.
- Remove redundant clingo warnings.
- Remove hard-coded layout version.
- Do not initialize previous store state in `use_store`.
* Package updates
- `chapel` major update/
-------------------------------------------------------------------
Wed Jul 10 06:54:31 UTC 2024 - Egbert Eich <eich@suse.com>
- Update to 0.22.1.
* Bug Fixes:
- Fix reuse of externals on Linux.
- Ensure parent gcc-runtime version >= child.
- Ensure the latest gcc-runtime is rpath'ed when multiple exist
among link deps.
- Improve version detection of glibc.
- Improve heuristics for solver.
- Make strong preferences override reuse.
- Reduce verbosity when C compiler is missing.
- Make missing ccache executable an error when required.
- Make every environment view containing `python` a `venv`.
- Fix external detection for compilers with os but no target.
- Fix version optimization for roots.
- Handle common implementations of pagination of tags in OCI
build caches.
- Apply fetched patches to develop specs.
- Avoid Windows wrappers for filesystem utilities on non-Windows.
- Fix formatting issue in `spack audit`.
* Package updates:
- Require libiconv for iconv.
Notice that glibc/musl also provide iconv, but are not
guaranteed to be complete. Set `packages:iconv:require:[glibc]`
to restore the old behavior.
- protobuf: fix 3.4:3.21 patch checksum.
- protobuf: update hash for patch needed when="@3.4:3.21".
- git: bump v2.39 to 2.45; deprecate unsafe versions.
- gcc: use `-rpath {rpath_dir}` not `-rpath={rpath dir}`.
- Remove mesa18 and libosmesa.
- Enforce consistency of `gl` providers.
- py-matplotlib: qualify when to do a post install.
- rust: fix v1.78.0 instructions.
- suite-sparse: improve setting of the libs property.
- netlib-lapack: provide blas and lapack together.
-------------------------------------------------------------------
Thu May 16 17:03:50 UTC 2024 - Egbert Eich <eich@suse.com>
- Move-site-config-scope-before-system-scope.patch:
Give 'site' scope a lower precedence than 'system' scope.
The 'site wide' config scope was meant to be per Spack
installation. A single system may have multiple Spack
installations, so was is meant for overriding the
'system' wide setting per installation.
The Spack package is OS-vendor provided. The vendor provides
pr generates a configuration which a local admin may want to
override. This can now be done from within the 'system' scope.
Previously the vendor-supplied configuration was mixed with
the 'system' scope - local modifications collided with
vendor autoconfiguration.
- Add a build-dependency package which will cause build tools
and libraries used frequently by Spack to be installed.
All these packages are recommended by the main Spack package
already. This package may be used in environments where the
installation of recommended packages is disabled by default.
-------------------------------------------------------------------
Mon May 13 13:12:22 UTC 2024 - Egbert Eich <eich@suse.com>
- Update Spack to version 0.22.0
* New features:
- Compiler dependencies:
Spack is in the process of making compilers proper dependencies.
For this, compiler dependencies are moving from `compilers.yaml`
to `packages.yaml` to make this consistent with other externals.
For this, dependency graphs will not show the compiler runtime
libraries like `gcc-runtime` or `libgfortran`.
To minimize disruption, an existing `compilers.yaml` file will
continue to work, however, users are encourage to migrate
before v0.23.
+ Packages compiled with `%gcc` now depend on a new package
`gcc-runtime`, which contains a copy of the shared compiler
runtime libraries. This enables gcc runtime libraries to be
installed and relocated when using a build cache.
When building minimal Spack-generated container images it
is no longer necessary to install libgfortran, libgomp
etc. using the system package manager.
+ Packages compiled with `%oneapi` now depend on a new package
`intel-oneapi-runtime`. This is similar to gcc-runtime.
This allows us to model library soname compatibility and
allows compilers like %oneapi to provide virtuals like sycl
(which can also be provided by standalone libraries).
+ Changes to the optimization criteria of the solver improve
the hit-rate of buildcaches by a fair amount. The solver has
more relaxed compatibility rules and will not try to strictly
match compilers or targets of reused specs. Users can still
enforce the previous strict behavior with require: sections
in packages.yaml.
Note that to enforce correct linking, Spack will not reuse
old %gcc and %oneapi specs that do not have the runtime
libraries as a dependency.
+ Spack will reuse specs built with compilers that are not
explicitly configured in `compilers.yaml`. Because we can
now keep runtime libraries in build cache, we do not require
you to also have a local configured compiler to use the
runtime libraries. This improves reuse in buildcaches and
avoids conflicts with OS updates that happen underneath
Spack.
+ Binary compatibility on `linux` is now based on the `libc`
version, instead of on the OS tag. Spack builds now detect
the host `libc` (`glibc`) and add it as an implicit external
node in the dependency graph. Binaries with a `libc` with
the same name and a version less than or equal to that of
the detected libc can be reused.
+ Each package that can provide a compiler is now detectable
using spack external find. External packages defining
compiler paths are effectively used as compilers, and spack
external find -t compiler` can be used as a substitute for
`spack compiler find. More details on this transition are
in [the docs](https://spack.readthedocs.io/en/latest/getting_started.html#manual-compiler-configuration).
- Improved spack find UI for Environments:
`spack find` in environments shows information about
* What are the roots
* Which ones are installed / not installed
* What's been added that still needs to be concretized
much more clearly. An option `--only-roots`/`-r` has been added
to `spack find` that will only show env roots, if you don't want
to look at all the installed specs.
- Improved command-line string quoting
Spack now parses specs in the CLI respecting shell quoting. Instead
of:
```
spack install zlib cflags=\"-O2 -g\"
```
you should use:
```
spack install zlib cflags="-O2 -g"
```
The old form will now result in an error.
This allows to include special characters, flags like
```
spack intall zlib ldflags='-Wl,-rpath=$ORIGIN/_libs'
```
may now be supplied. To reduce ambiguities during paring, quotes
are no longer allowed around `=` and `==`. Commands like:
```
spack install zlib cflags = "-O2 -g"
```
will result in an error.
- Revert default spack install behavior to `--reuse`
In v0.20 the default concretizer behavior was changed from
`--reuse` to `--reuse-deps`, which meant that *every* `spack
install` invocation would attempt to build a new version of
the requested package / any environment roots.
While this is a common ask for *upgrading* and for *developer
workflows*, it shouldn't be the default for a package manager.
- The `install` command now offers the three options:
* `--reuse` (default): reuse as many existing installations
as possible.
* `--reuse-deps` or `--fresh-roots`: upgrade (freshen) roots
but reuse dependencies if possible.
* --fresh: install fresh versions of requested packages
(roots) and their dependencies.
- More control over reused specs
Spack now provides better control over which packages to reuse
and how. There is a new `concretizer:reuse` config option,
which accepts the following properties:
* `roots`: true to reuse roots, false to reuse just dependencies
* `exclude`: list of constraints used to select which specs
not to reuse.
* `include`: list of constraints used to select which specs
to reuse.
* `from`: list of sources for reused specs (some combination
of `local`, `buildcache`, or `external`).
- New `conflict:` and `prefer:` syntax for package preferences
Instead of having to express conflicts and preferences just
using `require:`, these can now be expressed explicitly.
- `include_concrete` in environments
This directive allows to build on the *cncrete* contents of
another environment without changing this environment by
includeing the concrete specs from this environment's
`spack.lock`:
```
spack:
specs: []
concretizer:
unify: true
include_concrete:
- /path/to/environment1
- /path/to/environment2
```
When this environment is concretized, it will bring the
already concrete specs from `environment1` and `environment2`,
and build on top of them without changing them.
- `python-venv` isolation
Spack now insert a small `python-venv` package in between
`python` and packages that need to install Python code to
isolate Spack's build environment and shield Spack form
potential issues with an external python.
- Packages can now specify whether they may be distributed in
source or binary form.
* New commands, options and directives
- Allow packages to be pushed to build cache after install from
source.
_ `spack develop`: stage build artifacts in same root as non-dev
builds.
- Don't delete spack develop build artifacts after install.
- `spack find`: add options for local/upstream only.
- `spack logs`: print log files for packages (either partially
built or installed).
- `patch`: support reversing patches.
- `develop`: Add `-b`/`--build-directory` option to set
build_directory package attribute.
- `spack list`: add `--namesapce` / `--repo` option.
- spack gc: add options for environments and build dependencies.
- Add `--create` to `spack env activate`.
* Performance improvements
- environment.py: Fix excessive re-reads.
- ruamel yaml: Fix quadratic complexity bug.
- Refactor to improve `spec format` speed.
- Do not acquire a write lock on the env post install if no views.
- `asp.py`: fewer calls to `spec.copy()`
- `spec.py`: early return in `__str__`
- avoid `jinja2` import at startup unless needed.
* Other new features of note
- `archspec`: update to v0.2.4: bugfixes for `neoverse-v1` and
`neoverse-v2` detection.
- `spack config` get/blame: with no args, show entire config
- `spack env create <env>`: dir if dir-like
- Add handling of custom ssl certs in urllib ops.
- Add ability to rename environments.
- Add config option and compiler support to reuse across OS's.
- Support for prereleases.
- Only reuse externals when configured.
- Environments: Add support for including views.
* Binary caches
Build cache: make signed/unsigned a mirror property.
* Removals, deprecations, and syntax changes
- Remove `dpcpp` compiler and package.
- `spack load`: remove `--only` argument.
* Notable Bugfixes
- repo.py: drop deleted packages from provider cache.
- Allow `+` in module file names.
- `cmd/python`: use runpy to allow multiprocessing in scripts.
- Show extension commands with `spack -h`.
- Support environment variable expansion inside module
projections.
- Alert user to failed concretizations.
- `shell`: fix `zsh` color formatting for PS1 in environments.
- `spack mirror create --all`: include patches.
- Update `run-find-external.sh` script to address the deprecation
of `compilers.yaml`.
-------------------------------------------------------------------
Thu Apr 18 06:54:54 UTC 2024 - Egbert Eich <eich@suse.com>
- Add lsb-release and zstd as new requires to match upstream
prerequisites.
-------------------------------------------------------------------
Thu Apr 4 07:14:54 UTC 2024 - Egbert Eich <eich@suse.com>
- Make `patchelf` a mandatory dependency on products where it
is always available.
-------------------------------------------------------------------
Fri Mar 15 13:35:51 UTC 2024 - Egbert Eich <eich@suse.com>
- Update Spack to version 0.21.2
* Bugfixes
+ Containerize: accommodate nested or pre-existing `spack-env`
paths.
+ Fix `setup-env` script, when going back and forth between
instances.
+ Fix using fully-qualified namespaces from root specs.
+ Fix a bug when a required provider is requested for multiple
virtuals.
+ OCI buildcaches:
* only push in parallel when forking.
* use pickleable errors (#42160)
+ Fix using sticky variants in externals.
+ Fix a rare issue with conditional requirements and
multi-valued variants.
* Package updates
+ `rust`: add v1.75, rework a few variants.
+ `py-transformers`: add v4.35.2.
- Fix path to setup-env.sh in the Apptainer template (bsc#1221471).
- Add libgfortran, libfl2 and libzip5 to the Spack runtime
container as the Spack build container has the corresponding
devel packages but these libraries are not installed in a
BCI-style base container by default (bsc#1221503).
-------------------------------------------------------------------
Fri Feb 2 14:41:14 UTC 2024 - Egbert Eich <eich@suse.com>
- Make python version used configurable.
- Filter out more rpmlint errors.
-------------------------------------------------------------------
Thu Jan 25 14:07:19 UTC 2024 - Christian Goll <cgoll@suse.com>
- Update Spack to version 0.21.1
* Add support for reading buildcaches created by Spack v0.22
* Bugfixes
+ `spack graph`: fix coloring with environments
+ `spack info`: sort variants in --variants-by-name
+ `Spec.format`: error on old style format strings
+ ASP-based solver:
- fix infinite recursion when computing concretization
errors,
- don't error for type mismatch on preferences,
- don't emit spurious debug output.
+ Improve the error message for deprecated preferences.
+ Fix multi-word aliases.
+ Add a warning for unconfigured compiler.
+ environment: fix an issue with deconcretization/reconcretization
of specs.
+ buildcache: don't error if a patch is missing, when
installing from binaries
- From version 0.21.0
* following new features:
+ Better error messages with condition chaining:
In v0.18, we added better error messages that could tell you
what problem happened, but they couldn't tell you why it
happened. 0.21 adds condition chaining to the solver, and
Spack can now trace back through the conditions that led to
an error and build a tree of causes potential causes and
where they came from.
+ OCI build caches:
You can now use an arbitrary OCI registry as a build cache:
- For Dockerhub:
`$ spack mirror add my_registry oci://user/image`
- For another registry (GHCR):
`$ spack mirror add my_registry oci://ghcr.io/haampie/spack-test`
Then set the login credentials:
`$ spack mirror set --push --oci-username ... --oci-password ... my_registry`
and push to it:
`$ spack buildcache push my_registry [specs...]`
You can optionally add a base image to get runnable images:
```
$ spack buildcache push --base-image leap:15.5 my_registry python`
Pushed ... as [image]:python-3.11.2-65txfcpqbmpawclvtasuog4yzmxwaoia.spack
$ docker run --rm -it [image]:python-3.11.2-65txfcpqbmpawclvtasuog4yzmxwaoia.spack
```
This creates a container image from the Spack installations
on the host system, without the need to run `spack install`
from a `Dockerfile` or `sif` file. It also addresses the
inconvenience of losing binaries of dependencies when
`RUN spack install` fails inside `docker build`. Further, the
container image layers and build cache tarballs are the same
files. This means that `spack install` and `docker pull` use the
exact same underlying binaries. If you previously used `spack
install` inside of docker build, this feature helps you save
storage by a factor two.
+ Multiple versions of build dependencies:
Increasingly, complex package builds require multiple
versions of some build dependencies. For example, Python
packages frequently require very specific versions of
`setuptools`, `cython`, while different physics packages
require different versions of Python to build. The concretizer
enforced that every solve was unified, i.e., so that there was
only one version of every package. The concretizer now supports
"duplicate" nodes for build dependencies, but enforces unification
through transitive link and run dependencies. This will allow it
to better resolve complex dependency graphs in ecosystems like
Python.
+ Cherry-picking virtual dependencies:
You can now select only a subset of virtual dependencies
from a spec that may provide more. For example, to make mpich
your mpi provider, you can be explicit by writing:
`hdf5 ^[virtuals=mpi] mpich`.
Or, to use, e.g., `intel-parallel-studio` for blas along with
an external `lapack` like `openblas`, you could write:
```
strumpack ^[virtuals=mpi] intel-parallel-studio+mkl ^[virtuals=lapack] openblas`
```
The `virtuals=mpi` is an edge attribute, and dependency edges
in Spack graphs now track which virtuals they satisfied.
+ The `spack deconcretize` command gives you control over what
you want to update in an already concrete environment.
As an example, with an environment built with meson, and you
want to update your meson version, you can run:
`$spack deconcretize meson`
and have everything that depends on meson rebuilt the next
time you run spack concretize. In the future, we'll handle
this in a single command, but for now you can use this to
drop bits of your lockfile and resolve your dependencies
again.
+ UI Improvements:
The `spack info` received a rework to make the output more
appealing. It is now on par with the rest of Spack's UI.
`spack info` now makes much better use of terminal space and
shows variants, their values, and their descriptions more
clearly. Conditional variants are grouped separately so you
can more easily understand how packages are structured.
`spack checksum` now allows you to filter versions from your
editor, or by version range. It also notifies you about
potential download URL changes.
+ Environments can include definitions:
Spack did not previously support using `include:` with The
definitions section of an environment, but now it does. You
can use this to curate lists of specs and more easily reuse
them across environments.
+ Aliases:
You can now add aliases to Spack commands in `config.yaml`,
e.g. this might enshrine your favorite args to `spack find`
as `spack f`:
```
config:
aliases:
f: find -lv
```
+ Improved autoloading of modules:
In this release, you can start using `hide_implicits: true`
instead, which exposes only explicitly installed packages to
the user, while still autoloading dependencies. On top of
that, you can safely use `hash_length: 0`, as this config now
only applies to the modules exposed to the user -- you don't
have to worry about file name clashes for hidden
dependencies.
Note: for Tcl this feature requires Modules 4.7 or higher.
* Other new commands and directives:
+ `spack env activate` without arguments now loads a default
environment that you do not have to create.
+ `spack find -H` / `--hashes`: a new shortcut for piping spack
find output to other commands.
+ Add `spack checksum --verify`, fix `--add`.
+ New `default_args` context manager factors out common args for
directives.
+ `spack compiler find --[no]-mixed-toolchain` lets you easily
mix clang and gfortran on Linux.
* Performance improvements:
+ `spack external find execution` is now much faster.
+ `spack location -i` is now much faster on success.
+ Drop redundant rpaths post install.
+ ASP-based solver: avoid cycles in clingo using hidden
directive.
+ Fix multiple quadratic complexity issues in environments.
* Other new features of note:
+ archspec: update to v0.2.2, support for Sapphire Rapids,
Power10, Neoverse V2.
+ Propagate variants across nodes that don't have that variant
+ Implement fish shell completion.
+ Can now distinguish between source/binary mirror; don't ping
mirror.spack.io as much.
+ Improve status reporting on `spack install`
(add [n/total] display...).
-------------------------------------------------------------------
Mon Nov 6 08:04:55 UTC 2023 - Bernhard Wiedemann <bwiedemann@suse.com>
- Update to version 0.20.3 with the following changes:
* Bug fixes:
+ Fix a bug where `spack mirror set-url` would drop configured
connection info.
+ Fix a minor issue with package hash computation for Python 3.12.
+ Improve escaping in Tcl module files.
+ Make repo cache work on repositories with zero mtime.
+ Ignore errors for newer, incompatible buildcache version.
+ Print an error when git is required, but missing.
+ Ensure missing build dependencies get installed when using
`spack install --overwrite`.
+ Fix an issue where Spack freezes when the build process
unexpectedly exits.
+ Fix a bug where installation failures cause an unrelated
`NameError` to be thrown.
+ Fix an issue where Spack package versions would be incorrectly
derived from git tags.
+ Fix a bug triggered when file locking fails internally.
+ Prevent `spack external find` to error out when a directory
cannot be accessed.
+ Fix multiple performance regressions in environments.
+ Add more ignored modules to `pyproject.toml` for `mypy`.
* Features:
+ Spack now supports Python 3.12.
-------------------------------------------------------------------
Tue Sep 12 05:32:46 UTC 2023 - Egbert Eich <eich@suse.com>
- Update to version 0.20.1 with the following changes:
* Bug fixes:
+ Fix spec removed from an environment where not actually
removed if `--force` was not given.
+ Hotfix for a few recipes that treat CMake as a link
dependency.
+ Fix re-running stand-alone test a second time, which was
getting a trailing spurious failure.
+ Fix reading JSON manifest on Cray, reporting non-concrete
specs.
+ Fix a few bugs when generating Dockerfiles from Spack.
+ Fix a few long-standing bugs when generating module files.
+ Fix issues with building Python extensions when using an
external Python.
+ Fix `spack compiler remove`: remove from command line even
if they appear in different scopes.
* Features:
+ Speed-up module file generation.
+ Show external status as `[e]`.
+ Backport `archspec` fixes.
+ Improve a few error messages.
-------------------------------------------------------------------
Sun Aug 13 12:21:57 UTC 2023 - Egbert Eich <eich@suse.com>
- Fix SPACK_ROOT setting in /etc/profile.d/spack.[c]sh (bsc#1214222).
- Don't source /etc/os-release directly, use a subshell.
-------------------------------------------------------------------
Mon Jun 26 12:26:10 UTC 2023 - Egbert Eich <eich@suse.com>
- Add hwloc-devel and sqlite3 to the packages that trigger a
`spack external find`.
- Change /usr/bin to %{_bindir}.
- Make sure, libhwloc and hwloc are installed together when
spack is installed.
-------------------------------------------------------------------
Thu Jun 1 11:32:36 UTC 2023 - Egbert Eich <eich@suse.com>
- Do not attempt to build documentation for 32-bit, s390x and
ppc64*. There are build issues on some build targets.
-------------------------------------------------------------------
Mon May 22 14:40:17 UTC 2023 - Christian Goll <cgoll@suse.com>
- Update to version 0.20.0 with the following features:
* Exact versions: Spack did not previously have a way to distinguish a
version if it was a prefix of some other version. For example, @3.2 would
match 3.2, 3.2.1, 3.2.2, etc. You can now match exactly 3.2 with @=3.2.
This is useful, for example, if you need to patch only the 3.2 version of a
package
* More stable concretization: Now, spack concretize will only concretize the
new portions of the environment and will not change existing parts of an
environment unless you specify --force. This has always been true for
unify:false, but not for unify:true and unify:when_possible environments.
* The concretizer has a new --reuse-deps argument that only reuses dependencies.
That is, it will always treat the roots of your environment as it would with
--fresh. This allows you to upgrade just the roots of your environment while
keeping everything else stable
* Specs in buildcaches can be referenced by hash: Previously, you could run
spack buildcache list and see the hashes in buildcaches, but referring to
them by hash would fail. You can now run commands like spack spec and
spack install and refer to buildcache hashes directly, e.g. spack install
/abc123
* New package and buildcache index websites
Our public websites for searching packages have been completely revamped
and updated. You can check them out here:
Package Index: https://packages.spack.io
Buildcache Index: https://cache.spack.io
Both are searchable and more interactive than before. Currently major
releases are shown; UI for browsing develop snapshots is coming soon.
* Default CMake and Meson build types are now Release: Spack has historically
defaulted to building with optimization and debugging, but packages like
llvm can be enormous with debug turned on. Our default build type for all
Spack packages is now Release. This has a number of benefits:
much smaller binaries;
higher default optimization level; and
defining NDEBUG disables assertions, which may lead to further speedups.
You can still get the old behavior back through requirements and package
preferences
* spack checksum can automatically add new versions to package
* new command: spack pkg grep to easily search package files
* New maintainers directive
* Add spack buildcache push (alias to buildcache create)
* Allow using -j to control the parallelism of concretization
* Add --exclude option to 'spack external find'
requires() directive and enhanced package requirements We've added some
more enhancements to requirements in Spack. There is a new requires()
directive for packages. requires() is the opposite of conflicts()
- removed Add-zypper-to-the-valid-container.os_packages-commands.patch
as incoperated upstream
-------------------------------------------------------------------
Mon Apr 17 06:59:15 UTC 2023 - Egbert Eich <eich@suse.com>
- Update to version 0.19.2 with the following bug fixes:
* Ignore global variant requirement for packages that do not define it.
* Compiler wrapper: improved parsing of linker arguments.
* Views: fix support for optional Python extensions.
* Views: fix issue where Python executable gets symlinked instead of copied.
* Fix a bug where tests were not added when concretizing together.
* Increase db timeout from 3s to 60s to improve stability of parallel
installs.
* Buildcache: improve error handling in downloads.
* Module files for packages installed from buildcache have long placeholder
paths abbreviated in configure args section.
* Ensure file with build environment variables is truncated when writing
to it.
* spack config update now works on active environments;
- Add:
Add-zypper-to-the-valid-container.os_packages-commands.patch
This adds `zypper` to the valid OS package managers that can
be specified in a slack.yaml container description like:
spack:
...
container:
..
os_packages:
command: zypper
..
- Add: spack_get_libs.sh
This scripts obtains library and include paths for spack-build
libraries and outputs shell commands which set these as
environment variables.
Additionally, it generates a command line to prepend these lib
directories to LD_LIBRARY_PATH. Thus, the variables can be set
in the current shell by running `source $(spack_get_libs.sh foo)`.
When using `bash` this script may also be sourced directly.
The names of the environment variables are the upper-cased library
names with the strings 'LIB_' and 'INC_' prepended. Thus, for a
library 'foo', they would be 'INC_FOO' and 'LIB_FOO'.
These variables may be used at build time to point the compiler
to the include and library files (bsc#1208751).
- Drop:
Make-sure-spack-environment-is-set-up-in-Dockerfile-template.patch
This patch should not be needed. When building using `podman` use:
`podman build --format docker ...` to enable the non-OCI compliant
instructions in a Dockerfile.
- Add info, makeinfo, libcurl-devel, patchelf to the recommended
packages to add.
Fix: openssl-devel -> libopenssl-devel
-------------------------------------------------------------------
Thu Apr 6 09:30:50 UTC 2023 - Egbert Eich <eich@suse.com>
- Add 'zypper' as valid command to container.os_packages. This
allows to build SUSE container using non-default registries.
- Add 'awk', 'git', 'gzip' and 'gunzip' to the requires.
- Add 'patchelf' to the recommended packages.
-------------------------------------------------------------------
Thu Mar 30 09:34:39 UTC 2023 - Egbert Eich <eich@suse.com>
- Avoid running run-find-external.sh twice during installation/
update.
- Stop accidental inclusion of %%pre/post/triggerin/un scripts
in doc packages.
- Adpot new info file installation sceme for Factory.
-------------------------------------------------------------------
Thu Mar 23 09:59:40 UTC 2023 - Egbert Eich <eich@suse.com>
- run-find-external.sh: Extend the range of versions of MPI
flavors to be searched for when asking Spack to look
for external packages (bsc#1208751).
-------------------------------------------------------------------
Wed Mar 8 19:54:55 UTC 2023 - Egbert Eich <eich@suse.com>
- Improve run-find-external.sh:
* Extend to run 'spack compiler find'.
* Separate triggers for packages and compilers.
* Better handle when search patterns match multiple directories.
-------------------------------------------------------------------
Wed Mar 1 13:13:34 UTC 2023 - Christian Goll <cgoll@suse.com>
- Udpate to 0.19.1 with following bug fixes:
* buildcache create: make "file exists" less verbose
* spack mirror create: don't change paths to urls
* Improve error message for requirements
* Fix libtool filter for Fujitsu compilers
* FileCache: delete the new cache file on exception
- using `--all` flag for `spack external find` in the %triggrin
section, as MPI packages were not recognized any more, fixing
(bsc#1208751)
-------------------------------------------------------------------
Tue Jan 31 08:29:00 UTC 2023 - Egbert Eich <eich@suse.com>
- Make sure the spack environment is set up correctly in
spack-generated Dockerfiles (boo#1207784):
Make-sure-spack-environment-is-set-up-in-Dockerfile-template.patch
-------------------------------------------------------------------
Wed Jan 11 13:04:37 UTC 2023 - Egbert Eich <eich@suse.com>
- Fix var_path: this regression was introduced with the update
to the 0.19.0 release (boo#1207053).
- Move repos to /usr/share/spack: /var is strictly for local data.
-------------------------------------------------------------------
Tue Nov 22 11:16:26 UTC 2022 - Christian Goll <cgoll@suse.com>
- updated to version 0.19.0 with the following changes:
* Spack's traditional package preferences are soft, but we've added hard
requriements to packages.yaml and spack.yaml
* spack install in an environment will no longer add to the specs: list; you'll
need to either use spack add <spec> or spack install --add <spec>.
* spack uninstall will not remove from your environment's specs:
list; you'll need to use spack remove or spack uninstall --remove.
* concretizer:unify:true is now the default mode for new environments
* include environment configuration from URLs
* An increasing number of packages in the ecosystem need the ability to
support multiple build systems
* package ++variant:
enabled variant that will be propagated to dependencies
* git. prefix to specify git tags or branches as versions. All of these are
valid git versions in
* spack ci generate --tests will generate a .gitlab-ci.yml file that not only
does builds but also runs tests for built packages
* spack test run --explicit will only run tests for packages that are
explicitly installed, instead of all packages.
* You can add a new shared_linking option to config.yaml to make Spack embed absolute paths
to needed shared libraries in ELF executables and shared libraries on Linux
* spack spec prints dependencies more legibly. Dependencies in the output now
appear at the earliest level of indentation possible (#33406)
* You can override package.py attributes like url, directly in packages.yaml
* There are a number of new architecture-related format strings you can use
in Spack configuration files to specify paths
- Improvements from v0.18.0
* spack install --reuse was introduced in v0.17.0, and --reuse is now the
default concretization mode. Spack will try hard to resolve dependencies
using installed packages or binaries
* Spack hashes now include link, run, and build dependencies, as well as a
canonical hash of package recipes. Previously, hashes only included link
and run dependencies (though build dependencies were stored by
environments). We coarsened the hash to reduce churn in user installations,
but the new default concretizer behavior mitigates this concern and gets us
reuse and provenance. You will be able to see the build dependencies of
new installations
* concretizer:unify:when_possible will try to resolve a fully unified
environment, but if it cannot, it will create multiple configurations of
some packages where it has to. with spack find.
* Spack now has an updated binary format, with improvements for security. The
new format has a detached signature file, and Spack verifies the signature
before untarring or decompressing the binary package. The previous format
embedded the signature in a tar file, which required the client to run tar
before verifying (#30750). Spack can still install from build caches using
the old format, but we encourage users to switch to the new format going
forward.
* The spack bootstrap mirror command can automatically create a mirror for
bootstrapping the concretizer and other needed dependencies in an
air-gapped environment.
* spack env depfile can be used to generate a Makefile from an environment,
which can be used to build packages the environment in parallel on a single
node
* In addition to being conditional themselves, variants can now have
conditional values that are only possible for certain configurations of a
package.
- removed following patches as incorporated upstream:
* fix-tumbleweed-naming.patch
-------------------------------------------------------------------
Mon Aug 15 19:39:22 UTC 2022 - Dirk Müller <dmueller@suse.com>
- avoid bashism in post scripts (bsc#1195391)
-------------------------------------------------------------------
Thu Apr 7 12:56:45 UTC 2022 - Egbert Eich <eich@suse.com>
- Fix: Fix-error-during-documentation-build-due-to-recursive-module-inclusion.patch
This is needed to prevent an AttributeError during
'import spack.environment as some_name'
when building Sphinx documentation - due to an outdated
Python on SLE.
The original version caused errors:
'NameError: name 'uenv' is not defined'
when using 'spack env activate' et.al. (bsc#1198212).
-------------------------------------------------------------------
Wed Mar 2 12:41:12 UTC 2022 - Egbert Eich <eich@suse.com>
- Remove unneeded build dependency.
- Make dependencies of spack and spack-recipes symetrical.
-------------------------------------------------------------------
Thu Feb 10 13:58:04 UTC 2022 - Egbert Eich <eich@suse.com>
- Add openssl-devel, xz-devel and libzip-devel as recommends
bsc#1195789.
-------------------------------------------------------------------
Wed Jan 12 09:50:56 UTC 2022 - Egbert Eich <eich@suse.com>
- Fix run-find-external.sh script: RPM macros are not expanded
in external scripts.
* Rename: run-find-external.sh to run-find-external.sh.in
- Fix list of recommended packages.
- Add support for container building using a SLE base container.
* Add-support-for-container-building-using-a-SLE-base-container.patch
-------------------------------------------------------------------
Mon Jan 10 12:45:19 UTC 2022 - Christian Goll <cgoll@suse.com>
- updated to spack 0.17.1 with following chnages:
* Allow locks to work under high contention (#27846)
* Improve errors messages from clingo (#27707 #27970)
* Respect package permissions for sbang (#25764)
* Fix --enable-locks behavior (#24675)
* Fix log-format reporter ignoring install errors (#25961)
* Fix overloaded argparse keys (#27379)
* Allow style commands to run with targets other than "develop" (#27472)
* Log lock messages to debug level, instead of verbose level (#27408)
* Handle invalid unicode while logging (#21447)
* spack audit: fix API calls to variants (#27713)
* Provide meaningful message for empty environment installs (#28031)
* Added opensuse leap containers to spack containerize (#27837)
* Revert "patches: make re-applied patches idempotent" (#27625)
* MANPATH can use system defaults (#21682)
* Add "setdefault" subcommand to `spack module tcl` (#14686)
* Regenerate views when specs already installed (#28113)
- removed leap-container.patch as incoperated upstream
-------------------------------------------------------------------
Tue Dec 14 11:13:37 UTC 2021 - Christian Goll <cgoll@suse.com>
- fixed the configuration files /etc/skel/.spack/{config|modules}.yaml
so that spack writes to $HOME if started as user
-------------------------------------------------------------------
Mon Dec 13 08:19:33 UTC 2021 - Christian Goll <cgoll@suse.com>
- made objects.inv (Source5) to be static as the online version is changed
dynamically
-------------------------------------------------------------------
Tue Dec 7 15:34:12 UTC 2021 - Christian Goll <cgoll@suse.com>
- added leap-container.patch which adds leap15 as os to the
spack containerize command.
-------------------------------------------------------------------
Mon Nov 8 14:55:34 UTC 2021 - Christian Goll <cgoll@suse.com>
- updated to version 0.17.0
(Upstream feature/bug references (<ID>) are relative to
https://github.com/spack/spack/issues/<ID>).
* New concretizer is now default
The new concretizer introduced as an experimental feature in v0.16.0
is now the default (#25502). The new concretizer is based on the
clingo logic programming system,
and it enables us to do much higher quality and faster dependency solving
The old concretizer is still available via the concretizer: original
setting, but it is deprecated and will be removed in v0.18.0.
* Binary Bootstrapping
To make it easier to use the new concretizer and binary packages,
Spack now bootstraps clingo and GnuPG from public binaries. If it
is not able to bootstrap them from binaries, it installs them from
source code. With these changes, you should still be able to clone Spack
and start using it almost immediately.
* Reuse existing packages (experimental)
The most wanted feature from our
2020 user survey and
the most wanted Spack feature of all time (#25310). spack install,
spack spec, and spack concretize now have a --reuse option, which
causes Spack to minimize the number of rebuilds it does. The --reuse
option will try to find existing installations and binary packages locally
and in registered mirrors, and will prefer to use them over building new
versions. This will allow users to build from source far less than in
prior versions of Spack. This feature will continue to be improved, with
configuration options and better CLI expected in v0.17.1. It will become
the default concretization mode in v0.18.0.
* Better error messages
We have improved the error messages generated by the new concretizer by
using unsatisfiable cores. Spack will now print a summary of the types
of constraints that were violated to make a spec unsatisfiable (#26719).
* Conditional variants
Variants can now have a when="<spec>" clause, allowing them to be
conditional based on the version or other attributes of a package (#24858).
* Git commit versions
In an environment and on the command-line, you can now provide a full,
40-character git commit as a version for any package with a top-level
git URL. e.g., spack install hdf5@45bb27f58240a8da7ebb4efc821a1a964d7712a8.
Spack will compare the commit to tags in the git repository to understand
what versions it is ahead of or behind.
* Override local config and cache directories
You can now set SPACK_DISABLE_LOCAL_CONFIG to disable the ~/.spack and
/etc/spack configuration scopes. SPACK_USER_CACHE_PATH allows you to
move caches out of ~/.spack, as well (#27022, #26735). This addresses
common problems where users could not isolate CI environments from local
configuration.
* Improvements to Spack Containerize
For added reproducibility, you can now pin the Spack version used by
spack containerize (#21910). The container build will only build
with the Spack version pinned at build recipe creation instead of the
latest Spack version.
* New commands for dealing with tags
The spack tags command allows you to list tags on packages (#26136), and you
can list tests and filter tags with spack test list (#26842).
* Copy and relocate environment views as stand-alone installations (#24832)
* spack diff command can diff two installed specs (#22283, #25169)
* spack -c <config> can set one-off config parameters on CLI (#22251)
* spack load --list is an alias for spack find --loaded (#27184)
* spack gpg can export private key with --secret (#22557)
* spack style automatically bootstraps dependencies (#24819)
* spack style --fix automatically invokes isort (#24071)
* build dependencies can be installed from build caches with --include-build-deps (#19955)
* spack audit command for checking package constraints (#23053)
* spack can now fetch from CVS repositories (yep, really) (#23212)
* spack monitor lets you upload analysis about installations to a
* spack monitor server (#23804, #24321, #23777, #25928))
* spack python --path shows which python Spack is using (#22006)
* spack env activate --temp can create temporary environments (#25388)
* --preferred and --latest options for spack checksum (#25830)
* SPACK_PYTHON environment variable sets which python spack uses (#21222)
* SPACK_SKIP_MODULES lets you source setup-env.sh faster if you don't need modules (#24545)
- removed following patches as incomperated upstream:
* added-dockerfile-for-opensuse-leap-15.patch
- removed as not needed any more:
* basic-exclude-pattern-for-external-find.patch
* Fix-documentation-so-that-parser-doesn-t-stumble.patch
- updated patches:
* Adapt-shell-scripts-that-set-up-the-environment-for-different-shells.patch
* added-target-and-os-calls-to-output-of-spack-spec-co.patch
* Fix-error-during-documentation-build-due-to-recursive-module-inclusion.patch
* fix-tumbleweed-naming.patch
* Make-spack-paths-compliant-to-distro-installation.patch
- added:
* Fix-Spinx-configuration-to-avoid-throwing-errors.patch
* Set-modules-default-to-lmod.patch
- updated requires to actual sphinx version, so that the documentation
builds
- Included source:
objects.inv
-------------------------------------------------------------------
Fri Oct 15 17:00:57 UTC 2021 - Egbert Eich <eich@suse.com>
- Fix sysuser file name.
-------------------------------------------------------------------
Fri Oct 1 05:55:10 UTC 2021 - Egbert Eich <eich@suse.com>
- Utilize sysuser infrastructure to set group spack.
-------------------------------------------------------------------
Wed Sep 29 20:32:58 UTC 2021 - Antoine Ginies <aginies@suse.com>
- update to version 0.16.3 (JSC#SLE-22137):
* clang/llvm: fix version detection
* Fix use of quotes in Python build system
* Ensure all roots of an installed environment are marked explicit in db
* Fix fetching for Python 3.8 and 3.9
* locks: only open lockfiles once instead of for every lock held
-------------------------------------------------------------------
Fri Aug 6 14:28:20 UTC 2021 - Christian Goll <cgoll@suse.com>
- added tar and make as requirement
-------------------------------------------------------------------
Wed Jul 7 16:09:21 UTC 2021 - Christian Goll <cgoll@suse.com>
- added README-oo-wiki which is the raw version of the opensuse wiki
-------------------------------------------------------------------
Tue Jul 6 21:45:21 UTC 2021 - Egbert Eich <eich@suse.com>
- Fix patch
Fix-error-during-documentation-build-due-to-recursive-module-inclusion.patch
to actually work correctly.
The updated version makes sure modules are not called recursively even
if modules are loaded in an out-of-order fashion from python-Sphinx.
- Remove duplicates in spec file.
-------------------------------------------------------------------
Wed Jun 2 14:04:26 UTC 2021 - Antoine Ginies <aginies@suse.com>
- fix typo to export prefix in patch (bsc#1191395):
Adapt-shell-scripts-that-set-up-the-environment-for-different-shells.patch
-------------------------------------------------------------------
Tue May 25 08:55:42 UTC 2021 - Christian Goll <cgoll@suse.com>
- update to version 0.16.1
* Major performance improvement for spack load and other commands.
* spack fetch is now environment-aware. (#19166)
* Numerous fixes for the new, clingo-based concretizer.
* Supoprt for automatically bootstrapping clingo from source.
* Python 3.10 support: collections.abc
* Fix import issues by using __import__ instead of Spack package import.
* Bugfixes and --source-dir argument for spack location.
* Better support for externals in shared prefixes.
* spack build-env now prefers specs defined in the active environment.
* Remove erroneous warnings about quotes in from_sourcing_files.
* Fix clearing cache of InternalConfigScope.
* Bugfix for active when pkg is already active error.
* Make SingleFileScope able to repopulate the cache after clearing it.
* Channelflow: Fix the package.
* More descriptive error message for bugs in package.py
* Use package-supplied autogen.sh
* Respect -k/verify-ssl-false in _existing_url method.
-------------------------------------------------------------------
Mon May 3 06:34:46 UTC 2021 - Egbert Eich <eich@suse.com>
- Add gcc-c++ to the required packages (bsc#1185519).
- Add alternative c++ & fortran compilers to the triggers list.
-------------------------------------------------------------------
Tue Mar 30 14:31:26 UTC 2021 - Christian Goll <cgoll@suse.com>
- added run-find-external.sh which calls the command in post
`spack external find` as nobody and not as root
-------------------------------------------------------------------
Tue Mar 23 08:32:49 UTC 2021 - Christian Goll <cgoll@suse.com>
- added libbz2-devel as dependency as spack requires this, as soon
as the bzip2 binary is found and removed warning for this
corner case in rpmlinrc
-------------------------------------------------------------------
Fri Mar 19 15:04:20 UTC 2021 - Christian Goll <cgoll@suse.com>
- set the right MODULEPATH in /etc/profile.d/spack.[cs]h
-------------------------------------------------------------------
Fri Feb 26 22:06:36 UTC 2021 - Egbert Eich <eich@suse.com>
- Remove BuildRequires for patterns-base-basesystem and
distribution-release.
-------------------------------------------------------------------
Fri Feb 26 10:40:00 UTC 2021 - Christian Goll <cgoll@suse.com>
- update to version 0.16.1
* intel-oneapi support through new packages
* HIP/ROCm support (#19715, #20095)
* concretization enhancements
* environment install reporting fix (#20004)
* avoid import in ABI compatibility info (#20236)
* restore ability of dev-build to skip patches (#20351)
* spack find -d spec grouping (#20028)
* spack smoke test support (#19987, #20298)
* abstract spec comparisons (#20341)
* performance improvements for binary relocation (#19690, #20768)
* additional sanity checks for variants in builtin packages (#20373)
* do not pollute auto-generated configuration files with empty lists or
dicts
- added file: basic-exclude-pattern-for-external-find.patch
* adds the functionality to exclude binaries for external search
so that the call 'installdbgsymbols' can be prohibited as this
leads to an endless loop when drkonqui is installed
-------------------------------------------------------------------
Thu Feb 4 06:54:13 UTC 2021 - Egbert Eich <eich@suse.com>
- Add
* Fix-documentation-so-that-parser-doesn-t-stumble.patch:
* Fix-error-during-documentation-build-due-to-recursive-module-inclusion.patch
Fix documentation building.
- Fix texinfo file installation.
-------------------------------------------------------------------
Fri Dec 11 15:09:07 UTC 2020 - Christian Goll <cgoll@suse.com>
- added patch for more reproduceable output for the doc package
* added file: added-target-and-os-calls-to-output-of-spack-spec-co.patch
-------------------------------------------------------------------
Tue Dec 8 14:19:00 UTC 2020 - Christian Goll <cgoll@suse.com>
- added test for /etc/spack/no_rpm_trigger
-------------------------------------------------------------------
Wed Dec 2 12:33:44 UTC 2020 - Christian Goll <cgoll@suse.com>
- added %triggerin and %triggerpostun for the packages which
can be detected by spack
-------------------------------------------------------------------
Wed Nov 25 10:58:48 UTC 2020 - Christian Goll <cgoll@suse.com>
- updated to 0.16.0
- added find for external packages
- added dockerfile for leap
* added patchfile added-dockerfile-for-opensuse-leap-15.patch
-------------------------------------------------------------------
Tue Nov 24 13:45:24 UTC 2020 - Egbert Eich <eich@suse.com>
- Add documentation (man and info pages, pdf doesn't build
currently).
* Do not ship documentation sources.
- Do not distribute Dockerfiles and other container related
material, yet. This needs to be fixed so that the samples
work with SUSE.
- Fully integrate spack into SUSE directory structure, fix
paths where required.
* Fix setup scripts to work correctly in above environment.
-------------------------------------------------------------------
Mon Nov 16 14:42:32 UTC 2020 - Christian Goll <cgoll@suse.com>
- added profile file for csh
- enabled projections
- updated README.SUSE
-------------------------------------------------------------------
Wed Nov 11 19:56:11 UTC 2020 - Christian Goll <cgoll@suse.com>
- added patches to be more on the traditional file system hierarchy
and avoid explicit version in tumbleweed.
* added file Make-spack-paths-compliant-to-distro-installation.patch
* added file fix-tumbleweed-naming.patch
-------------------------------------------------------------------
Fri Sep 11 07:50:30 UTC 2020 - Ana Guerrero Lopez <aguerrero@suse.com>
- Initial release. Version 0.15.4
* Make-spack-paths-compliant-to-distro-installation.patch
Make spack paths compliant to distro installation.