Your bug report raised two points: the numeric time zone -00, and separating date from time with space instead of "T".

For -00, you're right that the documentation is messed up. While we're on the topic, 'date' should output the numeric time zone '-00' when the time zone is indeterminate. There's now a convention for indeterminate time zones in tzdb, and 'date' should respect that.

For space instead of T, as it happens I contributed to the drafting of RFC 3339. RFC 3339's note that allows a space instead of "T" was specifically put in with usages like GNU "date" in mind. It's irrelevant whether this note is specified in English or in EBNF: it's part of the spec. That being said, the documentation could be worded more carefully.

The examples are intended to explain the GNU 'date' formats well enough that the user shouldn't need detailed annotations or citations to chapter-and-verse of the relevant standards. In rereading the documentation now, I see an opportunity to streamline the wording a bit, to avoid a possible misinterpretation that the coreutils documentation describes "the" ISO 6801 format (ISO 8601 does not specify just one format) or "the" Internet RFC 3339 format (likewise).

While we're in the neighborhood, Internet RFC 2822 is now obsolete, and several URLs in the coreutils manual either no longer work or have been superseded. Instead of adding yet another option --rfc-5322 (will we keep adding more and more?) I added an option --rfc-email that is intended to stand for the latest-and-greatest Internet email date format.

I installed the attached patches to address all the issues that I found, which should fix Bug#25448.
From f727ad75ab1e24c61ce706f57dee793016602a29 Mon Sep 17 00:00:00 2001
From: Paul Eggert <egg...@cs.ucla.edu>
Date: Sat, 14 Jan 2017 11:44:05 -0800
Subject: [PATCH 1/4] build: update gnulib submodule to latest

---
 gnulib | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/gnulib b/gnulib
index b20e8af..0e68c6a 160000
--- a/gnulib
+++ b/gnulib
@@ -1 +1 @@
-Subproject commit b20e8afb0b2cc9548fac073d71fcd19ede29ce60
+Subproject commit 0e68c6a37ed08fc553dd6fb097d97d798dcfa40d
-- 
2.7.4

From d3d6b840db987fca75c8d39d358a88c5d9030050 Mon Sep 17 00:00:00 2001
From: Paul Eggert <egg...@cs.ucla.edu>
Date: Sat, 14 Jan 2017 22:57:51 -0800
Subject: [PATCH 2/4] maint: modernize URLs

A lot of this is converting http: to https:.
Also, gmane went away, so remove URLs that no longer work and
are not easy to figure out what they were.
Some of this stuff is so old that it no longer matters anyway.
---
 HACKING                             | 18 +++++++++---------
 README                              | 29 +++--------------------------
 README-hacking                      |  4 ++--
 README-package-renamed-to-coreutils | 24 ++++++++----------------
 README-prereq                       | 20 ++++++++++----------
 README-release                      |  4 ++--
 configure.ac                        |  2 +-
 doc/coreutils.texi                  | 35 +++++++++++++++++------------------
 init.cfg                            |  2 +-
 m4/xattr.m4                         |  1 -
 man/help2man                        |  2 +-
 src/dircolors.hin                   |  4 ++--
 src/ls.c                            |  2 +-
 src/shred.c                         |  5 ++---
 src/tail.c                          |  2 +-
 tests/cp/preserve-link.sh           |  2 +-
 tests/cp/sparse-fiemap.sh           |  2 --
 tests/misc/ls-time.sh               |  2 +-
 tests/misc/printf-surprise.sh       |  2 +-
 tests/misc/seq-long-double.sh       |  3 +--
 tests/misc/sha1sum-vec.pl           |  2 +-
 tests/misc/sort-merge-fdlimit.sh    |  2 +-
 tests/misc/sort.pl                  |  5 ++---
 tests/misc/stty.sh                  |  2 +-
 24 files changed, 69 insertions(+), 107 deletions(-)

diff --git a/HACKING b/HACKING
index 2b02b33..07d8225 100644
--- a/HACKING
+++ b/HACKING
@@ -9,7 +9,7 @@ On Debian-based ones install the "git-core" package.
 Then run "git --version".  If that says it's older than
 version 1.4.4, then you'd do well to get a newer version.
 At worst, just download the latest stable release from
-http://git.or.cz/ and build from source.
+https://git-scm.com/ and build from source.
 
 For details on building the programs in this package, see
 the file, README-hacking.
@@ -224,7 +224,7 @@ keep the maximum line length at 72 or smaller, so that the generated
 ChangeLog lines, each with its leading TAB, will not exceed 80 columns.
 As for the ChangeLog-style content, please follow these guidelines:
 
-  http://www.gnu.org/software/guile/changelogs/guile-changelogs_3.html
+  https://www.gnu.org/prep/standards/standards.html#Change-Logs
 
 Try to make the summary line fit one of the following forms:
 
@@ -389,7 +389,7 @@ Send patches to the address listed in --help output
 Please follow the guidelines in the "Sending your patches." section of
 git's own SubmittingPatches:
 
-  http://git.kernel.org/?p=git/git.git;a=blob;f=Documentation/SubmittingPatches
+  https://github.com/git/git/blob/master/Documentation/SubmittingPatches
 
 
 Add documentation
@@ -406,7 +406,7 @@ active voice, not a passive one.  I.e., say "print the frobnozzle",
 not "the frobnozzle will be printed".
 
 Please add comments per the GNU Coding Standard:
-  http://www.gnu.org/prep/standards/html_node/Comments.html
+  https://www.gnu.org/prep/standards/html_node/Comments.html
 
 
 Minor syntactic preferences
@@ -418,7 +418,7 @@ Minor syntactic preferences
  character ;-) ]
 In writing arithmetic comparisons, use "<" and "<=" rather than
 ">" and ">=".  For some justification, read this:
