Perl / perl5

🐪 The Perl programming language
https://dev.perl.org/perl5/
Other
1.85k stars 527 forks source link

Not OK: perl5.6.1 unable to unpack #3850

Closed p5pRT closed 20 years ago

p5pRT commented 23 years ago

Migrated from rt.perl.org#6800 (status was 'resolved')

Searchable as RT6800$

p5pRT commented 23 years ago

From mjtg@cam.ac.uk

I've tried getting the file from the announced URL

  http​://public.ActiveState.com/gsar/perl-5.6.1.tar.gz

and also from CPAN\, but in all cases I get

tar​: directory checksum error

on both Solaris2.6 and SunOS4.1.3 platforms.

Mike Guy

./myconfig output not attached for obvious reasons :-(

p5pRT commented 23 years ago

From @gsar

FWIW\, I never use the tar that comes with Solaris. It is seriously busted for archives that contain long path names ("long" here being about 100 characters or so).

Try GNU tar.

Sarathy gsar@​ActiveState.com

p5pRT commented 23 years ago

From @rspier

GS> Try GNU tar.

Here's a patch to $CPAN/src/README which mentions this\, in a somewhat vague and generic way.

Mike-   if GNU tar works for you\, let us know so we can close the bug.

-R

Inline Patch ```diff --- README.orig Tue Dec 8 05:23:53 1998 +++ README Tue Apr 10 16:08:22 2001 @@ -14,6 +14,11 @@ Source code for Perl modules. (See the modules directory at the top level of CPAN.) +NOTE! Some of the tar files in this directory have been created with +GNU tar. Some tar programs (notably the tar that comes with Solaris +and SunOS) may have problems reading these archives. GNU tar can be +downloaded from ftp://ftp.gnu.org/pub/gnu/tar + Main files: stable.tar.gz ```
p5pRT commented 23 years ago

From [Unknown Contact. See original ticket]

FWIW\, I never use the tar that comes with Solaris. It is seriously busted for archives that contain long path names ("long" here being about 100 characters or so).

Try GNU tar.

For paths longer than 100 characters\, there are two incompatible standards for tar archives​: GNU tar and the rest of the world. If you have such paths and built the archive with GNU tar\, you must have GNU tar to unpack it.

p5pRT commented 23 years ago

From @gsar

Do you know if GNU tar groks the non-GNU "standard"?

In this case\, there aren't any paths anywhere close to 100 characters in length. I just tried the bundled tar on the neighborhood Solaris 2.6 and Solaris 8\, and both of them seem to unpack perl-5.6.1.tar.gz just fine.

One can only hope there are Solaris patches that address the issue that MJTG is seeing\, whatever it is.

Sarathy gsar@​ActiveState.com

p5pRT commented 23 years ago

From @gsar

It seems at least one particular version of Solaris tar is definitely busted. This story corroborates what I've seen myself​:

  http​://groups.google.com/groups?q=tar​:+directory+checksum+error&start=10&hl=en&lr=&safe=off&rnum=17&seld=946358050&ic=1

Sarathy gsar@​ActiveState.com

p5pRT commented 23 years ago

From [Unknown Contact. See original ticket]

Do you know if GNU tar groks the non-GNU "standard"?

No\, it's been a couple of years since I paid close attention to tar archives.

In this case\, there aren't any paths anywhere close to 100 characters in length. I just tried the bundled tar on the neighborhood Solaris 2.6 and Solaris 8\, and both of them seem to unpack perl-5.6.1.tar.gz just fine.

Yes\, I've unpacked it myself with both Solaris' bundled tar and GNU tar without problems.

One can only hope there are Solaris patches that address the issue that MJTG is seeing\, whatever it is.

Yes.

p5pRT commented 23 years ago

From [Unknown Contact. See original ticket]

On a 2.6 box I tried this and had no problems at all with Suns tar. Have you patched the box at all?

e.

p5pRT commented 23 years ago

From @AlanBurlison

FWIW\, I never use the tar that comes with Solaris. It is seriously busted for archives that contain long path names ("long" here being about 100 characters or so).

Please define the exact bustage - I've tried to recreate your problem and can't. If you can show it\, I'll raise a bug on it.

Alan Burlison

p5pRT commented 23 years ago

From @AlanBurlison

Yup\, another case of the 'S' word swinging into action - Standards. Solaris needs to be compliant to the appropriate standards\, which unfortunately aren't the GNU ones. I suggest you raise a bug against GNU tar\, as it is obviously broken ;-)

Alan Burlison

p5pRT commented 23 years ago

From @AlanBurlison

In this case\, there aren't any paths anywhere close to 100 characters in length. I just tried the bundled tar on the neighborhood Solaris 2.6 and Solaris 8\, and both of them seem to unpack perl-5.6.1.tar.gz just fine.

Works just dandy for me too - I'be never had any problems unpacking perl source with the Solaris tar. Your archive is probably corrupt.

One can only hope there are Solaris patches that address the issue that MJTG is seeing\, whatever it is.

Unfortunately we don't produce patches for broken GNUware ;-)

Alan Burlison

p5pRT commented 23 years ago

From @AlanBurlison

FWIW\, I never use the tar that comes with Solaris. It is seriously busted for archives that contain long path names ("long" here being about 100 characters or so).

There are actually two overlapping issues here. The first is that there is a bug on 2.6 with pathname components of 100 characters. To fix this you need patch id 105792 (sparc) or 105793 (intel). You can get the patches from http​://sunsolve.sun.com. As a general tip\, installing the latest recommended patch cluster is the first thing I do to a machine after installing it.

The second issue is a standards issue​:

Files with names longer than 100 characters cannot be processed. this is not a bug; it is a design limitation. Changing the value to 255 (or 1024) would break conformance with IEEE Std 1003.1-1988 and make it so that all existing tar tapes would be unreadable by the new tar and all new tar tapes unreadable by old versions of tar.

tar on Solaris 2.7 onwards has the '-E' flag to get around this limitation - see the manpage for details.

Alan Burlison

p5pRT commented 23 years ago

From [Unknown Contact. See original ticket]

I tried that and it also failed.

But the trouble turned out to be a corrupt tar file. I've now refetched it and 5.6.1 now builds OK on all the platforms I've tried.

The corruption is a bit of a mystery. A corrupt file was my first thought when I first got the error (that's what the error message means\, after all). So I refetched the file several times\, on different platforms\, from different sources and using different tools. And got identical files each time. But when I try all these things today\, they all work fine.

But the bug report can be closed anyway.

Mike Guy

p5pRT commented 23 years ago

From @AlanBurlison

Do you go through a caching web proxy?

Alan Burlison