doc: update users.txt
[gnulib.git] / doc / maintain.texi
index 55dcd02..08657cd 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 5, 2010
+@set lastupdate January 20, 2011
 @c %**end of header
 
 @dircategory GNU organization
 @c %**end of header
 
 @dircategory GNU organization
@@ -23,8 +23,8 @@
 Information for maintainers of GNU software, last updated @value{lastupdate}.
 
 Copyright @copyright{} 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
 Information for maintainers of GNU software, last updated @value{lastupdate}.
 
 Copyright @copyright{} 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
-2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software
-Foundation, Inc.
+2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009,
+2010, 2011 Free Software Foundation, Inc.
 
 @quotation
 Permission is granted to copy, distribute and/or modify this document
 
 @quotation
 Permission is granted to copy, distribute and/or modify this document
@@ -70,6 +70,7 @@ Texts.  A copy of the license is included in the section entitled
 * Ethical and Philosophical Consideration::
 * Terminology::
 * Hosting::
 * Ethical and Philosophical Consideration::
 * Terminology::
 * Hosting::
+* Donations::
 * Free Software Directory::
 * Using the Proofreaders List::
 * GNU Free Documentation License::
 * Free Software Directory::
 * Using the Proofreaders List::
 * GNU Free Documentation License::
@@ -134,12 +135,11 @@ questions for new maintainers.
 
 @cindex advisory committee
 The GNU Advisory Committee helps to coordinate activities in the GNU
 
 @cindex advisory committee
 The GNU Advisory Committee helps to coordinate activities in the GNU
