From 5db74025e15a8a095f2c3ae48e80ab0feceb8944 Mon Sep 17 00:00:00 2001 From: Nick Bowler Date: Sat, 1 Jul 2023 16:38:06 -0400 Subject: [PATCH] Add helper to work around Solaris /bin/sh bug in Autotest. This hackjob edits the definition of AT_INIT to fix the problem described in this patch[1], even for versions of Autoconf which do not include this fix (which, as of this writing, is all of them). Specifically, older Solaris /bin/sh does not correctly handle redirections on : within a shell function, but Autotest test suites expect this to work when preparing the environment for AT_CHECK. [1] https://lists.gnu.org/archive/html/autoconf-patches/2021-03/msg00000.html --- snippet/at-compat.at | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 snippet/at-compat.at diff --git a/snippet/at-compat.at b/snippet/at-compat.at new file mode 100644 index 0000000..5e111b4 --- /dev/null +++ b/snippet/at-compat.at @@ -0,0 +1,20 @@ +# Copyright © 2023 Nick Bowler +# +# Compatibility helper for Autotest test suites. This should be included +# before expanding AT_INIT +# +# License WTFPL2: Do What The Fuck You Want To Public License, version 2. +# This is free software: you are free to do what the fuck you want to. +# There is NO WARRANTY, to the extent permitted by law. + +# Redefine AT_INIT to work around nonportable constructs in current +# (as of 2023) Autoconf releases: +# +# - In a shell function, redirections on : are not correctly handled +# by Solaris /bin/sh. See the following Autoconf patch for details: +# +# https://lists.gnu.org/archive/html/autoconf-patches/2021-03/msg00000.html + +m4_define([AT_INIT], + m4_bpatsubst(m4_dquote(m4_defn([AT_INIT])), + [^\( *\)\(: >"\$at_stdout".*$\)], [\1eval '\2'])) -- 2.43.2