I think all nvidia-opencl-icd-* packages should Provides, Conflicts and Replaces on a new virtual package (e.g. nvidia-opencl-icd) to prevent them from overwriting each other. Similarly, the nvidia-*-uvm packages as well.
Package: #OPENCLICD#
Architecture: i386 amd64
Depends: ${shlibs:Depends}, ${misc:Depends}, ocl-icd-libopencl1 | #LIBOPENCL1#
Enhances: libopencl1
-Provides: opencl-icd
+Conflicts: nvidia-opencl-icd
+Replaces: nvidia-opencl-icd
+Provides: nvidia-opencl-icd, opencl-icd
Description: NVIDIA OpenCL ICD
OpenCL (Open Computing Language) is a multivendor open standard for
general-purpose parallel programming of heterogeneous systems that include
I think all nvidia-opencl-icd-* packages should Provides, Conflicts and Replaces on a new virtual package (e.g. nvidia-opencl-icd) to prevent them from overwriting each other. Similarly, the nvidia-*-uvm packages as well.
Package: #OPENCLICD#
Architecture: i386 amd64
Depends: ${shlibs:Depends}, ${misc:Depends}, ocl-icd-libopencl1 | #LIBOPENCL1#
Enhances: libopencl1
-Provides: opencl-icd
+Conflicts: nvidia-opencl-icd
+Replaces: nvidia-opencl-icd
+Provides: nvidia-opencl-icd, opencl-icd
Description: NVIDIA OpenCL ICD
OpenCL (Open Computing Language) is a multivendor open standard for
general-purpose parallel programming of heterogeneous systems that include
Package: #DRIVERUVMNAME#
Architecture: i386 amd64 armhf
Depends: ${misc:Depends}, #DRIVERNAME# (>= #VERSION#)
+Conflicts: nvidia-uvm
+Replaces: nvidia-uvm
+Provides: nvidia-uvm
Description: NVIDIA Unified Memory kernel module
This package contains the NVIDIA Unified Memory kernel module.