Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
home:dirkmueller:Factory
spack
run-find-external.sh.in
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File run-find-external.sh.in of Package spack
#!/bin/bash scope=system what=$1 addpath() { path=$1 shift while [ -n "$1" ]; do eval "${path}"=${1}:${!path} shift done } find_packages() { if [ $scope = user ]; then # In case a packages.yaml is left in the system scope # from an old installation get it out of the way. if [ ! -e /usr/etc/spack/packages.yaml ]; then test -e /etc/spack/packages.yaml -a ! -e /etc/packages.yaml.rpmsave && \ mv /etc/spack/packages.yaml /etc/spack/packages.yaml.rpmsave rm -f /etc/spack/packages.yaml fi test -e /usr/etc/spack/packages.yaml -a ! -e /usr/etc/packages.yaml.rpmsave && \ mv /usr/etc/spack/packages.yaml /usr/etc/spack/packages.yaml.rpmsave # 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 chown root:root /var/lib/nobody/.spack/packages.yaml mv -v /var/lib/nobody/.spack/packages.yaml /usr/etc/spack/packages.yaml rm -rf /var/lib/nobody/.spack fi else # May run in a container... PATH=${mypath}:${PATH} spack external find --scope system --all #--exclude 'installdbgsymbols' fi test -e /usr/etc/spack/packages.yaml.rpmsave && \ { diff -q /usr/etc/spack/packages.yaml.rpmsave /usr/etc/spack/packages.yaml &> /dev/null && \ rm /usr/etc/spack/packages.yaml.rpmsave; } || true } find_compilers() { if [ $scope = user ]; then test -e /etc/spack/compilers.yaml \ -a ! -e /etc/spack/compilers.yaml.rpmsave && \ mv /etc/spack/compilers.yaml /etc/spack/compilers.yaml.rpmsave rm -f /etc/spack/compilers.yaml fi diff -q /etc/spack/compilers.yaml.rpmsave /etc/spack/compilers.yaml &> /dev/null \ && rm /etc/spack/compilers.yaml.rpmsave test -e /etc/spack/compilers.yaml.rpmsave && \ echo -e "/etc/spack/compilers.yaml.rpmsave exists,\n"\ " compilers are handled in /etc/spack/packages.yaml, now.\n"\ " Please check files for compilers you may have added manually" || true } if [ -e /etc/spack/no_rpm_trigger ] ; then exit 0 fi if [ "x$(id -u)" != "x0" ] ; then echo "Must run as root, in order to copy back the configuration files and use sudo" exit 0 fi 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 # combined # 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/[2-9].*/bin addpath mypath /usr/lib/hpc/gnu*/mpi/mpich/[3-9].*/bin addpath mypath /usr/lib/hpc/gnu*/mpi/mvapich2/[2-9].*/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 scope=user fi case $what in packages) find_packages $scope ;; compilers) find_compilers $scope ;; '') find_packages $scope find_compilers $scope ;; *) exit 1 ;; esac
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor