-
Notifications
You must be signed in to change notification settings - Fork 33
Update license #103
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: master
Are you sure you want to change the base?
Update license #103
Conversation
Also mention the license explicitly in the README.
@mnlevy1981, I approve. I don't have a deep understanding of the nuances of different licenses but I gather that LGPL has caused headaches for other communities. Do you care to share the reasoning here for changing the license? |
@mnlevy1981, I approve. |
@xylar I forgot to link this PR to the issue ticket, but #87 (comment) touches on some of the issue:
It also turns out the UCAR's legal counsel has been recommending Apache (or MIT or BSD) instead of LGPL for a few years, and has suggested we move away from LGPL for CESM and its components. Since GFDL is looking into changing the license for MOM6 from LGPL to Apache (also to enable collaboration with industry partners), it seemed like the right move for us as well. |
I approve of this PR. |
@mnlevy1981, I approve. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I approve.
I approve but have to following comments/questions. A few years ago we added support for using CVMix from within GOTM. The CVMix code was added as a Git submodule and during configuration with CMake CVMix could be compiled in - or not.
I've written to the main GOTM contributers about the issue - and I'll use comments here in our internal GOTM discussions. Best regards, |
@bolding, as I said above, I'm not super expert in licenses so take the following with a grain of salt. However, my understanding is that the move from LGPL 3.0 to Apache 2.0 should be no problem at all for GOTM. With LGPL, there were restrictions about how the code could be incorporated in closed-source codes. But those should not have affected GOTM because it's open source. With Apache 2.0, even those restrictions are no longer there (seemingly the reason for the switch). Here is a summary from ChatGPT (also to be taken with a grain of salt):
|
@bolding -- I'll second everything @xylar said, I would be surprised if CVMix transitioning from LGPL to Apache affects GOTM in any way. It looks like GOTM uses the full GPL, not the [L]esser GPL we are moving away from, and that's a more restrictive license than Apache. Please do keep us posted on what the GOTM developers say! |
@mnlevy1981 and @xylar It is difficult waters we are entering .... As is now the norm I asked AI - perplexity.ai - the following question: are there issues with gpl version2 and having external components as git submodules using apache version 2? and got this reply: "There are potential issues when combining GPLv2 and Apache 2.0 licensed components, even when using git submodules: License incompatibility: The GPLv2 and Apache 2.0 licenses are considered incompatible by the Free Software Foundation due to differing patent termination and indemnification provisions38. Derivative work concerns: While git submodules are essentially links to external repositories, if you distribute your software as a whole (including submodules), it may be considered a derivative work under the GPL5. Distribution requirements: If you distribute your GPLv2 software with Apache 2.0 components (even as submodules), you must comply with both licenses' requirements, which can be challenging due to their incompatibility13. Linking restrictions: The GPL is stricter regarding linking, and using Apache 2.0 licensed components might violate the GPL's terms, even if they're in separate submodules1. To mitigate these issues, consider: Using GPLv3 instead of GPLv2, as it's compatible with Apache 2.08. Keeping the components truly separate and not distributing them together. Seeking alternative components with more permissive licenses. Consulting with a lawyer specializing in software licenses for your specific case1" The problem for us updating the GOTM license is that we have no way of tracking potential contributers as you have been able to do here. |
@bolding, that sounds tricky indeed and I think that's why a lot of folks are moving away from GPL and variants. They're just too restrictive to be piratical. |
@xylar you can argue they are to restrictive - on the other hand that a GPU manufacture should have a saying on the license of software paid by public money also seems to be wrong to me. And my main argument for GPL has always been that it guaranteed that ALL additions is always available to the public (except for a corner case where the is no distribution involved). |
@bolding, I see what you're saying and that's certainly the GLP philosophy. It isn't the broader philosophy of the open-source community, at least in my experience on conda-forge. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good, I approve.
I approve. |
@bolding I did a little searching on my own (wikipedia instead of GPT), and ended up finding Apache's own take on GPL compatibility. I think that link is probably the main source for GPT's response, as it matches pretty closely. If GOTM updates to GPTv3, we're fine:
However, we can't use Apache v2 as-is if GOTM stays with GPLv2:
It does look like there's a work-around: the LLVM project proposed a couple of exceptions that can be added to the Apache license: the first allows distribution of compiled code even if the compiler injects code into the executable (not really applicable to us, since we provide the source code rather than executables), while the second allows the combined code (whatever is licensed under GPLv2 and uses the Apache2 code) to be included in a patent lawsuit [the restriction about not being involved in patent lawsuits is the section that makes Apache incompatible with GPL2]:
I have a little bit of cleanup to do with the License.txt file I added, I realized I was supposed to add copyright information at the bottom... so I can add this addendum as well (and I might need to update the header to make it clear this exception has been added) and then we don't need GOTM to decide between updating their license or sticking with an old version of CVMix |
Also filled in the copyright template in the license file.
The UCAR lawyer doesn't like "Copyright CVMix Developers" and wants us to go with
This is where things get muddy, because his suggestion was "Copyright 2012-2025 UCAR"... I would like it to be clear that this project was born out of an initial collaboration of GFDL, LANL, and NCAR and does not solely belong to UCAR. My understanding is that GFDL can not claim a copyright, since they are a federal lab and everything they do is in the public domain. As federally-funded (but not federally-managed) labs, anything done by NCAR employees technically belongs to UCAR and I believe the copyright for original works out of LANL belong to Triad National Security. On top of that, we have since had contributions from collaborators outside of those three institutions, and I'd really rather not try to figure out what other institutions were involved. So I'm thinking the copyright isn't actually the place for this sort of recognition -- one possibility is to assign the copyright to Triad and UCAR, while also adding an "About" section to the README that acknowledges the history of this project. I will update the copyright in the next commit, and will mull over the wording for the README. |
@levy - thanks for looking into this and sharing your findings. |
Also update the README to give GFDL and LANL credit for creating CVMix
Thank you very much for addressing this licensing issue, for FESOM and ICON that rely on CVMix, this transition will be very beneficial! Just checking in: are there any updates or developments on this issue since the last round of comments? |
@koldunovn -- I'm trying to get in touch with one last developer, and then I will merge this in. Given time zone differences, it might not get merged until sometime next week |
@mnlevy1981 I totally stole some of your text at the top, for the same sort of thing we are doing in mizuRoute. I'm glad you all were able to figure this out and model what we need to do. Thanks! |
@bolding Just to be clear, do you think the LLVM exception proposed here will allow GOTM to continue to use the latest versions of CVMix despite being licensed under GPLv2? |
This PR switches from LGPL (implemented in #90) to Apache 2.0. I will tag the first version of CVMix with the new license as
v1.0.0
Following discussion with UCAR's legal counsel, I propose the following path forward: there are 13 listed contributors including myself, and ideally I will hear back from the 12 others that this license change is acceptable. 5 of you are collaborators and I have requested a review of this PR: I will treat an approval as a tacit acceptance of the new license. The other 7 contributors are @qingli411 @gustavo-marques @alperaltuntas @klindsay28 @bolding @xylar @apcraig -- please reply here before 3p Mountain Time on Friday, April 11, with a comment about whether you are okay with this license change or not. A few possible paths forward:
Note that the second item in the list treats "no response" as a vote in favor of the new license. April 11th is ~5 weeks away, which seems like a reasonable amount of time for someone to lodge a complaint. I'm happy to extend the deadline, though, if more time is needed.