On Tue, Aug 11, 2020 at 03:11:03PM +0100, Dave Love wrote: > Is there the possibility of building packages with dummy shims for > proprietary dynamic libraries that could be substituted at runtime > (i.e. a package BRs dummy-libthing-devel, and dynamic linker paths > provide the nasty real libthing at runtime)? Obviously there are > potential technical and legal issues involved. I'm interested in > packages which are useful without the proprietary bits (such as parallel > performance tools with multiple targets or computational programs that > otherwise run on the CPU). > > I'm thinking specifically about CUDA and NVIDIA management and > performance stuff, but also more generally. Unfortunately, at least > until AMD GGPUs get well established, NVIDIA support is pretty much de > rigeur in HPC and machine learning application (if that isn't an HPC > subset). I thought about offload in libgomp as an example, but I found > what's involved difficult to follow; it's not immediately clear to me > what interfaces are used, and how. > > I suppose the first question is whether dummy libcuda etc. already > exists that could be used for packaging. I've looked without luck, but > maybe someone here knows. nbdkit provides a plugin[1] that uses VDDK if available. VDDK is a proprietary library with a poisonous license, exactly like the sort of thing you describe. The way it works is to dlopen the library and call the APIs via dlsym. This is hidden somewhat nicely so the plugin[2] looks like it's just calling the functions directly, but in fact it calls them through a function pointer indirection. Depending on how extreme your performance requirements are this might not be suitable, but for VDDK it's fine. There's essentially no packaging requirement at all. nbdkit RPM doesn't contain any proprietary code, doesn't depend on VDDK either at compile or run time, no dummy library is needed, etc. > Second, is the legal position on producing such a thing from header > information clear? I guess that would be a question for the legal > list, but I've failed to get mail to that in the past, and I guess > the answer is generally known. Thanks. You'll need to ask a lawyer (or Fedora legal list) but header files that simply describe APIs are not normally regarded as copyrightable, certain unusual and hopefully temporary judgements in the USA not withstanding. Rich. [1] https://libguestfs.org/nbdkit-vddk-plugin.1.html [2] https://github.com/libguestfs/nbdkit/tree/master/plugins/vddk -- Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones Read my programming and virtualization blog: http://rwmj.wordpress.com virt-p2v converts physical machines to virtual machines. Boot with a live CD or over the network (PXE) and turn machines into KVM guests. http://libguestfs.org/virt-v2v _______________________________________________ devel mailing list -- devel@xxxxxxxxxxxxxxxxxxxxxxx To unsubscribe send an email to devel-leave@xxxxxxxxxxxxxxxxxxxxxxx Fedora Code of Conduct: https://docs.fedoraproject.org/en-US/project/code-of-conduct/ List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines List Archives: https://lists.fedoraproject.org/archives/list/devel@xxxxxxxxxxxxxxxxxxxxxxx