Hi Collin, > I think now the correct step is for me to build various GNU packages > from user.txt. With luck I won't run into issues, but who knows. I'll > keep notes of which ones I tried and update after a bit.
I also tried a few packages. Depending on the package, I use - $ gnulib-tool --update if the package has a gnulib-cache.m4 under version control, - $ ./autogen.sh if such a file exists - $ ./bootstrap --no-git --gnulib-srcdir=$GNULIB_SRCDIR if a 'bootstrap' script exists. I already found these problems: * Package 'barcode': The package wants the 'free' module, but it is nowadays called 'free-posix'. While the shell implementation prints a warning, the Python implementation prints a stack trace and aborts. I think that neither of these behaviours are desirable. The best behaviour would be that it prints an error message (not warning message) and continues, and the exit code at the end is 1. An error message is desirable for modes other than 'import', 'add-import', 'remove-import', 'update', because these gnulib-tool invocations typically occur in scripts and are followed by autoconf and automake invocations. A warning message is desirable in the other modes. * Package 'freedink': configure.ac has: AC_CONFIG_AUX_DIR(autotools) $ diff -r -q /packages/freedink /packages/glpydg5mPM Only in /packages/freedink: autotools Only in /packages/glpydg5mPM: build-aux Files /packages/freedink/gnulib/lib/Makefile.am and /packages/glpydg5mPM/gnulib/lib/Makefile.am differ Files /packages/freedink/gnulib/m4/gnulib-cache.m4 and /packages/glpydg5mPM/gnulib/m4/gnulib-cache.m4 differ Files /packages/freedink/gnulib/po/LINGUAS and /packages/glpydg5mPM/gnulib/po/LINGUAS differ $ diff -u /packages/freedink/gnulib/m4/gnulib-cache.m4 /packages/glpydg5mPM/gnulib/m4/gnulib-cache.m4 --- /packages/freedink/gnulib/m4/gnulib-cache.m4 2024-04-01 18:44:14.061114983 +0200 +++ /packages/glpydg5mPM/gnulib/m4/gnulib-cache.m4 2024-04-01 18:44:08.253067390 +0200 @@ -34,7 +34,7 @@ # --po-base=gnulib/po \ # --doc-base=doc \ # --tests-base=tests \ -# --aux-dir=autotools \ +# --aux-dir=build-aux \ # --no-conditional-dependencies \ # --no-libtool \ # --macro-prefix=gl \ The problem happens here: # Update configuration dictionary. self.config.update(self.cache) # HERE the value is set to 'autotools' for key in config.keys(): value = config[key] if not config.isdefault(key, value): # HERE 'build-aux' is not considered to be the default self.config.update_key(config, key) # HERE 'autotools' gets overwritten with 'build-aux' Here I would revisit the entire 'auxdir' handling. Bruno