New modules 'unistr/u8-set', 'unistr/u16-set', 'unistr/u32-set'.
[gnulib.git] / doc / maintain.texi
index bef339b..ee2a667 100644 (file)
@@ -5,7 +5,7 @@
 @c For double-sided printing, uncomment:
 @c @setchapternewpage odd
 @c This date is automagically updated when you save this file:
-@set lastupdate July 9, 2006
+@set lastupdate December 5, 2006
 @c %**end of header
 
 @dircategory GNU organization
@@ -173,10 +173,11 @@ as you maintain the program, to avoid legal difficulties.
 @menu
 * Copyright Papers::
 * Legally Significant::
-* Recording Contributors::
-* Copyright Notices::
-* License Notices::
-* External Libraries::
+* Recording Contributors::      
+* Copying from Other Packages::
+* Copyright Notices::           
+* License Notices::             
+* External Libraries::          
 @end menu
 
 @node Copyright Papers
@@ -409,7 +410,7 @@ package are really a separate program.
 
 Only the contributions that are legally significant for copyright
 purposes (@pxref{Legally Significant}) need to be listed.  Small
-contributions, ideas, etc., can be omitted.
+contributions, bug reports, ideas, etc., can be omitted.
 
 For example, this would describe an early version of GAS:
 
@@ -427,6 +428,40 @@ they are considered a separate package, not part of GAS proper.
 Please keep these records in a file named @file{AUTHORS} in the source
 directory for the program itself.
 
+You can use the change log as the basis for these records, if you
+wish.  Just make sure to record the correct author for each change
+(the person who wrote the change, @emph{not} the person who installed
+it), and add @samp{(tiny change)} for those changes that are too
+trivial to matter for copyright purposes.  Later on you can update the
+@file{AUTHORS} file from the change log.  This can even be done
+automatically, if you are careful about the formatting of the change
+log entries.
+
+@node Copying from Other Packages
+@section Copying from Other Packages
+
+When you copy legally significant code from another free software
+package with a GPL-compatible license, you should look in the
+package's records to find out the authors of the part you are copying,
+and list them as the contributors of the code that you copied.  If all
+you did was copy it, not write it, then for copyright purposes you are
+@emph{not} one of the contributors of @emph{this} code.
+
+If you are maintaining an FSF-copyrighted package, please verify we
+have papers for the code you are copying, @emph{before} copying it.
+If you are copying from another FSF-copyrighted package, then we
+presumably have papers for that package's own code, but you must check
+whether the code you are copying is part of an external library; if
+that is the case, we don't have papers for it, so you should not copy
+it.  It can't hurt in any case to double-check with the developer of
+that package.
+
+When you are copying code for which we do not already have papers, you
+need to get papers for it.  It may be difficult to get the papers if
+the code was not written as a contribution to your package, but that
+doesn't mean it is ok to do without them.  If you cannot get papers
+for the code, you can only use it as an external library
+(@pxref{External Libraries}).
 
 @node Copyright Notices
 @section Copyright Notices
@@ -777,16 +812,17 @@ because these are the most important platforms for a GNU package.  If
 you don't have access to one of these platforms, please ask
 @email{maintainers@@gnu.org} to help you out.
 
-Supporting other platforms is optional---we do it when that seems like a
-good idea, but we don't consider it obligatory.  If the users don't take
-care of a certain platform, you may have to desupport it unless and
-until users come forward to help.  Conversely, if a user offers changes
-to support an additional platform, you will probably want to install
-them, but you don't have to.  If you feel the changes are complex and
-ugly, if you think that they will increase the burden of future
-maintenance, you can and should reject them.  This includes both free
-platforms such as NetBSD or FreeBSD and non-free platforms such as
-Windows.
+Supporting other platforms is optional---we do it when that seems like
+a good idea, but we don't consider it obligatory.  If the users don't
+take care of a certain platform, you may have to desupport it unless
+and until users come forward to help.  Conversely, if a user offers
+changes to support an additional platform, you will probably want to
+install them, but you don't have to.  If you feel the changes are
+complex and ugly, if you think that they will increase the burden of
+future maintenance, you can and should reject them.  This includes
+both free or mainly-free platforms such as OpenBSD, FreeBSD, and
+NetBSD, and non-free platforms such as Windows.
+
 
 @node Mail
 @chapter Dealing With Mail
@@ -1144,8 +1180,8 @@ A clearsigned @dfn{directive file}, made using @samp{gpg --clearsign}
 The names of the files are important. The signature file must have the
 same name as the file to be distributed, with an additional
 @file{.sig} extension. The directive file must have the same name as
-the file to be distributed, with an additional @file{.directive.asc
-extension}. If you do not follow this naming convention, the upload
+the file to be distributed, with an additional @file{.directive.asc}
+extension. If you do not follow this naming convention, the upload
 @emph{will not be processed}.
 
 Since v1.1 of the upload script, it is also possible to upload a
@@ -1313,7 +1349,7 @@ worth announcing.  If you use @email{info-gnu@@gnu.org}, please do not
 announce pretest releases, only real releases.  But real releases do
 include releases made just to fix bugs.
 
-@node  Web Pages
+@node Web Pages
 @chapter Web Pages
 @cindex web pages
 
@@ -1341,15 +1377,17 @@ databases (including mail logs and bug tracking) are an exception; set
 them up on whatever site is convenient for you, and make the pages on
 @code{www.gnu.org} link to that site.
 
-Web pages for GNU packages should not include GIF images, since the GNU
-project avoids GIFs due to patent problems.  @xref{Ethical and
-Philosophical Consideration}.
+Historically, web pages for GNU packages did not include GIF images,
+because of patent problems (@pxref{Ethical and Philosophical
+Consideration}).  Although the GIF patents expired in 2006, using GIF
+images is still not recommended, as the PNG and JPEG formats are
+generally superior.  See @url{http://www.gnu.org/philosophy/gif.html}.
 
 The web pages for the package should include its manuals, in HTML,
-DVI, Info, PostScript, PDF, plain ASCII, and Texinfo format (source).  (All
-of these can be generated automatically from the Texinfo source using
-Makeinfo and other programs.)  When there is only one manual, put it
-in a subdirectory called @file{manual}; the file
+DVI, Info, PostScript, PDF, plain ASCII, and Texinfo format (source).
+(All of these can be generated automatically from the Texinfo source
+using Makeinfo and other programs.)  When there is only one manual,
+put it in a subdirectory called @file{manual}; the file
 @file{manual/index.html} should have a link to the manual in each of
 its forms.
 
@@ -1372,8 +1410,8 @@ so based on the contents of your @file{manual} directory.
 * CVS Keywords in Web Pages::
 @end menu
 
-@node  Invoking gendocs.sh
-@section  Invoking @command{gendocs.sh}
+@node Invoking gendocs.sh
+@section Invoking @command{gendocs.sh}
 @pindex gendocs.sh
 @cindex generating documentation output
 
@@ -1481,7 +1519,7 @@ itself.  Also, @code{makeinfo} notices the @code{@@w} and generates
 output avoiding the literal keyword string.
 
 
-@node   Ethical and Philosophical Consideration
+@node Ethical and Philosophical Consideration
 @chapter Ethical and Philosophical Consideration
 @cindex ethics
 @cindex philosophy
@@ -1613,7 +1651,7 @@ When referring to the collection of servers that is the higher level
 of the GNU kernel, please call it ``the Hurd'' or ``the GNU Hurd.''
 Note that this uses a space, not a slash.
 
-@node  Hosting
+@node Hosting
 @chapter Hosting
 @cindex CVS repository
 @cindex repository