epiverse-trace / blueprints

Software development blueprints for epiverse-trace
https://epiverse-trace.github.io/blueprints
Other
3 stars 3 forks source link

Licensing issues #18

Open jpavlich opened 1 year ago

jpavlich commented 1 year ago

Since there are many GPL R packages, the probability to having to reuse one of them is relatively high. In fact, we have found some very useful packages that are GPL. The blueprint states that we should aim for more liberal licenses (MIT or similar). However, if we want to take advantage of all existing packages, it might be better to use GPL. For practical reasons I would prefer to go for GPL, but I would like to have an agreement on this matter: should the blueprint be changed to explicitly indicate that GPL is also an acceptable license for our packages? Or do we have compelling reasons to stay with liberal licenses and avoid using GPL packages?

Bisaloo commented 1 year ago

We've had a similar discussion back when I was in epiforecasts with @sbfnk. We didn't reach an agreement about MIT vs GPL but the slides of this discussion might be useful to anyone who is not familiar with the topic: https://hugogruson.fr/licenses_talk.

Two reactions to the initial message:

jpavlich commented 1 year ago

@Bisaloo you are right, I had a misconception about GPL. My concern was that we would be forced to use GPL if we reused GPL libraris, which I guess it's incorrect.

After digging a little deeper I found that MIT license is compatible with GPL so, to my understanding, we can use GPL libs and release our code under MIT. Am I right? If so, then we do not need to continue this discussion, as we can stick to MIT and not have any of the issues I mentioned.

Bisaloo commented 1 year ago

we can use GPL libs and release our code under MIT.

Yes, this is correct.

We would have to use GPL only if we copy / adapt code from a GPL package, or from base R itself (since R is released under the GPL v2).

If so, then we do not need to continue this discussion, as we can stick to MIT and not have any of the issues I mentioned.

Glad we clarified the absence of technical necessity to switch to GPL but I still believe this issue brings up a valid point. Even if we don't have to switch to the GPL, some people might prefer it over MIT so it's good to have a discussion :slightly_smiling_face:.

Bisaloo commented 1 year ago

Linking this here for memory. The conversation above also applies to packages LinkingTo Rcpp, as explained in the Rcpp FAQ:

1.5 What licenses can I choose for my code?

The Rcpp package is licensed under the terms of the GNU GPL 2 or later, just like R itself. A key goal of the Rcpp package is to make extending R more seamless. But by linking your code against R (as well as Rcpp), the combination is bound by the GPL as well. This is very clearly stated at the FSF website:

Linking a GPL covered work statically or dynamically with other modules is making a combined work based on the GPL covered work. Thus, the terms and conditions of the GNU General Public License cover the whole combination.

So you are free to license your work under whichever terms you find suitable (provided they are GPL-compatible, see the FSF site for details). However, the combined work will remain under the terms and conditions of the GNU General Public License. This restriction comes from both R which is GPL-licensed as well as from Rcpp and whichever other GPL-licensed components you may be linking against

https://dirk.eddelbuettel.com/code/rcpp/Rcpp-FAQ.pdf