Tom Quarendon
2010-Aug-06 08:23 UTC
[R] Is R GPL or LGPL (or can I write a commercial front end to R)?
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'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]]
Duncan Murdoch
2010-Aug-06 10:46 UTC
[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. >