README: Gnulib normally doesn't generate a tarball.
[gnulib.git] / doc / maintain.texi
index 4256ff6..33b851b 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 4, 2004
+@set lastupdate December 30, 2005
 @c %**end of header
 
 @dircategory GNU organization
@@ -25,7 +25,7 @@
 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 Free Software Foundation, Inc.
+2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
 
 @quotation
 Permission is granted to make and distribute verbatim copies
@@ -184,7 +184,7 @@ as you maintain the program, to avoid legal difficulties.
 @cindex copyright papers
 
 If you maintain an FSF-copyrighted package
-certain legal procedures when incorporating legally significant
+certain legal procedures are required when incorporating legally significant
 changes written by other people.  This ensures that the FSF has the
 legal right to distribute the package, and the standing to defend its
 GPL-covered status in court if necessary.
@@ -263,6 +263,11 @@ file gives per instructions for how to ask the FSF to mail per the
 papers to sign.  The @file{request-} file also raises the issue of
 getting a copyright disclaimer from the contributor's employer.
 
+When the contributor emails the form to the FSF, the FSF sends per
+papers to sign.  If person signs them right away, the whole process
+takes about two weeks--mostly waiting for letters to go back and
+forth.
+
 For less common cases, we have template files you should send to the
 contributor.  Be sure to fill in the name of the person and the name
 of the program in these templates, where it says @samp{NAME OF PERSON}
@@ -418,14 +423,15 @@ 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.
 
+
 @node Copyright Notices
 @section Copyright Notices
 @cindex copyright notices in program files
 
-You should maintain a legally valid copyright notice and a license
+You should maintain a proper copyright notice and a license
 notice in each nontrivial file in the package.  (Any file more than ten
 lines long is nontrivial for this purpose.)  This includes header files
-and interface definitions
+and interface definitions for
 building or running the program, documentation files, and any supporting
 files.  If a file has been explicitly placed in the public domain, then
 instead of a copyright notice, it should have a notice saying explicitly
@@ -441,9 +447,10 @@ the end, since new material is added at the beginning but the end
 remains the end.
 
 When a file is automatically generated from some other file in the
-distribution, it is useful to copy the copyright notice and permission
-notice of the file it is generated from, if you can.  Alternatively, put
-a notice at the beginning saying which file it is generated from.
+distribution, it is useful for the automatic procedure to copy the
+copyright notice and permission notice of the file it is generated
+from, if possible.  Alternatively, put a notice at the beginning saying
+which file it is generated from.
 
 A copyright notice looks like this:
 
@@ -463,42 +470,31 @@ message should use parenthesized @samp{C} by default, though message
 translations may use C-in-a-circle in locales where that symbol is
 known to work.
 
-The list of year numbers should include each year in which you finished
-preparing a version which was actually released, and which was an
-ancestor of the current version.
+To update the list of year numbers, add each year in which you have
+made nontrivial changes to the package.  (Here we assume you're using
+a publicly accessible revision control server, so that every revision
+installed is also immediately and automatically published.)  When you
+add the new year, it is not required to keep track which files have
+seen significant changes in the new year and which have not.  It is
+recommended and simpler to add the new year to all files in the
+package, and be done with it for the rest of the year.
 
-Please reread the paragraph above, slowly and carefully.  It is
-important to understand that rule precisely, much as you would
-understand a complicated C statement in order to hand-simulate it.
+For files which are regularly copied from another project (such as
+@samp{gnulib}), the copyright notice should left as it is in the
+original.
 
-This list is @emph{not} a list of years in which versions were
-@emph{released}.  It is a list of years in which versions, later
-released, were @emph{completed}.  So if you finish a version on Dec 31,
-1994 and release it on Jan 1, 1995, this version requires the inclusion
-of 1994, but doesn't require the inclusion of 1995.
+Don't delete old year numbers, though; they can indicate when older
+versions might theoretically go into the public domain.  If you copy a
+file into the package from some other program, keep the copyright
+years that come with the file.
 
 Do not abbreviate the year list using a range; for instance, do not
