7

Is it possible to use free software libraries or parts of a free software system in proprietary software without violating the licenses?

In other words, can I build a system that uses some parts of a free software and release just the source code of the already free parts as free software?

For instance, let's say I'm writing a new tool for programming (an IDE or something like that) and I want to keep my work as proprietary software. Could I use an open source editor as part of my tool and keep the rest of the source code under a proprietary license?

12

It depends on the license, and also somewhat on the country.

For the BSD and MIT licenses, this is a friendly yes. Your "derivative work" contains a separate copyright interest from the original and those licenses did not place any requirements on your copyright interest. These are called non-copyleft licenses. They basically say "to use this software, you must promise not to sue us. In return we promise that we will not sue you."

For the GPL license, this is an emphatic no. It is part of that license to use the software that any derivative work which incorporates and/or extends the software must be licensed to anyone that it is conveyed to under the GPL, and you must provide source code. This is quite by design, and is more complex to think about; basically: "To use this software you must promise not to sue us. We promise that we will not sue you except in one case: if you start giving modified versions of this software to other people while keeping the source code to yourself and/or retaining the threat to sue them, we reserve the right to sue you."

So the first case is kind of a "we're going to reduce lawsuits by both putting our hands where we each can see them," passively, while copyleft licenses attempt to use threats of lawsuits to discourage further lawsuits, actively.

Some things, like Qt, use the LGPL, which allows you to include that code alongside other proprietary code without open-sourcing the lot of them: however you must still release any modifications you make to the LGPL code and you must have some sort of firm barrier between the LGPL and proprietary parts (different source files leading to different object files) so that the two aren't confused.

  • 3
    The LGPL explanation is wrong. You may include a copy, modified or not, if done in a modular way (one that allows the end user to further modify the LGPL parts). Practically speaking, that's means shared library or script code.. – MSalters Jan 14 '16 at 16:34
  • @MSalters d'oh, of course you can modify the LGPL stuff and then you have new LGPL code which can get bundled with proprietary stuff. I've amended the last paragraph, is that better? – CR Drost Jan 14 '16 at 16:46
  • 2
    @MSalters if statically linked, you need to provide objects for the rest (so the user can link a modified library into it), and the binary library (and sources) – vonbrand Feb 10 '16 at 1:27
5

Completing CRDrost's answer, according to the FSF, just being able to link against a GPL library forces the whole to be GPL (there are dissenting opinions, and no firm legal precedents; for some GPL libraries there came to be BSD licenced workalikes, further muddying the issue). Linking against an LGPL library is allowed without effect on the other piece of the software.

The mentioned ones are just the most popular open source licenses, there are many, many others, like Sun's CDDL, the Apache and Mozilla licenses. And some use the Creative Commons licenses, which were designed for other sorts of creative works (essentially ones authored by at most a few people), for software. And then some licenses exist in legally quite different versions...

Overviews are given by OSI and the FSF. You might have to drill down on the (often confusing) licensing provisions on each piece.

If you want to do this for propietary use, do retain a lawyer to sort it out. Being at either end of a copyright lawsuit is no fun, and will probably end with one part broke.

Your Answer

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