In Gnulib, Emacs, etc. we are changing URLs to use https: instead of ftp: and
http:, to discourage man-in-the-middle attacks when downloading software. The
attached patch propagates these changes upstream to the GNU Coding Standards.
Although the GNU Coding Standards are not secret, plain HTTP is vulnerable to
malicious routers that tamper with responses from GNU servers, and this sort of
thing is all too common when people in some other countries browse US-based
websites. See, for example:
Aceto G, Botta A, Pescapé A, Awan MF, Ahmad T, Qaisar S. Analyzing internet
censorship in Pakistan. RTSI 2016. https://dx.doi.org/10.1109/RTSI.2016.7740626
HTTPS is not a complete solution here, but it can be a significant help.
Index: README
===================================================================
RCS file: /sources/gnustandards/gnustandards/README,v
retrieving revision 1.5
diff -u -r1.5 README
--- README 21 Dec 2012 22:27:47 -0000 1.5
+++ README 16 Sep 2017 22:48:16 -0000
@@ -9,18 +9,18 @@
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/
+Formatted versions are on the GNU web site: https://www.gnu.org/prep/
Send proposals for changes to [email protected] (aka
-http://lists.gnu.org/mailman/listinfo/bug-standards). All substantive
+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
-(http://savannah.gnu.org/projects/gnulib) for convenience of the
+(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:
-http://cvs.savannah.gnu.org/viewcvs/texinfo/util/?root=texinfo
+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 -u -r1.14 fdl.texi
--- fdl.texi 8 Jun 2014 21:22:21 -0000 1.14
+++ fdl.texi 16 Sep 2017 22:48:16 -0000
@@ -6,7 +6,7 @@
@display
Copyright @copyright{} 2000, 2001, 2002, 2007, 2008 Free Software Foundation, Inc.
-@uref{http://fsf.org/}
+@uref{https://fsf.org/}
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
@@ -414,7 +414,7 @@
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/}.
+@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.257
diff -u -r1.257 maintain.texi
--- maintain.texi 21 Jul 2016 20:17:35 -0000 1.257
+++ maintain.texi 16 Sep 2017 22:48:16 -0000
@@ -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 July 21, 2016
+@set lastupdate September 16, 2017
@c %**end of header
@dircategory GNU organization
@@ -100,13 +100,13 @@
the Texinfo source, but if that's difficult for you, you can make a
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}.
+found at @url{https://savannah.gnu.org/projects/gnustandards}.
@cindex @code{gnustandards-commit@@gnu.org} mailing list
If you want to receive diffs for every change to these GNU documents,
join the mailing list @code{gnustandards-commit@@gnu.org}, for
instance via the web interface at
-@url{http://lists.gnu.org/mailman/listinfo/gnustandards-commit}.
+@url{https://lists.gnu.org/mailman/listinfo/gnustandards-commit}.
Archives are also available there.
@cindex Piercy, Marge
@@ -139,7 +139,7 @@
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
+@url{https://www.gnu.org/contact/gnu-advisory.html} for the current
committee members. Additional information is in
@file{/gd/gnuorg/advisory}.
@@ -173,16 +173,16 @@
available on the general GNU server, currently
@code{fencepost.gnu.org}. If you are the maintainer of a GNU package,
you should have an account there. If you don't have one already, see
-@url{http://www.gnu.org/software/README.accounts.html}. You can also
+@url{https://www.gnu.org/software/README.accounts.html}. You can also
ask for accounts for people who significantly help you in working on
the package. Such GNU login accounts include email
-(see @url{http://www.fsf.org/about/systems/sending-mail-via-fencepost}).
+(see @url{https://www.fsf.org/about/systems/sending-mail-via-fencepost}).
@end macro
@gdgnuorgtext{}
Other resources available to GNU maintainers are described at
-@url{http://www.gnu.org/software/devel.html}, as well as throughout
+@url{https://www.gnu.org/software/devel.html}, as well as throughout
this document. In brief:
@itemize @bullet
@@ -262,7 +262,7 @@
@email{maintainers@@gnu.org}.
We're happy to acknowledge all major contributors to GNU packages on
-the @url{http://www.gnu.org/people/people.html} web page. Please send
+the @url{https://www.gnu.org/people/people.html} web page. Please send
an entry for yourself to @email{webmasters@@gnu.org}, and feel free to
suggest it to other significant developers on your package.
@@ -357,7 +357,7 @@
more details, you should send one of the templates that are found in
the directory @file{/gd/gnuorg/Copyright/}; they are also available
from the @file{doc/Copyright/} directory of the @code{gnulib} project
-at @url{http://savannah.gnu.org/projects/gnulib}. This section
+at @url{https://savannah.gnu.org/projects/gnulib}. This section
explains which templates you should use in which circumstances.
@strong{Please don't use any of the templates except for those listed
here, and please don't change the wording.}
@@ -794,7 +794,7 @@
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
+@url{https://www.gnu.org/licenses/why-not-lgpl.html} discusses this
strategic choice.
Some of these libraries need to work with programs released under
@@ -829,7 +829,7 @@
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/}.
+not, see @url{https://www.gnu.org/licenses/}.
@end smallexample
For small packages, you can use ``This program'' instead of ``GNU
@@ -844,12 +844,12 @@
@itemize @bullet
@item
-@uref{http://www.gnu.org/licenses/}.
+@uref{https://www.gnu.org/licenses/}.
@item
The @code{gnulib} project on @code{savannah.gnu.org}, which you
can access via anonymous Git or CVS. See
-@uref{http://savannah.gnu.org/projects/gnulib}.
+@uref{https://savannah.gnu.org/projects/gnulib}.
@end itemize
@@ -880,7 +880,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, see @url{http://www.gnu.org/licenses/}.
+along with this program. If not, see @url{https://www.gnu.org/licenses/}.
@end quotation
But in a small program which is just a few files, you can use
@@ -898,13 +898,13 @@
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, see @url{http://www.gnu.org/licenses/}.
+along with this program. If not, see @url{https://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
+@url{https://@/www.gnu.org/@/licenses/@/gpl-howto.html} discusses application
the GPL in more detail.
@@ -943,7 +943,7 @@
@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
+@url{https://www.gnu.org/licenses/fdl-howto.html} for more advice about
how to use the GNU FDL.
If you write a manual that people might want to buy on paper, please
@@ -1128,7 +1128,7 @@
because these are the most important platforms for a GNU package. If
you don't have access to one of these platforms, as a GNU maintainer
you can get access to the general GNU login machine; see
-@url{http://www.gnu.org/software/README.accounts.html}.
+@url{https://www.gnu.org/software/README.accounts.html}.
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
@@ -1219,7 +1219,7 @@
To create and maintain simple aliases and unmanaged lists, you can
edit @file{/com/mailer/aliases} on the main GNU server. If you don't
have an account there, please read
-@url{http://www.gnu.org/software/README.accounts.html} (@pxref{GNU
+@url{https://www.gnu.org/software/README.accounts.html} (@pxref{GNU
Accounts and Resources}).
But if you don't want to learn how to do those things, you can ask
@@ -1283,11 +1283,11 @@
to make bug reports useful. Copying and adapting that could be very
useful for your package.
-@cindex @url{http://bugs.gnu.org}
+@cindex @url{https://bugs.gnu.org}
@cindex bug reports, email tracker for
@cindex bug reports, web tracker for
If you would like to use an email-based bug tracking system, see
-@url{http://bugs.gnu.org}; this can be connected with the regular
+@url{https://bugs.gnu.org}; this can be connected with the regular
bug-reporting address. Alternatively, if you would like to use a
web-based bug tracking system, Savannah supports this (@pxref{Old
Versions}), but please don't fail to accept bugs by regular email as
@@ -1317,7 +1317,7 @@
for source control and other package needs: @code{savannah.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}.
+@url{https://savannah.gnu.org/maintenance}.
It's not an absolute requirement, but all GNU maintainers are strongly
encouraged to take advantage of Savannah, as sharing such a central
@@ -1329,7 +1329,7 @@
@cindex @code{savannah-announce@@gnu.org} mailing list
If you do use Savannah, please subscribe to the
@email{savannah-announce@@gnu.org} mailing list
-(@url{http://lists.gnu.org/mailman/listinfo/savannah-announce}). This
+(@url{https://lists.gnu.org/mailman/listinfo/savannah-announce}). This
is a very low-volume list to keep Savannah users informed of system
upgrades, problems, and the like.
@@ -1451,7 +1451,7 @@
If you distribute them, please inform their users prominently that
those non-free platforms trample their freedom. It is useful to refer
them to
-@url{http://www.gnu.org/philosophy/free-software-even-more-important.html}.
+@url{https://www.gnu.org/philosophy/free-software-even-more-important.html}.
You can say, ``This program respects your freedom, but Windows does
not. To have freedom, you need to stop using Windows and other
software that denies your freedom.''
@@ -1555,9 +1555,9 @@
@enumerate
@item
-Create an account for yourself at @url{http://savannah.gnu.org}, if
+Create an account for yourself at @url{https://savannah.gnu.org}, if
you don't already have one. By the way, this is also needed to
-maintain the web pages at @url{http://www.gnu.org} for your project
+maintain the web pages at @url{https://www.gnu.org} for your project
(@pxref{Web Pages}).
@item
@@ -1572,7 +1572,7 @@
@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}.
+information about GPG, see @url{https://www.gnu.org/software/gpg}.
@item
Compose a message with the following items in some @var{msgfile}.
@@ -1650,7 +1650,7 @@
One programmatic way to create and transfer the necessary files is to
use the @code{gnupload} script, which is available from the
@file{build-aux/} directory of the @code{gnulib} project at
-@url{http://savannah.gnu.org/projects/gnulib}. Run
+@url{https://savannah.gnu.org/projects/gnulib}. Run
@code{gnupload@tie{}--help} for a description and examples. (With
@code{gnupload}, you specify a destination such as
@samp{ftp.gnu.org:}@var{pkgname} rather than using the
@@ -1773,9 +1773,9 @@
@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
+@indicateurl{https://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.
+@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
@@ -1807,7 +1807,7 @@
@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}.
+@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
@@ -1936,7 +1936,7 @@
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/}
+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.
@@ -1992,13 +1992,13 @@
please do not announce test releases on @code{info-gnu} unless it's a
highly unusual situation.
-@cindex @url{http://planet.gnu.org}
+@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{http://planet.gnu.org} (GNU Planet), unless the text of the entry
+@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.
@@ -2020,14 +2020,14 @@
@item
Your package's web page (normally
-@indicateurl{http://www.gnu.org/software/@var{package}/}).
+@indicateurl{https://www.gnu.org/software/@var{package}/}).
@item
Your package's download location (normally
-@indicateurl{http://ftp.gnu.org/gnu/@var{package}/}). It is also
+@indicateurl{https://ftp.gnu.org/gnu/@var{package}/}). It is also
useful to mention the mirror list at
-@url{http://www.gnu.org/order/ftp.html}, and that
-@indicateurl{http://ftpmirror.gnu.org/@var{package/}} will automatically
+@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
@@ -2038,7 +2038,7 @@
You may find the @file{announce-gen} script useful for creating
announcements, which is available from the @file{build-aux/} directory
of the @code{gnulib} project at
-@url{http://savannah.gnu.org/projects/gnulib}.
+@url{https://savannah.gnu.org/projects/gnulib}.
@node Web Pages
@@ -2047,14 +2047,14 @@
Please write web pages about your package, and install them on
@code{www.gnu.org}. They should follow our usual standards for web
-pages (see @url{http://www.gnu.org/server/@/fsf-html-style-sheet.html}).
+pages (see @url{https://www.gnu.org/server/@/fsf-html-style-sheet.html}).
The overall goals are to support a wide variety of browsers, to focus
on information rather than flashy eye candy, and to keep the site
simple and uniform.
We encourage you to use the standard @code{www.gnu.org} template as
the basis for your pages:
-@url{http://www.gnu.org/server/@/standards/@/boilerplate-source.html}.
+@url{https://www.gnu.org/server/@/standards/@/boilerplate-source.html}.
Some GNU packages have just simple web pages, but the more information
you provide, the better. So please write as much as you usefully can,
@@ -2064,7 +2064,7 @@
on @code{www.gnu.org} link to that site.
Please follow the best practices of accessibility in your web pages
-(see @url{http://www.gnu.org/accessibility/accessibility.html}).
+(see @url{https://www.gnu.org/accessibility/accessibility.html}).
@menu
* Hosting for Web Pages::
@@ -2081,7 +2081,7 @@
the project on @code{savannah.gnu.org}. Then you can edit the pages
using CVS, using the separate ``web pages repository'' available on
Savannah, which corresponds to
-@indicateurl{http://www.gnu.org/software/@var{package}/}. You can
+@indicateurl{https://www.gnu.org/software/@var{package}/}. You can
keep your source files there too (using any of a variety of version
control systems), but you can use @code{savannah.gnu.org} only for
your gnu.org web pages if you wish; simply register a ``web-only''
@@ -2095,7 +2095,7 @@
If you use Savannah, you can use a special file named @file{.symlinks}
in order to create symbolic links, which are not supported in CVS.
For details, see
-@url{http://www.gnu.org/server/standards/README.webmastering.html#symlinks}.
+@url{https://www.gnu.org/server/standards/README.webmastering.html#symlinks}.
@node Freedom for Web Pages
@@ -2119,11 +2119,11 @@
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}.
+generally superior. See @url{https://www.gnu.org/philosophy/gif.html}.
Please make sure that any Javascript code in your web pages is covered
by a free license, and has its license indicated in a way LibreJS can
-recognize. See @url{http://gnu.org/philosophy/javascript-trap.html}.
+recognize. See @url{https://gnu.org/philosophy/javascript-trap.html}.
If the Javascript in the page is minified, or for any other reason is
not the source code, it must point to its source code as described
there.
@@ -2152,7 +2152,7 @@
creating all these different formats and index pages easier.
We would like to list all GNU manuals on the page
-@url{http://www.gnu.org/manual}, so if yours isn't there, please send
+@url{https://www.gnu.org/manual}, so if yours isn't there, please send
mail to @code{webmasters@@gnu.org}, asking them to add yours, and they
will do so based on the contents of your @file{manual} directory.
@@ -2174,14 +2174,14 @@
development:
@smallformat
-@uref{http://git.savannah.gnu.org/cgit/gnulib.git/tree/build-aux/gendocs.sh}
-@uref{http://git.savannah.gnu.org/cgit/gnulib.git/tree/doc/gendocs_template}
+@uref{https://git.savannah.gnu.org/cgit/gnulib.git/tree/build-aux/gendocs.sh}
+@uref{https://git.savannah.gnu.org/cgit/gnulib.git/tree/doc/gendocs_template}
@end smallformat
There is also a minimalistic template, available from:
@smallformat
-@uref{http://git.savannah.gnu.org/cgit/gnulib.git/tree/doc/gendocs_template_min}
+@uref{https://git.savannah.gnu.org/cgit/gnulib.git/tree/doc/gendocs_template_min}
@end smallformat
Invoke the script like this, in the directory containing the Texinfo
@@ -2286,7 +2286,7 @@
@c The CVS manual is now built with numeric references and no nonsplit
@c form, so it's not worth trying to give a direct link.
See the ``Keyword Substitution'' section in the CVS manual, available
-from @url{http://cvs.nongnu.org}.
+from @url{https://cvs.nongnu.org}.
In Texinfo source, the recommended way to literally specify a
``dollar'' keyword is:
@@ -2399,7 +2399,7 @@
makes for a good society. The term open source, initiated in 1998, is
associated with a philosophy which studiously avoids such questions.
For a detailed explanation, see
-@url{http://www.gnu.org/philosophy/open-source-misses-the-point.html}.
+@url{https://www.gnu.org/philosophy/open-source-misses-the-point.html}.
The GNU Project is aligned with the free software movement. This
doesn't mean that all GNU contributors and maintainers have to agree;
@@ -2443,7 +2443,7 @@
documentation, and announcements and articles that you publish in your
role as the maintainer of a GNU package. If you want to explain the
terminology and its reasons, you can refer to the URL
-@url{http://www.gnu.org/gnu/linux-and-gnu.html}.
+@url{https://www.gnu.org/gnu/linux-and-gnu.html}.
To make it clear that Linux is a kernel, not an operating system,
please take care to avoid using the term ``Linux system'' in those
@@ -2466,7 +2466,7 @@
Note that this uses a space, not a slash.
For more about this point, see
-@url{http://www.gnu.org/gnu/gnu-linux-faq.html}.
+@url{https://www.gnu.org/gnu/gnu-linux-faq.html}.
@node Interviews and Speeches
@chapter Interviews and Speeches
@@ -2487,16 +2487,16 @@
@itemize @bullet
@item
What GNU is (an operating system developed to be Unix-like and totally
-free software). It is good to mention @url{http://www.gnu.org}.
+free software). It is good to mention @url{https://www.gnu.org}.
@item
What free software is (the users control it, so it doesn't control
them). It is good to state the four freedoms and/or refer to
-@url{http://www.gnu.org/philosophy/free-sw.html}.
+@url{https://www.gnu.org/philosophy/free-sw.html}.
@item
What GNU/Linux is (Linux filled the last gap in GNU). It is useful to
-refer to @url{http://www.gnu.org/gnu/linux-and-gnu.html}.
+refer to @url{https://www.gnu.org/gnu/linux-and-gnu.html}.
@item
What the GNU Project is (the project to develop GNU).
@@ -2568,10 +2568,10 @@
of the GNU Project, not products of <company name>. We call them
"free software" because you are free to copy and redistribute them,
following the rules stated in the license of each package. For more
-information, see http://www.gnu.org/philosophy/free-sw.html.
+information, see https://www.gnu.org/philosophy/free-sw.html.
If you are looking for service or support for GNU software, see
-http://www.gnu.org/gethelp/ for suggestions of where to ask.
+https://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
@@ -2633,7 +2633,7 @@
spending of these funds.
Of course, it is also good to encourage people to join the FSF
-(@url{http://www.fsf.org}) or make a general donation, either instead
+(@url{https://www.fsf.org}) or make a general donation, either instead
of or as well as package-specific donations.
@@ -2645,7 +2645,7 @@
The Free Software Directory aims to be a complete list of free
software packages, within certain criteria. Every GNU package should
be listed there, so please see
-@url{http://www.gnu.org/help/directory.html#adding-entries} for
+@url{https://www.gnu.org/help/directory.html#adding-entries} for
information on how to write an entry for your package. Contact
@email{bug-directory@@gnu.org} with any questions or suggestions for
the Free Software Directory.
Index: standards.texi
===================================================================
RCS file: /sources/gnustandards/gnustandards/standards.texi,v
retrieving revision 1.249
diff -u -r1.249 standards.texi
--- standards.texi 25 Jul 2016 17:05:18 -0000 1.249
+++ standards.texi 16 Sep 2017 22:48:16 -0000
@@ -3,7 +3,7 @@
@setfilename standards.info
@settitle GNU Coding Standards
@c This date is automagically updated when you save this file:
-@set lastupdate July 25, 2016
+@set lastupdate September 16, 2017
@c %**end of header
@dircategory GNU organization
@@ -87,7 +87,7 @@
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/}.
+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,7 +98,7 @@
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}.
+@url{https://lists.gnu.org/mailman/listinfo/gnustandards-commit}.
Archives are also available there.
@cindex @code{bug-standards@@gnu.org} email address
@@ -111,7 +111,7 @@
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}.
+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,7 +127,7 @@
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}.
+@uref{https://www.gnu.org/software/hello/hello.html}.
This release of the GNU Coding Standards was last updated
@value{lastupdate}.
@@ -311,7 +311,7 @@
@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
+(@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
@@ -890,7 +890,7 @@
Please make your program interoperate with access technology such as
screen readers (see
-@url{http://www.gnu.org/accessibility/accessibility.html}). This should
+@url{https://www.gnu.org/accessibility/accessibility.html}). This should
be automatic if you use GTK+.
@node Command-Line Interfaces
@@ -1009,7 +1009,7 @@
@smallexample
GNU hello 2.3
Copyright (C) 2007 Free Software Foundation, Inc.
-License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
+License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
@end smallexample
@@ -1054,10 +1054,10 @@
@table @asis
@item GPL
-GNU General Public License, @url{http://www.gnu.org/@/licenses/@/gpl.html}.
+GNU General Public License, @url{https://www.gnu.org/@/licenses/@/gpl.html}.
@item LGPL
-GNU Lesser General Public License, @url{http://www.gnu.org/@/licenses/@/lgpl.html}.
+GNU Lesser General Public License, @url{https://www.gnu.org/@/licenses/@/lgpl.html}.
@item GPL/Ada
GNU GPL with the exception for Ada.
@@ -1084,11 +1084,11 @@
@item public domain
The non-license that is being in the public domain,
-@url{http://www.gnu.org/@/licenses/@/license-list.html#PublicDomain}.
+@url{https://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}.
+@url{https://directory.fsf.org/wiki?title=License:Python2.0.1}.
@item RBSD
The revised (3-clause) BSD, compatible with the GNU GPL,@*
@@ -1105,7 +1105,7 @@
More information about these licenses and many more are on the GNU
licensing web pages,
-@url{http://www.gnu.org/@/licenses/@/license-list.html}.
+@url{https://www.gnu.org/@/licenses/@/license-list.html}.
@node --help
@@ -1122,13 +1122,13 @@
@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
+(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: <http://www.gnu.org/software/@var{pkg}/>
-General help using GNU software: <http://www.gnu.org/gethelp/>
+@var{pkg} home page: <https://www.gnu.org/software/@var{pkg}/>
+General help using GNU software: <https://www.gnu.org/gethelp/>
@end example
It is ok to mention other appropriate mailing lists and web pages.
@@ -3023,7 +3023,7 @@
@end table
@cindex Gnulib
-@uref{http://www.gnu.org/software/gnulib/, Gnulib} is a big help in
+@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
@@ -3476,7 +3476,7 @@
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
+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
@@ -3501,7 +3501,7 @@
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
+@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
@@ -3822,7 +3822,7 @@
Manuals}).
Finally, the GNU help2man program
-(@uref{http://www.gnu.org/software/help2man/}) is one way to automate
+(@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.
@@ -3846,7 +3846,7 @@
@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
+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
@@ -3952,7 +3952,7 @@
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,
+@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.
@@ -3963,7 +3963,7 @@
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,
+@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
@@ -4180,13 +4180,13 @@
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
+@url{https://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''
+@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{http://www.gnu.org/@/licenses/@/license-list.html}. If it is not
+@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.