]> git.ipfire.org Git - thirdparty/automake.git/commitdiff
tests: clear autotools env vars
authorMike Frysinger <vapier@gentoo.org>
Mon, 24 Jan 2022 06:02:41 +0000 (01:02 -0500)
committerMike Frysinger <vapier@gentoo.org>
Tue, 25 Jan 2022 03:01:48 +0000 (22:01 -0500)
Fixes automake bug https://bugs.gnu.org/16714.

The testsuite will try and retain these env vars when recursively
running itself, but doesn't distinguish between vars coming from
the env where the tests were launched.  This breaks if the user
happens to `export ACLOCAL=alocal` before `make check`.

This gets a little more confusing in that the Makefile appears to
export these already:
ACLOCAL = ".../automake/pre-inst-env" aclocal-1.16

In reality, while those are set in the make execution environment,
they aren't exported into the process environment, so children
(i.e. shell processes in make rules) don't have them set.  That's
why tests work for most people today.

However, if the user has first exported "ACLOCAL" in the parent
make environment (regardless of value), then make's value will
reset the process environment, and then that will leak into the
children.  That's why we see errors that look like the makefile
env vars are leaking for these people.

At any rate, the fix is to update the test harness to clear these
vars that the test suite relies upon, especially the ones that are
also set in the Makefiles.  That includes AUTOUPDATE even though
it currently isn't used inside any of the tests.

* t/local.mk: Add ACLOCAL, AUTOCONF, AUTOHEADER, AUTOMAKE, and
AUTOUPDATE to the env unset list.
* t/ax/runtest.in: Likewise.

t/ax/runtest.in
t/local.mk

index 499b852999e8f2803e6eaab0c1d1c19c915c01d1..91a5afd5228a24e3729db0b60465cee3c2532e0d 100644 (file)
@@ -45,6 +45,11 @@ export srcdir
 # test scripts, but not from the environment.
 # Keep this in sync with the 'Makefile.am:AM_TESTS_ENVIRONMENT'.
 for v in \
+  ACLOCAL \
+  AUTOCONF \
+  AUTOHEADER \
+  AUTOMAKE \
+  AUTOUPDATE \
   required \
   am_test_protocol \
   am_serial_tests \
index 31d43e86856eb2faf1c3708da2dd44913f20f309..8a7cab3b232a8399d923b0cec77928ecd743c9d1 100644 (file)
@@ -42,6 +42,11 @@ TESTS =
 # Keep this in sync with the similar list in ax/runtest.in.
 AM_TESTS_ENVIRONMENT = \
   for v in \
+    ACLOCAL \
+    AUTOCONF \
+    AUTOHEADER \
+    AUTOMAKE \
+    AUTOUPDATE \
     required \
     am_test_protocol \
     am_serial_tests \