joshuaulrich / xts

Extensible time series class that provides uniform handling of many R time series classes by extending zoo.
http://joshuaulrich.github.io/xts/
GNU General Public License v2.0
220 stars 71 forks source link

Change license to LGPL #308

Closed chuckcoleman closed 4 years ago

chuckcoleman commented 5 years ago

Description

The GNU Public License makes code that calls xts public domain and subject to GPL.

Expected behavior

Change to GNU Limited Public License. Changes to xts will remain public domain while letting proprietary code link to it. This will encourage proprietary developers to contribute enhancements to xts.

Minimal, reproducible example

N/A

Session Info

N/A

braverock commented 5 years ago

I think you may misunderstand the LGPL.

The LGPL would allow proprietary software companies to use and ship xts as part of commercial software without paying the creators for it, and without giving their enhancements or extensions back to the community.

The GPL allows you to take the code internally and do whatever you want with it, but if you distribute it to third parties, the GPL requires you to also make your code available under the GPL. I think the current license does exactly what it is designed to do, and encourages people to share their non-proprietary code with the community.

See for example GNU's discussion of the LGPL:

https://www.gnu.org/licenses/why-not-lgpl.en.html

joshuaulrich commented 5 years ago

I agree with @braverock, with one exception: my understanding of the LGPL is that licencees are required to provide the source code for any distributed derivative works of xts. Software linking to xts is not a derivative work, so it may be distributed under a different license. But the source code for xts, including any changes, must be provided.

However, that only requires them to provide the source code to the recipient. There's no requirement that they give back to the community. Even if proprietary developers contributed enhancements to xts, that creates more work for the xts maintainer (me). The potential for more work without compensation is not appealing.

Granted, I'm not required to do anything with the suggested enhancements. But as I mentioned previously, licensing under LGPL would allow a proprietary company to fork xts, make enhancements, and distribute, with no requirement to give back to the original project. The original creators would have no recourse to prevent them from doing this. That would be very bad for the community, but have essentially no downside for the proprietary company (aside from some potential bad PR).

All that said, I'm personally open to dual licensing, if the terms are appealing. Please contact me if you'd like to start a discussion. That invitation is open to anyone reading this, not only the OP.

joshuaulrich commented 4 years ago

Closing, since this isn't something I can resolve with a code change. Please feel free to continue the discussion though.