diff --git a/autoconf-el.spec b/autoconf-el.spec index 693ff49..02d4c93 100644 --- a/autoconf-el.spec +++ b/autoconf-el.spec @@ -1,7 +1,7 @@ # # spec file for package autoconf-el # -# Copyright (c) 2020 SUSE LLC +# Copyright (c) 2021 SUSE LLC # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed diff --git a/autoconf-testsuite.spec b/autoconf-testsuite.spec index e66b4bd..f6b8f91 100644 --- a/autoconf-testsuite.spec +++ b/autoconf-testsuite.spec @@ -1,7 +1,7 @@ # # spec file for package autoconf-testsuite # -# Copyright (c) 2020 SUSE LLC +# Copyright (c) 2021 SUSE LLC # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -26,6 +26,8 @@ Source0: http://ftp.gnu.org/gnu/autoconf/autoconf-%{version}.tar.xz Source1: http://ftp.gnu.org/gnu/autoconf/autoconf-%{version}.tar.xz.sig Source2: %{name}.keyring Patch0: autoreconf-ltdl.diff +# PATCH-FIX-UPSTREAM +Patch1: https://git.savannah.gnu.org/cgit/autoconf.git/patch/?id=07130c3e48d12ec155ac5d7630dc7477b6989904#/autom4te-always-update-output-file.patch BuildRequires: help2man BuildRequires: m4 >= 1.4.6 Requires: info @@ -52,6 +54,7 @@ only required for the generation of the scripts, not their use. %prep %setup -q -n autoconf-%{version} %patch0 +%patch1 -p1 %build %configure diff --git a/autoconf.changes b/autoconf.changes index 51c9fb9..51f9861 100644 --- a/autoconf.changes +++ b/autoconf.changes @@ -1,3 +1,9 @@ +------------------------------------------------------------------- +Sat Jan 16 18:47:23 UTC 2021 - Dirk Müller + +- add autom4te-always-update-output-file.patch to fix testsuite + failures + ------------------------------------------------------------------- Sun Dec 13 18:52:47 UTC 2020 - Andreas Stieger diff --git a/autoconf.spec b/autoconf.spec index d62c06c..31064b2 100644 --- a/autoconf.spec +++ b/autoconf.spec @@ -1,7 +1,7 @@ # # spec file for package autoconf # -# Copyright (c) 2020 SUSE LLC +# Copyright (c) 2021 SUSE LLC # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -26,6 +26,8 @@ Source0: http://ftp.gnu.org/gnu/autoconf/autoconf-%{version}.tar.xz Source1: http://ftp.gnu.org/gnu/autoconf/autoconf-%{version}.tar.xz.sig Source2: %{name}.keyring Patch0: autoreconf-ltdl.diff +# PATCH-FIX-UPSTREAM +Patch1: https://git.savannah.gnu.org/cgit/autoconf.git/patch/?id=07130c3e48d12ec155ac5d7630dc7477b6989904#/autom4te-always-update-output-file.patch BuildRequires: help2man BuildRequires: m4 >= 1.4.6 Requires: info @@ -52,6 +54,7 @@ only required for the generation of the scripts, not their use. %prep %setup -q -n autoconf-%{version} %patch0 +%patch1 -p1 %build %configure diff --git a/autom4te-always-update-output-file.patch b/autom4te-always-update-output-file.patch new file mode 100644 index 0000000..d31d2e9 --- /dev/null +++ b/autom4te-always-update-output-file.patch @@ -0,0 +1,99 @@ +From 07130c3e48d12ec155ac5d7630dc7477b6989904 Mon Sep 17 00:00:00 2001 +From: Zack Weinberg +Date: Tue, 29 Dec 2020 15:33:33 -0500 +Subject: =?UTF-8?q?autom4te:=20always=20update=20the=20output=20file,=20ev?= + =?UTF-8?q?en=20if=20it=20hasn=E2=80=99t=20changed?= +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Automake generates a Makefile rule for regenerating the configure +script, that relies on an invocation of ‘autoconf’ always bumping the +timestamp on the configure script, even if it hasn’t changed. +The patch to make autom4te update the output file atomically +(1725c947144d9bebfe7817c2c5f0d53d884b1297) broke this. + +Fixes several failures in automake’s test suite. + + * bin/autom4te.in (handle_output): Always call update_file with force=1. + * tests/tools.at (autoconf: timestamp changes): New test. +--- + bin/autom4te.in | 4 +++- + tests/tools.at | 46 ++++++++++++++++++++++++++++++++++++++++++++++ + 2 files changed, 49 insertions(+), 1 deletion(-) + +diff --git a/bin/autom4te.in b/bin/autom4te.in +index 4c2b905c..64653a44 100644 +--- a/bin/autom4te.in ++++ b/bin/autom4te.in +@@ -609,7 +609,9 @@ sub handle_output ($$) + } + + $out->close(); +- update_file ($scratchfile, $output, $force) ++ # Always update the file, even if it didn't change; ++ # Automake relies on this. ++ update_file ($scratchfile, $output, 1) + if defined $scratchfile; + + # If no forbidden words, we're done. +diff --git a/tests/tools.at b/tests/tools.at +index 49710202..89b8b63b 100644 +--- a/tests/tools.at ++++ b/tests/tools.at +@@ -662,6 +662,52 @@ arbitrary $text + AT_CLEANUP + + ++# autoconf: timestamp changes ++# --------------------------- ++# Automake needs autoconf to update the timestamp on the configure script ++# whenever configure.ac or aclocal.m4 changes, even if the contents of the ++# configure script have not changed. ++AT_SETUP([autoconf: timestamp changes]) ++ ++AT_DATA([aclocal.m4], ++[[AC_DEFUN([local_KILROY], [# kilroy was here ++]) ++]]) ++ ++AT_DATA_AUTOCONF([configure.ac], ++[[AC_INIT ++AC_PROG_CC ++local_KILROY ++AC_OUTPUT ++]]) ++ ++AT_CHECK_AUTOCONF ++ ++cp configure configure.1 ++sleep 1 ++printf '%s\n' 'AC_LIBSOURCES([foo.c])dn@&t@l' >> configure.ac ++ ++# This step must not use --force. ++# We don't need to check shell syntax, because if all goes well, ++# the script will be unchanged from what it was in the first autoconf ++# pass, and that was already checked. ++AT_CHECK_M4([autoconf]) ++AT_CHECK([cmp configure configure.1]) ++AT_CHECK([test configure -nt configure.1]) ++ ++cp configure configure.2 ++sleep 1 ++printf '%s\n' \ ++ 'AC_DEFUN([unused_MACRO], [# bob was there too' \ ++ '])' >> aclocal.m4 ++ ++# Same as above. ++AT_CHECK_M4([autoconf]) ++AT_CHECK([cmp configure configure.2]) ++AT_CHECK([test configure -nt configure.2]) ++ ++AT_CLEANUP ++ + + ## --------- ## + ## ifnames. ## +-- +cgit v1.2.1 +