From 73f1be5e42e37644e9e742e9995fac250a9b3f25 Mon Sep 17 00:00:00 2001 From: Zack Weinberg Date: Mon, 2 Nov 2020 17:16:00 -0500 Subject: autoreconf.in: improve compatibility with old perl MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit In very old perls (I noticed this with 5.8.4), File::Temp objects are not automatically stringified in all contexts where we expect them to be, causing autoreconf to crash. * bin/autoreconf.in (install_aux_file): Explicitly extract the temporary file’s name from $temp, and use that in all the places we were using $temp. --- bin/autoreconf.in | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) (limited to 'bin') diff --git a/bin/autoreconf.in b/bin/autoreconf.in index 2d427155..ccbd6c47 100644 --- a/bin/autoreconf.in +++ b/bin/autoreconf.in @@ -363,10 +363,13 @@ sub install_aux_file or fatal "rm -f $dest: $!\n"; } my $temp = new File::Temp (UNLINK => 0, DIR => $destdir); - copy ($src, $temp) - or fatal "copying $src to $temp: $!\n"; - make_executable ($temp) if -x $src; - update_file ($temp, $dest, $force); + # Older Perls don't convert $temp to its filename + # in all the places we need it to. + my $tempname = $temp->filename; + copy ($src, $tempname) + or fatal "copying $src to $tempname: $!\n"; + make_executable ($tempname) if -x $src; + update_file ($tempname, $dest, $force); } } -- cgit v1.2.1