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?
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
Bruce Perens.
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.