Index: README =================================================================== RCS file: /sources/gnustandards/gnustandards/README,v retrieving revision 1.5 diff -c -r1.5 README *** README 21 Dec 2012 22:27:47 -0000 1.5 --- README 9 Oct 2017 16:02:02 -0000 *************** *** 9,26 **** This hierarchy contains the canonical sources for the "GNU Coding Standards" and "Information for GNU Maintainers" documents. ! Formatted versions are on the GNU web site: http://www.gnu.org/prep/ Send proposals for changes to address@hidden (aka ! http://lists.gnu.org/mailman/listinfo/bug-standards). All substantive changes must eventually be approved by rms. Copies of these sources are maintained in the gnulib project ! (http://savannah.gnu.org/projects/gnulib) for convenience of the maintainers who already check out gnulib. To update the manuals, see the work.m and work.s directories here. Each has a GNUmakefile with assorted targets and comments. They use the gendocs.sh script, which is in Texinfo CVS on savannah, which in turn needs a file gendocs_template, also in Texinfo CVS: ! http://cvs.savannah.gnu.org/viewcvs/texinfo/util/?root=texinfo --- 9,26 ---- This hierarchy contains the canonical sources for the "GNU Coding Standards" and "Information for GNU Maintainers" documents. ! Formatted versions are on the GNU web site: https://www.gnu.org/prep/ Send proposals for changes to address@hidden (aka ! https://lists.gnu.org/mailman/listinfo/bug-standards). All substantive changes must eventually be approved by rms. Copies of these sources are maintained in the gnulib project ! (https://savannah.gnu.org/projects/gnulib) for convenience of the maintainers who already check out gnulib. To update the manuals, see the work.m and work.s directories here. Each has a GNUmakefile with assorted targets and comments. They use the gendocs.sh script, which is in Texinfo CVS on savannah, which in turn needs a file gendocs_template, also in Texinfo CVS: ! https://cvs.savannah.gnu.org/viewcvs/texinfo/util/?root=texinfo Index: fdl.texi =================================================================== RCS file: /sources/gnustandards/gnustandards/fdl.texi,v retrieving revision 1.14 diff -c -r1.14 fdl.texi *** fdl.texi 8 Jun 2014 21:22:21 -0000 1.14 --- fdl.texi 9 Oct 2017 16:02:02 -0000 *************** *** 6,12 **** @display Copyright @copyright{} 2000, 2001, 2002, 2007, 2008 Free Software Foundation, Inc. ! @uref{http://fsf.org/} Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. --- 6,12 ---- @display Copyright @copyright{} 2000, 2001, 2002, 2007, 2008 Free Software Foundation, Inc. ! @uref{https://fsf.org/} Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. *************** *** 414,420 **** of the GNU Free Documentation License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. See ! @uref{http://www.gnu.org/copyleft/}. Each version of the License is given a distinguishing version number. If the Document specifies that a particular numbered version of this --- 414,420 ---- of the GNU Free Documentation License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. See ! @uref{https://www.gnu.org/copyleft/}. Each version of the License is given a distinguishing version number. If the Document specifies that a particular numbered version of this Index: maintain.texi =================================================================== RCS file: /sources/gnustandards/gnustandards/maintain.texi,v retrieving revision 1.263 diff -c -r1.263 maintain.texi *** maintain.texi 24 Sep 2017 14:19:08 -0000 1.263 --- maintain.texi 9 Oct 2017 16:02:02 -0000 *************** *** 1786,1794 **** @file{foo-1.0.tar.gz} and @file{foo-1.0.tar.gz.sig} are placed in the directory @file{gnu/foo/} on @code{ftp.gnu.org}. That is, we'll have made our release available at ! @indicateurl{http://ftp.gnu.org/gnu/foo/foo-1.0.tar.gz} (and then from our many mirrors via ! @indicateurl{http://ftpmirror.gnu.org/foo/foo-1.0.tar.gz}). Whew. A common reason for the upload not succeeding is your GPG signature not being registered with the upload system. There is nothing that --- 1786,1794 ---- @file{foo-1.0.tar.gz} and @file{foo-1.0.tar.gz.sig} are placed in the directory @file{gnu/foo/} on @code{ftp.gnu.org}. That is, we'll have made our release available at ! @indicateurl{https://ftp.gnu.org/gnu/foo/foo-1.0.tar.gz} (and then from our many mirrors via ! @indicateurl{https://ftpmirror.gnu.org/foo/foo-1.0.tar.gz}). Whew. A common reason for the upload not succeeding is your GPG signature not being registered with the upload system. There is nothing that *************** *** 1820,1826 **** @noindent would put the tar file in the @file{foo-1.0/} subdirectory of the package @code{foo}, thus ending up at ! @indicateurl{ftp.gnu.org:gnu/foo/foo-1.0/foo-1.0.tar.gz}. However, to keep things simpler for users, we recommend not using subdirectories, unless perhaps each release of your package consists --- 1820,1826 ---- @noindent would put the tar file in the @file{foo-1.0/} subdirectory of the package @code{foo}, thus ending up at ! @indicateurl{https://ftp.gnu.org/pub/gnu/foo/foo-1.0/foo-1.0.tar.gz}. However, to keep things simpler for users, we recommend not using subdirectories, unless perhaps each release of your package consists *************** *** 1953,1959 **** If all you want to do is reduce how much stuff is in your release directory, an alternative is to email @email{sysadmin@@fsf.org} and ! ask them to move old items to the @file{http://ftp.gnu.org/old-gnu/} directory; then they will still be available. In general, however, we recommend leaving all official releases in the main release directory. --- 1953,1959 ---- If all you want to do is reduce how much stuff is in your release directory, an alternative is to email @email{sysadmin@@fsf.org} and ! ask them to move old items to the @file{https://ftp.gnu.org/old-gnu/} directory; then they will still be available. In general, however, we recommend leaving all official releases in the main release directory. *************** *** 2009,2021 **** please do not announce test releases on @code{info-gnu} unless it's a highly unusual situation. ! @cindex @url{http://planet.gnu.org} @cindex Savannah, news area Please also post release announcements in the news section of your Savannah project site. Here, it is fine to also write news entries for test releases and any other newsworthy events. The news feeds from all GNU projects at savannah are aggregated at ! @url{http://planet.gnu.org} (GNU Planet), unless the text of the entry contains the string @samp{::noplanet::}. You can also post items directly, or arrange for feeds from other locations; see information on the GNU Planet web page. --- 2009,2021 ---- please do not announce test releases on @code{info-gnu} unless it's a highly unusual situation. ! @cindex @url{https://planet.gnu.org} @cindex Savannah, news area Please also post release announcements in the news section of your Savannah project site. Here, it is fine to also write news entries for test releases and any other newsworthy events. The news feeds from all GNU projects at savannah are aggregated at ! @url{https://planet.gnu.org} (GNU Planet), unless the text of the entry contains the string @samp{::noplanet::}. You can also post items directly, or arrange for feeds from other locations; see information on the GNU Planet web page. *************** *** 2041,2050 **** @item Your package's download location (normally ! @indicateurl{http://ftp.gnu.org/gnu/@var{package}/}). It is also useful to mention the mirror list at @url{https://www.gnu.org/order/ftp.html}, and that ! @indicateurl{http://ftpmirror.gnu.org/@var{package/}} will automatically redirect to a nearby mirror. @item --- 2041,2050 ---- @item Your package's download location (normally ! @indicateurl{https://ftp.gnu.org/gnu/@var{package}/}). It is also useful to mention the mirror list at @url{https://www.gnu.org/order/ftp.html}, and that ! @indicateurl{https://ftpmirror.gnu.org/@var{package/}} will automatically redirect to a nearby mirror. @item *************** *** 2375,2381 **** JavaScript-based editing tools. Instead, a service without any ethical concerns should be used, such as GNU's Pootle instance (@url{https://chapters.gnu.org/pootle}) or The Translation Project ! (@url{http://translationproject.org}). A GNU package should not refer the user to any non-free documentation for free software. The need for free documentation to come with free --- 2375,2381 ---- JavaScript-based editing tools. Instead, a service without any ethical concerns should be used, such as GNU's Pootle instance (@url{https://chapters.gnu.org/pootle}) or The Translation Project ! (@url{https://translationproject.org}). A GNU package should not refer the user to any non-free documentation for free software. The need for free documentation to come with free Index: standards.texi =================================================================== RCS file: /sources/gnustandards/gnustandards/standards.texi,v retrieving revision 1.252 diff -c -r1.252 standards.texi *** standards.texi 25 Sep 2017 07:27:02 -0000 1.252 --- standards.texi 9 Oct 2017 16:02:03 -0000 *************** *** 87,93 **** recently, please check for a newer version. You can get the GNU Coding Standards from the GNU web server in many different formats, including the Texinfo source, PDF, HTML, DVI, plain ! text, and more, at: @uref{http://www.gnu.org/prep/standards/}. If you are maintaining an official GNU package, in addition to this document, please read and follow the GNU maintainer information --- 87,93 ---- recently, please check for a newer version. You can get the GNU Coding Standards from the GNU web server in many different formats, including the Texinfo source, PDF, HTML, DVI, plain ! text, and more, at: @uref{https://www.gnu.org/prep/standards/}. If you are maintaining an official GNU package, in addition to this document, please read and follow the GNU maintainer information *************** *** 98,104 **** If you want to receive diffs for every change to these GNU documents, join the mailing list @code{gnustandards-commit@@gnu.org}, via the web interface at ! @url{http://lists.gnu.org/mailman/listinfo/gnustandards-commit}. Archives are also available there. @cindex @code{bug-standards@@gnu.org} email address --- 98,104 ---- If you want to receive diffs for every change to these GNU documents, join the mailing list @code{gnustandards-commit@@gnu.org}, via the web interface at ! @url{https://lists.gnu.org/mailman/listinfo/gnustandards-commit}. Archives are also available there. @cindex @code{bug-standards@@gnu.org} email address *************** *** 111,117 **** source, but if that's difficult for you, you can make a context diff for some other version of this document, or propose it in any way that makes it clear. The source repository for this document can be found ! at @url{http://savannah.gnu.org/projects/gnustandards}. These standards cover the minimum of what is important when writing a GNU package. Likely, the need for additional standards will come up. --- 111,117 ---- source, but if that's difficult for you, you can make a context diff for some other version of this document, or propose it in any way that makes it clear. The source repository for this document can be found ! at @url{https://savannah.gnu.org/projects/gnustandards}. These standards cover the minimum of what is important when writing a GNU package. Likely, the need for additional standards will come up. *************** *** 127,133 **** The GNU Hello program serves as an example of how to follow the GNU coding standards for a trivial program. ! @uref{http://www.gnu.org/software/hello/hello.html}. This release of the GNU Coding Standards was last updated @value{lastupdate}. --- 127,133 ---- The GNU Hello program serves as an example of how to follow the GNU coding standards for a trivial program. ! @uref{https://www.gnu.org/software/hello/hello.html}. This release of the GNU Coding Standards was last updated @value{lastupdate}. *************** *** 309,315 **** @cindex Guile @cindex GNOME and Guile The standard extensibility interpreter for GNU software is Guile ! (@uref{http://www.gnu.org/@/software/@/guile/}), which implements the language Scheme (an especially clean and simple dialect of Lisp). Guile also includes bindings for GTK+/GNOME, making it practical to write modern GUI functionality within Guile. We don't reject programs --- 309,315 ---- @cindex Guile @cindex GNOME and Guile The standard extensibility interpreter for GNU software is Guile ! (@uref{https://www.gnu.org/@/software/@/guile/}), which implements the language Scheme (an especially clean and simple dialect of Lisp). Guile also includes bindings for GTK+/GNOME, making it practical to write modern GUI functionality within Guile. We don't reject programs *************** *** 888,894 **** Please make your program interoperate with access technology such as screen readers (see ! @url{http://www.gnu.org/accessibility/accessibility.html}). This should be automatic if you use GTK+. @node Command-Line Interfaces --- 888,894 ---- Please make your program interoperate with access technology such as screen readers (see ! @url{https://www.gnu.org/accessibility/accessibility.html}). This should be automatic if you use GTK+. @node Command-Line Interfaces *************** *** 1007,1013 **** @smallexample GNU hello 2.3 Copyright (C) 2007 Free Software Foundation, Inc. ! License GPLv3+: GNU GPL version 3 or later This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. @end smallexample --- 1007,1013 ---- @smallexample GNU hello 2.3 Copyright (C) 2007 Free Software Foundation, Inc. ! License GPLv3+: GNU GPL version 3 or later This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. @end smallexample *************** *** 1052,1061 **** @table @asis @item GPL ! GNU General Public License, @url{http://www.gnu.org/@/licenses/@/gpl.html}. @item LGPL ! GNU Lesser General Public License, @url{http://www.gnu.org/@/licenses/@/lgpl.html}. @item GPL/Ada GNU GPL with the exception for Ada. --- 1052,1061 ---- @table @asis @item GPL ! GNU General Public License, @url{https://www.gnu.org/@/licenses/@/gpl.html}. @item LGPL ! GNU Lesser General Public License, @url{https://www.gnu.org/@/licenses/@/lgpl.html}. @item GPL/Ada GNU GPL with the exception for Ada. *************** *** 1082,1092 **** @item public domain The non-license that is being in the public domain, ! @url{http://www.gnu.org/@/licenses/@/license-list.html#PublicDomain}. @item Python The license for Python, ! @url{http://directory.fsf.org/wiki?title=License:Python2.0.1}. @item RBSD The revised (3-clause) BSD, compatible with the GNU GPL,@* --- 1082,1092 ---- @item public domain The non-license that is being in the public domain, ! @url{https://www.gnu.org/@/licenses/@/license-list.html#PublicDomain}. @item Python The license for Python, ! @url{https://directory.fsf.org/wiki?title=License:Python2.0.1}. @item RBSD The revised (3-clause) BSD, compatible with the GNU GPL,@* *************** *** 1103,1109 **** More information about these licenses and many more are on the GNU licensing web pages, ! @url{http://www.gnu.org/@/licenses/@/license-list.html}. @node --help --- 1103,1109 ---- More information about these licenses and many more are on the GNU licensing web pages, ! @url{https://www.gnu.org/@/licenses/@/license-list.html}. @node --help *************** *** 1120,1132 **** @cindex bug reports Near the end of the @samp{--help} option's output, please place lines giving the email address for bug reports, the package's home page ! (normally @indicateurl{http://www.gnu.org/software/@var{pkg}}, and the general page for help using GNU programs. The format should be like this: @example Report bugs to: @var{mailing-address} ! @var{pkg} home page: ! General help using GNU software: @end example It is ok to mention other appropriate mailing lists and web pages. --- 1120,1132 ---- @cindex bug reports Near the end of the @samp{--help} option's output, please place lines giving the email address for bug reports, the package's home page ! (normally @indicateurl{https://www.gnu.org/software/@var{pkg}}, and the general page for help using GNU programs. The format should be like this: @example Report bugs to: @var{mailing-address} ! @var{pkg} home page: ! General help using GNU software: @end example It is ok to mention other appropriate mailing lists and web pages. *************** *** 3026,3032 **** @end table @cindex Gnulib ! @uref{http://www.gnu.org/software/gnulib/, Gnulib} is a big help in this regard. Gnulib provides implementations of standard interfaces on many of the systems that lack them, including portable implementations of enhanced GNU interfaces, thereby making their use --- 3026,3032 ---- @end table @cindex Gnulib ! @uref{https://www.gnu.org/software/gnulib/, Gnulib} is a big help in this regard. Gnulib provides implementations of standard interfaces on many of the systems that lack them, including portable implementations of enhanced GNU interfaces, thereby making their use *************** *** 3479,3485 **** collection. For a single short document, you can use a very permissive non-copyleft license, to avoid taking up space with a long license. ! See @uref{http://www.gnu.org/copyleft/fdl-howto.html} for more explanation of how to employ the GFDL. Note that it is not obligatory to include a copy of the GNU GPL or GNU --- 3479,3485 ---- collection. For a single short document, you can use a very permissive non-copyleft license, to avoid taking up space with a long license. ! See @uref{https://www.gnu.org/copyleft/fdl-howto.html} for more explanation of how to employ the GFDL. Note that it is not obligatory to include a copy of the GNU GPL or GNU *************** *** 3504,3510 **** of these manuals, the on-line versions of the manual should mention at the very start that the printed manual is available and should point at information for getting it---for instance, with a link to the page ! @url{http://www.gnu.org/order/order.html}. This should not be included in the printed manual, though, because there it is redundant. It is also useful to explain in the on-line forms of the manual how the --- 3504,3510 ---- of these manuals, the on-line versions of the manual should mention at the very start that the printed manual is available and should point at information for getting it---for instance, with a link to the page ! @url{https://www.gnu.org/order/order.html}. This should not be included in the printed manual, though, because there it is redundant. It is also useful to explain in the on-line forms of the manual how the *************** *** 3825,3831 **** Manuals}). Finally, the GNU help2man program ! (@uref{http://www.gnu.org/software/help2man/}) is one way to automate generation of a man page, in this case from @option{--help} output. This is sufficient in many cases. --- 3825,3831 ---- Manuals}). Finally, the GNU help2man program ! (@uref{https://www.gnu.org/software/help2man/}) is one way to automate generation of a man page, in this case from @option{--help} output. This is sufficient in many cases. *************** *** 3849,3855 **** @cindex releasing Making a release is more than just bundling up your source files in a ! tar file and putting it up for FTP. You should set up your software so that it can be configured to run on a variety of systems. Your Makefile should conform to the GNU standards described below, and your directory layout should also conform to the standards discussed below. Doing so --- 3849,3855 ---- @cindex releasing Making a release is more than just bundling up your source files in a ! tar file and publishing it. You should set up your software so that it can be configured to run on a variety of systems. Your Makefile should conform to the GNU standards described below, and your directory layout should also conform to the standards discussed below. Doing so *************** *** 3955,3961 **** alternatives for how to describe a machine. Thus, @samp{athlon-pc-gnu/linux} would be a valid alias. There is a shell script called ! @uref{http://git.savannah.gnu.org/@/gitweb/@/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD, @file{config.sub}} that you can use as a subroutine to validate system types and canonicalize aliases. --- 3955,3961 ---- alternatives for how to describe a machine. Thus, @samp{athlon-pc-gnu/linux} would be a valid alias. There is a shell script called ! @uref{https://git.savannah.gnu.org/@/gitweb/@/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD, @file{config.sub}} that you can use as a subroutine to validate system types and canonicalize aliases. *************** *** 3966,3972 **** i686-pc-linux-gnu}. When the build type is not specified by an option or argument, the @code{configure} script should normally guess it using the shell script ! @uref{http://git.savannah.gnu.org/@/gitweb/@/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD, @file{config.guess}}. @cindex optional features, configure-time --- 3966,3972 ---- i686-pc-linux-gnu}. When the build type is not specified by an option or argument, the @code{configure} script should normally guess it using the shell script ! @uref{https://git.savannah.gnu.org/@/gitweb/@/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD, @file{config.guess}}. @cindex optional features, configure-time *************** *** 4183,4195 **** idea that their existence is ethical. The GNU definition of free software is found on the GNU web site at ! @url{http://www.gnu.org/@/philosophy/@/free-sw.html}, and the definition of free documentation is found at ! @url{http://www.gnu.org/@/philosophy/@/free-doc.html}. The terms ``free'' and ``non-free'', used in this document, refer to those definitions. A list of important licenses and whether they qualify as free is in ! @url{http://www.gnu.org/@/licenses/@/license-list.html}. If it is not clear whether a license qualifies as free, please ask the GNU Project by writing to @email{licensing@@gnu.org}. We will answer, and if the license is an important one, we will add it to the list. --- 4183,4195 ---- idea that their existence is ethical. The GNU definition of free software is found on the GNU web site at ! @url{https://www.gnu.org/@/philosophy/@/free-sw.html}, and the definition of free documentation is found at ! @url{https://www.gnu.org/@/philosophy/@/free-doc.html}. The terms ``free'' and ``non-free'', used in this document, refer to those definitions. A list of important licenses and whether they qualify as free is in ! @url{https://www.gnu.org/@/licenses/@/license-list.html}. If it is not clear whether a license qualifies as free, please ask the GNU Project by writing to @email{licensing@@gnu.org}. We will answer, and if the license is an important one, we will add it to the list.