-
Notifications
You must be signed in to change notification settings - Fork 317
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
Dual licensing EPL 2.0/AGPL 3.0 for Xtend and Xbase runtime libraries? #2590
Comments
@raner this is something you should ask the eclipse foundation first what is possible and what is not. |
ping @raner |
I am not a lawyer and cannot give legal advice. If anybody wants legal advice, they must consult with their own lawyer. I'm not as familiar with Eclipse Xtend as I probably should be, but my understanding is that Xtend generates regular Java content, and that generated Java code requires certain libraries to complie and run. The Hello World sample, for example, requires InputOutput to compile and run. So, my understanding is that @raner would need to deploy this library (and possibly others) as part of an Xtend-based solution. AFAICT, that library (and possibly others) is licensed EPL-2.0, which both the Eclipse Foundation and FSF believe is incompatible with (A)GPL, which is the problem that @raner needs to solve. Is my assessment (so far) correct? |
Thanks for your response, @waynebeaton @cdietrich the runtime libraries I'm referring to are:
The latter depends on Google Guava, which is ASL2-licensed (not sure if and how this affects the feasibility of my request). |
the problem is: i am not a lawyer neither am not sure if you can create a drop in replacements for these libs |
Where are all the lawyers when you need one? ;-) Within the Eclipse Foundation, is there some sort of licensing contact person that could shed some light on this? Also, does anyone know any sort of precedent where a previously EPL2-licensed library later added (A)GPL as a secondary license? I found this thread, and while it's a bit difficult to follow, I interpret some of the statements to mean that adding a secondary license after the fact poses additional challenges (e.g., the libraries' contributors signed the ECA, so the expressly permitted their work to be distributed under EPL, but no such permission has been given for distribution under (A)GPL). |
I'm the licensing contact person for the Eclipse Foundation (but still not a lawyer). Step one is to define the problem as well as possible. I think that I understand the problem space (at least in principle) well enough to describe it to my team here so that we sort out what options might be available. Two runtime libraries have been identified. Are there more? @cdietrich can I reasonably assume that all of the "lib" bundles are runtime libraries? (e.g., should we add By way of expectation management, it's not a simple matter of just adding a secondary license provision. Adding the secondary license is a license change. Changing a license requires that we (at least) get approval from all of the copyright holders of the affected content. The Eclipse Foundation is not the copyright holder. I have some thoughts, but I need to do a bit more research and then check with my team before I make any suggestions. I'll try to have a response by early next week. |
@waynebeaton Thank you so much for looking into this! |
The gwt things are replacements for the libs to be used in gwt context. if you don’t use the active annotations in Xtend lib you should not need that neither or at least not at runtime |
@cdietrich Are you basically suggesting a clean-room reimplementation of the runtime libraries under AGPL license? I guess that would be another option. Probably tedious, but mostly straightforward? My code doesn't use active annotations, so I need the runtime libraries mostly for the extension classes ( |
@raner yes. if you dont use active annotations in a first step you should remove xtend.lib from your dependencies and use xbase.lib only. as the current library uses guava unter the hood i dont know how how apache 2.0 and agpl work together anyway. |
Thanks for your patience. Disclaimer: I am not a lawyer and nothing here should be considered legal advice. If you want legal advice, please contact your lawyer. I see two possible solutions:
In either case, I recommend applying a permissive license (a permissive license on the runtime libraries might help adoption in general). Changing the license will require approval from all copyright holders. If the project team wants to pursue a relicensing option, connect with the EMO and the team will help. |
@cdietrich Yes, you are correct, the library I'm talking about is @waynebeaton Yes, I think you've outlined the two viable options. I agree, that for a clean-room implementation it makes sense to choose a permissive license like Apache 2.0, not AGPL 3.0 (which would perpetuate the problem that derived products need to be licensed under the same license). In terms of going forward, realistically, I don't think I have the CPU cycles to spare to engage in a cleanroom rewrite of For my project, I will probably have to make a decision within the next couple of months about how to go ahead. The current project written in Xtend cannot be published due to the inherent license conflicts/violations. My fallback solution is probably to switch the project to Kotlin (the code is written in a heavy functional style, so I need a language that has a concise lambda syntax, etc.; Kotlin runtime libraries are licensed under Apache 2.0). |
do you have the cycles for
as the future of Xtend is unclear anyway
might be an option you also might be able to write your xtend code in a way that xbase.lib is not used at runtime and test that with archunit as it is done in lsp4j |
A secondary license concept doesn't make sense in this case. FWIW, per the EPL-2.0
Besides, the effort to add a secondary license is the same as the effort required to just change the license. I misused the word "binaries". What I meant was that we could consider relicensing the source for the runtime libraries (and--by extension--the binaries created from that source). This directory, for example: https://github.com/eclipse/xtext/tree/main/org.eclipse.xtend.lib If the project team wants to consider that option, they should connect with the EMO for assistance. |
sorry. i still dont understand what you are talking about and i have no lawer access.
what does that mean so i propose to stay as we are. |
will close this for now |
There are a number of open-source libraries that are licensed under the GNU Affero General Public License 3.0 (AGPL 3.0).
AGPL-3.0-licensed libraries require that any derivative software (i.e., software using such a library) be licensed under AGPL 3.0 itself. I just learned that EPL 2.0 is incompatible with AGPL 3.0, i.e. a project that uses EPL 2.0 libraries cannot be licensed under AGPL 3.0.
I've been told that the only way out of this conundrum is if the EPL-licensed libraries offer AGPL 3.0 as a secondary license.
Is this something that the Xtend and Xbase maintainers would consider?
I really have no idea if this is feasible and what's involved in it. In my case this means that an entire project might have to be rewritten in a language other than Xtend, since the project could only be licensed under AGPL 3.0 due to some of the libraries it needs.
The text was updated successfully, but these errors were encountered: