diff --git a/scripts/build-all-components.sh b/scripts/build-all-components.sh index 0c34a627..5af1e720 100755 --- a/scripts/build-all-components.sh +++ b/scripts/build-all-components.sh @@ -45,8 +45,6 @@ echo "Building ${TARGET} for all packages to ${DIST_DIR}" : "${LIBNVIDIA_CONTAINER_ROOT:=${PROJECT_ROOT}/third_party/libnvidia-container}" : "${NVIDIA_CONTAINER_TOOLKIT_ROOT:=${PROJECT_ROOT}}" -: "${NVIDIA_CONTAINER_RUNTIME_ROOT:=${PROJECT_ROOT}/third_party/nvidia-container-runtime}" -: "${NVIDIA_DOCKER_ROOT:=${PROJECT_ROOT}/third_party/nvidia-docker}" "${SCRIPTS_DIR}/get-component-versions.sh" @@ -70,57 +68,3 @@ make -C "${NVIDIA_CONTAINER_TOOLKIT_ROOT}" \ LIBNVIDIA_CONTAINER_TAG="${NVIDIA_CONTAINER_TOOLKIT_TAG}" \ "${TARGET}" fi - -# If required we also build the nvidia-container-runtime and nvidia-docker packages. -# Since these are essentially meta packages intended to allow for users to -# transition from older installation workflows, we skip these for rc builds -# (NVIDIA_CONTAINER_TOOLKIT_TAG != "") and releases with a non-zero patch -# version of 0. -if [[ -n ${FORCE_META_PACKAGES} || -z ${NVIDIA_CONTAINER_TOOLKIT_TAG} && "${NVIDIA_CONTAINER_TOOLKIT_VERSION%.0}" != "${NVIDIA_CONTAINER_TOOLKIT_VERSION}" ]]; then - package_format=$(package_type ${TARGET}) - package_target=$(get_package_target ${TARGET}) - - # We set the TOOLKIT_VERSION, TOOLKIT_TAG for the nvidia-container-runtime and nvidia-docker targets - # The LIB_TAG is also overridden to match the TOOLKIT_TAG. - - # Build nvidia-container-runtime if required - package_name="nvidia-container-runtime" - package_version=${NVIDIA_CONTAINER_RUNTIME_VERSION}${NVIDIA_CONTAINER_TOOLKIT_TAG:+~${NVIDIA_CONTAINER_TOOLKIT_TAG}}-1 - package_pattern=${DIST_DIR}/${package_format}/all/${package_name}?${package_version}?*.${package_format} - package=$(ls ${package_pattern}) || echo "" - if [[ -z ${package} ]]; then - echo "${package_name} does not exist" - make -C ${NVIDIA_CONTAINER_RUNTIME_ROOT} \ - LIB_VERSION="${NVIDIA_CONTAINER_RUNTIME_VERSION}" \ - LIB_TAG="${NVIDIA_CONTAINER_TOOLKIT_TAG}" \ - TOOLKIT_VERSION="${NVIDIA_CONTAINER_TOOLKIT_VERSION}" \ - TOOLKIT_TAG="${NVIDIA_CONTAINER_TOOLKIT_TAG}" \ - ${TARGET} - fi - if [[ -n ${package_target} ]]; then - mkdir -p ${DIST_DIR}/${package_target}/ - cp -p ${package_pattern} ${DIST_DIR}/${package_target}/ - fi - - # Build nvidia-docker2 if required - package_name="nvidia-docker2" - package_version=${NVIDIA_DOCKER_VERSION}${NVIDIA_CONTAINER_TOOLKIT_TAG:+~${NVIDIA_CONTAINER_TOOLKIT_TAG}}-1 - package_pattern=${DIST_DIR}/${package_format}/all/${package_name}?${package_version}?*.${package_format} - package=$(ls ${package_pattern}) || echo "" - if [[ -z ${package} ]]; then - echo "${package_name} does not exist" - make -C ${NVIDIA_DOCKER_ROOT} \ - LIB_VERSION="${NVIDIA_DOCKER_VERSION}" \ - LIB_TAG="${NVIDIA_CONTAINER_TOOLKIT_TAG}" \ - TOOLKIT_VERSION="${NVIDIA_CONTAINER_TOOLKIT_VERSION}" \ - TOOLKIT_TAG="${NVIDIA_CONTAINER_TOOLKIT_TAG}" \ - ${TARGET} - fi - if [[ -n ${package_target} ]]; then - mkdir -p ${DIST_DIR}/${package_target}/ - cp -p ${package_pattern} ${DIST_DIR}/${package_target}/ - fi - -else - echo "Skipping nvidia-container-runtime and nvidia-docker builds." -fi diff --git a/scripts/build-packages.sh b/scripts/build-packages.sh index 2e91877b..0fc1b036 100755 --- a/scripts/build-packages.sh +++ b/scripts/build-packages.sh @@ -47,8 +47,6 @@ eval $(${SCRIPTS_DIR}/get-component-versions.sh) export NVIDIA_CONTAINER_TOOLKIT_VERSION export NVIDIA_CONTAINER_TOOLKIT_TAG -export NVIDIA_CONTAINER_RUNTIME_VERSION -export NVIDIA_DOCKER_VERSION for target in ${targets[@]}; do "${SCRIPTS_DIR}/build-all-components.sh" "${target}" diff --git a/scripts/extract-packages.sh b/scripts/extract-packages.sh index 76c6873d..be288de2 100755 --- a/scripts/extract-packages.sh +++ b/scripts/extract-packages.sh @@ -37,8 +37,7 @@ PACKAGE_IMAGE=$1 : "${ARTIFACTS_DIR="${PROJECT_ROOT}/artifacts"}" # For release-candidates we skip certain packages. -# For example, we don't release release candidates of nvidia-container-runtime and nvidia-docker2 -# since these only bump the nvidia-container-toolkit dependency. +# This function returns 0 if a package should be skipped and 1 otherwise. function skip-for-release-candidate() { # We always skip nvidia-container-toolkit-operator-extensions packages if [[ "${package_name/"nvidia-container-toolkit-operator-extensions"/}" != "${package_name}" ]]; then @@ -53,14 +52,6 @@ function skip-for-release-candidate() { if [[ "${VERSION%.0}" == "${VERSION}" ]]; then is_non_patch_full_release=0 fi - - local package_name=$1 - if [[ "${package_name/"nvidia-docker2"/}" != "${package_name}" ]]; then - return ${is_non_patch_full_release} - fi - if [[ "${package_name/"nvidia-container-runtime"/}" != "${package_name}" ]]; then - return ${is_non_patch_full_release} - fi return 1 } diff --git a/scripts/get-component-versions.sh b/scripts/get-component-versions.sh index 14f4ef66..111f9343 100755 --- a/scripts/get-component-versions.sh +++ b/scripts/get-component-versions.sh @@ -29,8 +29,6 @@ SCRIPTS_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )"/../scripts && pwd )" PROJECT_ROOT="$( cd ${SCRIPTS_DIR}/.. && pwd )" NVIDIA_CONTAINER_TOOLKIT_ROOT=${PROJECT_ROOT} -NVIDIA_CONTAINER_RUNTIME_ROOT=${PROJECT_ROOT}/third_party/nvidia-container-runtime -NVIDIA_DOCKER_ROOT=${PROJECT_ROOT}/third_party/nvidia-docker versions_makefile=${NVIDIA_CONTAINER_TOOLKIT_ROOT}/versions.mk # Get version for nvidia-container-toolit @@ -38,22 +36,6 @@ nvidia_container_toolkit_version=$(grep -m 1 "^LIB_VERSION := " ${versions_makef nvidia_container_toolkit_tag=$(grep -m 1 "^LIB_TAG .= " ${versions_makefile} | sed -e 's/LIB_TAG .=[[:space:]]\(.*\)[[:space:]]*/\1/') nvidia_container_toolkit_version_tag="${nvidia_container_toolkit_version}${nvidia_container_toolkit_tag:+~${nvidia_container_toolkit_tag}}" -# Get version for nvidia-container-runtime -nvidia_container_runtime_version=$(grep -m 1 "^NVIDIA_CONTAINER_RUNTIME_VERSION := " ${versions_makefile} | sed -e 's/NVIDIA_CONTAINER_RUNTIME_VERSION :=[[:space:]]\(.*\)[[:space:]]*/\1/') -nvidia_container_runtime_tag=${nvidia_container_toolkit_tag} -nvidia_container_runtime_version_tag="${nvidia_container_runtime_version}${nvidia_container_runtime_tag:+~${nvidia_container_runtime_tag}}" - -# Get version for nvidia-docker -nvidia_docker_version=$(grep -m 1 "^NVIDIA_DOCKER_VERSION := " ${versions_makefile} | sed -e 's/NVIDIA_DOCKER_VERSION :=[[:space:]]\(.*\)[[:space:]]*/\1/') -nvidia_docker_tag=${nvidia_container_toolkit_tag} -nvidia_docker_version_tag="${nvidia_docker_version}${nvidia_docker_tag:+~${nvidia_docker_tag}}" - echo "NVIDIA_CONTAINER_TOOLKIT_VERSION=${nvidia_container_toolkit_version}" echo "NVIDIA_CONTAINER_TOOLKIT_TAG=${nvidia_container_toolkit_tag}" echo "NVIDIA_CONTAINER_TOOLKIT_PACKAGE_VERSION=${nvidia_container_toolkit_version_tag//\~/-}" -echo "NVIDIA_CONTAINER_RUNTIME_VERSION=${nvidia_container_runtime_version}" -echo "NVIDIA_CONTAINER_RUNTIME_TAG=${nvidia_container_runtime_tag}" -echo "NVIDIA_CONTAINER_RUNTIME_PACKAGE_VERSION=${nvidia_container_runtime_version_tag//\~/-}" -echo "NVIDIA_DOCKER_VERSION=${nvidia_docker_version}" -echo "NVIDIA_DOCKER_TAG=${nvidia_docker_tag}" -echo "NVIDIA_DOCKER_PACKAGE_VERSION=${nvidia_docker_version_tag//\~/-}" diff --git a/scripts/release-packages.sh b/scripts/release-packages.sh index 7991f932..8c91965a 100755 --- a/scripts/release-packages.sh +++ b/scripts/release-packages.sh @@ -142,19 +142,6 @@ function sync() { fi done - if [[ ${REPO} == "stable" ]]; then - for f in $(ls ${src}/nvidia-container-runtime*.${pkg_type} ${src}/nvidia-docker*.${pkg_type}); do - df=${dst}/$(basename ${f}) - df_stable=${df//"/experimental/"/"/stable/"} - if [[ -f "${df}" ]]; then - echo "${df} already exists; skipping" - elif [[ ${REPO} == "experimental" && -f ${df_stable} ]]; then - echo "${df_stable} already exists; skipping" - else - cp ${f} ${df} - fi - done - fi } targets=${all[@]} @@ -191,18 +178,6 @@ done git -C ${PACKAGE_REPO_ROOT} add ${REPO} -if [[ "${REPO}" == "stable" ]]; then -# Stable release -git -C ${PACKAGE_REPO_ROOT} commit -s -F- < - -Use your real name (sorry, no pseudonyms or anonymous contributions.) - -If you set your `user.name` and `user.email` git configs, you can sign your -commit automatically with `git commit -s`. - diff --git a/third_party/nvidia-container-runtime/Jenkinsfile b/third_party/nvidia-container-runtime/Jenkinsfile deleted file mode 100644 index 257f03cb..00000000 --- a/third_party/nvidia-container-runtime/Jenkinsfile +++ /dev/null @@ -1,110 +0,0 @@ -/* -# Copyright (c) 2021, NVIDIA CORPORATION. All rights reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -*/ - -podTemplate (cloud:'sw-gpu-cloudnative', - containers: [ - containerTemplate(name: 'docker', image: 'docker:dind', ttyEnabled: true, privileged: true) - ]) { - node(POD_LABEL) { - def scmInfo - - stage('checkout') { - scmInfo = checkout(scm) - } - - stage('dependencies') { - container('docker') { - sh 'apk add --no-cache make bash git' - } - } - stage('check') { - } - stage('test') { - } - - def versionInfo - stage('version') { - container('docker') { - versionInfo = getVersionInfo(scmInfo) - println "versionInfo=${versionInfo}" - } - } - - def dist = 'ubuntu20.04' - def arch = 'amd64' - def stageLabel = "${dist}-${arch}" - - stage('build-one') { - container('docker') { - stage (stageLabel) { - sh "make ${dist}-${arch}" - } - } - } - - stage('release') { - container('docker') { - stage (stageLabel) { - - def component = 'main' - def repository = 'sw-gpu-cloudnative-debian-local/pool/main/' - - def uploadSpec = """{ - "files": - [ { - "pattern": "./dist/${dist}/${arch}/*.deb", - "target": "${repository}", - "props": "deb.distribution=${dist};deb.component=${component};deb.architecture=${arch}" - } - ] - }""" - - sh "echo starting release with versionInfo=${versionInfo}" - if (versionInfo.isTag) { - // upload to artifactory repository - def server = Artifactory.server 'sw-gpu-artifactory' - server.upload spec: uploadSpec - } else { - sh "echo skipping release for non-tagged build" - } - } - } - } - } -} - -// getVersionInfo returns a hash of version info -def getVersionInfo(def scmInfo) { - def versionInfo = [ - isTag: isTag(scmInfo.GIT_BRANCH) - ] - - scmInfo.each { k, v -> versionInfo[k] = v } - return versionInfo -} - -def isTag(def branch) { - if (!branch.startsWith('v')) { - return false - } - - def version = shOutput('git describe --all --exact-match --always') - return version == "tags/${branch}" -} - -def shOuptut(def script) { - return sh(script: script, returnStdout: true).trim() -} diff --git a/third_party/nvidia-container-runtime/LICENSE b/third_party/nvidia-container-runtime/LICENSE deleted file mode 100644 index d6456956..00000000 --- a/third_party/nvidia-container-runtime/LICENSE +++ /dev/null @@ -1,202 +0,0 @@ - - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright [yyyy] [name of copyright owner] - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. diff --git a/third_party/nvidia-container-runtime/Makefile b/third_party/nvidia-container-runtime/Makefile deleted file mode 100644 index 3a76f0dc..00000000 --- a/third_party/nvidia-container-runtime/Makefile +++ /dev/null @@ -1,41 +0,0 @@ -# Copyright (c) 2017-2021, NVIDIA CORPORATION. All rights reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -LIB_NAME := nvidia-container-runtime -# Define the package version and tag. Since this package is released as part of -# the NVIDIA Container Toolkit, these versions are specified where they are -# built or when invoking the MAKE command. -LIB_VERSION ?= # Set by CI -LIB_TAG ?= # Set by CI - -ifeq ($(strip $(LIB_VERSION)),) -$(error LIB_VERSION must be specified) -endif - -# Define the nvidia-container-toolkit version on which the nvidia-docker2 -# package depends. It is recommended that the TOOLKIT_TAG and the LIB_TAG match. -TOOLKIT_VERSION ?= # Set by CI -TOOLKIT_TAG ?= # Set by CI - -ifeq ($(strip $(TOOLKIT_VERSION)),) -$(error TOOLKIT_VERSION must be specified) -endif - -ifneq ($(TOOLKIT_TAG),$(LIB_TAG)) -$(warning TOOLKIT_TAG=$(TOOLKIT_TAG) and LIB_TAG=$(LIB_TAG) do not match) -endif - -# By default run all native docker-based targets -docker-native: -include $(CURDIR)/docker/docker.mk diff --git a/third_party/nvidia-container-runtime/README.md b/third_party/nvidia-container-runtime/README.md deleted file mode 100644 index 3502df20..00000000 --- a/third_party/nvidia-container-runtime/README.md +++ /dev/null @@ -1,196 +0,0 @@ -# Migration Notice - -**NOTE**: The source code for the `nvidia-container-runtime` binary has been moved to the [`nvidia-container-toolkit`](https://gitlab.com/nvidia/container-toolkit/container-toolkit/-/tree/main/cmd/nvidia-container-runtime) repository. It is now included in the `nvidia-container-toolkit` package and the `nvidia-container-runtime` package defined in this repository is a meta-package that allows workflows that referred to this package directly to continue to function without modification. - -# nvidia-container-runtime -[![GitHub license](https://img.shields.io/badge/License-Apache%202.0-blue.svg?style=flat-square)](https://raw.githubusercontent.com/NVIDIA/nvidia-container-runtime/main/LICENSE) -[![Package repository](https://img.shields.io/badge/packages-repository-b956e8.svg?style=flat-square)](https://nvidia.github.io/nvidia-container-runtime) - -A modified version of [runc](https://github.com/opencontainers/runc) adding a custom [pre-start hook](https://github.com/opencontainers/runtime-spec/blob/main/config.md#prestart) to all containers. -If environment variable `NVIDIA_VISIBLE_DEVICES` is set in the OCI spec, the hook will configure GPU access for the container by leveraging `nvidia-container-cli` from project [libnvidia-container](https://github.com/NVIDIA/libnvidia-container). - -## Usage example - -```sh -# Setup a rootfs based on Ubuntu 16.04 -cd $(mktemp -d) && mkdir rootfs -curl -sS http://cdimage.ubuntu.com/ubuntu-base/releases/16.04/release/ubuntu-base-16.04-core-amd64.tar.gz | tar --exclude 'dev/*' -C rootfs -xz - -# Create an OCI runtime spec -nvidia-container-runtime spec -sed -i 's;"sh";"nvidia-smi";' config.json -sed -i 's;\("TERM=xterm"\);\1, "NVIDIA_VISIBLE_DEVICES=0";' config.json - -# Run the container -sudo nvidia-container-runtime run nvidia_smi -``` - -## Installation -#### Ubuntu distributions - -1. Install the repository for your distribution by following the instructions [here](http://nvidia.github.io/nvidia-container-runtime/). -2. Install the `nvidia-container-runtime` package: -``` -sudo apt-get install nvidia-container-runtime -``` - -#### CentOS distributions -1. Install the repository for your distribution by following the instructions [here](http://nvidia.github.io/nvidia-container-runtime/). -2. Install the `nvidia-container-runtime` package: -``` -sudo yum install nvidia-container-runtime -``` - -## Docker Engine setup - -**Do not follow this section if you installed the `nvidia-docker2` package, it already registers the runtime.** - -To register the `nvidia` runtime, use the method below that is best suited to your environment. -You might need to merge the new argument with your existing configuration. - -#### Systemd drop-in file -```bash -sudo mkdir -p /etc/systemd/system/docker.service.d -sudo tee /etc/systemd/system/docker.service.d/override.conf <:` as seen in the example output: -``` -$ nvidia-smi -L -GPU 0: Graphics Device (UUID: GPU-b8ea3855-276c-c9cb-b366-c6fa655957c5) - MIG Device 0: (UUID: MIG-GPU-b8ea3855-276c-c9cb-b366-c6fa655957c5/1/0) - MIG Device 1: (UUID: MIG-GPU-b8ea3855-276c-c9cb-b366-c6fa655957c5/1/1) - MIG Device 2: (UUID: MIG-GPU-b8ea3855-276c-c9cb-b366-c6fa655957c5/11/0) -``` - -### `NVIDIA_MIG_CONFIG_DEVICES` -This variable controls which of the visible GPUs can have their MIG -configuration managed from within the container. This includes enabling and -disabling MIG mode, creating and destroying GPU Instances and Compute -Instances, etc. - -#### Possible values -* `all`: Allow all MIG-capable GPUs in the visible device list to have their - MIG configurations managed. - -**Note**: -* This feature is only available on MIG capable devices (e.g. the A100). -* To use this feature, the container must be started with `CAP_SYS_ADMIN` privileges. -* When not running as `root`, the container user must have read access to the - `/proc/driver/nvidia/capabilities/mig/config` file on the host. - -### `NVIDIA_MIG_MONITOR_DEVICES` -This variable controls which of the visible GPUs can have aggregate information -about all of their MIG devices monitored from within the container. This -includes inspecting the aggregate memory usage, listing the aggregate running -processes, etc. - -#### Possible values -* `all`: Allow all MIG-capable GPUs in the visible device list to have their - MIG devices monitored. - -**Note**: -* This feature is only available on MIG capable devices (e.g. the A100). -* To use this feature, the container must be started with `CAP_SYS_ADMIN` privileges. -* When not running as `root`, the container user must have read access to the - `/proc/driver/nvidia/capabilities/mig/monitor` file on the host. - -### `NVIDIA_DRIVER_CAPABILITIES` -This option controls which driver libraries/binaries will be mounted inside the container. - -#### Possible values -* `compute,video`, `graphics,utility` …: a comma-separated list of driver features the container needs. -* `all`: enable all available driver capabilities. -* *empty* or *unset*: use default driver capability: `utility,compute`. - -#### Supported driver capabilities -* `compute`: required for CUDA and OpenCL applications. -* `compat32`: required for running 32-bit applications. -* `graphics`: required for running OpenGL and Vulkan applications. -* `utility`: required for using `nvidia-smi` and NVML. -* `video`: required for using the Video Codec SDK. -* `display`: required for leveraging X11 display. - -### `NVIDIA_REQUIRE_*` -A logical expression to define constraints on the configurations supported by the container. - -#### Supported constraints -* `cuda`: constraint on the CUDA driver version. -* `driver`: constraint on the driver version. -* `arch`: constraint on the compute architectures of the selected GPUs. -* `brand`: constraint on the brand of the selected GPUs (e.g. GeForce, Tesla, GRID). - -#### Expressions -Multiple constraints can be expressed in a single environment variable: space-separated constraints are ORed, comma-separated constraints are ANDed. -Multiple environment variables of the form `NVIDIA_REQUIRE_*` are ANDed together. - -### `NVIDIA_DISABLE_REQUIRE` -Single switch to disable all the constraints of the form `NVIDIA_REQUIRE_*`. - -### `NVIDIA_REQUIRE_CUDA` - -The version of the CUDA toolkit used by the container. It is an instance of the generic `NVIDIA_REQUIRE_*` case and it is set by official CUDA images. -If the version of the NVIDIA driver is insufficient to run this version of CUDA, the container will not be started. - -#### Possible values -* `cuda>=7.5`, `cuda>=8.0`, `cuda>=9.0` …: any valid CUDA version in the form `major.minor`. - -### `CUDA_VERSION` -Similar to `NVIDIA_REQUIRE_CUDA`, for legacy CUDA images. -In addition, if `NVIDIA_REQUIRE_CUDA` is not set, `NVIDIA_VISIBLE_DEVICES` and `NVIDIA_DRIVER_CAPABILITIES` will default to `all`. - -## Issues and Contributing - -[Checkout the Contributing document!](CONTRIBUTING.md) - -* Please let us know by [filing a new issue](https://github.com/NVIDIA/nvidia-container-toolkit/issues/new) -* You can contribute by creating a [merge request](https://gitlab.com/nvidia/container-toolkit/container-runtime/-/merge_requests/new) to our public GitLab repository diff --git a/third_party/nvidia-container-runtime/debian/changelog.old b/third_party/nvidia-container-runtime/debian/changelog.old deleted file mode 100644 index ed658ff4..00000000 --- a/third_party/nvidia-container-runtime/debian/changelog.old +++ /dev/null @@ -1,84 +0,0 @@ -# Note: as of 3.6.0-1 this file is no longer updated, with a changelog -# entry for a given release generated as part of the packaging step. - -nvidia-container-runtime (3.6.0-1) UNRELEASED; urgency=medium - - * Promote 3.6.0~rc.3-1 to 3.6.0-1 - - -- NVIDIA CORPORATION Wed, 17 Nov 2021 09:25:15 +0100 - -nvidia-container-runtime (3.6.0~rc.3-1) experimental; urgency=medium - - * Switch to "all" architecture - - -- NVIDIA CORPORATION Mon, 08 Nov 2021 13:46:59 +0100 - -nvidia-container-runtime (3.6.0~rc.2-1) experimental; urgency=medium - - * Allow the toolkit version to be specified as a variable - - -- NVIDIA CORPORATION Thu, 04 Nov 2021 14:14:32 +0000 - -nvidia-container-runtime (3.6.0~rc.1-1) experimental; urgency=medium - - * Add AARCH64 package for Amazon Linux 2 - * [BUILD] Allow tag to be specified instead of revision - * Convert to meta package that depends on nvidia-container-toolkit - * Remove libseccomp2 dependency - - -- NVIDIA CORPORATION Tue, 07 Sep 2021 13:06:50 +0200 - -nvidia-container-runtime (3.5.0-1) UNRELEASED; urgency=medium - - * Add dependence on nvidia-container-toolkit >= 1.5.0 - * Refactor the whole project for easier extensibility in the future - * Move main to cmd/nvidia-container-runtime to make it go-installable - * Switch to logrus for logging and refactor how logging is done - * Update to Golang 1.16.3 - * Improvements to build and CI system - * Reorganize the code structure and format it correctly - - -- NVIDIA CORPORATION Thu, 29 Apr 2021 05:10:29 +0000 - -nvidia-container-runtime (3.4.2-1) UNRELEASED; urgency=medium - - * Add dependence on nvidia-container-toolkit >= 1.4.2 - - -- NVIDIA CORPORATION Fri, 05 Feb 2021 02:30:49 +0000 - -nvidia-container-runtime (3.4.1-1) UNRELEASED; urgency=medium - - * Update README to list 'compute' as part of the default capabilities - * Switch to gomod for vendoring - * Update to Go 1.15.6 for builds - * Add dependence on nvidia-container-toolkit >= 1.4.1 - - -- NVIDIA CORPORATION Mon, 25 Jan 2021 02:34:42 +0000 - -nvidia-container-runtime (3.4.0-1) UNRELEASED; urgency=medium - - * Bump version to v3.4.0 - * Add dependence on nvidia-container-toolkit >= 1.3.0 - - -- NVIDIA CORPORATION Wed, 16 Sep 2020 13:48:15 +0000 - -nvidia-container-runtime (3.3.0-1) UNRELEASED; urgency=medium - - * e550cb15 Update package license to match source license - * f02eef53 Update project License - * c0fe8aae Update dependence on nvidia-container-toolkit to 1.2.0 - - -- NVIDIA CORPORATION Wed, 08 Jul 2020 20:23:05 +0000 - -nvidia-container-runtime (3.2.0-1) UNRELEASED; urgency=medium - - * e486a70e Update build system to support multi-arch builds - * 854f4c48 Require new MIG changes - - -- NVIDIA CORPORATION Fri, 15 May 2020 12:04:57 +0000 - -nvidia-container-runtime (3.1.4-1) UNRELEASED; urgency=medium - - * Split into nvidia-container-runtime and nvidia-container-runtime-hook - - -- NVIDIA CORPORATION Wed, 07 Mar 2018 05:47:37 +0000 diff --git a/third_party/nvidia-container-runtime/debian/compat b/third_party/nvidia-container-runtime/debian/compat deleted file mode 100644 index ec635144..00000000 --- a/third_party/nvidia-container-runtime/debian/compat +++ /dev/null @@ -1 +0,0 @@ -9 diff --git a/third_party/nvidia-container-runtime/debian/control b/third_party/nvidia-container-runtime/debian/control deleted file mode 100644 index 9a51306b..00000000 --- a/third_party/nvidia-container-runtime/debian/control +++ /dev/null @@ -1,16 +0,0 @@ -Source: nvidia-container-runtime -Section: @SECTION@utils -Priority: optional -Maintainer: NVIDIA CORPORATION -Standards-Version: 3.9.8 -Homepage: https://github.com/NVIDIA/nvidia-container-runtime/wiki -Vcs-Git: https://github.com/NVIDIA/nvidia-container-runtime -Vcs-Browser: https://github.com/NVIDIA/nvidia-container-runtime -Build-Depends: debhelper (>= 9) - -Package: nvidia-container-runtime -Architecture: all -Depends: ${misc:Depends}, nvidia-container-toolkit (>= @TOOLKIT_VERSION@), nvidia-container-toolkit (<< 2.0.0) -Description: NVIDIA Container Toolkit meta-package - A meta-package that allows installation flows expecting the nvidia-container-runtime - to be migrated to installing the NVIDIA Container Toolkit packages directly. diff --git a/third_party/nvidia-container-runtime/debian/copyright b/third_party/nvidia-container-runtime/debian/copyright deleted file mode 100644 index f4784bd3..00000000 --- a/third_party/nvidia-container-runtime/debian/copyright +++ /dev/null @@ -1,185 +0,0 @@ -Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ -Upstream-Name: nvidia-container-runtime -Source: https://github.com/NVIDIA/nvidia-container-runtime - -Files: * -Copyright: 2017-2020 NVIDIA CORPORATION -License: Apache-2.0 - -License: Apache-2.0 - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS diff --git a/third_party/nvidia-container-runtime/debian/nvidia-container-runtime.lintian-overrides b/third_party/nvidia-container-runtime/debian/nvidia-container-runtime.lintian-overrides deleted file mode 100644 index 273c48a2..00000000 --- a/third_party/nvidia-container-runtime/debian/nvidia-container-runtime.lintian-overrides +++ /dev/null @@ -1,3 +0,0 @@ -new-package-should-close-itp-bug -binary-without-manpage -description-is-pkg-name diff --git a/third_party/nvidia-container-runtime/debian/prepare b/third_party/nvidia-container-runtime/debian/prepare deleted file mode 100755 index 04e969b3..00000000 --- a/third_party/nvidia-container-runtime/debian/prepare +++ /dev/null @@ -1,5 +0,0 @@ -#! /bin/bash - -set -e - -sed -i "s;@SECTION@;${SECTION:+$SECTION/};g" debian/control diff --git a/third_party/nvidia-container-runtime/debian/rules b/third_party/nvidia-container-runtime/debian/rules deleted file mode 100755 index f3908b29..00000000 --- a/third_party/nvidia-container-runtime/debian/rules +++ /dev/null @@ -1,7 +0,0 @@ -#!/usr/bin/make -f -# -*- makefile -*- - -#export DH_VERBOSE=1 - -%: - dh $@ diff --git a/third_party/nvidia-container-runtime/docker/Dockerfile.deb b/third_party/nvidia-container-runtime/docker/Dockerfile.deb deleted file mode 100644 index 0359e908..00000000 --- a/third_party/nvidia-container-runtime/docker/Dockerfile.deb +++ /dev/null @@ -1,45 +0,0 @@ -ARG BASEIMAGE -FROM ${BASEIMAGE} - -# packaging dependencies -ENV DEBIAN_FRONTEND=noninteractive -RUN apt-get update && apt-get install -y --no-install-recommends \ - dh-make \ - fakeroot \ - build-essential \ - devscripts \ - lsb-release && \ - rm -rf /var/lib/apt/lists/* - -# packaging -ARG PKG_NAME -ARG PKG_VERS -ARG PKG_REV -ARG TOOLKIT_VERSION -ARG DOCKER_VERSION - -ENV DEBFULLNAME "NVIDIA CORPORATION" -ENV DEBEMAIL "cudatools@nvidia.com" -ENV PKG_NAME "${PKG_NAME}" -ENV REVISION "$PKG_VERS-$PKG_REV" -ENV DOCKER_VERSION $DOCKER_VERSION -ENV TOOLKIT_VERSION $TOOLKIT_VERSION -ENV SECTION "" - -# output directory -ENV DIST_DIR=/tmp/${PKG_NAME}-$PKG_VERS -RUN mkdir -p $DIST_DIR /dist - -WORKDIR $DIST_DIR -COPY debian ./debian - -RUN sed -i "s;@TOOLKIT_VERSION@;${TOOLKIT_VERSION};" debian/control && \ - dch --create --package="${PKG_NAME}" \ - --newversion "${REVISION}" \ - "Bump nvidia-container-toolkit dependency to ${TOOLKIT_VERSION}" && \ - dch -r "" && \ - if [ "$REVISION" != "$(dpkg-parsechangelog --show-field=Version)" ]; then exit 1; fi - -CMD export DISTRIB="$(lsb_release -cs)" && \ - debuild --preserve-env --dpkg-buildpackage-hook='sh debian/prepare' -i -us -uc -b && \ - mv /tmp/*.deb /dist diff --git a/third_party/nvidia-container-runtime/docker/Dockerfile.rpm b/third_party/nvidia-container-runtime/docker/Dockerfile.rpm deleted file mode 100644 index 382253bd..00000000 --- a/third_party/nvidia-container-runtime/docker/Dockerfile.rpm +++ /dev/null @@ -1,36 +0,0 @@ -ARG BASEIMAGE -FROM ${BASEIMAGE} - -# packaging dependencies -RUN yum install -y \ - rpm-build && \ - rm -rf /var/cache/yum/* - -# packaging -ARG PKG_NAME -ARG PKG_VERS -ARG PKG_REV -ARG TOOLKIT_VERSION -ARG DOCKER_VERSION - -ENV PKG_NAME "${PKG_NAME}" -ENV VERSION $PKG_VERS -ENV RELEASE $PKG_REV -ENV DOCKER_VERSION $DOCKER_VERSION -ENV TOOLKIT_VERSION $TOOLKIT_VERSION - -# output directory -ENV DIST_DIR=/tmp/${PKG_NAME}-$PKG_VERS/SOURCES -RUN mkdir -p $DIST_DIR /dist - -WORKDIR $DIST_DIR/.. -COPY rpm . - -CMD rpmbuild --clean -bb \ - -D "_topdir $PWD" \ - -D "release_date $(date +'%a %b %d %Y')" \ - -D "version $VERSION" \ - -D "release $RELEASE" \ - -D "toolkit_version $TOOLKIT_VERSION" \ - SPECS/nvidia-container-runtime.spec && \ - mv RPMS/noarch/*.rpm /dist diff --git a/third_party/nvidia-container-runtime/docker/docker.mk b/third_party/nvidia-container-runtime/docker/docker.mk deleted file mode 100644 index cf482039..00000000 --- a/third_party/nvidia-container-runtime/docker/docker.mk +++ /dev/null @@ -1,77 +0,0 @@ -# Copyright (c) 2021, NVIDIA CORPORATION. All rights reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -DOCKER ?= docker -MKDIR ?= mkdir -DIST_DIR ?= $(CURDIR)/dist - -# Supported packaging formats -FORMAT_TARGETS := deb rpm - -# We add utility targets to support common os-arch combinations by mapping to the required format targets. -DEB_TARGETS := debian10-amd64 ubuntu18.04-amd64 ubuntu18.04-arm64 ubuntu18.04-ppc64le -RPM_TARGETS := amazonlinux2-aarch64 amazonlinux2-x86_64 centos7-x86_64 centos8-aarch64 centos8-ppc64le centos8-x86_64 opensuse-leap15.1-x86_64 - -$(DEB_TARGETS): %: deb -$(RPM_TARGETS): %: rpm - -# Define top-level build targets -docker%: SHELL:=/bin/bash - -$(FORMAT_TARGETS): %: --% - -# Default variables for all private '--' targets below. -# One private target is defined for each OS we support. ---%: FORMAT = $(*) ---%: BUILDIMAGE = nvidia/$(LIB_NAME)/$(FORMAT)-all ---%: DOCKERFILE = $(CURDIR)/docker/Dockerfile.$(FORMAT) ---%: ARTIFACTS_DIR = $(DIST_DIR)/$(FORMAT)/all ---%: docker-build-% - @ - -PKG_VERS = $(LIB_VERSION)$(if $(LIB_TAG),~$(LIB_TAG)) -PKG_REV = 1 -MIN_TOOLKIT_PKG_VERSION = $(TOOLKIT_VERSION)$(if $(TOOLKIT_TAG),~$(TOOLKIT_TAG))-1 - ---deb: BASEIMAGE := ubuntu:18.04 - ---rpm: BASEIMAGE := quay.io/centos/centos:stream8 - -docker-build-%: - @echo "Building $(FORMAT) packages to $(ARTIFACTS_DIR)" - docker pull $(BASEIMAGE) - DOCKER_BUILDKIT=1 \ - $(DOCKER) build \ - --progress=plain \ - --build-arg BASEIMAGE="$(BASEIMAGE)" \ - --build-arg TOOLKIT_VERSION="$(MIN_TOOLKIT_PKG_VERSION)" \ - --build-arg PKG_NAME="$(LIB_NAME)" \ - --build-arg PKG_VERS="$(PKG_VERS)" \ - --build-arg PKG_REV="$(PKG_REV)" \ - --tag $(BUILDIMAGE) \ - --file $(DOCKERFILE) . - $(DOCKER) run \ - -e DISTRIB \ - -e SECTION \ - -v $(ARTIFACTS_DIR):/dist \ - $(BUILDIMAGE) - -docker-clean: - IMAGES=$$(docker images "nvidia/$(LIB_NAME)/*" --format="{{.ID}}"); \ - if [ "$${IMAGES}" != "" ]; then \ - docker rmi -f $${IMAGES}; \ - fi - -distclean: - rm -rf $(DIST_DIR) diff --git a/third_party/nvidia-container-runtime/rpm/SOURCES/LICENSE b/third_party/nvidia-container-runtime/rpm/SOURCES/LICENSE deleted file mode 100644 index f4446dee..00000000 --- a/third_party/nvidia-container-runtime/rpm/SOURCES/LICENSE +++ /dev/null @@ -1,190 +0,0 @@ - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - Copyright 2017-2018 NVIDIA CORPORATION - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. diff --git a/third_party/nvidia-container-runtime/rpm/SPECS/nvidia-container-runtime.spec b/third_party/nvidia-container-runtime/rpm/SPECS/nvidia-container-runtime.spec deleted file mode 100644 index 4ec11f07..00000000 --- a/third_party/nvidia-container-runtime/rpm/SPECS/nvidia-container-runtime.spec +++ /dev/null @@ -1,36 +0,0 @@ -Name: nvidia-container-runtime -Version: %{version} -Release: %{release} -BuildArch: noarch -Group: Development Tools - -Vendor: NVIDIA CORPORATION -Packager: NVIDIA CORPORATION - -Summary: NVIDIA container runtime -URL: https://github.com/NVIDIA/nvidia-container-runtime -# runc NOTICE file: https://github.com/opencontainers/runc/blob/main/NOTICE -License: ASL 2.0 - -Source0: LICENSE - -Obsoletes: nvidia-container-runtime < 2.0.0 -Requires: nvidia-container-toolkit >= %{toolkit_version}, nvidia-container-toolkit < 2.0.0 - -%description -A meta-package that allows installation flows expecting the nvidia-container-runtime -to be migrated to installing the NVIDIA Container Toolkit packages directly. - -%prep -cp %{SOURCE0} . - -%install - -%files -%license LICENSE - -%changelog -# As of 3.6.0-1 we generate the release information automatically -* %{release_date} NVIDIA CORPORATION %{version}-%{release} -- As of 3.6.0-1 the package changelog is generated automatically. This means that releases since 3.6.0-1 all contain this same changelog entry updated for the version being released. -- Bump nvidia-container-toolkit dependency to %{toolkit_version} diff --git a/third_party/nvidia-container-runtime/rpm/changelog.old b/third_party/nvidia-container-runtime/rpm/changelog.old deleted file mode 100644 index 15a73bb1..00000000 --- a/third_party/nvidia-container-runtime/rpm/changelog.old +++ /dev/null @@ -1,46 +0,0 @@ -* Wed Nov 17 2021 NVIDIA CORPORATION 3.6.0-1 -- Promote 3.6.0-0.1.rc.3 to 3.6.0-1 - -* Mon Nov 08 2021 NVIDIA CORPORATION 3.6.0-0.1.rc.3 -- Convert to noarch package - -* Thu Nov 04 2021 NVIDIA CORPORATION 3.6.0-0.1.rc.2 -- Bump nvidia-container-toolkit dependency to %{toolkit_version} -- Allow the toolkit version to be specified as a variable - -* Thu Apr 29 2021 NVIDIA CORPORATION 3.6.0-0.1.rc.1 -- Add AARCH64 package for Amazon Linux 2 -- [BUILD] Allow tag to be specified instead of revision -- Convert to meta package that depends on nvidia-container-toolkit -- Remove libseccomp2 dependency - -* Thu Apr 29 2021 NVIDIA CORPORATION 3.5.0-1 -- Add dependence on nvidia-container-toolkit >= 1.5.0 -- Refactor the whole project for easier extensibility in the future -- Move main to cmd/nvidia-container-runtime to make it go-installable -- Switch to logrus for logging and refactor how logging is done -- Update to Golang 1.16.3 -- Improvements to build and CI system -- Reorganize the code structure and format it correctly - -* Fri Feb 05 2021 NVIDIA CORPORATION 3.4.2-1 -- Add dependence on nvidia-container-toolkit >= 1.4.2 - -* Mon Jan 25 2021 NVIDIA CORPORATION 3.4.1-1 -- Update README to list 'compute' as part of the default capabilities -- Switch to gomod for vendoring -- Update to Go 1.15.6 for builds -- Add dependence on nvidia-container-toolkit >= 1.4.1 - -* Wed Sep 16 2020 NVIDIA CORPORATION 3.4.0-1 -- Bump version to v3.4.0 -- Add dependence on nvidia-container-toolkit >= 1.3.0 - -* Wed Jul 08 2020 NVIDIA CORPORATION 3.3.0-1 -- e550cb15 Update package license to match source license -- f02eef53 Update project License -- c0fe8aae Update dependence on nvidia-container-toolkit to 1.2.0 - -* Fri May 15 2020 NVIDIA CORPORATION 3.2.0-1 -- e486a70e Update build system to support multi-arch builds -- 854f4c48 Require new MIG changes \ No newline at end of file diff --git a/third_party/nvidia-docker/.dockerignore b/third_party/nvidia-docker/.dockerignore deleted file mode 100644 index 19f2366d..00000000 --- a/third_party/nvidia-docker/.dockerignore +++ /dev/null @@ -1,2 +0,0 @@ -dist -.git diff --git a/third_party/nvidia-docker/.github/ISSUE_TEMPLATE.md b/third_party/nvidia-docker/.github/ISSUE_TEMPLATE.md deleted file mode 100644 index 3e2ae7b4..00000000 --- a/third_party/nvidia-docker/.github/ISSUE_TEMPLATE.md +++ /dev/null @@ -1,26 +0,0 @@ -_The template below is mostly useful for bug reports and support questions. Feel free to remove anything which doesn't apply to you and add more information where it makes sense._ - -_Also, before reporting a new issue, please make sure that:_ - -- _You read carefully the [documentation and frequently asked questions](https://github.com/NVIDIA/nvidia-docker/wiki)._ -- _You [searched](https://github.com/NVIDIA/nvidia-docker/issues?utf8=%E2%9C%93&q=is%3Aissue) for a similar issue and this is not a duplicate of an existing one._ -- _This issue is not related to [NGC](https://github.com/NVIDIA/nvidia-docker/wiki/NGC), otherwise, please use the [devtalk forums](https://devtalk.nvidia.com/default/board/200/nvidia-gpu-cloud-ngc-users/) instead._ -- _You went through the [troubleshooting](https://github.com/NVIDIA/nvidia-docker/wiki/Troubleshooting) steps._ - ---- - -### 1. Issue or feature description - -### 2. Steps to reproduce the issue - -### 3. Information to [attach](https://help.github.com/articles/file-attachments-on-issues-and-pull-requests/) (optional if deemed irrelevant) - - - [ ] Some nvidia-container information: `nvidia-container-cli -k -d /dev/tty info` - - [ ] Kernel version from `uname -a` - - [ ] Any relevant kernel output lines from `dmesg` - - [ ] Driver information from `nvidia-smi -a` - - [ ] Docker version from `docker version` - - [ ] NVIDIA packages version from `dpkg -l '*nvidia*'` _or_ `rpm -qa '*nvidia*'` - - [ ] NVIDIA container library version from `nvidia-container-cli -V` - - [ ] NVIDIA container library logs (see [troubleshooting](https://github.com/NVIDIA/nvidia-docker/wiki/Troubleshooting)) - - [ ] Docker command, image and tag used diff --git a/third_party/nvidia-docker/.gitignore b/third_party/nvidia-docker/.gitignore deleted file mode 100644 index b91f2f94..00000000 --- a/third_party/nvidia-docker/.gitignore +++ /dev/null @@ -1,9 +0,0 @@ -*.a -*.o -*.so -*.so.* -*.swp -.\#* -*~ -\#* -dist diff --git a/third_party/nvidia-docker/.gitlab-ci.yml b/third_party/nvidia-docker/.gitlab-ci.yml deleted file mode 100644 index 34ffc491..00000000 --- a/third_party/nvidia-docker/.gitlab-ci.yml +++ /dev/null @@ -1,96 +0,0 @@ -# Copyright (c) 2020-2022, NVIDIA CORPORATION. All rights reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -default: - image: docker - services: - - name: docker:dind - command: ["--experimental"] - -variables: - # We specify the LIB_VERSION, TOOLKIT_VERSION, and TOOLKIT_TAG variable to allow packages - # to be built. - LIB_VERSION: 999.999.999 - LIB_TAG: dummy+lib - TOOLKIT_VERSION: 999.999.999 - TOOLKIT_TAG: dummy+toolkit - -# Build packages for all supported OS / ARCH combinations -stages: - - trigger - - build - -.pipeline-trigger-rules: - rules: - # We trigger the pipeline if started manually - - if: $CI_PIPELINE_SOURCE == "web" - # We trigger the pipeline on the main branch - - if: $CI_COMMIT_BRANCH == "main" - # We trigger the pipeline on the release- branches - - if: $CI_COMMIT_BRANCH =~ /^release-.*$/ - # We trigger the pipeline on tags - - if: $CI_COMMIT_TAG && $CI_COMMIT_TAG != "" - -workflow: - rules: - # We trigger the pipeline on a merge request - - if: $CI_PIPELINE_SOURCE == 'merge_request_event' - # We then add all the regular triggers - - !reference [.pipeline-trigger-rules, rules] - -# The main or manual job is used to filter out distributions or architectures that are not required on -# every build. -.main-or-manual: - rules: - - !reference [.pipeline-trigger-rules, rules] - - if: $CI_PIPELINE_SOURCE == "schedule" - when: manual - -# The trigger-pipeline job adds a manualy triggered job to the pipeline on merge requests. -trigger-pipeline: - stage: trigger - script: - - echo "starting pipeline" - rules: - - !reference [.main-or-manual, rules] - - if: $CI_PIPELINE_SOURCE == "merge_request_event" - when: manual - allow_failure: false - - when: always - -.build-setup: - stage: build - variables: - ARTIFACTS_NAME: "${CI_PROJECT_NAME}-${CI_COMMIT_REF_SLUG}-${CI_JOB_NAME}-artifacts-${CI_PIPELINE_ID}" - ARTIFACTS_DIR: "${CI_PROJECT_NAME}-${CI_COMMIT_REF_SLUG}-artifacts-${CI_PIPELINE_ID}" - DIST_DIR: "${CI_PROJECT_DIR}/${ARTIFACTS_DIR}" - - artifacts: - name: ${ARTIFACTS_NAME} - paths: - - ${ARTIFACTS_DIR} - - before_script: - - apk update - - apk upgrade - - apk add coreutils build-base sed git bash make - -build: - extends: - - .build-setup - parallel: - matrix: - - PACKAGING: [deb, rpm] - script: - - make ${PACKAGING} diff --git a/third_party/nvidia-docker/CONTRIBUTING.md b/third_party/nvidia-docker/CONTRIBUTING.md deleted file mode 100644 index 3bcaaabb..00000000 --- a/third_party/nvidia-docker/CONTRIBUTING.md +++ /dev/null @@ -1,60 +0,0 @@ -# Contribute to the NVIDIA Container Toolkit - -Want to hack on the NVIDIA Container Toolkit Project? Awesome! -We only require you to sign your work, the below section describes this! - -## Sign your work - -The sign-off is a simple line at the end of the explanation for the patch. Your -signature certifies that you wrote the patch or otherwise have the right to pass -it on as an open-source patch. The rules are pretty simple: if you can certify -the below (from [developercertificate.org](http://developercertificate.org/)): - -``` -Developer Certificate of Origin -Version 1.1 - -Copyright (C) 2004, 2006 The Linux Foundation and its contributors. -1 Letterman Drive -Suite D4700 -San Francisco, CA, 94129 - -Everyone is permitted to copy and distribute verbatim copies of this -license document, but changing it is not allowed. - -Developer's Certificate of Origin 1.1 - -By making a contribution to this project, I certify that: - -(a) The contribution was created in whole or in part by me and I - have the right to submit it under the open source license - indicated in the file; or - -(b) The contribution is based upon previous work that, to the best - of my knowledge, is covered under an appropriate open source - license and I have the right under that license to submit that - work with modifications, whether created in whole or in part - by me, under the same open source license (unless I am - permitted to submit under a different license), as indicated - in the file; or - -(c) The contribution was provided directly to me by some other - person who certified (a), (b) or (c) and I have not modified - it. - -(d) I understand and agree that this project and the contribution - are public and that a record of the contribution (including all - personal information I submit with it, including my sign-off) is - maintained indefinitely and may be redistributed consistent with - this project or the open source license(s) involved. -``` - -Then you just add a line to every git commit message: - - Signed-off-by: Joe Smith - -Use your real name (sorry, no pseudonyms or anonymous contributions.) - -If you set your `user.name` and `user.email` git configs, you can sign your -commit automatically with `git commit -s`. - diff --git a/third_party/nvidia-docker/Jenkinsfile b/third_party/nvidia-docker/Jenkinsfile deleted file mode 100644 index 8d260346..00000000 --- a/third_party/nvidia-docker/Jenkinsfile +++ /dev/null @@ -1,106 +0,0 @@ -/* -# Copyright (c) 2021, NVIDIA CORPORATION. All rights reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -*/ - -podTemplate (cloud:'sw-gpu-cloudnative', - containers: [ - containerTemplate(name: 'docker', image: 'docker:dind', ttyEnabled: true, privileged: true) - ]) { - node(POD_LABEL) { - def scmInfo - - stage('checkout') { - scmInfo = checkout(scm) - } - - stage('dependencies') { - container('docker') { - sh 'apk add --no-cache make bash git' - } - } - - def versionInfo - stage('version') { - container('docker') { - versionInfo = getVersionInfo(scmInfo) - println "versionInfo=${versionInfo}" - } - } - - def dist = 'ubuntu20.04' - def arch = 'amd64' - def stageLabel = "${dist}-${arch}" - - stage('build-one') { - container('docker') { - stage (stageLabel) { - sh "make ADD_DOCKER_PLATFORM_ARGS=true ${dist}-${arch}" - } - } - } - - stage('release') { - container('docker') { - stage (stageLabel) { - - def component = 'main' - def repository = 'sw-gpu-cloudnative-debian-local/pool/main/' - - def uploadSpec = """{ - "files": - [ { - "pattern": "./dist/${dist}/${arch}/*.deb", - "target": "${repository}", - "props": "deb.distribution=${dist};deb.component=${component};deb.architecture=${arch}" - } - ] - }""" - - sh "echo starting release with versionInfo=${versionInfo}" - if (versionInfo.isTag) { - // upload to artifactory repository - def server = Artifactory.server 'sw-gpu-artifactory' - server.upload spec: uploadSpec - } else { - sh "echo skipping release for non-tagged build" - } - } - } - } - } -} - -// getVersionInfo returns a hash of version info -def getVersionInfo(def scmInfo) { - def versionInfo = [ - isTag: isTag(scmInfo.GIT_BRANCH) - ] - - scmInfo.each { k, v -> versionInfo[k] = v } - return versionInfo -} - -def isTag(def branch) { - if (!branch.startsWith('v')) { - return false - } - - def version = shOutput('git describe --all --exact-match --always') - return version == "tags/${branch}" -} - -def shOuptut(def script) { - return sh(script: script, returnStdout: true).trim() -} diff --git a/third_party/nvidia-docker/LICENSE b/third_party/nvidia-docker/LICENSE deleted file mode 100644 index d6456956..00000000 --- a/third_party/nvidia-docker/LICENSE +++ /dev/null @@ -1,202 +0,0 @@ - - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright [yyyy] [name of copyright owner] - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. diff --git a/third_party/nvidia-docker/Makefile b/third_party/nvidia-docker/Makefile deleted file mode 100644 index d2bfdc48..00000000 --- a/third_party/nvidia-docker/Makefile +++ /dev/null @@ -1,41 +0,0 @@ -# Copyright (c) 2017-2021, NVIDIA CORPORATION. All rights reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -LIB_NAME := nvidia-docker2 -# Define the package version and tag. Since this package is released as part of -# the NVIDIA Container Toolkit, these versions are specified where they are -# built or when invoking the MAKE command. -LIB_VERSION ?= # Set by CI -LIB_TAG ?= # Set by CI - -ifeq ($(strip $(LIB_VERSION)),) -$(error LIB_VERSION must be specified) -endif - -# Define the nvidia-container-toolkit version on which the nvidia-docker2 -# package depends. It is recommended that the TOOLKIT_TAG and the LIB_TAG match. -TOOLKIT_VERSION ?= # Set by CI -TOOLKIT_TAG ?= # Set by CI - -ifeq ($(strip $(TOOLKIT_VERSION)),) -$(error TOOLKIT_VERSION must be specified) -endif - -ifneq ($(TOOLKIT_TAG),$(LIB_TAG)) -$(warning TOOLKIT_TAG=$(TOOLKIT_TAG) and LIB_TAG=$(LIB_TAG) do not match) -endif - -# By default run all native docker-based targets -docker-native: -include $(CURDIR)/docker/docker.mk diff --git a/third_party/nvidia-docker/README.md b/third_party/nvidia-docker/README.md deleted file mode 100644 index ebcbe0d9..00000000 --- a/third_party/nvidia-docker/README.md +++ /dev/null @@ -1,33 +0,0 @@ -# NVIDIA Container Toolkit - -[![GitHub license](https://img.shields.io/github/license/NVIDIA/nvidia-docker?style=flat-square)](https://raw.githubusercontent.com/NVIDIA/nvidia-docker/main/LICENSE) - -**NOTE:** The `nvidia-docker2` package that is generated by this repository is a meta -package that only serves to introduce a dependency on `nvidia-container-toolkit` -package which includes all the components of the [NVIDIA Container Toolkit](https://github.com/NVIDIA/nvidia-container-toolkit). - -The `nvidia-docker` wrapper script that was included in this repository is no -longer included in the package and a configuration specific to the target -container engine (e.g. Docker, Containerd, Cri-o, or Podman) is suggested -instead. - -For Docker users specifically, the NVIDIA Container Toolkit CLI (`nvidia-ctk`) -includes functionality to ensure that the `nvidia` runtime has been registered -with the Docker daemon. Installing the NVIDIA Container Toolkit and running: -``` -sudo nvidia-ctk runtime configure -``` -will load (or create) an `/etc/docker/daemon.json` file and ensure that the -NVIDIA Container Runtime is configured as a runtime named `nvidia`. - -Restarting the Docker daemon is required for this to take affect. - -For further instructions, see the NVIDIA Container Toolkit [documentation](https://docs.nvidia.com/datacenter/cloud-native/container-toolkit) -and specifically the [user guide](https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/user-guide.html). - -## Issues and Contributing - -[Checkout the Contributing document!](CONTRIBUTING.md) - -* Please let us know by [filing a new issue](https://github.com/NVIDIA/nvidia-container-toolkit/issues/new) against the `nvidia-container-toolkit` repository. -* You can contribute by opening a [merge request](https://gitlab.com/nvidia/container-toolkit/container-toolkit/-/merge_requests) diff --git a/third_party/nvidia-docker/debian/changelog.old b/third_party/nvidia-docker/debian/changelog.old deleted file mode 100644 index 6bb6cb73..00000000 --- a/third_party/nvidia-docker/debian/changelog.old +++ /dev/null @@ -1,63 +0,0 @@ -# Note: as of 2.7.0-1 this file is no longer updated, with a changelog -# entry for a given release generated as part of the packaging step. - -nvidia-docker2 (2.7.0-1) UNRELEASED; urgency=medium - - * Promote 2.7.0~rc.3-1 to 2.7.0-1 - - -- NVIDIA CORPORATION Wed, 17 Nov 2021 09:25:15 +0100 - -nvidia-docker2 (2.7.0~rc.3-1) UNRELEASED; urgency=medium - - -- NVIDIA CORPORATION Mon, 08 Nov 2021 14:54:46 +0100 - -nvidia-docker2 (2.7.0~rc.2-1) UNRELEASED; urgency=medium - - * Allow the toolkit version to be specified as a variable - - -- NVIDIA CORPORATION Thu, 04 Nov 2021 14:14:32 +0000 - -nvidia-docker2 (2.7.0~rc.1-1) UNRELEASED; urgency=medium - - * Add AARCH64 package for Amazon Linux 2 - * [BUILD] Allow for TAG to be specified in Makfile to match other projects - * Replace nvidia-container-runtime dependence with nvidia-container-toolit > 1.5.1 - - -- NVIDIA CORPORATION Thu, 29 Apr 2021 05:25:25 +0000 - -nvidia-docker2 (2.6.0-1) UNRELEASED; urgency=medium - - * Add dependence on nvidia-container-runtime >= 3.5.0 - * Add Jenkinsfile for building packages - - -- NVIDIA CORPORATION Thu, 29 Apr 2021 05:25:25 +0000 - -nvidia-docker2 (2.5.0-1) UNRELEASED; urgency=medium - - * Bump version to v2.5.0 - * Add dependence on nvidia-container-runtime >= 3.4.0 - * Update readme to point to the official documentatio - * Add %config directive to daemon.json for RPM installations - - -- NVIDIA CORPORATION Wed, 16 Sep 2020 13:55:52 +0000 - -nvidia-docker2 (2.4.0-1) UNRELEASED; urgency=medium - - * 09a01276 Update package license to match source license - * b9c70155 Update dependence on nvidia-container-runtime to 3.3.0 - - -- NVIDIA CORPORATION Wed, 08 Jul 2020 20:33:10 +0000 - -nvidia-docker2 (2.3.0-1) UNRELEASED; urgency=medium - - * 0d3b049a Update build system to support multi-arch builds - * 8557216d Require new MIG changes - - -- NVIDIA CORPORATION Fri, 15 May 2020 12:04:57 +0000 - -nvidia-docker2 (2.2.2-1) UNRELEASED; urgency=medium - - * 2e9f20b Improve pass-through of docker arguments - * 4edca2f Pave the way for a hypothetical transitional package from v1 - - -- NVIDIA CORPORATION Wed, 07 Mar 2018 04:06:38 +0000 diff --git a/third_party/nvidia-docker/debian/compat b/third_party/nvidia-docker/debian/compat deleted file mode 100644 index ec635144..00000000 --- a/third_party/nvidia-docker/debian/compat +++ /dev/null @@ -1 +0,0 @@ -9 diff --git a/third_party/nvidia-docker/debian/control b/third_party/nvidia-docker/debian/control deleted file mode 100644 index fbc83528..00000000 --- a/third_party/nvidia-docker/debian/control +++ /dev/null @@ -1,23 +0,0 @@ -Source: nvidia-docker2 -Section: @SECTION@utils -Priority: optional -Maintainer: NVIDIA CORPORATION -Standards-Version: 3.9.8 -Homepage: https://github.com/NVIDIA/nvidia-docker/wiki -Vcs-Git: https://github.com/NVIDIA/nvidia-docker -Vcs-Browser: https://github.com/NVIDIA/nvidia-docker -Build-Depends: debhelper (>= 9) - -Package: nvidia-docker2 -Architecture: all -Breaks: nvidia-docker (<< 2.0.0) -Replaces: nvidia-docker (<< 2.0.0) -Depends: ${misc:Depends}, nvidia-container-toolkit (>= @TOOLKIT_VERSION@) -Description: NVIDIA Container Toolkit meta-package - A meta-package that allows installation flows expecting the nvidia-docker2 - to be migrated to installing the NVIDIA Container Toolkit packages directly. - The wrapper script provided in earlier versions of this package should be - considered deprecated. - The nvidia-container-toolkit-base package provides an nvidia-ctk CLI that can be - used to update the docker config in-place to allow for the NVIDIA Container - Runtime to be used. diff --git a/third_party/nvidia-docker/debian/copyright b/third_party/nvidia-docker/debian/copyright deleted file mode 100644 index cce5de53..00000000 --- a/third_party/nvidia-docker/debian/copyright +++ /dev/null @@ -1,185 +0,0 @@ -Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ -Upstream-Name: nvidia-docker2 -Source: https://github.com/NVIDIA/nvidia-docker - -Files: * -Copyright: 2017-2020 NVIDIA CORPORATION -License: Apache-2.0 - -License: Apache-2.0 - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS diff --git a/third_party/nvidia-docker/debian/nvidia-docker2.lintian-overrides b/third_party/nvidia-docker/debian/nvidia-docker2.lintian-overrides deleted file mode 100644 index 52373fbc..00000000 --- a/third_party/nvidia-docker/debian/nvidia-docker2.lintian-overrides +++ /dev/null @@ -1,2 +0,0 @@ -new-package-should-close-itp-bug -binary-without-manpage diff --git a/third_party/nvidia-docker/debian/prepare b/third_party/nvidia-docker/debian/prepare deleted file mode 100755 index a28095e1..00000000 --- a/third_party/nvidia-docker/debian/prepare +++ /dev/null @@ -1,5 +0,0 @@ -#! /bin/sh - -set -e - -sed -i "s;@SECTION@;${SECTION:+$SECTION/};g" debian/control diff --git a/third_party/nvidia-docker/debian/rules b/third_party/nvidia-docker/debian/rules deleted file mode 100755 index f3908b29..00000000 --- a/third_party/nvidia-docker/debian/rules +++ /dev/null @@ -1,7 +0,0 @@ -#!/usr/bin/make -f -# -*- makefile -*- - -#export DH_VERBOSE=1 - -%: - dh $@ diff --git a/third_party/nvidia-docker/docker/Dockerfile.deb b/third_party/nvidia-docker/docker/Dockerfile.deb deleted file mode 100644 index 0359e908..00000000 --- a/third_party/nvidia-docker/docker/Dockerfile.deb +++ /dev/null @@ -1,45 +0,0 @@ -ARG BASEIMAGE -FROM ${BASEIMAGE} - -# packaging dependencies -ENV DEBIAN_FRONTEND=noninteractive -RUN apt-get update && apt-get install -y --no-install-recommends \ - dh-make \ - fakeroot \ - build-essential \ - devscripts \ - lsb-release && \ - rm -rf /var/lib/apt/lists/* - -# packaging -ARG PKG_NAME -ARG PKG_VERS -ARG PKG_REV -ARG TOOLKIT_VERSION -ARG DOCKER_VERSION - -ENV DEBFULLNAME "NVIDIA CORPORATION" -ENV DEBEMAIL "cudatools@nvidia.com" -ENV PKG_NAME "${PKG_NAME}" -ENV REVISION "$PKG_VERS-$PKG_REV" -ENV DOCKER_VERSION $DOCKER_VERSION -ENV TOOLKIT_VERSION $TOOLKIT_VERSION -ENV SECTION "" - -# output directory -ENV DIST_DIR=/tmp/${PKG_NAME}-$PKG_VERS -RUN mkdir -p $DIST_DIR /dist - -WORKDIR $DIST_DIR -COPY debian ./debian - -RUN sed -i "s;@TOOLKIT_VERSION@;${TOOLKIT_VERSION};" debian/control && \ - dch --create --package="${PKG_NAME}" \ - --newversion "${REVISION}" \ - "Bump nvidia-container-toolkit dependency to ${TOOLKIT_VERSION}" && \ - dch -r "" && \ - if [ "$REVISION" != "$(dpkg-parsechangelog --show-field=Version)" ]; then exit 1; fi - -CMD export DISTRIB="$(lsb_release -cs)" && \ - debuild --preserve-env --dpkg-buildpackage-hook='sh debian/prepare' -i -us -uc -b && \ - mv /tmp/*.deb /dist diff --git a/third_party/nvidia-docker/docker/Dockerfile.rpm b/third_party/nvidia-docker/docker/Dockerfile.rpm deleted file mode 100644 index ade7a02d..00000000 --- a/third_party/nvidia-docker/docker/Dockerfile.rpm +++ /dev/null @@ -1,36 +0,0 @@ -ARG BASEIMAGE -FROM ${BASEIMAGE} - -# packaging dependencies -RUN yum install -y \ - rpm-build && \ - rm -rf /var/cache/yum/* - -# packaging -ARG PKG_NAME -ARG PKG_VERS -ARG PKG_REV -ARG TOOLKIT_VERSION -ARG DOCKER_VERSION - -ENV PKG_NAME "${PKG_NAME}" -ENV VERSION $PKG_VERS -ENV RELEASE $PKG_REV -ENV DOCKER_VERSION $DOCKER_VERSION -ENV TOOLKIT_VERSION $TOOLKIT_VERSION - -# output directory -ENV DIST_DIR=/tmp/${PKG_NAME}-$PKG_VERS/SOURCES -RUN mkdir -p $DIST_DIR /dist - -WORKDIR $DIST_DIR/.. -COPY rpm . - -CMD rpmbuild --clean -bb \ - -D "_topdir $PWD" \ - -D "release_date $(date +'%a %b %d %Y')" \ - -D "version $VERSION" \ - -D "release $RELEASE" \ - -D "toolkit_version $TOOLKIT_VERSION" \ - SPECS/nvidia-docker2.spec && \ - mv RPMS/noarch/*.rpm /dist diff --git a/third_party/nvidia-docker/docker/docker.mk b/third_party/nvidia-docker/docker/docker.mk deleted file mode 100644 index cf482039..00000000 --- a/third_party/nvidia-docker/docker/docker.mk +++ /dev/null @@ -1,77 +0,0 @@ -# Copyright (c) 2021, NVIDIA CORPORATION. All rights reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -DOCKER ?= docker -MKDIR ?= mkdir -DIST_DIR ?= $(CURDIR)/dist - -# Supported packaging formats -FORMAT_TARGETS := deb rpm - -# We add utility targets to support common os-arch combinations by mapping to the required format targets. -DEB_TARGETS := debian10-amd64 ubuntu18.04-amd64 ubuntu18.04-arm64 ubuntu18.04-ppc64le -RPM_TARGETS := amazonlinux2-aarch64 amazonlinux2-x86_64 centos7-x86_64 centos8-aarch64 centos8-ppc64le centos8-x86_64 opensuse-leap15.1-x86_64 - -$(DEB_TARGETS): %: deb -$(RPM_TARGETS): %: rpm - -# Define top-level build targets -docker%: SHELL:=/bin/bash - -$(FORMAT_TARGETS): %: --% - -# Default variables for all private '--' targets below. -# One private target is defined for each OS we support. ---%: FORMAT = $(*) ---%: BUILDIMAGE = nvidia/$(LIB_NAME)/$(FORMAT)-all ---%: DOCKERFILE = $(CURDIR)/docker/Dockerfile.$(FORMAT) ---%: ARTIFACTS_DIR = $(DIST_DIR)/$(FORMAT)/all ---%: docker-build-% - @ - -PKG_VERS = $(LIB_VERSION)$(if $(LIB_TAG),~$(LIB_TAG)) -PKG_REV = 1 -MIN_TOOLKIT_PKG_VERSION = $(TOOLKIT_VERSION)$(if $(TOOLKIT_TAG),~$(TOOLKIT_TAG))-1 - ---deb: BASEIMAGE := ubuntu:18.04 - ---rpm: BASEIMAGE := quay.io/centos/centos:stream8 - -docker-build-%: - @echo "Building $(FORMAT) packages to $(ARTIFACTS_DIR)" - docker pull $(BASEIMAGE) - DOCKER_BUILDKIT=1 \ - $(DOCKER) build \ - --progress=plain \ - --build-arg BASEIMAGE="$(BASEIMAGE)" \ - --build-arg TOOLKIT_VERSION="$(MIN_TOOLKIT_PKG_VERSION)" \ - --build-arg PKG_NAME="$(LIB_NAME)" \ - --build-arg PKG_VERS="$(PKG_VERS)" \ - --build-arg PKG_REV="$(PKG_REV)" \ - --tag $(BUILDIMAGE) \ - --file $(DOCKERFILE) . - $(DOCKER) run \ - -e DISTRIB \ - -e SECTION \ - -v $(ARTIFACTS_DIR):/dist \ - $(BUILDIMAGE) - -docker-clean: - IMAGES=$$(docker images "nvidia/$(LIB_NAME)/*" --format="{{.ID}}"); \ - if [ "$${IMAGES}" != "" ]; then \ - docker rmi -f $${IMAGES}; \ - fi - -distclean: - rm -rf $(DIST_DIR) diff --git a/third_party/nvidia-docker/rpm/SOURCES/LICENSE b/third_party/nvidia-docker/rpm/SOURCES/LICENSE deleted file mode 100644 index d6456956..00000000 --- a/third_party/nvidia-docker/rpm/SOURCES/LICENSE +++ /dev/null @@ -1,202 +0,0 @@ - - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright [yyyy] [name of copyright owner] - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. diff --git a/third_party/nvidia-docker/rpm/SPECS/nvidia-docker2.spec b/third_party/nvidia-docker/rpm/SPECS/nvidia-docker2.spec deleted file mode 100644 index fac906ad..00000000 --- a/third_party/nvidia-docker/rpm/SPECS/nvidia-docker2.spec +++ /dev/null @@ -1,42 +0,0 @@ -Name: nvidia-docker2 -Version: %{version} -Release: %{release} -BuildArch: noarch -Group: Development Tools - -Vendor: NVIDIA CORPORATION -Packager: NVIDIA CORPORATION - -Summary: nvidia-docker CLI wrapper -URL: https://github.com/NVIDIA/nvidia-docker -License: ASL 2.0 - -Source0: LICENSE - -Conflicts: nvidia-docker < 2.0.0 -Requires: nvidia-container-toolkit >= %{toolkit_version} - -%description -A meta-package that allows installation flows expecting the nvidia-docker2 -to be migrated to installing the NVIDIA Container Toolkit packages directly. -The wrapper script provided in earlier versions of this package should be -considered deprecated. - -The nvidia-container-toolkit-base package provides an nvidia-ctk CLI that can be -used to update the docker config in-place to allow for the NVIDIA Container -Runtime to be used. - -%prep -cp %{SOURCE0} . - -%install - -%files -%license LICENSE - -%changelog -# As of 2.7.0-1 we generate the release information automatically -* %{release_date} NVIDIA CORPORATION %{version}-%{release} -- As of 2.7.0-1 the package changelog is generated automatically. This means that releases since 2.7.0-1 all contain this same changelog entry updated for the version being released. -- Bump nvidia-container-toolkit dependency to %{toolkit_version} -- Docker dependency to %{docker_version} diff --git a/third_party/nvidia-docker/rpm/changelog.old b/third_party/nvidia-docker/rpm/changelog.old deleted file mode 100644 index 366d848a..00000000 --- a/third_party/nvidia-docker/rpm/changelog.old +++ /dev/null @@ -1,31 +0,0 @@ -* Wed Nov 17 2021 NVIDIA CORPORATION 2.7.0-1 -- Promote 2.7.0-0.1.rc.3 to 2.7.0-1 - -* Mon Nov 08 2021 NVIDIA CORPORATION 2.7.0-0.1.rc.3 - -* Thu Nov 04 2021 NVIDIA CORPORATION 2.7.0-0.1.rc.2 -- Bump nvidia-container-toolkit dependency to %{toolkit_version} -- Allow the toolkit version to be specified as a variable - -* Mon Sep 06 2021 NVIDIA CORPORATION 2.7.0-0.1.rc.1 -- Add AARCH64 package for Amazon Linux 2 -- [BUILD] Allow for TAG to be specified in Makfile to match other projects -- Replace nvidia-container-runtime dependence with nvidia-container-toolit > 1.5.1 - -* Thu Apr 29 2021 NVIDIA CORPORATION 2.6.0-1 -- Add dependence on nvidia-container-runtime >= 3.5.0 -- Add Jenkinsfile for building packages - -* Wed Sep 16 2020 NVIDIA CORPORATION 2.5.0-1 -- Bump version to v2.5.0 -- Add dependence on nvidia-container-runtime >= 3.4.0 -- Update readme to point to the official documentatio -- Add %config directive to daemon.json for RPM installations - -* Wed Jul 08 2020 NVIDIA CORPORATION 2.4.0-1 -- 09a01276 Update package license to match source license -- b9c70155 Update dependence on nvidia-container-runtime to 3.3.0 - -* Fri May 15 2020 NVIDIA CORPORATION 2.3.0-1 -- 0d3b049a Update build system to support multi-arch builds -- 8557216d Require new MIG changes diff --git a/versions.mk b/versions.mk index 0a86da30..8f5e52d2 100644 --- a/versions.mk +++ b/versions.mk @@ -21,12 +21,6 @@ LIB_TAG := rc.4 PACKAGE_VERSION := $(LIB_VERSION)$(if $(LIB_TAG),~$(LIB_TAG)) PACKAGE_REVISION := 1 -# Specify the nvidia-docker2 and nvidia-container-runtime package versions. -# Note: The build tooling uses `LIB_TAG` above as the version tag. -# This is appended to the versions below if specified. -NVIDIA_DOCKER_VERSION := 2.14.0 -NVIDIA_CONTAINER_RUNTIME_VERSION := 3.14.0 - GOLANG_VERSION := 1.22.1 BUILDIMAGE_TAG ?= devel-go$(GOLANG_VERSION)