This is the mail archive of the mailing list for the Cygwin project.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

GPL and LGPL (was RE: coolview+less: search dying)

Hilton Fernandes[] 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?
>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

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


-- Colin Peters - Saga Univ. Dept. of Information Science
-- - finger for PGP public key

For help on using this list (especially unsubscribing), send a message to
"" with one line of text: "help".

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]