Say I have GPL software A and proprietary library B. I modify A to use B. Am I then free to distribute A by itself? The GPL FAQ seems to indicate that is there case here:
https://www.gnu.org/licenses/gpl-faq.html#FSWithNFLibs
Now what if I already own the license to B. Am I now able to distribute both A and B together even though B is closed-source? I don’t see how I could be forced to license B as GPL since it already existed independent from and is in no way derived from A.
All linking to B is done dynamically at runtime.
3
First disclaimers
1. I’m not a lawyer – and this isn’t a forum for a legal advice
2. if you ask 5 different IP lawyers RE GPL compliance, you will likely get 5 different answers. It has not been really tested much in US courts AFAIK.
With that, here’s my take. In short, I believe you can release A by itself under GPL (provided you meet the source code availability and other license requirements). The fact you made modification to A to call B means you also need to release your modification to A under GPL license, but it does not mean you need to also release B under GPL, or release B with A.
The license of B (whether GPL or not, or proprietary) or even how you call B (dynamic linking vs static) is irrelevant here because it’s A calling B, not the other way around (so one cannot say B is a derivative of A). You are still preserving the freedom of the users – which is really the intent and essence of the GPL license. Users can make changes to the source code of A to use something other than B should they want to.
You can distribute software A as GPL, but only without the additional features provided by proprietary library B. If you bind new features in software A to proprietary library B, then you must also distribute B’s source code under the GPL. Binding the two softwares in this fashion creates a derivative work.
The only way you might get away with licensing A separately is by dynamically binding library B at runtime. If the library isn’t made available by the user, the features simply won’t be present in Software A. But software A must be able to substantially function without library B.
There are other considerations as well. The FSF only considers such an arrangement valid if the communication between Software A and Library B “takes place at arm’s length.” The exact meaning of “arm’s length” is not specifically stated by the FSF, but it’s probably fair to say that your software can’t be the only software that uses library B.
Further, to fulfill the spirit of the GPL, you must allow the consumer of Software A to substitute a suitable library for Library B, or even to write their own. That’s the freedom that the GPL is designed to provide; the freedom to use your software in any way they see fit, including redistributing it to others (provided they also follow the GPL).
So it is imperative that Software A’s functionality is not impaired in any substantial way by the absence of proprietary library B.
6