From fc9c4a12372f088446e03c1ba8192f6c13165639 Mon Sep 17 00:00:00 2001 From: Quentin Freimanis Date: Wed, 22 Sep 2021 13:28:42 -0700 Subject: [PATCH 1/4] New package: libnvidia-container-1.5.1 --- common/shlibs | 2 + srcpkgs/libnvidia-container-devel | 1 + .../patches/fix_makefile.patch | 21 ++++++++++ .../patches/fix_nvidia-modprobe.mk.patch | 11 ++++++ srcpkgs/libnvidia-container/template | 38 +++++++++++++++++++ 5 files changed, 73 insertions(+) create mode 120000 srcpkgs/libnvidia-container-devel create mode 100644 srcpkgs/libnvidia-container/patches/fix_makefile.patch create mode 100644 srcpkgs/libnvidia-container/patches/fix_nvidia-modprobe.mk.patch create mode 100644 srcpkgs/libnvidia-container/template diff --git a/common/shlibs b/common/shlibs index fd78e1e33c3f..ec46ef2ddfcf 100644 --- a/common/shlibs +++ b/common/shlibs @@ -4062,3 +4062,5 @@ libomalloc-0.9.6.so singular-4.2.1_1 libsingular_resources-4.2.1.so singular-4.2.1_1 libm4ri-0.0.20200125.so m4ri-20200125_1 libm4rie-0.0.20200125.so m4rie-20200125_1 +libavif.so.12 libavif-0.9.2_1 +libnvidia-container.so.1 libnvidia-container-1.5.1_1 diff --git a/srcpkgs/libnvidia-container-devel b/srcpkgs/libnvidia-container-devel new file mode 120000 index 000000000000..39e6f1942c7b --- /dev/null +++ b/srcpkgs/libnvidia-container-devel @@ -0,0 +1 @@ +libnvidia-container \ No newline at end of file diff --git a/srcpkgs/libnvidia-container/patches/fix_makefile.patch b/srcpkgs/libnvidia-container/patches/fix_makefile.patch new file mode 100644 index 000000000000..59c4f83ec4b9 --- /dev/null +++ b/srcpkgs/libnvidia-container/patches/fix_makefile.patch @@ -0,0 +1,21 @@ +--- a/Makefile 2021-07-25 09:30:29.172126492 -0700 ++++ b/Makefile 2021-07-25 10:30:39.601936591 -0700 +@@ -23,7 +23,7 @@ + + ##### Global definitions ##### + +-export prefix = /usr/local ++export prefix = /usr + export exec_prefix = $(prefix) + export bindir = $(exec_prefix)/bin + export libdir = $(exec_prefix)/lib +@@ -123,7 +123,8 @@ + -Wall -Wextra -Wcast-align -Wpointer-arith -Wmissing-prototypes -Wnonnull \ + -Wwrite-strings -Wlogical-op -Wformat=2 -Wmissing-format-attribute -Winit-self -Wshadow \ + -Wstrict-prototypes -Wunreachable-code -Wconversion -Wsign-conversion \ +- -Wno-unknown-warning-option -Wno-format-extra-args -Wno-gnu-alignof-expression $(CFLAGS) ++ -Wno-unknown-warning-option -Wno-format-extra-args -Wno-gnu-alignof-expression \ ++ -I/usr/include/tirpc -ltirpc $(CFLAGS) + LDFLAGS := -Wl,-zrelro -Wl,-znow -Wl,-zdefs -Wl,--gc-sections $(LDFLAGS) + LDLIBS := $(LDLIBS) + diff --git a/srcpkgs/libnvidia-container/patches/fix_nvidia-modprobe.mk.patch b/srcpkgs/libnvidia-container/patches/fix_nvidia-modprobe.mk.patch new file mode 100644 index 000000000000..8b3287f97279 --- /dev/null +++ b/srcpkgs/libnvidia-container/patches/fix_nvidia-modprobe.mk.patch @@ -0,0 +1,11 @@ +--- a/mk/nvidia-modprobe.mk 2021-07-25 09:25:03.857882583 -0700 ++++ b/mk/nvidia-modprobe.mk 2021-07-25 09:25:29.586139143 -0700 +@@ -6,7 +6,7 @@ + + ##### Source definitions ##### + +-VERSION := 450.57 ++VERSION := 470.63.01 + PREFIX := nvidia-modprobe-$(VERSION) + URL := https://github.com/NVIDIA/nvidia-modprobe/archive/$(VERSION).tar.gz + diff --git a/srcpkgs/libnvidia-container/template b/srcpkgs/libnvidia-container/template new file mode 100644 index 000000000000..26aeee3acc0f --- /dev/null +++ b/srcpkgs/libnvidia-container/template @@ -0,0 +1,38 @@ +# Template file for 'libnvidia-container' +pkgname=libnvidia-container +version=1.5.1 +revision=1 +archs="x86_64" +hostmakedepends="tar xz curl bmake groff m4 pkg-config which" +makedepends="rpcsvc-proto libcap-devel libseccomp-devel libtirpc-devel" +short_desc="NVIDIA container runtime library" +maintainer="Quentin Freimanis " +license="Apache-2.0" +homepage="https://github.com/NVIDIA/libnvidia-container" +distfiles="https://github.com/NVIDIA/libnvidia-container/archive/v${version}.tar.gz" +checksum=b12e1190df03875547628a776f97efe478fac77aa31a0fadfbea10df3bc2dc8d + +do_build() { + make dist prefix=/usr REVISION=${version} +} + +pre_install() { + cd dist + tar xvf ${pkgname}_${version}_${archs}.tar.xz +} + +do_install() { + vinstall dist/${pkgname}_${version}/usr/lib/${pkgname}.so.${version} 755 /usr/lib/ ${pkgname}.so.1 + + vbin dist/${pkgname}_${version}/usr/bin/nvidia-container-cli +} + +libnvidia-container-devel_package() { + short_desc+=" - development files" + depends="${sourcepkg}>=${version}_${revision}" + pkg_install() { + vinstall dist/${sourcepkg}_${version}/usr/lib/${sourcepkg}.a 644 /usr/lib/ + vinstall dist/${sourcepkg}_${version}/usr/include/nvc.h 644 /usr/include/ + vinstall dist/${sourcepkg}_${version}/usr/lib/pkgconfig/${sourcepkg}.pc 644 /usr/lib/pkgconfig/ + } +} From 2d3e15c98fe58d184b7e915e76ba01dc0d9718c0 Mon Sep 17 00:00:00 2001 From: Quentin Freimanis Date: Wed, 22 Sep 2021 13:30:05 -0700 Subject: [PATCH 2/4] New package: nvidia-container-toolkit-1.5.1 --- srcpkgs/nvidia-container-toolkit/template | 38 +++++++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 srcpkgs/nvidia-container-toolkit/template diff --git a/srcpkgs/nvidia-container-toolkit/template b/srcpkgs/nvidia-container-toolkit/template new file mode 100644 index 000000000000..9b1de64e595d --- /dev/null +++ b/srcpkgs/nvidia-container-toolkit/template @@ -0,0 +1,38 @@ +# Template file for 'nvidia-container-toolkit' +pkgname=nvidia-container-toolkit +version=1.5.1 +revision=1 +archs="x86_64" +hostmakedepends="go" +depends="libnvidia-container" +short_desc="Build and run containers leveraging NVIDIA GPUs" +maintainer="Quentin Freimanis " +license="Apache-2.0" +homepage="https://github.com/NVIDIA/nvidia-container-toolkit/" +distfiles="https://github.com/NVIDIA/nvidia-container-toolkit/archive/v${version}.tar.gz" +checksum="51d6f2fa0e740d7581f6c632875bb87bafc2351ba32830df11bb7cb19d87b763" + +do_build() { + GOPATH="${PWD}/.gopath" \ + go build -v \ + -buildmode=pie \ + -gcflags "all=-trimpath=${PWD}" \ + -asmflags "all=-trimpath=${PWD}" \ + -ldflags " -s -w -extldflags=-Wl,-z,now,-z,relro" \ + -o "${pkgname}" \ + "${PWD}/cmd/nvidia-container-toolkit" +} + +do_install() { + vbin nvidia-container-toolkit + ln -sf /usr/bin/nvidia-container-toolkit ${DESTDIR}/usr/bin/nvidia-container-runtime-hook + + vmkdir /etc/nvidia-container-runtime 755 + vinstall config/config.toml.centos 644 /etc/nvidia-container-runtime config.toml + vinstall oci-nvidia-hook.json 644 /usr/share/containers/oci/hooks.d 00-oci-nvidia-hook.json +} + +do_clean() { + GOPATH="${PWD}/.gopath" \ + go clean -modcache +} From 7da03d98f670157e14311c41b62b064e85be74d4 Mon Sep 17 00:00:00 2001 From: Quentin Freimanis Date: Wed, 22 Sep 2021 13:30:13 -0700 Subject: [PATCH 3/4] New package: nvidia-container-runtime-3.5.0 --- srcpkgs/nvidia-container-runtime/template | 27 +++++++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 srcpkgs/nvidia-container-runtime/template diff --git a/srcpkgs/nvidia-container-runtime/template b/srcpkgs/nvidia-container-runtime/template new file mode 100644 index 000000000000..d47bfce80a45 --- /dev/null +++ b/srcpkgs/nvidia-container-runtime/template @@ -0,0 +1,27 @@ +# Template file for 'nvidia-container-runtime' +pkgname=nvidia-container-runtime +version=3.5.0 +revision=1 +archs="x86_64" +hostmakedepends="go" +makedepends="libseccomp-devel" +depends="libseccomp nvidia-container-toolkit" +short_desc="Modified version of runc adding a custom pre-start hook" +maintainer="Quentin Freimanis " +license="Apache-2.0" +homepage="https://github.com/NVIDIA/nvidia-container-runtime/" +distfiles="https://github.com/NVIDIA/nvidia-container-runtime/archive/v${version}.tar.gz" +checksum="4985efe4488e441d0e4910cc7eb2046176db063e5bbe2e0542a7c08d5c5e7d34" + +pre_build() { + mkdir -p .gopath/src + ln -rTsf $PWD/src .gopath/src/${pkgname} +} + +do_build() { + make build +} + +do_install() { + vbin nvidia-container-runtime +} From f85d1b371416e37ee9f3d9942293f0bc02fb3ecb Mon Sep 17 00:00:00 2001 From: Quentin Freimanis Date: Wed, 22 Sep 2021 13:30:17 -0700 Subject: [PATCH 4/4] New package: nvidia-docker-2.6.0 --- srcpkgs/nvidia-docker/template | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 srcpkgs/nvidia-docker/template diff --git a/srcpkgs/nvidia-docker/template b/srcpkgs/nvidia-docker/template new file mode 100644 index 000000000000..269a0ab7443c --- /dev/null +++ b/srcpkgs/nvidia-docker/template @@ -0,0 +1,22 @@ +# Template file for 'nvidia-docker' +pkgname=nvidia-docker +version=2.6.0 +revision=1 +archs="x86_64" +wrksrc="${pkgname}-${version}" +depends="nvidia-container-toolkit libnvidia-container nvidia-container-runtime docker" +short_desc="Build and run Docker containers leveraging NVIDIA GPUs" +maintainer="Quentin Freimanis " +license="Apache-2.0" +homepage="https://github.com/NVIDIA/nvidia-docker" +distfiles="https://github.com/NVIDIA/nvidia-docker/archive/v${version}.tar.gz" +checksum="a2f41b91770e45d3f7e6d361be720573a20e88ea33d4f8c7984b6b0cfdc57214" + +pre_install() { + vsed -i nvidia-docker -e "s;@VERSION@;${version};" +} + +do_install() { + vbin nvidia-docker + vinstall daemon.json 644 /etc/docker +}