#! /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} 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 ' '${name}'' >> ${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 ' '${name}'' >> ${multibuild} sourcelist+="Source${sourcecount}: %repo/$name.rpm\n" : $((sourcecount++)) done fi echo '' >> ${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}