From: Zack Weinberg Date: Mon, 2 Nov 2020 22:16:00 +0000 (-0500) Subject: autoreconf.in: improve compatibility with old perl X-Git-Tag: v2.69d~3 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=73f1be5e42e37644e9e742e9995fac250a9b3f25;p=thirdparty%2Fautoconf.git autoreconf.in: improve compatibility with old perl 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. --- 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); } }