On Tue, 02 Sep 2008, David Cantrell wrote:
> $ tar tzvf perl-ldap-0.37.tar.gz
> ?rw-rw-rw- root/root        52 2008-08-28 12:52:15 pax_global_header unknown 
> fil
> e type `g'
> drwxrwxr-x root/root         0 2008-08-28 12:52:15 perl-ldap-0.37/
> -rw-rw-r-- root/root        32 2008-08-28 12:52:15 perl-ldap-0.37/.gitignore
> -rw-rw-r-- root/root      1349 2008-08-28 12:52:15 perl-ldap-0.37/CREDITS
> ...
> 
> (exactly what it says for the first file varies from one version of tar
> to another, and even from one version of GNU tar to another)

It is not actually a file, but an extended header record containing
a comment (a GIT commit id in this case).  You need GNU tar 1.14 to
handle the extended header correctly.  Earlier versions will display
a warning and extract the comment as a file.

> That first file is the problem.  Because the distribution doesn't untar
> cleanly into a subdirectory, CPAN.pm creates a subdir for you and untars
> into that.  It then goes into that subdir and tries to do the usual
> Makefile.PL/make/make test/make install dance.  Seeing that there's no
> Makefile.PL in that directory, it creates one for you, and then
> everything goes pear-shaped because that Makefile.PL doesn't list any
> dependencies.

Given that GIT is becoming more popular it would be good to teach
CPAN.pm to deal with these kind of tarballs even when they are
being processed by older tar versions.

Cheers,
-Jan


Reply via email to