gnustandards-commit
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

gnustandards maintain.texi


From: Richard M. Stallman
Subject: gnustandards maintain.texi
Date: Mon, 18 Sep 2017 17:00:27 -0400 (EDT)

CVSROOT:        /sources/gnustandards
Module name:    gnustandards
Changes by:     Richard M. Stallman <rms>       17/09/18 17:00:27

Modified files:
        .              : maintain.texi 

Log message:
        (External Libraries): Rewrite for clarity; no change in substance.

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/gnustandards/maintain.texi?cvsroot=gnustandards&r1=1.258&r2=1.259

Patches:
Index: maintain.texi
===================================================================
RCS file: /sources/gnustandards/gnustandards/maintain.texi,v
retrieving revision 1.258
retrieving revision 1.259
diff -u -b -r1.258 -r1.259
--- maintain.texi       17 Sep 2017 18:39:56 -0000      1.258
+++ maintain.texi       18 Sep 2017 21:00:27 -0000      1.259
@@ -5,7 +5,7 @@
 @c For double-sided printing, uncomment:
 @c @setchapternewpage odd
 @c This date is automagically updated when you save this file:
address@hidden lastupdate September 17, 2017
address@hidden lastupdate September 18, 2017
 @c %**end of header
 
 @dircategory GNU organization
@@ -991,61 +991,66 @@
 @node External Libraries
 @section External Libraries
 
-When maintaining an FSF-copyrighted GNU package, you may occasionally
-want to use a general-purpose free software module which offers a
-useful functionality, as a ``library'' facility (though the module is
-not always packaged technically as a library).
-
-Make sure the license of the module is compatible with current @emph{and
-future} GPL versions.  ``GNU GPL version 3 or later'' is good, and
-so is anything which includes permission for use under those GPL
-versions (including ``GNU GPL version 2 or later'', ``LGPL version
address@hidden or later'', ``LGPL version 2.1'', ``GNU Affero GPL version 3
-or later'').  Lax permissive licenses are ok too, since they are
-compatible with all GPL versions.
+As maintainer of an FSF-copyrighted GNU package, how do you use
+separately-published general-purpose free modules?  (We also call them
+``libraries'' because we are using them as libraries; it doesn't
+matter whether they are packaged as libraries or not.)
+
+It would be unreasonable to ask their authors to assign copyright to
+the FSF.  They didn't write those modules as contributions to GNU.  We
+just happen to want to use them, as any developer might.  It would be
+rude to ask developers, out of the blue, to give the FSF their
+copyright.  Please don't ask for that in cases like these.
+
+The proper way to use those modules is to link your package with them
+and say they are @emph{not} part of your package.  See below for the
+mechanics of this.
+
+To avoid present or future legal trouble, you must make sure the
+license of the module is compatible with current @emph{and future} GPL
+versions.  ``GNU GPL version 3 or later'' is good, and so is anything
+which includes permission for use under those GPL versions (including
+``GNU GPL version 2 or later'', ``LGPL version @var{n} or later'',
+``LGPL version 2.1'', ``GNU Affero GPL version 3 or later'').  Lax
+permissive licenses are ok too, since they are compatible with all GPL
+versions.
 
 ``GPL version 2 only'' is obviously unacceptable because it is
 incompatible with GPL version 3.  ``GPL version 3 only'' and ``GPL
 version 2 or 3 only'' have a subtler problem: they would be incompatible
 with GPL version 4, if we ever make one, so the module would become an
 obstacle to upgrading your package's license to ``GPL version 4 or
-later''.
+later''.  Don't use such modules.
 
-One package you need to avoid is @code{goffice}, since it allows only
+One library you need to avoid is @code{goffice}, since it allows only
 GPL versions 2 and 3.
 
-It would be unreasonable to ask the author of the external module to
-assign its copyright to the FSF.  After all, person did not write
-it specifically as a contribution to your package, so it would be
-impertinent to ask, out of the blue, ``Please give the FSF your
-copyright.''
-
-So make your program use the module but without treating the module as
-a part of your program.  There are two reasonable methods of doing
-this:
+So, here are the mechanics of how to arrange your package to use the
+unrelated free module.
 
 @enumerate
 @item
-Assume the module is already installed on the system, and use it when
-linking your program.  This is only reasonable if the module really has
-the form of a library.
+Assume the module is already installed on the system, and link with it
+when linking your program.  This is only reasonable if the module
+really has the form of a library.
 
 @item
-Include the module in your package, putting the source in a separate
-subdirectory whose @file{README} file says, ``This is not part of the
-GNU FOO program, but is used with GNU FOO.''  Then set up your makefiles
-to build this module and link it into the executable.
-
-For this method, it is not necessary to treat the module as a library
-and make a @samp{.a} file from it.  You can link with the @samp{.o}
-files directly in the usual manner.
+Include the module in your package's distribution, putting the source
+in a separate subdirectory whose @file{README} file says, ``This is
+not part of the GNU FOO program, but is used with GNU FOO.''  Then set
+up your makefiles to build this module and link it into the
+executable.
+
+With this method, it is not necessary to treat the module as a library
+and make a @samp{.a} file from it.  You can link directly with the
address@hidden files in the usual manner.
 @end enumerate
 
-Both of these methods create an irregularity, and our lawyers have told
-us to minimize the amount of such irregularity.  So consider using these
-methods only for general-purpose modules that were written for other
-programs and released separately for general use.  For anything that was
-written as a contribution to your package, please get papers signed.
+Both of these methods create an irregularity, and our lawyers have
+told us to minimize the amount of such irregularity.  So use these
+methods only for general-purpose modules that were @emph{not} written
+for your package.  For anything that was written as a contribution to
+your package, please get papers signed.
 
 @node Crediting Authors
 @section Crediting Authors



reply via email to

[Prev in Thread] Current Thread [Next in Thread]