Control: retitle -1 configure: error: gdk-pixbuf-query-loaders not found in path
On Sun, 26 Aug 2018 at 09:07:44 +0000, Santiago Vila wrote: > [...] > debian/rules build-indep > dh build-indep --with gnome,gir > dh_update_autotools_config -i > debian/rules override_dh_autoreconf > make[1]: Entering directory '/<<PKGBUILDDIR>>' > dh_autoreconf --as-needed > libtoolize: putting auxiliary files in '.'. > libtoolize: copying file './ltmain.sh' > libtoolize: putting macros in AC_CONFIG_MACRO_DIRS, 'm4'. > libtoolize: copying file 'm4/libtool.m4' > libtoolize: copying file 'm4/ltoptions.m4' > libtoolize: copying file 'm4/ltsugar.m4' > libtoolize: copying file 'm4/ltversion.m4' > libtoolize: copying file 'm4/lt~obsolete.m4' > > [... snipped ...] > > mkdir_p='$(MKDIR_P)' > oldincludedir='/usr/include' > pdfdir='${docdir}' > prefix='/usr' > program_transform_name='s,x,x,' > psdir='${docdir}' > runstatedir='/run' [...] > configure: exit 1 > dh_auto_configure: ./configure --build=x86_64-linux-gnu --prefix=/usr > --includedir=\${prefix}/include --mandir=\${prefix}/share/man > --infodir=\${prefix}/share/info --sysconfdir=/etc --localstatedir=/var > --disable-silent-rules --libdir=\${prefix}/lib/x86_64-linux-gnu > --libexecdir=\${prefix}/lib/x86_64-linux-gnu --runstatedir=/run > --disable-maintainer-mode --disable-dependency-tracking > --enable-pixbuf-loader --enable-introspection --enable-vala --enable-gtk-doc > returned exit code 1 > make[1]: *** [debian/rules:14: override_dh_auto_configure] Error 2 > make[1]: Leaving directory '/<<PKGBUILDDIR>>' > make: *** [debian/rules:8: build-indep] Error 2 > dpkg-buildpackage: error: debian/rules build-indep subprocess returned exit > status 2 Unfortunately you removed the interesting part of this log. If you are routinely reporting FTBFS in Autotools packages, please attach the whole log, or quote the part of configure's output just before it starts dumping config.log and the part of config.log just before it starts dumping cache variables. Those are the actual failure. Luckily, this package also FTBFS on reproducible-builds, so I was able to find the interesting parts of the log: ----8<---- ... checking for gio-2.0 gio-unix-2.0 gdk-pixbuf-2.0 cairo pangocairo... yes checking for strtok_r... yes checking for gtk+-3.0 >= 3.10.0... yes checking whether to build the GDK-Pixbuf SVG loader... yes checking for gdk-pixbuf-2.0 >= 2.20... yes checking for gdk-pixbuf-query-loaders... no checking for gdk-pixbuf-query-loaders-64... no checking for gdk-pixbuf-query-loaders-32... no configure: error: gdk-pixbuf-query-loaders not found in path <--HERE tail -v -n \+0 config.log ==> config.log <== This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. ... ----8<---- and ----8<---- ... configure:14630: checking for gdk-pixbuf-2.0 >= 2.20 configure:14637: $PKG_CONFIG --exists --print-errors "gdk-pixbuf-2.0 >= $GDK_PIXBUF_REQUIRED" configure:14640: $? = 0 configure:14654: $PKG_CONFIG --exists --print-errors "gdk-pixbuf-2.0 >= $GDK_PIXBUF_REQUIRED" configure:14657: $? = 0 configure:14715: result: yes configure:14724: checking for gdk-pixbuf-query-loaders } configure:14757: result: no } configure:14724: checking for gdk-pixbuf-query-loaders-64 } configure:14757: result: no } <--HERE configure:14724: checking for gdk-pixbuf-query-loaders-32 } configure:14757: result: no } configure:14768: error: gdk-pixbuf-query-loaders not found in path } ## ---------------- ## ## Cache variables. ## ## ---------------- ## ac_cv_build=x86_64-pc-linux-gnu ac_cv_c_bigendian=no ac_cv_c_compiler_gnu=yes ac_cv_env_CC_set= ... ----8<---- This looks like fallout from gdk-pixbuf (2.36.12-2) which removed gdk-pixbuf-query-loaders in order to make libgdk-pixbuf2.0-dev Multi-Arch: same. I used codesearch.debian.net to try to find packages that depended on gdk-pixbuf-query-loaders and did not find any, but I must have missed this one. I don't see a way for gdk-pixbuf-query-loaders to be in PATH while allowing cross-compilation to use libgdk-pixbuf2.0-dev: gdk-pixbuf-query-loaders queries the available loaders for its own architecture, but when cross-compiling on a build architecture for a host architecture, the build machine can't necessarily run the host architecture's gdk-pixbuf-query-loaders. It also can't be in a Multi-Arch: foreign package because its output is architecture-specific. Looking at librsvg, it seems we might be able to reinstate gdk-pixbuf-query-loaders in libgdk-pixbuf2.0-dev but rename it to $(DEB_HOST_ARCH)-gdk-pixbuf-query-loaders, and then change librsvg to use AC_CHECK_TOOL instead of AC_PATH_PROGS; or install gdk-pixbuf-query-loaders in /usr/lib/$(DEB_HOST_MULTIARCH) instead of /usr/bin, then add that to PATH when building librsvg. That would mean we can't cross-compile librsvg on a build machine that can't run host binaries, but we'd still be able to cross-compile other gdk-pixbuf users. The worst case scenario would be that we have to reinstate gdk-pixbuf-query-loaders, reopen #689125 and mark it wontfix, but hopefully that won't be necessary. smcv