In the Texinfo project, I wanted to try to remove a gnulib module.  The
command I ran was:

../../../../gnulib/gnulib-tool --remove-import copy-file

This is inside a deeply nested directory in the project source code.

However, this has the opposite effect to that intended:

diff --git a/tp/Texinfo/XS/gnulib/lib/Makefile.am 
b/tp/Texinfo/XS/gnulib/lib/Makefile.am
index 5952d1bfb6..e8c4c2b025 100644
--- a/tp/Texinfo/XS/gnulib/lib/Makefile.am
+++ b/tp/Texinfo/XS/gnulib/lib/Makefile.am
@@ -34,42 +34,7 @@
 #  --libtool \
 #  --macro-prefix=gl \
 #  --po-domain=texinfo_tp \
-#  copy-file \
-#  euidaccess \
-#  getline \
-#  iconv \
-#  libunistring \
-#  locale \
-#  obstack \
-#  setenv \
-#  strchrnul \
-#  strndup \
-#  uchar \
-#  unicase/u8-tolower \
-#  unicase/u8-toupper \
-#  unictype/category-L \
-#  unictype/category-M \
-#  unictype/category-Mn \
-#  unictype/category-Nd \
-#  unictype/category-test \
-#  unictype/ctype-upper \
-#  unictype/property-alphabetic \
-#  unictype/property-join-control \
-#  unictype/property-test \
-#  uninorm/nfc \
-#  uninorm/nfkd \
-#  uninorm/u8-normalize \
-#  unistr/u32-next \
-#  unistr/u8-mbsnlen \
-#  unistr/u8-mbtouc \
-#  unistr/u8-next \
-#  unistr/u8-strlen \
-#  unistr/u8-strmbtouc \
-#  unistr/u8-uctomb \
-#  uniwidth/u8-strwidth \
-#  uniwidth/u8-width \
-#  unsetenv \
-#  vasprintf
+#  copy-file
 
 AUTOMAKE_OPTIONS = 1.14 gnits subdir-objects
 
I wanted to remove "copy-file", but it actually removed every other module.

I noticed that gnulib-tool was now possibly written in Python, so I thought
I would see if was an issue with the new implementation:

GNULIB_TOOL_IMPL=sh ../../../../gnulib/gnulib-tool --remove-import copy-file

This gave an error message that I did not get without GNULIB_TOOL_IMPL:

../../../../gnulib/gnulib-tool.sh: *** Ambiguity: to which directory should the 
modules be added? Please specify at least --m4-base=...
../../../../gnulib/gnulib-tool.sh: *** Stop.


According to the comment in gnulib-tool, sh is supposed to be the
default, but it is actually Python:

# This program dispatches among
#   - the shell implementation and
#   - the Python implementation
# of gnulib-tool, according to the environment variable GNULIB_TOOL_IMPL.

# The environment variable GNULIB_TOOL_IMPL can have four possible values:
#   - GNULIB_TOOL_IMPL=sh      chooses the shell implementation.
#   - GNULIB_TOOL_IMPL=py      chooses the Python implementation.
#   - GNULIB_TOOL_IMPL=        chooses the default (currently sh).
#   - GNULIB_TOOL_IMPL=sh+py   runs both implementations and compares the
#                              result

The ChangeLog for gnulib has this entry saying the default was switched
to Python:

2024-04-26  Bruno Haible  <br...@clisp.org>

        gnulib-tool: Use the Python implementation by default.
        * gnulib-tool: If GNULIB_TOOL_IMPL is not set: Use the Python
        implementation if a suitable 'python3' program is found in $PATH;
        otherwise print a warning and use the shell implementation.


How do I get this module removed?

Reply via email to