When the v590 driver informed me at reboot that my GTX-1070 Ti was no longer supported, I attempted to roll back to v580. To that end, I purged all NVIDIA driver components, then selected cuda-drivers-580 for installation, which succeeded. Upon reboot, I was again informed that v590 drivers no longer supported the GTX-1070 Ti.
Reviewing the install logs, I found that, while cuda-drivers-580 was specified, the dependent components were all v590. A quick look at the package’s dependencies revealed:
Depends: nvidia-driver (>= 580.65.06), nvidia-driver-cuda (>= 580.65.06), nvidia-kernel-dkms (>= 580.65.06), nvidia-settings (>= 580.65.06), nvidia-xconfig (>= 580.65.06)
This is insufficient; this will pick up any later version, including v590 and later (i.e. it doesn’t work like NPM or Rust/cargo versioning). Later versions that are incompatible must be explicitly excluded – something like this:
Depends: nvidia-driver (>= 580.65.06), nvidia-driver (<< 590), nvidia-driver-cuda (>= 580.65.06), nvidia-driver-cuda (<< 590), nvidia-kernel-dkms (>= 580.65.06), nvidia-kernel-dkms (<< 590), nvidia-settings (>= 580.65.06), nvidia-settings (<< 590), nvidia-xconfig (>= 580.65.06), nvidia-xconfig (<< 590)
Dependent packages should also be checked to ensure they don’t inadvertently pull in too-new components. Appropriate Breaks: and/or Conflicts: lines wouldn’t go amiss, either.