Re: [R] licensing of R packages

From: Berwin A Turlach <>
Date: Sat, 15 Nov 2008 01:07:37 +0800

G'day Duncan,

On Fri, 14 Nov 2008 11:16:35 -0500
Duncan Murdoch <> 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. :) mailing list PLEASE do read the posting guide and provide commented, minimal, self-contained, reproducible code. Received on Fri 14 Nov 2008 - 17:09:25 GMT

Archive maintained by Robert King, hosted by the discipline of statistics at the University of Newcastle, Australia.
Archive generated by hypermail 2.2.0, at Fri 14 Nov 2008 - 17:30:25 GMT.

Mailing list information is available at Please read the posting guide before posting to the list.

list of date sections of archive