For a bit of time Savannah coreutils master was rejecting platforms with
32-bit signed time_t, with the idea that we really need to get
installations to be year 2038 safe. Coreutils used Gnulib's
AC_SYS_LARGEFILE to do that. However, this proved a bridge too far for
general use, and Autoconf master now has AC_SYS_YEAR2038_REQUIRED to do
this sort of thing instead. I've migrated this into Gnulib and have just
installed the attached patch to bring Savannah coreutils master back to
the state where 'configure' insists on support for timestamps past 2038.
Should we also put largefile-required into bootstrap.conf, to reject
32-bit off_t and thus require support for files 2 GiB+ too? Currently
it's not required, though I think nobody ever builds coreutils with
--disable-largefiles to turn the option off.From ffd62ab92c259d513a419b4078a45f1c658dc774 Mon Sep 17 00:00:00 2001
From: Paul Eggert <egg...@cs.ucla.edu>
Date: Sun, 9 Apr 2023 19:18:57 -0700
Subject: [PATCH] maint: require support for post-2038 timestamps
* bootstrap.conf (gnulib_modules): Replace year2038 with
year2038-required.
---
NEWS | 5 +++++
bootstrap.conf | 2 +-
2 files changed, 6 insertions(+), 1 deletion(-)
diff --git a/NEWS b/NEWS
index 9d7836d7b..0de16df30 100644
--- a/NEWS
+++ b/NEWS
@@ -31,6 +31,11 @@ GNU coreutils NEWS -*- outline -*-
Previously it deduced the size of inputs while leaving the offset unchanged.
[bug introduced in coreutils-8.27]
+ Coreutils programs no longer fail for timestamps past the year 2038
+ on obsolete configurations with 32-bit signed time_t, because the
+ build procedure now rejects these configurations.
+ [This bug was present in "the beginning".]
+
** Changes in behavior
'cp -n' and 'mv -n' now issue an error diagnostic if skipping a file,
diff --git a/bootstrap.conf b/bootstrap.conf
index c122354a1..eca4edb73 100644
--- a/bootstrap.conf
+++ b/bootstrap.conf
@@ -318,7 +318,7 @@ gnulib_modules="
xstrtol-error
xstrtold
xstrtoumax
- year2038
+ year2038-required
yesno
"
--
2.37.2