-  http://thread.gmane.org/gmane.comp.version-control.git/3903/focus=4126
+  http://www.gelato.unsw.edu.au/archives/git/0505/4507.html
 
 const placement:
 Write "Type const *var", not "const Type *var".
@@ -480,18 +480,18 @@ The forms to choose from are in gnulib's doc/Copyright/ directory.
 If you want to assign a single change, you should use the file,
 doc/Copyright/request-assign.changes:
 
-    http://www.gnu.org/software/gnulib/Copyright/request-assign.changes
+    https://www.gnu.org/software/gnulib/Copyright/request-assign.changes
 
 If you would like to assign past and future contributions to a project,
 you'd use doc/Copyright/request-assign.future:
 
-    http://www.gnu.org/software/gnulib/Copyright/request-assign.future
+    https://www.gnu.org/software/gnulib/Copyright/request-assign.future
 
 You may make assignments for up to four projects at a time.
 
 In case you're wondering why we bother with all of this, read this:
 
-    http://www.gnu.org/licenses/why-assign.html
+    https://www.gnu.org/licenses/why-assign.html
 
 
 Run "make syntax-check", or even "make distcheck"
@@ -526,7 +526,7 @@ to configure your editor to highlight any offending characters in the
 files you edit.  If you use Emacs, customize its font-lock mode
 or use its WhiteSpace mode:
 
-    http://www.emacswiki.org/emacs/WhiteSpace
+    https://www.emacswiki.org/emacs/WhiteSpace
 
 If you use vim, add this to ~/.vimrc:
 
