On Tue, Nov 12, 2024 at 07:05:42PM +0000, Gavin Smith wrote:
> I do not remember removing a gnulib module being this difficult.

I worked around it by copying the command from gnulib/lib/Makefile.am
and removing the "copy-file" line:

../../../../gnulib/gnulib-tool --import \
  --lib=libgnu \
  --source-base=gnulib/lib \
  --m4-base=gnulib/m4 \
  --po-base=gnulib/po \
  --doc-base=doc \
  --tests-base=tests \
  --aux-dir=build-aux \
  --no-conditional-dependencies \
  --libtool \
  --macro-prefix=gl \
  --po-domain=texinfo_tp \
  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

It leads to 132 files being deleted and numerous dependencies disappearing:

$ git diff gnulib/m4/gnulib-comp.m4 | grep "^-  # Code"
-  # Code from module acl-permissions:
-  # Code from module basename-lgpl:
-  # Code from module binary-io:
-  # Code from module c-ctype:
-  # Code from module c-strcase:
-  # Code from module c-strcaseeq:
-  # Code from module c32isprint:
-  # Code from module calloc-gnu:
-  # Code from module calloc-posix:
-  # Code from module clock-time:
-  # Code from module cloexec:
-  # Code from module copy-file:
-  # Code from module copy-file-range:
-  # Code from module double-slash-root:
-  # Code from module error:
-  # Code from module error-h:
-  # Code from module fstat:
-  # Code from module full-write:
-  # Code from module getprogname:
-  # Code from module gettime:
-  # Code from module gettimeofday:
-  # Code from module hard-locale:
-  # Code from module ialloc:
-  # Code from module ignore-value:
-  # Code from module intprops:
-  # Code from module localcharset:
-  # Code from module lstat:
-  # Code from module mbrtoc32:
-  # Code from module mbrtowc:
-  # Code from module mbsinit:
-  # Code from module minmax:
-  # Code from module open:
-  # Code from module qcopy-acl:
-  # Code from module quote:
-  # Code from module quotearg:
-  # Code from module quotearg-simple:
-  # Code from module raise:
-  # Code from module read:
-  # Code from module reallocarray:
-  # Code from module safe-read:
-  # Code from module safe-write:
-  # Code from module setlocale-null:
-  # Code from module setlocale-null-unlocked:
-  # Code from module signal-h:
-  # Code from module strerror:
-  # Code from module strerror-override:
-  # Code from module sys_time:
-  # Code from module timespec:
-  # Code from module unictype/ctype-print:
-  # Code from module utime:
-  # Code from module utime-h:
-  # Code from module utimens:
-  # Code from module write:
-  # Code from module xalloc:
-  # Code from module xalloc-die:

It is an awful lot just to copy a couple of files.

The only compilation error is in convert/convert_html.c:

convert/convert_html.c:23:10: fatal error: copy-file.h: No such file or 
directory
   23 | #include "copy-file.h"
      |          ^~~~~~~~~~~~~
compilation terminated.

Note this is for copying the JavaScript files with INFO_JS_DIR, which is
hardly used anyway.

In the worst case, it would be possible to copy a file with fopen on
a source and destination files, fread from the source file and fwrite
to the destination file, although this would be more inefficient than
dedicated file copying functionality.

Reply via email to