nvidia-docker/build/rpm/SPECS/nvidia-docker.spec
2017-03-02 18:15:33 -08:00

129 lines
4.3 KiB
RPMSpec

Name: %{name}
Version: %{version}
Release: %{revision}
BuildArch: %{architecture}
Group: Development Tools
Vendor: %{vendor}
Packager: %{vendor} <%{email}>
Summary: NVIDIA Docker container tools
URL: https://github.com/NVIDIA/nvidia-docker
License: BSD
Source0: %{name}_%{version}_%{architecture}.tar.xz
Source1: %{name}.service
Source2: LICENSE
%{?systemd_requires}
BuildRequires: systemd
Requires: libcap
%define nvidia_docker_user %{name}
%define nvidia_docker_driver %{name}
%define nvidia_docker_root /var/lib/nvidia-docker
%description
NVIDIA Docker provides utilities to extend the Docker CLI allowing users
to build and run GPU applications as lightweight containers.
%prep
%autosetup -n %{name}
cp %{SOURCE1} %{SOURCE2} .
%install
mkdir -p %{buildroot}%{_bindir}
mkdir -p %{buildroot}%{_unitdir}
mkdir -p %{buildroot}%{nvidia_docker_root}
install -m 755 -t %{buildroot}%{_bindir} nvidia-docker
install -m 755 -t %{buildroot}%{_bindir} nvidia-docker-plugin
install -m 644 -t %{buildroot}%{_unitdir} %{name}.service
%files
%license LICENSE
%dir %{nvidia_docker_root}
%{_bindir}/*
%{_unitdir}/*
%post
if [ $1 -eq 1 ]; then
echo "Configuring user"
id -u %{nvidia_docker_user} >/dev/null 2>&1 || \
useradd -r -M -d %{nvidia_docker_root} -s /usr/sbin/nologin -c "NVIDIA Docker plugin" %{nvidia_docker_user}
fi
echo "Setting up permissions"
chown %{nvidia_docker_user}: %{nvidia_docker_root}
setcap cap_fowner+pe %{_bindir}/nvidia-docker-plugin
%systemd_post %{name}
%preun
if [ $1 -eq 0 ]; then
echo "Purging NVIDIA volumes"
docker volume ls | awk -v drv=%{nvidia_docker_driver} '{if ($1 == drv) print $2}' | xargs -r docker volume rm ||
echo "Failed to remove NVIDIA volumes, ignoring"
find %{nvidia_docker_root} ! -wholename %{nvidia_docker_root} -type d -empty -delete
fi
%systemd_preun %{name}
%postun
if [ $1 -eq 0 ]; then
id -u %{nvidia_docker_user} >/dev/null 2>&1 && \
userdel %{nvidia_docker_user}
fi
%systemd_postun_with_restart %{name}
%changelog
* Fri Mar 03 2017 NVIDIA CORPORATION <digits@nvidia.com> 1.0.1-1
- Support for Docker 17.03 including EE and CE (Closes: #323, #324)
- Load UVM unconditionally
- Fix Docker argument parsing (Closes: #295)
- Fix images pull output (Closes: #310)
* Wed Jan 18 2017 NVIDIA CORPORATION <digits@nvidia.com> 1.0.0-1
- Support for Docker 1.13
- Fix CPU affinity reporting on systems where NUMA is disabled (Closes: #198)
- Fix premature EOF in the remote API responses (Closes: #123)
- Add support for the VolumeDriver.Capabilities plugin endpoint
- Enable ppc64le library lookup (Closes: #194)
- Fix parsing of DOCKER_HOST for unix domain sockets (Closes: #119)
* Fri Jun 17 2016 NVIDIA CORPORATION <digits@nvidia.com> 1.0.0~rc.3-1
- Support for Docker 1.12
- Add volume mount options support to the nvidia package
- Export the nvidia-uvm-tools device
- Provide the libcuda.so symlink as part of the driver volume (Closes: #103)
- Use relative symlinks inside the volumes
- Disable CUDA unified memory
* Sat May 28 2016 NVIDIA CORPORATION <digits@nvidia.com> 1.0.0~rc.2-1
- Allow UUIDs to be used in NV_GPU and docker/cli RestAPI endpoint
- Change the plugin usage with version information (Closes: #90)
- Remove the volume setup command (Closes: #96)
- Add support for the Pascal architecture
* Tue May 03 2016 NVIDIA CORPORATION <digits@nvidia.com> 1.0.0~rc-1
- Add /docker/cli/json RestAPI endpoint (Closes: #39, #91)
- Fix support for Docker 1.9 (Closes: #83)
- Handle gracefully devices unsupported by NVML (Closes: #40)
- Improve error reporting
- Support for Docker 1.11 (Closes: #89, #84, #77, #73)
- Add NVIDIA Docker version output
- Improve init scripts and add support for systemd
- Query CPU affinity through sysfs instead of NVML (Closes: #65)
- Load UVM before anything else
* Mon Mar 28 2016 NVIDIA CORPORATION <digits@nvidia.com> 1.0.0~beta.3-1
- Remove driver hard dependency (NVML)
- Improve error handling and REST API output
- Support for 364 drivers
- Preventive removal of the plugin socket
* Mon Mar 07 2016 NVIDIA CORPORATION <digits@nvidia.com> 1.0.0~beta.2-1
- Support for Docker 1.10 (Closes: #46)
- Support for Docker plugin API v1.2
- Support for 361 drivers
- Add copy strategy for cross-device volumes (Closes: #47)
* Mon Feb 08 2016 NVIDIA CORPORATION <digits@nvidia.com> 1.0.0~beta-1
- Initial release (Closes: #33)