4

I'm in the current situation where I'm developing a software package which is heavily based on the usage of plugins. There are three main components:

  • the core application package;
  • the toolkit package;
  • the plugins (these can be developed on their own by other users/developers).

The main goal is that the core depends on the toolkit which provides the building blocks; the plugins are also built with the toolkit and expand the functionality of the core.

I want to make sure that developers can ship their plugins with the following licenses:

  • Apache License 2.0
  • MIT
  • BSD-3
  • (L)GPLv3

I currently envision two distinct user bases: commercial entities that provide plugins shipped with MIT/BSD-3 license allowing them to use proprietary code that does not need to be publicly available but it's installed separately; users that want to publish plugins with (L)GPLv3 so that if someone wants to use my application with their plugins they must have their explicit consent.

At this time I licensed both the core and the toolkit as Apache License 2.0. I understood via this repo that Apache is compatible with MIT and BSD-3 but not GPLv3. I initially opted for BSD-3 since it's compatible with all of them but I noticed that in comparison Apache is more "wordy" and favored by lawyers when it comes down to patent infringement or stuff like that (I'm not a lawyer and not expert in what advantage this may provide).

Due to this, how can I achieve compatibility accross the board? Should I return to BSD-3? Should I add a secondary license to provide better compatibility? Although in the latter case I don't know what happens with projects that have a double license.

I understand this topic has been covered multiple times but due to the specificity of my question I preferred to just create a new one since I could not find a specific answer to my doubts.

3
  • What if someone wants to make a proprietary plugin, or wants to use a non-open source license of some kind for their plugin? Do you want to allow that, disallow it, or is it a "don't care"? Commented Dec 18, 2024 at 13:20
  • I think it would be a "don't care" - for now at least; I'm working as a developer in a scientific environment where scientists are involved and that's the main target audience. Since a lot of devices from different companies are usually involved in the conducted experiments, I want to make sure that if the project picks up interest companies are involved in publishing plugins so that they can sell more of their instrumentation (previous experience taught me that using GPLv3 would close off any interest from companies in this context). Commented Dec 18, 2024 at 15:28
  • To clarify: in the scientific environment code tends to be shared open-source (either as MIT/BSD-3/GPLv3 or any other OSI-approved license) and the community tends to follow OSI-approved licenses. So far I only found a project which published the source code with what I think was a variation of the BSD-3 license, explicitly forbidding from making commercial solutions from their project. Commented Dec 18, 2024 at 15:34

1 Answer 1

3

From The GNU Foundation's Various Licenses and Comments About Them page, we find the description on the Apache License v2.0 stating:

Apache License, Version 2.0

This is a free software license, compatible with version 3 of the GNU GPL.

Please note that this license is not compatible with GPL version 2, because it has some requirements that are not in that GPL version. These include certain patent termination and indemnification provisions. The patent termination provision is a good thing, which is why we recommend the Apache 2.0 license for substantial programs over other lax permissive licenses.

The LGPLv3 is just an exception on top of GPLv3 while the AGPLv3 is virtually identical to the GPLv3 except for the clause about Remote Network Interaction (Section 13).

The terms related to patents are the same in GPLv3, LGPLv3 and AGPLv3. So this makes the Apache License v2.0 compatible with GPLv3, LGPLv3 and AGPLv3.

The Apache License v2.0 is however not compatible with GPLv2 due to reasons explained in this answer.

The Apache License v2.0 is compatible with LGPLv2.1 subject to conditions in Section 7 of the LGPLv2.1 as explained in this answer.

The MIT and BSD-3 licenses are compatible with all other licenses mentioned in this answer including Apache License v2.0, GPLv3, LGPLv3 and AGPLv3.

3
  • 3
    Thank you for the answer. In relation to my specific topic, would that mean that there should be no problem with plugins that are shipped as MIT/BSD-3? Commented Dec 17, 2024 at 19:53
  • 1
    @Jacob Yes. MIT and BSD3 are compatible with other licenses. Commented Dec 17, 2024 at 23:47
  • @Jacob I hope I may be permitted a drive-by thank-you for a good first question, clearly written and answerable, plus the way you asked a good follow-up, then came back and accepted the answer that best fit your needs, without being prompted. A great start for a new user, and I hope you stay around and ask - and answer - more questions yourself. Commented Dec 22, 2024 at 8:48

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.