On 2024-02-15 14:20, Andreas Beckmann wrote:
On 14/02/2024 00.37, Drew Parsons wrote:
It would be much easier to switch between versions in unstable and
experimental, or upgrade from experimental, if there were a dummy
dependency package that depends on all the manifold nvidia component
packages for the given version.  It could be called nvidia-driver-all,
for instance.  Then only the one package needs to be marked for
upgrade (or downgrade) and will bring in all the others.

Can it be done?

Yes. I'd probably call it nvidia-driver-full (as in texlive-full)
since -all could be mistaken as 'installs all (supported) driver
series'.

That sounds sensible.

And you would want hard Depends and no Recommends ?

I think it would need to be a hard Depends. Otherwise a Recommends would only activate once the first time the dependency package is installed. Since it's not mandatory, it wouldn't succeed in maintaining consistent versions when upgrading or downgrading. A Recommends (=) together with a Conflicts would not work since the versioned dependencies don't have a != operator to use with Conflicts.

Is there anything that should be excluded?

Only question I can think of for exclusion is whether cuda should be included. For sure not everyone who would want the driver upgrade would necessarily want cuda as well, in the sense that they simply aren't using cuda. So one option is make two dependency packages, nvidia-driver-full for the drivers without cuda, and nvidia-cuda-full (or just cuda-full) for the cuda components. I guess nvidia-opencl-icd (nvidia-opencl-common) might belong in nvidia-driver-full since it's kind of a "conflict of interest" to put it with cuda.

Two dependency packages like this would meet requirements fine I think. But if it's too much trouble to split them that way and you'd prefer one dependency package, then I'd suggest including the cuda packages in it.

Are there any binary packages from different source packages that
should be included as well? Mainly thinking about bits that are
included in the .run file but since source is available, we build it
from source instead. nvidia-settings, nvidia-xconfig,
nvidia-persistenced?

I don't think the dependency package would need to set external dependencies. The actual binary packages would bring these in as needed in their own Dependencies. The dependency package would just need to make sure all the nvidia package versions remain in step.

Drew

Reply via email to