[gnu.g++] GNU Libraries and the GPL

dl@ROCKY.OSWEGO.EDU (Doug Lea) (06/10/89)

One of Len Tower's postings gave a simple but terse answer about how
the GNU Public License (GPL) affects the use of GNU libraries and
other software tools. Since this appears to have been overlooked by
some, let me restate it just a bit more discursively. As the primary
author of the GNU C++ library (libg++), I think it's worth being as
clear as possible. While these are my own words, I am confident that
I am not misrepresenting FSF.

The GPL is a distribution agreement that makes software free in a
manner that transitively (from holder to holder) keeps it free. (I
believe that its general form represents the only policy anyone has
ever formulated that has this effect.)

Suppose you `add value' to some GNU software. This could take many
forms, but in the case of libraries like libg++, this almost always
means that you write some executable program (call it `ABC') that uses
the library headers, archived object files (libg++.a), and/or other
parts of libg++.

The terms for distributing ABC must now satisfy two conditions:
    (1) the GPL covering the GNU base (i.e., keeping it free), and 
    (2) whatever conditions apply to your `added value' part.

Pretty simple, actually. Since FSF doesn't know about, and has no
control over your conditions, little else can be said in general.
But it is worth mentioning the boundary points:

    If the conditions applying to the added value part are the same as
    the GPL (e.g., you adopt a license identical to the GPL,
    substituting your name for FSF throughout), then everything is
    very simple. FSF actively encourages this kind of thing.

    At the other extreme, if you try to adopt conditions stating that
    only the executable image of ABC is to be distributed, then this
    directly contradicts the GPL.  Thus, you cannot use GNU libraries
    if you would like to claim such a condition.

If you wish to adopt conditions falling between these endpoints, then
you have to use a bit of common sense (or consult a lawyer if you
really must) to determine their effect.


Some people might think that the GNU library use rules are more
restrictive than necessary. Why not specifically exempt libraries from
FSF distribution policies? Well, for one, it would imply that anyone
could take any piece of GNU software at all (e.g., gcc or emacs),
convert all of it (except `main') into an archive instead of a
stand-alone program, write a different `main', link it to the archive,
and then sell it.  Such a sleazy tactic would be a thoroughly
permissible way to circumvent the GPL. If this were allowed, then
the GPL, and the FSF, might as well not exist. (You might be saying to
yourself, `That doesn't sound too horrible; people could still get
gcc, etc., directly from FSF, so there would be no motivation for
doing this'. For good rebuttals, see RMS's discussion of proprietary
resale of X-windows and related issues in his recent info-gcc
postings.  The `make it free; keep it free' transitive consequences of
the GPL really are important for the continued success of FSF.)

Moreover, this kind of exemption would contradict the basic notion of
fairness underlying any form of copyright (emphatically, including FSF
copyright) resulting in the rule that works shall be routinely,
correctly attributed to their authors. This is, of course, an issue
completely distinct from whether such authors need be otherwise
compensated for such works or use.

-Doug

dld@F.GP.CS.CMU.EDU (David Detlefs) (06/12/89)

Doug Lea posted recently explaining the rationale behind considering
software that uses GNU libraries derivatives works of those libraries,
subject the the GPL.  His fairly persuasive argument, if I may
summarize, is that if they were not, someone could take the source to
Gnu-emacs (for example), make all but the .c file containing "main"
into a library, rewrite "main," and sell it.

Personally, I think the good of humanity would best be served if
libg++ and other GNU libraries could be considered "tool-like", so
that use of libg++ was equivalent to the use of g++, gcc, gnu-emacs,
bison, etc.  (I would be happy to discuss why I think this if a
gnu.politics-equivalent ever materializes.)  However, I must admit
that Doug's is a fairly convincing argument.  I am posting to
suggest that there is a possible compromise position: what if the GPL
were modified so that people creating proprietary works using GNU
libraries were required to have customers sign a form saying something
like:

I realize that the software I am about to buy uses Free software.  I
have read the accompanying bulletin "Great Software You Can Get For
Free!", and am aware of the 800 number I can call to discuss with Free
Software experts whether the software I am about to buy is a
significant innovation over something I can get for free.

Perhaps the FSF could require a small fee be sent in by the seller for
with each such charge form to defree the cost of the 800 number.
Perhaps the FSF could distribute a list of software products
that they would describe as "acceptably different" and another list of
"blatent ripoffs" in the bulletin the release form encourages people
to read.

I realize that this is perhaps unwieldy, but it's an idea...

--
Dave Detlefs			Any correlation between my employer's opinion
Carnegie-Mellon CS		and my own is statistical rather than causal,
dld@cs.cmu.edu			except in those cases where I have helped to
				form my employer's opinion.  (Null disclaimer.)
--