[R] licensing of R packages

Berwin A Turlach berwin at maths.uwa.edu.au
Fri Nov 14 18:07:37 CET 2008

G'day Duncan,

On Fri, 14 Nov 2008 11:16:35 -0500
Duncan Murdoch <murdoch at stats.uwo.ca> wrote:

> On 11/14/2008 11:01 AM, Berwin A Turlach wrote:
> > But I remember that a situation as you describe was hotly debated on
> > gnu.misc.discuss in the mid-90s; thus, I am talking obviously GPL 2.
> > Unfortunately I do not remember which software/company was involved
> > and how the dispute was solved.  But they did something like you
> > described:  distributed a binary and asked the user to download
> > additionally some GPL software and then run both together.  If this
> > were allowed, the GPL would have a hole in it that you could drive a
> > truck through. :)
> If the binary being released had no GPL content in it, then there
> would be no basis to complain about anything.  I'd guess that the
> particular case required GPL'd headers in order to compile.  That
> would be enough to say that the binary includes GPL'd code.

I am not so sure about whether it is is a matter of including GPL'd
headers.  After all, if I just want to call some functions from a
library libXXX and I know what the arguments of those function is, then
I could write their prototypes into my own non-GPL'd headers.

The question is really, does the software that I distribute work only
if it is dynamically linked against libXXX and are there several
implementations of the functionality that I need from libXXX? If the
only implementation of libXXX is a GPL'd one, then my software is a
derivative work of it.  When I compiled it, I must have had the GPL
version of libXXX on my system.

To be more specific, looking at my Debian system, I can see that 
/usr/lib/libXXX might link to /etc/alternatives/libXXX
and /etc/alternatives/libXXX links to the actual version, which could
be a commercial library, a GPL'd one or one under some other
open-software licence. If there are several alternatives for libXXX (for
the functions that I need), then there is no way of telling what I have
on my system and what I used when I created my binary which is linked
to /usr/lib/libXXX.  So I can give my binary to others and tell them
that they have to get a version of /usr/lib/libXXX; and that one option
would be to install the GPL'd version obtainable from XYZ.

But if the only library that implements the functionality that my
program needs is a GPL'd version, then it is pretty clear
that /etc/alternatives/libXXX on my machine (if the /etc/alternatives
set up is used at all) must point to the GPL'd libXXX.  Thus, when I
created the binary, I created a derivative work of libXXX, whether I
used its GPL'd headers or not.

But I guess I should continue to say that IANAL. :)


PS:  Hope I managed again to not getting the flame-thrower started. :)

More information about the R-help mailing list