Re: dummy libraries for proprietary dependencies (especially NVIDIA)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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




[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Fedora Announce]     [Fedora Users]     [Fedora Kernel]     [Fedora Testing]     [Fedora Formulas]     [Fedora PHP Devel]     [Kernel Development]     [Fedora Legacy]     [Fedora Maintainers]     [Fedora Desktop]     [PAM]     [Red Hat Development]     [Gimp]     [Yosemite News]

  Powered by Linux