5

To start with, I am aware of " An even lesser LGPL-like license that allows static linking " question, but I believe it was aksed in a weird way and that my question is substantially different.

Basically, I am looking for a library license that:

  1. Allows dynamic linking with code using whatever license (including proprietary)
  2. Allows static linking with code using whatever license (including proprietary) (so, LGPL does not work well here)
  3. Applies to the whole library and all of its modifications (e.g. if someone adds a file to the library, they still have to share the file, like in LGPL) (I believe this disqualifies MPL-2.0)
  4. Weak: applies only to the library, not to the larger work using the library
  5. Copyleft: modifications to the library must be shared with the same license
  6. (This might be good but not required) network use is considered distribution (e.g. if someone makes the software available over the network, they must share the modifications they made to the library)

In short, do whatever you want with library / software, as long as you share the modifications you make to it. You're not required to share the source of whatever you build on top of the modified library.

I understand that one way to make that work is GPL2 with linking exception, or AGPL3 with exceptions to allow liking and tivoization, but they just feel weird.

Are there any other (widely used) licenses that work like that?

2
  • Challenge here: How do you define the difference betwen adding a file to your library, vs creating a library that includes your library and one extra file? Commented Jul 10 at 12:49
  • To me, there should be no difference, they should both be distributed using the same license, with the new file copyrighted to its new author in both cases. I should be able to take the new file and add it my library (of course, preserving the copyright). If something (another library or program or whatever) links to the library only using it's public interface, this new piece of software can be distributed using whatever license + copyright notice. Commented Jul 10 at 13:11

1 Answer 1

5

A license that seems to fit your criteria is the EPL (Eclipse Public License) 2.0

In contrast to the LGPL, it does not have the requirement that the end-user must be able to replace the library. For that reason, it has no linking requirements/restrictions, satisfying points 1 and 2.

The EPL applies to the whole 'Program', where Program is defined as the original work and all modifications, including new files, but explicitly excluding mechanisms used for combining a library in a larger application. That seems to satisfy points 3 and 4.

Source code must be shared under the EPL 2.0 license (or the GPL), making it a copyleft license.

1
  • 1
    I think it's the closest to what I want, thank you! One more question: about EPL: if I release a library under EPL + Exhibit A (GPL compatibility), and then someone changes the library, and uses the changed code in their GPL(2/3) project, will I be able to take their changes and merge them back into my EPL library (of course, preserving their copyright / authorship etc)? Commented Jul 10 at 13:16

Not the answer you're looking for? Browse other questions tagged or ask your own question.