News for hackers. Stuff that matters.
Re:Twenty questions about the GPL by blasdel on Monday July 13, 2009 @04:25PM (#702407)
GNU Readline is a GPL library controlled by the FSF, that implements basic interactive line editing. For a long time it was more or less the only one. RMS believes that if you link with it in any way, even as a compile-time default-off option, your product must be GPL: http://clisp.cvs.sourceforge.net/*checkout*/clisp/clisp/doc/...

As a result, for years and years, non-GPL (not just closed-source, BSD too) programs on Unix systems had shitty user-hostile REPLs. In large part, they still do.

A programming language implementation is not a derivative work of an optional command-line editing library in my world, but it is in RMS's.

Re:Twenty questions about the GPL by DarkShikari on Monday July 13, 2009 @04:42PM (#702439)
even as a compile-time default-off option

You're glossing over some of the complexities of this rather interesting situation.

In particular, the guy who wanted to be able to make it a compile-time option had a program that would do basically nothing without readline, and you had to enable it for the program to work. A similar issue is with two-part programs; one part non-GPL, one part GPL, which are left up to the user to link himself.

What matters is not what RMS says (nobody cares about RMS), but what the lawyers say. Apparently, the law is extremely harsh on this sort of "hack", which may seem fine to a programmer, but to a judge will be seen as an obvious attempt to work around the terms of the license and will be greatly punished.

Re:Twenty questions about the GPL by jm4 on Monday July 13, 2009 @05:14PM (#702494)
In particular, the guy who wanted to be able to make it a compile-time option had a program that would do basically nothing without readline

That's not true. If you read the story you'll see that the guy had a working program for years before he used readline. The use of readline only improved an already working program. Not to mention, the program in question was a language implementation and readline had nothing to do with it. It was a user interface perk.

At one point he said he'd distribute a working program without readline or readline support even enabled by default and leave it up to the user to configure it. It was only going to have an interface to readline without including any readline code. He was told he couldn't even do that.

In the end he chose to GPL the entire language implementation. To him, it probably didn't make a difference what the license was and it was easier than replacing readline. Personally, I would have replaced it with a BSD-licensed alternative just out of spite given the way the whole thing was approached. The line about how a judge wouldn't be convinced the program didn't violate the GPL read like a thinly veiled threat to me.

Re:Twenty questions about the GPL by DarkShikari on Monday July 13, 2009 @05:19PM (#702509)
At one point he said he'd distribute a working program without readline or readline support even enabled by default and leave it up to the user to configure it. It was only going to have an interface to readline without including any readline code. He was told he couldn't even do that.

Then RMS was wrong. The SFLC says you're quite allowed to do that, a classic example being ffmpeg, which can be LGPL, GPL, or even non-redistributable depending on what external libraries you link it to on compile-time.

People have to learn that RMS is not God and that just because he says something about the GPL doesn't mean that the lawyers agree.

Re:Twenty questions about the GPL by calcnerd256 on Monday July 13, 2009 @05:02PM (#702470)
What if there was a proof-of-concept of a forthcoming replacement for the GPL'd part, and it happened to be vaporware? I'm not too familiar with all of this.
Re:Twenty questions about the GPL by DarkShikari on Monday July 13, 2009 @05:15PM (#702498)
The farther you get into the gray area, the less of a clear answer you can get, because it becomes more than anything else an issue of which way the judge rules. This is why generally it's a good idea to err on the side of caution with any type of software license.
Re:Twenty questions about the GPL by callahad on Monday July 13, 2009 @05:20PM (#702510)
I think that particular area is ripe for further exploration. Especially in the context of Jacob's second and third questions:

Does the answer change if foo.py does not ship with bar.py, but nonetheless requires foo.py to function? Does the answer change if foo.py does not ship with bar.py and does not require its presence to function?

If GPL foo.py is the only library that can fill that void, then sure, once your app runs a code path that takes it through foo.py, it's a derivative work. But what something else could fill that void?

For instance, what would happen if Editline exposed a Readline compatibility layer?

Re:Twenty questions about the GPL by gchpaco on Monday July 13, 2009 @06:11PM (#702603)
This is actually a very practical question, as IIRC Editline was readline compatible on some levels.

What follows is all my hazy recollection. If memory serves, the answer was this, although obviously if you ask RMS you get slightly different answers depending: you have to GPL your code (if you distribute it) if you link to GPL code. If you can plausibly link to several different libraries, not all of which are GPL, you don't. So when readline was alone in the world, everything that used it had to be GPL. The BSD folks wrote editline specifically to avoid this--initially, editline was extremely lame compared to readline and I think might still be, but because the API was equivalent they could say "We're BSD licensed through and through; use our code for anything you want" and still have a non-horrible CLI and yet at link time decide to use the good library.

I think the reason this works legally, although I'm not a lawyer, is because yes, when you link your program with readline that executable cannot be distributed except under the terms of the GPL. Because you have multiple potential targets for this sort of thing, nobody can argue that you are trying to technically evade the requirements.

But apparently this is still contentious.

Re:Twenty questions about the GPL by durin42 on Monday July 13, 2009 @06:58PM (#702689)
editline is intended to be API compatible, and has weakened the argument that linking implies work-derivation at least somewhat. As far as I know, nobody has ever been willing to test that theory in court since they'd lose so much political face in the process.

Sometime last year, I saw an article claiming that because of libedit's existence, we could all link against readline from whatever we wanted (or at least that this showed that the dynamic-linking-is-deriving was crap), but I can't find the article now.

Re:Twenty questions about the GPL by calcnerd256 on Monday July 13, 2009 @04:59PM (#702467)
Using Readline with mzscheme was the first time I, as a user was made aware of the inconvenience of the GPL. It figures, LISP always shows how everything else is flawed.
Re:Twenty questions about the GPL by calcnerd256 on Tuesday July 14, 2009 @12:35PM (#704014)
I'm not sure why that was downvoted.