spack/spack.spec
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

546 lines
20 KiB
RPMSpec

#
# spec file for package spack
#
# Copyright (c) 2024 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
ExcludeArch: i586 %arm s390 s390x %power64 ppc
%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 missing from a BCI-style base container but may
# be used by Spack for building. To avoid unresolved libraries, make
# sure these are installed in the runtime container.
%if 0%{suse_version} == 1500
%define spack_container_packages libgfortran4 libfl2 libzip5
%else
%if 0%{suse_version} > 1600
%define spack_container_packages libgfortran5 libfl2 libzip5
%endif
%endif
# These packages are found and can be used by spack, %{_sysconfdir}/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_packages autoconf bash bison bzip2 libzip-devel cmake-full ccache cpio diffutils findutils flex git-lfs info make makeinfo m4 ncurses-devel libtool libcurl-devel libopenssl-devel perl-base pkgconf pkg-config python3-base tar xz xz-devel
%define spack_trigger_recommended_compilers gcc gcc-c++ gcc-fortran
# packages recognized by spack, but not recommended
%define spack_trigger_packages ghostscript go fish fzf hwloc-devel hugo java-11-openjdk-devel java-14-openjdk-devel java-15-openjdk-devel java-16-openjdk-devel java-1_8_0-openjdk-devel ruby sqlite3 openmpi1-devel openmpi2-devel openmpi3-devel openmpi4-devel openmpi1-gnu-hpc-devel openmpi2-gnu-hpc-devel openmpi3-gnu-hpc-devel openmpi4-gnu-hpc-devel mpich-gnu-hpc-devel mvapich2-devel mpich-devel
%define spack_trigger_compilers gcc7 gcc8 gcc9 gcc10 gcc11 gcc12 gcc13 gcc7-c++ gcc8-c++ gcc9-c++ gcc10-c++ gcc11-c++ gcc12-c++ gcc13-c++ gcc7-fortran gcc8-fortran gcc9-fortran gcc10-fortran gcc11-fortran gcc12-fortran gcc13-fortran
# non oss packages
%define spack_trigger_external cuda-nvcc
%if 0%{?sle_version} <= 120500 && !0%{?is_opensuse}
%define __python3 python3
%endif
%define mypyver 3
%define mypython python%{?mypyver}
Name: spack
Version: 0.22.2
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
# without `--header "Accept-Language: en" en.opensuse.org returns 406
#Source4: https://en.opensuse.org/index.php?title=Spack&action=raw&ref=157522#/README-oo-wiki
Source4: 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
Source6: spack_get_libs.sh
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
Patch5: Make-spack-paths-compliant-to-distro-installation.patch
Patch6: Fix-error-during-documentation-build-due-to-recursive-module-inclusion.patch
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
Patch10: Move-site-config-scope-before-system-scope.patch
%if %{without doc}
BuildRequires: %{mypython}-urllib3
BuildRequires: fdupes
BuildRequires: lua-lmod
BuildRequires: polkit
BuildRequires: sudo
BuildRequires: sysuser-tools
Requires: %{mypython}-clingo
Requires: %{name}-recipes = %{version}
Requires: awk
Requires: bzip2
Requires: coreutils
Requires: curl
Requires: gcc-c++
Requires: gcc-fortran
Requires: git
Requires: gpg2
Requires: gzip
Requires: libbz2-devel
Requires: lsb-release
Requires: make
Requires: patch
Requires: polkit
Requires: sudo
Requires: system-user-nobody
Requires: tar
Requires: unzip
Requires: xz
Requires: zstd
Requires: (patchelf if (product(SUSE_SLE) >= 15.6 or product(Leap) or product(openSUSE)))
Recommends: %spack_trigger_recommended_packages %spack_trigger_recommended_compilers
Recommends: lua-lmod
Recommends: patchelf
Requires: (hwloc if hwloc-devel)
Requires: (hwloc-devel if hwloc)
%else
BuildRequires: git
BuildRequires: makeinfo
# Hardcode this - there is no python2 version of this around any more.
BuildRequires: %{mypython}-Sphinx >= 3.4
BuildRequires: %{mypython}-sphinxcontrib-programoutput
BuildRequires: spack
# html
BuildRequires: graphviz
# info
BuildRequires: graphviz-gnome
## pdf
# BuildRequires: %{mypython}-Sphinx-latex
Recommends: spack
%endif
BuildArch: noarch
%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
%if 0%{?suse_version} <= 1500
Requires(post): %{install_info_prereq}
Requires(pre): %{install_info_prereq}
%endif
%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.
%package build-dependencies
Summary: Spack Build Dependencies
Requires: bison
Requires: cmake-full
Requires: flex
Requires: libcurl-devel
Requires: libopenssl-devel
Requires: libtool
Requires: libzip-devel
Requires: ncurses-devel
Requires: xz-devel
Requires: zip
%description build-dependencies
This package provides dependencies to packages of some frequently used
build tools. If Spack finds these on the system it will not attempt to
build them.
%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
%else
cp %{S:5} lib/spack/docs/
%endif
%build
# Nothing to build
%if %{with doc}
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|unit-test) exit 0 ;;
*) exec %{_bindir}/spack ${args} ;;
esac;
done
exit 0' > $tmpdir/spack
chmod 0755 $tmpdir/spack
PATH=$tmpdir:${PATH}
export PATH
mkdir -p /tmp/spack
cd lib/spack/docs
# 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"
grep -rl '/var/lib/spack/repos' | grep -v "cmd/list.py" | \
xargs -i@ sed -i 's|/var/lib/spack/repos|/usr/share/spack/repos|g' @
# spack cannot run without knowing at least the compiler, so we inject
# a dummy one
mkdir -p ${HOME}/.spack/linux/
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
# with doc
%endif
cd -
grep -rl '#! /usr/bin/env bash' . | xargs -i@ sed -i '1s|#! /usr/bin/env bash|#!%{_bindir}/bash|g' @
grep -rl '#!/bin/env sh' . | xargs -i@ sed -i '1s|#!/bin/env sh|#!%{_bindir}/sh|g' @
grep -rl '#!/usr/bin/env bash' . | xargs -i@ sed -i '1s|#!/usr/bin/env bash|#!%{_bindir}/bash|g' @
grep -rl '#![[:space:]]*/usr/bin/env python' | \
xargs -i@ sed -i '1s|#![[:space:]]*/usr/bin/env python|#!%{_bindir}/%{mypython}|g' @
grep -rl '/var/spack/repos' | grep -v "cmd/list.py" | \
xargs -i@ sed -i 's|/var/spack/repos|/usr/share/spack/repos|g' @
grep -rl "spack/" . | xargs -i@ sed -i \
-e 's|$spack/opt|/opt|g' \
-e 's|$spack/var|/var/lib|g'\
-e 's|$spack/usr|/usr|g'\
-e 's|$spack/share/spack/lmod|/opt/spack/modules|g'\
-e 's|$spack/share/spack/modules|/opt/spack/modules|g'\
@
%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 var/spack/repos/duplicates.test
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
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}
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 %{S:6} %{buildroot}%{_bindir}/
chmod 0755 %{buildroot}%{_bindir}/%{basename:%{S:6}}
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
sed -i -e '/. \/opt/s#/opt/spack/#/usr/#' %{buildroot}/%{_datarootdir}/spack/templates/container/singularity.def
%{?spack_container_packages:
sed -i -e 's/\(zypper update -y\)/\1 \&\& zypper -n in -y %{spack_container_packages}/' \
%{buildroot}%{spack_dir}/spack/container/images.json}
# 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
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 %{mypython}
# %%{buildroot}%%{spack_dir}/spack
%{expand:%{py%{?mypyver}_compile .}}
# make shell scripts executeable
find %{buildroot}%{_localstatedir}/lib/spack/ -type f -name \*.sh -exec chmod 755 {} \;
# Create %{_sysconfdir}/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
ID=\$(source /etc/os-release; echo \${ID})
if [ "\${ID}" = "opensuse-tumbleweed" ] ; then
SPACK_NAME="\${ID/-/}"
else
SPACK_NAME="\${ID/-/_}\${VERSION_ID/.*/}"
fi
export SPACK_ROOT=%{_prefix}
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="%{_prefix}"
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
%if %{without doc}
# for sysusers
%pre -f %{name}.pre
%post
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@g" %{_sysconfdir}/profile.d/spack.sh
fi
mkdir -p /opt/spack
chgrp spack /opt/spack
chmod 0775 /opt/spack
%triggerin -- %{?spack_trigger_recommended_packages} %{?spack_trigger_packages} %{?spack_trigger_external}
/usr/lib/spack/run-find-external.sh packages
%triggerin -- %{?spack_trigger_recommended_compilers} %{?spack_trigger_compilers}
/usr/lib/spack/run-find-external.sh compilers
%triggerpostun -- %{?spack_trigger_recommended_packages} %{?spack_trigger_packages} %{?spack_trigger_external}
/usr/lib/spack/run-find-external.sh packages
%triggerpostun -- %{?spack_trigger_recommended_compilers} %{?spack_trigger_compilers}
/usr/lib/spack/run-find-external.sh compilers
%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
%files build-dependencies
#%{without doc}
%else
%if 0%{?suse_version} <= 1500
%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"
%endif
%files man
%{_mandir}/man1/*
%files info
%{_infodir}/*
%endif
%changelog