On Fri, Jan 20, 2023 at 10:39:05AM +1100, Dave Chinner wrote: > From: Dave Chinner <dchinner@xxxxxxxxxx> > > For some reason, a current debian testing build system will fail to > build debian packages because the build environment is not correctly > detecting that libtoolize needs the "-i" parameter to copy in the > files needed by autoconf. > > My build scripts run "make -j 16 realclean; make -j 16 deb", and the > second step is failing immediately with: > > libtoolize -c `libtoolize -n -i >/dev/null 2>/dev/null && echo -i` -f > libtoolize: putting auxiliary files in AC_CONFIG_AUX_DIR, '.'. > 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' > libtoolize: Consider adding '-I m4' to ACLOCAL_AMFLAGS in Makefile.am. > cp include/install-sh . > aclocal -I m4 > autoconf > ./configure $LOCAL_CONFIGURE_OPTIONS > configure: error: cannot find required auxiliary files: config.guess config.sub > make: *** [Makefile:131: include/builddefs] Error 1 > > If I run 'make realclean; make deb' from the command line, the > package build runs to completion. I have not been able to work out > why the initial build fails, but then succeeds after a 'make > realclean' has been run, and I don't feel like spending hours > running down this rabbit hole. > > This conditional "-i" flag detection was added back in *2009* when > default libtoolize behaviour was changed to not copy the config > files into the build area, and the "-i" flag was added to provide > that behaviour. It is detecting that the "-i" flag is needed that is > now failing, but it is most definitely still needed. > > Rather than ispending lots of time trying to understand this and > then making the detection more complex, just use the "-i" flag > unconditionally and require any userspace that this now breaks on to > upgrade their 15+ year old version of libtoolize something a little > more modern. > > Signed-off-by: Dave Chinner <dchinner@xxxxxxxxxx> Seems fair enough. It's still working on debian 11 stable, I'm curious to understand what breaks the detection of -i argument for libtoolize, I'm gonna give it a try on testing. Reviewed-by: Carlos Maiolino <cmaiolino@xxxxxxxxxx> > --- > Makefile | 8 +------- > 1 file changed, 1 insertion(+), 7 deletions(-) > > diff --git a/Makefile b/Makefile > index 0edc2700933d..c8455a9e665f 100644 > --- a/Makefile > +++ b/Makefile > @@ -115,14 +115,8 @@ else > clean: # if configure hasn't run, nothing to clean > endif > > - > -# Recent versions of libtool require the -i option for copying auxiliary > -# files (config.sub, config.guess, install-sh, ltmain.sh), while older > -# versions will copy those files anyway, and don't understand -i. > -LIBTOOLIZE_INSTALL = `$(LIBTOOLIZE_BIN) -n -i >/dev/null 2>/dev/null && echo -i` > - > configure: configure.ac > - $(LIBTOOLIZE_BIN) -c $(LIBTOOLIZE_INSTALL) -f > + $(LIBTOOLIZE_BIN) -c -i -f > cp include/install-sh . > aclocal -I m4 > autoconf > -- > 2.39.0 > -- Carlos Maiolino