spack/spack.spec

511 lines
18 KiB
RPMSpec
Raw Normal View History

#
# spec file for package spack
#
# Copyright (c) 2023 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
# Please submit bugfixes or comments via https://bugs.opensuse.org/
#
%global flavor @BUILD_FLAVOR@%{?nil}
%if "%{flavor}" == "doc"
%bcond_without doc
%endif
%if %{with doc} && (0%{?sle_version} > 0) && (150200 >= 0%{?sle_version})
ExclusiveArch: do_not_build
%endif
%define spack_dir %_prefix/lib/spack/
%define spack_group spack
# These packages are found and can be used by spack, /etc/spack/packages-yaml
# needs to be updated when one of these packages is updated or uninstalled.
# Distinguish between packages we recommend and packages which
%define spack_trigger_recommended autoconf bash bison bzip2 libzip-devel cmake-full ccache cpio diffutils findutils flex gcc gcc-c++ gcc-fortran git-lfs make m4 ncurses-devel libtool openssl-devel perl-base pkgconf pkg-config python3-base tar info xz xz-devel
# packages recognized by spack, but not recommended
%define spack_trigger_packages ghostscript go fish fzf hugo java-11-openjdk-devel java-14-openjdk-devel java-15-openjdk-devel java-16-openjdk-devel java-1_8_0-openjdk-devel ruby openmpi1-devel openmpi2-devel openmpi3-devel openmpi4-devel openmpi1-gnu-hpc-devel openmpi2-gnu-hpc-devel openmpi3-gnu-hpc-devel openmpi4-gnu-hpc-devel mvapich2-devel mpich-devel gcc7 gcc8 gcc9 gcc10 gcc11 gcc7-c++ gcc8-c++ gcc9-c++ gcc10-c++ gcc11-c++ gcc7-fortran gcc8-fortran gcc9-fortran gcc10-fortran gcc11-fortran
# non oss packages
%define spack_trigger_external cuda-nvcc
Name: spack
Accepting request 1037625 from home:mslacken:sp - updated to version 0.19.0 with follwoinig 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 - Improvement 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 OBS-URL: https://build.opensuse.org/request/show/1037625 OBS-URL: https://build.opensuse.org/package/show/network:cluster/spack?expand=0&rev=49
2022-11-24 08:38:21 +01:00
Version: 0.19.0
Release: 0
Summary: Package manager for HPC systems
License: Apache-2.0 AND MIT AND Python-2.0 AND BSD-3-Clause
URL: https://spack.io
Source0: https://github.com/spack/spack/archive/v%{version}.tar.gz#/spack-%{version}.tar.gz
Source1: README.SUSE
Source2: spack-rpmlintrc
Source3: run-find-external.sh.in
Source4: https://en.opensuse.org/index.php?title=Spack&action=raw&ref=157522#/README-oo-wiki
# Source5 is from https://docs.python.org/3/objects.inv, but has permanent changes so using a static version
Source5: objects.inv
Patch2: Adapt-shell-scripts-that-set-up-the-environment-for-different-shells.patch
Patch4: added-target-and-os-calls-to-output-of-spack-spec-co.patch
Accepting request 931785 from home:mslacken:sp - 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 OBS-URL: https://build.opensuse.org/request/show/931785 OBS-URL: https://build.opensuse.org/package/show/network:cluster/spack?expand=0&rev=35
2021-11-16 15:32:55 +01:00
Patch5: Make-spack-paths-compliant-to-distro-installation.patch
Patch6: Fix-error-during-documentation-build-due-to-recursive-module-inclusion.patch
Accepting request 931785 from home:mslacken:sp - 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 OBS-URL: https://build.opensuse.org/request/show/931785 OBS-URL: https://build.opensuse.org/package/show/network:cluster/spack?expand=0&rev=35
2021-11-16 15:32:55 +01:00
Patch7: Fix-Spinx-configuration-to-avoid-throwing-errors.patch
Patch8: Set-modules-default-to-lmod.patch
Patch9: Add-support-for-container-building-using-a-SLE-base-container.patch
%if %{without doc}
BuildRequires: fdupes
BuildRequires: lua-lmod
BuildRequires: polkit
BuildRequires: python3-urllib3
BuildRequires: sudo
BuildRequires: sysuser-tools
Requires: %{name}-recipes = %{version}
Requires: bzip2
Accepting request 931785 from home:mslacken:sp - 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 OBS-URL: https://build.opensuse.org/request/show/931785 OBS-URL: https://build.opensuse.org/package/show/network:cluster/spack?expand=0&rev=35
2021-11-16 15:32:55 +01:00
Requires: coreutils
Requires: curl
Requires: gcc-c++
Requires: gcc-fortran
Requires: gpg2
Requires: libbz2-devel
Requires: lua-lmod
Requires: make
Requires: patch
Requires: polkit
Accepting request 931785 from home:mslacken:sp - 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 OBS-URL: https://build.opensuse.org/request/show/931785 OBS-URL: https://build.opensuse.org/package/show/network:cluster/spack?expand=0&rev=35
2021-11-16 15:32:55 +01:00
Requires: python3-clingo
Requires: sudo
Requires: tar
Requires: xz
Recommends: %spack_trigger_recommended
%else
BuildRequires: git
BuildRequires: makeinfo
Accepting request 931785 from home:mslacken:sp - 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 OBS-URL: https://build.opensuse.org/request/show/931785 OBS-URL: https://build.opensuse.org/package/show/network:cluster/spack?expand=0&rev=35
2021-11-16 15:32:55 +01:00
# Hardcode this - there is no python2 version of this around any more.
BuildRequires: python3-Sphinx >= 3.4
BuildRequires: python3-sphinxcontrib-programoutput
BuildRequires: spack
# html
BuildRequires: graphviz
# info
BuildRequires: graphviz-gnome
## pdf
# BuildRequires: python3-Sphinx-latex
Requires: spack
%endif
BuildArch: noarch
%if 0%{?sle_version} <= 120500 && !0%{?is_opensuse}
%define __python3 python3
%endif
%description
Spack is a configurable Python-based HPC package manager, automating
the installation and fine-tuning of simulations and libraries.
It operates on a wide variety of HPC platforms and enables users
to build many code configurations. Software installed by Spack
runs correctly regardless of environment, and file management
is streamlined. Spack can install many variants of the same build
using different compilers, options, and MPI implementations.
This package provides a module file that must be loaded to use spack.
%package recipes
Summary: Spack built-in package recipes
Requires: %{name} = %version
%description recipes
Spack is a configurable Python-based HPC package manager, automating
the installation and fine-tuning of simulations and libraries.
It operates on a wide variety of HPC platforms and enables users
to build many code configurations. Software installed by Spack
runs correctly regardless of environment, and file management
is streamlined. Spack can install many variants of the same build
using different compilers, options, and MPI implementations.
This package contains the built-in package recipes.
%package man
Summary: Man Page for Spack - Package manager for HPC systems
Requires: man
%description man
Spack is a configurable Python-based HPC package manager, automating
the installation and fine-tuning of simulations and libraries.
It operates on a wide variety of HPC platforms and enables users
to build many code configurations. Software installed by Spack
runs correctly regardless of environment, and file management
is streamlined. Spack can install many variants of the same build
using different compilers, options, and MPI implementations.
This package contains the man page.
%package info
Summary: Info Page for Spack - Package manager for HPC systems
Requires: info
%description info
Spack is a configurable Python-based HPC package manager, automating
the installation and fine-tuning of simulations and libraries.
It operates on a wide variety of HPC platforms and enables users
to build many code configurations. Software installed by Spack
runs correctly regardless of environment, and file management
is streamlined. Spack can install many variants of the same build
using different compilers, options, and MPI implementations.
This package contains the info page.
%prep
%setup -q
%autopatch -p1
%if %{without doc}
# set SPACK_ROOT
for i in share/spack/setup-env.*; do
sed -i -e "s;@@_prefix@@;%_prefix;g" $i
done
Accepting request 931785 from home:mslacken:sp - 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 OBS-URL: https://build.opensuse.org/request/show/931785 OBS-URL: https://build.opensuse.org/package/show/network:cluster/spack?expand=0&rev=35
2021-11-16 15:32:55 +01:00
%else
cp %{S:5} lib/spack/docs/
%endif
grep -rl '#! /usr/bin/env bash' . | xargs -i@ sed -i 's|#! /usr/bin/env bash|#!/usr/bin/bash|g' @
grep -rl '#!/bin/env sh' . | xargs -i@ sed -i 's|#!/bin/env sh|#!/usr/bin/sh|g' @
grep -rl '#!/usr/bin/env bash' . | xargs -i@ sed -i 's|#!/usr/bin/env bash|#!/usr/bin/bash|g' @
Accepting request 1037625 from home:mslacken:sp - updated to version 0.19.0 with follwoinig 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 - Improvement 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 OBS-URL: https://build.opensuse.org/request/show/1037625 OBS-URL: https://build.opensuse.org/package/show/network:cluster/spack?expand=0&rev=49
2022-11-24 08:38:21 +01:00
grep -rl "spack/" . | xargs -i@ sed -i \
-e 's|$spack/opt|/opt|g' \
-e 's|$spack/var|/var/lib|g'\
-e 's|$spack/share/spack/lmod|/opt/spack/modules|g'\
-e 's|$spack/share/spack/modules|/opt/spack/modules|g'\
@
Accepting request 931785 from home:mslacken:sp - 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 OBS-URL: https://build.opensuse.org/request/show/931785 OBS-URL: https://build.opensuse.org/package/show/network:cluster/spack?expand=0&rev=35
2021-11-16 15:32:55 +01:00
%build
# Nothing to build
%if %{with doc}
Accepting request 931785 from home:mslacken:sp - 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 OBS-URL: https://build.opensuse.org/request/show/931785 OBS-URL: https://build.opensuse.org/package/show/network:cluster/spack?expand=0&rev=35
2021-11-16 15:32:55 +01:00
mkdir -p ${HOME}/.spack
cat > ${HOME}/.spack/config.yaml <<EOF
config:
install_tree:
root: /tmp/spack
projections:
all: "${ARCHITECTURE}/${COMPILERNAME}-${COMPILERVER}/${PACKAGE}-${VERSION}-${HASH}"
EOF
# Don't really run spack when building documentation!
tmpdir=$(mktemp -d %{_sourcedir}/tmpd-XXXXXXXXX)
echo -e '#! /bin/sh
args=${1+"$@"}
while [ -n "$1" ]; do
case $1 in
--*) shift ;;
graph|spec) exit 0 ;;
*) exec /usr/bin/spack ${args} ;;
esac;
Accepting request 931785 from home:mslacken:sp - 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 OBS-URL: https://build.opensuse.org/request/show/931785 OBS-URL: https://build.opensuse.org/package/show/network:cluster/spack?expand=0&rev=35
2021-11-16 15:32:55 +01:00
done
exit 0' > $tmpdir/spack
chmod 0755 $tmpdir/spack
PATH=$tmpdir:${PATH}
export PATH
mkdir -p /tmp/spack
cd lib/spack/docs
Accepting request 931785 from home:mslacken:sp - 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 OBS-URL: https://build.opensuse.org/request/show/931785 OBS-URL: https://build.opensuse.org/package/show/network:cluster/spack?expand=0&rev=35
2021-11-16 15:32:55 +01:00
# fix Makefile of sphinx and ignore warnings due to offline build
sed -i 's/\(^SPHINXOPTS\).*/\1 = --keep-going /' Makefile
# Causes issues building texinfo as a suitable image cannot be found
grep -rl ":target:" | xargs sed -i -e "/:target:/s/^/#/" -e "/figure::/s/^/#/"
# Fix path to var - we install this to the 'real' /var
grep -rl "\$SPACK_ROOT/var" | xargs sed -i -e "s@\(.*\)\$SPACK_ROOT/var\(/spack.*\)@\1/var/lib\2@g"
# spack cannot run without knowing at least the compiler, so we inject
# a dummy one
mkdir -p ${HOME}/.spack/linux/
cat > ${HOME}/.spack/linux/compilers.yaml <<EOF
compilers:
- compiler:
spec: gcc@7.5.0
paths:
cc: /usr/bin/gcc
cxx: /usr/bin/g++
f77: /usr/bin/gfortran
fc: /usr/bin/gfortran
flags: {}
operating_system: SUSE
target: x86_64
modules: []
environment:
unset: []
extra_rpaths: []
EOF
Accepting request 931785 from home:mslacken:sp - 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 OBS-URL: https://build.opensuse.org/request/show/931785 OBS-URL: https://build.opensuse.org/package/show/network:cluster/spack?expand=0&rev=35
2021-11-16 15:32:55 +01:00
source /usr/share/spack/setup-env.sh
make man info || { cat /tmp/sphinx-err-*.log; exit 1; } #text dirhtml
rm -rf $tmpdir
gzip _build/texinfo/Spack.info _build/man/spack.1
%endif
%install
# combine READMEs
cat %{S:4} >> %{S:1}
%if %{without doc}
cp %{S:1} .
# Fix some rpmlint warnings
## Remove files not required to run spack
rm -rf lib/spack/spack/test
rm -rf share/spack/qa
rm -rf share/spack/logo
rm -rf var/spack/repos/builtin.mock var/spack/gpg.mock var/spack/mock_configs
rm -rf lib/spack/external/ruamel/yaml/.ruamel
find . -type f -name .gitignore -delete
find . -type f -name .nojekyll -delete
find . -type f -name .gitlab-ci.yml -delete
# Fix _spack_root link
rm -f lib/spack/docs/_spack_root
ln -sf ../.. lib/spack/docs/_spack_root
# Do not ship AWS specifics
rm -f share/spack/setup-tutorial-env.sh
# Fix rpmlint warnings
## No need for the standalone scripts
rm -f lib/spack/external/macholib/macho_*.py
## Remove non linux stuff
rm -f bin/spack.bat bin/spack_cmd.bat bin/spack_pwsh.ps1
## Fix shebangs
Accepting request 1037625 from home:mslacken:sp - updated to version 0.19.0 with follwoinig 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 - Improvement 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 OBS-URL: https://build.opensuse.org/request/show/1037625 OBS-URL: https://build.opensuse.org/package/show/network:cluster/spack?expand=0&rev=49
2022-11-24 08:38:21 +01:00
#sed -i 's@#!/bin/env sh@#!/bin/bash@' var/spack/repos/builtin/packages/beast-tracer/tracer
#sed -i 's@#! /usr/bin/env bash@ #!/bin/bash@' share/spack/docker/entrypoint.bash
#sed -i 's@#!/usr/bin/env bash@#!/bin/bash@' share/spack/docker/package-index/split.sh
mkdir -p %{buildroot}%{spack_dir}
mkdir -p %{buildroot}%{spack_dir}/opt
mkdir -p %{buildroot}%{_datarootdir}/spack/lib/spack
mkdir -p %{buildroot}%{_datarootdir}/spack/modules
mkdir -p %{buildroot}%{_localstatedir}/lib/spack
mkdir -p %{buildroot}%{_localstatedir}/lib/spack/junit-report
mkdir -p %{buildroot}%{_localstatedir}/cache/spack
mkdir -p %{buildroot}%{_sysconfdir}/skel/.spack/
mkdir -p %{buildroot}/%{_bindir}
# Link avoids having to fix paths
ln -sf %{buildroot}/%{_localstatedir}/cache/spack %{buildroot}%{_localstatedir}/lib/spack/cache
# Copy files to corresponding paths
cp -r etc %{buildroot}%{_prefix}
Accepting request 1037625 from home:mslacken:sp - updated to version 0.19.0 with follwoinig 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 - Improvement 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 OBS-URL: https://build.opensuse.org/request/show/1037625 OBS-URL: https://build.opensuse.org/package/show/network:cluster/spack?expand=0&rev=49
2022-11-24 08:38:21 +01:00
cp -r lib/spack/{env,external,llnl,spack,spack_installable} %{buildroot}%{spack_dir}
cp -r share/spack/* %{buildroot}%{_datarootdir}/spack
cp -r var/spack/* %{buildroot}%{_localstatedir}/lib/spack
# No repos in /var
mv %{buildroot}%{_localstatedir}/lib/spack/repos %{buildroot}%{_datarootdir}/spack
cp -r bin/sbang %{buildroot}/%{_bindir}
cp -r bin/spack* %{buildroot}%{_bindir}/
cp etc/spack/defaults/config.yaml %{buildroot}%{_sysconfdir}/skel/.spack/
install -m 755 %{S:3} %{buildroot}/%{spack_dir}/run-find-external.sh
sed -i -e 's#@@_sysconfdir@@#%{_sysconfdir}#' %{buildroot}/%{spack_dir}/run-find-external.sh
# Make spack only to write to home dir of user, if run as user
sed -i 's@\(\sroot:\) /opt/spack@\1 ~/spack/packages@' %{buildroot}%{_sysconfdir}/skel/.spack/config.yaml
sed -i 's@\(\ssource_cache:\).*@\1 /var/tmp/$user/spack-cache@' %{buildroot}%{_sysconfdir}/skel/.spack/config.yaml
cat >> %{buildroot}%{_sysconfdir}/skel/.spack/config.yaml <<EOF
Accepting request 1037625 from home:mslacken:sp - updated to version 0.19.0 with follwoinig 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 - Improvement 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 OBS-URL: https://build.opensuse.org/request/show/1037625 OBS-URL: https://build.opensuse.org/package/show/network:cluster/spack?expand=0&rev=49
2022-11-24 08:38:21 +01:00
binary_index_root: ~/.spack/indices
EOF
cat >> %{buildroot}%{_sysconfdir}/skel/.spack/modules.yaml <<EOF
modules:
default:
roots:
tcl: ~/spack/modules
lmod: ~/spack/modules
EOF
# compile python files for python3
# %%{buildroot}%%{spack_dir}/spack
%py3_compile .
# make shell scripts executeable
find %{buildroot}%{_localstatedir}/lib/spack/ -type f -name \*.sh -exec chmod 755 {} \;
# Create /etc/spack/compilers.yaml
mkdir -p %{buildroot}%{spack_dir}/etc/spack/
cat > %{buildroot}%{spack_dir}/etc/spack/compilers.yaml <<EOF
compilers:
- compiler:
spec: gcc@GCC_FULL_VERSION
paths:
cc: /usr/bin/gcc-GCC_VERSION
cxx: /usr/bin/g++-GCC_VERSION
f77: /usr/bin/gfortran-GCC_VERSION
fc: /usr/bin/gfortran-GCC_VERSION
flags: {}
operating_system: SUSE_VERSION
target: HOSTTYPE
modules: []
environment:
unset: []
extra_rpaths: []
EOF
# Create /etc/profile.d/spack.sh
# This file properly sets MODULEPATH so lua-lmod can find the modules created by spack
mkdir -p %{buildroot}/%{_sysconfdir}/profile.d
cat > %{buildroot}/%{_sysconfdir}/profile.d/spack.sh <<EOF
source /etc/os-release
if [ "\${ID}" = "opensuse-tumbleweed" ] ; then
SPACK_NAME="\${ID/-/}"
else
SPACK_NAME="\${ID/-/_}\${VERSION_ID/.*/}"
fi
export SPACK_ROOT=%{spack_dir}
Accepting request 880145 from home:anag:branches:home:mslacken:sp - set the right MODULEPATH in /etc/profile.d/spack.[cs]h - Remove BuildRequires for patterns-base-basesystem and distribution-release. - 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 - 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. - added patch for more reproduceable output for the doc package * added file: added-target-and-os-calls-to-output-of-spack-spec-co.patch - added test for /etc/spack/no_rpm_trigger - added %triggerin and %triggerpostun for the packages which can be detected by spack - updated to 0.16.0 - added find for external packages - added dockerfile for leap * added patchfile added-dockerfile-for-opensuse-leap-15.patch - 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. - added profile file for csh - enabled projections - updated README.SUSE - 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 - Initial release. Version 0.15.4 * Make-spack-paths-compliant-to-distro-installation.patch Make spack paths compliant to distro installation. OBS-URL: https://build.opensuse.org/request/show/880145 OBS-URL: https://build.opensuse.org/package/show/network:cluster/spack?expand=0&rev=13
2021-03-19 17:07:22 +01:00
export MODULEPATH=~/spack/modules/linux-\${SPACK_NAME}-\${CPU}:%{_prefix}/share/spack/modules/linux-\${SPACK_NAME}-\${CPU}:\${MODULEPATH}
# copy local configuration, if its not there
if [ ! -e ~/.spack/config.yaml ] ; then
# test if user is in spack group by touching database
if ! touch %{spack_dir}/.spack-db &> /dev/null ; then
test -e ~/.spack || mkdir -p ~/.spack
[ -e ~/.spack/config.yaml ] || \
cp -r %{_sysconfdir}/skel/.spack/config.yaml ~/.spack/
[ -e ~/.spack/modules.yaml ] || \
cp -r %{_sysconfdir}/skel/.spack/modules.yaml ~/.spack/
fi
fi
EOF
# Same for csh
cat > %{buildroot}/%{_sysconfdir}/profile.d/spack.csh <<EOF
# get ID
eval \`awk '/^ID=/ {sub("-","_"); printf("set %%s",\$0);}' /etc/os-release\`
# get VERSION_ID
eval \`awk '/^VERSION_ID=/ {sub("\\\\.[0-9]",""); printf("set %%s",\$0);}' /etc/os-release\`
if ( \$ID == "opensuse_tumbleweed" ) then
eval \`awk '/^ID=/ {sub("-",""); printf("set %%s",\$0);}' /etc/os-release\`
set SPACK_NAME=\$ID
else
set SPACK_NAME="\${ID}\${VERSION_ID}"
endif
set SPACK_ROOT="%{spack_dir}"
Accepting request 880145 from home:anag:branches:home:mslacken:sp - set the right MODULEPATH in /etc/profile.d/spack.[cs]h - Remove BuildRequires for patterns-base-basesystem and distribution-release. - 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 - 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. - added patch for more reproduceable output for the doc package * added file: added-target-and-os-calls-to-output-of-spack-spec-co.patch - added test for /etc/spack/no_rpm_trigger - added %triggerin and %triggerpostun for the packages which can be detected by spack - updated to 0.16.0 - added find for external packages - added dockerfile for leap * added patchfile added-dockerfile-for-opensuse-leap-15.patch - 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. - added profile file for csh - enabled projections - updated README.SUSE - 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 - Initial release. Version 0.15.4 * Make-spack-paths-compliant-to-distro-installation.patch Make spack paths compliant to distro installation. OBS-URL: https://build.opensuse.org/request/show/880145 OBS-URL: https://build.opensuse.org/package/show/network:cluster/spack?expand=0&rev=13
2021-03-19 17:07:22 +01:00
set MODULEPATH="~/spack/modules/linux-\${SPACK_NAME}-\${CPU}:%{_prefix}/share/spack/modules/linux-\${SPACK_NAME}-\${CPU}:\${MODULEPATH}"
if ( ! -e ~/.spack/config.yaml ) then
# test if user is in spack group by touching database
touch %{spack_dir}/.spack-db >& /dev/null
if ( \$? == 1 ) then
test -e ~/.spack || mkdir -p ~/.spack
test -e ~/.spack/config.yaml || \
cp -r %{_sysconfdir}/skel/.spack/config.yaml ~/.spack/
test -e ~/.spack/modules.yaml || \
cp -r %{_sysconfdir}/skel/.spack/modules.yaml ~/.spack/
endif
endif
EOF
## Create modules.yaml file, so that hierarchy module files are created
#cat > %{buildroot}%{spack_dir}/etc/spack/modules.yaml <<EOF
#modules:
# enable:
# - lmod
# lmod:
# core_compilers:
# - 'gcc@GCC_FULL_VERSION'
# projections:
# all: '{compiler.name}-{compiler.version}/{name}/{version}'
# ^mpi: '{compiler.name}-{compiler.version}/{^mpi.name}-{^mpi.version}/{name}/{version}'
#EOF
mkdir -p %{buildroot}%{_sysconfdir}/spack
# Fix link to not point into buildroot
rm -f %{buildroot}%{_localstatedir}/lib/spack/cache
ln -sf %{_localstatedir}/cache/spack %{buildroot}%{_localstatedir}/lib/spack/cache
# Remove problematic binaries which are removed upstream with
# 0889be20e0d9dcdf4346cdeaa0647285187375f3
rm -r %{buildroot}%{_datarootdir}/spack/repos/builtin/packages/patchelf/test/
echo "g %{name} -" > system-group-%{name}.conf
%sysusers_generate_pre system-group-%{name}.conf %{name} system-group-%{name}.conf
install -D -m 644 system-group-%{name}.conf %{buildroot}%{_sysusersdir}/system-group-%{name}.conf
%fdupes %{buildroot}%{spack_dir}
%fdupes %{buildroot}%{_datarootdir}/spack
%fdupes %{buildroot}%{_localstatedir}/lib/spack
%{?_distconfdir:%fdupes %{buildroot}/%{_distconfdir}/spack}
%else
mkdir -p %{buildroot}%{_infodir}
mkdir -p %{buildroot}%{_mandir}/man1
cd lib/spack/docs/_build
cp man/spack.1.gz %{buildroot}%{_mandir}/man1/
cp -r texinfo/Spack.info.gz %{buildroot}%{_infodir}
[ -d texinfo/Spack-figures ] && cp -r texinfo/Spack-figures %{buildroot}%{_infodir}
%endif
%pre -f %{name}.pre
%post
# Replace /etc/spack/compilers.yaml
export GCC_VERSION=`gcc -dumpversion`
export GCC_FULL_VERSION=`gcc -dumpfullversion`
sed -i "s@GCC_FULL_VERSION@$GCC_FULL_VERSION@" %{spack_dir}/etc/spack/compilers.yaml
#sed -i "s@GCC_FULL_VERSION@$GCC_FULL_VERSION@" %{spack_dir}/etc/spack/modules.yaml
sed -i "s@GCC_VERSION@$GCC_VERSION@" %{spack_dir}/etc/spack/compilers.yaml
if [ -e /etc/os-release ] ; then
source /etc/os-release
if [ "${ID}" = "opensuse-tumbleweed" ] ; then
export SPACK_NAME="${ID/-/}"
else
export SPACK_NAME="${ID/-/_}${VERSION_ID/.*/}"
fi
sed -i "s@SUSE_VERSION@$SPACK_NAME@" %{spack_dir}/etc/spack/compilers.yaml
sed -i "s@SUSE_VERSION@$SPACK_NAME@g" /etc/profile.d/spack.sh
fi
sed -i "s@HOSTTYPE@$HOSTTYPE@" %{spack_dir}/etc/spack/compilers.yaml
# find installed programms
Accepting request 1037625 from home:mslacken:sp - updated to version 0.19.0 with follwoinig 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 - Improvement 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 OBS-URL: https://build.opensuse.org/request/show/1037625 OBS-URL: https://build.opensuse.org/package/show/network:cluster/spack?expand=0&rev=49
2022-11-24 08:38:21 +01:00
/usr/lib/spack/run-find-external.sh
Accepting request 931785 from home:mslacken:sp - 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 OBS-URL: https://build.opensuse.org/request/show/931785 OBS-URL: https://build.opensuse.org/package/show/network:cluster/spack?expand=0&rev=35
2021-11-16 15:32:55 +01:00
mkdir -p /opt/spack
chgrp spack /opt/spack
chmod 0775 /opt/spack
%triggerin -- %{?spack_trigger_recommended} %{?spack_trigger_packages} %{?spack_trigger_external}
/usr/lib/spack/run-find-external.sh
%triggerpostun -- %{?spack_trigger_recommended} %{?spack_trigger_packages} %{?spack_trigger_external}
/usr/lib/spack/run-find-external.sh
%if %{without doc}
%files
%license COPYRIGHT LICENSE-APACHE LICENSE-MIT
%doc CHANGELOG.md NOTICE README.md README.SUSE
%dir %{_sysconfdir}/spack/
%{_bindir}/*
%if 0%{?suse_version} <= 1500
%dir %{_prefix}/etc
%endif
%{_prefix}/etc/spack
%attr(0775, root, spack) %{_localstatedir}/lib/spack/junit-report
%attr(0775, root, spack) %{spack_dir}/opt
%attr(0775, root, spack) %{_localstatedir}/cache/spack
%attr(0775, root, spack) %{_datarootdir}/spack/modules
%{spack_dir}
%{_localstatedir}/cache/spack
%{_localstatedir}/lib/spack
%{_datarootdir}/spack
%exclude %{_datarootdir}/spack/repos
%config %{_sysconfdir}/profile.d/spack.sh
%ghost %config %{_sysconfdir}/spack/packages.yaml
%config %{_sysconfdir}/profile.d/spack.csh
%dir %{_sysconfdir}/skel/.spack
%config %{_sysconfdir}/skel/.spack/config.yaml
%config %{_sysconfdir}/skel/.spack/modules.yaml
# repos directory is installed in -recipes
%{_sysusersdir}/system-group-%{name}.conf
%files recipes
%license COPYRIGHT LICENSE-APACHE LICENSE-MIT
%doc CHANGELOG.md NOTICE README.md
%{_datarootdir}/spack/repos
%else
%post info
%install_info --info-dir=%{_infodir} --info-file="%{_infodir}/Spack.info.gz"
%preun info
%install_info_delete --info-dir=%{_infodir} --info-file="%{_infodir}/Spack.info.gz"
%files man
%{_mandir}/man1/*
%files info
%{_infodir}/*
%endif
%changelog