Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package spack for openSUSE:Factory checked in at 2023-03-09 17:46:39 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/spack (Old) and /work/SRC/openSUSE:Factory/.spack.new.31432 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "spack" Thu Mar 9 17:46:39 2023 rev:29 rq:1070345 version:0.19.1 Changes: -------- --- /work/SRC/openSUSE:Factory/spack/spack.changes 2023-03-02 23:03:59.231943174 +0100 +++ /work/SRC/openSUSE:Factory/.spack.new.31432/spack.changes 2023-03-09 17:46:42.399216628 +0100 @@ -1,0 +2,8 @@ +Wed Mar 8 19:54:55 UTC 2023 - Egbert Eich <e...@suse.com> + +- Improve run-find-external.sh: + * Extend to run 'spack compiler find'. + * Separate triggers for packages and compilers. + * Better handle when search patterns match multiple directories. + +------------------------------------------------------------------- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ spack.spec ++++++ --- /var/tmp/diff_new_pack.TexyIY/_old 2023-03-09 17:46:43.455222250 +0100 +++ /var/tmp/diff_new_pack.TexyIY/_new 2023-03-09 17:46:43.459222270 +0100 @@ -27,12 +27,19 @@ %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 +%define spack_trigger_recommended_packages autoconf bash bison bzip2 libzip-devel cmake-full ccache cpio diffutils findutils flex git-lfs make m4 ncurses-devel libtool openssl-devel perl-base pkgconf pkg-config python3-base tar info 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 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 +%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 + +%define spack_trigger_compilers gcc7 gcc8 gcc9 gcc10 gcc11 gcc12 gcc7-c++ gcc8-c++ gcc9-c++ gcc10-c++ gcc11-c++ gcc12-c++ gcc7-fortran gcc8-fortran gcc9-fortran gcc10-fortran gcc11-fortran gcc12-fortran + # non oss packages %define spack_trigger_external cuda-nvcc Name: spack @@ -79,7 +86,7 @@ Requires: sudo Requires: tar Requires: xz -Recommends: %spack_trigger_recommended +Recommends: %spack_trigger_recommended_packages %spack_trigger_recommended_compilers %else BuildRequires: git BuildRequires: makeinfo @@ -460,11 +467,17 @@ 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 +%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} %{?spack_trigger_packages} %{?spack_trigger_external} -/usr/lib/spack/run-find-external.sh +%triggerpostun -- %{?spack_trigger_recommended_compilers} %{?spack_trigger_compilers} +/usr/lib/spack/run-find-external.sh compilers %if %{without doc} %files ++++++ run-find-external.sh.in ++++++ --- /var/tmp/diff_new_pack.TexyIY/_old 2023-03-09 17:46:43.547222739 +0100 +++ /var/tmp/diff_new_pack.TexyIY/_new 2023-03-09 17:46:43.547222739 +0100 @@ -1,5 +1,49 @@ #!/bin/bash -if [ -e @@_sysconfdir@@/spack/no_rpm_trigger ] ; then + +scope=system +what=$1 + +addpath() { + path=$1 + shift + while [ -n "$1" ]; do + eval "${path}"=${1}:${!path} + shift + done +} + +find_packages() { + if [ $scope = user ]; then + test -e /etc/spack/packages.yaml && mv /etc/spack/packages.yaml /etc/spack/packages.yaml.old + # drop all root rights, when calling external find + sudo -u nobody PATH=${mypath}:${PATH} spack external find --scope user --all #--exclude 'installdbgsymbols' + if [ -e /var/lib/nobody/.spack/packages.yaml ] ; then + mv -v /var/lib/nobody/.spack/packages.yaml /etc/spack/packages.yaml + chown root:root /etc/spack/packages.yaml + fi + rm -r /var/lib/nobody/.spack + else + # May run in a container... + PATH=${mypath}:${PATH} spack external find --scope system --all #--exclude 'installdbgsymbols' + fi +} + +find_compilers() { + if [ $scope = user ]; then + test -e /etc/spack/compilers.yaml && mv /etc/spack/compilers.yaml /etc/spack/compilers.yaml.old + # drop all root rights, when calling external find + sudo -u nobody PATH=${cpath}:${PATH} spack compiler find --scope user + if [ -e /var/lib/nobody/.spack/compilers.yaml ] ; then + mv -v /var/lib/nobody/.spack/compilers.yaml /etc/spack/compilers.yaml + chown root:root /etc/spack/compilers.yaml + fi + else + # May run in a container... + PATH=${cpath}:${PATH} spack compiler find --scope system + fi +} + +if [ -e /etc/spack/no_rpm_trigger ] ; then exit 0 fi if [ "x$(id -u)" != "x0" ] ; then @@ -9,35 +53,36 @@ echo "Create /etc/spack/no_rpm_trigger to stop spack to search for new packages after a rpm install" # save old packages.yml, it has to be removed as when not -# the new and old packages.yaml files would have to be +# the new and old packages.yaml files would have to be # combined -test -e /etc/spack/packages.yaml && mv /etc/spack/packages.yaml /etc/spack/packages.yaml.old -# prepare the path -mypath=/usr/lib64/mpi/gcc/openmpi4/bin -mypath=/usr/lib64/mpi/gcc/openmpi3/bin:${mypath} -mypath=/usr/lib64/mpi/gcc/openmpi2/bin:${mypath} -mypath=/usr/lib64/mpi/gcc/openmpi1/bin:${mypath} -mypath=/usr/lib64/mpi/gcc/mvapich2/bin:${mypath} -mypath=/usr/lib64/mpi/gcc/mpich/bin:${mypath} -mypath=/usr/lib/hpc/gnu?/mpi/openmpi/4.*/bin:${mypath} -mypath=/usr/lib/hpc/gnu?/mpi/openmpi/3.*/bin:${mypath} -mypath=/usr/lib/hpc/gnu?/mpi/openmpi/2.*/bin:${mypath} -mypath=/usr/lib/hpc/gnu?/mpi/mpich/3.*/bin:${mypath} -mypath=/usr/lib/hpc/gnu?/mpi/mvapich2/2.*/bin:${mypath} +# prepare the path +shopt -s nullglob +addpath mypath /usr/lib64/mpi/gcc/openmpi4/bin +addpath mypath /usr/lib64/mpi/gcc/openmpi3/bin +addpath mypath /usr/lib64/mpi/gcc/openmpi2/bin +addpath mypath /usr/lib64/mpi/gcc/openmpi1/bin +addpath mypath /usr/lib64/mpi/gcc/mvapich2/bin +addpath mypath /usr/lib64/mpi/gcc/mpich/bin +addpath mypath /usr/lib/hpc/gnu*/mpi/openmpi/4.*/bin +addpath mypath /usr/lib/hpc/gnu*/mpi/openmpi/3.*/bin +addpath mypath /usr/lib/hpc/gnu*/mpi/openmpi/2.*/bin +addpath mypath /usr/lib/hpc/gnu*/mpi/mpich/3.*/bin +addpath mypath /usr/lib/hpc/gnu*/mpi/mvapich2/2.*/bin +addpath cpath /usr/lib/hpc/compiler/gnu/*/bin + # test if we can run as nobody getent passwd nobody &> /dev/null if [ "x$?" == "x0" ] ; then -# drop all root rights, when calling external find - sudo -u nobody PATH=${mypath}:${PATH} spack external find --all --scope user #--exclude 'installdbgsymbols' - if [ -e /var/lib/nobody/.spack/packages.yaml ] ; then - mv -v /var/lib/nobody/.spack/packages.yaml /etc/spack/packages.yaml - chown root:root /etc/spack/packages.yaml - rm -r /var/lib/nobody/.spack - fi -else - # May run in a container... - PATH=${mypath}:${PATH} spack external find --scope system #--exclude 'installdbgsymbols' + scope=user fi +case $what in + packages) find_packages $scope ;; + compilers) find_compilers $scope ;; + '') find_packages $scope + find_compilers $scope ;; + *) exit 1 ;; +esac +