[Python-Dev] Re: Problem with 2.3b2 tarfile?

François Pinard pinard@iro.umontreal.ca
30 Jun 2003 17:46:31 -0400


[Behrang Dadsetan]

> As a very wild guess I would say any platform where python could compile,
> GNU tar will compile as well

A last message about this. :-)

The ideal is to create POSIX archives.  GNU `tar' is reasonably conforming
when unpacking an archive, is often conforming when creating a new one, but
not necessarily.  When it errs, it errs _big_.  Sun `tar' attempts to be
POSIX conforming, and may be more POSIX conforming on the average of all
aspects.  However, whenever they goof, they usually try to stay compatible
with their previous mistakes for the sake of their own users.

The most known example is how to compute the header checksum (there are
other examples and issues, I'm just taking the most known to illustrate how
the history goes).  When Sun recompiled Unix `tar' from sources, they missed
that their machines were not signing chars the same way, but of course, they
were able to read the archives they were creating.  Later, `HP-UX' purposely
made the same error "for being compatible with Sun".  POSIX defined the
checksum according to the original and documented design, making Sun and
HP-UX officially wrong.  On reading an archive, GNU `tar' computes two
checksums, one the POSIX way, the other the Sun way, and ensures (at least)
one of them matches.  On creation, GNU `tar' uses the POSIX checksum.  The
discrepancy only shows if there is some character with the high bit set.
Sun might be computing two checksum as well, nowadays.

Declaring that Solaris is right, or GNU `tar' is right, is not the best way
to ponder all this.  The end line is they are all wrong, even GNU `tar' has
its good share of horrors.  A reasonable way to go is that we all attempt to
follow POSIX standards, whether we like them or not, however strange they
may be.  In this way, there is some chance that we converge, instead of
fighting like cats in the backyard.  Unless you take the bet that GNU `tar'
will squash them all?  It will happen if Linux takes over the world! :-)

-- 
François Pinard   http://www.iro.umontreal.ca/~pinard