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}