Hi, While running the (automake-provided) 'dist' target of GNU gettext, I encountered this error:
tar: gettext-0.19.8.1.74-72e49-dirty/gettext-tools/gnulib-tests/test-term-ostream-xterm-linux-mandriva.out: file name is too long (max 99); not dumped tar: gettext-0.19.8.1.74-72e49-dirty/gettext-runtime/intl-csharp/doc/GNU_Gettext_GettextResourceManager.html: file name is too long (max 99); not dumped My findings [1] confirm the description of the 'tar-ustar' and 'tar-pax' option. However, I found the text "... is believed to be old enough ..." "... very modern platforms" a bit vague to base decisions on. Therefore here is a documentation patch to document the actual findings. [1] https://savannah.gnu.org/support/index.php?109437
>From 7ba5050bd7a40d467378bad642ec1e11ca85df96 Mon Sep 17 00:00:00 2001 From: Bruno Haible <br...@clisp.org> Date: Wed, 3 Jan 2018 01:52:34 +0100 Subject: [PATCH] doc: Document the portability of various tar formats better. * doc/automake.texi (List of Automake options): Document the portability of the tar-ustar and tar-pax options better. --- doc/automake.texi | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/doc/automake.texi b/doc/automake.texi index 050c981..1b62a4c 100644 --- a/doc/automake.texi +++ b/doc/automake.texi @@ -10332,20 +10332,23 @@ directories. When using this format, consider using the @option{filename-length-max=99} option to catch file names too long. @option{tar-ustar} selects the ustar format defined by POSIX -1003.1-1988. This format is believed to be old enough to be portable. +1003.1-1988. This format is old enough to be portable: +As of 2018, it is supported by the native @code{tar} command on +GNU, FreeBSD, NetBSD, OpenBSD, AIX, HP-UX, Solaris, at least. It fully supports empty directories. It can store file names with up to 256 characters, provided that the file name can be split at directory separator in two parts, first of them being at most 155 bytes long. So, in most cases the maximum file name length will be -shorter than 256 characters. However you may run against broken tar -implementations that incorrectly handle file names longer than 99 -characters (please report them to @email{@value{PACKAGE_BUGREPORT}} so we -can document this accurately). +shorter than 256 characters. @option{tar-pax} selects the new pax interchange format defined by POSIX 1003.1-2001. It does not limit the length of file names. However, this format is very young and should probably be restricted to -packages that target only very modern platforms. There are moves to +packages that target only very modern platforms. +As of 2018, this format is supported by the native @code{tar} command only +on GNU, FreeBSD, OpenBSD system; it is not supported by the native +@code{tar} command on NetBSD, AIX, HP-UX, Solaris. +There are moves to change the pax format in an upward-compatible way, so this option may refer to a more recent version in the future. -- 2.7.4