commit:     d14ef4c688248a08314575c5d9d9b733261c2884
Author:     Z. Liu <zhixu.liu <AT> gmail <DOT> com>
AuthorDate: Thu Dec  5 09:10:00 2024 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Mon Dec  9 22:27:13 2024 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=d14ef4c6

app-containers/nvidia-container-toolkit: new package (from ::guru)

based on the ::guru ebuild by Huang Rui <vowstar <AT> gmail.com> and many
others, thanks. Changes:

- update version to 1.17.3
- remove extldflags patch, applied by upstream

Signed-off-by: Z. Liu <zhixu.liu <AT> gmail.com>
Signed-off-by: Sam James <sam <AT> gentoo.org>

 app-containers/nvidia-container-toolkit/Manifest   |  1 +
 .../nvidia-container-toolkit/files/config.toml     | 39 +++++++++++++++
 .../nvidia-container-toolkit/metadata.xml          | 35 +++++++++++++
 .../nvidia-container-toolkit-1.17.3.ebuild         | 57 ++++++++++++++++++++++
 .../nvidia-container-toolkit-9999.ebuild           | 57 ++++++++++++++++++++++
 5 files changed, 189 insertions(+)

diff --git a/app-containers/nvidia-container-toolkit/Manifest 
b/app-containers/nvidia-container-toolkit/Manifest
new file mode 100644
index 000000000000..6fa03184a094
--- /dev/null
+++ b/app-containers/nvidia-container-toolkit/Manifest
@@ -0,0 +1 @@
+DIST nvidia-container-toolkit-1.17.3.tar.gz 2718001 BLAKE2B 
455a4159c45846951e8ebaee94393e20764e9e6cac10247dcbd4d9a16431a529ebe9bd6146fb590c1ea92f2e5f4c5561adfa6b8b495fe79f761e5664661acad4
 SHA512 
8c7a4290a1decc448c72e9a09213e0dc4e418ec633cefb16bb6b01fef7c502d23ed72cc1f3cc6583cad07feae5ca3cf44dad73e1274e042e3b26bdc7a4152b95

diff --git a/app-containers/nvidia-container-toolkit/files/config.toml 
b/app-containers/nvidia-container-toolkit/files/config.toml
new file mode 100644
index 000000000000..cf5c0a8fe979
--- /dev/null
+++ b/app-containers/nvidia-container-toolkit/files/config.toml
@@ -0,0 +1,39 @@
+#accept-nvidia-visible-devices-as-volume-mounts = false
+#accept-nvidia-visible-devices-envvar-when-unprivileged = true
+disable-require = false
+supported-driver-capabilities = 
"compat32,compute,display,graphics,ngx,utility,video"
+#swarm-resource = "DOCKER_RESOURCE_GPU"
+
+[nvidia-container-cli]
+#debug = "/var/log/nvidia-container-toolkit.log"
+environment = []
+#ldcache = "/etc/ld.so.cache"
+ldconfig = "@/sbin/ldconfig"
+load-kmods = true
+#no-cgroups = false
+#path = "/usr/bin/nvidia-container-cli"
+#root = "/run/nvidia/driver"
+user = "root:video"
+
+[nvidia-container-runtime]
+#debug = "/var/log/nvidia-container-runtime.log"
+log-level = "info"
+mode = "auto"
+runtimes = ["docker-runc", "runc", "crun"]
+
+[nvidia-container-runtime.modes]
+
+[nvidia-container-runtime.modes.cdi]
+annotation-prefixes = ["cdi.k8s.io/"]
+default-kind = "nvidia.com/gpu"
+spec-dirs = ["/etc/cdi", "/var/run/cdi"]
+
+[nvidia-container-runtime.modes.csv]
+mount-spec-path = "/etc/nvidia-container-runtime/host-files-for-container.d"
+
+[nvidia-container-runtime-hook]
+path = "nvidia-container-runtime-hook"
+skip-mode-detection = false
+
+[nvidia-ctk]
+path = "nvidia-ctk"

diff --git a/app-containers/nvidia-container-toolkit/metadata.xml 
b/app-containers/nvidia-container-toolkit/metadata.xml
new file mode 100644
index 000000000000..37403bfe0760
--- /dev/null
+++ b/app-containers/nvidia-container-toolkit/metadata.xml
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd";>
+<pkgmetadata>
+       <maintainer type="person" proxied="yes">
+               <email>vows...@gmail.com</email>
+               <name>Huang Rui</name>
+       </maintainer>
+       <maintainer type="person" proxied="yes">
+               <email>zhixu....@gmail.com</email>
+               <name>Z. Liu</name>
+       </maintainer>
+       <maintainer type="project" proxied="proxy">
+               <email>proxy-ma...@gentoo.org</email>
+               <name>Proxy Maintainers</name>
+       </maintainer>
+       <upstream>
+               <remote-id type="github">NVIDIA/container-toolkit</remote-id>
+       </upstream>
+       <longdescription lang="en">
+               NVIDIA container runtime toolkit, build and run containers 
leveraging
+               NVIDIA GPUs. tl;dr: nvidia-docker is deprecated because docker 
now has
+               native gpu support, which this package is required to use. The 
NVIDIA
+               Container Toolkit (formerly known as NVIDIA Docker) allows 
containers to
+               access full GPU acceleration. OpenGL, OpenCL and CUDA are 
supported for
+               production use. Vulkan support is currently in beta. This only 
works for
+               Linux containers running on Linux host systems with NVIDIA GPUs.
+       </longdescription>
+       <longdescription lang="zh">
+               NVIDIA容器运行时工具包,构建和运行利用NVIDIA GPU的容器。简而言之:
+               nvidia-docker已经过时,因为docker现在具有原生的GPU支持,而这个包是使用它
+               所必需的。NVIDIA容器工具包(以前称为NVIDIA Docker)允许容器访问完整的
+               GPU加速。OpenGL、OpenCL和CUDA支持生产使用。Vulkan支持目前处于测试阶段。
+               这只适用于在配备NVIDIA GPU的Linux主机系统上运行的Linux容器。
+       </longdescription>
+</pkgmetadata>

