[pkg-bacula-devel] Bug#997139: bacula: FTBFS: configure: error: cannot find required auxiliary files: config.rpath mkinstalldirs config.guess config.sub ltmain.sh install-sh

Sven Hartge sven at svenhartge.de
Mon Oct 25 15:00:00 BST 2021


Um 21:04 Uhr am 23.10.21 schrieb Lucas Nussbaum:

> Relevant part (hopefully):
> > touch src/qt-console/tray-monitor/.libs/bacula-tray-monitor
> > chmod 755 src/qt-console/tray-monitor/.libs/bacula-tray-monitor
> > dh_auto_configure -- --enable-smartalloc --with-tcp-wrappers --with-openssl --with-libiconv-prefix=/usr/include --with-readline=/usr/include/readline --disable-conio --with-libintl-prefix=/usr/include --docdir=\${prefix}/share/doc/bacula-common --htmldir=\${prefix}/share/doc/bacula-common/html --libdir=\${prefix}/lib/bacula --enable-batch-insert --enable-ipv6 --with-dir-password=XXX_DIRPASSWORD_XXX --with-fd-password=XXX_FDPASSWORD_XXX --with-sd-password=XXX_SDPASSWORD_XXX --with-mon-dir-password=XXX_MONDIRPASSWORD_XXX --with-mon-fd-password=XXX_MONFDPASSWORD_XXX --with-mon-sd-password=XXX_MONSDPASSWORD_XXX --with-db-name=XXX_DBNAME_XXX --with-db-user=XXX_DBUSER_XXX --with-db-password=XXX_DBPASSWORD_XXX --with-hostname=localhost --config-cache --with-archivedir=/nonexistant/path/to/file/archive/dir --sysconfdir=/etc/bacula --with-scriptdir=/etc/bacula/scripts --sharedstatedir=/var/lib/bacula --localstatedir=/var/lib/bacula --with-logdir=/var/log/bacula --with-pid-dir=/run/bacula --with-smtp-host=localhost --with-working-dir=/var/lib/bacula --with-subsys-dir=/run/lock --with-dump-email=root --with-job-email=root --with-mysql --with-postgresql --with-sqlite3 --enable-bat --with-x --disable-s3 --with-systemd=/lib/systemd/system
> > 	./configure --build=x86_64-linux-gnu --prefix=/usr --includedir=\${prefix}/include --mandir=\${prefix}/share/man --infodir=\${prefix}/share/info --sysconfdir=/etc --localstatedir=/var --disable-option-checking --disable-silent-rules --libdir=\${prefix}/lib/x86_64-linux-gnu --runstatedir=/run --disable-maintainer-mode --disable-dependency-tracking --enable-smartalloc --with-tcp-wrappers --with-openssl --with-libiconv-prefix=/usr/include --with-readline=/usr/include/readline --disable-conio --with-libintl-prefix=/usr/include --docdir=\${prefix}/share/doc/bacula-common --htmldir=\${prefix}/share/doc/bacula-common/html --libdir=\${prefix}/lib/bacula --enable-batch-insert --enable-ipv6 --with-dir-password=XXX_DIRPASSWORD_XXX --with-fd-password=XXX_FDPASSWORD_XXX --with-sd-password=XXX_SDPASSWORD_XXX --with-mon-dir-password=XXX_MONDIRPASSWORD_XXX --with-mon-fd-password=XXX_MONFDPASSWORD_XXX --with-mon-sd-password=XXX_MONSDPASSWORD_XXX --with-db-name=XXX_DBNAME_XXX --with-db-user=XXX_DBUSER_XXX --with-db-password=XXX_DBPASSWORD_XXX --with-hostname=localhost --config-cache --with-archivedir=/nonexistant/path/to/file/archive/dir --sysconfdir=/etc/bacula --with-scriptdir=/etc/bacula/scripts --sharedstatedir=/var/lib/bacula --localstatedir=/var/lib/bacula --with-logdir=/var/log/bacula --with-pid-dir=/run/bacula --with-smtp-host=localhost --with-working-dir=/var/lib/bacula --with-subsys-dir=/run/lock --with-dump-email=root --with-job-email=root --with-mysql --with-postgresql --with-sqlite3 --enable-bat --with-x --disable-s3 --with-systemd=/lib/systemd/system
> > configure: creating cache config.cache
> > configure: error: cannot find required auxiliary files: config.rpath mkinstalldirs config.guess config.sub ltmain.sh install-sh
> > 	tail -v -n \+0 config.log

Interesting.

I think this may be an autoconf2.71 problem or a dh problem

Debugging the generated configure script, I see that it tries to look in 
the wrong place for the "autoconf/" directory when searching for the 
auxiliary files:

+ case $as_dir in
+ as_dir=/autoconf/
+ as_found=:
+ printf '%s\n' 'configure:3618:  trying /autoconf/'
+ ac_aux_dir_found=yes
+ ac_install_sh=
+ for ac_aux in $ac_aux_files
+ test xconfig.rpath = xinstall-sh
+ test -f /autoconf/config.rpath
+ ac_aux_dir_found=no
+ :

Obviously, "/autoconf/config.rpath" cannot exist.

Looking at the code in the generated configure script:

 3595 # Locations in which to look for auxiliary files.
 3596 ac_aux_dir_candidates="${BUILD_DIR}/autoconf"

it looks like $BUILD_DIR is empty, and when looking at the trace again, it 
sure is:

+ ac_aux_dir_candidates=/autoconf

Comparing the old (supplied with the source) configure script and the 
newly autoreconf'd one, it looks like BUILD_DIR is defined too late.

The old one has this

 3159 BUILD_DIR=`pwd`
 3160 cd ..
 3161 TOP_DIR=`pwd`
 3162 cd ${BUILD_DIR}

and only after that is BUILD_DIR used.

The new one uses BUILD_DIR earlier

 3595 # Locations in which to look for auxiliary files.
 3596 ac_aux_dir_candidates="${BUILD_DIR}/autoconf"

and the defintion is later

 3760 BUILD_DIR=`pwd`
 3761 cd ..
 3762 TOP_DIR=`pwd`
 3763 cd ${BUILD_DIR}

When I manually copy that code block above line 3596 then the configure 
script starts to work again.

BUILD_DIR comes from autoconf/configure.in:

  13 BUILD_DIR=`pwd`
  14 cd ..
  15 TOP_DIR=`pwd`
  16 cd ${BUILD_DIR}
  17 AC_SUBST(BUILD_DIR)
  18 AC_SUBST(TOP_DIR)
  19 AC_CONFIG_AUX_DIR(${BUILD_DIR}/autoconf)

As seen here, it is defined before being used. Why autoconf2.71 seems to 
reorder the generated code here I cannot say.

To me this looks like a regression in autoconf.

Grüße,
Sven.



More information about the pkg-bacula-devel mailing list