In the 'gnuit' and 'acct' packages, I see that gnulib-tool.sh and gnulib-tool.py provide slightly different outputs. Namely, gnulib-tool.sh shows file names that start with './' if - a module contains a file 'build-aux/...' and - the configure.ac does not contain an AC_CONFIG_AUX_DIR invocation, while gnulib-tool.py trims this './'.
How to reproduce: $ export GNULIB_TOOL_IMPL=sh+py $ git clone https://git.savannah.gnu.org/git/gnuit.git $ cd gnuit Bump AC_PREREQ line in configure.ac. $ $GNULIB_SRCDIR/gnulib-tool --update .../gnulib-tool: *** gnulib-tool.py produced different output than gnulib-tool.sh! Compare .../glpy2wHy4c-sh-out and .../glpy2wHy4c-py-out. .../gnulib-tool: *** Stop. $ diff -u ../glpy2wHy4c-sh-out ../glpy2wHy4c-py-out --- ../glpy2wHy4c-sh-out 2024-04-11 13:09:22.611985846 +0200 +++ ../glpy2wHy4c-py-out 2024-04-11 13:08:58.767830287 +0200 @@ -946,7 +946,6 @@ Creating directory ./lib/unicase Creating directory ./lib/unictype Creating directory ./lib/unistr -Removing file ./link-warning.h (backup in ./link-warning.h~) Removing file lib/alignof.h (backup in lib/alignof.h~) Removing file lib/close-hook.c (backup in lib/close-hook.c~) Removing file lib/close-hook.h (backup in lib/close-hook.h~) @@ -980,6 +979,7 @@ Removing file lib/xgetcwd.c (backup in lib/xgetcwd.c~) Removing file lib/xgetcwd.h (backup in lib/xgetcwd.h~) Removing file lib/xstrtol-error.c (backup in lib/xstrtol-error.c~) +Removing file link-warning.h (backup in link-warning.h~) Removing file m4/argmatch.m4 (backup in m4/argmatch.m4~) Removing file m4/ctype.m4 (backup in m4/ctype.m4~) Removing file m4/dirname.m4 (backup in m4/dirname.m4~) @@ -1648,7 +1648,7 @@ Updating m4/gnulib-cache.m4 (backup in m4/gnulib-cache.m4~) Updating m4/gnulib-comp.m4 (backup in m4/gnulib-comp.m4~) Updating lib/Makefile.am (backup in lib/Makefile.am~) -Updating ./.gitignore (backup in ./.gitignore~) +Updating .gitignore (backup in .gitignore~) Creating lib/.gitignore Creating lib/glthread/.gitignore Creating lib/malloc/.gitignore This patch fixes it, without breaking the test suite. 2024-04-11 Bruno Haible <br...@clisp.org> gnulib-tool.sh: Remove './' prefix from file names to update or remove. * gnulib-tool.sh (func_import): Don't let rewritten file names start with './'. diff --git a/gnulib-tool.sh b/gnulib-tool.sh index e99b8fff79..6335228c46 100755 --- a/gnulib-tool.sh +++ b/gnulib-tool.sh @@ -5394,22 +5394,67 @@ s,^\(.................................................[^ ]*\) *, fi rewritten='%REWRITTEN%' + if test "$auxdir" = '.'; then + auxdir_prefix= + else + auxdir_prefix="$auxdir/" + fi + if test "$cached_docbase" = '.'; then + cached_docbase_prefix= + else + cached_docbase_prefix="$cached_docbase/" + fi + if test "$cached_sourcebase" = '.'; then + cached_sourcebase_prefix= + else + cached_sourcebase_prefix="$cached_sourcebase/" + fi + if test "$cached_m4base" = '.'; then + cached_m4base_prefix= + else + cached_m4base_prefix="$cached_m4base/" + fi + if test "$cached_testsbase" = '.'; then + cached_testsbase_prefix= + else + cached_testsbase_prefix="$cached_testsbase/" + fi + if test "$docbase" = '.'; then + docbase_prefix= + else + docbase_prefix="$docbase/" + fi + if test "$sourcebase" = '.'; then + sourcebase_prefix= + else + sourcebase_prefix="$sourcebase/" + fi + if test "$m4base" = '.'; then + m4base_prefix= + else + m4base_prefix="$m4base/" + fi + if test "$testsbase" = '.'; then + testsbase_prefix= + else + testsbase_prefix="$testsbase/" + fi sed_rewrite_old_files="\ - s,^build-aux/,$rewritten$auxdir/, - s,^doc/,$rewritten$cached_docbase/, - s,^lib/,$rewritten$cached_sourcebase/, - s,^m4/,$rewritten$cached_m4base/, - s,^tests/,$rewritten$cached_testsbase/, - s,^tests=lib/,$rewritten$cached_testsbase/, + s,^build-aux/,$rewritten$auxdir_prefix, + s,^doc/,$rewritten$cached_docbase_prefix, + s,^lib/,$rewritten$cached_sourcebase_prefix, + s,^m4/,$rewritten$cached_m4base_prefix, + s,^tests/,$rewritten$cached_testsbase_prefix, + s,^tests=lib/,$rewritten$cached_testsbase_prefix, s,^top/,$rewritten, s,^$rewritten,," sed_rewrite_new_files="\ - s,^build-aux/,$rewritten$auxdir/, - s,^doc/,$rewritten$docbase/, - s,^lib/,$rewritten$sourcebase/, - s,^m4/,$rewritten$m4base/, - s,^tests/,$rewritten$testsbase/, - s,^tests=lib/,$rewritten$testsbase/, + s,^build-aux/,$rewritten$auxdir_prefix, + s,^doc/,$rewritten$docbase_prefix, + s,^lib/,$rewritten$sourcebase_prefix, + s,^m4/,$rewritten$m4base_prefix, + s,^tests/,$rewritten$testsbase_prefix, + s,^tests=lib/,$rewritten$testsbase_prefix, s,^top/,$rewritten, s,^$rewritten,,"