File _setup of Package cuda-repack

#! /bin/bash
#set -x
_arch=x86_64
CUDA_MAJ=12
CUDA_MIN=9
DRIVER_GEN=G05
DOWNLOAD=false

repourl=http://developer.download.nvidia.com/compute/cuda/repos/sles15/${_arch}
repo=NVIDIA_CUDA
multibuild=$(pwd)/_multibuild
declare -i sourcecount=10

pkg_list=" \
         cuda-cccl-${CUDA_MAJ}-${CUDA_MIN}=12.9.27-1 \
         cuda-crt-${CUDA_MAJ}-${CUDA_MIN}=12.9.41-1 \
         cuda-cudart-${CUDA_MAJ}-${CUDA_MIN}=12.9.79-1 \
         cuda-cudart-devel-${CUDA_MAJ}-${CUDA_MIN}=12.9.79-1 \
         cuda-nvcc-${CUDA_MAJ}-${CUDA_MIN}=12.9.41-1 \
         cuda-nvvm-${CUDA_MAJ}-${CUDA_MIN}=12.9.41-1 \
	 cuda-driver-devel-${CUDA_MAJ}-${CUDA_MIN}=12.9.79-1 \
         libcublas-${CUDA_MAJ}-${CUDA_MIN}=12.9.1.4-1 \
         libcublas-devel-${CUDA_MAJ}-${CUDA_MIN}=12.9.1.4-1"

pkg_list_noarch=" \
         cuda-toolkit-${CUDA_MAJ}-${CUDA_MIN}-config-common=12.9.79-1 \
	 cuda-toolkit-${CUDA_MAJ}-config-common=12.9.79-1 \
	 cuda-toolkit-config-common=12.9.79-1"

tmpdir=$(mktemp -d /tmp/.tmp-XXXXXX)
rootdir=$tmpdir/root
mkdir -p ${rootdir}

sudo zypper -n --gpg-auto-import-keys --root ${rootdir} ar ${repourl} ${repo}
sudo zypper -n --gpg-auto-import-keys --root ${rootdir} refresh ${repo}
# include noarch only on one arch
if [ "$_arch" = "x86_64" ]; then
    pkg_list="$pkg_list \
    $pkg_list_noarch"
fi
echo '<multibuild>' > ${multibuild}
if $DOWNLOAD; then
    mkdir -p ${tmpdir}/${repo}/
    for i in $pkg_list; do
	[ $i* = $i\* ] && \
	    zypper -n --root ${rootdir} --pkg-cache-dir ${tmpdir} download $i
    # mv  ./${i}*.rpm ${tmpdir}/${repo}/
    done

    for i in ${tmpdir}/${repo}/*.rpm; do
	mv $i .
	name=$(basename $i)
	name=${name/${_arch}/%_arch}
	name=${name%%.rpm}
	echo  '  <package>'${name}'</package>' >> ${multibuild}
	sourcelist+="Source${sourcecount}: %repo/$name.rpm\n"
	: $((sourcecount++))
    done
else
    for i in $pkg_list; do
	i=${i/=/-}
	name=$(zypper -q --root ${rootdir} info $i | awk -e '/Name/{name=$3;};/Version/{version=$3;};/Arch/{arch=$3;};END{printf "%s-%s.%s\n",name,version,arch; }')
	name=${name/${_arch}/%_arch}
	echo  '  <package>'${name}'</package>' >> ${multibuild}
	sourcelist+="Source${sourcecount}: %repo/$name.rpm\n"
	: $((sourcecount++))	
    done
fi
echo '</multibuild>' >> ${multibuild}
sed -e "s#@ALL_SOURCES@#$(echo $sourcelist)#" < _cuda-repack.spec.in > cuda-repack.spec
sudo rm -rf ${tmpdir}
openSUSE Build Service is sponsored by