Of course there was a dependency. But I think I managed to find a suitable change that again preserves the temporaries. Please see the attached patch vs. cb6fbab55de1e9660e110857ae248a70a8b48c5b and tell me if that needs further improvements or is acceptable as is.
Kind regards, Thomas > On Sep 4, 2023, at 14:57 , Thomas Jahns <ja...@dkrz.de> wrote: > > Following up on this, I think this is because autom4te calls mktmpdir before > parsing command line arguments: > > ## -------------- ## > ## Main program. ## > ## -------------- ## > > mktmpdir ('am4t'); > load_configuration ($ENV{'AUTOM4TE_CFG'} || "$pkgdatadir/autom4te.cfg"); > load_configuration ("$ENV{'HOME'}/.autom4te.cfg") > if exists $ENV{'HOME'} && -f "$ENV{'HOME'}/.autom4te.cfg"; > load_configuration (".autom4te.cfg") > if -f ".autom4te.cfg"; > parse_args; > > In this order it creates the am4t... directory with the UNLINK option always > being 1, i.e. !$debug while previously Autom4te::General had a custom END > block that deleted the temporary files conditionally and hence used the value > of $debug set by Autom4te::General::getopt. > > I'm not sure if load_configuration somehow needs the temporary directory or > if parse_args could be moved to precede all of the main program. I'll try > that next but wanted to keep you informed of my ongoing investigation. > > Kind regards, Thomas > > > >> On Sep 4, 2023, at 13:15 , Thomas Jahns <ja...@dkrz.de >> <mailto:ja...@dkrz.de>> wrote: >> >> Dear autoconf maintainers, >> >> when trying to port another piece of software to use autoconf 2.71 I noticed >> a problem I wanted to debug with the autoreconf --debug option. But it seems >> autoconf now deletes the temporary files in all paths. >> >> While the 2.69 version I'm currently using preserves files in /tmp, when >> swapping the PATH to use autoconf 2.71, autoconf always unlinks the files >> there (and removes the temporary directory) as verified with strace -f -e >> rmdir,unlink on Linux x86_64. >> >> I tried >> >> autoconf --debug --verbose >> >> in a minimal autoconf directory like this: >> >> $ autoconf --debug --verbose 2>&1 | grep /tmp >> autom4te: formatting traces for `/tmp/am4tYtdOcp/dependencies': include, >> m4_include >> autom4te: formatting traces for `/tmp/am4tYtdOcp/warnings': _m4_warn >> autom4te: reading /tmp/am4tYtdOcp/warnings >> $ ls /tmp/am4tYtdOcp >> dependencies traces.m4 warnings >> $ module load autoconf-2.71-gcc-6.3.0-rj5ute2 >> $ autoconf --debug --verbose 2>&1 | grep /tmp >> autom4te: formatting traces for '/tmp/am4toeE5oa/warnings': _m4_warn >> autom4te: reading /tmp/am4toeE5oa/warnings >> autom4te: formatting traces for '/tmp/am4toeE5oa/patterns': >> m4_pattern_allow, m4_pattern_forbid >> $ ls /tmp/am4toeE5oa/ >> ls: cannot access '/tmp/am4toeE5oa/': No such file or directory >> $ cat configure.ac >> AC_INIT([hello], [1.0]) >> AC_CONFIG_AUX_DIR([build-aux]) >> AC_OUTPUT >> $ strace -f -e rmdir,unlink autoconf --debug --verbose 2>&1 | grep -E >> 'unlink|rmdir|/tmp' >> autom4te: formatting traces for '/tmp/am4tciBmIE/dependencies': include, >> m4_include >> autom4te: formatting traces for '/tmp/am4tciBmIE/warnings': _m4_warn >> autom4te: reading /tmp/am4tciBmIE/warnings >> unlink("traces.m4") = 0 >> unlink("dependencies") = 0 >> unlink("warnings") = 0 >> rmdir("/tmp/am4tciBmIE") = 0 >> $ ls /tmp/am4tciBmIE >> ls: cannot access '/tmp/am4tciBmIE': No such file or directory >> >> Kind regards, >> Thomas
smime.p7s
Description: S/MIME cryptographic signature