Slashdot Mirror


GPLv2 Libraries — Is There a Point?

PiSkyHi writes "I understand that if I build an application that links with a library that is licensed under GPLv2, I must also make my application GPL2. I can see that value in this for an application. But for a library, what's to stop me separating my program into a GPLv2-compliant client app that talks to the rest of my (choose my own license) application?"

8 of 585 comments (clear)

  1. Step 1: see GPL by seanadams.com · · Score: 5, Insightful
    The GPL is not explicit on this, it's just that linking is the established rule of thumb. Last I checked, the specifics of multiple processes vs linking are only mentioned in the FSF's FAQ, so it's only a guideline for interpretation.

    I think a reasonable test would be to ask: is my program still mostly useful even if the GPLd helper/plugin is removed (modulo the specific removed function)?. If so, then I think it could be argued that your program is NOT a derivative work and that the GPL helper is governed the same as, say, a GPLd user application bundled with a commercial Unix/OSX distro. Personally I don't think it should matter how exactly it communicates with your code - what makes launching a process any different from a function call here?

    Conversely: artificially doing contortions with your software to move essential libraries out to a separate app is not only in bad faith, but it doesn't work around the license at all. And if you ever had to argue otherwise, anyone turning up your slashdot story would not probably work in your favor.

    IMHO the GPL, even v3, needs some work to clarify this question and also to close the hole for the software-as-a-service industry to modify GPL code without reciprocating.

  2. Umm... by Phroggy · · Score: 5, Informative

    what's to stop me separating my program into a GPLv2-compliant client app that talks to the rest of my (choose my own license) application?

    Umm... nothing?

    If you're writing your application from scratch without using anybody else's libraries, you're free to release it under whatever license you like, even if it happens to talk to a GPL'd client plugin thingie, and even if you wrote that GPL'd client plugin thingie around somebody else's GPL'd library.

    Why do you imagine that somehow there's a problem here?

    --
    $x='S24;r)>63/* h@<5+oZ)32"5cz';$me='phroggy'x$];
    $x=~y+ -xz+\0-Tx+;print$_^chop$me for split'',$x;
  3. Enhancements to the library stay LGPL by poliopteragriseoapte · · Score: 5, Informative

    The point is that enhancements to the library stay LGPL. I did this myself. I needed to modify LGPL libraries for the purposes of my application. I modified the libraries, and I am redistributing them under the LGPL. My main application is distributed under BSD license, and uses the LGPL libraries. The libraries make perfect sense separately (and in fact, I have people using them for reasons unrelated to the application I built). I think that, out of courtesy, and probably out of need, you need to make sure that the libraries are available separately.

  4. Re:GPL Fanatics by msuarezalvarez · · Score: 5, Insightful

    There is nothing wrong with you not using my code if you do not like my conditions, either...

  5. Re:The GPL Problem by minsk · · Score: 5, Insightful

    I've always found that position funny...

    Some people share something freely, with the requirement that anyone building atop it does likewise. They're zealots.

    Other people require you to agree to a contract before looking at their program. Disallow reverse engineering. Disallow redistribution. Disallow extension, enhancement, improvement, porting, circumvention. They're normal.

    Dude, what?

  6. Re:GPL Fanatics by Knuckles · · Score: 5, Insightful

    I realize this probably stems from an irrational fear of proprietary software -- fear that F/OSS code will get eaten up and essentially stolen if there wasn't the backing of the GPL.

    What's irrational about that?

    --
    "When I first heard Daydream Nation it quite frankly scared the living shit out of me." -- Matthew Stearns
  7. Mysql, anyone? by sanermind · · Score: 5, Interesting

    This reminds me of our experience with mysql.. they changed the license of their drivers (the jdbc driver, in this instance) to GPL from LGPL a while ago, and also affirmed a legal position (at least in their marketing materials) that using the now GPL library would require any application dynamically linking/loading it to also be GPL, with the exception of being able to buy licenses to a separate non-GPL'd commercial instantiation of the library. (They also conveniently hired the guy who had been maintaining the previously freely useable LGPL version).

    In theory, of course, someone else could re-invent the wheel and create another fully LGPL JDBC driver for mysql.. (I was ever-so-mildly tempted to do start work on that myself, out of spite and irritation, but didn't have the time).

    Needless to say, after talking to the lawyer we had to switch our entire infrastructure over to postgresql. On the bright side, I found that I rather preferred postgres as a more comprehensive and functional sql anyway. (No more having to do manual tricks for multi-merges, etc). Still, it seemed like very bad faith to switch the license like that right out from under people who had already been using it, all in the hopes of further monetizing mysql. (Yes, the earlier license applied to the old versions of the driver... which happened not to work properly with newer versions of mysql).

    I once talked to someone else else who makes a a bit of money on the side selling some piece of booking software. Unfortunately for him, almost half his clients were deploying his software in mysql shops. His software was a drop-in .war archive that was trivial to install (just copy it into tomcat/webapps or whatever (well, and run the database creation script to set up the tables for it) and it was good to go. After the license change he was unable to distribute a fully packaged pre-working .war file with the necessary drivers for client databases. (Oracle was propriatary, but free to distribute).. he had to write a specialized install script that the customer could use to unpack the .war, install the mysql jdbc driver, and repackage it, where the script required the client to affirm that they were using a legally licensed non-GPL version of the jdbc driver from mysql to be able to install/link it. This took the liability off of him ...The liability for having the temerity to want to talk with a basic software infrastructure service (such as a sql server), without GPL'ing his little niche app.

    I'm all for the GPL. I love it! I've used it myself in a few things I've developed. I love all the good it's brought, etc, the idea of openness, a publishing and peer-reviewed manner of developing code, all that.

    But I still find it very obnoxious to make a piece of library glue GPL. That's exactly what the LGPL is there for. Logically, it's not a derivative work of mysql if you use it for processing sql transactions (making no modifications or redistributions of it of any kind) any more than a file you create in the gimp is a derivative work of the gimp.

    --

    ---
    the pen is mightier than the sword, the sword is mightier than the court, the court is mightier than the pen.
  8. Re:GPL Fanatics by man_of_mr_e · · Score: 5, Informative

    The GPL does not guarantee that someone has to give you anything back. In fact, there is no reciprocation requirement at all.

    I can, for example, take your GPL'd work, make some changes, then sell it to my customer. I am required, by the rules of the GPL, to give my customer the source, and they are allowed to do whatever they want, including give it to others, but if they paid $1,000,000 for it, chances are they're not going to do that. You have no right to demand the changes I made, or even a copy of the program from me.

    This is a common myth around the GPL, that it enforces a reciprocation agreement. It doesn't. In fact, licenses that have such agreements are not compatible with the GPL.