-project on behalf of RMS.  If you have any organizational questions or
-concerns you can contact the committee at
-@email{gnu-advisory@@gnu.org}.  The committee holds a regular monthly
-meeting to discuss any issues that have been raised.  The minutes of
-the meeting are sent to the @code{gnu-prog} list, and can also be
-found, along with additional information, in
+project on behalf of RMS (Richard Stallman, the Chief GNUisance).  If
+you have any organizational questions or concerns you can contact the
+committee at @email{gnu-advisory@@gnu.org}.  See
+@url{http://www.gnu.org/contact/gnu-advisory.html} for the current
+committee members.  Additional information is in
 @file{/gd/gnuorg/advisory}.
 
 
 @file{/gd/gnuorg/advisory}.
 
 
@@ -288,7 +288,7 @@ this:
 
 @quotation
 Would you be willing to assign the copyright to the Free Software
 
 @quotation
 Would you be willing to assign the copyright to the Free Software
-Foundation, so that we could install it in @var{program}?
+Foundation, so that we could install it in @var{package}?
 @end quotation
 
 @noindent
 @end quotation
 
 @noindent
@@ -296,7 +296,7 @@ or
 
 @quotation
 Would you be willing to sign a copyright disclaimer to put this change
 
 @quotation
 Would you be willing to sign a copyright disclaimer to put this change
-in the public domain, so that we can install it in @var{program}?
+in the public domain, so that we can install it in @var{package}?
 @end quotation
 
 If the contributor then wants more information, you can send per the file
 @end quotation
 
 If the contributor then wants more information, you can send per the file
@@ -362,7 +362,7 @@ changes to a manual, you can use @file{assign.future.manual}.
 For a translation of a manual, use @file{assign.translation.manual}.
 
 For translations of program strings (as used by GNU Gettext, for
 For a translation of a manual, use @file{assign.translation.manual}.
 
 For translations of program strings (as used by GNU Gettext, for
-example; @pxref{Internationalization,,,standards,GNU Coding
+example; @pxref{Internationalization,,, standards, GNU Coding
 Standards}), use @file{disclaim.translation}.  If you make use of the
 Translation Project (@url{http://translationproject.org}) facilities,
 please check with the TP coordinators that they have sent the
 Standards}), use @file{disclaim.translation}.  If you make use of the
 Translation Project (@url{http://translationproject.org}) facilities,
 please check with the TP coordinators that they have sent the
@@ -625,8 +625,11 @@ domain, if the movie companies don't continue buying laws to further
 extend copyright.  If you copy a file into the package from some other
 program, keep the copyright years that come with the file.
 
 extend copyright.  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}.
+You can use a range (@samp{2008-2010}) instead of listing individual
+years (@samp{2008, 2009, 2010}) if and only if: 1)@tie{}every year in
+the range, inclusive, really is a ``copyrightable'' year that would be
+listed individually; @emph{and} 2)@tie{}you make an explicit statement
+in a @file{README} file about this usage.
 
 For files which are regularly copied from another project (such as
 @samp{gnulib}), leave the copyright notice as it is in the original.
 
 For files which are regularly copied from another project (such as
 @samp{gnulib}), leave the copyright notice as it is in the original.
@@ -679,17 +682,73 @@ any files distributed under the Lesser GPL, it should contain a full
 copy of its plain text version also (conventionally in a file named
 @file{COPYING.LESSER}).
 
 copy of its plain text version also (conventionally in a file named
 @file{COPYING.LESSER}).
 
-If you have questions about license issues for your GNU package,
+If you have questions about licensing issues for your GNU package,
 please write @email{licensing@@gnu.org}.
 
 @menu
 please write @email{licensing@@gnu.org}.
 
 @menu
-* Source: Canonical License Sources.
-* Code: License Notices for Code.
+* Which:         Licensing of GNU Packages.
+* Canonical:     Canonical License Sources.
+* Code:          License Notices for Code.
 * Documentation: License Notices for Documentation.
 * Documentation: License Notices for Documentation.
-* Other: License Notices for Other Files.
+* Other:         License Notices for Other Files.
 @end menu
 
 
 @end menu
 
 
+@node Licensing of GNU Packages
+@subsection Licensing of GNU Packages
+
+Normally, GNU packages should use the latest version of the GNU GPL,
+with the ``or any later version'' formulation.  @xref{License Notices
+for Code}, for the exact wording of the license notice.
+
+Occasionally, a GNU library may provide functionality which is already
+widely available to proprietary programs through alternative
+implementations; for example, the GNU C Library.  In such cases, the
+Lesser GPL should be used (again, for the notice wording,
+@pxref{License Notices for Code}).  If a GNU library provides unique
+functionality, however, the GNU GPL should be used.
+@url{http://www.gnu.org/licenses/why-not-lgpl.html} discusses this
+strategic choice.
+
+Some of these libraries need to work with programs released under
+GPLv2-only; that is, which allow the GNU GPL version 2 but not later
+versions.  In this case, the GNU package should be released under a
+dual license: GNU GPL version 2 (or any later version) and the GNU
+Lesser GPL version 3 (or any later version).  Here is the notice for
+that case:
+
+@smallexample
+This file is part of GNU @var{package}.
+
+GNU @var{package} is free software: you can redistribute it and/or
+modify it under the terms of either:
+
+  * the GNU Lesser General Public License as published by the Free
+    Software Foundation; either version 3 of the License, or (at your
+    option) any later version.
+
+or
+
+  * the GNU General Public License as published by the Free
+    Software Foundation; either version 2 of the License, or (at your
+    option) any later version.
+
+or both in parallel, as here.
+
+GNU @var{package} is distributed in the hope that it will be useful,
+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 copies of the GNU General Public License and
+the GNU Lesser General Public License along with this program.  If
+not, see @url{http://www.gnu.org/licenses/}.
+@end smallexample
+
+For small packages, you can use ``This program'' instead of ``GNU
+@var{package}''.
+
+
 @node Canonical License Sources
 @subsection Canonical License Sources
 
 @node Canonical License Sources
 @subsection Canonical License Sources
 
@@ -710,7 +769,7 @@ can access via anonymous Git or 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 should include the GFDL in this way.  @xref{GNU
 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 should include the GFDL in this way.  @xref{GNU
-Sample Texts,,,texinfo,Texinfo}, for a full example in a Texinfo
+Sample Texts,,, texinfo, Texinfo}, for a full example in a Texinfo
 manual.
 
 
 manual.
 
 
@@ -721,14 +780,14 @@ Typically the license notice for program files (including build scripts,
 configure files and makefiles) should cite the GPL, like this:
 
 @quotation
 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{package}.
 
 
-GNU @var{program} is free software: you can redistribute it and/or
+GNU @var{package} 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.
 
 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,
+GNU @var{package} is distributed in the hope that it will be useful,
 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.
 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.
@@ -755,6 +814,12 @@ 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
 
 along with this program.  If not, see @url{http://www.gnu.org/licenses/}.
 @end quotation
 
+In either case, for those few packages which use the Lesser GPL
+(@pxref{Licensing of GNU Packages}), insert the word ``Lesser'' before
+``General'' in @emph{all three} places.
+@url{http://@/www.gnu.org/@/licenses/@/gpl-howto.html} discusses application
+the GPL in more detail.
+
 
 @node License Notices for Documentation
 @subsection License Notices for Documentation
 
 @node License Notices for Documentation
 @subsection License Notices for Documentation
@@ -788,7 +853,7 @@ 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.
 
 If your manual is not published by the FSF, and under 400 pages, you
 can omit both cover texts.
 
-@xref{GNU Sample Texts,,,texinfo,Texinfo}, for a full example in a
+@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.
 Texinfo manual, and see
 @url{http://www.gnu.org/licenses/fdl-howto.html} for more advice about
 how to use the GNU FDL.
@@ -981,7 +1046,7 @@ have them.
 Once a program is in use, you will get bug reports for it.  Most GNU
 programs have their own special lists for sending bug reports.  The
 advertised bug-reporting email address should always be
 Once a program is in use, you will get bug reports for it.  Most GNU
 programs have their own special lists for sending bug reports.  The
 advertised bug-reporting email address should always be
-@samp{bug-@var{program}@@gnu.org}, to help show users that the program
+@samp{bug-@var{package}@@gnu.org}, to help show users that the program
 is a GNU package, but it is ok to set up that list to forward to another
 site if you prefer.  The package distribution should state the
 name of the bug-reporting list in a prominent place, and ask users to
 is a GNU package, but it is ok to set up that list to forward to another
 site if you prefer.  The package distribution should state the
 name of the bug-reporting list in a prominent place, and ask users to
@@ -995,14 +1060,14 @@ move away from using @email{bug-gnu-utils}.
 
 @cindex help for users, mailing list for
 Some GNU programs with many users have another mailing list,
 
 @cindex help for users, mailing list for
 Some GNU programs with many users have another mailing list,
-@samp{help-@var{program}.org}, for people to ask other users for help.
+@samp{help-@var{package}.org}, for people to ask other users for help.
 If your program has many users, you should create such a list for it.
 For a fairly new program, which doesn't have a large user base yet, it
 is better not to bother with this.
 
 @cindex announcements, mailing list for
 If you wish, you can also have a mailing list
 If your program has many users, you should create such a list for it.
 For a fairly new program, which doesn't have a large user base yet, it
 is better not to bother with this.
 
 @cindex announcements, mailing list for
 If you wish, you can also have a mailing list
-@samp{info-@var{program}} for announcements (@pxref{Announcements}),
+@samp{info-@var{package}} for announcements (@pxref{Announcements}),
 and any others you find useful.
 
 
 and any others you find useful.
 
 
@@ -1096,10 +1161,10 @@ useful for your package.
 @cindex version control
 
 It is very important to keep backup files of all source files of GNU.
 @cindex version control
 
 It is very important to keep backup files of all source files of GNU.
-You can do this using a source control system (such as RCS, CVS, Git,
-@dots{}) if you like.  The easiest way to use RCS or CVS is via the
-Version Control library in Emacs (@pxref{VC Concepts,, Concepts of
-Version Control, emacs, The GNU Emacs Manual}).
+You can do this using a source control system (such as Bazaar, RCS,
+CVS, Git, Subversion, @dots{}) if you like.  The easiest way to use
+RCS or CVS is via the Version Control library in Emacs (@pxref{VC
+Concepts,, Concepts of Version Control, emacs, The GNU Emacs Manual}).
 
 The history of previous revisions and log entries is very important for
 future maintainers of the package, so even if you do not make it
 
 The history of previous revisions and log entries is very important for
 future maintainers of the package, so even if you do not make it
@@ -1110,15 +1175,14 @@ some day.
 @cindex @code{savannah-hackers@@gnu.org}
 The GNU Project provides a server that GNU software packages can use
 for source control and other package needs: @code{savannah.gnu.org}.
 @cindex @code{savannah-hackers@@gnu.org}
 The GNU Project provides a server that GNU software packages can use
 for source control and other package needs: @code{savannah.gnu.org}.
-You don't have to use this repository, but if you plan to allow public
-read-only access to your development sources, it is convenient for
-people to be able to find various GNU packages in a central place.
-Savannah is managed by @email{savannah-hackers@@gnu.org}.
+Savannah is managed by @email{savannah-hackers@@gnu.org}.  For more
+details on using and contributing to Savannah, see
+@url{http://savannah.gnu.org/maintenance}.
 
 
-All GNU maintainers are strongly encouraged to take advantage of
-Savannah, as sharing such a central point can serve to foster a sense
-of community among GNU developers and help in keeping up with project
-management.
+It's not a requirement, but all GNU maintainers are strongly
+encouraged to take advantage of Savannah, as sharing such a central
+point can serve to foster a sense of community among GNU developers
+and help in keeping up with project management.
 
 @cindex @code{savannah-announce@@gnu.org} mailing list
 If you do use Savannah, please subscribe to the
 
 @cindex @code{savannah-announce@@gnu.org} mailing list
 If you do use Savannah, please subscribe to the
@@ -1335,14 +1399,15 @@ maintain the web pages at @url{http://www.gnu.org} for your project
 
 @item
 In the @samp{My Account Conf} page on @code{savannah}, upload the GPG
 
 @item
 In the @samp{My Account Conf} page on @code{savannah}, upload the GPG
-key you will use to sign your packages.
+key you will use to sign your packages.  If you haven't created one
+before, you can do so with the command @code{gpg --gen-key} (you can
+accept all the default answers to its questions).
 
 
-You can create a key with the command @code{gpg --gen-key}.  It is
-good to also send your key to the GPG public key server: @code{gpg
---keyserver keys.gnupg.net --send-keys @var{keyid}}, where @var{keyid}
-is the eight hex digits reported by @code{gpg --list-public-keys} on
-the @code{pub} line before the date.  For full information about GPG,
-see @url{http://www.gnu.org/software/gpg})
+Optional but recommended: Send your key to a GPG public key server:
+@code{gpg --keyserver keys.gnupg.net --send-keys @var{keyid}}, where
+@var{keyid} is the eight hex digits reported by @code{gpg
+--list-public-keys} on the @code{pub} line before the date.  For full
+information about GPG, see @url{http://www.gnu.org/software/gpg}.
 
 @item
 Compose a message with the following items in some @var{msgfile}.
 
 @item
 Compose a message with the following items in some @var{msgfile}.
@@ -1356,7 +1421,7 @@ Name of package(s) that you are the maintainer for, and your
 preferred email address.
 
 @item
 preferred email address.
 
 @item
-An ASCII armored copy of your GnuPG key, as an attachment.  (@samp{gpg
+An ASCII armored copy of your GPG key, as an attachment.  (@samp{gpg
 --export -a @var{your_key_id} >mykey.asc} should give you this.)
 
 @item
 --export -a @var{your_key_id} >mykey.asc} should give you this.)
 
 @item
@@ -1365,7 +1430,7 @@ authorize to make releases for which packages, if any (in the case that you
 don't make all releases yourself).
 
 @item
 don't make all releases yourself).
 
 @item
-ASCII armored copies of GnuPG keys for any individuals listed in (3).
+ASCII armored copies of GPG keys for any individuals listed in (3).
 @end enumerate
 @end enumerate
 
 @end enumerate
 @end enumerate
 
@@ -1625,7 +1690,7 @@ on the GNU Planet web page.
 
 @cindex announcement mailing list, project-specific
 You can maintain your own mailing list (typically
 
 @cindex announcement mailing list, project-specific
 You can maintain your own mailing list (typically
-@email{info-@var{program}@@gnu.org}) for announcements as well if you
+@email{info-@var{package}@@gnu.org}) for announcements as well if you
 like.  For your own list, of course you decide as you see fit what
 events are worth announcing.  (@xref{Mail}, for setting this up, and
 more suggestions on handling mail for your package.)
 like.  For your own list, of course you decide as you see fit what
 events are worth announcing.  (@xref{Mail}, for setting this up, and
 more suggestions on handling mail for your package.)
@@ -1651,7 +1716,7 @@ useful to mention the mirror list at
 redirect to a nearby mirror.
 
 @item
 redirect to a nearby mirror.
 
 @item
-The NEWS (@pxref{NEWS File,,, standards, GNU Coding Standards}) for
+The @t{NEWS} (@pxref{NEWS File,,, standards, GNU Coding Standards}) for
 the present release.
 @end itemize
 
 the present release.
 @end itemize
 
@@ -2064,7 +2129,7 @@ following the rules stated in the license of each package.  For more
 information, see http://www.gnu.org/philosophy/free-sw.html.
 
 If you are looking for service or support for GNU software, see
 information, see http://www.gnu.org/philosophy/free-sw.html.
 
 If you are looking for service or support for GNU software, see
-http://www.gnu.org/help/gethelp.html for suggestions of where to ask.
+http://www.gnu.org/gethelp/ for suggestions of where to ask.
 
 If you would like to contribute to the development of one of these
 packages, contact the package maintainer or the bug-reporting address
 
 If you would like to contribute to the development of one of these
 packages, contact the package maintainer or the bug-reporting address
@@ -2073,6 +2138,50 @@ on www.gnu.org for more information on how to contribute.
 @end smallexample
 
 
 @end smallexample
 
 
+@node Donations
+@chapter Donations
+@cindex Donations, for packages
+@cindex Money, donated to packages
+
+As a maintainer, you might want to accept donations for your work,
+especially if you pay for any of your own hosting/development
+infrastructure.  Following is some text you can adapt to your own
+situation, and use on your package's web site, @file{README}, or
+in wherever way you find it useful:
+
+@smallexample
+We appreciate contributions of any size -- donations enable us to spend
+more time working on the project, and help cover our infrastructure
+expenses.
+
+If you'd like to make a small donation, please visit @var{url1} and do
+it through @var{payment-service}.  Since our project isn't a
+tax-exempt organization, we can't offer you a tax deduction, but for
+all donations over @var{amount1}, we'd be happy to recognize your
+contribution on @var{url2}.
+
+We are also happy to consider making particular improvements or
+changes, or giving specific technical assistance, in return for a
+substantial donation over @var{amount2}.  If you would like to discuss
+this possibility, write to us at @var{address}.
+
+Another possibility is to pay a software maintenance fee.  Again,
+write to us about this at @var{address} to discuss how much you want
+to pay and how much maintenance we can offer in return.  If you pay
+more than @var{amount1}, we can give you a document for your records.
+
+Thanks for your support!
+@end smallexample
+
+We don't recommend any specific payment service.  However, GNU
+developers should not use a service that requires them to sign a
+proprietary software license, such as Google's payment service.
+
+Of course, it is also good to encourage people to join or contribute
+to the FSF (@url{http://www.fsf.org}), either instead of or as well as
+package-specific donations.
+
+
 @node Free Software Directory
 @chapter Free Software Directory
 @cindex Free Software Directory
 @node Free Software Directory
 @chapter Free Software Directory
 @cindex Free Software Directory