diff --git a/README b/README
index ebc355b..5cb90d3 100644
--- a/README
+++ b/README
@@ -57,29 +57,6 @@ files (man/*.x) are welcome.  However, the authoritative documentation
 is in texinfo form in the doc directory.
 
 
-*********************************************
-On Mac OS X 10.5.1 (Darwin 9.1), test failure
----------------------------------------------
-
-Mac OS X 10.5.1 (Darwin 9.1) provides only partial (and incompatible)
-ACL support, so although "./configure && make" succeeds, "make check"
-exposes numerous failures.  The solution is to turn off ACL support
-manually via "./configure --disable-acl".  For details, see
-<http://thread.gmane.org/gmane.comp.gnu.coreutils.bugs/12292/focus=12318>.
-
-
-*****************************************
-Test failure with NLS and gettext <= 0.17
------------------------------------------
-
-Due to a conflict between libintl.h and gnulib's new xprintf module,
-when you configure with NLS support, and with a gettext installation
-older than 0.17.1 (not yet released, at the time of this writing),
-then some tests fail, at least on NetBSD 1.6.  To work around it in
-the mean time, you can configure with --disable-nls.  For details,
-see <http://thread.gmane.org/gmane.comp.lib.gnulib.bugs/12015/>.
-
-
 *********************
 Pre-C99 build failure
 ---------------------
@@ -210,7 +187,7 @@ coreut...@gnu.org including as much description and justification
 as you can.  Based on the feedback that generates, you may be able to
 convince us that it's worth adding.  Please also consult the list of
 previously discussed but ultimately rejected feature requests at:
-http://www.gnu.org/software/coreutils/rejected_requests.html
+https://www.gnu.org/software/coreutils/rejected_requests.html
 
 
 WARNING:  Now that we use the ./bootstrap script, you should not run
@@ -229,8 +206,8 @@ When reporting bugs, please include in the subject line both the package
 name/version and the name of the program for which you found a problem.
 
 For general documentation on the coding and usage standards
-this distribution follows, see the GNU Coding Standards,
-http://www.gnu.org/prep/standards_toc.html.
+this distribution follows, see the GNU Coding Standards at:
+https://www.gnu.org/prep/standards/
 
 For any copyright year range specified as YYYY-ZZZZ in this package
 note that the range specifies every single year in that closed interval.
diff --git a/README-hacking b/README-hacking
index 998a877..6e4767f 100644
--- a/README-hacking
+++ b/README-hacking
@@ -72,7 +72,7 @@ if the problem seems to originate in a gnulib-provided file.
 If you develop a fix or a new feature, please send it to the
 appropriate bug-reporting address as reported by the --help option of
 each program.  One way to do this is to use vc-dwim
-<http://www.gnu.org/software/vc-dwim/>), as follows.
+<https://www.gnu.org/software/vc-dwim/>), as follows.
 
   Run the command "vc-dwim --help", copy its definition of the
   "git-changelog-symlink-init" function into your shell, and then run
@@ -80,7 +80,7 @@ each program.  One way to do this is to use vc-dwim
 
   Edit the (empty) ChangeLog file that this command creates, creating a
   properly-formatted entry according to the GNU coding standards
-  <http://www.gnu.org/prep/standards/html_node/Change-Logs.html>.
+  <https://www.gnu.org/prep/standards/html_node/Change-Logs.html>.
 
   Make your changes.
 
diff --git a/README-package-renamed-to-coreutils b/README-package-renamed-to-coreutils
index 5030f87..081b2d4 100644
--- a/README-package-renamed-to-coreutils
+++ b/README-package-renamed-to-coreutils
@@ -1,21 +1,13 @@
-As of 2002-09-01, the GNU fileutils, textutils, and sh-utils
-packages have been merged into one, called the GNU coreutils.
-See http://www.gnu.org/software/coreutils/ for a description.
+On 2002-09-01, the GNU fileutils, textutils, and sh-utils
+packages were merged into one, called the GNU coreutils.
+See https://www.gnu.org/software/coreutils/coreutils.html for a description.
 Here's the FAQ list:
 
-  http://www.gnu.org/software/coreutils/faq/
+  https://www.gnu.org/software/coreutils/faq/
 
 For information on the mailing lists associated with the
-coreutils package, see these:
+coreutils package, including archive locations, see these:
 
-  http://mail.gnu.org/mailman/listinfo/coreutils-announce
-  http://mail.gnu.org/mailman/listinfo/bug-coreutils
-  http://mail.gnu.org/mailman/listinfo/coreutils
-
-mailing list archives are here:
-
-  http://news.gmane.org/gmane.comp.gnu.coreutils.announce
-  http://news.gmane.org/gmane.comp.gnu.core-utils.bugs (up to the minute)
-  http://mail.gnu.org/pipermail/bug-coreutils/ (updated every 12 hours)
-  http://news.gmane.org/gmane.comp.gnu.coreutils.general
-  http://mail.gnu.org/pipermail/coreutils/ (updated every 12 hours)
+  https://lists.gnu.org/mailman/listinfo/coreutils-announce
+  https://lists.gnu.org/mailman/listinfo/bug-coreutils
+  https://lists.gnu.org/mailman/listinfo/coreutils
diff --git a/README-prereq b/README-prereq
index 099fc01..f939f78 100644
--- a/README-prereq
+++ b/README-prereq
@@ -1,17 +1,17 @@
 This gives some notes on obtaining the tools required for development.
 I.e., the tools checked for by the bootstrap script and include:
 
-- Autoconf  <http://www.gnu.org/software/autoconf/>
-- Automake  <http://www.gnu.org/software/automake/>
-- Bison     <http://www.gnu.org/software/bison/>
-- Gettext   <http://www.gnu.org/software/gettext/>
-- Git       <http://git.or.cz/>
-- Gperf     <http://www.gnu.org/software/gperf/>
-- Gzip      <http://www.gnu.org/software/gzip/>
+- Autoconf  <https://www.gnu.org/software/autoconf/>
+- Automake  <https://www.gnu.org/software/automake/>
+- Bison     <https://www.gnu.org/software/bison/>
+- Gettext   <https://www.gnu.org/software/gettext/>
+- Git       <https://git-scm.com/>
+- Gperf     <https://www.gnu.org/software/gperf/>
+- Gzip      <https://www.gnu.org/software/gzip/>
 - Perl      <http://www.cpan.org/>
-- Rsync     <http://samba.anu.edu.au/rsync/>
-- Tar       <http://www.gnu.org/software/tar/>
-- Texinfo   <http://www.gnu.org/software/texinfo/>
+- Rsync     <https://rsync.samba.org/>
+- Tar       <https://www.gnu.org/software/tar/>
+- Texinfo   <https://www.gnu.org/software/texinfo/>
 
 Note please try to install/build official packages for your system.
 If these programs are not available use the following instructions
diff --git a/README-release b/README-release
index 88356bc..967a190 100644
--- a/README-release
+++ b/README-release
@@ -134,11 +134,11 @@ Once all the builds and tests have passed,
 * Send the announcement email message (signed with the release key)
 
 * Approve the announcement here:
-  http://lists.gnu.org/mailman/admindb/coreutils-announce
+  https://lists.gnu.org/mailman/admindb/coreutils-announce
 
 * After each non-alpha release, update the on-line manual accessible via
 
-    http://www.gnu.org/software/coreutils/manual/
+    https://www.gnu.org/software/coreutils/manual/
 
   by running this:
 
diff --git a/configure.ac b/configure.ac
index b009a90..a13295a 100644
--- a/configure.ac
+++ b/configure.ac
@@ -142,7 +142,7 @@ if test "$gl_gcc_warnings" = yes; then
 
   # Using -Wstrict-overflow is a pain, but the alternative is worse.
   # For an example, see the code that provoked this report:
-  # http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33498
+  # https://gcc.gnu.org/bugzilla/show_bug.cgi?id=33498
   # Code like that still infloops with gcc-4.6.0 and -O2.  Scary indeed.
 
   gl_MANYWARN_ALL_GCC([ws])
diff --git a/doc/coreutils.texi b/doc/coreutils.texi
index 2da543c..64243a6 100644
--- a/doc/coreutils.texi
+++ b/doc/coreutils.texi
@@ -2194,7 +2194,7 @@ base64 --decode [@var{option}]@dots{} [@var{file}]
 The base64 encoding expands data to roughly 133% of the original.
 The base32 encoding expands data to roughly 160% of the original.
 The format conforms to
-@uref{ftp://ftp.rfc-editor.org/in-notes/rfc4648.txt, RFC 4648}.
+@uref{https://tools.ietf.org/search/rfc4648, RFC 4648}.
 
 The program accepts the following options.  Also see @ref{Common options}.
 
@@ -8919,7 +8919,7 @@ tape=/dev/rmt/0
 For failing disks, other tools come with a great variety of extra
 functionality to ease the saving of as much data as possible before the
 disk finally dies, e.g.
-@uref{http://www.gnu.org/software/ddrescue/, GNU @command{ddrescue}}.
+@uref{https://www.gnu.org/software/ddrescue/, GNU @command{ddrescue}}.
 However, in some cases such a tool is not available or the administrator
 feels more comfortable with the handling of @command{dd}.
 As a simple rescue method, call @command{dd} as shown in the following
@@ -9502,7 +9502,7 @@ This uses many overwrite passes, with the data patterns chosen to
 maximize the damage they do to the old data.  While this will work on
 floppies, the patterns are designed for best effect on hard drives.
 For more details, see the source code and Peter Gutmann's paper
-@uref{http://www.cs.auckland.ac.nz/~pgut001/pubs/secure_del.html,
+@uref{https://www.cs.auckland.ac.nz/~pgut001/pubs/secure_del.html,
 @cite{Secure Deletion of Data from Magnetic and Solid-State Memory}},
 from the proceedings of the Sixth USENIX Security Symposium (San Jose,
 California, July 22--25, 1996).
@@ -13144,7 +13144,7 @@ you often want to verify its signature or checksum right away.
 The inefficient way to do it is simply:
 
 @example
-wget http://example.com/some.iso && sha1sum some.iso
+wget https://example.com/some.iso && sha1sum some.iso
 @end example
 
 One problem with the above is that it makes you wait for the
@@ -13158,7 +13158,7 @@ free, because the entire process parallelizes so well:
 
 @example
 # slightly contrived, to demonstrate process substitution
-wget -O - http://example.com/dvd.iso \
+wget -O - https://example.com/dvd.iso \
   | tee >(sha1sum > dvd.sha1) > dvd.iso
 @end example
 
@@ -13184,7 +13184,7 @@ Since the above example writes to one file and one process,
 a more conventional and portable use of @command{tee} is even better:
 
 @example
-wget -O - http://example.com/dvd.iso \
+wget -O - https://example.com/dvd.iso \
   | tee dvd.iso | sha1sum > dvd.sha1
 @end example
 
@@ -13193,7 +13193,7 @@ computing MD5 and SHA1 checksums in parallel.  In this case,
 process substitution is required:
 
 @example
-wget -O - http://example.com/dvd.iso \
+wget -O - https://example.com/dvd.iso \
   | tee >(sha1sum > dvd.sha1) \
         >(md5sum > dvd.md5) \
   > dvd.iso
@@ -14277,7 +14277,7 @@ May be negated.
 @opindex extproc
 Enable @samp{LINEMODE}, which is used to avoid echoing
 each character over high latency links.  See also
-@uref{ftp://ftp.rfc-editor.org/in-notes/rfc1116.txt, Internet RFC 1116}.
+@uref{https://tools.ietf.org/search/rfc1116, Internet RFC 1116}.
 Non-POSIX@.
 May be negated.
 
@@ -15516,16 +15516,16 @@ For example:
 Fri, 09 Sep 2005 13:51:39 -0700
 @end example
 
-This format conforms to
-@uref{ftp://ftp.rfc-editor.org/in-notes/rfc2822.txt, Internet
-RFCs 2822} and
-@uref{ftp://ftp.rfc-editor.org/in-notes/rfc822.txt, 822}, the
+This format conforms to Internet RFCs
+@uref{https://tools.ietf.org/search/rfc5322, 5322},
+@uref{https://tools.ietf.org/search/rfc2822, 822} and
+@uref{https://tools.ietf.org/search/rfc822, 822}, the
 current and previous standards for Internet email.
 
 @item --rfc-3339=@var{timespec}
 @opindex --rfc-3339=@var{timespec}
 Display the date using a format specified by
-@uref{ftp://ftp.rfc-editor.org/in-notes/rfc3339.txt, Internet
+@uref{https://tools.ietf.org/search/rfc3339, Internet
 RFC 3339}.  This is a subset of the ISO 8601
 format, except that it also permits applications to use a space rather
 than a @samp{T} to separate dates from times.
@@ -18212,10 +18212,9 @@ Know your toolbox!  Use each program appropriately.  If you don't have an
 appropriate tool, build one.
 @end enumerate
 
-As of this writing, all the programs discussed are available from
-@uref{http://ftp.gnu.org/old-gnu/textutils/textutils-1.22.tar.gz},
-with more recent versions available from
-@uref{http://ftp.gnu.org/gnu/coreutils}.
+All the programs discussed are available as described in
+@uref{https://www.gnu.org/software/coreutils/coreutils.html,
+GNU core utilities}.
 
 None of what I have presented in this column is new.  The Software Tools
 philosophy was first introduced in the book @cite{Software Tools}, by
@@ -18235,7 +18234,7 @@ reading if you're a programmer.  They certainly made a major change in
 how I view programming.
 
 The programs in both books are available from
-@uref{http://cm.bell-labs.com/who/bwk, Brian Kernighan's home page}.
+@uref{https://www.cs.princeton.edu/~bwk/, Brian Kernighan's home page}.
 For a number of years, there was an active
 Software Tools Users Group, whose members had ported the original
 @command{ratfor} programs to essentially every computer system with a
diff --git a/init.cfg b/init.cfg
index df7559e..2f747a3 100644
--- a/init.cfg
+++ b/init.cfg
@@ -627,7 +627,7 @@ skip_if_setgid_()
 # Skip if files are created with a different group to the current user
 # This can happen due to a setgid dir, or by some other mechanism on OS X:
 # http://unix.stackexchange.com/q/63865
-# http://bugs.gnu.org/14024#41
+# https://bugs.gnu.org/14024#41
 skip_if_nondefault_group_()
 {
   touch grp.$$
diff --git a/m4/xattr.m4 b/m4/xattr.m4
index 340cec8..4e0399b 100644
--- a/m4/xattr.m4
+++ b/m4/xattr.m4
@@ -7,7 +7,6 @@
 # with or without modifications, as long as this notice is preserved.
 
 # Originally written by Andreas Gruenbacher.
-# http://www.suse.de/~agruen/coreutils/5.91/coreutils-xattr.diff
 
 AC_DEFUN([gl_FUNC_XATTR],
 [
diff --git a/man/help2man b/man/help2man
index 1f90bc5..773de0f 100755
--- a/man/help2man
+++ b/man/help2man
@@ -780,7 +780,7 @@ sub convert_option
 }
 
 # Insert spacing escape characters \, and \/ before and after italic text.  See
-# http://www.gnu.org/software/groff/manual/html_node/Ligatures-and-Kerning.html
+# https://www.gnu.org/software/groff/manual/html_node/Ligatures-and-Kerning.html
 sub fix_italic_spacing
 {
     local $_ = shift;
diff --git a/src/dircolors.hin b/src/dircolors.hin
index 7ed59e2..c560c2a 100644
--- a/src/dircolors.hin
+++ b/src/dircolors.hin
@@ -176,7 +176,7 @@ EXEC 01;32
 .cgm 01;35
 .emf 01;35
 
-# http://wiki.xiph.org/index.php/MIME_Types_and_File_Extensions
+# https://wiki.xiph.org/MIME_Types_and_File_Extensions
 .ogv 01;35
 .ogx 01;35
 
@@ -194,7 +194,7 @@ EXEC 01;32
 .ra 00;36
 .wav 00;36
 
-# http://wiki.xiph.org/index.php/MIME_Types_and_File_Extensions
+# https://wiki.xiph.org/MIME_Types_and_File_Extensions
 .oga 00;36
 .opus 00;36
 .spx 00;36
diff --git a/src/ls.c b/src/ls.c
index 556313c..7349818 100644
--- a/src/ls.c
+++ b/src/ls.c
@@ -113,7 +113,7 @@
 
 /* Include <sys/capability.h> last to avoid a clash of <sys/types.h>
    include guards with some premature versions of libcap.
-   For more details, see <http://bugzilla.redhat.com/483548>.  */
+   For more details, see <https://bugzilla.redhat.com/483548>.  */
 #ifdef HAVE_CAP
 # include <sys/capability.h>
 #endif
diff --git a/src/shred.c b/src/shred.c
index 24e461a..a317c44 100644
--- a/src/shred.c
+++ b/src/shred.c
@@ -28,7 +28,7 @@
  *
  * For the theory behind this, see "Secure Deletion of Data from Magnetic
  * and Solid-State Memory", on line at
- * http://www.cs.auckland.ac.nz/~pgut001/pubs/secure_del.html
+ * https://www.cs.auckland.ac.nz/~pgut001/pubs/secure_del.html
  *
  * Just for the record, reversing one or two passes of disk overwrite
  * is not terribly difficult with hardware help.  Hook up a good-quality
@@ -379,8 +379,7 @@ direct_mode (int fd, bool enable)
     }
 
 #if HAVE_DIRECTIO && defined DIRECTIO_ON && defined DIRECTIO_OFF
