Slashdot Mirror


GPL/LGPL Issues - Moving GPL'd Code into Libs?

QuantumG asks: "What happens when someone writes a program and releases it under the GPL and then someone discovers that the program contains useful portions of code that really should be in a separate library that should be under the LGPL. One cannot simply pick up GPL'd code, make it into a library and release it LGPL. That would violate the GPL, right?" Would it? Hit the link below for more.

"Here is an e-mail I fired off to the leader of MaPlay 1.2+ for Win32, an MP3 player for Windows asking his opinion.

Date: Sat, 29 Jan 2000 17:53:27 +1000 (GMT+1000)
From: Trent Waddington 
To: ctsay@pasteur.eecs.berkeley.edu
Subject: MAPlay & Licenses

Hello.  I have been looking at MaPlay 1.2+ for Win32 and have been
very impressed with it.  I have taken the base code and added a simple
API to it (and removed playlists and such) and recompiled it as a
DLL. Now the question becomes one of LGPL vs GPL.. If I use the DLL in
a program to play MP3 files, am I then required to release the source
of that program under the GPL?  Obviously if I wrote a trivial WinAmp
like MP3 player frontend and used the DLL as the backend I would
personally expect that to be released GPL.  However, let's suppose
that I write a game and instead of using a bunch of enormous WAV
files, I MP3 compress them and use the MaPlay DLL to play them.  This
to me sounds like a case for LGPL, but the DLL is a "derived work" of
a GPL'd program and, as such, cannot be released under anything less
liberating than it.. is LGPL *less* liberated than GPL or *more*?
I don't think using MaPlay code to play MP3 files instead of WAV files
justifies that an entire game's source tree must be GPL'd.  Obviously
it should be for Open Source reasons but is the enforcement of GPL
valid?

I would personally be interested in knowing how the programmers of
MaPlay would feel if the MaPlay source was (hypothetically) used in a
game that was closed source.  Assuming there was something in the
about box / ending credits saying that the game used the MaPlay source
and that the source (to the player code) was available at the MaPlay
web site. Would you feel ripped off?"
Can anyone unravel the LGPL and GPL issues inherent here to help him out?

