Hacker News new | ask | show | jobs
by pyre 3754 days ago
It's the idea that it's "forcing" the developer of proprietary software to make all of their software GPL if they are including GPL code in it. The thing that people fail to realize is that nobody is forcing said developer to use the GPL code instead of writing it themselves. They are not owed complete, unfettered access to relicense the code as they see fit just because it exists and the developer wants to use it.
2 comments

> The thing that people fail to realize is that nobody is forcing said developer to use the GPL code instead of writing it themselves.

When used on an end-user application, GPL does a fantastic job. But in library use, it's a very viral license.

Say you wanted to write a KDE-native application back when Qt was GPL or commercial only. You couldn't do it by using GTK+ ... it wouldn't look quite right. You would have to pay money, or make your application GPL as well. And what if you couldn't pay?

It's not hard to imagine a world where the GPL truly took off, and everything from the top-level GUI toolkit all the way down to libc functions were all GPL'ed. You'd be forced to start from absolutely nothing to make even simple applications. Years and years of work just to get a basic desktop application going. And it would be entirely alien to the rest of the OS. That's not really an "option" anymore. Nobody would implement that much just to port to one OS.

No, we're not there. And no, we're never going to get there. Most library writers wisely choose the LGPL, and many others release everything under the BSD license. But if you take the GPL to its extreme conclusions, you can see why people consider it viral.

If GPL is viral then proprietary licenses are deadly radioactive material.

Say you wanted to write a streaming application and have popular films on it. You would have to pay money, and make your application follow the restrictive demands of the movie publishers. And what if you couldn't pay?

You'd be forced to start from absolutely nothing, with no proprietary movies at all. Millions and millions of licenses cost just to get a basic streaming application going, and it would entirely alien to an community where everyone share and share alike. That's not really an "option" for most developers of streaming services.

Proprietary movies is already in its extreme conclusion, and you can see why so many people consider proprietary licenses as deadly radioactive material that puts people in jail.

You're right, proprietary licenses are even worse for sharing. My only point was that the LGPL and BSDL are much more permissive (less viral) than the GPL for sharing library code.
Your gracious replies here are awesome!
That's bullshit. So you're entitled to the work of others, but others aren't entitled to your work? You must choose: use GPL and make your code GPL too, or release closed proprietary software and start from scratch. You want to piggyback off others' work but you don't want anybody piggybacking off your work. Well, you can't have the cake and eat it too.
> You want to piggyback off others' work but you don't want anybody piggybacking off your work.

Anyone who has ever written a program for DOS, Windows, OS X, Linux or BSD has piggybacked off others' work. Anyone who has ever used a compiler to build their applications has. By that logic, proprietary programs should not exist at all; except maybe the OS kernels.

And you're welcome to think that way. I don't care for proprietary applications much myself. But I think you're pretty far removed from the mainstream at this point to advocate for the destruction of sales for the entire commercial software industry.

> You must choose: use GPL and make your code GPL too, or release closed proprietary software and start from scratch.

And that's exactly what people do. It's made substantially easier because most of the critical libraries (C runtime, GUI toolkit, etc) aren't under the GPL.

I somewhat agree with your conclusions, but not with your reasoning.

Anyway, to me GPL and LGPL always was the same thing but in different contexts: GPL = Applications; LGPL = Libraries - a nice trick is instead reading Lesser GPL, read it Library GPL. It fells better.

I think the restrictions on linking are the primary objection people have, and I guess also the patent stuff in v3. I would like to see a license that is weaker than LGPL (static linking allowed) and stronger than BSD. (For example, some projects are licensed as GPL+linking exception.) Basically, I'd like a license that said distributed modifications to the source code for this project must be open, but everything else is a free-for-all.
I think you want GPL + classpath exception:

Linking this library statically or dynamically with other modules is making a combined work based on this library. Thus, the terms and conditions of the GNU General Public License cover the whole combination.

As a special exception, the copyright holders of this library give you permission to link this library with independent modules to produce an executable, regardless of the license terms of these independent modules, and to copy and distribute the resulting executable under terms of your choice, provided that you also meet, for each linked independent module, the terms and conditions of the license of that module. An independent module is a module which is not derived from or based on this library. If you modify this library, you may extend this exception to your version of the library, but you are not obligated to do so. If you do not wish to do so, delete this exception statement from your version.

There's no distinction about static vs. dynamic linking, and no specific requirement like the LGPL to be able to relink the application (though the GPL's general requirement to produce useful source + build scripts for the library still applies).

I'm also fine if you pull out bits of my code and use them in your codebase, just as long as you release the changes to those bits. Probably function-level granularity for separating mine from yours would work, and I don't expect you to write wrappers. Also automatically doing stuff with my code is fine.
I'd expect that counts as modifying your library (to remove all but the lines of code I want to use), at which point I can avail myself of the classpath exception by being GPL-compliant for just those lines of code -- offering the complete corresponding source in the preferred form of modification.
I think you still have to ship it in a separate tree / binary, but I'm not sure. I don't think the exception means you can put my GPL function in your proprietary code and call it as long as you reveal the changes to my function. But I'm willing to settle for "who knows, really" :)

I worked a bit on Classpath but that was a long time ago. There are like, lots and lots of emails + irc logs to dig up about that little exception and what it means. Not having things tested in court is a problem, and the lack of funding for FSF lawyers is another.

Possibly, LGPL or MPL?

You can link it with whatever proprietary code you want, but keep the LGPL library free. As long as you don't want to link LGPL-licensed library statically, it's quite simple to comply with license terms.

There's also MPL (v2), that's weaker than LGPL, roughly operates on file-level (rather than LGPL's library-level).

I've seen projects use LGPL with a added static linking exception (as in allowing it).
I'm fine with static linking, it's even fine if you want to #include my source code. I never paid much attention to the MPL, will see, thanks.