-  /* This is Solaris-specific.  See the following for details:
-     http://docs.sun.com/db/doc/816-0213/6m6ne37so?q=directio&a=view  */
+  /* This is Solaris-specific.  */
   directio (fd, enable ? DIRECTIO_ON : DIRECTIO_OFF);
 #endif
 }
diff --git a/src/tail.c b/src/tail.c
index d679a87..9c31962 100644
--- a/src/tail.c
+++ b/src/tail.c
@@ -1956,7 +1956,7 @@ tail_file (struct File_spec *f, uintmax_t n_units)
             {
               /* Note: we must use read_pos here, not stats.st_size,
                  to avoid a race condition described by Ken Raeburn:
-        http://mail.gnu.org/archive/html/bug-textutils/2003-05/msg00007.html */
+         http://lists.gnu.org/archive/html/bug-textutils/2003-05/msg00007.html */
               record_open_fd (f, fd, read_pos, &stats, (is_stdin ? -1 : 1));
               f->remote = fremote (fd, pretty_name (f));
             }
diff --git a/tests/cp/preserve-link.sh b/tests/cp/preserve-link.sh
index 85de148..19ee517 100755
--- a/tests/cp/preserve-link.sh
+++ b/tests/cp/preserve-link.sh
@@ -1,5 +1,5 @@
 #!/bin/sh
