File _setup of Package cuda-repack
#! /bin/bash
#set -x
_arch=x86_64
CUDA_MAJ=13
CUDA_MIN=0
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} \
cuda-crt-${CUDA_MAJ}-${CUDA_MIN} \
cuda-cudart-${CUDA_MAJ}-${CUDA_MIN} \
cuda-cudart-devel-${CUDA_MAJ}-${CUDA_MIN} \
cuda-nvcc-${CUDA_MAJ}-${CUDA_MIN} \
cuda-driver-devel-${CUDA_MAJ}-${CUDA_MIN} \
libcublas-${CUDA_MAJ}-${CUDA_MIN} \
libcublas-devel-${CUDA_MAJ}-${CUDA_MIN} \
libnvvm-${CUDA_MAJ}-${CUDA_MIN} \
libnvptxcompiler-${CUDA_MAJ}-${CUDA_MIN} \
cuda-culibos-devel-${CUDA_MAJ}-${CUDA_MIN}"
pkg_list_noarch=" \
cuda-toolkit-${CUDA_MAJ}-${CUDA_MIN}-config-common \
cuda-toolkit-${CUDA_MAJ}-config-common \
cuda-toolkit-config-common"
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)#" \
-e "s#@CUDA_VERSION@#${CUDA_MAJ}.${CUDA_MIN}#g" \
-e "s#@CUDA_MAJ@#${CUDA_MAJ}#g" \
-e "s#@CUDA_MIN@#${CUDA_MIN}#g" < _cuda-repack.spec.in > cuda-repack.spec
sudo rm -rf ${tmpdir}