Rename sys_time_.h to sys_time.in.h.
[gnulib.git] / doc / maintain.texi
index e7a5002..6619d68 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 October 15, 2006
+@set lastupdate July 25, 2007
 @c %**end of header
 
 @dircategory GNU organization
@@ -24,8 +24,9 @@
 @copying
 Information for maintainers of GNU software, last updated @value{lastupdate}.
 
-Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
-2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
+Copyright @copyright{} 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
+2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007 Free Software
+Foundation, Inc.
 
 @quotation
 Permission is granted to make and distribute verbatim copies
@@ -103,9 +104,7 @@ currently @code{fencepost.gnu.org}; if you are the maintainer of a GNU
 package, you should have an account there.  Contact
 @email{accounts@@gnu.org} if you don't have one.  (You can also ask
 for accounts for people who help you a large amount in working on the
-package.)  @file{/gd/gnuorg/maintain.tar.gz} is a tar file containing
-all of these files in that directory which are mentioned in this file;
-it is updated daily.
+package.)  
 
 This release of the GNU Maintenance Instructions was last updated
 @value{lastupdate}.
@@ -447,6 +446,24 @@ 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.
 
+Especially when code has been released into the public domain, authors
+sometimes fail to write a license statement in each file.  In this
+case, please first be sure that all the authors of the code have
+disclaimed copyright interest.  Then, when copying the new files into
+your project, add a brief note at the beginning of the files recording
+the authors, the public domain status, and anything else relevant.
+
+On the other hand, when merging some public domain code into an
+existing file covered by the GPL (or LGPL or other free software
+license), there is no reason to indicate the pieces which are public
+domain.  The notice saying that the whole file is under the GPL (or
+other license) is legally sufficient.
+
+Using code that is released under a GPL-compatible free license,
+rather than being in the public domain, may require preserving
+copyright notices or other steps.  Of course, you should do what is
+needed.
+
 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
@@ -463,6 +480,7 @@ 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
 @cindex copyright notices in program files
@@ -567,17 +585,28 @@ is optional.
 @cindex license notices in program files
 
 Every nontrivial file needs a license notice as well as the copyright
-notice.  (Without a license notice giving permission to copy and change
-the file
-would make the file non-free.)
+notice.  (Without a license notice giving permission to copy and
+change the file, the file is non-free.)
 
-The package itself should contain a full copy of GPL (conventionally in
-a file named @file{COPYING}) and the GNU Free Documentation License
-(included within your documentation).  If the package contains any files
-distributed under the Lesser GPL, it should contain a full copy of that
-as well (conventionally in a file named @file{COPYING.LIB}).
+The package itself should contain a full copy of GPL (conventionally
+in a file named @file{COPYING}) and the GNU Free Documentation License
+(included within your documentation).  If the package contains any
+files distributed under the Lesser GPL, it should contain a full copy
+of that as well (conventionally in a file named
+@file{COPYING.LESSER}).
 
-You can get the official versions of these files from three places.
+@menu
+* Source: Canonical License Sources:
+* Code: License Notices for Code:
+* Documentation: License Notices for Documentation:
+* Other: License Notices for Other Files:
+@end menu
+
+
+@node Canonical License Sources
+@subsection Canonical License Sources
+
+You can get the official versions of these files from several places.
 You can use whichever is the most convenient for you.
 
 @itemize @bullet