diff --git 
a/app-containers/nvidia-container-toolkit/nvidia-container-toolkit-1.17.3.ebuild
 
b/app-containers/nvidia-container-toolkit/nvidia-container-toolkit-1.17.3.ebuild
new file mode 100644
index 000000000000..dadbd1fc8907
--- /dev/null
+++ 
b/app-containers/nvidia-container-toolkit/nvidia-container-toolkit-1.17.3.ebuild
@@ -0,0 +1,57 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+EGO_PN="github.com/NVIDIA/${PN}"
+
+inherit go-module
+
+DESCRIPTION="NVIDIA container runtime toolkit"
+HOMEPAGE="https://github.com/NVIDIA/container-toolkit";
+
+if [[ "${PV}" == "9999" ]] ; then
+       inherit git-r3
+       EGIT_REPO_URI="https://github.com/NVIDIA/${PN}.git";
+else
+       SRC_URI="
+               https://github.com/NVIDIA/${PN}/archive/v${PV/_rc/-rc.}.tar.gz 
-> ${P}.tar.gz
+       "
+       S="${WORKDIR}/${PN}-${PV/_rc/-rc.}"
+       KEYWORDS="~amd64"
+fi
+
+LICENSE="Apache-2.0"
+SLOT="0/${PV}"
+
+# Some tests may require specific environmental setups or additional hardware.
+RESTRICT="test" # Bug 831702
+
+RDEPEND="
+       >=sys-libs/libnvidia-container-$(ver_cut 1-2)
+"
+
+src_compile() {
+       emake binaries
+}
+
+src_install() {
+       dobin nvidia-cdi-hook \
+               nvidia-container-runtime \
+               nvidia-container-runtime.cdi \
+               nvidia-container-runtime.legacy \
+               nvidia-container-runtime-hook \
+               nvidia-ctk
+       insinto "/etc/nvidia-container-runtime"
+       doins "${FILESDIR}/config.toml"
+}
+
+pkg_postinst() {
+       elog "Your docker or containerd (if applicable) service may need 
restart"
+       elog "after install this package:"
+       elog "OpenRC: rc-service containerd restart; rc-service docker restart"
+       elog "systemd: systemctl restart containerd; systemctl restart docker"
+       elog "You may need to edit your 
/etc/nvidia-container-runtime/config.toml"
+       elog "file before running ${PN} for the first time."
+       elog "For details, please see the NVIDIA docker manual page."
+}

diff --git 
a/app-containers/nvidia-container-toolkit/nvidia-container-toolkit-9999.ebuild 
b/app-containers/nvidia-container-toolkit/nvidia-container-toolkit-9999.ebuild
new file mode 100644
index 000000000000..b11ae45b1ca4
--- /dev/null
+++ 
b/app-containers/nvidia-container-toolkit/nvidia-container-toolkit-9999.ebuild
@@ -0,0 +1,57 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+EGO_PN="github.com/NVIDIA/${PN}"
+
+inherit go-module
+
+DESCRIPTION="NVIDIA container runtime toolkit"
+HOMEPAGE="https://github.com/NVIDIA/container-toolkit";
+
+if [[ "${PV}" == "9999" ]] ; then
+       inherit git-r3
+       EGIT_REPO_URI="https://github.com/NVIDIA/${PN}.git";
+else
+       SRC_URI="
+               https://github.com/NVIDIA/${PN}/archive/v${PV/_rc/-rc.}.tar.gz 
-> ${P}.tar.gz
+       "
+       S="${WORKDIR}/${PN}-${PV/_rc/-rc.}"
+       KEYWORDS="~amd64"
+fi
+
+LICENSE="Apache-2.0"
+SLOT="0/${PV}"
+
+# Some tests may require specific environmental setups or additional hardware.
+RESTRICT="test" # Bug 831702
+
+RDEPEND="
+       sys-libs/libnvidia-container
+"
+
+src_compile() {
+       emake binaries
+}
+
+src_install() {
+       dobin nvidia-cdi-hook \
+               nvidia-container-runtime \
+               nvidia-container-runtime.cdi \
+               nvidia-container-runtime.legacy \
+               nvidia-container-runtime-hook \
+               nvidia-ctk
+       insinto "/etc/nvidia-container-runtime"
+       doins "${FILESDIR}/config.toml"
+}
+
+pkg_postinst() {
+       elog "Your docker or containerd (if applicable) service may need 
restart"
+       elog "after install this package:"
+       elog "OpenRC: rc-service containerd restart; rc-service docker restart"
+       elog "systemd: systemctl restart containerd; systemctl restart docker"
+       elog "You may need to edit your 
/etc/nvidia-container-runtime/config.toml"
+       elog "file before running ${PN} for the first time."
+       elog "For details, please see the NVIDIA docker manual page."
+}

Reply via email to