-# Exercise the fix for http://debbugs.gnu.org/8419
+# Exercise the fix for https://bugs.gnu.org/8419
 
 # Copyright (C) 2011-2017 Free Software Foundation, Inc.
 
diff --git a/tests/cp/sparse-fiemap.sh b/tests/cp/sparse-fiemap.sh
index a504cd9..74657a4 100755
--- a/tests/cp/sparse-fiemap.sh
+++ b/tests/cp/sparse-fiemap.sh
@@ -26,8 +26,6 @@ touch fiemap_chk
 if fiemap_capable_ fiemap_chk && ! df -t ext3 . >/dev/null; then
   : # Current partition has working extents.  Good!
 else
-  # FIXME: temporarily(?) skip this variant, at least until after this bug
-  # is fixed: http://thread.gmane.org/gmane.comp.file-systems.ext4/24495
   skip_ "current file system has insufficient FIEMAP support"
 
   # It's not;  we need to create one, hence we need root access.
diff --git a/tests/misc/ls-time.sh b/tests/misc/ls-time.sh
index d42eb24..5149187 100755
--- a/tests/misc/ls-time.sh
+++ b/tests/misc/ls-time.sh
@@ -112,7 +112,7 @@ else
 failed ls ctime test -- this failure is expected at least for SunOS4.1.4
 and for tmpfs file systems on Solaris 5.5.1.
 It is also expected to fail on a btrfs file system until
-http://bugzilla.redhat.com/591068 is addressed.
+https://bugzilla.redhat.com/591068 is addressed.
 
 In the output below, 'c' should have had a ctime more recent than
 that of 'a', but does not.
diff --git a/tests/misc/printf-surprise.sh b/tests/misc/printf-surprise.sh
index 5358161..2edd34c 100755
--- a/tests/misc/printf-surprise.sh
+++ b/tests/misc/printf-surprise.sh
@@ -51,7 +51,7 @@ vm=$(get_min_ulimit_v_ env $prog %20f 0) \
 mkfifo_or_skip_ fifo
 
 # Disable MALLOC_PERTURB_, to avoid triggering this bug
-# http://bugs.debian.org/481543#77
+# https://bugs.debian.org/481543#77
 export MALLOC_PERTURB_=0
 
 # Terminate any background process
diff --git a/tests/misc/seq-long-double.sh b/tests/misc/seq-long-double.sh
index 4eca0a7..f202046 100755
--- a/tests/misc/seq-long-double.sh
+++ b/tests/misc/seq-long-double.sh
@@ -23,8 +23,7 @@ print_ver_ seq
 getlimits_
 
 # Run this test only with glibc and sizeof (long double) > sizeof (double).
-# Otherwise, there are known failures:
-# http://thread.gmane.org/gmane.comp.gnu.coreutils.bugs/14939/focus=14944
+# Otherwise, there are known failures.
 cat <<\EOF > long.c
 #include <features.h>
 #if defined __GNU_LIBRARY__ && __GLIBC__ >= 2
diff --git a/tests/misc/sha1sum-vec.pl b/tests/misc/sha1sum-vec.pl
index 88d31a2..26f91c7 100755
--- a/tests/misc/sha1sum-vec.pl
+++ b/tests/misc/sha1sum-vec.pl
@@ -24,7 +24,7 @@ use strict;
 @ENV{qw(LANGUAGE LANG LC_ALL)} = ('C') x 3;
 
 # The data from which these tests were derived came from here:
-# http://csrc.nist.gov/cryptval/shs/sha1-vectors.zip
+# http://web.archive.org/web/20060505234703/http://csrc.nist.gov/cryptval/shs/sha1-vectors.zip
 
 my @Tests =
     (
diff --git a/tests/misc/sort-merge-fdlimit.sh b/tests/misc/sort-merge-fdlimit.sh
index 520d3ab..71eb5ec 100755
--- a/tests/misc/sort-merge-fdlimit.sh
+++ b/tests/misc/sort-merge-fdlimit.sh
@@ -57,7 +57,7 @@ done
 # ordinary redirection on the 'sort' command.  This is intended to
 # work around bugs in OpenBSD /bin/sh, and some other sh variants,
 # that squirrel away file descriptors before closing them; see
-# <http://lists.gnu.org/archive/html/bug-tar/2010-10/msg00075.html>.
+# <https://lists.gnu.org/archive/html/bug-tar/2010-10/msg00075.html>.
 # This test finds the bug only with shells that do not close FDs on
 # exec, and will miss the bug (if present) on other shells, but it's
 # not easy to fix this without running afoul of the OpenBSD-like sh bugs.
diff --git a/tests/misc/sort.pl b/tests/misc/sort.pl
index 4d6aff9..0fa1e9c 100755
--- a/tests/misc/sort.pl
+++ b/tests/misc/sort.pl
@@ -317,7 +317,7 @@ my @Tests =
 ["22a", '-k 2,2fd -k 1,1r', {IN=>"3 b\n4 B\n"}, {OUT=>"4 B\n3 b\n"}],
 ["22b", '-k 2,2d  -k 1,1r', {IN=>"3 b\n4 b\n"}, {OUT=>"4 b\n3 b\n"}],
 
-# This fails in Fedora 20, per Göran Uddeborg in: http://bugs.gnu.org/18540
+# This fails in Fedora 20, per Göran Uddeborg in: https://bugs.gnu.org/18540
 ["23", '-s -k1,1 -t/', {IN=>"a b/x\na-b-c/x\n"}, {OUT=>"a b/x\na-b-c/x\n"},
  {ENV => "LC_ALL=$mb_locale"}],
 
@@ -383,8 +383,7 @@ my @Tests =
 ['obs-inval', '+1x', {EXIT=>2},
  {ERR=>"foo\n"}, {ERR_SUBST => 's/^$prog: .*/foo/'}],
 
-# Exercise the code that enlarges the line buffer.  See the thread here:
-# http://thread.gmane.org/gmane.comp.gnu.coreutils.bugs/11006
+# Exercise the code that enlarges the line buffer.
 ['realloc-buf', '-S1', {IN=>'a'x4000 ."\n"}, {OUT=>'a'x4000 ."\n"}],
 ['realloc-buf-2', '-S1', {IN=>'a'x5 ."\n"}, {OUT=>'a'x5 ."\n"}],
 
diff --git a/tests/misc/stty.sh b/tests/misc/stty.sh
index e549adb..54404e1 100755
--- a/tests/misc/stty.sh
+++ b/tests/misc/stty.sh
@@ -61,7 +61,7 @@ for opt in $options; do
   # on Linux 2.2.0-pre4 kernels.  Also since around Linux 2.6.30
   # other serial control settings give the same error. So skip them.
   # Also on ppc*|sparc* glibc platforms 'icanon' gives the same error.
-  # See: http://debbugs.gnu.org/7228#14
+  # See: https://bugs.gnu.org/7228#14
   case $opt in
     parenb|parodd|cmspar) continue;;
     cstopb|crtscts|cdtrdsr|icanon) continue;;
-- 
2.7.4

From a2e00673290e7cef11796637e29c76f231ebfff8 Mon Sep 17 00:00:00 2001
From: Paul Eggert <egg...@cs.ucla.edu>
Date: Sat, 14 Jan 2017 23:15:43 -0800
Subject: [PATCH 3/4] date: new option spelling --rfc-email

* NEWS:
* doc/coreutils.texi (Time conversion specifiers)
(Options for date, Examples of date): Document this.
* src/date.c (rfc_email_format): Rename from rfc_2822_format.
All uses changed.
(usage, long_options): Support --rfc-email.
---
 NEWS               |  5 +++++
 doc/coreutils.texi | 17 ++++++++++-------
 src/date.c         | 13 +++++++------
 3 files changed, 22 insertions(+), 13 deletions(-)

diff --git a/NEWS b/NEWS
index 1832d42..5036aa6 100644
--- a/NEWS
+++ b/NEWS
@@ -15,6 +15,11 @@ GNU coreutils NEWS                                    -*- outline -*-
 
 ** Improvements
 
+  The new 'date' option --rfc-email is now the long form for -R.
+  The new option spelling is intended to avoid the need to track the
+  Internet RFC number for email dates (currently RFC 5322).  The old
+  option spellings --rfc-2822 and --rfc-822 still work.
+
   stty now validates arguments before interacting with the device,
   ensuring there are no side effects to specifying an invalid option.
 
