[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#687220: marked as done (unblock: xz-utils/5.1.1alpha+20120614-2)



Your message dated Mon, 19 Nov 2012 20:03:56 +0100
with message-id <20121119190356.GW17465@radis.cristau.org>
and subject line Re: Bug#687220: unblock: xz-utils/5.1.1alpha+20120614-2
has caused the Debian Bug report #687220,
regarding unblock: xz-utils/5.1.1alpha+20120614-2
to be marked as done.

This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.

(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact owner@bugs.debian.org
immediately.)


-- 
687220: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=687220
Debian Bug Tracking System
Contact owner@bugs.debian.org with problems
--- Begin Message ---
Package: release.debian.org
User: release.debian.org@packages.debian.org
Usertags: unblock
Tags: wheezy

Hi,

Unfortunately there has not been a stable release on the 5.1.y branch
of XZ Utils.  This update is an attempt to make the best of what we
have, by:

 - in existing features, matching behavior of the upstream "master"
   branch as closely as possible

 - not adding any new features

 - documenting the relationship to upstream (patches applied
   and patches not applied) in README.Debian

I've been using these changes for a couple of months now.  Not
uploaded yet, so I can make small tweaks if you have good ideas for
some.  Diffstat with patches applied, excluding debian/patches:

 debian/changelog                       |   15 ++++++++++
 debian/xz-utils.README.Debian          |   49 ++++++++++++++++++++++++++++++--
 src/liblzma/lzma/lzma_decoder.c        |    8 ++++-
 src/liblzma/rangecoder/range_decoder.h |   12 ++++++--
 src/xz/list.c                          |    6 ++--
 src/xz/xz.1                            |   18 +++++++++++-
 6 files changed, 96 insertions(+), 12 deletions(-)

debdiff attached.  Thoughts?

Thanks for your hard work,
Jonathan
diff -Nru xz-utils-5.1.1alpha+20120614/debian/changelog xz-utils-5.1.1alpha+20120614/debian/changelog
--- xz-utils-5.1.1alpha+20120614/debian/changelog	2012-06-16 13:03:18.000000000 -0700
+++ xz-utils-5.1.1alpha+20120614/debian/changelog	2012-09-10 14:35:33.000000000 -0700
@@ -1,3 +1,18 @@
+xz-utils (5.1.1alpha+20120614-2) unstable; urgency=low
+
+  * Apply fixes from 5.1.2alpha.  Closes: #685220.
+    - liblzma: report a LZMA_DATA_ERROR when range encoded data starts
+      with a nonzero byte.  This is a sanity check to catch malformed
+      files that no known encoders produce.
+    - xz -v -v --list: Support for decompressing blocks with
+      zero-length uncompressed data was added in xz 5.0.2, not 5.0.3.
+    - xz.1: "xz --robot -v -v --list" gained a "minimum xz version to
+      decompress" field.
+  * xz-utils/README.Debian: Document differences from upstream.
+    Closes: #685217.
+
+ -- Jonathan Nieder <jrnieder@gmail.com>  Mon, 10 Sep 2012 14:35:33 -0700
+
 xz-utils (5.1.1alpha+20120614-1) unstable; urgency=low
 
   * New snapshot, taken from upstream commit f1675f76.
diff -Nru xz-utils-5.1.1alpha+20120614/debian/patches/decoder-check-first-0x00 xz-utils-5.1.1alpha+20120614/debian/patches/decoder-check-first-0x00
--- xz-utils-5.1.1alpha+20120614/debian/patches/decoder-check-first-0x00	1969-12-31 16:00:00.000000000 -0800
+++ xz-utils-5.1.1alpha+20120614/debian/patches/decoder-check-first-0x00	2012-09-10 14:10:45.000000000 -0700
@@ -0,0 +1,69 @@
+From: Lasse Collin <lasse.collin@tukaani.org>
+Date: Thu, 28 Jun 2012 10:47:49 +0300
+Subject: liblzma: Check that the first byte of range encoded data is 0x00.
+
+It is just to be more pedantic and thus perhaps catch broken
+files slightly earlier.
+
+Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
+---
+ src/liblzma/lzma/lzma_decoder.c        |    8 ++++++--
+ src/liblzma/rangecoder/range_decoder.h |   12 +++++++++---
+ 2 files changed, 15 insertions(+), 5 deletions(-)
+
+diff --git a/src/liblzma/lzma/lzma_decoder.c b/src/liblzma/lzma/lzma_decoder.c
+index 5abbc0d..b8f9317 100644
+--- a/src/liblzma/lzma/lzma_decoder.c
++++ b/src/liblzma/lzma/lzma_decoder.c
+@@ -289,8 +289,12 @@ lzma_decode(lzma_coder *restrict coder, lzma_dict *restrict dictptr,
+ 	// Initialization //
+ 	////////////////////
+ 
+-	if (!rc_read_init(&coder->rc, in, in_pos, in_size))
+-		return LZMA_OK;
++	{
++		const lzma_ret ret = rc_read_init(
++				&coder->rc, in, in_pos, in_size);
++		if (ret != LZMA_STREAM_END)
++			return ret;
++	}
+ 
+ 	///////////////
+ 	// Variables //
+diff --git a/src/liblzma/rangecoder/range_decoder.h b/src/liblzma/rangecoder/range_decoder.h
+index fb96180..e0b051f 100644
+--- a/src/liblzma/rangecoder/range_decoder.h
++++ b/src/liblzma/rangecoder/range_decoder.h
+@@ -25,20 +25,26 @@ typedef struct {
+ 
+ 
+ /// Reads the first five bytes to initialize the range decoder.
+-static inline bool
++static inline lzma_ret
+ rc_read_init(lzma_range_decoder *rc, const uint8_t *restrict in,
+ 		size_t *restrict in_pos, size_t in_size)
+ {
+ 	while (rc->init_bytes_left > 0) {
+ 		if (*in_pos == in_size)
+-			return false;
++			return LZMA_OK;
++
++		// The first byte is always 0x00. It could have been omitted
++		// in LZMA2 but it wasn't, so one byte is wasted in every
++		// LZMA2 chunk.
++		if (rc->init_bytes_left == 5 && in[*in_pos] != 0x00)
++			return LZMA_DATA_ERROR;
+ 
+ 		rc->code = (rc->code << 8) | in[*in_pos];
+ 		++*in_pos;
+ 		--rc->init_bytes_left;
+ 	}
+ 
+-	return true;
++	return LZMA_STREAM_END;
+ }
+ 
+ 
+-- 
+1.7.9.6 (Apple Git-31.1)
+
diff -Nru xz-utils-5.1.1alpha+20120614/debian/patches/man-date xz-utils-5.1.1alpha+20120614/debian/patches/man-date
--- xz-utils-5.1.1alpha+20120614/debian/patches/man-date	1969-12-31 16:00:00.000000000 -0800
+++ xz-utils-5.1.1alpha+20120614/debian/patches/man-date	2012-09-10 14:10:45.000000000 -0700
@@ -0,0 +1,25 @@
+From: Lasse Collin <lasse.collin@tukaani.org>
+Date: Fri, 22 Jun 2012 14:34:03 +0300
+Subject: xz: Update man page date to match the latest update.
+
+Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
+---
+ src/xz/xz.1 |    2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/xz/xz.1 b/src/xz/xz.1
+index 3ff89f0..cb8cd1e 100644
+--- a/src/xz/xz.1
++++ b/src/xz/xz.1
+@@ -5,7 +5,7 @@
+ .\" This file has been put into the public domain.
+ .\" You can do whatever you want with this file.
+ .\"
+-.TH XZ 1 "2011-04-11" "Tukaani" "XZ Utils"
++.TH XZ 1 "2012-05-27" "Tukaani" "XZ Utils"
+ .
+ .SH NAME
+ xz, unxz, xzcat, lzma, unlzma, lzcat \- Compress or decompress .xz and .lzma files
+-- 
+1.7.9.6 (Apple Git-31.1)
+
diff -Nru xz-utils-5.1.1alpha+20120614/debian/patches/man-xz-lvv-minver xz-utils-5.1.1alpha+20120614/debian/patches/man-xz-lvv-minver
--- xz-utils-5.1.1alpha+20120614/debian/patches/man-xz-lvv-minver	1969-12-31 16:00:00.000000000 -0800
+++ xz-utils-5.1.1alpha+20120614/debian/patches/man-xz-lvv-minver	2012-09-10 14:10:45.000000000 -0700
@@ -0,0 +1,55 @@
+From: Lasse Collin <lasse.collin@tukaani.org>
+Date: Sun, 1 Jul 2012 18:44:33 +0300
+Subject: xz: Update the man page about the new field in --robot -lvv.
+
+Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
+---
+ src/xz/xz.1 |   18 +++++++++++++++++-
+ 1 file changed, 17 insertions(+), 1 deletion(-)
+
+diff --git a/src/xz/xz.1 b/src/xz/xz.1
+index cb8cd1e..4da09ba 100644
+--- a/src/xz/xz.1
++++ b/src/xz/xz.1
+@@ -5,7 +5,7 @@
+ .\" This file has been put into the public domain.
+ .\" You can do whatever you want with this file.
+ .\"
+-.TH XZ 1 "2012-05-27" "Tukaani" "XZ Utils"
++.TH XZ 1 "2012-07-01" "Tukaani" "XZ Utils"
+ .
+ .SH NAME
+ xz, unxz, xzcat, lzma, unlzma, lzcat \- Compress or decompress .xz and .lzma files
+@@ -1889,6 +1889,14 @@ or
+ .B no
+ indicating if all block headers have both compressed size and
+ uncompressed size stored in them
++.PP
++.I Since
++.B xz
++.I 5.1.2alpha:
++.IP 4. 4
++Minimum
++.B xz
++version required to decompress the file
+ .RE
+ .PD
+ .PP
+@@ -1939,6 +1947,14 @@ or
+ .B no
+ indicating if all block headers have both compressed size and
+ uncompressed size stored in them
++.PP
++.I Since
++.B xz
++.I 5.1.2alpha:
++.IP 12. 4
++Minimum
++.B xz
++version required to decompress the file
+ .RE
+ .PD
+ .PP
+-- 
+1.7.9.6 (Apple Git-31.1)
+
diff -Nru xz-utils-5.1.1alpha+20120614/debian/patches/series xz-utils-5.1.1alpha+20120614/debian/patches/series
--- xz-utils-5.1.1alpha+20120614/debian/patches/series	2012-06-16 04:30:37.000000000 -0700
+++ xz-utils-5.1.1alpha+20120614/debian/patches/series	2012-09-10 14:10:45.000000000 -0700
@@ -2,3 +2,7 @@
 abi-version-script
 abi-liblzma2-compat
 configure-liblzma2-compat
+man-date
+man-xz-lvv-minver
+xz-lvv-empty-block-minver
+decoder-check-first-0x00
diff -Nru xz-utils-5.1.1alpha+20120614/debian/patches/xz-lvv-empty-block-minver xz-utils-5.1.1alpha+20120614/debian/patches/xz-lvv-empty-block-minver
--- xz-utils-5.1.1alpha+20120614/debian/patches/xz-lvv-empty-block-minver	1969-12-31 16:00:00.000000000 -0800
+++ xz-utils-5.1.1alpha+20120614/debian/patches/xz-lvv-empty-block-minver	2012-09-10 14:10:45.000000000 -0700
@@ -0,0 +1,38 @@
+From: Lasse Collin <lasse.collin@tukaani.org>
+Date: Wed, 4 Jul 2012 19:58:23 +0300
+Subject: xz: Fix the version number printed by xz -lvv.
+
+The decoder bug was fixed in 5.0.2 instead of 5.0.3.
+
+Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
+---
+ src/xz/list.c |    6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/src/xz/list.c b/src/xz/list.c
+index e71fbe2..a9e0adb 100644
+--- a/src/xz/list.c
++++ b/src/xz/list.c
+@@ -482,7 +482,7 @@ parse_block_header(file_pair *pair, const lzma_index_iter *iter,
+ 	// Determine the minimum XZ Utils version that supports this Block.
+ 	//
+ 	// Currently the only thing that 5.0.0 doesn't support is empty
+-	// LZMA2 Block. This bug was fixed in 5.0.3.
++	// LZMA2 Block. This decoder bug was fixed in 5.0.2.
+ 	{
+ 		size_t i = 0;
+ 		while (filters[i + 1].id != LZMA_VLI_UNKNOWN)
+@@ -490,8 +490,8 @@ parse_block_header(file_pair *pair, const lzma_index_iter *iter,
+ 
+ 		if (filters[i].id == LZMA_FILTER_LZMA2
+ 				&& iter->block.uncompressed_size == 0
+-				&& xfi->min_version < 50000032U)
+-			xfi->min_version = 50000032U;
++				&& xfi->min_version < 50000022U)
++			xfi->min_version = 50000022U;
+ 	}
+ 
+ 	// Convert the filter chain to human readable form.
+-- 
+1.7.9.6 (Apple Git-31.1)
+
diff -Nru xz-utils-5.1.1alpha+20120614/debian/xz-utils.README.Debian xz-utils-5.1.1alpha+20120614/debian/xz-utils.README.Debian
--- xz-utils-5.1.1alpha+20120614/debian/xz-utils.README.Debian	2012-06-16 03:58:14.000000000 -0700
+++ xz-utils-5.1.1alpha+20120614/debian/xz-utils.README.Debian	2012-09-10 14:35:28.000000000 -0700
@@ -3,8 +3,9 @@
 
 Contents:
  1. History
- 2. LZMA Utils compatibility
- 3. Configuration
+ 2. Differences from standard XZ Utils
+ 3. LZMA Utils compatibility
+ 4. Configuration
 
 History
 -------
@@ -14,6 +15,48 @@
 of magic number, but it gets enough use to still need to be supported.
 See /usr/share/doc/xz-utils/history.txt.gz for the full story.
 
+Differences from standard XZ Utils
+----------------------------------
+
+XZ Utils 5.1.y has some experimental features which are disabled in
+Debian to allow interfaces to evolve.  Debian liblzma is also modified
+to avoid breakage when the same process loads liblzma2 from Debian 6.0
+(squeeze) and liblzma5.
+
+abi-threaded-encoder
+  Disable threaded compression in liblzma and xz.
+
+abi-version-script
+  liblzma: Do not pretend to satisfy dependencies on XZ_5.1.1alpha.
+
+abi-liblzma2-compat, configure-liblzma2-compat
+  Do not check reserved fields past the historical end of the
+  lzma_stream structure if liblzma.so.2 is loaded in the same
+  process image.  Likewise when linked statically.
+  (See bug #649522.)
+
+man-date, man-xz-lvv-minver (from upstream)
+  Document the "Minimum version required to decompress" field of
+  "xz --robot -v -v --list" output.
+
+xz-lvv-empty-block-minver (from upstream)
+  Fix the version number printed by "xz -lvv" for files with Blocks
+  of zero uncompressed_size: the decoder bug preventing reading such
+  files was fixed in xz 5.0.2, not 5.0.3.
+
+decoder-check-first-0x00 (from upstream)
+  Check that the first byte of range encoded data is zero to catch
+  broken files sooner.
+
+Changes in 5.1.2alpha not applied:
+
+  Docs: Language fix to 01_compress_easy.c
+  xz: Add incomplete support for --block-list
+  INSTALL: Document --enable-symbol-versions
+  configure: Add a comment about *-linux tuples for clarity
+  TODO: Warn that threads and fork() do not mix well
+  Bump the version number and update NEWS for 5.1.2alpha
+
 LZMA Utils compatibility
 ------------------------
 
@@ -44,4 +87,4 @@
 
 See the "Memory usage" section of the xz(1) manual page for details.
 
- -- Jonathan Nieder <jrnieder@gmail.com>  Fri, 18 May 2012 01:14:16 -0500
+ -- Jonathan Nieder <jrnieder@gmail.com>  Mon, 10 Sep 2012 14:35:27 -0700

--- End Message ---
--- Begin Message ---
On Sun, Nov 18, 2012 at 17:45:19 -0800, Jonathan Nieder wrote:

> Uploaded.  Thanks again for the review and followup.
> 
Unblocked.

Cheers,
Julien

Attachment: signature.asc
Description: Digital signature


--- End Message ---

Reply to: