Dear log4cxx developers,

I was packaging the most recent commit of log4xx (014954db) into a tarball. But to clearly identify the tarball, I modified the `AC_INIT' setting of `configure.ac' like below:

AC_INIT([apachelog4cxx], [0.10.0-603-014954db])

The resulting tarball after `make dist' was thus `apachelog4cxx-0.10.0-603-014954db.tar.gz'

However, after trying to build from the tarball, the build crashed because of a missing `throwableinformationpatternconverter.h'.

After inspecting the outputs of `make dist', I noticed this tar warning:

tar: apachelog4cxx-0.10.0-603-014954db/src/main/include/log4cxx/pattern/throwableinformationpatternconverter.h: file name is too long (max 99); not dumped

This happens because the ancient V7 format of Tar is the default used by Automake only accepts names that are a maximum of 99 characters (as described in [1]). I thus had to manually add `tar-ustar' to `AM_INIT_AUTOMAKE' of `configure.ac' (line below), and after I did this the problem was fixed.

AM_INIT_AUTOMAKE([foreign subdir-objects -Wall tar-ustar])

According to the Automake manual [2], the `tar-ustar' is already supported by many systems and allows names as long as 255 characters.

Since log4xx has very long file names like `src/main/include/log4cxx/pattern/throwableinformationpatternconverter.h', to allow packagers some breathing space to exactly identify the tarball (with a Git commit short-checksum, like I did), it may be good to adopt the `tar-ustar' format by default in the main branch, or decrease the length of long headers like this one.

Cheers,
Mohammad

[1] https://noiselabs.io/tar-file-name-is-too-long-max-99/
[2] https://www.gnu.org/software/automake/manual/html_node/List-of-Automake-options.html

Reply via email to