[R] Is R GPL or LGPL (or can I write a commercial front end to R)?

Duncan Murdoch murdoch.duncan at gmail.com
Fri Aug 6 13:16:19 CEST 2010


Tom Quarendon wrote:
> I think you're misunderstanding me, or I am you.
> I'm not wanting to change the license under which R is distributed (though if it is dual licensed to anybody already that would be interesting), simply trying to understand the intention of the license grant. It is clearly stated that it is the intention that you be able to write a addon package and release it under a non-GPL license. I think I understand the effect of the GPL and LGPL (or at least I have my opinion) as it pertains to R, and as far as I understand GPL and LGPL I don't see it allows the intended grant of being able to link to R.dll to write an add-on package and release that package as non-GPL.
> Also, as you say, there are potentially many copyright holders to consider. The R foundation holds the copyright of all of the R source code, 

No, that's not true.  You need to look at the copyright statements in 
each individual file to know who the copyright holder is for that file.  
In some cases the R Foundation is the copyright holder, but more often 
it is not.  For example, if I grep for Copyright in the main source 
directory, I see a lot of different lines, including these:

RNG.c: *  Copyright (C) 1995, 1996  Robert Gentleman and Ross Ihaka
RNG.c: *  Copyright (C) 1997--2007  The R Development Core Team
RNG.c:   Copyright (C) 1997, 1999 Makoto Matsumoto and Takuji Nishimura.

R does not request copyright transfer, only GPL licensing from the 
copyright holder.  This makes it really impractical to ask what the 
intentions are:  there are just too many people involved.  I can tell 
you that I wouldn't object to what you are proposing, but I can't speak 
for Robert or Ross or Makoto or Takuji or the rest of the Core team or 
the other copyright holders of other files.

Duncan Murdoch

> but there may be other third party libraries that are included as part of R (for example there might be a math library somewhere, or a graphics library -- don't know, just examples I can think of), and the license to those will matter with respect to whether R.dll could ever be released under LGPL. But beyond that, at some level it isn't the license that matters but the intention. If the intention is to allow something, then the R foundation won't sue even if the letter of the license prohibits it (clearly they could change their minds, but you know what I mean).
> So, as I say, I'm not after legal opinion, simply what the intention of the foundation is, or the commonly understood intention. I believe that there are commercial products that do exactly what I was describing (I believe that there are commercial products, not GPL licensed, that operate as front ends to R, using the invocation API, and not just invoking the R executable), so at least someone somewhere thinks it's OK. Since the mailing list is the only communication channel I'm aware of I'm using it. If you think there's a more appropriate communication channel, then I'll use it.
>
>
> -----Original Message-----
> From: Duncan Murdoch [mailto:murdoch.duncan at gmail.com]
> Sent: 06 August 2010 11:47
> To: Tom Quarendon
> Cc: r-help at r-project.org
> Subject: Re: [R] Is R GPL or LGPL (or can I write a commercial front end to R)?
>
> Tom Quarendon wrote:
>   
>> Note I'm not asking for any legal advice here obviously, simply what the intention of the R foundation is with regard to allowing commercial connection to R.
>>
>>     
>
> I can't speak for the R Foundation, but I can say that its intentions
> aren't all you have to consider.  R has many copyright owners.  You need
> to get permission from all of them if you want a special license, so the
> easiest thing is to stay with a GPL v2 compatible license.  If you don't
> want to do that, then you could go ahead with some other license and see
> what happens, but it might not be until your project becomes popular
> that someone decides to take action.  So in the latter case I'd get a
> legal opinion, not a mailing list opinion, before I invested a lot of
> time or money.
>
> Duncan Murdoch
>
>   
>> I've looked at various threads on the r-devel archive and it looks like this may have been discussed before, but as far as could tell, not to any great resolution, and not, it seems, specifically covering this angle.
>>
>>
>>
>> In the doc\COPYRIGHTS file it is made clear that the intention is that you can write R packages that include functions implemented in C (and hence are provided in native libraries linked to R.dll) and distribute them under licenses not compatible with GPL. This was achieved by making the relevant header files available under the LGPL. This was an explicit change that was made in February 2001, and the intention was to allow for DLLs that require the API header files for compilation and are linked against R.dll to not be "infected" with the GPL.
>>
>> However the Rembedded.h header file isn't included in the list in the doc\COPYRIGHTS file, and the copyright statement in the Rembedded.h header file lists the GPL and not the LGPL as the relevant license.  So it doesn't look like it was the intention to allow that I be able to use the R invocation API to launch R and embed it in a product (such as a new GUI, or other such integration) and ship that product under a license not compatible with GPL. Is this correct? Or is it the intention that I be able to write a commercial front-end of some kind for R?
>>
>>
>>
>> My understanding of LGPL is that ALL of the source files that go into R.dll (and indeed all libraries that R.dll itself linked to, apart from those covered by the GPL system library exception) would need to be released under LGPL in order to allow me to link to R.dll and not have my program subject to GPL. If that weren't the situation then I could take a library covered by GPL, write a different interface to it, put LGPL on those headers compile up a new DLL and I've then got LGPL access to a library previously released under GPL, which can't be the intention, otherwise LGPL would drive a coach and horses through GPL. This would apply to native libraries (dlls) providing functions in addon packages too, and so hence I'm not sure I necessarily understand how simply putting LGPL on the header files is sufficient to achieve the intention.
>>
>>
>>
>> There is provision in the GPL license (it's mentioned in the FAQ) for providing for linking to a GPL library through one specific interface by providing specific exception text in the copyright header in all of the files that make up the library. That would only be possible if the copyright holders of all relevant GPL code agreed to that, as that would be an extra grant to the license. So if R linked to any third party GPL code, this wouldn't be possible I don't think.
>>
>> So I guess the question here is what the intention is of the R foundation with respect to the limitations or freedoms that they are intending to allow. After all, as the copyright owners they aren't going to sue if a use falls within their intention, even if on a strict interpretation of the license such use wouldn't be allowed.
>>
>>
>>
>> So it seems to be the intention that I can write a DLL to provide R functions in an add on package, which requires linkage to R.dll. Not convinced that the license it set up right to cover that, but that appears to be the intention. Question is whether at the other end, at the invocation API end, whether it is the intention to be able to use the invocation API and link to R.dll without my program being subjected to GPL.
>>
>>
>>
>> Note that I'm not talking here about anything to do with code written in the language of R. This is purely concerned with treating R as a library with an interface and wanting to link to that interface and whether the intention or the actuality of the license allow that.
>>
>>
>>
>> Thanks!
>>
>>
>>
>>
>>       [[alternative HTML version deleted]]
>>
>> ______________________________________________
>> R-help at r-project.org mailing list
>> https://stat.ethz.ch/mailman/listinfo/r-help
>> PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
>> and provide commented, minimal, self-contained, reproducible code.
>>
>>     
>
>
>
>
> __________ Information from ESET NOD32 Antivirus, version of virus signature database 5346 (20100806) __________
>
> The message was checked by ESET NOD32 Antivirus.
>
> http://www.eset.com
>
>
>
> __________ Information from ESET NOD32 Antivirus, version of virus signature database 5346 (20100806) __________
>
> The message was checked by ESET NOD32 Antivirus.
>
> http://www.eset.com
>
>



More information about the R-help mailing list