Writing Proprietary Software – Avoiding License Infractions

gpllgpllicensing

I am starting a software project that I want to have the option to keep it proprietary. However, since I generally use a Linux environment, I want to know: How do people write proprietary software in Linux and not violate the GPL/LGPL/etc licenses that seem to restrict uses of libraries needed to build the project?

Also, does using an unmodified LGPL library in my code require releasing it as open-source (I understand that open-source and proprietary are different beasts)?

And I know I'm going to be branded a heathen for asking, but can I use unmodified open-source libraries in my project but still keep the code that is mine closed-source?

Best Answer

In general, when writing software that uses third-party libraries you need to be aware of the licences under which the third-party software is released and how that affects your own software.

The GPL licence is considered an infectious licence in the sense that if your project includes GPL-licensed code in any way, your code must also be released under the GPL licence (possibly in addition to other licenses).

The LGPL licence was created to take away the infectiousness of the GPL licence. Roughly speaking, if you use a LGPL licensed library in your project you can use any licence you like for your own code (even a closed-source one) as long as the end-user can replace the LGPL licensed library with a different, compatible, one.

For other licenses, you will have to check the licence itself, but in general, MIT and BSD-derived licenses tend to be more permissive than (L)GPL.

Disclaimer: IANL, TINLA