m4/tar.m4


Log

Author Commit Date CI Message
Stefano Lattarini 6d3ffeb9 2013-04-30T23:00:53 cosmetics: remove few trailing whitespace occurrences Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini edfd3bc4 2013-02-17T16:42:46 tar: format 'ustar' cannot support UID/GID longer than 21 bits See automake bug#8343 and bug#13588. POSIX 1988 'ustar' format is defined with *fixed-size* fields. There is notably a 21 bits limit (2097151) for the UID and the GID. Tom Rini tom_rini@mentor.com says (in bug#8343): When the user has a UID or GID that is larger than the ustar format supports, pax does not error out gracefully in some cases (FC13). Marc Herbert <marc.herbert@intel.com> adds (in bug#8343): When "configure" is run by a user with an UID bigger than 21 bits, BSD pax 3.4 aborts when trying to create the 'conftest.tar' test archive and leaves an empty or corrupted conftest.tar file behind. In the next step, pax tries to extract this incomplete or corrupted archive and this *** hangs the whole ./configure script ***. Note: GNU cpio 2.9 pretends to pass the test but it is a LIE: it silently truncates any big UID to its lower 21 bits. I don't know what can be the consequences of this lie. I think there is currently a design issue in automake/m4/tar.m4 considering that a ustar archive should should *never* succeed when ./configure is run from a big user ID. Months later, Petr Hracek <phracek@redhat.com> reports a similar issue (in bug#13588) for Fedora 17: I am trying to solve problem in case a user is created with big UID and during configuration pax hangs with message ATTENTION! pax archive volume change required. Ready for archive volume: 1 Input archive name or "." to quit pax. Archive name > and needs user interaction. Reference: <https://bugzilla.redhat.com/show_bug.cgi?id=843376> Time to fix this issue, on the line of a preliminary patch provided by Petr Hracek in bug#13588. The final patch ended up being remarkably different from that original proposition, though. * m4/tar.m4 (_AM_PROG_TAR): If the UID or GID of the current user is too high (> 2097151), the 'ustar' format cannot work. Adjust checks accordingly. Some related code reordering and clean-up. * t/tar-ustar-id-too-high.sh: New test. * t/list-of-tests.mk: Add it. * t/tar.sh: While at it, tweak and enhance a little. * t/tar2.sh: Likewise. * t/tar3.sh: Likewise. * t/tar-override.sh: Likewise. * NEWS: Update. * THANKS: Likewise. Helped-by: Pavel Raiskup <praiskup@redhat.com> Helped-by: Petr Hracek <phracek@redhat.com> Helped-by: Marc Herbert <marc.herbert@intel.com> Helped-by: Tom Rini <tom_rini@mentor.com> Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini 7df8b28c 2012-12-31T18:18:37 maint: update copyright year for 2013 (in branch maint) Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini 6e3c0b92 2012-07-14T18:49:25 m4: get rid of "# serial" lines The "#serial" lines are only considered by aclocal for the system-wide third-party '.m4' files, not for the Automake-provided ones. So they serve no real purpose in the Automake '.m4' files. In addition, now that we use git and topic branches, and that we are also writing the Automake-NG fork, the "#serial" lines are becoming more and more unreliable (e.g., different version of the same file in different branches can easily end up having the same serial numbers). So let's just nuke all the "#serial" lines. See also automake bug#11932. * m4/*.m4: All "# serial" lines removed. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Stefano Lattarini f8f22fea 2012-02-23T19:36:20 m4: do not quote `like this', as per GCS recommendation This patch converts the files comprising the automake's own build system to the use of new quoting format 'like this' or "like this" rather than `like this'. * m4/auxdir.m4, m4/ccstdc.m4, m4/depend.m4, m4/depout.m4, m4/tar.m4, m4/init.m4, m4/maintainer.m4, m4/make.m4, m4/missing.m4, m4/vala.m4, m4/mkdirp.m4, m4/sanity.m4, m4/silent.m4, m4/strip.m4: Update and adjust quoting format throughout, in comments and diagnostic. Some minor related rewordings and reformatting since we are at it. Bump serial numbers.
Stefano Lattarini 641a5a4b 2012-02-16T10:46:23 maint: run "make update-copyright"
Stefano Lattarini 01c3294b 2012-01-03T16:12:46 dist: do not wrap calls to 'tar' with the 'missing' script The `missing' script is meant to allow non-developers to build a package in the face of slightly-skewed timestamps (as might happen e.g. when the package is obtained from a VCS checkout rather than from a distribution tarball). It is *not* the business of the `missing' script to try to provide wrappers for all the maintainer tools (in this case, to tool being a decent tar program). Such wrapping of `tar' was not only inappropriate, but it was also preventing the legitimate overriding (at make runtime) of the `tar' program used in the creation of the distribution tarballs. See also automake bug#9822. * lib/missing: Don't try to specially wrap `tar' invocations anymore. * m4/tar.m4 (_AM_PROG_TAR): In the definitions of the `AMTAR' variable, do not wrap the `tar' invocation with the `missing' script anymore. Instead, allow the user to override the intended tar program at make runtime, by defining the `TAR' environment variable. [$1 == v7]: Similarly for the definitions of the `am__tar' and `am__untar' variables. Since we are at it, don't make them depend anymore on the definition of the obsolescent `AMTAR' variable. * NEWS: Update. * tests/missing-tar.test: Remove, it's obsolete. * tests/tar-override.test: New test. * tests/Makefile.am (TESTS): Update. Reported by Akim Demaille.
Alexandre Duret-Lutz 391df12b 2005-01-09T14:46:22 * m4/amversion.in, m4/as.m4, m4/auxdir.m4, m4/ccstdc.m4, m4/cond.m4, m4/depend.m4, m4/depout.m4, m4/dmalloc.m4, m4/gcj.m4, m4/header.m4, m4/init.m4, m4/install-sh.m4, m4/lead-dot.m4, m4/lex.m4, m4/lispdir.m4, m4/maintainer.m4, m4/make.m4, m4/minuso.m4, m4/missing.m4, m4/mkdirp.m4, m4/multi.m4, m4/obsol-gt.m4, m4/obsol-lt.m4, m4/obsolete.m4, m4/options.m4, m4/protos.m4, m4/python.m4, m4/regex.m4, m4/runlog.m4, m4/sanity.m4, m4/strip.m4, m4/tar.m4: Use the same all-permissive license that is used in aclocal.m4. Relicensing backed by RMS.
Alexandre Duret-Lutz 18ff1652 2004-06-07T06:04:40 * m4/tar.m4 (_AM_PROG_TAR): Split the definition of $_am_tools so it works with Solaris and Tru64 /bin/sh. Report from Nicolas Joly.
Alexandre Duret-Lutz 8b9ac42a 2004-06-06T20:42:14 * m4/tar.m4 (_AM_PROG_TAR): Introduce $_am_tools to work around a bug in NetBSD /bin/sh. Report from Nicolas Joly.
Alexandre Duret-Lutz fbeb424c 2004-05-23T16:19:43 * m4/tar.m4 (_AM_PROG_TAR) <cpio>: Specify -o and -i option first, by POSIX; and use option -d in am_untar.
Alexandre Duret-Lutz ae040111 2004-04-19T23:20:08 For PR automake/414: Introduce options tar-v7, tar-ustar, and tar-pax to select tar format. * doc/automake.texi (Options): Document them. * lib/Automake/Options.pm (_process_option_list): Process these new options. * lib/am/distdir.am (dist-gzip, dist-bzip2, dist-tarZ, dist, distcheck): Adjust to use am__tar and am__untar. * m4/tar.m4: New file. * m4/Makefile.am (dist_m4data_DATA): Add tar.m4. * m4/init.m4 (AM_INIT_AUTOMAKE): Support the new options and call _AM_PROG_TAR. * tests/tar.test, tests/tar2.test, tests/tar3.test: New files. * tests/Makefile.am (TESTS): Add them.