Forum OpenACS Q&A: offtopic: Postgres and R license questions - GPL, BSD, LGPL

Request notifications

In another thread, I just mentioned that Joe Conway is releasing PL/R, which embeds R as procedural language inside Postgres.

Now, R is licensed under the GPL, while PostgreSQL uses the BSD license, and it seems that the Postgres developers don't want any GPL code in the Postgres sources. But at the same time, they think it'd be pain in the neck to support any procedural language like PL/R that isn't in the main Postgres source tree, so they'd like Joe to release PL/R under a BSD license. (And perhaps LGPL would be ok as well, I'm not clear on that.)

Since PL/R uses libR, Joe can't release PL/R under BSD unless libR is also under BSD or (I think) LGPL, rather than GPL.

But from the /usr/lib/R/COPYRIGHTS distributed with Debian's R package, it sounds like R distributes only various *.h files under LGPL, and everything else is purposely under GPL. (See the excerpt below.)

And Joe says:

Unfortunately it doesn't appear that any of the core R developers want to (or are willing to, or willing to take the time to) give me even a simple yes-or-no to my question regarding libR and LGPL-vs-GPL. I very much want to see PL/R become added to the PostgreSQL source tree, but that won't happen if I have to GPL my code.

So, does anyone have any good suggestions on different ways this Postgres vs. R licensing snafu could be resolved? It seems that Joe just wants to be able to release PL/R and get it included in the PostgreSQL source tree.

Excerpt from /usr/lib/R/COPYRIGHTS:

The public header files and import libraries are distributed under the
more permissive terms of the file COPYING.LIB.  This applies only to
the files

src/include/R.h
src/include/Rdefines.h
src/include/Rgraphics.h
src/include/Rinternals.h
src/include/Rmath.h
src/include/S.h
src/include/R_ext/*.h
src/gnuwin32/R.exp (a generated file in binary distributions only)
src/main/R.exp,  generated by tools/ldAIX4 whilst building R on AIX.

From the announcement of the change (2001-Feb-05)

    It came to our attention that some projects are interpreting GPL to
    mean that compiling against the header files or linking against a
    Windows import library brings the compiled code under the scope of
    GPL.  This would mean it would be impossible to distribute binary
    versions of non-GPL packages with compiled code which called entry
    points in the R executable or DLL, of which there are many on CRAN.

    We encourage packages to be distributed under Open Source conditions,
    but accept that this is not possible for some contributions.  Our
    intention is that export files and import libraries be `accessors'
    under clause 5 of the LGPL, so that in most cases no (additional)
    restrictions are imposed by compiling a package using the LGPL-ed
    components of R.

    To avoid any anomalies, the versions of the same files in R versions
    1.0.0 to 1.2.1 may also be used under LGPL or GPL.