diff --git a/doc/coreutils.texi b/doc/coreutils.texi
index 64243a6..aa8f754 100644
--- a/doc/coreutils.texi
+++ b/doc/coreutils.texi
@@ -15161,7 +15161,7 @@ This may be @samp{60} if leap seconds are supported.
 @item %X
 locale's time representation (e.g., @samp{23:13:48})
 @item %z
-@w{RFC 2822/ISO 8601} style numeric time zone
+@w{RFC 5322/ISO 8601} style numeric time zone
 (e.g., @samp{-0600} or @samp{+0530}), or nothing if no
 time zone is determinable.  This value reflects the numeric time zone
 appropriate for the current time, using the time zone rules specified
@@ -15503,11 +15503,9 @@ Display the date and time of the last modification of @var{file},
 instead of the current date and time.
 
 @item -R
-@itemx --rfc-822
-@itemx --rfc-2822
+@itemx --rfc-email
 @opindex -R
-@opindex --rfc-822
-@opindex --rfc-2822
+@opindex --rfc-email
 Display the date and time using the format @samp{%a, %d %b %Y %H:%M:%S
 %z}, evaluated in the C locale so abbreviations are always in English.
 For example:
@@ -15516,11 +15514,16 @@ For example:
 Fri, 09 Sep 2005 13:51:39 -0700
 @end example
 
