On 2023-05-06 20:01 +0200, Sven Joachim wrote: > On 2023-05-06 19:15 +0200, Sven Joachim wrote: > >> Source: ncurses >> Version: 6.4-3 >> Severity: important >> Tags: ftbfs >> >> On at least three architectures (hurd-i386, powerpc and x32) ncurses >> FTBFS with the following error: >> >> ,---- >> | dh_autoreconf autoreconf-dickey -- -f -i >> | aclocal: warning: autoconf input should be named 'configure.ac', not >> 'configure.in' >> | configure.in:910: warning: macro 'AM_LANGINFO_CODESET' not found in library >> | configure.in:941: error: possibly undefined macro: AM_LANGINFO_CODESET >> | mv: cannot move '/tmp/aruX6IKF/ahKAGeTw/config.hin' to >> 'include/ncurses_cfg.hin': No such file or directory >> | touch: cannot touch 'include/stamp-h.in': No such file or directory >> | dh_autoreconf: error: autoreconf-dickey -f -i returned exit code 1 >> `---- >> >> Compare with a successful build on amd64: >> >> ,---- >> | dh_autoreconf autoreconf-dickey -- -f -i >> | aclocal: warning: autoconf input should be named 'configure.ac', not >> 'configure.in' >> | configure.in:910: warning: macro 'AM_LANGINFO_CODESET' not found in library >> | configure.in:941: error: possibly undefined macro: AM_LANGINFO_CODESET >> | mv: cannot move '/tmp/ardz33hA/ahzccjnH/config.hin' to >> 'include/ncurses_cfg.hin': No such file or directory >> | touch: cannot touch 'include/stamp-h.in': No such file or directory >> | touch config.guess-stamp >> `---- >> >> This raises at least two questions: >> >> - Why does dh_autoreconf error out on some architectures, but not on >> others? >> >> - Why is AM_LANGINFO_CODESET not found, despite being defined in >> aclocal.m4? >> >> Needs to be investigated, at the moment I have no clue. :-( > > With the -v option, autoreconf-dickey gives some useful hints: > > ,---- > | autoreconf-dickey -f -i -v > | autoreconf-dickey: using autoconf 2.52.20230114: /usr/bin//autoconf-dickey > | autoreconf-dickey: using autoheader 2.52.20230114: > /usr/bin//autoheader-dickey > | autoreconf-dickey: using automake 1.16.5: automake > | autoreconf-dickey: using aclocal 1.16.5: aclocal > | autoreconf-dickey: running aclocal --verbose --output=./aclocal.m4 in > .pc/fix-configure-root-args-option.diff > | aclocal: warning: autoconf input should be named 'configure.ac', not > 'configure.in' > | aclocal: found macro AC_PATH_XTRA in configure.in: 45 > `---- > > So autoreconf-dickey picks up the backup of configure.in below the .pc/ > directory and runs aclocal. As there is no aclocal.m4 in that > directory, the above warning and error about AM_LANGINFO_CODESET ensue, > answering the second question. That still leaves the first one open, > though.
Including the one below the .pc directory, there are four configure.in files in the source tree, and apparently autoreconf-dickey processes them in somewhat random order, depending on the filesystem. I was not able to reproduce the error in a freshly unpacked source tree on my system, but the attached little script triggered it for me on a tmpfs. The .pc directory has the lowest inode number of all files after moving the others aside and copying them back, and autoreconf-dickey processed it last. Sven
#!/bin/sh set -e TEMP_DIR=$(mktemp -d) # apt source -d ncurses rm -rf ncurses-6.4 dpkg-source -x ncurses_6.4-3.dsc cd ncurses-6.4 mv * ${TEMP_DIR} cp -a ${TEMP_DIR}/* . rm -rf ${TEMP_DIR} autoreconf-dickey -f -i