• Forum
  • Lounge
  • The Essential Freedom missing from the F

 
The Essential Freedom missing from the Free Software Definition

Pages: 12
Free software, as defined by Richard Stallman, must provide the user with the following freedoms:
rms wrote:
Freedom 0: The freedom to run the program for any purpose.
Freedom 1: The freedom to study how the program works, and change it to make it do what you wish.
Freedom 2: The freedom to redistribute copies so you can help your neighbor.
Freedom 3: The freedom to improve the program, and release your improvements (and modified versions in general) to the public, so that the whole community benefits.


However, there's one missing:
rms should have written:
Freedom 4: The freedom to distribute your own code under the license you choose.


I've been writing a shell in C, and I decided that, instead of using the input and history libraries I'd been writing, I'd use the more flexible and robust GNU Readline and History libraries (hereafter referred to collectively as "Readline"). I just found out that Readline is licensed GPL instead of LGPL like I assumed, meaning that if I want to distribute my own code, I have to license it GPL.

The GPL is a virus - anyone who wants to use GPL'd libraries must infect their software with its presence, propagating it and spreading the disease. It's almost as bad as some of the proprietary licenses it aims to defeat (fighting fire with fire). The license text itself is a convoluted mess. I remember helios pointing out once that BSD licenses tend to be < 2 kiB, while the GPL is nearly 32 kiB. 32 kiB of viral RNA ready to infect any project it comes into contact with. (I'll admit that by this point I'm just being silly).

With that being said, I have a couple of questions:
1. If I link to Readline dynamically rather than statically, do I still have to license it GPL? I really wanted it to be MIT licensed.
2. If not, are there permissively-licensed alternatives to Readline?

Note:
For anyone that is not familiar with GNU Readline/History, Readline is a library which provides user input with line editing, while History (somewhat seamlessly) allows you to store any input text in memory for command history. The history can also be saved to a file and then recalled, providing more permanent command history.
Last edited on
closed account (3hM2Nwbp)
I'll admit that by this point I'm just being silly


You're not being silly, you're just rephrasing the GPL in non-legalese.

From what I've gathered, dynamic linking with a GPL codebase is a gray area, which pretty much boils down to whoever has the most money in a legal dispute will win. My advice would be to avoid GPL code-bases like the plague, and if you do need to work with one, remember to wear your hazmat suit.

It's almost as bad as some of the proprietary licenses it aims to defeat


IMO it's much, much worse. Think of it like the punishment of Tantalus1. It's right there...you can see it, but you just can't use it.

1 http://en.wikipedia.org/wiki/Tantalus
Last edited on
It's nice that someone agrees with me.

I've still got the history code I wrote and I can probably write my own version of readline, but it's just a pain. I think there are alternatives, though, so hopefully I can find them.

[edit]
I laughed a few times imagining what I wrote was what was in the actual license text.
Last edited on
closed account (3hM2Nwbp)
If it was, the FSF couldn't trick as many people into spreading their virus license.
closed account (1yR4jE8b)
It's almost as bad as some of the proprietary licenses it aims to defeat (fighting fire with fire).


That's *exactly* the point, hence the term copyleft. GNU code is still copyrighted, it just has different distribution clauses. It isn't a license to do what you want with it, it's to force you to do things the way GNU wants to you to do it.

Anyway, don't worry about it, the MIT License is GPL Compatible: http://en.wikipedia.org/wiki/GNU_General_Public_License#Compatibility_and_multi-licensing
If GPL also allowed to redistribute everything under any license they wanted, then what would be the difference between GPL and public domain?
closed account (z05DSL3A)
Public domain has no intellectual property rights holder so no-one can tell you what you can and can't do with it. With GPL (et al) someone still holds the rights to say how it can be used/copied/published...
Wasn't exactly that the complaint there? That the license holder has the direct to say how his code can be used?
The GPL should stop people from re-licensing GPL'd code, it shouldn't stop people from licensing their own code non-GPL. That I would be ok with.
32 kiB of viral RNA ready to infect any project it comes into contact with. (I'll admit that by this point I'm just being silly).

Actually, another name for a license like the GPL is a Viral License1.

1http://en.wikipedia.org/wiki/Viral_license
Quote from the website above:
Richard Stallman has described this view with an analogy, saying, "The GPL's domain does not spread by proximity or contact, only by deliberate inclusion of GPL-covered code in your program. It spreads like a spider plant, not like a virus."


Spider, you say? That's it, I'm never using GPL'd software.
I'm going to use libedit instead: http://sourceforge.net/projects/libedit/
Last edited on
If I might share my 2ยข...

I'm fine with the GPL being used for standalone applications that don't require/use extensions that may also have to be licensed under the GPL.

But for libraries? That's extremely restrictive. I disagree with GNU project on this one. Libraries *should* be LGPL if not a more permissive license.

-Albatross
I agree, the GPL is ok (but not ideal) for standalone programs, but it shouldn't be used for libraries. That's specifically what the LGPL is for (the L used to stand for Library).
However, I don't get it, why not simply put the GPL license on your code?

You can re-license your code later when/if you link to a different library (which I understood, you are already doing).

So, what is the problem with GPL?
So, what is the problem with GPL?


The problem is that it doesn't allow you to re-license the original author's work, even after it becomes part of your own. [/sarcasm]
@tition, Catfish
The problem's not that I'm trying to re-license someone else's work, even more permissive licenses like the MIT license and even the LGPL usually have clauses that say something along the lines of "The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software." (from the MIT license).

The problem is that if I want to use a GPL'd library then not only can I not re-license the original author's work non-GPL (which is absolutely fine) but I also can't license my own work non-GPL, which frankly, is ridiculous. I'm not looking to steal or re-license someone else's work, I just want my code to be licensed under a more permissive license than the GPL (specifically, the MIT license). Even if I wanted to use the GPL anyway I'd still be annoyed, because it's simply not right to force someone to use a license just because you prefer it.

The reason permissive licenses are better is because the only thing they stop you from doing is re-licensing someone else's code. The GPL on the other hand, does that and forces someone else to license their code GPL if they use GPL code in any way (even if they link to it dynamically).

- Chrisname written, but not read.
but I also can't license my own work non-GPL


I think in such case you should be able to double-license

"This portion of the code is distributed under the GPL and the MIT license. Should you chose to drop all portions of the code that are not written solely by me, you are free to use the code written by me under the MIT license. Feel free to contact me if you want the code written by me under any other license."
Last edited on
Pages: 12