On Fri, Jun 20, 2025 at 8:46 PM Frederic Berat <fbe...@redhat.com> wrote:
> > > On Fri, Jun 20, 2025 at 6:07 PM Karl Berry <k...@freefriends.org> wrote: > >> Hi Frederic and all - I pushed the following tweaks to a few >> tests. With these changes, I was able to run make distcheck with >> SOURCE_DATE_EPOCH=86402 (among other values). Hope it suffices >> .. --thanks, karl. (And thanks Carlos for the info.) >> >> > Thanks, I'll make a mass rebuild during the weekend to see how it goes > with that. > So, I re-built Fedora packages and found that the patch I mentioned above is actually creating a new dependency on packages that use automake: /builddir/build/BUILD/libextractor-1.13-build/libextractor-1.13/build-aux/missing: line 85: makeinfo: command not found WARNING: 'makeinfo' is missing on your system. You should only need it if you modified a '.texi' file, or any other file indirectly affecting the aspect of the manual. You might want to install the Texinfo package: <https://www.gnu.org/software/texinfo/> The spurious makeinfo call might also be the consequence of using a buggy 'make' (AIX, DU, IRIX), in which case you might want to install GNU make: <https://www.gnu.org/software/make/> make[1]: *** [Makefile:456: libextractor.info] Error 127 If I revert `b78b70612b83632d9f1256e4fa4c69c33f81a5f8` this requirement is not there and these packages build fine. The list of affected packages: enscript guile30 libextractor libtasn1 make msmtp > >> >> ----------------------------------------------------------------------------- >> test: adapt tests for SOURCE_DATE_EPOCH. >> >> From https://lists.gnu.org/archive/html/automake/2025-06/msg00016.html. >> >> * t/mdate5.sh: allow years 19xx for old SOURCE_DATE_EPOCH. >> * t/txinfo-vtexi3.sh: likewise. >> * t/txinfo-vtexi4.sh: if SDE is set, use mdate-sh to parse it into >> the expected UPDATED and UPDATED-MONTH values. >> Report from Frederic Berat. >> * NEWS: mention this. >> diff --git a/NEWS b/NEWS >> index 02581e1d9..ac1930971 100644 >> --- a/NEWS >> +++ b/NEWS >> @@ -1,6 +1,11 @@ >> For planned incompatibilities in a possible future Automake 2.0 release, >> please see NEWS-future and start following the advice there now. >> >> +* Bugs fixed >> + >> + - Keep Automake tests working when SOURCE_DATE_EPOCH is set. >> + (https://lists.gnu.org/archive/html/automake/2025-06/msg00016.html) >> + >> >> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ >> New in 1.18 (2025-05-25): >> >> diff --git a/t/mdate5.sh b/t/mdate5.sh >> index 11be50f13..14c524e9b 100644 >> --- a/t/mdate5.sh >> +++ b/t/mdate5.sh >> @@ -29,16 +29,22 @@ echo "$*" # For debugging. >> test $# = 3 >> case $1$3 in *[!0-9]*) exit 1;; esac >> test $1 -lt 32 >> -# Hopefully automake will be obsolete in 80 years ;-) >> -case $3 in 20[0-9][0-9]) :;; *) exit 1;; esac >> +case $3 in >> + 19[0-9][0-9]) :;; # for old SOURCE_DATE_EPOCH. >> + 20[0-9][0-9]) :;; # Hopefully automake will be obsolete in 80 years ;-) >> + *) exit 1;; >> +esac >> case $2 in >> January|February|March|April|May|June|July|August) ;; >> September|October|November|December) ;; >> *) exit 1 >> esac >> >> -# Stricter checks on the year required a POSIX date(1) command. >> -if year=$(date +%Y) && test $year -gt 2010; then >> +# Stricter checks on the year required a POSIX date(1) command, >> +# and that SOURCE_DATE_EPOCH is not set. >> +if year=$(date +%Y) \ >> + && test -z "$SOURCE_DATE_EPOCH" \ >> + && test $year -gt 2010; then >> test $year = $3 || exit 1 >> fi >> >> diff --git a/t/txinfo-vtexi3.sh b/t/txinfo-vtexi3.sh >> index d5ca81679..1c91fc547 100644 >> --- a/t/txinfo-vtexi3.sh >> +++ b/t/txinfo-vtexi3.sh >> @@ -73,7 +73,9 @@ $AUTOMAKE >> >> day='([1-9]|1[0-9]|2[0-9]|3[01])' >> >> >> month='(January|February|March|April|May|June|July|August|September|October|November|December)' >> -year='20[0-9][0-9]' # Hopefully automake will be obsolete in 80 years ;-) >> +year='(20|19)[0-9][0-9]' # Hopefully automake will be obsolete in 80 >> years ;-) >> + # Allow 19xx for SOURCE_DATE_EPOCH >> possibilities. >> +# >> date="$day $month $year" >> >> do_check () >> diff --git a/t/txinfo-vtexi4.sh b/t/txinfo-vtexi4.sh >> index 1c76abda7..a69cc46f2 100644 >> --- a/t/txinfo-vtexi4.sh >> +++ b/t/txinfo-vtexi4.sh >> @@ -28,11 +28,22 @@ required='makeinfo tex texi2dvi grep-nonprint' >> # differ depending on local time. >> TZ=UTC0; export TZ >> >> -test $(LC_ALL=C date '+%u') -gt 0 && test $(LC_ALL=C date '+%u') -lt 8 \ >> - && day=$(LC_ALL=C date '+%d') && test -n "$day" \ >> - && month=$(LC_ALL=C date '+%B') && test -n "$month" \ >> - && year=$(LC_ALL=C date '+%Y') && test -n "$year" \ >> - || skip_ "'date' is not POSIX-compliant enough" >> +if test -n "$SOURCE_DATE_EPOCH"; then >> + # use mdate-sh to parse SOURCE_DATE_EPOCH. >> + get_shell_script mdate-sh >> + result=`mdate-sh /irrelevant` >> > There is a bug here, it should probably be: result=`./mdate-sh /irrelevant` In my standardized environment `mdate-sh` wasn't found. I modified the line as described above to get the test to pass. + echo "result of mdate-sh: $result" >> + day=`echo $result | awk '{print $1}'` >> + month=`echo $result | awk '{print $2}'` >> + year=`echo $result | awk '{print $3}'` >> +else >> + test $(LC_ALL=C date '+%u') -gt 0 && test $(LC_ALL=C date '+%u') -lt 8 >> \ >> + && day=$(LC_ALL=C date '+%d') && test -n "$day" \ >> + && month=$(LC_ALL=C date '+%B') && test -n "$month" \ >> + && year=$(LC_ALL=C date '+%Y') && test -n "$year" \ >> + || skip_ "'date' is not POSIX-compliant enough" >> +fi >> +# >> day=$(echo "$day" | sed 's/^0//') >> >> cat > configure.ac << END >> >> compile finished at Fri Jun 20 09:04:52 2025 >> >>