-write @samp{1996--1998}; instead, write @samp{1996, 1997, 1998}.  Do
-write each relevant year as a four-digit number.  In the normal course
-of maintenance, you may come across copyright notices which omit the
-century, as in @samp{1996, 97, 98}---change these to include the
-century.  However, there is no need to systematically change the
-notice in every old file.
-
-The versions that matter, for purposes of this list, are versions that
-were ancestors of the current version.  So if you made a temporary
-branch in maintenance, and worked on branches A and B in parallel, then
-each branch would have its own list of years, which is based on the
-versions released in that branch.  A version in branch A need not be
-reflected in the list of years for branch B, and vice versa.
-
-However, if you copy code from branch A into branch B, the years for
-branch A (or at least, for the parts that you copied into branch B) do
-need to appear in the list in branch B, because now they are ancestors
-of branch B.
-
-This rule is complicated.  If we were in charge of copyright law, we
-would probably change this (as well as many other aspects).
+write @samp{1996--1998}; instead, write @samp{1996, 1997, 1998}.
+
+The copyright statement may be split across multiple lines, both in
+source files and in any generated output.  This often happens for
+files with a long history, having many different years of
+publication.
 
 For an FSF-copyrighted package, if you have followed the procedures to
 obtain legal papers, each file should have just one copyright holder:
@@ -507,16 +503,25 @@ copyright notice to list that name and only that name.
 
 But if contributors are not all assigning their copyrights to a single
 copyright holder, it can easily happen that one file has several
-copyright holders.  Each contributor of nontrivial amounts is a
-copyright holder.
+copyright holders.  Each contributor of nontrivial text is a copyright
+holder.
 
 In that case, you should always include a copyright notice in the name
 of main copyright holder of the file.  You can also include copyright
-notices for other copyright holders as well, and this is a good idea for
-those who have contributed a large amount and for those who specifically
-ask for notices in their names.  But you don't have to include a notice
-for everyone who contributed to the file, and that would be rather
-inconvenient.
+notices for other copyright holders as well, and this is a good idea
+for those who have contributed a large amount and for those who
+specifically ask for notices in their names.  (Sometimes the license
+on code that you copy in may require preserving certain copyright
+notices.)  But you don't have to include a notice for everyone who
+contributed to the file (which would be rather inconvenient).
+
+Sometimes a program has an overall copyright notice that refers to the
+whole program.  It might be in the @file{README} file, or it might be
+displayed when the program starts up.  This copyright notice should
+mention the year of completion of the most recent major version; it
+can mention years of completion of previous major versions, but that
+is optional.
+
 
 @node License Notices
 @section License Notices
@@ -575,8 +580,8 @@ 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., 59 Temple Place - Suite 330,
-Boston, MA 02111-1307, USA.
+the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+Boston, MA  02110-1301  USA.
 @end quotation
 
 But in a small program which is just a few files, you can use
@@ -595,7 +600,7 @@ 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.,
-59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
+51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
 @end quotation
 
 Documentation files should have license notices also.  Manuals should
@@ -650,6 +655,11 @@ are permitted in any medium without royalty provided the copyright
 notice and this notice are preserved.
 @end smallexample
 
+If your package distributes Autoconf macros that are intended to be
+used (hence distributed) by third-party packages under possibly
+incompatible licenses, you may also use the above all-permissive
+license for these macros.
+
 If you would like help with license issues or with using the GFDL,
 please contact @email{licensing@@gnu.org}.
 
@@ -1160,7 +1170,8 @@ your package (in the example above, that is @code{bar}).
 
 Your designated upload email addresses (@pxref{Automated Upload
 Registration}) are sent a message if there are any problems processing
-an upload for your package.
+an upload for your package.  You also receive a message when your
++upload has been successfully processed.
 
 If you have difficulties processing an upload, email
 @email{ftp-upload@@gnu.org}.