@@ -585,11 +614,6 @@ You can use whichever is the most convenient for you.
 @uref{http://www.gnu.org/licenses/}.
 
 @item
-The directory @file{/gd/gnuorg} on the host
-@code{fencepost.gnu.org}.  (You can ask @email{accounts@@gnu.org}
-for an account there if you don't have one).
-
-@item
 The @code{gnulib} project on @code{savannah.gnu.org}, which you
 can access via anonymous CVS.  See
 @uref{http://savannah.gnu.org/projects/gnulib}.
@@ -598,19 +622,24 @@ can access via anonymous CVS.  See
 
 The official Texinfo sources for the licenses are also available in
 those same places, so you can include them in your documentation.  A
-GFDL-covered manual must include the GFDL in this way.  @xref{GNU Sample
-Texts,,,texinfo,Texinfo}, for a full example in a Texinfo manual.
+GFDL-covered manual should include the GFDL in this way.  @xref{GNU
+Sample Texts,,,texinfo,Texinfo}, for a full example in a Texinfo
+manual.
+
+
+@node License Notices for Code
+@subsection License Notices for Code
 
 Typically the license notice for program files (including build scripts,
 configure files and makefiles) should cite the GPL, like this:
 
 @quotation
-This file is part of GNU @var{program}
+This file is part of GNU @var{program}.
 
-GNU @var{program} is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
+GNU @var{program} is free software: you can redistribute it and/or
+modify it under the terms of the GNU General Public License as
+published by the Free Software Foundation, either version 3 of the
+License, or (at your option) any later version.
 
 GNU @var{program} is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -618,18 +647,16 @@ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 GNU General Public License for more details.
 
 You should have received a copy of the GNU General Public License
-along with @var{program}; see the file COPYING.  If not, write to
-the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
-Boston, MA  02110-1301  USA.
+along with this program.  If not, see @url{http://www.gnu.org/licenses/}.
 @end quotation
 
 But in a small program which is just a few files, you can use
 this instead:
 
 @quotation
-This program is free software; you can redistribute it and/or modify
+This program is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2 of the License, or
+the Free Software Foundation; either version 3 of the License, or
 (at your option) any later version.
 
 This program is distributed in the hope that it will be useful,
@@ -637,31 +664,31 @@ but WITHOUT ANY WARRANTY; without even the implied warranty of
 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 GNU General Public License for more details.
 
-You should have received a copy of the GNU General Public License along
-with this program; if not, write to the Free Software Foundation, Inc.,
-51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+You should have received a copy of the GNU General Public License
+along with this program.  If not, see @url{http://www.gnu.org/licenses/}.
 @end quotation
 
+
+@node License Notices for Documentation
+@subsection License Notices for Documentation
+
 Documentation files should have license notices also.  Manuals should
-use the GNU Free Documentation License.  Here is an example of the
-license notice to use after the copyright notice.  Please adjust the
-list of invariant sections as appropriate for your manual.  (If there
-are none, then say ``with no invariant sections''.)  @xref{GNU Sample
-Texts,,,texinfo,Texinfo}, for a full example in a Texinfo manual.
+use the GNU Free Documentation License.  Following is an example of the
+license notice to use after the copyright line(s) using all the
+features of the GFDL.
 
 @smallexample
 Permission is granted to copy, distribute and/or modify this document
 under the terms of the GNU Free Documentation License, Version 1.2 or
 any later version published by the Free Software Foundation; with the
-Invariant Sections being "GNU General Public License", with the
+Invariant Sections being ``GNU General Public License'', with the
 Front-Cover Texts being ``A GNU Manual,'' and with the Back-Cover Texts
 as in (a) below.  A copy of the license is included in the section
-entitled "GNU Free Documentation License".
+entitled ``GNU Free Documentation License''.
 
 (a) The FSF's Back-Cover Text is: ``You are free to copy and modify
 this GNU Manual.  Buying copies from GNU Press supports the FSF in
 developing GNU and promoting software freedom.''
-
 @end smallexample
 
 If the FSF does not publish this manual on paper, then omit the last
@@ -669,20 +696,31 @@ sentence in (a) that talks about copies from GNU Press.  If the FSF is
 not the copyright holder, then replace @samp{FSF} with the appropriate
 name.
 
-See @url{http://www.gnu.org/licenses/fdl-howto.html} for more advice
-about how to use the GNU FDL.
+Please adjust the list of invariant sections as appropriate for your
+manual.  If there are none, then say ``with no Invariant Sections''.
+If your manual is not published by the FSF, and under 400 pages, you
+can omit both cover texts and the inclusion of the GPL.
+
+@xref{GNU Sample Texts,,,texinfo,Texinfo}, for a full example in a
+Texinfo manual, and see
+@url{http://www.gnu.org/licenses/fdl-howto.html} for more advice about
+how to use the GNU FDL.
 
 If the manual is over 400 pages, or if the FSF thinks it might be a good
 choice for publishing on paper, then please include our standard
 invariant section which explains the importance of free documentation.
 Write to @email{assign@@gnu.org} to get a copy of this section.
 
-Note that when you distribute several manuals together in one software
-package, their on-line forms can share a single copy of the GFDL (see
-section 6).  However, the printed (@samp{.dvi}) forms should each
-contain a copy of the GFDL, unless they are set up to be printed
-and published only together.  Therefore, it is usually simplest to
-include the GFDL in each manual.
+When you distribute several manuals together in one software package,
+their on-line forms can share a single copy of the GFDL (see
+section@tie{}6).  However, the printed (@samp{.dvi}, @samp{.pdf},
+@dots{}) forms should each contain a copy of the GFDL, unless they are
+set up to be printed and published only together.  Therefore, it is
+usually simplest to include the GFDL in each manual.
+
+
+@node License Notices for Other Files
+@subsection License Notices for Other Files
 
 Small supporting files, short manuals (under 300 lines long) and rough
 documentation (README files, INSTALL files, etc) can use a simple
@@ -702,6 +740,7 @@ license for these macros.
 If you would like help with license issues or with using the GFDL,
 please contact @email{licensing@@gnu.org}.
 
+
 @node External Libraries
 @section External Libraries
 
@@ -1349,7 +1388,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
 
@@ -1377,15 +1416,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.
 
@@ -1408,8 +1449,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
 
@@ -1517,7 +1558,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
@@ -1534,22 +1575,12 @@ enforced, or we have a suitable patent license allowing release of free
 software.
 
 Beyond that, sometimes the GNU project takes a strong stand against a
-particular patented technology in order to encourage everyone to reject
-it.
-
-For example, the GIF file format is covered by the LZW software patent
-in the USA.  A patent holder has threatened lawsuits against not only
-developers of software to produce GIFs, but even web sites that
-contain them.
-
-For this reason, you should not include GIFs in the web pages for your
-package, nor in the distribution of the package itself.  It is ok for
-a GNU package to support displaying GIFs which will come into play if
-a user asks it to operate on one.  However, it is essential to provide
-equal or better support for the competing PNG and JPG
-formats---otherwise, the GNU package would be @emph{pressuring} users
-to use GIF format, and that it must not do.  More about our stand on
-GIF is available at @uref{http://www.gnu.org/philosophy/gif.html}.
+particular patented technology in order to encourage everyone to
+reject it.  For example, until the GIF patents expired in 2006, we
+specified that GNU packages and web pages should not include GIF image
+files, and that equal or better support for other image formats such
+as PNG and JPEG was crucial.  (These other formats remain superior, so
+there is still no particular reason to use GIF's.)
 
 Software patents are not the only matter for ethical concern.  A GNU
 package should not recommend use of any non-free program, nor should it
@@ -1649,7 +1680,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
@@ -1729,7 +1760,7 @@ and ask each person to pick randomly which part to read.
 Be sure to specify the random choice procedure;
 otherwise people will probably use a mental procedure
 that is not really random,
-such as "pick a part near the middle",
+such as ``pick a part near the middle'',
 and you will not get even coverage.
 
 You can either divide up the work physically, into 20 separate files,
@@ -1743,7 +1774,7 @@ to count as a section, or not?
 For a job needing special skills, send an explanation of it,
 and ask people to send you mail if they volunteer for the job.
 When you get enough volunteers, send another message to the list saying
-"I have enough volunteers, no more please."
+``I have enough volunteers, no more please.''
 @end itemize
 
 @node Index