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

Reply via email to