5 of 203 comments (clear)

  1. this is why you need to think about these things.. by mcc · · Score: 4

    this is why you need to think about these things.. (Score:)
    by mcc (mcc@drowned.cx) on soon (#)
    (User Info) http://drowned.cx/
    this is why people writing open source software need to think these things out ahead of time..

    i personally like the restrictions of the LGPL better and think they're a lot more "fair". but i realize they shouldn't be for everything.
    if you're doing something that could conceivably be linked into, rather than just used, you have to take the time to think out whether it would be better to put that part under the LGPL.

    look, for example, at Macintosh NSCA Telnet 3.0, which the NSCA has given to this guy to continue work on. The guy placed it under the GPL/LGPL, and the way he did it is a model of well-thought-out application of the LGPL. The "library" portions are LGPLed-- the low-level bits,the bits that someone could concievably reuse later as a basis for a telnet feature in some other program. Such that people will feel free to use it casually, improve their software and maybe improve the LGPLed open bits (which they would then have to redistribute the source to) without having to go to the trouble of totally opening something they may not feel ready to open.
    The front-end bits, meanwhile, the bits that you wouldn't want anyone outright stealing, are GPLed.
    Each individual .c or .h file is split up into a different folder, and each one indicates which liscense it's under.

    But most people don't think these things out, they just slap "GPL" on it, and it doesn't occur to them to think whether some of it it may be better for everyone in general if they allowed some of the bits of the program to be linked against.
    Software in the "public good" doesn't mean it HAS to be GPLed.. THINK about how people may best be served by your program, and think about what may inspire them most likely to _use_ your library to link against, and maybe as a result improve it in ways they wouldn't if they didn't have a use for it.. Even if it isn't a library, even if it's something that could eb adapted into a library. THINK.

  2. ``Intermediate'' GPL? by David+A.+Madore · · Score: 4

    Since we're on the topic, I'd like to as the following: do you think there's room for an ``Intermediate'' GPL, between the (Greater) GPL and the Lesser GPL?

    More precisely: the .*GPL says that all derivatives of the work must remain free. The Lesser GPL allows linking of any programs / libraries (even proprietary programs / libraries) in the program / library under discussion. Whereas the (Greater) GPL allows linking only with programs / libraries that can be redistributed under the terms of the GPL.

    For example, an LGPL'ed library can be used by a proprietary program. A GPL'ed library cannot, but it cannot even be used by a free program such as Mozilla (yet it can be used by a program covered by the BSD license for example), since Mozilla cannot be redistrubted under the terms of the GPL (whereas a BSD-licensed program can).

    Now isn't there room for an intermediate license which would forbid linking with proprietary programs just like the GPL does, but allow linking with free software even if they are covered by licenses, such as the MPL or the QPL, which do not permit redistribution under the GPL's terms? I think this would achieve the goals which Stallman wants when he insists that some libraries should be covered by the GPL, and at the same time it would avoid excessive restrictions (consider how the expat library is released under the alternative between the GPL and the MPL: evidently jclark would have used such an Intermediate GPL).

    The idea seems so obvious I can't understand why it hasn't been applied yet? Is there some basic legal fact I'm missing here?

  3. Re:This is a really simple answer... by nuggz · · Score: 4

    Point 3 is incorrect
    Any program which references the library is considered a derivative work of the library according to the terms of the GPL.
    You agree to that definition of derivative work by accepting the GPL.
    If you do not agree to that definition you are not following the terms of the GPL, and thereby have no license to redistribute it.

    Either accept the GPL, or don't accept the GPL.

    This prevents people from taking a GPL app, turning it into a library, then selling a new front end.

  4. Re:This is a really simple answer... by Bruce+Perens · · Score: 5
    Stallman renamed the LGPL to "Lesser GPL" from "Library GPL". It makes more sense that way because the license doesn't really need to be applied to a library. Either the GPL or the LGPL can be applied to any program.

    If you want to use a GPL library, even with dynamic linking, you should either GPL your program, or find another library to use. So, you can make the program into a GPL library and make a GPL program on top of it.

    If you are concerned that you can't make a proprietary application that uses the library, you should consider that the copyright holder would have used the LGPL had they wanted you to do that, whether or not the program was a library at that time.

    Thanks

    Bruce Perens

  5. In Defense of the LGPL by hypergeek · · Score: 5
    (BE WARNED: The following post is likely to piss off somebody out there. I'm not here to start a holy war or anything, just to make discussion. So think for a few seconds before impulsively launching your barrage of flames. :)

    The LGPL does have its uses, despite RMS' deprecation of it.

    For example, if I wanted to release my software under a less restrictive license than the GPL, I'd be tempted to use the BSD license at first, but if someone incorporates that into a proprietary license, (especially those nasty "source available" licenses that claim to be open source but aren't), then they can sue me for using something derived from my code!

    If I use the LGPL, then any portion of the code that was originally mine stays available for me to use with whatever modifications others add, but it's still usable by anyone, even those whose bosses insist that they write (gasp!) proprietary software.

    If later on, I decide that I want to spread free software "virulently", I can still place my LGPL'ed software under the GPL (the LGPL explicitly lets you do that), just as I could if I had placed it under the BSD license.

    To me, that's what free software should be about, a way to facilitate the free sharing and communal improvement of your code, not forcing others to do the same if they don't want to.

    IMHO, ESR really hit the nail on the head when he identified the "Bazaar" style of development popularized by Linux. Open source software can compete on its own merit, without resorting to a Borg-like assimilation of all the world's software.

    --
    Stay up hacking each weekend. Sleep is for the week.