Licensing GPL – GPL-Compatible Software License for Libraries with Static Linking

gpllicensing

I'm looking for an existing library license which satisfies the following conditions:

  • GPL-compatible
  • Can be statically linked with closed-source programs
  • Binary modifications of the library, including cases where the library is statically linked with another project, must be accompanied by the library source code

Licenses which are close but not quite what I need:

*: The LGPL allows static linking with some specific technical conditions – specifically, it must be possible to make modifications or use newer versions of the library, and to do that one would need to make available the object files and build scripts for the non-free components. Generally speaking, this is technically difficult and sometimes impossible (in the case of e.g. templates or inlined functions), and very often (as is my case) the underlying reasons for which static linking is required conflict with these LGPL requirements. For this reason, LGPL is unsuitable for my use case, and frankly I've yet to see a project which used static linking with an LGPL library in this manner, considering all the associated technical and legal (templates/macros/inlining) problems.

Best Answer

From your comments, it appears that you're looking for a way to license a library that you wrote so you can use it in a proprietary project but still have the license be GPL-compatible.

First off, this is a bit nonsensical. The GPL carries a whole lot of anti-proprietary-software ideological baggage with it. It's designed that way; the whole point of it is to make it as difficult as possible to integrate GPL or LGPL code into a proprietary project.

However, licenses are for other people. They don't apply to the copyright owner, which is you, the person who wrote the library. You can use your own code however you want to, regardless of the terms of the license you put on it. So you can make it GPL or LGPL and still use it in your proprietary project and you'll be fine.

On the other hand, if you want people in general to be able to use it in GPL projects or also to be able to use it in proprietary projects but still be required to publish the source to whatever changes they make, try dual-licensing it as (L)GPL and MPL.