fix a "make dist" error

Bruno Haible via discussion of the GNU roff typesetting system and related software <[email protected]>
Newsgroups gmane.comp.printing.groff.general
Message-ID <12757079.MucGe3eQFb@cagnes>
When I do "make dist" from a groff git checkout, it fails:

groff-1.25.0.rc2.6-9df222-modified/doc/groff.html.node/Manipulating-Type-Size-and-Vertical-Spacing.html
groff-1.25.0.rc2.6-9df222-modified/src/roff/groff/tests/do-not-abort-applying-tr-request-to-non-char.sh
groff-1.25.0.rc2.6-9df222-modified/src/roff/groff/tests/backslash-exclamation-early-does-not-fail.sh
groff-1.25.0.rc2.6-9df222-modified/src/roff/groff/tests/roman-format-register-interpolation-works.sh
groff-1.25.0.rc2.6-9df222-modified/src/roff/groff/tests/alpha-format-register-interpolation-works.sh
groff-1.25.0.rc2.6-9df222-modified/src/roff/groff/tests/stringup-request-transforms-non-basic-latin.sh
groff-1.25.0.rc2.6-9df222-modified/src/roff/groff/tests/device-control-special-character-handling.sh
groff-1.25.0.rc2.6-9df222-modified/src/roff/groff/tests/error-no-space-between-dt-or-wh-arguments.sh
groff-1.25.0.rc2.6-9df222-modified/src/roff/groff/tests/current-language-and-environment-in-sync.sh
groff-1.25.0.rc2.6-9df222-modified/src/roff/groff/tests/do-not-crash-on-mismatched-diversion-request.sh
groff-1.25.0.rc2.6-9df222-modified/src/roff/groff/tests/evc-request-produces-no-output-if-invalid.sh
groff-1.25.0.rc2.6-9df222-modified/src/roff/groff/tests/device-control-escapes-express-basic-latin.sh
groff-1.25.0.rc2.6-9df222-modified/src/roff/groff/tests/backslash-X-is-transparent-to-hyphenation.sh
groff-1.25.0.rc2.6-9df222-modified/src/roff/groff/tests/fp-request-does-not-traverse-directories.sh
groff-1.25.0.rc2.6-9df222-modified/src/roff/groff/tests/device-request-passes-most-escape-sequences.sh
groff-1.25.0.rc2.6-9df222-modified/src/roff/groff/tests/do-not-crash-on-backslash-X-if-font-invalid.sh
groff-1.25.0.rc2.6-9df222-modified/src/roff/groff/tests/substring-request-on-invalid-range-is-no-op.sh
groff-1.25.0.rc2.6-9df222-modified/src/roff/groff/tests/do-not-loop-infinitely-when-breaking-cjk.sh
groff-1.25.0.rc2.6-9df222-modified/src/roff/groff/tests/so-request-accepts-embedded-space-in-arg.sh
groff-1.25.0.rc2.6-9df222-modified/src/roff/groff/tests/backslash-right-brace-ends-string-definition.sh
groff-1.25.0.rc2.6-9df222-modified/src/roff/groff/tests/stringdown-request-rejects-request-names.sh
groff-1.25.0.rc2.6-9df222-modified/src/roff/groff/tests/double-do-request-does-not-fail-assertion.sh
groff-1.25.0.rc2.6-9df222-modified/src/roff/groff/tests/backslash-s-works-with-single-digit-argument.sh
groff-1.25.0.rc2.6-9df222-modified/src/roff/groff/tests/composite-nodes-produce-approximate-output.sh
groff-1.25.0.rc2.6-9df222-modified/src/roff/groff/tests/handle-right-brace-escape-as-macro-argument.sh
groff-1.25.0.rc2.6-9df222-modified/src/preproc/tbl/tests/do-not-segv-on-span-only-table-description.sh
groff-1.25.0.rc2.6-9df222-modified/src/preproc/tbl/tests/do-not-segv-when-backslash-R-in-text-block.sh
groff-1.25.0.rc2.6-9df222-modified/src/preproc/tbl/tests/passes-through-input-with-eighth-bit-set.sh
groff-1.25.0.rc2.6-9df222-modified/src/preproc/tbl/tests/do-not-segv-on-invalid-vertical-span-entry.sh
groff-1.25.0.rc2.6-9df222-modified/src/preproc/tbl/tests/save-and-restore-hyphenation-parameters.sh
groff-1.25.0.rc2.6-9df222-modified/src/preproc/soelim/tests/passes-through-input-with-eighth-bit-set.sh
groff-1.25.0.rc2.6-9df222-modified/src/preproc/grn/tests/passes-through-input-with-eighth-bit-set.sh
groff-1.25.0.rc2.6-9df222-modified/src/preproc/pic/tests/do-not-crash-when-reading-macro-arguments.sh
groff-1.25.0.rc2.6-9df222-modified/src/preproc/pic/tests/passes-through-input-with-eighth-bit-set.sh
groff-1.25.0.rc2.6-9df222-modified/src/preproc/eqn/tests/passes-through-input-with-eighth-bit-set.sh
groff-1.25.0.rc2.6-9df222-modified/src/preproc/eqn/tests/diagnostics-report-correct-line-numbers.sh
groff-1.25.0.rc2.6-9df222-modified/src/devices/grops/tests/device-extension-command-import-works.sh
groff-1.25.0.rc2.6-9df222-modified/tmac/tests/doc_do-not-loop-infinitely-when-shortening-headers.sh
error: the above filenames are too long
make[2]: *** [Makefile:16208: distdir-am] Error 1
make[2]: Leaving directory '/groff-git/groff/bb'
make[1]: *** [Makefile:16199: distdir] Error 2
make[1]: Leaving directory '/groff-git/groff/bb'
make: *** [Makefile:16317: dist] Error 2

