Skip to content
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

LGPL License is incompatible with Apache License #415

Closed
brfrn169 opened this issue May 20, 2019 · 16 comments
Closed

LGPL License is incompatible with Apache License #415

brfrn169 opened this issue May 20, 2019 · 16 comments

Comments

@brfrn169
Copy link

brfrn169 commented May 20, 2019

Hi lanterna author,

Looks lanterna is very useful and I want to use it in Apache HBase project:
https://github.com/apache/hbase

However, according to Apache website (http://www.apache.org/legal/resolved.html#category-x), LGPL License in incompatible with Apache License, so it prevent us from using lanterna in an open source project with Apache License. This make lanterna not so free to use.

Is it possible to license lanterna under Apache License or MIT?

@RobertZenz
Copy link

...LGPL License in incompatible with Apache License...

That is not correct as far as I can see.

Apache projects may not distribute Category X licensed components, be it in source or binary form; and be it in ASF source code or convenience binaries. As with the previous question on platforms, the component can be relied on if the component's license terms do not affect the Apache product's licensing. For example, using a GPL'ed tool during the build is OK, however including GPL'ed source code is not.

That is only a management decision, as far as I can see, especially as BSDs and similar are also on that list. Because from a pure license point of view it does not matter whether your project is LGPL, Apache, BSD or proprietary licensed when viewed from the LGPL component. The LGPL is especially designed for that, as it does not impose any limitations as long as it is only used as "stand alone component" which can be swapped out with a different version (read, a shared library), plus the attribution thing. At least that is my interpretation.

This make lanterna not so free to use.

The GNU family of licenses are not about giving absolute freedom, they are about preserving freedom.

@brfrn169
Copy link
Author

Thank you for your reply @RobertZenz.

That is only a management decision, as far as I can see, especially as BSDs and similar are also on that list.

I think BSD licence is on the "WHAT CAN WE INCLUDE IN AN ASF PROJECT?" list, not the "WHAT CAN WE NOT INCLUDE IN AN ASF PROJECT?" list, right?
http://www.apache.org/legal/resolved.html#category-a

At least, we can't use libraries licensed under LGPL in HBase project according to the following discussion:
https://asf.ui-eu-01.ponee.io/thread.html/7c6d5fc00d870d52253ce429aca1ef5f8f477fe2a8e384e3793e277e@%3Cdev.hbase.apache.org%3E

lanterna is very useful in my use case and I strongly want to use it in HBase project.

What do you think? @mabe02

@RobertZenz
Copy link

Just to clear up the premise.

At least, we can't use libraries licensed under LGPL in HBase project according to the following discussion:
https://asf.ui-eu-01.ponee.io/thread.html/7c6d5fc00d870d52253ce429aca1ef5f8f477fe2a8e384e3793e277e@%3Cdev.hbase.apache.org%3E

Quote from that discussion:

My understanding of [0] is that various versions of LGPL are explicitly
prohibited from use as a dependency in Apache Foundation projects.

That's fueling my idea that this is a convention, not an incompatibility of the license.

They may be relied upon when they support an optional feature

Apache projects can rely on components under prohibited licenses if the component is only needed for optional features.

That actually sounds good, and the feature you said you would develop sounds like it could be a stand-alone module or something.

On another note, what exactly are you doing? The first post made it sound like you're developing HBase, but the email discussion makes it more sound like you want to develop a standalone application depending on HBase and Lanterna.

@brfrn169
Copy link
Author

On another note, what exactly are you doing? The first post made it sound like you're developing HBase, but the email discussion makes it more sound like you want to develop a standalone application depending on HBase and Lanterna.

I'm building a tool for HBase (https://issues.apache.org/jira/browse/HBASE-11062) and I'm planning to include it in HBase project itself because I think the tool is very important for HBase and I want to make it an official tool. I can create a new project depending on HBase and Lanterna actually, but If I do so, the reason for that would be only this license problem.

That actually sounds good, and the feature you said you would develop sounds like it could be a stand-alone module or something.

Actually, I don't want to make the tool an optional feature, but it's an option. Or I have to decide not to use Lanterna. But as mentioned, Lanterna is very useful in my use case and I strongly want to use it in HBase project.

@mabe02
Copy link
Owner

mabe02 commented May 25, 2019

Licensing again... Fun fun.
I suspect this is the problem (from Wikipedia):

The Apache Software Foundation and the Free Software Foundation agree that the Apache License 2.0 is a free software license, compatible with version 3 of the GNU General Public License (GPL), meaning that code under GPL version 3 and Apache License 2.0 can be combined, as long as the resulting software is licensed under the GPL version 3.

Can I just give you and the HBase project special permission to use Lanterna under Apache 2.0 rather than re-license the whole thing?

@brfrn169
Copy link
Author

brfrn169 commented May 25, 2019

Thank you for your reply @mabe02.

Can I just give you and the HBase project special permission to use Lanterna under Apache 2.0 rather than re-license the whole thing?

That would be great. Let me discuss with the HBase community about it.

@mabe02
Copy link
Owner

mabe02 commented May 26, 2019

I suspect the answer will be no though...

Hmm, not sure what to do about this one. From what I can tell, the main difference between Apache 2.0 and LGPL 3.0 is that if you modify the library (i.e. Lanterna) code itself, those changes also needs to be under LGPL 3.0 whereas with Apache 2.0 you can do whatever you want with it and you don't need to publish anything.

In reality, the chances of anyone actually doing any major work with lanterna is pretty slim so I could be open for a change of license. I'd like to ask on the mailing list first though to get people's general opinion.

@RobertZenz
Copy link

I suspect this is the problem...

That's only for the GPL, not the LGPL. The LGPL was designed to mitigate exactly that situation.

Can I just give you and the HBase project special permission to use Lanterna under Apache 2.0 rather than re-license the whole thing?

From a legal point of view, you can't, as far as I'm aware. Any contribution that was made by a different person is licensed under LGPL, and even though the license headers list you as copyright holder, the contributions you accepted are still owned by the respective people...unless you made them sign a copyright waiver or a special license agreement. Of course, these contributions have been licensed to you and everyone else under LGPL which is irrevocable, so you can use it in this project as you wish, but "just" relicensing them is not possible. That is of course from a completely legal point of view, the likelihood that the authors will care is rather slim in reality, but from a legal point of view you can't do that.

@brfrn169
Copy link
Author

According to the discussion in the following, we can note the exemption where you give the HBase project special permission to use Lanterna under Apache 2.0 in our NOTICES.txt file, and then we can use Lanterna in HBase project:
https://asf.ui-eu-01.ponee.io/thread.html/7c6d5fc00d870d52253ce429aca1ef5f8f477fe2a8e384e3793e277e@%3Cdev.hbase.apache.org%3E

Is that okay for you guys? @mabe02 @RobertZenz

@mabe02
Copy link
Owner

mabe02 commented May 30, 2019

I agree with @RobertZenz that this is probably not ok to do due to the contributions made by other people (i.e. I personally can't re-license code that they contributed without asking each one of them for their permission). The chances that someone will seriously care about this is pretty slim though.

Why don't you work on the assumption that this is going to be ok and I'll bring this up on the mailing list.

@brfrn169
Copy link
Author

brfrn169 commented May 30, 2019

Why don't you work on the assumption that this is going to be ok and I'll bring this up on the mailing list.

Sure. Please discuss with Lanterna authors about it. Thanks.

@brfrn169
Copy link
Author

brfrn169 commented Jul 2, 2019

Hi @mabe02, any update?

@brfrn169
Copy link
Author

brfrn169 commented Aug 2, 2019

Hi @mabe02, any update?

Actually, the code using Lanterna is completed (under the review) except the license issue:
apache/hbase#438

Could you please tell me if Lanterna authors can re-license or I have to decide not to use Lanterna?

@avl42
Copy link
Contributor

avl42 commented Aug 2, 2019 via email

@RobertZenz
Copy link

Even if mabe02 were inclined to change the license, it would be as much legal "risk" for him to do so, as it would be for you to use a LGPL'ed library in a non-LGPL'ed application.

I've tried to argue that point here multiple times, so my point one more time: Nothing hinders you from using an LGPL library in any project, even closed-source ones. The limitation seems to be on an organizational level, not a legal problem.

@brfrn169
Copy link
Author

brfrn169 commented Aug 5, 2019

Thank you for your comments.

As mentioned, LGPL license is incompatible with Apache License (I'm not sure the exact reason for this as I'm not a lawyer), so I can't use Lanterna in Apache HBase project without relicensing:
http://www.apache.org/legal/resolved.html#category-x

So I decided not to use Lanterna.

Thank you very much for your help. @mabe02 @RobertZenz @avl42

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants