nvidia: add support module with known nvidia libraries and globs
Test data contains a list of shared objects from numerous nvidia drivers, spanning Ubuntu 18.04 to 22.04, with data from driver 390, 470, 510, 515, 525, 530, 535, 545 and 550.
Go unit tests verify that each glob, matches at least one library stored in test data, and that each library is matched by at least one glob. The only exception is globs corresponding to libglvndr, which are not present in the driver libraries.
Jira: https://warthogs.atlassian.net/browse/SNAPDENG-26663
Please use the files from https://github.com/canonical/snapd/pull/14295
I need to merge the .libs list from #14295 and make it work in a way that handles both spread and go. @ernestl if you merge #14295 I will pick this up after the break.
We now have a number of "stray" patterns that can be classified into three groups:
- stuff from ancient drivers that are not supported anywhere anymore
- stuff from cuda-derived libraries that is never installed into the right location (
/usr/lib/x86_64-linux-gnu/) and doesn't really do anything in practice - probably added without testing - stuff specific to tegra (needs extrator, .libs file)
I think the best way forward is to add an exception list of unverified patterns and file a follow-up task to try to reduce this list. That task is now filed as https://warthogs.atlassian.net/browse/SNAPDENG-31358
Based on feedback from @zyga, removing this from milestone 2.67.
A quick review with @pedronis resulted in a suggestion to keep all patterns but mark them as exceptions to review later.
The PR restores original changes from #14293 which was merged prematurely and then reverted in #14298