Accepting request 879451 from home:mslacken:sp
- 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 OBS-URL: https://build.opensuse.org/request/show/879451 OBS-URL: https://build.opensuse.org/package/show/network:cluster/spack?expand=0&rev=11
This commit is contained in:
parent
4e77c2128c
commit
1a3d64d65d
65
basic-exclude-pattern-for-external-find.patch
Normal file
65
basic-exclude-pattern-for-external-find.patch
Normal file
@ -0,0 +1,65 @@
|
|||||||
|
From 03bf4e89802b626278a4b14b4349ee94aa722965 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Christian Goll <cgoll@suse.de>
|
||||||
|
Date: Fri, 26 Feb 2021 14:21:04 +0100
|
||||||
|
Subject: [PATCH] basic exclude pattern for external find
|
||||||
|
|
||||||
|
---
|
||||||
|
lib/spack/spack/cmd/external.py | 18 +++++++++++++-----
|
||||||
|
1 file changed, 13 insertions(+), 5 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/lib/spack/spack/cmd/external.py b/lib/spack/spack/cmd/external.py
|
||||||
|
index 52af72ed8f..ff583d9e87 100644
|
||||||
|
--- a/lib/spack/spack/cmd/external.py
|
||||||
|
+++ b/lib/spack/spack/cmd/external.py
|
||||||
|
@@ -42,6 +42,9 @@ def setup_parser(subparser):
|
||||||
|
'--scope', choices=scopes, metavar=scopes_metavar,
|
||||||
|
default=spack.config.default_modify_scope('packages'),
|
||||||
|
help="configuration scope to modify")
|
||||||
|
+ find_parser.add_argument(
|
||||||
|
+ '--exclude',
|
||||||
|
+ help="do not call binaries with this regular pattern for the search")
|
||||||
|
find_parser.add_argument('packages', nargs=argparse.REMAINDER)
|
||||||
|
|
||||||
|
sp.add_parser(
|
||||||
|
@@ -153,7 +156,7 @@ def external_find(args):
|
||||||
|
else:
|
||||||
|
packages_to_check = spack.repo.path.all_packages()
|
||||||
|
|
||||||
|
- pkg_to_entries = _get_external_packages(packages_to_check)
|
||||||
|
+ pkg_to_entries = _get_external_packages(packages_to_check,args.exclude)
|
||||||
|
new_entries = _update_pkg_config(
|
||||||
|
args.scope, pkg_to_entries, args.not_buildable
|
||||||
|
)
|
||||||
|
@@ -236,7 +239,7 @@ def _update_pkg_config(scope, pkg_to_entries, not_buildable):
|
||||||
|
return all_new_specs
|
||||||
|
|
||||||
|
|
||||||
|
-def _get_external_packages(packages_to_check, system_path_to_exe=None):
|
||||||
|
+def _get_external_packages(packages_to_check,exclude_binaries=None, system_path_to_exe=None):
|
||||||
|
if not system_path_to_exe:
|
||||||
|
system_path_to_exe = _get_system_executables()
|
||||||
|
|
||||||
|
@@ -247,12 +250,17 @@ def _get_external_packages(packages_to_check, system_path_to_exe=None):
|
||||||
|
exe_pattern_to_pkgs[exe].append(pkg)
|
||||||
|
|
||||||
|
pkg_to_found_exes = defaultdict(set)
|
||||||
|
+ if exclude_binaries:
|
||||||
|
+ compiled_exclude = re.compile(exclude_binaries)
|
||||||
|
+ else:
|
||||||
|
+ compiled_exclude = None
|
||||||
|
for exe_pattern, pkgs in exe_pattern_to_pkgs.items():
|
||||||
|
compiled_re = re.compile(exe_pattern)
|
||||||
|
for path, exe in system_path_to_exe.items():
|
||||||
|
- if compiled_re.search(exe):
|
||||||
|
- for pkg in pkgs:
|
||||||
|
- pkg_to_found_exes[pkg].add(path)
|
||||||
|
+ if not compiled_exclude or not compiled_exclude.search(exe):
|
||||||
|
+ if compiled_re.search(exe):
|
||||||
|
+ for pkg in pkgs:
|
||||||
|
+ pkg_to_found_exes[pkg].add(path)
|
||||||
|
|
||||||
|
pkg_to_entries = defaultdict(list)
|
||||||
|
resolved_specs = {} # spec -> exe found for the spec
|
||||||
|
--
|
||||||
|
2.26.2
|
||||||
|
|
@ -1,3 +0,0 @@
|
|||||||
version https://git-lfs.github.com/spec/v1
|
|
||||||
oid sha256:064b2532c70916c7684d4c7c973416ac32dd2ea15f5c392654c75258bfc8c6c2
|
|
||||||
size 5512800
|
|
3
spack-0.16.1.tar.gz
Normal file
3
spack-0.16.1.tar.gz
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
version https://git-lfs.github.com/spec/v1
|
||||||
|
oid sha256:8d893036b24d9ee0feee41ac33dd66e4fc68d392918f346f8a7a36a69c567567
|
||||||
|
size 5528986
|
@ -4,6 +4,28 @@ Fri Feb 26 22:06:36 UTC 2021 - Egbert Eich <eich@suse.com>
|
|||||||
- Remove BuildRequires for patterns-base-basesystem and
|
- Remove BuildRequires for patterns-base-basesystem and
|
||||||
distribution-release.
|
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>
|
Thu Feb 4 06:54:13 UTC 2021 - Egbert Eich <eich@suse.com>
|
||||||
|
|
||||||
|
37
spack.spec
37
spack.spec
@ -28,15 +28,15 @@ ExclusiveArch: do_not_build
|
|||||||
%define spack_dir %_prefix/lib/spack/
|
%define spack_dir %_prefix/lib/spack/
|
||||||
%define spack_group spack
|
%define spack_group spack
|
||||||
# These packages are found and can be used by spack, /etc/spack/packages-yaml
|
# 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.
|
# needs to be updated when one of these packages is updated or uninstalled.
|
||||||
# Distinguish between packages we recommend and packages which
|
# Distinguish between packages we recommend and packages which
|
||||||
%define spack_trigger_recommended autoconf bash bison bzip2 cmake-full ccache cpio diffutils findutils flex gcc gcc-fortran git-lfs make m4 ncurses-devel libtool openssl perl-base pkgconf pkgconf-pkg-config python3-basetar info xz
|
%define spack_trigger_recommended autoconf bash bison bzip2 cmake-full ccache cpio diffutils findutils flex gcc gcc-fortran git-lfs make m4 ncurses-devel libtool openssl perl-base pkgconf pkgconf-pkg-config python3-basetar info xz
|
||||||
# packages recognized by spack, but not recommended
|
# 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
|
%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
|
||||||
# non oss packages
|
# non oss packages
|
||||||
%define spack_trigger_external cuda-nvcc
|
%define spack_trigger_external cuda-nvcc
|
||||||
Name: spack
|
Name: spack
|
||||||
Version: 0.16.0
|
Version: 0.16.1
|
||||||
Release: 0
|
Release: 0
|
||||||
Summary: Package manager for HPC systems
|
Summary: Package manager for HPC systems
|
||||||
License: Apache-2.0 AND MIT AND Python-2.0 AND BSD-3-Clause
|
License: Apache-2.0 AND MIT AND Python-2.0 AND BSD-3-Clause
|
||||||
@ -51,6 +51,7 @@ Patch3: added-dockerfile-for-opensuse-leap-15.patch
|
|||||||
Patch4: added-target-and-os-calls-to-output-of-spack-spec-co.patch
|
Patch4: added-target-and-os-calls-to-output-of-spack-spec-co.patch
|
||||||
Patch5: Fix-documentation-so-that-parser-doesn-t-stumble.patch
|
Patch5: Fix-documentation-so-that-parser-doesn-t-stumble.patch
|
||||||
Patch6: Fix-error-during-documentation-build-due-to-recursive-module-inclusion.patch
|
Patch6: Fix-error-during-documentation-build-due-to-recursive-module-inclusion.patch
|
||||||
|
Patch7: basic-exclude-pattern-for-external-find.patch
|
||||||
# upstream patch removes also problemtatic binaries
|
# upstream patch removes also problemtatic binaries
|
||||||
#Patch4: spack-test-15702.patch
|
#Patch4: spack-test-15702.patch
|
||||||
%if %{without doc}
|
%if %{without doc}
|
||||||
@ -68,8 +69,8 @@ Requires: lua-lmod
|
|||||||
Requires: polkit
|
Requires: polkit
|
||||||
Requires: spack-recipes
|
Requires: spack-recipes
|
||||||
Requires: xz
|
Requires: xz
|
||||||
Recommends: spack-recipes = %version
|
|
||||||
Recommends: %spack_trigger_recommended
|
Recommends: %spack_trigger_recommended
|
||||||
|
Recommends: spack-recipes = %version
|
||||||
%else
|
%else
|
||||||
BuildRequires: %{python_module Sphinx >= 1.8}
|
BuildRequires: %{python_module Sphinx >= 1.8}
|
||||||
BuildRequires: %{python_module sphinxcontrib-programoutput}
|
BuildRequires: %{python_module sphinxcontrib-programoutput}
|
||||||
@ -100,7 +101,6 @@ using different compilers, options, and MPI implementations.
|
|||||||
|
|
||||||
This package provides a module file that must be loaded to use spack.
|
This package provides a module file that must be loaded to use spack.
|
||||||
|
|
||||||
|
|
||||||
%package recipes
|
%package recipes
|
||||||
Summary: Spack built-in package recipes
|
Summary: Spack built-in package recipes
|
||||||
Requires: %{name} >= %version
|
Requires: %{name} >= %version
|
||||||
@ -114,7 +114,7 @@ runs correctly regardless of environment, and file management
|
|||||||
is streamlined. Spack can install many variants of the same build
|
is streamlined. Spack can install many variants of the same build
|
||||||
using different compilers, options, and MPI implementations.
|
using different compilers, options, and MPI implementations.
|
||||||
|
|
||||||
This package contains the built-in package recipes.
|
This package contains the built-in package recipes.
|
||||||
|
|
||||||
%package man
|
%package man
|
||||||
Summary: Man Page for Spack - Package manager for HPC systems
|
Summary: Man Page for Spack - Package manager for HPC systems
|
||||||
@ -146,7 +146,6 @@ using different compilers, options, and MPI implementations.
|
|||||||
|
|
||||||
This package contains the info page.
|
This package contains the info page.
|
||||||
|
|
||||||
|
|
||||||
%prep
|
%prep
|
||||||
%setup -q
|
%setup -q
|
||||||
%autopatch -p1
|
%autopatch -p1
|
||||||
@ -166,9 +165,9 @@ cd lib/spack/docs
|
|||||||
grep -rl ":target:" | xargs sed -i -e "/:target:/s/^/#/" -e "/figure::/s/^/#/"
|
grep -rl ":target:" | xargs sed -i -e "/:target:/s/^/#/" -e "/figure::/s/^/#/"
|
||||||
# Fix path to var - we install this to the 'real' /var
|
# 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 "\$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
|
# spack cannot run without knowing at least the compiler, so we inject
|
||||||
# a dummy one
|
# a dummy one
|
||||||
mkdir -p ${HOME}/.spack/linux/
|
mkdir -p ${HOME}/.spack/linux/
|
||||||
cat > ${HOME}/.spack/linux/compilers.yaml <<EOF
|
cat > ${HOME}/.spack/linux/compilers.yaml <<EOF
|
||||||
compilers:
|
compilers:
|
||||||
- compiler:
|
- compiler:
|
||||||
@ -214,8 +213,8 @@ rm -f share/spack/setup-tutorial-env.sh
|
|||||||
# Fix rpmlint warnings
|
# Fix rpmlint warnings
|
||||||
## No need for the standalone scripts
|
## No need for the standalone scripts
|
||||||
rm -f lib/spack/external/macholib/macho_*.py
|
rm -f lib/spack/external/macholib/macho_*.py
|
||||||
## Fix shebangs
|
## Fix shebangs
|
||||||
sed -i 's@#!/bin/env sh@#!/bin/bash@' var/spack/repos/builtin/packages/beast-tracer/tracer
|
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/entrypoint.bash
|
||||||
sed -i 's@#!/usr/bin/env bash@#!/bin/bash@' share/spack/docker/package-index/split.sh
|
sed -i 's@#!/usr/bin/env bash@#!/bin/bash@' share/spack/docker/package-index/split.sh
|
||||||
|
|
||||||
@ -284,7 +283,7 @@ EOF
|
|||||||
mkdir -p %{buildroot}/%{_sysconfdir}/profile.d
|
mkdir -p %{buildroot}/%{_sysconfdir}/profile.d
|
||||||
cat > %{buildroot}/%{_sysconfdir}/profile.d/spack.sh <<EOF
|
cat > %{buildroot}/%{_sysconfdir}/profile.d/spack.sh <<EOF
|
||||||
source /etc/os-release
|
source /etc/os-release
|
||||||
if [ "\${ID}" == "opensuse-tumbleweed" ] ; then
|
if [ "\${ID}" == "opensuse-tumbleweed" ] ; then
|
||||||
SPACK_NAME="\${ID/-/}"
|
SPACK_NAME="\${ID/-/}"
|
||||||
else
|
else
|
||||||
SPACK_NAME="\${ID/-/_}\${VERSION_ID/.*/}"
|
SPACK_NAME="\${ID/-/_}\${VERSION_ID/.*/}"
|
||||||
@ -310,9 +309,9 @@ eval \`awk '/^VERSION_ID=/ {sub("\\\\.[0-9]",""); printf("set %%s",\$0);}' /etc/
|
|||||||
if ( \$ID == "opensuse_tumbleweed" ) then
|
if ( \$ID == "opensuse_tumbleweed" ) then
|
||||||
eval \`awk '/^ID=/ {sub("-",""); printf("set %%s",\$0);}' /etc/os-release\`
|
eval \`awk '/^ID=/ {sub("-",""); printf("set %%s",\$0);}' /etc/os-release\`
|
||||||
set SPACK_NAME=\$ID
|
set SPACK_NAME=\$ID
|
||||||
else
|
else
|
||||||
set SPACK_NAME="\${ID}\${VERSION_ID}"
|
set SPACK_NAME="\${ID}\${VERSION_ID}"
|
||||||
endif
|
endif
|
||||||
set SPACK_ROOT="%{spack_dir}"
|
set SPACK_ROOT="%{spack_dir}"
|
||||||
set MODULEPATH="~/spack/lmod/linux-\${SPACK_NAME}-\${CPU}:%{_prefix}/share/spack/lmod/linux-\${SPACK_NAME}-\${CPU}:\${MODULEPATH}"
|
set MODULEPATH="~/spack/lmod/linux-\${SPACK_NAME}-\${CPU}:%{_prefix}/share/spack/lmod/linux-\${SPACK_NAME}-\${CPU}:\${MODULEPATH}"
|
||||||
if ( ! -e ~/.spack/config.yaml ) then
|
if ( ! -e ~/.spack/config.yaml ) then
|
||||||
@ -371,7 +370,7 @@ sed -i "s@GCC_FULL_VERSION@$GCC_FULL_VERSION@" %{spack_dir}/etc/spack/modules.ya
|
|||||||
sed -i "s@GCC_VERSION@$GCC_VERSION@" %{spack_dir}/etc/spack/compilers.yaml
|
sed -i "s@GCC_VERSION@$GCC_VERSION@" %{spack_dir}/etc/spack/compilers.yaml
|
||||||
if [ -e /etc/os-release ] ; then
|
if [ -e /etc/os-release ] ; then
|
||||||
source /etc/os-release
|
source /etc/os-release
|
||||||
if [ "${ID}" == "opensuse-tumbleweed" ] ; then
|
if [ "${ID}" == "opensuse-tumbleweed" ] ; then
|
||||||
export SPACK_NAME="${ID/-/}"
|
export SPACK_NAME="${ID/-/}"
|
||||||
else
|
else
|
||||||
export SPACK_NAME="${ID/-/_}${VERSION_ID/.*/}"
|
export SPACK_NAME="${ID/-/_}${VERSION_ID/.*/}"
|
||||||
@ -381,15 +380,15 @@ if [ -e /etc/os-release ] ; then
|
|||||||
fi
|
fi
|
||||||
sed -i "s@HOSTTYPE@$HOSTTYPE@" %{spack_dir}/etc/spack/compilers.yaml
|
sed -i "s@HOSTTYPE@$HOSTTYPE@" %{spack_dir}/etc/spack/compilers.yaml
|
||||||
# find installed programms
|
# find installed programms
|
||||||
test -e %{_sysconfdir}/spack/no_rpm_trigger || spack external find --scope system
|
test -e %{_sysconfdir}/spack/no_rpm_trigger || spack external find --scope system --exclude 'installdbgsymbols'
|
||||||
|
|
||||||
%triggerin -- %{?spack_trigger_recommended} %{?spack_trigger_packages} %{?spack_trigger_external}
|
%triggerin -- %{?spack_trigger_recommended} %{?spack_trigger_packages} %{?spack_trigger_external}
|
||||||
test -e %{_sysconfdir}/spack/no_rpm_trigger || spack external find --scope system
|
test -e %{_sysconfdir}/spack/no_rpm_trigger || spack external find --scope system --exclude 'installdbgsymbols'
|
||||||
test -e %{_sysconfdir}/spack/no_rpm_trigger || echo "Create %{_sysconfdir}/spack/no_rpm_trigger to stop spack to search for new packages after a rpm install"
|
test -e %{_sysconfdir}/spack/no_rpm_trigger || echo "Create %{_sysconfdir}/spack/no_rpm_trigger to stop spack to search for new packages after a rpm install"
|
||||||
|
|
||||||
%triggerpostun -- %{?spack_trigger_recommended} %{?spack_trigger_packages} %{?spack_trigger_external}
|
%triggerpostun -- %{?spack_trigger_recommended} %{?spack_trigger_packages} %{?spack_trigger_external}
|
||||||
test -e %{_sysconfdir}/spack/no_rpm_trigger || rm /etc/spack/packages.yaml
|
test -e %{_sysconfdir}/spack/no_rpm_trigger || rm /etc/spack/packages.yaml
|
||||||
test -e %{_sysconfdir}/spack/no_rpm_trigger || spack external find --scope system
|
test -e %{_sysconfdir}/spack/no_rpm_trigger || spack external find --scope system --exclude 'installdbgsymbols'
|
||||||
test -e %{_sysconfdir}/spack/no_rpm_trigger || echo "Create %{_sysconfdir}/spack/no_rpm_trigger to stop spack to search for new packages after a rpm install"
|
test -e %{_sysconfdir}/spack/no_rpm_trigger || echo "Create %{_sysconfdir}/spack/no_rpm_trigger to stop spack to search for new packages after a rpm install"
|
||||||
|
|
||||||
%if %{without doc}
|
%if %{without doc}
|
||||||
|
Loading…
Reference in New Issue
Block a user