Lasse,

I should have included this in my previous message.  Here is what the
maintainer said about your proposed enhancement to "xz -lvv":

Probably, although parsing textual output like that is a horrible pain and
prone to all kinds of breakages when either upstream tweaks the output
slightly or when a user decides for some reason that they want program
output in a language other than English...

In other words, it's good as long as there is an easy and consistent way to
parse it.  Maybe "xz -lvv --robot", since the --robot option is meant to
make parsing easy.

Regards,

Tom

-----Original Message-----
From: owner-xz-de...@tukaani.org [mailto:owner-xz-de...@tukaani.org] On
Behalf Of Lasse Collin
Sent: Sunday, November 06, 2011 1:42 PM
To: xz-devel@tukaani.org
Subject: Re: [xz-devel] Is the xz format stable?

On 2011-11-06 Tom Trauth wrote:
> This is what the maintainer wants, in his own words:
> We need a way to verify that a specific  named version of xz, which
> might be older than the version someone has  installed, will be able
> to uncompress a particular file.

When compressing with a future version of xz, don't enable incompatible
features. If you already have a .xz file and want to find out if an old
xz will support it too, there's no simple way right now, but I think I
will make xz -lvv show the minimum required XZ Utils version.

> His main fear is that someone will create an xz file with a version
> of xz which is newer than the version of xz that his project
> supports, and then his project will not be able to read that file.

Such a situation will probably be possible in the future if someone
enables an incompatible feature when compressing.

A comparable situation is technically possible even now because it is
possible to have a .xz file that requires 4 GiB of memory to
decompress, which is too much for many systems. No one creates such
files in practice though. :-)

If one wants to be extra safe, one could define what features and
memory usage are allowed to guarantee compatibility. This is already
required when creating files for XZ Embedded, which doesn't support
all .xz features. XZ Embedded is used e.g. in Linux as an option to
compress the kernel and initramfs and for Squashfs images.

> However, your last paragraph implies xz, including future versions,
> will create a file that is unreadable by current versions of xz
> unless special parameters are used, because to do otherwise would
> anger a lot of people.  Is that true?  If so, I think it will help
> allay his fears.

Assuming that you meant "will not create", yes, it is true with one
possible exception: If a new very nice but incompatible feature is added
in 2012, I might consider making that a default in 2018-2020. At point
the old versions should have pretty much vanished. Even then it will
be possible to create files that are compatible with XZ Utils 5.0.0 by
using extra options.

-- 
Lasse Collin  |  IRC: Larhzu @ IRCnet & Freenode




Reply via email to