4

I have written an R package whose source code requires several libraries, whose source is therefore included in the package.

These libraries are licensed Boostv1, MIT-style, and public domain. I am happy to release my source code which ties all of this together as Boostv1, MIT, or any other such license.

However, the package as a whole must have a single, standardized FLOSS license.

The CRAN reviewers have suggested GPL-3, but this adds copyleft restrictions that none of the components individual possess.

What would be a good license for the package as a whole, and why?

  • 1
    This question got downvoted twice with no explanation on programmers.se. Thank you to the anonymous person who migrated it to the appropriate venue! It was not obvious where to ask this question. – Richard Jul 15 '16 at 17:15
  • Licensing is off topic there as far as I'm aware (always a good idea to read the help centre before you post somewhere new). Glad you ended up here! – Tim Malone Jul 15 '16 at 22:50
  • I read the help, but licensing falls into a kind of gray zone. Here is clearly an appropriate place. Finding here is a little harder :-) – Richard Jul 15 '16 at 23:03
5

I basically agree with Philippe Ombredanne's answer, but I have a slightly different take on it which would not fit in a comment to his answer.

First of all, each library needs to include its own license language. This is not just out of courtesy, it's required. The Boostv1 license looks a lot like the BSD license. Both the MIT & Boostv1 permit any use, with no redistribution requirement, so as long as you include the license language in the appropriate directories / documentation, you're good.

The license for your own code can be either more liberal or more restrictive than the included libraries. Note well: this is not the case if the libraries are using GPLv2 (in most cases) or GPLv3 (in any case).

If you're feeling generous, then you can use BSD/MIT/something similar. If not quite so generous, then GPLv2. I'm not so fond of GPLv3, but it's your choice.

Bottom line: Draw a clear line between what is covered by your license and what is covered by other licenses.

3

I would pick either Boost or MIT for my own code and the overall license of my package, selecting one vs. the other using the one that represents the largest chunk of third-party code I include.

For instance, if the embedded Boost-licensed code is 5000 lines and the MIT-licensed is 1000 lines, I would go for Boost.

My rationale is a matter of courtesy (and ethics): when I embed significant chunks of third-party code in my own projects, I tend to reuse the same license as these projects. If anything, it would allow the original author of the embedded code to eventually reuse any of my improvements in their own code, should they wish to do so.

But licensing a combination of MIT and Boostv1 code with either the MIT or Boostv1 license is alright?

Yes. I would be licensing my overall package for instance as Boost, including all my new additions. Existing code under the Boost or MIT license would stay under their original licenses and carry with them their original copyright and license texts and notices.

In your hypothetical situation, aren't you violating the MIT license by requiring that "The [MIT] copyright notice and this permission notice shall be included in all copies or substantial portions of the Software." Your hypothetical situation would definitely be a copyright violation if we were talking about the GPL v3 rather than the MIT license.

No. I would still keep the bit originally under MIT or Boost under their original license. Only the overall license for my package and the license for my additions would carry the license I picked.

  • But licensing a combination of MIT and Boostv1 code with either the MIT or Boostv1 license is alright? – Richard Jul 15 '16 at 17:47
  • In your hypothetical situation, aren't you violating the MIT license by requiring that "The [MIT] copyright notice and this permission notice shall be included in all copies or substantial portions of the Software." Your hypothetical situation would definitely be a copyright violation if we were talking about the GPL v3 rather than the MIT license. – Philip Kendall Jul 15 '16 at 19:46

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.