[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: AM_INIT_AUTOMAKE([1.9 tar-ustar]) and GNU TAR problems
From: |
Ralf Wildenhues |
Subject: |
Re: AM_INIT_AUTOMAKE([1.9 tar-ustar]) and GNU TAR problems |
Date: |
Tue, 24 Nov 2009 20:08:13 +0100 |
User-agent: |
Mutt/1.5.20 (2009-08-09) |
Hi Kent,
* Kent Boortz wrote on Mon, Nov 09, 2009 at 04:30:29PM CET:
> My real question is, how can I specify what TAR to use in "make dist",
> and avoid GNU TAR for my packaging, when 'tar-ustar' is specified to
> automake?
If you have a configure test which will find a good tar program for you,
then invoke this test before AM_INIT_AUTOMAKE and store the result in
$am_cv_prog_tar_ustar.
If you don't have a configure test, then you can still teach your users
to override the Automake default setting with
./configure am_cv_prog_tar_ustar=...
[...]
> The problem is, even with GNU TAR 1.22 the format it produces is not
> fully compatible with most other USTAR TAR implementations I have
> tried. These I found could not unpack the test TAR I produced with
> GNU TAR and the flag "--format=ustar"
>
> AIX 5.3
> HP-UX 11.11, 11.23, 11.31
> Solaris 8, 9, 10, 11
> SCO OpenServer 6
If it is possible to generate a broken/unextractable archive on one
system, then we could start thinking about adding a configure test to
automake/m4/tar.m4. But regardless of that, may I ask you to report
this issue to bug-tar at gnu.org if you haven't already?
Thanks,
Ralf
> I tried the small snippet below. Then distributed the resulting TAR to
> the AIX, HP-UX and other hosts, and tried unpack it there with the TAR
> that came with that operating system. If I packed with GNU TAR they
> could not unpack it correctly (only the top directory was created), if
> packed with Solaris TAR all could unpack it, even GNU TAR
>
> # I try be as nice as I can, 98 + 20 + 77 should be within USTAR
> # format limits even if one or two chars are wasted on '\0' or the
> # '/' delimiter
>
> a=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
> b=bbbbbbbbbbbbbbbbbbbb
>
> c=ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
>
> rm -fr $a
> mkdir -p $a/$b
> touch $a/$b/$c
>
> # GNU TAR
> gtar --format=ustar -cf foo.tar $a
> # Solaris TAR
> #/usr/bin/tar -cf foo.tar $a