5

I've a proprietary program which is using OOP classes which I want to publish as FOSS (only the classes).

Which FOSS compatible license I can choose for the classes which will work with my proprietary program which I'm selling?

I was thinking about GNU GPL, but if I understand correctly, I've to distribute my entire proprietary program as GNU GPL (since it's build on top of it, or maybe other way round), so it doesn't make sense.

Which license would you recommend for these open-source OOP classes, so they may be compatible with my proprietary code (which is including them)?

2

Which FOSS compatible license I can choose for the classes which will work with my proprietary program which I'm selling?

As the author of your code (or more accurately the copyright holder), you are free to release under any license you like including multiple licenses.

I was thinking about GNU GPL, but if I understand correctly, I've to distribute my entire proprietary program as GNU GPL (since it's build on top of it, or maybe other way round), so it doesn't make sense.

The same code could be used by you under your proprietary license or by others under the GPL. This is commonly called a "dual license".

Now the important decision on your part is about receiving contributions on these FOSS-released classes.

If you accept contributions under the GPL, then read this thread Proprietary software using GPL modules

Alternatively you could use a CLA. See for instance What are the advantages of adding a Contributor License Agreement to a project?

Which license would you recommend for these open-source OOP classes, so they may be compatible with my proprietary code (which is including them)?

If I were in your shoes, my personal goal would be to make it easy for others to contribute and reuse my code. I would likely use a permissive or weaker copyleft license and accept contributions under that license. For instance a GPL with exception, an LGPL, or a BSD, MIT or Apache. In doing so, I would accept contributions under the same terms and would possibly reuse the improved code in my proprietary application under these same terms.

  • 1
    I would add the MPL 2.0 to your list. It has many advantages: easier to deal with than (L)GPL, weak copyleft which assures that improvement to the classes will remain open source... – Zimm i48 Sep 12 '16 at 9:27
1

You may use the Lesser GPL (LGPL) which permits use of the library in proprietary programs as oppose to the ordinary GPL which makes a library only available for free programs.

For example GNU C library is using Lesser GPL since there are plenty of proprietary software which are using it.

Releasing library or software under GPL is limiting its use only to free programs which can be advantage to give a community boost and makes sure application program which are using it are free software as well.

Source: Why you shouldn't use the Lesser GPL for your next library at GNU.org

So...

If developers are already using an established alternative library released under a nonfree license or a lax pushover license, then we recommend using the GNU Lesser General Public License (LGPL).

Source: How to choose a license for your own work at GNU.org


For full LGPL licence, please read: GNU Lesser General Public License.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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