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.
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);
}
}