On 2011-01-07, Lin Sun wrote:

> Do you know if this sentence is still valid -

> The tar package does not support the full POSIX tar standard nor more
> modern GNU extension of said standard

Absoluetly, yes.

> since you think compress project should support up to 8GB?  I am
> hoping it is no longer valid.  I don't really understand what it
> means. :-(

Unfortunately there is not one *tar* format.

The initial format used (ustar) before it was ever standardized by POSIX
is fully(?) supported.  This format lacks quite a few important features
like support for file names longer than 100 characters, larger files and
more - so dialects emerged.  The most popular variants stemmed from GNU
tar and PAX.  Each of the dialects used the extension mechanism built
into to the original format but did so in different ways.

Commons Compress tar code detects some of the extensions when reading
archives and can write archives using the GNU extension for longer file
names.  It does not support the full range of extensions, neither when
reading nor writing.

POSIX standardization came after the dialects emerged.  It addressed
some of the original shortcommings, in part by using yet a different set
of extensions.

More recent versions of GNU tar (those less than four years old or so)
support the POSIX standard and will use it when creating new archives.
The "longfile" format used by Commons Compress is called "oldgnu" by GNU
tar and deprecated there.

> Also, is true streaming supported?

I'm not sure I understand the question.  Tar archives consist of blocks
so sometimes it will be necessary to read more data than your read
requires (to read a full block) or writes will be delayed until a block
is full (or the archive is closed).  In general it should be possible to
read/write archives in a streaming manner, though.

Stefan

---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscr...@commons.apache.org
For additional commands, e-mail: user-h...@commons.apache.org

Reply via email to