On 2025-04-14 Antonio Diaz Diaz wrote:
> For example, the "sync flush marker extension" has never been part of
> the lzip format specification, and has never been produced by any
> lzip compressor because it does not make sense in compressed files. I
> added undocumented support for it to lzip just as a way to test lzlib
> interactive data streams, and I have removed the support in lzip
> 1.25. "sync flush" is a lzlib-only feature that does not belong in a
> lzip (de)compressor.

I had thought that the sync flush marker was an extension that wasn't
in the original version 1 format, and that it was added without
changing the version number. Sounds like that I had misunderstood it,
I'm sorry. I see it's documented in lzlib to not be valid outside
lzlib-to-lzlib usage. I will change the xz man page.

On the other hand, I suppose the equivalent note in the liblzma
documentation should be preserved or updated to mention that it's not
fully lzlib compatible. See:

    
https://git.tukaani.org/?p=xz.git;a=blob;f=src/liblzma/api/lzma/container.h;h=dbd414cbf8c0ab1955ee32393f4c6f7da6869fed;hb=HEAD#l843

In rare cases, sync flush can make sense in a command line tool. xz has
--flush-timeout=TIMEOUT option because one user has such a use case.

> Similarly, lzip format version 0 was incomplete and inadequate for
> parallel decompression. As you note in the man page, decompression
> support for version 0 was removed years ago, and I should have
> removed it even earlier.

Version 1 format is definitely better, but I don't see why version 0
decoding support had to be removed. The format was produced by a few
stable lzip releases. Importantly, version 0 didn't have any horrible
defect like data corruption risk. It would have been better to avoid
the version 0 format completely, but mistakes happen to everyone, and
we have to live with them.

> I consider all versions of lzip prior to 1.4 obsolete and unsupported.

Of course. I consider many old xz releases unsupported too. Still, files
created by old *stable* xz releases, at least as long as there wasn't
any horrible bug in those releases, need to be decompressible by later
xz releases.

> If anybody has the need to decompress a version 0 file, which I very
> much doubt, he/she may use lzip 1.17 to decompress it, or may ask me
> for help. I'll gladly convert a version 0 file to version 1 with my
> text editor.

As one more alternative to installing an old lzip version or sending a
(possibly private) file to you, they can simply use the latest xz.
Support for old format variants won't be intentionally removed from xz.

Even some software was released in the version 0 format:

    https://lists.gnu.org/archive/html/info-gnu/2008-11/msg00009.html

I have ddrescue-1.9.tar.lz and the matching .sig file from you. The
.tar.lz can be found from some mirrors still.

> Therefore, if you wish to simplify the xz man page, I think there is
> no need to mention the sync flush marker nor the format version 0 of
> lzip.

The sync flush marker indeed seems such that it should be omitted from
the man page. Thanks!

Information about version 0 support I still find useful to keep. People
have archives of old files. In the long term they cannot rely on us
being around to help them. It's good if documentation gives a hint why
some old file works with one tool but not with another.

-- 
Lasse Collin

Reply via email to