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:
 @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
 @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::
 @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
 @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
 
 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:
 
 
 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.
 
 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
 
 @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.
 
 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
 
 @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 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
 @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.
 
 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
 
 @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.
 
 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,
 
 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.
 
 @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
 
 * 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
 
 @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.
 
 
 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
 @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.
 
 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
 @chapter Hosting
 @cindex CVS repository
 @cindex repository