The generated Makefile.in has

        @if test -z "$(am__skip_length_check)" && find "$(distdir)" -type f -print | \
          grep '^...................................................................................................' 1>&2; then \
          echo 'error: the above filenames are too long' 1>&2; \
          exit 1; \
        else :; fi

These Makefile statements come from the line

  AUTOMAKE_OPTIONS = filename-length-max=99

in Makefile.am.

Since groff uses the default tar format that Automake provides (it does not use
the 'tar-v7' or 'tar-pax' option), and this default tar format is now 'tar-ustar'
(since Automake 1.18), restricting the file name length to 99 characters is no
longer necessary. The limit can be bumped to 155. See
https://lists.gnu.org/archive/html/bug-automake/2026-08/msg00000.html

The attached patch indeed fixes "make dist" in my case.

Bruno
0001-build-Fix-make-dist-errors-in-modified-git-checkouts.patch (text/x-patch, 1.1 KB)
From 5a98406d7eb4713a9c8a1cd4366d0971d14fac27 Mon Sep 17 00:00:00 2001
From: Bruno Haible <[email protected]>
Date: Wed, 5 Aug 2026 16:34:19 +0200
Subject: [PATCH] build: Fix "make dist" errors in modified git checkouts.

* Makefile.am (AUTOMAKE_OPTIONS): Use filename-length-max=155 instead of
filename-length-max=99.
---
 Makefile.am | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/Makefile.am b/Makefile.am
index 1690909df..cce14d5df 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -542,7 +542,10 @@ REVISION      = `echo $(VERSION) | cut -d . -f 3`
 # Initialize Automake variables we haven't already handled; see section
 # "3.8 Modifying the build rules of a Gnulib import directory" in the
 # Gnulib manual.
-AUTOMAKE_OPTIONS = filename-length-max=99
+# Assuming Automake >= 1.18, the default tar format is tar-ustar, which
+# supports file names of length 155 and more. See
+# https://www.gnu.org/software/automake/manual/html_node/List-of-Automake-options.html
+AUTOMAKE_OPTIONS = filename-length-max=155
 SUBDIRS =
 noinst_HEADERS =
 noinst_LTLIBRARIES =
-- 
2.53.0
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.