Ouranosinc / lmoments3

Estimate linear moments for statistical distribution functions
https://lmoments3.readthedocs.io/en/stable/
GNU General Public License v3.0
7 stars 0 forks source link

Licensing conflict with xclim #12

Open saschahofmann opened 7 months ago

saschahofmann commented 7 months ago

As mentioned in this discussion on the xclim forum. There currently is a licensing conflict with xclim's Apache 2.0 license and lmoments3 GPL 3 license. The easiest way to resolve this conflict would be to change lmoments 3 license to a more permissive license (e.g. like Apache 2.0). I am using this issue to reach to all lmoments3 contributors and ask whether they'd be willing to change lmoments3 license?

The repo mentions

Zeitsperre commented 7 months ago

@saschahofmann

Just to clarify that @faph is Florenz A.P. Hollebrandse!

saschahofmann commented 7 months ago

In the code I can also see these J. R. M. Hosking, William Asquith, Pierre Gérard-Marchant mentioned do you by any chance have contact details for any of them?

Zeitsperre commented 7 months ago

Unfortunately, no. I have no idea how to contact them.

aulemahal commented 7 months ago

I think those names are associated with the Fortran code, which has a much more permissive licence, no ?

saschahofmann commented 7 months ago

They are mentioned in distr.py: https://github.com/Ouranosinc/lmoments3/blob/main/lmoments3/distr.py#L2 But yes the fortran code has a more permissive disclaimer.

faph commented 7 months ago

I have no problem with that as far as my own contributions are concerned.

huard commented 7 months ago

Good for me as well.

Zeitsperre commented 7 months ago

I've already expressed this elsewhere, but just for official purposes, I am comfortable with the licensing changes so long as the other authors are on board!

SarahG-579462 commented 7 months ago

FYI William Asquith is active on github as @wasquith, for the R code. His code is under GPL v3.0. I'm not sure who provided the translation, it doesn't appear to be in Sam Gillespie's original translation (https://github.com/samgillespie/Python-L-Moments).

Sam Gillespie is also on github @samgillespie, they might be able to be contacted through there, but from what I understand their licensing is more permissive, IANAL, but simply including their license would likely be sufficient.

saschahofmann commented 7 months ago

Thanks. Two good resources but yeah seems pretty hard to deduce who needs to give their consent. I added both to the list above for now.

samgillespie commented 7 months ago

I'm also comfortable with these licensing changes, I'm happy for this code to be as freely distributable as possible.

Zeitsperre commented 7 months ago

I'm going to send an email directly to @monocongo to see if we can get his OK on this. I'll ask if he can weigh in on the issue here.

Unfortunately, I'm still not sure what we can do about gaining @wasquith's approval. Perhaps we could also email him directly?

saschahofmann commented 7 months ago

Great. I just emailed @wasquith

Zeitsperre commented 7 months ago

Email sent to @monocongo

Hi James,

Happy (late) new year! Hope things are going well on your end.

I wanted to contact you directly about a development happening in the lmoments3 project. Last year, due to the fact that lmoments3 hadn't received any updates in several years, Ouranos managed to negotiate the maintenance of that project with the last owner (faph) and PyPI. Since then, we extended some optional functionality in xclim using it. Seeing as we were the maintainers and the module was optional, I didn't think that the GPLv3 license applied to xclim, but in fact it still does apply.

It was brought to our attention last week (https://github.com/Ouranosinc/xclim/discussions/1619) that my interpretation was off; The GPLv3 license extends to xclim regardless of the fact that we maintain the project. As such, we're working to resolve this by refactoring xclim to no longer extend lmoments3 in the interest of allowing users to provide lmoments3 themselves, but there's also the option of changing the license from GPLv3.

I'm wondering if you would be willing to sign off on changing the GPLv3 license to the BSD 3-Clause license (relevant issue: https://github.com/Ouranosinc/lmoments3/issues/14). A downstream user of xclim has been contacting all contributors to lmoments3, and we've gotten the OK from all except William Asquith and yourself (relevant issue: https://github.com/Ouranosinc/lmoments3/issues/12).

If you were open to changing the license (or not), would you be willing to weigh in on this? Credit will still be given to all developers in the new license, but we won't go forward with any license changes if there are any authors not on board.

Thanks and all the best,

And his response:

Hi Trevor,

I'm happy to follow you guys' lead. Please let me know what I can do to help. Kudos on all your hard work around this. I rewrote the L-moments code into Java and Python, more than once, from the original Hoskins Fortran code and it flummoxed me every time. This stuff is hard even without the additional licensing complexity. Godspeed!

--James

All good!

aulemahal commented 7 months ago

Due to missing approbation from William Asquith, whose work is cited in the code as the source for part of the implementation, we decided to remove lmoments3 from the dependencies of xclim.

One can now pass a lmoments3 object to xclim's functions to retrieve the previous behaviour, see the PR linked above.

We can easily add lmoments3 as a dependency as soon as we have a positive response from that last person!

Zeitsperre commented 6 months ago

Just as an FYI, xclim no longer requires (or links to) the lmoments3 package, but we've changed the way that scipy distribution functions are used in order to allow for users to still perform the same analyses, though. This change can always be reverted when the licensing situation changes.

We'll leave this issue open for the time being.

aulemahal commented 1 month ago

I just found out that most of the L-moments fortran code is implemented here : https://cran.r-project.org/web/packages/lmom/index.html. This package is (actively) maintained by Hosking himself and is released under the CPL 1.0. According to this https://www.tldrlegal.com/license/common-public-license-1-0-cpl-1-0, I think this license would allow sublicensing.

Thus a solution for this issue would be to say that this package is a derivative of that R package, and we could go forward with #14. I think.

saschahofmann commented 1 month ago

But is that accurate? My understanding was that this repo is a derivative of this https://github.com/wasquith/lmomco ?

aulemahal commented 1 month ago

You are right, I kinda read our license too fast, it does mention « Additional code » from R's lmomco. I have no idea which parts it concerns, so I can't judge on the scale of the issue.