From: colin AT bird DOT fu DOT is DOT saga-u DOT ac DOT jp (Colin Peters) Subject: GPL and LGPL (was RE: coolview+less: search dying) 24 Sep 1997 19:03:15 -0700 Message-ID: <01BCC99E.807FB4C0.cygnus.gnu-win32@gbird0> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: "'Hilton Fernandes'" Cc: "'GNU-Win32'" Hilton Fernandes[SMTP:hfernandes AT mail DOT geocities DOT com] wrote: >On 22 Sep 97 at 22:08, Alex wrote: >> There's always the Berkely copyrighted regex stuff. Could someone however >> explain to me in layman's terms what the difference is between GPL and >> LGPL? [snip] > >I'd like to ask people that can understand legalese, if any of the >next statements is correct: I make no special claims, but here is my interpretation of the basic impact of these two different licenses on programmers. Remember, I am not a lawyer, so this in no way represents a legal opinion (that's called covering your butt). >- under GPL you can use a software, but not include it in your > distribution. If you do, you actually put your software under GPL > terms and must offer its source code, as well as make it available > to Internet download. You can include GNU software in your distributions of non-GNU software. Your software is still separate from the GNU software. In addition, mere aggregation of another work not based on the Program with the Program (or with a work based on the Program) on a volume of a storage or distribution medium does not bring the other work under the scope of this License. You can even sell just the GNU software. You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee. > For instance, you can compile your software with gcc, but cannot > include it in your distribution. Otherwise, your software will > be GPLed. Not true, especially if your software does not use gcc in it's operation. In this case the two programs are simply being aggregated and the GNU software is covered by the GPL, while your software is covered by whatever license you use. Now, if your program uses the GNU software, and can't be considered an independent work (it won't do anything useful by itself), then it is a "derived work" and *does* fall under the GPL. The parts you wrote are still yours, but you can't distribute them with the GNU software they need to work unless the entire distribution falls under the GPL. That's the GPL. The LGPL (yes, Library GPL) is slightly different. >- under LGPL (_L_ibrary GPL?), you can include a LGPL software in > your distribution. However, if you change -- or enhance -- it, > your distribution will be under LGPL too. Not quite. The main difference between the GPL and LGPL is that under the GPL a program that is linked with GPLd code becomes a derived work and the whole thing falls under the GPL, meaning you must distribute the source code for the parts you wrote as well as the original GPL code. Under the LGPL 5. A program that contains no derivative of any portion of the Library, but is designed to work with the Library by being compiled or linked with it, is called a "work that uses the Library". Such a work, in isolation, is not a derivative work of the Library, and therefore falls outside the scope of this License. In other words you can write a program that uses the Library and distribute it with no restrictions... except that you can only do that "in isolation", that is, not including the Library. (Note however, that this does seem to imply that dynamic linking is entirely acceptable and places no restrictions on the work.) However, linking a "work that uses the Library" with the Library creates an executable that is a derivative of the Library (because it contains portions of the Library), rather than a "work that uses the library". The executable is therefore covered by this License. So your executable distribution is covered by the LGPL. However that does not mean that you have to distribute the source for your code. It also doesn't mean that you have to allow your licensees to redistribute your work (verbatim or modified). 6. As an exception to the Sections above, you may also compile or link a "work that uses the Library" with the Library to produce a work containing portions of the Library, and distribute that work under terms of your choice, provided that the terms permit modification of the work for the customer's own use and reverse engineering for debugging such modifications. The end user must be able to modify the work for "their own use", and you don't have to give them rights to redistribute the work or modified versions of it. Also you must a) Accompany the work with the complete corresponding machine-readable source code for the Library [...] and, [...] with the complete machine- readable "work that uses the Library", as object code and/or source code, so that the user can modify the Library and then relink to produce a modified executable containing the modified Library. The important difference here is that you only have to give them the object code so that they can recompile the complete work if they modify the Library. You don't have to give them the source for your part of the work (like in the GPL above). > For instance, if your software use GNU's libc, there's no problem. > However, if you correct some bug it may have, your software will > be under LGPL too. You still have to make it possible for your customers to recompile your software with a new version of libc, and give them the source for libc and at least object code for your own program. But you don't have any other restrictions. If you fix a bug or enhance the Library itself then that fix is part of the Library and has to be included as source, with rights for modification AND redistribution, but just the fix. I hope this is correct and helps clear up some of the confusion. Colin. -- Colin Peters - Saga Univ. Dept. of Information Science -- colin AT bird DOT fu DOT is DOT saga-u DOT ac DOT jp - finger for PGP public key -- http://www.fu.is.saga-u.ac.jp/~colin/index.html -- http://www.geocities.com/Tokyo/Towers/6162/ - For help on using this list (especially unsubscribing), send a message to "gnu-win32-request AT cygnus DOT com" with one line of text: "help".