Is GPL software free as in “free love”?

I was contemplating the other day how to extend AB Commander to make it able to collaborate with several third-party software products. For example, it would be cool to add some support for the 7z files, which are created by the file compressor 7-Zip . It shouldn’t be too difficult, I thought, because 7-Zip is an open source project, I could examine its source code to see how exactly the 7z files are handled, and maybe reuse some of its code in AB Commander?

Not so fast. 7-Zip is licensed under the GPL license, which strictly forbids the re-use of its source code in the non-GPL’d projects. If I want to use some of the GPL’d code in my own software, I need to convert my whole project to the GPL license and open its whole source code, something I don’t want to do.

After thinking some more, I came up with an idea: I’d make a separate module (a plug-in) that would serve as a bridge between my closed-source project and the GPL’d project. I would make the plug-in GPL’d (because it would need to use some of the GPL’d code), and publish its source code.  My closed source project would link to the plug-in, the plug-in would link to the other GPL’d project’s code, and everyone would be happy: the users of AB Commander would get additional software functionality, the plug-in would be GPL’d, and I would keep the source code of AB Commander closed. Pretty smart, huh?

Again, not so fast. Let’s browse through the GPL FAQ, that explains the issues related to linking between proprietary software and the GPL’d software (or, as they put it, “free” software, where “free” is as in “free speech”). For example, the answer to the question Can I release a non-free program that’s designed to load a GPL-covered plug-in? reads “In order to use the GPL-covered plug-ins, the main program must be released under the GPL or a GPL-compatible free software license…

Huh? I could understand the requirement to GPL any code derived from a GPL’d code, it’s their code and they are free to restrict its re-use anyway they want, but to require two separate modules dynamically linking to each other to be covered by GPL if only one of them is GPL’d? It seems like asking a bit too much. Especially considering that GPL programs have no reservations about linking to proprietary software. Just take any software for Windows, GPL or not, it’s linking to the Microsoft’s proprietory system libraries. Looks like the philosophy of the “free software” is it’s OK to take advantage of the evil and dirty proprietory software, as long as it is not trying to link back to take some advantage of the GPL’d software.

Not fair!

Update: Apparently I am not the only one who thinks so:

Another update: Just found the following article with a legal analysis of this very problem, that confirms the “absurdity” of the GPL’s approach to the software plugins:

2 thoughts on “Is GPL software free as in “free love”?

  1. Zac

    You can still use 7zip by making exec calls to 7zip executables. But as to linked libraries: your proprietary software inhibits freedom, so it’s incompatible with both the philosophy and legality of the GPL. I hate when people complain that the GPL is restrictive. 7zip is a copyrighted program, and its authors have the right to release it under whatever terms they want – and they evidently *don’t* want you profiting from their work without (a) attributing their work and (b) contributing something back to the community. What’s wrong with that? You maintain the right to control the terms under which your proprietary software can be used, why shouldn’t the authors of GPL software?

  2. AB Post author

    Zac: thank you for your comment. I wrote all I have to say about it in the post itself, I don’t want to sound like a broken record by repeating it here :-)

Leave a Reply

Your email address will not be published. Required fields are marked *

IMPORTANT! Do not put any URLs in the comment, or it will be rejected. Before submitting, please solve the following simple math problem (so we know that you are not a spambot) :-)

What is 5 - 3 ?
Please leave these fields as-is: