diff --git a/build/container/Dockerfile.centos b/build/container/Dockerfile.centos index f5ed92ca..2914b2ba 100644 --- a/build/container/Dockerfile.centos +++ b/build/container/Dockerfile.centos @@ -69,7 +69,7 @@ RUN PACKAGE_ARCH=${PACKAGE_ARCH/amd64/x86_64} && PACKAGE_ARCH=${PACKAGE_ARCH/arm yum localinstall -y \ ${PACKAGE_DIST}/${PACKAGE_ARCH}/libnvidia-container1-1.*.rpm \ ${PACKAGE_DIST}/${PACKAGE_ARCH}/libnvidia-container-tools-1.*.rpm \ - ${PACKAGE_DIST}/${PACKAGE_ARCH}/nvidia-container-toolkit-${PACKAGE_VERSION}*.rpm + ${PACKAGE_DIST}/${PACKAGE_ARCH}/nvidia-container-toolkit*-${PACKAGE_VERSION}*.rpm WORKDIR /work diff --git a/build/container/Dockerfile.ubuntu b/build/container/Dockerfile.ubuntu index f4014e61..480767da 100644 --- a/build/container/Dockerfile.ubuntu +++ b/build/container/Dockerfile.ubuntu @@ -77,7 +77,7 @@ RUN if [ "${PACKAGE_ARCH}" = "arm64" ]; then \ RUN dpkg -i \ ${PACKAGE_DIST}/${PACKAGE_ARCH}/libnvidia-container1_1.*.deb \ ${PACKAGE_DIST}/${PACKAGE_ARCH}/libnvidia-container-tools_1.*.deb \ - ${PACKAGE_DIST}/${PACKAGE_ARCH}/nvidia-container-toolkit_${PACKAGE_VERSION}*.deb + ${PACKAGE_DIST}/${PACKAGE_ARCH}/nvidia-container-toolkit*_${PACKAGE_VERSION}*.deb WORKDIR /work diff --git a/docker/Dockerfile.debian b/docker/Dockerfile.debian index 8e0c099e..0394ab84 100644 --- a/docker/Dockerfile.debian +++ b/docker/Dockerfile.debian @@ -76,6 +76,6 @@ RUN dch --create --package="${PKG_NAME}" \ if [ "$REVISION" != "$(dpkg-parsechangelog --show-field=Version)" ]; then exit 1; fi CMD export DISTRIB="$(lsb_release -cs)" && \ - debuild -eDISTRIB -eSECTION -eLIBNVIDIA_CONTAINER_TOOLS_VERSION \ + debuild -eDISTRIB -eSECTION -eLIBNVIDIA_CONTAINER_TOOLS_VERSION -eVERSION="${REVISION}" \ --dpkg-buildpackage-hook='sh debian/prepare' -i -us -uc -b && \ mv /tmp/nvidia-container-toolkit_*.deb /dist diff --git a/docker/Dockerfile.ubuntu b/docker/Dockerfile.ubuntu index dcd71c21..cf340b11 100644 --- a/docker/Dockerfile.ubuntu +++ b/docker/Dockerfile.ubuntu @@ -69,6 +69,6 @@ RUN dch --create --package="${PKG_NAME}" \ if [ "$REVISION" != "$(dpkg-parsechangelog --show-field=Version)" ]; then exit 1; fi CMD export DISTRIB="$(lsb_release -cs)" && \ - debuild -eDISTRIB -eSECTION -eLIBNVIDIA_CONTAINER_TOOLS_VERSION \ + debuild -eDISTRIB -eSECTION -eLIBNVIDIA_CONTAINER_TOOLS_VERSION -eVERSION="${REVISION}" \ --dpkg-buildpackage-hook='sh debian/prepare' -i -us -uc -b && \ mv /tmp/*.deb /dist diff --git a/docker/docker.mk b/docker/docker.mk index a1ec9d02..cf511afa 100644 --- a/docker/docker.mk +++ b/docker/docker.mk @@ -140,9 +140,9 @@ docker-build-%: --build-arg PKG_NAME="$(LIB_NAME)" \ --build-arg PKG_VERS="$(LIB_VERSION)" \ --build-arg PKG_REV="$(PKG_REV)" \ - --build-arg LIBNVIDIA_CONTAINER_TOOLS_VERSION="$(LIBNVIDIA_CONTAINER_TOOLS_VERSION)" \ + --build-arg LIBNVIDIA_CONTAINER_TOOLS_VERSION="$(LIBNVIDIA_CONTAINER_TOOLS_VERSION)" \ --build-arg CONFIG_TOML_SUFFIX="$(CONFIG_TOML_SUFFIX)" \ - --build-arg GIT_COMMIT="$(GIT_COMMIT)" \ + --build-arg GIT_COMMIT="$(GIT_COMMIT)" \ --tag $(BUILDIMAGE) \ --file $(DOCKERFILE) . $(DOCKER) run \ diff --git a/packaging/debian/control b/packaging/debian/control index e2d5b434..fe42428b 100644 --- a/packaging/debian/control +++ b/packaging/debian/control @@ -10,8 +10,16 @@ Build-Depends: debhelper (>= 9) Package: nvidia-container-toolkit Architecture: any -Depends: ${misc:Depends}, libnvidia-container-tools (>= @LIBNVIDIA_CONTAINER_TOOLS_VERSION@), libnvidia-container-tools (<< 2.0.0), libseccomp2 +Depends: ${misc:Depends}, nvidia-container-toolkit-base (= @VERSION@), libnvidia-container-tools (>= @LIBNVIDIA_CONTAINER_TOOLS_VERSION@), libnvidia-container-tools (<< 2.0.0), libseccomp2 Breaks: nvidia-container-runtime (<= 3.5.0-1), nvidia-container-runtime-hook Replaces: nvidia-container-runtime (<= 3.5.0-1), nvidia-container-runtime-hook Description: NVIDIA Container toolkit Provides tools and utilities to enable GPU support in containers. + +Package: nvidia-container-toolkit-base +Architecture: any +Depends: ${misc:Depends} +Breaks: nvidia-container-runtime (<= 3.5.0-1), nvidia-container-runtime-hook, nvidia-container-toolkit (<= 1.10.0-1) +Replaces: nvidia-container-runtime (<= 3.5.0-1), nvidia-container-runtime-hook +Description: NVIDIA Container Toolkit Base + Provides tools such as the NVIDIA Container Runtime and NVIDIA Container Toolkit CLI to enable GPU support in containers. diff --git a/packaging/debian/nvidia-container-toolkit-base.install b/packaging/debian/nvidia-container-toolkit-base.install new file mode 100644 index 00000000..3b183ed2 --- /dev/null +++ b/packaging/debian/nvidia-container-toolkit-base.install @@ -0,0 +1,3 @@ +config.toml /etc/nvidia-container-runtime +nvidia-container-runtime /usr/bin +nvidia-ctk /usr/bin diff --git a/packaging/debian/nvidia-container-toolkit.install b/packaging/debian/nvidia-container-toolkit.install index 2f2bee2a..b08e2e74 100644 --- a/packaging/debian/nvidia-container-toolkit.install +++ b/packaging/debian/nvidia-container-toolkit.install @@ -1,4 +1 @@ -config.toml /etc/nvidia-container-runtime nvidia-container-runtime-hook /usr/bin -nvidia-container-runtime /usr/bin -nvidia-ctk /usr/bin diff --git a/packaging/debian/prepare b/packaging/debian/prepare index 4dc5085d..1b15a150 100755 --- a/packaging/debian/prepare +++ b/packaging/debian/prepare @@ -4,6 +4,7 @@ set -e sed -i "s;@SECTION@;${SECTION:+$SECTION/};g" debian/control sed -i "s;@LIBNVIDIA_CONTAINER_TOOLS_VERSION@;${LIBNVIDIA_CONTAINER_TOOLS_VERSION:+$LIBNVIDIA_CONTAINER_TOOLS_VERSION};g" debian/control +sed -i "s;@VERSION@;${VERSION:+$VERSION};g" debian/control if [ -n "$DISTRIB" ]; then sed -i "s;UNRELEASED;$DISTRIB;" debian/changelog diff --git a/packaging/rpm/SPECS/nvidia-container-toolkit.spec b/packaging/rpm/SPECS/nvidia-container-toolkit.spec index 73e96d30..24dd48fa 100644 --- a/packaging/rpm/SPECS/nvidia-container-toolkit.spec +++ b/packaging/rpm/SPECS/nvidia-container-toolkit.spec @@ -18,10 +18,11 @@ Source4: oci-nvidia-hook Source5: oci-nvidia-hook.json Source6: LICENSE -Obsoletes: nvidia-container-runtime <= 3.5.0-1, nvidia-container-runtime-hook +Obsoletes: nvidia-container-runtime <= 3.5.0-1, nvidia-container-runtime-hook <= 1.4.0-2 Provides: nvidia-container-runtime Provides: nvidia-container-runtime-hook Requires: libnvidia-container-tools >= %{libnvidia_container_tools_version}, libnvidia-container-tools < 2.0.0 +Requires: nvidia-container-toolkit-base == %{version}-%{release} %if 0%{?suse_version} Requires: libseccomp2 @@ -60,9 +61,6 @@ rm -f %{_bindir}/nvidia-container-toolkit %files %license LICENSE %{_bindir}/nvidia-container-runtime-hook -%{_bindir}/nvidia-container-runtime -%{_bindir}/nvidia-ctk -%config /etc/nvidia-container-runtime/config.toml /usr/libexec/oci/hooks.d/oci-nvidia-hook /usr/share/containers/oci/hooks.d/oci-nvidia-hook.json @@ -71,3 +69,22 @@ rm -f %{_bindir}/nvidia-container-toolkit * %{release_date} NVIDIA CORPORATION %{version}-%{release} - See https://gitlab.com/nvidia/container-toolkit/container-toolkit/-/blob/%{git_commit}/CHANGELOG.md - Bump libnvidia-container dependency to libnvidia-container-tools >= %{libnvidia_container_tools_version} + +# The BASE package consists of the NVIDIA Container Runtime and the NVIDIA Container Toolkit CLI. +# This allows the package to be installed on systems where no NVIDIA Container CLI is available. +%package base +Summary: NVIDIA Container Toolkit Base +Obsoletes: nvidia-container-runtime <= 3.5.0-1, nvidia-container-runtime-hook <= 1.4.0-2 +Provides: nvidia-container-runtime +# Since this package allows certain components of the NVIDIA Container Toolkit to be installed separately +# it conflicts with older versions of the nvidia-container-toolkit package that also provide these files. +Conflicts: nvidia-container-toolkit <= 1.10.0-1 + +%description base +Provides tools such as the NVIDIA Container Runtime and NVIDIA Container Toolkit CLI to enable GPU support in containers. + +%files base +%license LICENSE +%config /etc/nvidia-container-runtime/config.toml +%{_bindir}/nvidia-container-runtime +%{_bindir}/nvidia-ctk diff --git a/test/release/docker/centos8/Dockerfile b/test/release/docker/centos8/Dockerfile index 185cb6e7..32f966e3 100644 --- a/test/release/docker/centos8/Dockerfile +++ b/test/release/docker/centos8/Dockerfile @@ -1,16 +1,6 @@ -ARG BASEIMAGE=centos:8 +ARG BASEIMAGE=quay.io/centos/centos:stream8 FROM ${BASEIMAGE} -ARG BASEIMAGE -# See https://www.centos.org/centos-linux-eol/ -# and https://stackoverflow.com/a/70930049 for move to vault.centos.org -# and https://serverfault.com/questions/1093922/failing-to-run-yum-update-in-centos-8 for move to vault.epel.cloud -RUN [[ "${BASEIMAGE}" != "centos:8" ]] || \ - ( \ - sed -i 's/mirrorlist/#mirrorlist/g' /etc/yum.repos.d/CentOS-Linux-* && \ - sed -i 's|#baseurl=http://mirror.centos.org|baseurl=http://vault.epel.cloud|g' /etc/yum.repos.d/CentOS-Linux-* \ - ) - RUN yum install -y \ yum-utils \ ruby-devel \