Files
fempkg_recipes/cuda.recipe.py
2026-01-28 17:53:44 +01:00

48 lines
1.7 KiB
Python

pkgname = "cuda"
pkgver = "13.1.1"
driver = "580.95.05"
source = f"https://developer.download.nvidia.com/compute/cuda/{pkgver}/local_installers/cuda_{pkgver}_{driver}_linux.run"
builddir = f"/tmp/fempkg/build/{pkgname}"
fembuilddir = f"/tmp/fempkg/build/{pkgname}"
deps = []
build = [
# Extract
f"mkdir /tmp/fempkg/build {fembuilddir} || true",
# 64-bit build
f"cd {builddir} && rm -rf /opt/cuda-* || true && mkdir -pv /opt/cuda-{pkgver} || true && ln -sfv cuda-{pkgver} /opt/cuda || true",
f"""cd {builddir} && sh /var/lib/fempkg/pkgs/cuda_{pkgver}_{driver}_linux.run \\
--target cuda_{pkgver}_{driver}_linux \\
--noexec
pushd cuda_{pkgver}_{driver}_linux/builds
rm -rf cuda_nsight cuda_sanitizer_api nsight_{{compute,systems}}
rm -rvf bin integration NVIDIA*.run
cp version.json /opt/cuda-{pkgver}
cp EULA.txt /opt/cuda-{pkgver}
rm version.json EULA.txt
mkdir -p /opt/cuda-{pkgver}/bin
for lib in *; do
cp -vR $lib/* /opt/cuda-{pkgver}
rm -rf $lib
done
ln -svf lib64 /opt/cuda-{pkgver}/lib
for mf in $(find /opt/cuda-{pkgver} -name Makefile); do
sed -i "s|/usr/local/cuda|/opt/cuda-{pkgver}|g" "$mf"
done
popd
rm -rf cuda_{pkgver}_{driver}_linux""",
f"""cd {builddir} && sed -e "/.*unsupported GNU version.*/d" \\
-e "/.*unsupported clang version.*/d" \\
-i /opt/cuda-{pkgver}/targets/x86_64-linux/include/crt/host_config.h""",
f"cd /etc/ld.so.conf.d/ && wget -O cuda.conf https://rocketleaguechatp.duckdns.org/cuda.conf && "
f"cd /etc/profile.d/ && wget -O cuda.sh https://rocketleaguechatp.duckdns.org/cuda.sh",
# Cleanup
f"rm -rf {builddir} {fembuilddir}"
]
triggers = [
f"cd /tmp && /sbin/ldconfig"
]