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." +}