Or, they could just not use the GPL for libraries and use the LGPL instead, since that's what the LGPL was created for (as I mentioned before, it originally stood for "Library GPL"). It's simpler that way.
Alternatively, the GPL could just be more specific on the issue of dynamic linking. If the GPL allowed linking dynamically to libraries without forcing the calling code to be licensed GPL then I'd have less of an issue with it.
I think in such case you should be able to double-license
That's exactly the problem. You are forbidden to do that.
If you use GPL-licensed code as part of your program, your entire program must also license using the GPL.
The LGPL concedes the difficulty with that because otherwise no one could write proprietary code on a Linux box -- which is a bit antithetical to the global aims of the FSF and Linux. LGPL code allows you to link with GPL code but license your own code as you wish.
Why don't you just dual-license *your* code under the MIT License and GPL. The MIT License is compatible with the GPL, and as long as you don't copy-pasta GPL code into your project you can still distribute *your* code under the MIT License.
I don't think it works like that, according to the GPL any code that links statically with a GPL library is considered a derivative work of that library and therefore has to be licensed under the GPL. It's not as clear-cut with dynamic linking but they'd probably still throw a tantrum about it.
I might try contacting the FSF and asking them. I've written my own lightweight (read: lacking in features) implementation of the History library, but I'd rather not have to hack around with termios and terminfo and all that stuff, and I'd like even less to have to have my shell use (n)curses. Unfortunately, though there are alternatives to Readline none of them are very good and none of them have much in the way of documentation either.
I think in such case you should be able to double-license
That's exactly the problem. You are forbidden to do that.
I disagree. I can always put the code written by me alone (even if non-linked and non-usable stand-alone) under any license I want. The bundle should altogether be GPL.
If I double-license and someone cuts off all GPL-code, takes only my own code, and applies the MIT license, than he is in no violation of the GPL. GPL'ed parts and dual licensed (GPL+MIT) parts, should, as a matter of common sense, be kept in separate files.
I sent an e-mail saying this to licensing@fsf.org:
I wrote:
...
I've been writing a F/OSS command interpreter and I wanted to use the GNU Readline/History libraries with it. However, I learned that Readline is licensed GPL which, to my understanding, means that I can only use it in my program if my program is also licensed under the GPL. My personal preference when it comes to licensing is for permissive, GPL-compatible licenses such as the X11 license.
Am I allowed to link an X11-licensed program with the GPL-licensed Readline library? If so, is that statically or dynamically?
Some really good information from Stack Overflow: http://stackoverflow.com/questions/1098051/interfacing-with-gpl-applications-from-mit-licensed-code-is-a-dual-license-una
Many of the most common free software licenses, such as the original MIT/X license, BSD licenses (in the three-clause and two-clause forms, though not the original four-clause form), and the LGPL, are "GPL-compatible". That is, their code can be combined with a program under the GPL without conflict (the new combination would have the GPL applied to the whole).
Compatible? More like susceptible. (Notice the quotes around "GPL-compatible")
The article does not however go into detail regarding what "combined code" is defined as. Could it be C&P source code, static linking, or even dynamic linking? I could agree that it's "compatible" so long as the GPL licensed libraries stay GPL licensed, and the non-GPL licensed libraries stay non-GPL licensed...but is that the case?
I'm glad I'm not the only one who believes a programmer is entitled to do as they please with their own work. Barring any IP rights signing agreement, a programmer should not be legally bound to hand over their time and effort to the public.
Of course stallman and what's his name get around that by charging an arm and leg for support. They aren't starving artists in the least.
I use GPL apps when I can, but avoid GPL code like the plague and try not to read any of it for fear of "copying" unintentionally.
@Luc Lieber
About license compatibility: http://www.gnu.org/licenses/gpl-faq.html#WhatIsCompatible
What does compatibility mean, exactly: http://www.gnu.org/licenses/gpl-faq.html#WhatDoesCompatMean
If chrisname dual-licenses his code GPL/MIT, then people that use *his* code can choose to use the terms of either/or license.
EDIT:
I'm glad I'm not the only one who believes a programmer is entitled to do as they please with their own work. Barring any IP rights signing agreement, a programmer should not be legally bound to hand over their time and effort to the public.
You are not legally entitled to do whatever you want with the works of others. If you want to use GPL code, you need to abide by the GPL terms.
I understand that dark, I'm not totally f*cking stupid, ok? I just worded it badly. I just don't think it's appropriate of them to force a programmer to open their methods to the world because they used some partial of a GPL code.
I avoid GPL code. If I find I don't like the license, I avoid the product.
I want people to be able to use my code, that's why I use the X11 license (apparently "MIT license" is the wrong name since MIT has a few different licenses).
@darkestfright,
All GNU GPL versions permit such combinations privately; they also permit distribution of such combinations provided the combination is released under the same GNU GPL version.
Isn't this saying that if I want to license it something other than the version of the GPL used by Readline (or a later version if it has that clause) I can't distribute it?
The GPL doesn't make any distinctions between linking, which is why we have the LGPL.
3 and 4 are almost the same question, and turns out the answer is actually "no". You can (and it is used quite often) circumvent the GPL by using networks, pipes, or even "malware" to inject GPL code into the memory segment of a program which would then use it.
This is why we have the Affero GPL now: http://en.wikipedia.org/wiki/Affero_General_Public_License .
I guess you were right, darkestfright. This is the response I got to my e-mail:
Hi Chris,
Thank you for writing in and for creating free software. Please keep in
mind I am a volunteer and not licensed to practice law in your (or any)
jurisdiction. I am giving you my opinion as a service to the free
software community.
Basically my code can be X11 licensed but collectively, my program and Readline have to be distributed under the terms of the GPLv3. I guess what I'll do is leave the X11 license in my source files but put the GPLv3 in a file called COPYING; then, in the README file I'll say that my code is X11 licensed but is distributed under the GPLv3.