The fact that libR.so is dynamically linked is irrelevant legally. It is, however, fine for RCall (or any package using a GPL library) to be released under the MIT license. The combination would be GPL.
On Fri, Jan 2, 2015 at 6:13 PM, Douglas Bates <[email protected]> wrote: > I'm okay with not reading the Rif.jl sources as I think I have most of the > capabilities covered. Well, I have the tryEval working and can manually > construct function calls but I still need to write the piece that parses R > code. > > I think I should be okay with using the R API and still keeping RCall.jl > under an MIT license. The API is documented in some of the R manuals. The > RCall package requires that R be installed separately if it is to be used. > Obviously the package dlopen's libR.so but that seems sufficiently > arms-length not to require releasing RCall.jl under the GPL. > > On Friday, January 2, 2015 4:03:27 PM UTC-6, Stefan Karpinski wrote: >> >> You can combine GPL and proprietary software as long as you don't >> redistribute the combination. If a single derived work combining GPL and >> proprietary code is distributed, that voids the GPL license, leaving the >> distributor and recipient of the derived work without a valid license for >> the GPL code, leaving them open to legal action by the copyright holders of >> the GPL code. >> >> On Fri, Jan 2, 2015 at 4:54 PM, Simon Kornblith <[email protected]> >> wrote: >> >>> On Friday, January 2, 2015 2:59:04 PM UTC-5, Douglas Bates wrote: >>>> >>>> For many statistics-oriented Julia users there is a great advantage in >>>> being able to piggy-back on R development and to use at least the data sets >>>> from R packages. Hence the RDatasets package and the read_rda function in >>>> the DataFrames package for reading saved R data. >>>> >>>> Over the last couple of days I have been experimenting with running an >>>> embedded R within Julia and calling R functions from Julia. This is similar >>>> in scope to the Rif package except that this code is written in Julia and >>>> not as a set of wrapper functions written in C. The R API is a C API and, >>>> in some ways, very simple. Everything in R is represented as a "symbolic >>>> expression" or SEXPREC and passed around as pointers to such expressions >>>> (called an SEXP type). Most functions take one or more SEXP values as >>>> arguments and return an SEXP. >>>> >>>> I have avoided reading the code for Rif for two reasons: >>>> 1. It is GPL3 licensed >>>> 2. I already know a fair bit of the R API and where to find API >>>> function signatures. >>>> >>> >>> AFAICT, Rif.jl is GPLv2+. I'm not sure how much a less restrictive >>> license helps here. My understanding is that, because R is GPLv2+, code >>> that links against it must be redistributed under GPLv2+ or a less >>> restrictive license, i.e., while it would be legal to redistribute code >>> that uses either Rif.jl or RCall.jl under GPLv2+ or MIT, neither could be >>> used in closed source software. >>> >>> Simon >>> >> >>