+@opindex --rfc-822
+@opindex --rfc-2822
 This format conforms to Internet RFCs
 @uref{https://tools.ietf.org/search/rfc5322, 5322},
 @uref{https://tools.ietf.org/search/rfc2822, 822} and
 @uref{https://tools.ietf.org/search/rfc822, 822}, the
 current and previous standards for Internet email.
+For compatibility with older versions of @command{date},
+@option{--rfc-2822} and @option{--rfc-822} are aliases for
+@option{--rfc-email}.
 
 @item --rfc-3339=@var{timespec}
 @opindex --rfc-3339=@var{timespec}
@@ -15650,8 +15653,8 @@ date --set='+2 minutes'
 @end example
 
 @item
-To print the date in RFC 2822 format,
-use @samp{date --rfc-2822}.  Here is some example output:
+To print the date in Internet RFC 5322 format,
+use @samp{date --rfc-email}.  Here is some example output:
 
 @example
 Fri, 09 Sep 2005 13:51:39 -0700
diff --git a/src/date.c b/src/date.c
index ddc702f..eed0901 100644
--- a/src/date.c
+++ b/src/date.c
@@ -72,8 +72,8 @@ static enum Time_spec const time_spec[] =
 };
 ARGMATCH_VERIFY (time_spec_string, time_spec);
 
-/* A format suitable for Internet RFC 2822.  */
-static char const rfc_2822_format[] = "%a, %d %b %Y %H:%M:%S %z";
+/* A format suitable for Internet RFCs 5322, 2822, and 822.  */
+static char const rfc_email_format[] = "%a, %d %b %Y %H:%M:%S %z";
 
 /* For long options that have no equivalent short option, use a
    non-character as a pseudo short option, starting with CHAR_MAX + 1.  */
@@ -92,6 +92,7 @@ static struct option const long_options[] =
   {"file", required_argument, NULL, 'f'},
   {"iso-8601", optional_argument, NULL, 'I'},
   {"reference", required_argument, NULL, 'r'},
+  {"rfc-email", no_argument, NULL, 'R'},
   {"rfc-822", no_argument, NULL, 'R'},
   {"rfc-2822", no_argument, NULL, 'R'},
   {"rfc-3339", required_argument, NULL, RFC_3339_OPTION},
@@ -155,7 +156,7 @@ Display the current time in the given FORMAT, or set the system date.\n\
                                Example: 2006-08-14T02:34:56-06:00\n\
 "), stdout);
       fputs (_("\
-  -R, --rfc-2822             output date and time in RFC 2822 format.\n\
+  -R, --rfc-email            output date and time in RFC 5322 format.\n\
                                Example: Mon, 14 Aug 2006 02:34:56 -0600\n\
 "), stdout);
       fputs (_("\
@@ -414,7 +415,7 @@ main (int argc, char **argv)
           reference = optarg;
           break;
         case 'R':
-          new_format = rfc_2822_format;
+          new_format = rfc_email_format;
           break;
         case 's':
           set_datestr = optarg;
@@ -580,10 +581,10 @@ show_date (const char *format, struct timespec when, timezone_t tz)
 
   if (localtime_rz (tz, &when.tv_sec, &tm))
     {
-      if (format == rfc_2822_format)
+      if (format == rfc_email_format)
         setlocale (LC_TIME, "C");
       fprintftime (stdout, format, &tm, tz, when.tv_nsec);
-      if (format == rfc_2822_format)
+      if (format == rfc_email_format)
         setlocale (LC_TIME, "");
       fputc ('\n', stdout);
       return true;
-- 
2.7.4

From 33e5e20236aac1ee788127d054ef4d9ccfbdbd1b Mon Sep 17 00:00:00 2001
From: Paul Eggert <egg...@cs.ucla.edu>
Date: Sat, 14 Jan 2017 23:57:54 -0800
Subject: [PATCH 4/4] date: output "-00" for indeterminate time zone

* NEWS: Document this behavior, which comes with recent Gnulib.
* doc/coreutils.texi (Formatting file timestamps, du invocation)
(Time conversion specifiers, Setting the time, Options for date):
Mention when -00 is output for numeric time zones.
Be more careful about Internet RFC numbers, ISO 8601, etc.
---
 NEWS               |  4 ++++
 doc/coreutils.texi | 34 +++++++++++++++++-----------------
 2 files changed, 21 insertions(+), 17 deletions(-)

diff --git a/NEWS b/NEWS
index 5036aa6..ef91b84 100644
--- a/NEWS
+++ b/NEWS
@@ -20,6 +20,10 @@ GNU coreutils NEWS                                    -*- outline -*-
   Internet RFC number for email dates (currently RFC 5322).  The old
   option spellings --rfc-2822 and --rfc-822 still work.
 
+  date now outputs "-00" for a numeric time zone if the time is UTC
+  and the time zone abbreviation begins with "-", indicating that the
+  time zone is indeterminate.
+
   stty now validates arguments before interacting with the device,
   ensuring there are no side effects to specifying an invalid option.
 
diff --git a/doc/coreutils.texi b/doc/coreutils.texi
index aa8f754..629136b 100644
--- a/doc/coreutils.texi
+++ b/doc/coreutils.texi
@@ -7664,7 +7664,7 @@ files; if you want output columns to line up, you may need to insert
 spaces in one of the two formats.
 
 @item full-iso
-List timestamps in full using ISO 8601 date, time, and time zone
+List timestamps in full using ISO 8601-like date, time, and time zone
 components with nanosecond precision, e.g., @samp{2002-03-30
 23:45:56.477817180 -0700}.  This style is equivalent to
 @samp{+%Y-%m-%d %H:%M:%S.%N %z}.
@@ -11645,7 +11645,7 @@ with @command{date}, @var{format}'s interpretation is affected by the
 @env{LC_TIME} locale category.
 
 @item full-iso
-List timestamps in full using ISO 8601 date, time, and time zone
+List timestamps in full using ISO 8601-like date, time, and time zone
 components with nanosecond precision, e.g., @samp{2002-03-30
 23:45:56.477817180 -0700}.  This style is equivalent to
 @samp{+%Y-%m-%d %H:%M:%S.%N %z}.
@@ -15161,26 +15161,26 @@ This may be @samp{60} if leap seconds are supported.
 @item %X
 locale's time representation (e.g., @samp{23:13:48})
 @item %z
-@w{RFC 5322/ISO 8601} style numeric time zone
-(e.g., @samp{-0600} or @samp{+0530}), or nothing if no
+Four-digit numeric time zone, e.g., @samp{-0600} or @samp{+0530}, or
+@samp{-0000} if no
 time zone is determinable.  This value reflects the numeric time zone
 appropriate for the current time, using the time zone rules specified
-by the @env{TZ} environment variable.
+by the @env{TZ} environment variable.  A time zone is not determinable if
+its numeric offset is zero and its abbreviation begins with @samp{-}.
 The time (and optionally, the time zone rules) can be overridden
 by the @option{--date} option.
 @item %:z
-@w{RFC 3339/ISO 8601} style numeric time zone with
-@samp{:} (e.g., @samp{-06:00} or @samp{+05:30}), or nothing if no time
-zone is determinable.
+Numeric time zone with @samp{:}, e.g., @samp{-06:00} or
+@samp{+05:30}), or @samp{-00:00} if no time zone is determinable.
 This is a GNU extension.
 @item %::z
 Numeric time zone to the nearest second with @samp{:} (e.g.,
-@samp{-06:00:00} or @samp{+05:30:00}), or nothing if no time zone is
+@samp{-06:00:00} or @samp{+05:30:00}), or @samp{-00:00:00} if no time zone is
 determinable.
 This is a GNU extension.
 @item %:::z
 Numeric time zone with @samp{:} using the minimum necessary precision
-(e.g., @samp{-06}, @samp{+05:30}, or @samp{-04:56:02}), or nothing if
+(e.g., @samp{-06}, @samp{+05:30}, or @samp{-04:56:02}), or @samp{-00} if
 no time zone is determinable.
 This is a GNU extension.
 @item %Z
@@ -15405,7 +15405,7 @@ second (optional)
 Note, the @option{--date} and @option{--set} options may not be used with an
 argument in the above format.  The @option{--universal} option may be used
 with such an argument to indicate that the specified date and time are
-relative to Coordinated Universal Time rather than to the local time zone.
+relative to Universal Time rather than to the local time zone.
 
 
 @node Options for date
@@ -15465,7 +15465,7 @@ be considerable.
 @itemx --iso-8601[=@var{timespec}]
 @opindex -I[@var{timespec}]
 @opindex --iso-8601[=@var{timespec}]
-Display the date using the ISO 8601 format, @samp{%Y-%m-%d}.
+Display the date using an ISO 8601 format, @samp{%Y-%m-%d}.
 
 The argument @var{timespec} specifies the number of additional
 terms of the time to include.  It can be one of the following:
@@ -15529,9 +15529,8 @@ For compatibility with older versions of @command{date},
 @opindex --rfc-3339=@var{timespec}
 Display the date using a format specified by
 @uref{https://tools.ietf.org/search/rfc3339, Internet
-RFC 3339}.  This is a subset of the ISO 8601
-format, except that it also permits applications to use a space rather
-than a @samp{T} to separate dates from times.
+RFC 3339}.  This is like @option{--iso-8601}, except that a space rather
+than a @samp{T} separates dates from times.
 @dateParseNote
 
 The argument @var{timespec} specifies how much of the time to include.
@@ -15575,9 +15574,10 @@ See also @ref{Setting the time}.
 @cindex GMT
 @cindex leap seconds
 @vindex TZ
-Use Coordinated Universal Time (UTC) by operating as if the
+@cindex Universal Time
+Use Universal Time by operating as if the
 @env{TZ} environment variable were set to the string @samp{UTC0}.
-Coordinated
+UTC stands for Coordinated Universal Time, established in 1960.
 Universal Time is often called ``Greenwich Mean Time'' (GMT) for
 historical reasons.
 Typically, systems ignore leap seconds and thus implement an
-- 
2.7.4

Reply via email to