Merge branch 'jn/5.0.0' into maint

Two important recent fixes.

* jn/5.0.0:
  Docs: Fix a bug in xz_pipe_decomp.c example program.
  liblzma: Fix possibility of incorrect LZMA_BUF_ERROR.
diff --git a/debian/.gitignore b/debian/.gitignore
new file mode 100644
index 0000000..a5ad402
--- /dev/null
+++ b/debian/.gitignore
@@ -0,0 +1,21 @@
+/changelog.upstream
+/generated-m4.list
+/generated-po.list
+/generated-build-aux.list
+
+*.debhelper.log
+*.debhelper
+
+/normal-build/
+/xzdec-build/
+/tmp/
+
+/liblzma2/
+/xz-utils/
+/xz-lzma/
+/xzdec/
+/liblzma-dev/
+/liblzma-doc/
+
+/files
+*.substvars
diff --git a/debian/README.source b/debian/README.source
new file mode 100644
index 0000000..f17a7de
--- /dev/null
+++ b/debian/README.source
@@ -0,0 +1,16 @@
+XZ Utils sources for Debian
+---------------------------
+
+This Debian package is developed in a public Git repository (see the Vcs-Git
+field of debian/control) based on XZ Utils’s repository on tukaani.org.
+To build from a git checkout:
+
+	debian/rules get-orig-source
+	mv xz-utils_*.tar.gz ..
+	debian/autogen.sh
+	debuild
+
+To build a released version, no special instructions apply.
+“dpkg-buildpackage” and “apt-get -b xz-utils” should work as usual.
+
+ -- Jonathan Nieder <jrnieder@gmail.com>  Mon, 08 Feb 2010 17:30:00 -0600
diff --git a/debian/autogen.sh b/debian/autogen.sh
new file mode 100755
index 0000000..6fdd6bf
--- /dev/null
+++ b/debian/autogen.sh
@@ -0,0 +1,34 @@
+#!/bin/sh
+# Generate debian/changelog.upstream, debian/generated-m4.list,
+# and debian/generated-po.list.
+#
+# Uses debian/changelog, the git revision log, and .gitignore
+# files from the current checkout.
+
+set -e
+
+changelog_needs_update() {
+	test -e debian/changelog.upstream &&
+	read line < debian/changelog.upstream ||
+	return 0
+
+	ver=${line#Version } &&
+	ver=${ver%;*} &&
+	test "$ver" != "" ||
+	return 0
+
+	read line < debian/changelog &&
+	rhs=${line#*(} &&
+	deb_ver=${rhs%)*} &&
+	new_ver=${deb_ver%-*} ||
+	return 0
+
+	test "$ver" != "$new_ver"
+}
+
+cp -f m4/.gitignore debian/generated-m4.list
+cp -f po/.gitignore debian/generated-po.list
+sed -n 's,^build-aux/,, p' .gitignore > debian/generated-build-aux.list
+cp -f doc/examples/xz_pipe_decomp.c debian/examples/xz_pipe_decomp.c
+cp -f doc/examples/xz_pipe_comp.c debian/examples/xz_pipe_comp.c
+! changelog_needs_update || exec sh debian/changelog.upstream.sh
diff --git a/debian/changelog b/debian/changelog
new file mode 100644
index 0000000..fa05402
--- /dev/null
+++ b/debian/changelog
@@ -0,0 +1,490 @@
+xz-utils (5.0.0-2.1) stable; urgency=low
+
+  * Fixes from upstream:
+    * liblzma:
+      - lzma_easy_buffer_encode() and lzma_stream_buffer_encode()
+        avoid writing Blocks with empty compressed data that xz and
+        liblzma versions before 5.0.2 cannot read.
+      - The LZMA2 decoder skips Blocks with empty compressed data
+        instead of rejecting them.
+      - Validates encoder arguments better.  It is harder to segfault
+        or create a corrupt XZ file instead of receiving an error
+        when calling these functions:
+        - lzma_stream_buffer_encode() and lzma_block_buffer_encode()
+          reject unsupported integrity checks;
+        - lzma_block_encoder() checks for block == NULL.
+      - bcj: Fix possibility of incorrect LZMA_BUF_ERROR (reported in
+        XZ Embedded as Fedora bug 735408).
+      - Plugs a memory leak in lzma_stream_encoder().
+      - lzma_index_init() returns NULL instead of segfaulting on
+        allocation failure.
+    * docs/examples/xz_pipe_decompress.c checks that the last
+      lzma_code() call returned LZMA_STREAM_END, since otherwise the
+      compressed file ended without a proper footer.
+    * "xz -v -v --list" does not free() filter options unless the
+      filter options array has been initialized.  This prevents
+      reading and free()ing pointers from past the end of an on-stack
+      array when one of the listed files has an unmeaningful Block
+      header size.
+    * xzegrep and xzfgrep perform extended regex and fixed-string
+      matches, respectively.  (The previous behavior was to always
+      use basic regexes.)
+    * The exit status from “xzdiff foo.xz bar.xz” reflects whether
+      files differ.  Thanks to Peter Pallinger.  Closes: #635501.
+    * xzgrep does not fail just because the decompressor has died
+      with SIGPIPE due to some unconsumed output.  This makes the
+      exit status from commands such as "xzgrep -q" more predictable.
+    * The Czech “xz --help” output uses a more correct term for files
+      with holes.  Thanks to Petr Hubený.  Closes: #605762.
+    * The Italian diagnostic for an invalid --format argument lost an
+      extra 'N'.
+  * debian/rules: "chmod +x tests/test_scripts.sh" for new xzdiff
+    tests.
+  * debian/symbols: Bump the minimal versions for LZMA2 encoder
+    functions that reject more bad arguments and skip empty blocks.
+  * liblzma-dev: Install an appropriate library for static linking
+    instead of the decompression-only version used to build xzdec.
+    Thanks to Anton Tolchanov.  Closes: #673001.
+
+ -- Jonathan Nieder <jrnieder@gmail.com>  Thu, 24 May 2012 13:23:33 -0500
+
+xz-utils (5.0.0-2) unstable; urgency=low
+
+  * Upload to unstable.
+  * liblzma2, liblzma-dev, xz-lzma: Install release notes.
+  * debian/symbols: Bump the minimal versions for lzma_index_encoder,
+    lzma_index_decoder to the version in which they gained LZMA_FINISH
+    support.
+  * xz-utils/README.Debian: Document differences from upstream ABI.
+  * debian/changelog.upstream.sh: Avoid empty changelog entries when
+    multiple Debian revisions match an upstream tag.
+
+ -- Jonathan Nieder <jrnieder@gmail.com>  Thu, 11 Nov 2010 13:45:20 -0600
+
+xz-utils (5.0.0-1) experimental; urgency=low
+
+  * Upload to experimental.
+  * New stable upstream release.  Closes: #592298.
+    - xz avoids SA_RESTART.  This should not have a visible effect
+      because xz already blocked signals during operations that
+      would be difficult to resume after interruption.
+    - liblzma: The coders returned by lzma_index_encoder() and
+      lzma_index_decoder() support an LZMA_FINISH action, with
+      identical semantics to LZMA_RUN.
+    - The printable (PDF and PS) versions of the manual are easier
+      to read.
+    - Many documentation and build system cleanups.
+  * liblzma: Back out upstream ABI tweaks.
+  * liblzma/README.Debian: Document ABI differences from upstream.
+  * Copy sample code not included in the release tarball from
+    the development upstream repository to debian/examples.
+  * debian/rules clean: Remove some files not included in the
+    release tarball.
+  * copyright: List new INSTALL.generic license.
+  * debian/rules clean: Take new build-aux scripts into account.
+  * debian/rules:  Adapt for upstream build system changes.
+    Closes: #540443.
+  * xz-utils, xzdec: Install release notes.
+
+ -- Jonathan Nieder <jrnieder@gmail.com>  Mon, 25 Oct 2010 05:45:18 -0500
+
+xz-utils (4.999.9beta+20100927-1) experimental; urgency=low
+
+  * New snapshot, taken from upstream commit cec0ddc.
+    - liblzma: The meaning of --extreme has been tweaked to address
+      cases in which it made the compression ratio worse.  Some files
+      might benefit slightly less from --extreme.
+    - xz: Table columns are not misaligned any more in messages with
+      multi-byte characters (e.g., file sizes with LANG=fi_FI.UTF-8).
+    - xz: New German and Italian translations.
+    - Various documentation, message, and translation updates.
+  * Update copyright file.
+  * debian/rules get-orig-source: Update upstream Git URL.
+  * xz-utils/README.Debian: Advertise XZ_DEFAULTS.
+
+ -- Jonathan Nieder <jrnieder@gmail.com>  Mon, 27 Sep 2010 16:22:22 -0500
+
+xz-utils (4.999.9beta+20100903-1) experimental; urgency=low
+
+  * New snapshot, taken from upstream commit 373ee26.
+    - liblzma: The settings for compression levels 0 through 5
+      (used by xz -0/.../-5) have been tweaked.  This affects the
+      speed, compression ratio, and memory usage at compression and
+      decompression time.
+    - Does not search so hard for a match when a low "nice match
+      length" setting is specified without a depth.
+    - xz: The -1/.../-9 preset options override any previously
+      specified filters, rather than vice versa.  To mix presets
+      with filter options, use the --lzma2=preset=n option.
+    - xz: Warns about --memlimit-compress settings that result in
+      compression settings changing even if no explicit -1/.../-9,
+      --lzma1, or --lzma2 option was used.
+    - "xz -v -v --compress" now prints an estimate of the memory
+      required to decompress a file.
+  * debian/copyright: Update upstream Git URL.
+  * debian/changelog.upstream.sh: Permit terser changelog lines.
+  * Standards-Version: 3.9.1 (checked).
+
+ -- Jonathan Nieder <jrnieder@gmail.com>  Fri, 03 Sep 2010 17:05:20 -0500
+
+xz-utils (4.999.9beta+20100810-1) unstable; urgency=low
+
+  * New upstream snapshot, taken from upstream commit d5653ba8a.
+    - xz: The memory usage limiter is now disabled by default.
+    - xz: Support for an XZ_DEFAULTS environment variable was added.
+      It contains user-specific default settings, such as memory usage
+      limits, and can be overridden by the command line and XZ_OPT.
+    - xz: The new --memlimit-compress and --memlimit-decompress
+      options allow the memory usage limit to be set separately for
+      compression and decompression.  A new --memlimit alias has been
+      added for the existing --memory option.
+    - xz: The --info-memory option (with or without --robot) now prints
+      how much RAM is installed in addition to the compression and
+      decompression memory limits.
+  * liblzma-doc: Simplify package description.
+  * debian/control: Build-Depends: autopoint | gettext (<< 0.18-1),
+    autopoint | cvs instead of autopoint, to help with backporting.
+    Thanks to Thorsten Glaser for a report.
+
+ -- Jonathan Nieder <jrnieder@gmail.com>  Tue, 10 Aug 2010 20:27:14 -0500
+
+xz-utils (4.999.9beta+20100713-1) unstable; urgency=low
+
+  [ Thorsten Glaser ]
+  * Explicitly depend on autoconf (>= 2.64~) due to AC_PREREQ,
+    discovered during backporting.
+
+  [ Jonathan Nieder ]
+  * Upload to unstable.
+  * New upstream snapshot, taken from upstream commit a540198f.
+    - xz: The new --no-adjust option can be used to error out if there
+      is insufficient memory for the chosen compression level.
+  * liblzma-dev: Install examples to /usr/share/doc/liblzma-dev.
+  * Update copyright file.
+
+  * Drop unpack-time conflicts in favor of configuration-time
+    conflicts (Replaces + Breaks):
+     - xz-utils: against old xz-lzma (for lzmainfo).
+     - xzdec: against old xz-lzma (for lzmadec).
+     - xz-lzma: against lzip 1.7 (for lzdiff and lzgrep).
+  * Standards-Version: 3.9.0.
+
+  * debian/autogen.sh: Don’t regenerate upstream changelog when it is
+    not out of date.
+  * debian/rules get-orig-source: Use gzip --no-name --rsyncable.
+
+ -- Jonathan Nieder <jrnieder@gmail.com>  Thu, 15 Jul 2010 01:53:37 -0500
+
+xz-utils (4.999.9beta+20100602-1) experimental; urgency=low
+
+  * New upstream snapshot, taken from upstream commit d8b41eed.
+    - The output from "xz -v --list" and "xz -v -v --list" has been
+      improved.
+      "xz -v -v --list" can be used to obtain an estimate for the memory
+      required to decompress a file.
+    - The xz manual page has some new material, including examples.
+      Closes: #578465.
+    - liblzma: The lzma_block_compressed_size() function no longer
+      returns LZMA_DATA_ERROR for valid Blocks.
+  * debian/symbols: Bump minimal version for lzma_block_compressed_size.
+  * Correct the 4.999.9beta+20100307-1 changelog entry to describe
+    which public functions were affected.
+
+  * Add new xz-lzma package to allow xz to provide lzma and related
+    commands.  Conflicts: and Provides: lzma.
+  * xz-utils: Suggests: xz-lzma.
+  * xz-utils/README.Debian: Take xz-lzma into account.
+
+ -- Jonathan Nieder <jrnieder@gmail.com>  Fri, 04 Jun 2010 15:53:58 -0500
+
+xz-utils (4.999.9beta+20100527-1) unstable; urgency=low
+
+  * New upstream snapshot, taken from upstream commit a334348dc.
+    - Show both elapsed time and estimated remaining time in xz -v.
+      Thanks to Trent W. Buck for the idea.  Closes: #574583.
+    - liblzma: Remove the Subblock filter from the public API
+      (the ABI is unchanged).
+  * liblzma-dev.NEWS: Update.
+  * xz-utils: Update Czech translation.
+  * Change priority of xz-utils and liblzma2 to required and
+    xzdec to extra.
+
+ -- Jonathan Nieder <jrnieder@gmail.com>  Thu, 27 May 2010 16:27:04 -0500
+
+xz-utils (4.999.9beta+20100307-1) unstable; urgency=low
+
+  * New upstream snapshot, taken from upstream commit f4b2b526.
+    - liblzma: The stream initialization functions were not correctly
+      initializing the internal allow_buffer_error flag.  As a result,
+      ever since 4.999.9beta-1 in rare circumstances when decompressing
+      LZMA files, the xz tool would produce spurious "Unexpected end
+      of input" failures (Gentoo bug 305591).
+    - The default memory usage limit on low-memory systems has been
+      increased.
+  * debian/copyright: Clarify.
+
+ -- Jonathan Nieder <jrnieder@gmail.com>  Tue, 09 Mar 2010 10:22:24 -0600
+
+xz-utils (4.999.9beta+20100212-4) unstable; urgency=low
+
+  * debian/control: Build-Depends: autopoint instead of cvs.
+    Closes: #572481.
+  * debian/copyright: Clean up and include more details.
+  * debian/rules get-orig-source: Unindent comment lines.
+  * xz-utils: include Czech translation.
+
+ -- Jonathan Nieder <jrnieder@gmail.com>  Thu, 04 Mar 2010 10:17:15 -0600
+
+xz-utils (4.999.9beta+20100212-3) unstable; urgency=low
+
+  * liblzma-dev: Remove unneeded .la file.
+  * xz-utils: Dynamically link the xz binary.
+  * Do not waste time installing and running doxygen on buildds that
+    are not going to build arch-all packages.
+    Build-Depends-Indep: doxygen.  Closes: #540444.
+
+ -- Jonathan Nieder <jrnieder@gmail.com>  Tue, 23 Feb 2010 18:23:29 -0600
+
+xz-utils (4.999.9beta+20100212-2) unstable; urgency=low
+
+  * Split off xzdec and lzmadec commands into new xzdec package.
+    Thanks to Guillem Jover for the idea.  Closes: #571060.
+  * xz-utils.NEWS: advertise this change.
+
+ -- Jonathan Nieder <jrnieder@gmail.com>  Tue, 23 Feb 2010 08:09:39 -0600
+
+xz-utils (4.999.9beta+20100212-1) unstable; urgency=low
+
+  * New upstream snapshot, taken from upstream commit eb7d51a3f.
+     - xz --force compresses symlinks without complaint now.
+     - liblzma: the optimized CRC32 implementation for x86 no longer
+       misdetects the Hurd as Mac OS X.
+  * debian/rules: ./configure --enable-assembler on the Hurd.
+  * xz-utils: Simplify NEWS.Debian.gz.
+  * liblzma-dev: Add a NEWS file to keep track of future API changes.
+
+  * Drop unnecessary build-time conflict with autoconf2.13.
+  * Add a blank line to the end of all NEWS files.
+    (Works around: #247356)
+  * debian/README.source: Leave out “-I -i” options.  Ignoring version
+    control cruft is the default behavior with dpkg source format 3.0.
+  * debian/changelog.upstream.sh: Pass ‘git log’ an explicit --format
+    option to avoid problems if format.pretty is set in gitconfig.
+
+  * Correct the 4.999.9beta+20100117-1 changelog entry.  It said:
+     + The user-specified memory usage limit was not being honored in
+       some cases.
+    No such bug was observed, so describe the change instead.
+
+ -- Jonathan Nieder <jrnieder@gmail.com>  Tue, 16 Feb 2010 00:30:24 -0600
+
+xz-utils (4.999.9beta+20100131-1) unstable; urgency=low
+
+  * New upstream snapshot, taken from upstream commit f9dd797a.
+     + xz: the --list option to display information about a compressed
+       file (e.g., its uncompressed size) is now functional.  The output
+       of the xz --robot --list command still may change in future
+       versions.
+  * xz-utils: NEWS.Debian.gz: Clarify how interleaved output can
+    go wrong.
+  * debian/rules: Simplify:
+     - remove support for comma as a delimiter for $(DEB_BUILD_OPTIONS).
+     - rely on dh --parallel instead of tricky logic of our own to
+       handle parallel builds.  Build-Depends: debhelper (>= 7.4.10).
+  * Correct some typos in the 4.999.9beta+20100117-1 changelog entry.
+  * Standards-Version: 3.8.4 (checked).
+  * Update copyright file.
+
+ -- Jonathan Nieder <jrnieder@gmail.com>  Sun, 31 Jan 2010 17:32:02 -0600
+
+xz-utils (4.999.9beta+20100117-1) unstable; urgency=low
+
+  * New upstream snapshot, taken from upstream commit 07a11dad.
+     + Fix some logic errors in the internal memory usage configuration
+       API.
+     + xz will no longer compress or decompress special files in place,
+       even with --force.
+       --force still enables compression of the target of a symlink.
+     + xz will no longer read compressed data from a terminal or write
+       it to a terminal, even with --force.
+     + liblzma: many Index handling API improvements:
+        - An lzma_index includes more useful metadata that is not
+          actually from the Index.  This is particularly helpful for
+          describing multiple-stream files.
+           * lzma_index_cat() does not take a stream padding argument
+             any more; use lzma_index_stream_padding() instead.
+           * lzma_index_memusage() takes two arguments now.
+             The new lzma_index_memused() convenience function
+             calculates the total memory usage of an lzma_index.
+           * lzma_index_count() has been replaced with
+             lzma_index_block_count() and lzma_index_stream_count().
+           * The new lzma_index_stream_flags() allows storing Stream
+             Flags (e.g., checksum types) with the Index information.
+           * The new lzma_index_checks() function indicates the list of
+             checksum types in use.
+           * lzma_index_equal() has been removed.  Its semantics were
+             unclear, and something approximately equivalent can be
+             implemented by iterating over Blocks in application code.
+        - An lzma_index no longer represents a position within an Index.
+          The new lzma_index_iter type can be used for that purpose.
+           * Certain functions generate an iterator on demand now rather
+             than clobbering their lzma_index arguments.  Using a single
+             lzma_index for multiple concurrent invocations is safe now:
+              lzma_index_buffer_encode(), lzma_index_encoder()
+           * Functions that used to specify a Record by modifying an
+             lzma_index argument have been renamed and taught to write
+             an lzma_index_iter instead:
+              lzma_index_locate() -> lzma_index_iter_locate()
+              lzma_index_rewind() -> lzma_index_iter_rewind()
+              lzma_index_read() -> lzma_index_iter_next()
+           * The lzma_index_record type used by lzma_index_read() for
+             complex seeks is no more.  lzma_index_iter_next() instead
+             takes a parameter of the new lzma_index_iter_mode type.
+           * New function: lzma_index_iter_init()
+           * lzma_index_init() cannot reuse memory from an existing
+             lzma_index any more.  The signature changed accordingly.
+     + xz: support for decompressing to a sparse file
+        - Try to write a sparse file if the decompressed stream contains
+          long runs of null bytes.
+        - The new --no-sparse option disables this behavior.
+     + xz: add Czech translation.
+     + liblzma-dev: lzma_filters_copy() and lzma_filters_update() are
+       declared not to throw exceptions.
+  * liblzma: bump soname.
+  * xz-utils: Add NEWS.Debian describing the sparse file support.
+  * debian/rules: Stop explicitly disabling assembler optimizations on
+    the Hurd.  The configure script will check if a platform is
+    supported.
+
+  * debian/rules: Update clean target to handle comments and wildcards
+    in .gitignore.
+  * Build-Depends: perl.
+
+  * debian/rules: Speed up build by using autoreconf --symlink.
+  * Remove debian/dirs lists.
+  * Update copyright file and fix a small typo.
+
+ -- Jonathan Nieder <jrnieder@gmail.com>  Mon, 18 Jan 2010 04:19:50 -0600
+
+xz-utils (4.999.9beta+20091116-1) unstable; urgency=low
+
+  * New upstream snapshot, taken from upstream commit d315ca4.
+     + liblzma: add some new functions:
+        - lzma_filters_copy() to copy a filter chain;
+        - lzma_filters_update() to change compression options mid-stream;
+        - lzma_physmem() to retrieve the total quantity of installed RAM.
+     + Fix a design error in liblzma API.
+        - Stop requiring caller to maintain filter chain during
+          compression.  The library used to read it for new compression
+          options.  Callers that need to change options mid-stream should
+          use lzma_filters_update() instead.
+        - Remove 'persistent' member from struct lzma_options_lzma.
+     + xz: add --robot --info-memory options, for front-ends to use to
+       read the memory usage limit.
+  * liblzma: bump soname; add README.Debian explaining why soname
+    differs from upstream.
+  * Use source format 3.0 (quilt).
+  * Update and clarify copyright file.
+
+ -- Jonathan Nieder <jrnieder@gmail.com>  Mon, 16 Nov 2009 16:33:35 -0600
+
+xz-utils (4.999.9beta+20091016-1) unstable; urgency=low
+
+  * New upstream snapshot, taken from upstream commit 78e92c1.
+  * Drop xzmore.1 patch, applied upstream.
+  * debian/rules: Disable assembler optimizations on hurd. (Closes: #553331)
+  * debian/control: Clarify binary package descriptions.  Thanks to
+    Justin B Rye and Ben Finney for the text.
+  * debian/rules get-orig-source: Use commit date (instead of last patch
+    date) to name snapshots.
+
+ -- Jonathan Nieder <jrnieder@gmail.com>  Sun, 01 Nov 2009 00:22:04 -0500
+
+xz-utils (4.999.9beta+20091004-1) unstable; urgency=low
+
+  * Upload to unstable. (Closes: #543562)
+  * New upstream snapshot, taken from upstream commit ebfb2c5.
+  * Patch xzmore.1 to use dashes instead of minus signs.
+  * debian/control: Conflicts: xz-lzma. (Closes: #550249)
+  * liblzma-doc: Register Doxygen-generated docs with doc-base.
+  * debian/changelog.upstream.sh: Declare local variables.
+  * debian/changelog.upstream.sh: Cope with multiple Debian revisions per
+    upstream version.
+  * debian/rules: Use ":=" where appropriate.
+  * Add watch file.
+
+ -- Jonathan Nieder <jrnieder@gmail.com>  Fri, 16 Oct 2009 13:58:54 -0500
+
+xz-utils (4.999.9beta+20091002-1) experimental; urgency=low
+
+  * New upstream snapshot, taken from upstream commit 29fd321.
+  * debian/control: Build-Depends: cvs (for autopoint).
+
+ -- Jonathan Nieder <jrnieder@gmail.com>  Sun, 04 Oct 2009 00:21:08 -0500
+
+xz-utils (4.999.9beta-1) experimental; urgency=low
+
+  [ Jonathan Nieder ]
+  * New upstream release.
+     - Fix a data corruption in the compression code. (Closes: #544872)
+     - xzdiff: Fix comparing two compressed files. (Closes: #540543)
+     - Most of XZ Utils is now in the public domain. (Closes: #541391)
+     - Add doc/history.txt to the distributed tarball. (Closes: #541540)
+  * Update and clarify copyright file.
+  * Drop lzma compatibility commands for now. (Closes: #542060, #540232)
+    Add instructions to README.Debian for installing them locally.
+  * debian/control: Add information about the packaging Git repository.
+  * debian/control: Clarify package descriptions.
+  * debian/README.source: Clarify build instructions.
+  * Add debian/.gitignore listing build products.
+  * Build xz-utils with static liblzma.
+     - debian/rules: Use configure --enable-dynamic=mixed.
+  * Optimize xzdec for size, following suggestion in PACKAGERS.
+     - debian/rules: Build xzdec separately so it can be optimized for size.
+     - debian/control: Build-Depends: debhelper (>= 7.3.0).
+  * Generate upstream changelog instead of shipping placeholder.
+     - debian/README.source: Add instructions for regenerating upstream
+       changelog file.
+     - debian/changelog.upstream.sh: New script.
+     - debian/rules: Install generated changelog file.
+  * liblzma-doc: Drop documentation already shipped in
+    /usr/share/doc/xz-utils.
+  * liblzma-dev, liblzma-doc: Add short README.Debian with pointers to
+    development documentation.
+  * Drop debian/xzdec.1, since upstream ships a better man page.
+  * Run autotools at build time.
+     + debian/control:
+        - Build-Depends: autoconf, automake, libtool, gettext
+        - Build-Conflicts: autoconf2.13, automake1.4
+     + debian/rules:
+        - configure: autoreconf -fi
+        - clean: remove autotools-generated files to avoid .diff.gz
+          changes when built twice in a row.
+  * debian/rules: Add get-orig-source target.
+  * Prepare for upload to experimental.
+
+  [ Cristian Greco ]
+  * debian/copyright: refer to versioned GPL-3 file.
+  * debian/control: remove duplicate field ‘section’ in package xz-utils.
+
+ -- Jonathan Nieder <jrnieder@gmail.com>  Wed, 30 Sep 2009 01:44:04 -0500
+
+xz-utils (4.999.8beta-1) experimental; urgency=low
+
+  [ Jonathan Nieder ]
+  * Initial package for Debian. (Closes: #518803)
+     + debian/rules:
+        - add minimal rules file (using Debhelper 7), a control file
+          describing the binary packages, and an appropriate compat file.
+        - use configure --enable-dynamic; use up-to-date config.guess and
+          config.sub files.
+        - do not run automake and so on on autobuilders. Instead, we can
+          run them ourselves when we build the source package.
+     + debian/README.source:
+        - add informations about the packaging GIT repository.
+  * Add liblzma-doc package with Doxygen-generated API docs.
+
+  [ Mohammed Adnène Trojette ]
+  * Prepare for upload to experimental.
+
+ -- Mohammed Adnène Trojette <adn+deb@diwi.org>  Sat, 27 Jun 2009 17:26:56 +0200
diff --git a/debian/changelog.upstream.sh b/debian/changelog.upstream.sh
new file mode 100644
index 0000000..fe5d5ea
--- /dev/null
+++ b/debian/changelog.upstream.sh
@@ -0,0 +1,132 @@
+#!/bin/sh
+# Generate debian/changelog.upstream from debian/changelog and
+# the git revision log.  Inspired by Gerrit Pape’s
+# debian/changelog.upstream.sh, from the git-core Debian package.
+
+set -e
+
+# If argument matches /^Version: /, output remaining text.
+# Result is true if and only if argument matches.
+version_line() {
+	local line result
+	line=$1
+	result=${line#Version: }
+
+	if test "$result" = "$line"
+	then
+		return 1
+	else
+		printf "%s\n" "$result"
+		return 0
+	fi
+}
+
+# If argument matches /^\* New.*snapshot.*commit /,
+# output remaining text.
+# Result is true if and only if argument matches.
+commit_id_line() {
+	local line result
+	line=$1
+	result=${line#\* New*snapshot*commit }
+
+	if test "$result" = "$line"
+	then
+		return 1
+	else
+		printf "%s\n" "$result"
+		return 0
+	fi
+}
+
+# Read standard input, scanning for a changelog entry of the
+# form “New snapshot, taken from upstream commit <blah>.”
+# Output is <blah>.
+# Fails and writes a message to standard error if no such entry is
+# found before the next Version: line with a different upstream
+# version (or EOF).
+# $1 is the upstream version sought.
+read_commit_id() {
+	local upstream_version line version cid
+	upstream_version=$1
+
+	while read line
+	do
+		if
+			version=$(version_line "$line") &&
+			test "${version%-*}" != "$upstream_version"
+		then
+			break
+		fi
+
+		if cid=$(commit_id_line "$line")
+		then
+			printf "%s\n" "${cid%.}"
+			return 0
+		fi
+	done
+
+	echo >&2 "No commit id for $upstream_version"
+	return 1
+}
+
+last=none
+last_cid=none
+# Add a list of all revisions up to $last to debian/changelog.upstream
+# and set last=$2.
+# $1 is a user-readable name for the commit $2
+add_version() {
+	local new new_cid limiter
+	new=$1
+	new_cid=$2
+
+	if test "$last" = none
+	then
+		: > debian/changelog.upstream
+		last=$new
+		last_cid=$new_cid
+		return 0
+	fi
+
+	exec >> debian/changelog.upstream
+	if test "$new" = none
+	then
+		echo "Version $last:"
+		echo "Version $last:" | tr "[:print:]" -
+		limiter=
+	elif test "$new" = "$last"
+	then
+		return 0
+	else
+		echo "Version $last; changes since $new:"
+		echo "Version $last; changes since $new:" | tr "[:print:]" -
+		limiter="$new_cid.."
+	fi
+	echo
+	git log --date=iso --stat --no-merges --format=medium "$limiter$last_cid"
+	test "$new" = none || echo
+
+	last=$new
+	last_cid=$new_cid
+}
+
+dpkg-parsechangelog --format rfc822 --all | {
+while read line
+do
+	if version=$(version_line "$line")
+	then
+		# strip Debian revision
+		upstream_version=${version%-*}
+
+		if git rev-parse --verify -q "v$upstream_version" > /dev/null
+		then
+			# upstream release
+			add_version "$upstream_version" "v$upstream_version"
+		else
+			# snapshot
+			cid=$(read_commit_id "$upstream_version") || exit 1
+			add_version "$upstream_version" "$cid"
+		fi
+	fi
+done
+add_version none none
+}
diff --git a/debian/clean.sh b/debian/clean.sh
new file mode 100644
index 0000000..1a2f8b3
--- /dev/null
+++ b/debian/clean.sh
@@ -0,0 +1,46 @@
+#!/bin/sh
+# Remove files generated by autoreconf -fi.
+# For use by the clean target in debian/rules.
+
+set -e
+
+remove_files='#!/usr/bin/perl
+# Remove specified files from the current directory.
+# Each line must be a filename, a comment (starting with #),
+# a simple glob (of the form *.extension), or blank.
+# Filenames are restricted to a small character set.
+
+use strict;
+use warnings;
+
+my $fnchar = qr/[-_~.@[:alnum:]]/;
+
+my $empty = qr/^$/;
+my $comment = qr/^#/;
+my $simple = qr/^$fnchar+$/;
+my $glob = qr/^\*$fnchar+$/;
+while (my $line = <>) {
+	chomp $line;
+	next if $line =~ $empty;
+	next if $line =~ $comment;
+
+	if ($line =~ $simple) {
+		unlink $line;
+		next;
+	}
+	if ($line =~ $glob) {
+		unlink glob($line);
+		next;
+	}
+
+	die "cannot parse $line";
+}
+'
+
+dh_testdir
+rm -f debug/translation.bash tests/test_block.c ChangeLog
+rm -f ABOUT-NLS aclocal.m4 config.h.in configure
+(cd po && perl -e "$remove_files") < debian/generated-po.list
+(cd m4 && perl -e "$remove_files") < debian/generated-m4.list
+(cd build-aux && perl -e "$remove_files") < debian/generated-build-aux.list
+find . -name Makefile.in -delete
diff --git a/debian/compat b/debian/compat
new file mode 100644
index 0000000..7f8f011
--- /dev/null
+++ b/debian/compat
@@ -0,0 +1 @@
+7
diff --git a/debian/control b/debian/control
new file mode 100644
index 0000000..d5f9112
--- /dev/null
+++ b/debian/control
@@ -0,0 +1,127 @@
+Source: xz-utils
+Section: utils
+Priority: required
+Maintainer: Jonathan Nieder <jrnieder@gmail.com>
+Uploaders: Mohammed Adnène Trojette <adn+deb@diwi.org>
+Build-Depends: debhelper (>= 7.4.10), perl,
+ autoconf (>= 2.64~), automake, libtool (>= 2.2),
+ gettext, autopoint | gettext (<< 0.18-1), autopoint | cvs
+Build-Depends-Indep: doxygen
+Build-Conflicts: automake1.4
+Standards-Version: 3.9.1
+Vcs-Browser: http://git.debian.org/?p=collab-maint/xz.git
+Vcs-Git: git://git.debian.org/collab-maint/xz.git
+Homepage: http://tukaani.org/xz/
+
+Package: liblzma2
+Section: libs
+Architecture: any
+Depends: ${shlibs:Depends}, ${misc:Depends}
+Description: XZ-format compression library
+ XZ is the successor to the Lempel-Ziv/Markov-chain Algorithm
+ compression format, which provides memory-hungry but powerful
+ compression (often better than bzip2) and fast, easy decompression.
+ .
+ The native format of liblzma is XZ; it also supports raw (headerless)
+ streams and the older LZMA format used by lzma. (For 7-Zip's related
+ format, use the p7zip package instead.)
+
+Package: xz-utils
+Architecture: any
+Depends: ${shlibs:Depends}, ${misc:Depends}
+Suggests: xz-lzma
+Breaks: xz-lzma (<< 4.999.9beta+20091004-1)
+Replaces: xz-lzma (<< 4.999.9beta+20091004-1)
+Description: XZ-format compression utilities
+ XZ is the successor to the Lempel-Ziv/Markov-chain Algorithm
+ compression format, which provides memory-hungry but powerful
+ compression (often better than bzip2) and fast, easy decompression.
+ .
+ This package provides the command line tools for working with XZ
+ compression, including xz, unxz, xzcat, xzgrep, and so on. They can
+ also handle the older LZMA format, and if invoked via appropriate
+ symlinks will emulate the behavior of the commands in the lzma
+ package.
+ .
+ The XZ format is similar to the older LZMA format but includes some
+ improvements for general use:
+ .
+  * 'file' magic for detecting XZ files;
+  * crc64 data integrity check;
+  * limited random-access reading support;
+  * improved support for multithreading (not used in xz-utils);
+  * support for flushing the encoder.
+
+Package: xz-lzma
+Architecture: all
+Priority: extra
+Depends: xz-utils, ${misc:Depends}
+Conflicts: lzma
+Breaks: lzip (<< 1.8~rc2)
+Replaces: lzip (<< 1.8~rc2)
+Provides: lzma
+Description: XZ-format compression utilities - compatibility commands
+ XZ is the successor to the Lempel-Ziv/Markov-chain Algorithm
+ compression format, which provides memory-hungry but powerful
+ compression (often better than bzip2) and fast, easy decompression.
+ .
+ This package provides symbolic links allowing xz-utils to provide the
+ same interface for manipulating LZMA files as the lzma package. The
+ xz-utils package can handle LZMA files on its own; this package is
+ only necessary when using scripts or other programs that require the
+ older command names.
+
+Package: xzdec
+Priority: extra
+Architecture: any
+Depends: ${shlibs:Depends}, ${misc:Depends}
+Suggests: xz-utils
+Breaks: xz-lzma (<< 4.999.9beta+20091004-1)
+Replaces: xz-lzma (<< 4.999.9beta+20091004-1)
+Description: XZ-format compression utilities - tiny decompressors
+ XZ is the successor to the Lempel-Ziv/Markov-chain Algorithm
+ compression format, which provides memory-hungry but powerful
+ compression (often better than bzip2) and fast, easy decompression.
+ .
+ This package provides the xzdec and lzmadec utilities, which write
+ the decompressed version of a compressed file to standard output. The
+ binaries are very small, so they can be easily stored on small media
+ with some compressed files, and they are linked statically against
+ liblzma so they can be used on machines without a compatible version
+ of liblzma installed. However, they have:
+ .
+   * no compression support;
+   * no support for writing to a file other than standard output;
+   * no translated messages;
+   * been optimized for size rather than speed.
+ .
+ For a full-featured xzcat command without these limitations, use
+ the xz-utils package instead.
+
+Package: liblzma-dev
+Section: libdevel
+Priority: optional
+Architecture: any
+Depends: liblzma2 (= ${binary:Version}), ${misc:Depends}
+Suggests: liblzma-doc
+Description: XZ-format compression library - development files
+ XZ is the successor to the Lempel-Ziv/Markov-chain Algorithm
+ compression format, which provides memory-hungry but powerful
+ compression (often better than bzip2) and fast, easy decompression.
+ .
+ The native format of liblzma is XZ; it also supports raw (headerless)
+ streams and the older LZMA format used by lzma. (For 7-Zip's related
+ format, use the p7zip package instead.) This package provides the
+ development library needed to build programs using liblzma.
+
+Package: liblzma-doc
+Section: doc
+Priority: optional
+Architecture: all
+Depends: ${misc:Depends}
+Suggests: liblzma-dev
+Description: XZ-format compression library - API documentation
+ This package contains a reference manual for the liblzma data
+ compression library, in Doxygen-generated HTML files. The purpose
+ of each struct, macro, and function in the public interface is
+ explained.
diff --git a/debian/copyright b/debian/copyright
new file mode 100644
index 0000000..9b1d438
--- /dev/null
+++ b/debian/copyright
@@ -0,0 +1,398 @@
+Format-Specification: http://svn.debian.org/wsvn/dep/web/deps/dep5.mdwn?rev=135
+Name: XZ Utils
+Maintainer: Lasse Collin <lasse.collin@tukaani.org>
+Source: http://tukaani.org/xz
+ http://git.tukaani.org/xz.git
+X-Authors:
+ XZ Utils is developed and maintained upstream by Lasse Collin.  Major
+ portions are based on code by other authors; see AUTHORS for details.
+ Most of the source has been put into the public domain, but some files
+ have not (details below).
+X-Overview:
+ Different licenses apply to different files in this package. Here
+ is a rough summary of which licenses apply to which parts of this
+ package (but check the individual files to be sure!):
+ .
+   - liblzma is in the public domain.
+ .
+   - xz, xzdec, and lzmadec command line tools are in the public
+     domain unless GNU getopt_long had to be compiled and linked
+     in from the lib directory. The getopt_long code is under
+     GNU LGPLv2.1+.
+ .
+   - The scripts to grep, diff, and view compressed files have been
+     adapted from gzip. These scripts and their documentation are
+     under GNU GPLv2+.
+ .
+   - All the documentation in the doc directory and most of the
+     XZ Utils specific documentation files in other directories
+     are in the public domain.
+ .
+   - Translated messages are in the public domain.
+ .
+   - The build system contains public domain files, and files that
+     are under GNU GPLv2+ or GNU GPLv3+. None of these files end up
+     in the binaries being built.
+ .
+   - Test files and test code in the tests directory, and debugging
+     utilities in the debug directory are in the public domain.
+ .
+   - The extra directory may contain public domain files, and files
+     that are under various free software licenses.
+ .
+ You can do whatever you want with the files that have been put into
+ the public domain. If you find public domain legally problematic,
+ take the previous sentence as a license grant. If you still find
+ the lack of copyright legally problematic, you have too many
+ lawyers.
+ .
+ As usual, this software is provided "as is", without any warranty.
+ .
+ If you copy significant amounts of public domain code from XZ Utils
+ into your project, acknowledging this somewhere in your software is
+ polite (especially if it is proprietary, non-free software), but
+ naturally it is not legally required. Here is an example of a good
+ notice to put into "about box" or into documentation:
+ .
+     This software includes code from XZ Utils <http://tukaani.org/xz/>.
+ .
+ The following license texts are included in the following files:
+   - COPYING.LGPLv2.1: GNU Lesser General Public License version 2.1
+   - COPYING.GPLv2: GNU General Public License version 2
+   - COPYING.GPLv3: GNU General Public License version 3
+ .
+ Note that the toolchain (compiler, linker etc.) may add some code
+ pieces that are copyrighted. Thus, it is possible that e.g. liblzma
+ binary wouldn't actually be in the public domain in its entirety
+ even though it contains no copyrighted code from the XZ Utils source
+ package.
+ .
+ If you have questions, don't hesitate to ask the author(s) for more
+ information.
+X-Note:
+ The rest of this file only describes the source package.  The binary
+ packages contain some files derived from other works: for example,
+ all images in the API documentation come from Doxygen.
+
+Files: *
+Copyright: 2006-2010, Lasse Collin
+           1999-2008, Igor Pavlov
+           2006, Ville Koskinen
+           1998, Steve Reid
+           2000, Wei Dai
+           2003, Kevin Springle
+           2009, Jonathan Nieder
+License: PD
+ This file has been put in the public domain.
+ You can do whatever you want with this file.
+X-Note:
+ From: Lasse Collin <lasse.collin@tukaani.org>
+ To: Jonathan Nieder <jrnieder@gmail.com>
+ Subject: Re: XZ utils for Debian
+ Date: Sun, 19 Jul 2009 13:28:23 +0300
+ Message-Id: <200907191328.23816.lasse.collin@tukaani.org>
+ .
+ [...]
+ .
+ > AUTHORS, ChangeLog, COPYING, README, THANKS, TODO,
+ > dos/README, windows/README
+ .
+ COPYING says that most docs are in the public domain. Maybe that's not
+ clear enough, but on the other hand it looks a bit stupid to put
+ copyright information in tiny and relatively small docs like README.
+ .
+ I don't dare to say that _all_ XZ Utils specific docs are in the public
+ domain unless otherwise mentioned in the file. I'm including PDF files
+ generated by groff + ps2pdf, and some day I might include Doxygen-
+ generated HTML docs too. Those don't include any copyright notices, but
+ it seems likely that groff + ps2pdf or at least Doxygen put some
+ copyrighted content into the generated files.
+
+Files: INSTALL,
+       NEWS,
+       PACKAGERS,
+       windows/README-Windows.txt,
+       windows/INSTALL-Windows.txt
+Copyright: 2009-2010, Lasse Collin
+License: probably-PD
+ See the note on AUTHORS, README, and so on above.
+
+Files: src/scripts/*, lib/*, extra/scanlzma/scanlzma.c
+Copyright: © 1993, Jean-loup Gailly
+           © 1989-1994, 1996-1999, 2001-2007, Free Software Foundation, Inc.
+           © 2006 Timo Lindfors
+           2005, Charles Levert
+           2005, 2009, Lasse Collin
+           2009, Andrew Dudman
+X-Other-Authors: Paul Eggert, Ulrich Drepper
+License: GPL-2+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2, or (at your option)
+ any later version.
+ .
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+ .
+ You should have received a copy of the GNU General Public License along
+ with this program; if not, write to the Free Software Foundation,
+ Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ .
+ On Debian systems, the complete text of the GNU General Public License
+ version 2 can be found in ‘/usr/share/common-licenses/GPL-2’.
+
+Files: src/scripts/Makefile.am, src/scripts/xzless.1
+Copyright: 2009, Andrew Dudman
+           2009, Lasse Collin
+License: PD
+ This file has been put in the public domain.
+ You can do whatever you want with this file.
+
+Files: doc/examples/xz_pipe_comp.c, doc/examples/xz_pipe_decomp.c
+Copyright: 2010, Daniel Mealha Cabrita
+License: PD
+ Not copyrighted -- provided to the public domain.
+
+Files: lib/getopt.c, lib/getopt1.c, lib/getopt.in.h
+Copyright: © 1987-2007 Free Software Foundation, Inc.
+X-Other-Authors: Ulrich Drepper
+License: LGPL-2.1+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU Lesser General Public License as published by
+ the Free Software Foundation; either version 2.1, or (at your option)
+ any later version.
+ .
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU Lesser General Public License for more details.
+ .
+ You should have received a copy of the GNU Lesser General Public License along
+ with this program; if not, write to the Free Software Foundation,
+ Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ .
+ On Debian systems, the complete text of the GNU Lesser General Public
+ License version 2.1 can be found in ‘/usr/share/common-licenses/LGPL-2.1’.
+
+Files: m4/getopt.m4, m4/posix-shell.m4
+Copyright: © 2002-2006, 2008 Free Software Foundation, Inc.
+           © 2007-2008 Free Software Foundation, Inc.
+X-Other-Authors: Bruno Haible, Paul Eggert
+License: permissive
+ This file is free software; the Free Software Foundation
+ gives unlimited permission to copy and/or distribute it,
+ with or without modifications, as long as this notice is preserved.
+
+Files: m4/acx_pthread.m4
+Copyright: © 2007, Steven G. Johnson <stevenj@alum.mit.edu>
+License: Autoconf
+ This program is free software: you can redistribute it and/or
+ modify it under the terms of the GNU General Public License as
+ published by the Free Software Foundation, either version 3 of the
+ License, or (at your option) any later version.
+ .
+ This program is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ General Public License for more details.
+ .
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see
+ <http://www.gnu.org/licenses/>.
+ .
+ As a special exception, the respective Autoconf Macro's copyright
+ owner gives unlimited permission to copy, distribute and modify the
+ configure scripts that are the output of Autoconf when processing
+ the Macro. You need not follow the terms of the GNU General Public
+ License when using or distributing such scripts, even though
+ portions of the text of the Macro appear in them. The GNU General
+ Public License (GPL) does govern all other use of the material that
+ constitutes the Autoconf Macro.
+ .
+ This special exception to the GPL applies to versions of the
+ Autoconf Macro released by the Autoconf Macro Archive. When you
+ make and distribute a modified version of the Autoconf Macro, you
+ may extend this special exception to the GPL to apply to your
+ modified version as well.
+ .
+ On Debian systems, the complete text of the GNU General Public
+ License version 3 can be found in ‘/usr/share/common-licenses/GPL-3’.
+
+Files: Doxyfile.in
+Copyright: © 1997-2007 by Dimitri van Heesch
+X-Origin: Doxygen 1.4.7
+License: GPL-2
+ Permission to use, copy, modify, and distribute this software and its
+ documentation under the terms of the GNU General Public License is
+ hereby granted. No representations are made about the suitability of
+ this software for any purpose. It is provided "as is" without express
+ or implied warranty. See the GNU General Public License for more
+ details.
+ .
+ Documents produced by doxygen are derivative works derived from the
+ input used in their production; they are not affected by this license.
+ .
+ On Debian systems, the complete text of the version of the GNU General
+ Public License distributed with Doxygen can be found in
+ ‘/usr/share/common-licenses/GPL-2’.
+
+Files: src/liblzma/check/crc32_table_[bl]e.h,
+       src/liblzma/check/crc64_table_[bl]e.h,
+       src/liblzma/lzma/fastpos_table.c,
+       src/liblzma/rangecoder/price_table.c
+Copyright: none, automatically generated data
+X-Generated-With: src/liblzma/check/crc32_tablegen.c,
+                  src/liblzma/check/crc64_tablegen.c,
+                  src/liblzma/lzma/fastpos_tablegen.c,
+                  src/liblzma/rangecoder/price_tablegen.c
+License: none
+ No copyright to license.
+
+Files: .gitignore, m4/.gitignore, po/.gitignore, po/LINGUAS, po/POTFILES.in
+Copyright: none; these are just short lists.
+License: none
+ No copyright to license.
+
+Files: tests/compress_prepared_bcj_*
+Copyright: 2008-2009, Lasse Collin
+X-Source-Code: tests/bcj_test.c
+License: PD
+ changelog.gz (commit 975d8fd) explains:
+ .
+ Recreated the BCJ test files for x86 and SPARC. The old files
+ were linked with crt*.o, which are copyrighted, and thus the
+ old test files were not in the public domain as a whole. They
+ are freely distributable though, but it is better to be careful
+ and avoid including any copyrighted pieces in the test files.
+ The new files are just compiled and assembled object files,
+ and thus don't contain any copyrighted code.
+
+Files: po/cs.po, po/de.po
+Copyright: 2010, Marek Černocký
+           2010, Andre Noll
+License: PD
+ This file is put in the public domain.
+
+Files: po/it.po
+Copyright: 2009, 2010, Gruppo traduzione italiano di Ubuntu-it
+           2010, Lorenzo De Liso
+           2009, 2010, Milo Casagrande
+License: PD
+ This file is in the public domain
+
+Files: dos/config.h
+Copyright: © 1992, 1993, 1994, 1999, 2000, 2001, 2002, 2005
+             Free Software Foundation, Inc.
+           2007-2010, Lasse Collin
+X-Other-Authors: Roland McGrath, Akim Demaille, Paul Eggert,
+                 David Mackenzie, Bruno Haible, and many others.
+X-Origin: configure.ac from XZ Utils,
+          visibility.m4 serial 1 (gettext-0.15),
+          Autoconf 2.52g
+License: config-h
+ configure.ac:
+ .
+ # Author: Lasse Collin
+ #
+ # This file has been put into the public domain.
+ # You can do whatever you want with this file.
+ .
+ visibility.m4:
+ .
+ dnl Copyright (C) 2005 Free Software Foundation, Inc.
+ dnl This file is free software; the Free Software Foundation
+ dnl gives unlimited permission to copy and/or distribute it,
+ dnl with or without modifications, as long as this notice is preserved.
+ .
+ dnl From Bruno Haible.
+ .
+ comments from Autoconf 2.52g:
+ .
+ # Copyright 1992, 1993, 1994, 1999, 2000, 2001, 2002
+ # Free Software Foundation, Inc.
+ #
+ # This program is free software; you can redistribute it and/or modify
+ # it under the terms of the GNU General Public License as published by
+ # the Free Software Foundation; either version 2, or (at your option)
+ # any later version.
+ #
+ # This program is distributed in the hope that it will be useful,
+ # but WITHOUT ANY WARRANTY; without even the implied warranty of
+ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ # GNU General Public License for more details.
+ #
+ # You should have received a copy of the GNU General Public License
+ # along with this program; if not, write to the Free Software
+ # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ # 02110-1301, USA.
+ #
+ # As a special exception, the Free Software Foundation gives unlimited
+ # permission to copy, distribute and modify the configure scripts that
+ # are the output of Autoconf.  You need not follow the terms of the GNU
+ # General Public License when using or distributing such scripts, even
+ # though portions of the text of Autoconf appear in them.  The GNU
+ # General Public License (GPL) does govern all other use of the material
+ # that constitutes the Autoconf program.
+ #
+ # Certain portions of the Autoconf source text are designed to be copied
+ # (in certain cases, depending on the input) into the output of
+ # Autoconf.  We call these the "data" portions.  The rest of the Autoconf
+ # source text consists of comments plus executable code that decides which
+ # of the data portions to output in any given case.  We call these
+ # comments and executable code the "non-data" portions.  Autoconf never
+ # copies any of the non-data portions into its output.
+ #
+ # This special exception to the GPL applies to versions of Autoconf
+ # released by the Free Software Foundation.  When you make and
+ # distribute a modified version of Autoconf, you may extend this special
+ # exception to the GPL to apply to your modified version as well, *unless*
+ # your modified version has the potential to copy into its output some
+ # of the text that was the non-data portion of the version that you started
+ # with.  (In other words, unless your change moves or copies text from
+ # the non-data portions to the data portions.)  If your modification has
+ # such potential, you must delete any notice of this special exception
+ # to the GPL from your modified version.
+ .
+ On Debian systems, the complete text of the GNU General Public
+ License version 2 can be found in ‘/usr/share/common-licenses/GPL-2’.
+ dos/config.h was generated with autoheader, which tells Autoconf to
+ output a script to generate a config.h file and then runs it.
+
+Files: po/Makevars
+X-Origin: gettext-runtime/po/Makevars (gettext-0.12)
+X-Authors: Bruno Haible
+Copyright: © 2003 Free Software Foundation, Inc.
+License: LGPL-2.1+
+ The gettext-runtime package is under the LGPL, see files intl/COPYING.LIB-2.0
+ and intl/COPYING.LIB-2.1.
+ .
+ On Debian systems, the complete text of intl/COPYING.LIB-2.0 from
+ gettext-runtime 0.12 can be found in ‘/usr/share/common-licenses/LGPL-2’
+ and the text of intl/COPYING.LIB-2.1 can be found in
+ ‘/usr/share/common-licenses/LGPL-2.1’.
+ .
+ po/Makevars consists mostly of helpful comments and does not contain a
+ copyright and license notice.
+
+Files: INSTALL.generic
+Copyright: © 1994, 1995, 1996, 1999, 2000, 2001, 2002, 2004, 2005,
+             2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
+License: permissive-nowarranty
+ Copying and distribution of this file, with or without modification,
+ are permitted in any medium without royalty provided the copyright
+ notice and this notice are preserved.  This file is offered as-is,
+ without warranty of any kind.
+
+Files: COPYING.GPLv2, COPYING.GPLv3, COPYING.LGPLv2.1
+Copyright: © 1989, 1991, 1999, 2007 Free Software Foundation, Inc.
+License: noderivs
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+Files: debian/*
+Copyright: 2009-2010, Jonathan Nieder
+License: PD-debian
+ The Debian packaging files are in the public domain.
+ You may freely use, modify, distribute, and relicense them.
diff --git a/debian/examples/.gitignore b/debian/examples/.gitignore
new file mode 100644
index 0000000..6298657
--- /dev/null
+++ b/debian/examples/.gitignore
@@ -0,0 +1 @@
+/xz_pipe_*.c
diff --git a/debian/liblzma-dev.NEWS b/debian/liblzma-dev.NEWS
new file mode 100644
index 0000000..da790a0
--- /dev/null
+++ b/debian/liblzma-dev.NEWS
@@ -0,0 +1,24 @@
+xz-utils (4.999.9beta+20100527-1) unstable; urgency=low
+
+  Starting with this version, the declarations needed to use the Subblock
+  filter are not present in the liblzma headers.  liblzma never supported
+  the Subblock filter, so compiled applications should not be affected by
+  this change.
+
+  The lzma_restrict macro has been removed from the liblzma headers.  This
+  only affects the declarations contained there; the semantics are still the
+  same.
+
+ -- Jonathan Nieder <jrnieder@gmail.com>  Thu, 27 May 2010 15:52:28 -0500
+
+xz-utils (4.999.9beta+20100212-1) unstable; urgency=low
+  
+  Starting with this version, the lzma_block_header_decode() function
+  is advertised to require its block->version parameter to be initialized.
+  Future versions of liblzma may use an alternate version of the Block
+  options if the application declares it supports it.  Existing applications
+  will continue to work for now because the only supported Block format
+  version is zero.
+
+ -- Jonathan Nieder <jrnieder@gmail.com>  Mon, 15 Feb 2010 23:59:21 -0600
+
diff --git a/debian/liblzma-dev.README.Debian b/debian/liblzma-dev.README.Debian
new file mode 100644
index 0000000..81e397d
--- /dev/null
+++ b/debian/liblzma-dev.README.Debian
@@ -0,0 +1,19 @@
+From the XZ Utils README (included in the xz-utils package):
+
+1.3. Documentation for liblzma
+
+    The liblzma API headers include short docs about each function
+    and data type as Doxygen tags. These docs should be quite OK as
+    a quick reference.
+
+    I have planned to write a bunch of very well documented example
+    programs, which (due to comments) should work as a tutorial to
+    various features of liblzma. No such example programs have been
+    written yet.
+
+    For now, if you have never used liblzma, libbzip2, or zlib, I
+    recommend learning *basics* of zlib API. Once you know that, it
+    should be easier to learn liblzma.
+
+        http://zlib.net/manual.html
+        http://zlib.net/zlib_how.html
diff --git a/debian/liblzma-dev.docs b/debian/liblzma-dev.docs
new file mode 100644
index 0000000..c549d6f
--- /dev/null
+++ b/debian/liblzma-dev.docs
@@ -0,0 +1,3 @@
+doc/xz-file-format.txt
+doc/lzma-file-format.txt
+TODO
diff --git a/debian/liblzma-dev.examples b/debian/liblzma-dev.examples
new file mode 100644
index 0000000..356566d
--- /dev/null
+++ b/debian/liblzma-dev.examples
@@ -0,0 +1,2 @@
+debian/examples/xz_pipe_comp.c
+debian/examples/xz_pipe_decomp.c
diff --git a/debian/liblzma-dev.install b/debian/liblzma-dev.install
new file mode 100644
index 0000000..6e4150a
--- /dev/null
+++ b/debian/liblzma-dev.install
@@ -0,0 +1,5 @@
+usr/include/*
+usr/include/lzma/*
+usr/lib/lib*.a
+usr/lib/lib*.so
+usr/lib/pkgconfig/*
diff --git a/debian/liblzma-dev.links b/debian/liblzma-dev.links
new file mode 100644
index 0000000..c31835c
--- /dev/null
+++ b/debian/liblzma-dev.links
@@ -0,0 +1,3 @@
+usr/share/doc/liblzma2/AUTHORS usr/share/doc/liblzma-dev/AUTHORS
+usr/share/doc/liblzma2/THANKS usr/share/doc/liblzma-dev/THANKS
+usr/share/doc/liblzma2/NEWS.gz usr/share/doc/liblzma-dev/NEWS.gz
diff --git a/debian/liblzma-doc.README.Debian b/debian/liblzma-doc.README.Debian
new file mode 100644
index 0000000..81e397d
--- /dev/null
+++ b/debian/liblzma-doc.README.Debian
@@ -0,0 +1,19 @@
+From the XZ Utils README (included in the xz-utils package):
+
+1.3. Documentation for liblzma
+
+    The liblzma API headers include short docs about each function
+    and data type as Doxygen tags. These docs should be quite OK as
+    a quick reference.
+
+    I have planned to write a bunch of very well documented example
+    programs, which (due to comments) should work as a tutorial to
+    various features of liblzma. No such example programs have been
+    written yet.
+
+    For now, if you have never used liblzma, libbzip2, or zlib, I
+    recommend learning *basics* of zlib API. Once you know that, it
+    should be easier to learn liblzma.
+
+        http://zlib.net/manual.html
+        http://zlib.net/zlib_how.html
diff --git a/debian/liblzma-doc.doc-base b/debian/liblzma-doc.doc-base
new file mode 100644
index 0000000..f7cfdc2
--- /dev/null
+++ b/debian/liblzma-doc.doc-base
@@ -0,0 +1,12 @@
+Document: liblzma-doc
+Title: liblzma API Documentation
+Author: Lasse Collin
+Abstract: liblzma is a compression library supporting the .xz and .lzma
+ formats, among others. This Doxygen-generated reference manual
+ describes the data structures and functions making up its public
+ interface.
+Section: Programming/C
+
+Format: HTML
+Index: /usr/share/doc/liblzma-doc/html/index.html
+Files: /usr/share/doc/liblzma-doc/html/*
diff --git a/debian/liblzma-doc.docs b/debian/liblzma-doc.docs
new file mode 100644
index 0000000..f8172bb
--- /dev/null
+++ b/debian/liblzma-doc.docs
@@ -0,0 +1 @@
+debian/normal-build/doc/html/
diff --git a/debian/liblzma2.README.Debian b/debian/liblzma2.README.Debian
new file mode 100644
index 0000000..f0b85d8
--- /dev/null
+++ b/debian/liblzma2.README.Debian
@@ -0,0 +1,31 @@
+liblzma for Debian
+------------------
+
+liblzma2 in Debian is not ABI-compatible with upstream's library and
+is not likely to be ABI-compatible with liblzma from other
+distributions:
+
+ * The lzma_stream, lzma_stream_flags, and lzma_options_lzma
+   structures are not layout-compatible with upstream.  The versions
+   in Debian have fewer fields reserved for future expansion.
+
+ * The lzma_chunk_size() function is present but useless in Debian.
+   It has been removed upstream.
+
+ * The library soname is liblzma.so.2 in Debian, liblzma.so.5
+   upstream.
+
+To use binaries pre-built for other distributions, you can install a
+copy of liblzma.so.5:
+
+ apt-get build-dep xz-utils
+ apt-get source --download-only xz-utils
+ tar -xf xz-utils_*.orig.tar.gz
+ cd xz-5*
+ autoreconf -fis
+ ./configure --prefix=/usr/local --disable-xz --disable-xzdec \
+	--disable-lzmadec --disable-lzmainfo --disable-lzma-links \
+	--disable-scripts
+ make install
+
+ -- Jonathan Nieder <jrnieder@gmail.com>  Mon, 25 Oct 2010 03:43:34 -0500
diff --git a/debian/liblzma2.docs b/debian/liblzma2.docs
new file mode 100644
index 0000000..aa4127d
--- /dev/null
+++ b/debian/liblzma2.docs
@@ -0,0 +1,3 @@
+AUTHORS
+THANKS
+NEWS
diff --git a/debian/liblzma2.install b/debian/liblzma2.install
new file mode 100644
index 0000000..39a3e84
--- /dev/null
+++ b/debian/liblzma2.install
@@ -0,0 +1 @@
+usr/lib/liblzma.so.*
diff --git a/debian/patches/abi-chunk-size-func b/debian/patches/abi-chunk-size-func
new file mode 100644
index 0000000..e74463c
--- /dev/null
+++ b/debian/patches/abi-chunk-size-func
@@ -0,0 +1,41 @@
+From: Jonathan Nieder <jrnieder@gmail.com>
+Date: Mon, 25 Oct 2010 03:10:49 -0500
+Subject: Uncomment "lzma_chunk_size()" stub
+
+This partially reverts commit 0076e03641f201c4b77dddd5a6db5880be19a78c:
+
+    lzma_chunk_size() was commented out because it is
+    currently useless.
+
+As long as Debian squeeze keeps the old liblzma2 soname, it is
+simplest to refrain from removing any functions applications
+could have linked against.
+
+Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
+---
+ src/liblzma/common/filter_encoder.c |    2 --
+ 1 files changed, 0 insertions(+), 2 deletions(-)
+
+diff --git a/src/liblzma/common/filter_encoder.c b/src/liblzma/common/filter_encoder.c
+index 635d812..436d2cc 100644
+--- a/src/liblzma/common/filter_encoder.c
++++ b/src/liblzma/common/filter_encoder.c
+@@ -226,7 +226,6 @@ lzma_raw_encoder_memusage(const lzma_filter *filters)
+ }
+ 
+ 
+-/*
+ extern LZMA_API(lzma_vli)
+ lzma_chunk_size(const lzma_filter *filters)
+ {
+@@ -248,7 +247,6 @@ lzma_chunk_size(const lzma_filter *filters)
+ 
+ 	return max;
+ }
+-*/
+ 
+ 
+ extern LZMA_API(lzma_ret)
+-- 
+1.7.2.3
+
diff --git a/debian/patches/abi-debian-soname b/debian/patches/abi-debian-soname
new file mode 100644
index 0000000..460a5db
--- /dev/null
+++ b/debian/patches/abi-debian-soname
@@ -0,0 +1,41 @@
+From: Jonathan Nieder <jrnieder@gmail.com>
+Date: Mon, 25 Oct 2010 03:14:30 -0500
+Subject: Set liblzma version-info to 2:0:0
+
+This change is Debian-specific.
+
+The upstream version-info is 5:0:0, but Debian has been
+using version 2 for a while and it is simplest to avoid
+breaking ABI.
+
+With commit 418d64a (Fix a design error in liblzma API,
+2009-11-14) the lzma_options_lzma data structure was changed.
+Programs that read or write its fields will have no hope of
+working with older liblzma versions.
+
+With commit 1a7ec87 (Revised the Index handling code.,
+2009-12-31) various functions were removed.  Programs that
+used them will not work with the current library, so that
+required bumping the soname for a second time.
+
+Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
+---
+ src/liblzma/Makefile.am |    2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+diff --git a/src/liblzma/Makefile.am b/src/liblzma/Makefile.am
+index 6d05fc6..ee34c83 100644
+--- a/src/liblzma/Makefile.am
++++ b/src/liblzma/Makefile.am
+@@ -24,7 +24,7 @@ liblzma_la_CPPFLAGS = \
+ 	-I$(top_srcdir)/src/liblzma/simple \
+ 	-I$(top_srcdir)/src/common \
+ 	-DTUKLIB_SYMBOL_PREFIX=lzma_
+-liblzma_la_LDFLAGS = -no-undefined -version-info 5:0:0
++liblzma_la_LDFLAGS = -no-undefined -version-info 2:0:0
+ 
+ include $(srcdir)/common/Makefile.inc
+ include $(srcdir)/check/Makefile.inc
+-- 
+1.7.2.3
+
diff --git a/debian/patches/abi-reserved-fields b/debian/patches/abi-reserved-fields
new file mode 100644
index 0000000..c681bf7
--- /dev/null
+++ b/debian/patches/abi-reserved-fields
@@ -0,0 +1,111 @@
+From: Jonathan Nieder <jrnieder@gmail.com>
+Date: Mon, 25 Oct 2010 02:53:04 -0500
+Subject: Revert "liblzma: A few ABI tweaks to reserve space in structures."
+
+This reverts commit 613939fc82603b75b59eee840871a05bc8dd08e0.
+
+It is not the time in the Debian release cycle to change ABI for
+the sake of forward-compatibility, since to do so would be a
+rather disruptive change.
+
+This revert is Debian-specific.
+
+Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
+---
+ src/liblzma/api/lzma/base.h         |    7 +------
+ src/liblzma/api/lzma/lzma.h         |    4 ++--
+ src/liblzma/api/lzma/stream_flags.h |    4 ++++
+ src/liblzma/common/common.c         |    4 ----
+ 4 files changed, 7 insertions(+), 12 deletions(-)
+
+diff --git a/src/liblzma/api/lzma/base.h b/src/liblzma/api/lzma/base.h
+index 43dde8d..fc165ab 100644
+--- a/src/liblzma/api/lzma/base.h
++++ b/src/liblzma/api/lzma/base.h
+@@ -478,12 +478,8 @@ typedef struct {
+ 	 */
+ 	void *reserved_ptr1;
+ 	void *reserved_ptr2;
+-	void *reserved_ptr3;
+-	void *reserved_ptr4;
+ 	uint64_t reserved_int1;
+ 	uint64_t reserved_int2;
+-	size_t reserved_int3;
+-	size_t reserved_int4;
+ 	lzma_reserved_enum reserved_enum1;
+ 	lzma_reserved_enum reserved_enum2;
+ 
+@@ -510,8 +506,7 @@ typedef struct {
+  */
+ #define LZMA_STREAM_INIT \
+ 	{ NULL, 0, 0, NULL, 0, 0, NULL, NULL, \
+-	NULL, NULL, NULL, NULL, 0, 0, 0, 0, \
+-	LZMA_RESERVED_ENUM, LZMA_RESERVED_ENUM }
++	NULL, NULL, 0, 0, LZMA_RESERVED_ENUM, LZMA_RESERVED_ENUM }
+ 
+ 
+ /**
+diff --git a/src/liblzma/api/lzma/lzma.h b/src/liblzma/api/lzma/lzma.h
+index 8d5fdb6..ae57728 100644
+--- a/src/liblzma/api/lzma/lzma.h
++++ b/src/liblzma/api/lzma/lzma.h
+@@ -381,6 +381,8 @@ typedef struct {
+ 	 * with the currently supported options, so it is safe to leave these
+ 	 * uninitialized.
+ 	 */
++	void *reserved_ptr1;
++	void *reserved_ptr2;
+ 	uint32_t reserved_int1;
+ 	uint32_t reserved_int2;
+ 	uint32_t reserved_int3;
+@@ -393,8 +395,6 @@ typedef struct {
+ 	lzma_reserved_enum reserved_enum2;
+ 	lzma_reserved_enum reserved_enum3;
+ 	lzma_reserved_enum reserved_enum4;
+-	void *reserved_ptr1;
+-	void *reserved_ptr2;
+ 
+ } lzma_options_lzma;
+ 
+diff --git a/src/liblzma/api/lzma/stream_flags.h b/src/liblzma/api/lzma/stream_flags.h
+index bbdd408..c6e7303 100644
+--- a/src/liblzma/api/lzma/stream_flags.h
++++ b/src/liblzma/api/lzma/stream_flags.h
+@@ -91,6 +91,8 @@ typedef struct {
+ 	lzma_reserved_enum reserved_enum2;
+ 	lzma_reserved_enum reserved_enum3;
+ 	lzma_reserved_enum reserved_enum4;
++	lzma_reserved_enum reserved_enum5;
++	lzma_reserved_enum reserved_enum6;
+ 	lzma_bool reserved_bool1;
+ 	lzma_bool reserved_bool2;
+ 	lzma_bool reserved_bool3;
+@@ -101,6 +103,8 @@ typedef struct {
+ 	lzma_bool reserved_bool8;
+ 	uint32_t reserved_int1;
+ 	uint32_t reserved_int2;
++	uint32_t reserved_int3;
++	uint32_t reserved_int4;
+ 
+ } lzma_stream_flags;
+ 
+diff --git a/src/liblzma/common/common.c b/src/liblzma/common/common.c
+index 0408e15..d1a9bed 100644
+--- a/src/liblzma/common/common.c
++++ b/src/liblzma/common/common.c
+@@ -186,12 +186,8 @@ lzma_code(lzma_stream *strm, lzma_action action)
+ 	// which would indicate that some new feature is wanted.
+ 	if (strm->reserved_ptr1 != NULL
+ 			|| strm->reserved_ptr2 != NULL
+-			|| strm->reserved_ptr3 != NULL
+-			|| strm->reserved_ptr4 != NULL
+ 			|| strm->reserved_int1 != 0
+ 			|| strm->reserved_int2 != 0
+-			|| strm->reserved_int3 != 0
+-			|| strm->reserved_int4 != 0
+ 			|| strm->reserved_enum1 != LZMA_RESERVED_ENUM
+ 			|| strm->reserved_enum2 != LZMA_RESERVED_ENUM)
+ 		return LZMA_OPTIONS_ERROR;
+-- 
+1.7.2.3
+
diff --git a/debian/patches/bcj-flush-to-empty-buffer b/debian/patches/bcj-flush-to-empty-buffer
new file mode 100644
index 0000000..b3b25c4
--- /dev/null
+++ b/debian/patches/bcj-flush-to-empty-buffer
@@ -0,0 +1,190 @@
+From: Lasse Collin <lasse.collin@tukaani.org>
+Date: Mon, 28 May 2012 20:42:11 +0300
+Subject: liblzma: Fix possibility of incorrect LZMA_BUF_ERROR.
+
+lzma_code() could incorrectly return LZMA_BUF_ERROR if
+all of the following was true:
+
+  - The caller knows how many bytes of output to expect
+    and only provides that much output space.
+
+  - When the last output bytes are decoded, the
+    caller-provided input buffer ends right before
+    the LZMA2 end of payload marker. So LZMA2 won't
+    provide more output anymore, but it won't know it
+    yet and thus won't return LZMA_STREAM_END yet.
+
+  - A BCJ filter is in use and it hasn't left any
+    unfiltered bytes in the temp buffer. This can happen
+    with any BCJ filter, but in practice it's more likely
+    with filters other than the x86 BCJ.
+
+Another situation where the bug can be triggered happens
+if the uncompressed size is zero bytes and no output space
+is provided. In this case the decompression can fail even
+if the whole input file is given to lzma_code().
+
+A similar bug was fixed in XZ Embedded on 2011-09-19.
+---
+ src/liblzma/simple/simple_coder.c |   2 +-
+ tests/Makefile.am                 |   4 +-
+ tests/test_bcj_exact_size.c       | 112 ++++++++++++++++++++++++++++++++++++++
+ 3 files changed, 116 insertions(+), 2 deletions(-)
+ create mode 100644 tests/test_bcj_exact_size.c
+
+diff --git a/src/liblzma/simple/simple_coder.c b/src/liblzma/simple/simple_coder.c
+index 06db86ec..47183fe1 100644
+--- a/src/liblzma/simple/simple_coder.c
++++ b/src/liblzma/simple/simple_coder.c
+@@ -110,7 +110,7 @@ simple_code(lzma_coder *coder, lzma_allocator *allocator,
+ 	// filtered if the buffer sizes used by the application are reasonable.
+ 	const size_t out_avail = out_size - *out_pos;
+ 	const size_t buf_avail = coder->size - coder->pos;
+-	if (out_avail > buf_avail) {
++	if (out_avail > buf_avail || buf_avail == 0) {
+ 		// Store the old position so that we know from which byte
+ 		// to start filtering.
+ 		const size_t out_start = *out_pos;
+diff --git a/tests/Makefile.am b/tests/Makefile.am
+index 0469264a..6d3e4481 100644
+--- a/tests/Makefile.am
++++ b/tests/Makefile.am
+@@ -34,7 +34,8 @@ check_PROGRAMS = \
+ 	test_stream_flags \
+ 	test_filter_flags \
+ 	test_block_header \
+-	test_index
++	test_index \
++	test_bcj_exact_size
+ 
+ TESTS = \
+ 	test_check \
+@@ -42,6 +43,7 @@ TESTS = \
+ 	test_filter_flags \
+ 	test_block_header \
+ 	test_index \
++	test_bcj_exact_size \
+ 	test_files.sh \
+ 	test_compress.sh \
+ 	test_scripts.sh
+diff --git a/tests/test_bcj_exact_size.c b/tests/test_bcj_exact_size.c
+new file mode 100644
+index 00000000..cbd93405
+--- /dev/null
++++ b/tests/test_bcj_exact_size.c
+@@ -0,0 +1,112 @@
++///////////////////////////////////////////////////////////////////////////////
++//
++/// \file       test_bcj_exact_size.c
++/// \brief      Tests BCJ decoding when the output size is known
++///
++/// These tests fail with XZ Utils 5.0.3 and earlier.
++//
++//  Author:     Lasse Collin
++//
++//  This file has been put into the public domain.
++//  You can do whatever you want with this file.
++//
++///////////////////////////////////////////////////////////////////////////////
++
++#include "tests.h"
++
++
++/// Something to be compressed
++static const uint8_t in[16] = "0123456789ABCDEF";
++
++/// in[] after compression
++static uint8_t compressed[1024];
++static size_t compressed_size = 0;
++
++/// Output buffer for decompressing compressed[]
++static uint8_t out[sizeof(in)];
++
++
++static void
++compress(void)
++{
++	// Compress with PowerPC BCJ and LZMA2. PowerPC BCJ is used because
++	// it has fixed 4-byte alignment which makes triggering the potential
++	// bug easy.
++	lzma_options_lzma opt_lzma2;
++	succeed(lzma_lzma_preset(&opt_lzma2, 0));
++
++	lzma_filter filters[3] = {
++		{ .id = LZMA_FILTER_POWERPC, .options = NULL },
++		{ .id = LZMA_FILTER_LZMA2, .options = &opt_lzma2 },
++		{ .id = LZMA_VLI_UNKNOWN, .options = NULL },
++	};
++
++	expect(lzma_stream_buffer_encode(filters, LZMA_CHECK_CRC32, NULL,
++			in, sizeof(in),
++			compressed, &compressed_size, sizeof(compressed))
++			== LZMA_OK);
++}
++
++
++static void
++decompress(void)
++{
++	lzma_stream strm = LZMA_STREAM_INIT;
++	expect(lzma_stream_decoder(&strm, 10 << 20, 0) == LZMA_OK);
++
++	strm.next_in = compressed;
++	strm.next_out = out;
++
++	while (true) {
++		if (strm.total_in < compressed_size)
++			strm.avail_in = 1;
++
++		const lzma_ret ret = lzma_code(&strm, LZMA_RUN);
++		if (ret == LZMA_STREAM_END) {
++			expect(strm.total_in == compressed_size);
++			expect(strm.total_out == sizeof(in));
++			return;
++		}
++
++		expect(ret == LZMA_OK);
++
++		if (strm.total_out < sizeof(in))
++			strm.avail_out = 1;
++	}
++}
++
++
++static void
++decompress_empty(void)
++{
++	// An empty file with one Block using PowerPC BCJ and LZMA2.
++	static const uint8_t empty_bcj_lzma2[] = {
++		0xFD, 0x37, 0x7A, 0x58, 0x5A, 0x00, 0x00, 0x01,
++		0x69, 0x22, 0xDE, 0x36, 0x02, 0x01, 0x05, 0x00,
++		0x21, 0x01, 0x00, 0x00, 0x7F, 0xE0, 0xF1, 0xC8,
++		0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++		0x00, 0x01, 0x11, 0x00, 0x3B, 0x96, 0x5F, 0x73,
++		0x90, 0x42, 0x99, 0x0D, 0x01, 0x00, 0x00, 0x00,
++		0x00, 0x01, 0x59, 0x5A
++	};
++
++	// Decompress without giving any output space.
++	uint64_t memlimit = 1 << 20;
++	size_t in_pos = 0;
++	size_t out_pos = 0;
++	expect(lzma_stream_buffer_decode(&memlimit, 0, NULL,
++			empty_bcj_lzma2, &in_pos, sizeof(empty_bcj_lzma2),
++			out, &out_pos, 0) == LZMA_OK);
++	expect(in_pos == sizeof(empty_bcj_lzma2));
++	expect(out_pos == 0);
++}
++
++
++extern int
++main(void)
++{
++	compress();
++	decompress();
++	decompress_empty();
++	return 0;
++}
+-- 
+1.7.11.rc3
+
diff --git a/debian/patches/cs-sparse-file b/debian/patches/cs-sparse-file
new file mode 100644
index 0000000..4611d6e
--- /dev/null
+++ b/debian/patches/cs-sparse-file
@@ -0,0 +1,43 @@
+From: Lasse Collin <lasse.collin@tukaani.org>
+Date: Tue, 7 Dec 2010 18:52:04 +0200
+Subject: Translations: Fix Czech translation of "sparse file".
+
+Thanks to Petr Hubený and Marek Černocký.
+---
+ po/cs.po |    6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/po/cs.po b/po/cs.po
+index 5bebf6e4..3ef3fcc9 100644
+--- a/po/cs.po
++++ b/po/cs.po
+@@ -7,7 +7,7 @@ msgstr ""
+ "Project-Id-Version: xz-utils\n"
+ "Report-Msgid-Bugs-To: lasse.collin@tukaani.org\n"
+ "POT-Creation-Date: 2010-10-23 17:48+0300\n"
+-"PO-Revision-Date: 2010-09-17 18:54+0200\n"
++"PO-Revision-Date: 2010-12-03 11:32+0100\n"
+ "Last-Translator: Marek Černocký <marek@manet.cz>\n"
+ "Language-Team: Czech <diskuze@lists.l10n.cz>\n"
+ "Language: cs\n"
+@@ -153,7 +153,7 @@ msgstr "%s: Selhalo zavření souboru: %s"
+ #: src/xz/file_io.c:762 src/xz/file_io.c:946
+ #, c-format
+ msgid "%s: Seeking failed when trying to create a sparse file: %s"
+-msgstr "%s: Selhalo nastavení pozice při pokusu o vytvoření záložního souboru: %s"
++msgstr "%s: Selhalo nastavení pozice při pokusu o vytvoření souboru řídké matice: %s"
+ 
+ #: src/xz/file_io.c:821
+ #, c-format
+@@ -517,7 +517,7 @@ msgid ""
+ "                      filenames must be terminated with the newline character\n"
+ "      --files0[=FILE] like --files but use the null character as terminator"
+ msgstr ""
+-"     --no-sparse       nevytvářet při dekomprimaci záložní soubory\n"
++"     --no-sparse       nevytvářet při dekomprimaci soubory řídkých matic\n"
+ " -S, --suffix=.PRIP    použít u komprimovaných souborů příponu „.PRIP“\n"
+ "     --files[=SOUBOR]  číst názvy souborů, které se mají zpracovat, ze SOUBORu;\n"
+ "                       pokud není SOUBOR zadán, čte se ze standardního vstupu;\n"
+-- 
+1.7.10.2
+
diff --git a/debian/patches/decode-empty-blocks b/debian/patches/decode-empty-blocks
new file mode 100644
index 0000000..89fea1b
--- /dev/null
+++ b/debian/patches/decode-empty-blocks
@@ -0,0 +1,41 @@
+From: Lasse Collin <lasse.collin@tukaani.org>
+Date: Thu, 31 Mar 2011 11:54:48 +0300
+Subject: liblzma: Fix decoding of LZMA2 streams having no uncompressed data.
+
+The decoder considered empty LZMA2 streams to be corrupt.
+This shouldn't matter much with .xz files, because no encoder
+creates empty LZMA2 streams in .xz. This bug is more likely
+to cause problems in applications that use raw LZMA2 streams.
+---
+ src/liblzma/lzma/lzma2_decoder.c | 8 ++++----
+ 1 file changed, 4 insertions(+), 4 deletions(-)
+
+diff --git a/src/liblzma/lzma/lzma2_decoder.c b/src/liblzma/lzma/lzma2_decoder.c
+index f38879ce..3e42575d 100644
+--- a/src/liblzma/lzma/lzma2_decoder.c
++++ b/src/liblzma/lzma/lzma2_decoder.c
+@@ -67,6 +67,10 @@ lzma2_decode(lzma_coder *restrict coder, lzma_dict *restrict dict,
+ 		const uint32_t control = in[*in_pos];
+ 		++*in_pos;
+ 
++		// End marker
++		if (control == 0x00)
++			return LZMA_STREAM_END;
++
+ 		if (control >= 0xE0 || control == 1) {
+ 			// Dictionary reset implies that next LZMA chunk has
+ 			// to set new properties.
+@@ -104,10 +108,6 @@ lzma2_decode(lzma_coder *restrict coder, lzma_dict *restrict dict,
+ 							&coder->options);
+ 			}
+ 		} else {
+-			// End marker
+-			if (control == 0x00)
+-				return LZMA_STREAM_END;
+-
+ 			// Invalid control values
+ 			if (control > 2)
+ 				return LZMA_DATA_ERROR;
+-- 
+1.7.11.rc3
+
diff --git a/debian/patches/decode-empty-blocks-test b/debian/patches/decode-empty-blocks-test
new file mode 100644
index 0000000..e97bb28
--- /dev/null
+++ b/debian/patches/decode-empty-blocks-test
@@ -0,0 +1,28 @@
+From: Lasse Collin <lasse.collin@tukaani.org>
+Date: Thu, 31 Mar 2011 12:22:55 +0300
+Subject: Tests: Add a new file to test empty LZMA2 streams.
+
+---
+ tests/files/README            |   4 ++++
+ tests/files/good-1-lzma2-5.xz | Bin 0 -> 52 bytes
+ 2 files changed, 4 insertions(+)
+ create mode 100644 tests/files/good-1-lzma2-5.xz
+
+diff --git a/tests/files/README b/tests/files/README
+index 108ce8fb..53950edb 100644
+--- a/tests/files/README
++++ b/tests/files/README
+@@ -87,6 +87,10 @@
+     uncompressed with dictionary reset, and third is LZMA with new
+     properties but without dictionary reset.
+ 
++    good-1-lzma2-5.xz has an empty LZMA2 stream with only the end of
++    payload marker. XZ Utils 5.0.1 and older incorrectly see this file
++    as corrupt.
++
+     good-1-3delta-lzma2.xz has three Delta filters and LZMA2.
+ 
+ 
+-- 
+1.7.11.rc3
+
diff --git a/debian/patches/encoder-api-checks b/debian/patches/encoder-api-checks
new file mode 100644
index 0000000..0ff5341
--- /dev/null
+++ b/debian/patches/encoder-api-checks
@@ -0,0 +1,91 @@
+From: Lasse Collin <lasse.collin@tukaani.org>
+Date: Mon, 11 Apr 2011 13:21:28 +0300
+Subject: liblzma: Validate encoder arguments better.
+
+The biggest problem was that the integrity check type
+wasn't validated, and e.g. lzma_easy_buffer_encode()
+would create a corrupt .xz Stream if given an unsupported
+Check ID. Luckily applications don't usually try to use
+an unsupport Check ID, so this bug is unlikely to cause
+many real-world problems.
+---
+ src/liblzma/common/block_buffer_encoder.c  | 18 ++++++++++++------
+ src/liblzma/common/block_encoder.c         |  5 +++++
+ src/liblzma/common/stream_buffer_encoder.c |  3 +++
+ 3 files changed, 20 insertions(+), 6 deletions(-)
+
+diff --git a/src/liblzma/common/block_buffer_encoder.c b/src/liblzma/common/block_buffer_encoder.c
+index a8f71c21..519c6a68 100644
+--- a/src/liblzma/common/block_buffer_encoder.c
++++ b/src/liblzma/common/block_buffer_encoder.c
+@@ -226,16 +226,23 @@ lzma_block_buffer_encode(lzma_block *block, lzma_allocator *allocator,
+ 		const uint8_t *in, size_t in_size,
+ 		uint8_t *out, size_t *out_pos, size_t out_size)
+ {
+-	// Sanity checks
+-	if (block == NULL || block->filters == NULL
+-			|| (in == NULL && in_size != 0) || out == NULL
++	// Validate the arguments.
++	if (block == NULL || (in == NULL && in_size != 0) || out == NULL
+ 			|| out_pos == NULL || *out_pos > out_size)
+ 		return LZMA_PROG_ERROR;
+ 
+-	// Check the version field.
++	// The contents of the structure may depend on the version so
++	// check the version before validating the contents of *block.
+ 	if (block->version != 0)
+ 		return LZMA_OPTIONS_ERROR;
+ 
++	if ((unsigned int)(block->check) > LZMA_CHECK_ID_MAX
++			|| block->filters == NULL)
++		return LZMA_PROG_ERROR;
++
++	if (!lzma_check_is_supported(block->check))
++		return LZMA_UNSUPPORTED_CHECK;
++
+ 	// Size of a Block has to be a multiple of four, so limit the size
+ 	// here already. This way we don't need to check it again when adding
+ 	// Block Padding.
+@@ -243,8 +250,7 @@ lzma_block_buffer_encode(lzma_block *block, lzma_allocator *allocator,
+ 
+ 	// Get the size of the Check field.
+ 	const size_t check_size = lzma_check_size(block->check);
+-	if (check_size == UINT32_MAX)
+-		return LZMA_PROG_ERROR;
++	assert(check_size != UINT32_MAX);
+ 
+ 	// Reserve space for the Check field.
+ 	if (out_size - *out_pos <= check_size)
+diff --git a/src/liblzma/common/block_encoder.c b/src/liblzma/common/block_encoder.c
+index ca515235..b34c5013 100644
+--- a/src/liblzma/common/block_encoder.c
++++ b/src/liblzma/common/block_encoder.c
+@@ -161,6 +161,11 @@ lzma_block_encoder_init(lzma_next_coder *next, lzma_allocator *allocator,
+ {
+ 	lzma_next_coder_init(&lzma_block_encoder_init, next, allocator);
+ 
++	if (block == NULL)
++		return LZMA_PROG_ERROR;
++
++	// The contents of the structure may depend on the version so
++	// check the version first.
+ 	if (block->version != 0)
+ 		return LZMA_OPTIONS_ERROR;
+ 
+diff --git a/src/liblzma/common/stream_buffer_encoder.c b/src/liblzma/common/stream_buffer_encoder.c
+index 0542c30a..2450ee2e 100644
+--- a/src/liblzma/common/stream_buffer_encoder.c
++++ b/src/liblzma/common/stream_buffer_encoder.c
+@@ -51,6 +51,9 @@ lzma_stream_buffer_encode(lzma_filter *filters, lzma_check check,
+ 			|| out_pos_ptr == NULL || *out_pos_ptr > out_size)
+ 		return LZMA_PROG_ERROR;
+ 
++	if (!lzma_check_is_supported(check))
++		return LZMA_UNSUPPORTED_CHECK;
++
+ 	// Note for the paranoids: Index encoder prevents the Stream from
+ 	// getting too big and still being accepted with LZMA_OK, and Block
+ 	// encoder catches if the input is too big. So we don't need to
+-- 
+1.7.11.rc3
+
diff --git a/debian/patches/encoder-skip-empty-blocks b/debian/patches/encoder-skip-empty-blocks
new file mode 100644
index 0000000..ad86f6b
--- /dev/null
+++ b/debian/patches/encoder-skip-empty-blocks
@@ -0,0 +1,61 @@
+From: Lasse Collin <lasse.collin@tukaani.org>
+Date: Mon, 11 Apr 2011 13:59:50 +0300
+Subject: liblzma: Don't create an empty Block in lzma_stream_buffer_encode().
+
+Empty Block was created if the input buffer was empty.
+Empty Block wastes a few bytes of space, but more importantly
+it triggers a bug in XZ Utils 5.0.1 and older when trying
+to decompress such a file. 5.0.1 and older consider such
+files to be corrupt. I thought that no encoder creates empty
+Blocks when releasing 5.0.2 but I was wrong.
+---
+ src/liblzma/common/stream_buffer_encoder.c |   20 +++++++++++++-------
+ 1 file changed, 13 insertions(+), 7 deletions(-)
+
+diff --git a/src/liblzma/common/stream_buffer_encoder.c b/src/liblzma/common/stream_buffer_encoder.c
+index f727d854..0542c30a 100644
+--- a/src/liblzma/common/stream_buffer_encoder.c
++++ b/src/liblzma/common/stream_buffer_encoder.c
+@@ -81,26 +81,32 @@ lzma_stream_buffer_encode(lzma_filter *filters, lzma_check check,
+ 
+ 	out_pos += LZMA_STREAM_HEADER_SIZE;
+ 
+-	// Block
++	// Encode a Block but only if there is at least one byte of input.
+ 	lzma_block block = {
+ 		.version = 0,
+ 		.check = check,
+ 		.filters = filters,
+ 	};
+ 
+-	return_if_error(lzma_block_buffer_encode(&block, allocator,
+-			in, in_size, out, &out_pos, out_size));
++	if (in_size > 0)
++		return_if_error(lzma_block_buffer_encode(&block, allocator,
++				in, in_size, out, &out_pos, out_size));
+ 
+ 	// Index
+ 	{
+-		// Create an Index with one Record.
++		// Create an Index. It will have one Record if there was
++		// at least one byte of input to encode. Otherwise the
++		// Index will be empty.
+ 		lzma_index *i = lzma_index_init(allocator);
+ 		if (i == NULL)
+ 			return LZMA_MEM_ERROR;
+ 
+-		lzma_ret ret = lzma_index_append(i, allocator,
+-				lzma_block_unpadded_size(&block),
+-				block.uncompressed_size);
++		lzma_ret ret = LZMA_OK;
++
++		if (in_size > 0)
++			ret = lzma_index_append(i, allocator,
++					lzma_block_unpadded_size(&block),
++					block.uncompressed_size);
+ 
+ 		// If adding the Record was successful, encode the Index
+ 		// and get its size which will be stored into Stream Footer.
+-- 
+1.7.10.2
+
diff --git a/debian/patches/index_init-NULL-dereference b/debian/patches/index_init-NULL-dereference
new file mode 100644
index 0000000..6517a6d
--- /dev/null
+++ b/debian/patches/index_init-NULL-dereference
@@ -0,0 +1,32 @@
+From: Lasse Collin <lasse.collin@tukaani.org>
+Date: Fri, 27 May 2011 22:09:49 +0300
+Subject: liblzma: Handle allocation failures correctly in lzma_index_init().
+
+Thanks to Jim Meyering.
+---
+ src/liblzma/common/index.c |    7 +++++--
+ 1 file changed, 5 insertions(+), 2 deletions(-)
+
+diff --git a/src/liblzma/common/index.c b/src/liblzma/common/index.c
+index ddb9d364..9af4bc19 100644
+--- a/src/liblzma/common/index.c
++++ b/src/liblzma/common/index.c
+@@ -398,10 +398,13 @@ extern LZMA_API(lzma_index *)
+ lzma_index_init(lzma_allocator *allocator)
+ {
+ 	lzma_index *i = index_init_plain(allocator);
++	if (i == NULL)
++		return NULL;
++
+ 	index_stream *s = index_stream_init(0, 0, 1, 0, allocator);
+-	if (i == NULL || s == NULL) {
+-		index_stream_end(s, allocator);
++	if (s == NULL) {
+ 		lzma_free(i, allocator);
++		return NULL;
+ 	}
+ 
+ 	index_tree_append(&i->streams, &s->node);
+-- 
+1.7.10.2
+
diff --git a/debian/patches/it-stray-N b/debian/patches/it-stray-N
new file mode 100644
index 0000000..a6c4a19
--- /dev/null
+++ b/debian/patches/it-stray-N
@@ -0,0 +1,48 @@
+From: Lasse Collin <lasse.collin@tukaani.org>
+Date: Sat, 28 May 2011 09:47:56 +0300
+Subject: Translations: Update Italian translation.
+
+Thanks to Milo Casagrande.
+---
+ po/it.po |    9 +++++----
+ 1 file changed, 5 insertions(+), 4 deletions(-)
+
+diff --git a/po/it.po b/po/it.po
+index 4f9ef0dd..4bffbe3c 100644
+--- a/po/it.po
++++ b/po/it.po
+@@ -2,13 +2,14 @@
+ # This file is in the public domain
+ # Gruppo traduzione italiano di Ubuntu-it <gruppo-traduzione@ubuntu-it.org>, 2009, 2010
+ # Lorenzo De Liso <blackz@ubuntu.com>, 2010.
+-# Milo Casagrande <milo@ubuntu.com>, 2009, 2010.
++# Milo Casagrande <milo@ubuntu.com>, 2009, 2010, 2011.
++#
+ msgid ""
+ msgstr ""
+ "Project-Id-Version: xz-utils\n"
+ "Report-Msgid-Bugs-To: lasse.collin@tukaani.org\n"
+ "POT-Creation-Date: 2010-10-23 17:48+0300\n"
+-"PO-Revision-Date: 2010-09-16 21:32+0200\n"
++"PO-Revision-Date: 2011-05-27 11:43+0200\n"
+ "Last-Translator: Milo Casagrande <milo@ubuntu.com>\n"
+ "Language-Team: Italian <tp@lists.linux.it>\n"
+ "Language: it\n"
+@@ -17,12 +18,12 @@ msgstr ""
+ "Content-Transfer-Encoding: 8bit\n"
+ "X-Launchpad-Export-Date: 2010-08-16 19:16+0000\n"
+ "X-Generator: Launchpad (build Unknown)\n"
+-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
++"Plural-Forms: nplurals=2; plural=(n != 1)\n"
+ 
+ #: src/xz/args.c:333
+ #, c-format
+ msgid "%s: Unknown file format type"
+-msgstr "%s: tipo di formato del file sconosciutoN"
++msgstr "%s: tipo di formato del file sconosciuto"
+ 
+ #: src/xz/args.c:356 src/xz/args.c:364
+ #, c-format
+-- 
+1.7.10.2
+
diff --git a/debian/patches/series b/debian/patches/series
new file mode 100644
index 0000000..2023d9f
--- /dev/null
+++ b/debian/patches/series
@@ -0,0 +1,17 @@
+abi-reserved-fields
+abi-chunk-size-func
+abi-debian-soname
+cs-sparse-file
+encoder-api-checks
+decode-empty-blocks
+decode-empty-blocks-test
+stream_encoder-init-leak
+encoder-skip-empty-blocks
+xzgrep-argv0-parsing
+index_init-NULL-dereference
+xz-lvv-invalid-free
+xz-lvv-invalid-free-test
+it-stray-N
+xzdiff-save-diff-status
+xzgrep-ignore-SIGPIPE
+bcj-flush-to-empty-buffer
diff --git a/debian/patches/stream_encoder-init-leak b/debian/patches/stream_encoder-init-leak
new file mode 100644
index 0000000..9947182
--- /dev/null
+++ b/debian/patches/stream_encoder-init-leak
@@ -0,0 +1,34 @@
+From: Lasse Collin <lasse.collin@tukaani.org>
+Date: Sat, 2 Apr 2011 14:49:56 +0300
+Subject: liblzma: Fix a memory leak in stream_encoder.c.
+
+It leaks old filter options structures (hundred bytes or so)
+every time the lzma_stream is reinitialized. With the xz tool,
+this happens when compressing multiple files.
+---
+ src/liblzma/common/stream_encoder.c |    2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/liblzma/common/stream_encoder.c b/src/liblzma/common/stream_encoder.c
+index 48d91da7..97a7a23a 100644
+--- a/src/liblzma/common/stream_encoder.c
++++ b/src/liblzma/common/stream_encoder.c
+@@ -280,6 +280,7 @@ lzma_stream_encoder_init(lzma_next_coder *next, lzma_allocator *allocator,
+ 		next->end = &stream_encoder_end;
+ 		next->update = &stream_encoder_update;
+ 
++		next->coder->filters[0].id = LZMA_VLI_UNKNOWN;
+ 		next->coder->block_encoder = LZMA_NEXT_CODER_INIT;
+ 		next->coder->index_encoder = LZMA_NEXT_CODER_INIT;
+ 		next->coder->index = NULL;
+@@ -289,7 +290,6 @@ lzma_stream_encoder_init(lzma_next_coder *next, lzma_allocator *allocator,
+ 	next->coder->sequence = SEQ_STREAM_HEADER;
+ 	next->coder->block_options.version = 0;
+ 	next->coder->block_options.check = check;
+-	next->coder->filters[0].id = LZMA_VLI_UNKNOWN;
+ 
+ 	// Initialize the Index
+ 	lzma_index_end(next->coder->index, allocator);
+-- 
+1.7.10.2
+
diff --git a/debian/patches/xz-lvv-invalid-free b/debian/patches/xz-lvv-invalid-free
new file mode 100644
index 0000000..4959a52
--- /dev/null
+++ b/debian/patches/xz-lvv-invalid-free
@@ -0,0 +1,60 @@
+From: Lasse Collin <lasse.collin@tukaani.org>
+Date: Fri, 27 May 2011 22:25:44 +0300
+Subject: xz: Fix error handling in xz -lvv.
+
+It could do an invalid free() and read past the end
+of the uninitialized filters array.
+---
+ src/xz/list.c |   21 ++++++---------------
+ 1 file changed, 6 insertions(+), 15 deletions(-)
+
+diff --git a/src/xz/list.c b/src/xz/list.c
+index 1c93718b..98307eb2 100644
+--- a/src/xz/list.c
++++ b/src/xz/list.c
+@@ -382,14 +382,9 @@ parse_block_header(file_pair *pair, const lzma_index_iter *iter,
+ 	if (buf.u8[0] == 0)
+ 		goto data_error;
+ 
+-	lzma_block block;
+-	lzma_filter filters[LZMA_FILTERS_MAX + 1];
+-
+-	// Initialize the pointers so that they can be passed to free().
+-	for (size_t i = 0; i < ARRAY_SIZE(filters); ++i)
+-		filters[i].options = NULL;
+-
+ 	// Initialize the block structure and decode Block Header Size.
++	lzma_filter filters[LZMA_FILTERS_MAX + 1];
++	lzma_block block;
+ 	block.version = 0;
+ 	block.check = iter->stream.flags->check;
+ 	block.filters = filters;
+@@ -437,6 +432,10 @@ parse_block_header(file_pair *pair, const lzma_index_iter *iter,
+ 		break;
+ 
+ 	case LZMA_DATA_ERROR:
++		// Free the memory allocated by lzma_block_header_decode().
++		for (size_t i = 0; filters[i].id != LZMA_VLI_UNKNOWN; ++i)
++			free(filters[i].options);
++
+ 		goto data_error;
+ 
+ 	default:
+@@ -466,14 +465,6 @@ data_error:
+ 	// Show the error message.
+ 	message_error("%s: %s", pair->src_name,
+ 			message_strm(LZMA_DATA_ERROR));
+-
+-	// Free the memory allocated by lzma_block_header_decode().
+-	// This is truly needed only if we get here after a succcessful
+-	// call to lzma_block_header_decode() but it doesn't hurt to
+-	// always do it.
+-	for (size_t i = 0; filters[i].id != LZMA_VLI_UNKNOWN; ++i)
+-		free(filters[i].options);
+-
+ 	return true;
+ }
+ 
+-- 
+1.7.10.2
+
diff --git a/debian/patches/xz-lvv-invalid-free-test b/debian/patches/xz-lvv-invalid-free-test
new file mode 100644
index 0000000..c68984b
--- /dev/null
+++ b/debian/patches/xz-lvv-invalid-free-test
@@ -0,0 +1,30 @@
+From: Lasse Collin <lasse.collin@tukaani.org>
+Date: Sat, 28 May 2011 08:46:04 +0300
+Subject: Tests: Add a test file for the bug in the previous commit.
+
+[jrnieder@gmail.com: leaving out bad-1-block_header-6.xz because
+ source format 3.0 (quilt) does not permit binary patches]
+---
+ tests/files/README                  |    4 ++++
+ tests/files/bad-1-block_header-6.xz |  Bin 0 -> 72 bytes
+ 2 files changed, 4 insertions(+)
+ create mode 100644 tests/files/bad-1-block_header-6.xz
+
+diff --git a/tests/files/README b/tests/files/README
+index 392ff768..108ce8fb 100644
+--- a/tests/files/README
++++ b/tests/files/README
+@@ -184,6 +184,10 @@
+ 
+     bad-1-block_header-5.xz has zero as Compressed Size in Block Header.
+ 
++    bad-1-block_header-6.xz has corrupt Block Header which may crash
++    xz -lvv in XZ Utils 5.0.3 and earlier. It was fixed in the commit
++    c0297445064951807803457dca1611b3c47e7f0f.
++
+     bad-2-index-1.xz has wrong Unpadded Sizes in Index.
+ 
+     bad-2-index-2.xz has wrong Uncompressed Sizes in Index.
+-- 
+1.7.10.2
+
diff --git a/debian/patches/xzdiff-save-diff-status b/debian/patches/xzdiff-save-diff-status
new file mode 100644
index 0000000..74048b1
--- /dev/null
+++ b/debian/patches/xzdiff-save-diff-status
@@ -0,0 +1,123 @@
+From: Lasse Collin <lasse.collin@tukaani.org>
+Date: Sun, 31 Jul 2011 11:01:47 +0300
+Subject: Fix exit status of "xzdiff foo.xz bar.xz".
+
+xzdiff was clobbering the exit status from diff in a case
+statement used to analyze the exit statuses from "xz" when
+its operands were two compressed files. Save and restore
+diff's exit status to fix this.
+
+The bug is inherited from zdiff in GNU gzip and was fixed
+there on 2009-10-09.
+
+Thanks to Jonathan Nieder for the patch and
+to Peter Pallinger for reporting the bug.
+---
+ src/scripts/xzdiff.in |    2 ++
+ tests/Makefile.am     |    4 +++-
+ tests/test_scripts.sh |   54 +++++++++++++++++++++++++++++++++++++++++++++++++
+ 3 files changed, 59 insertions(+), 1 deletion(-)
+ create mode 100755 tests/test_scripts.sh
+
+diff --git a/src/scripts/xzdiff.in b/src/scripts/xzdiff.in
+index 2d6e5da4..03428d1a 100644
+--- a/src/scripts/xzdiff.in
++++ b/src/scripts/xzdiff.in
+@@ -120,10 +120,12 @@ elif test $# -eq 2; then
+                 ( ($xz2 -cdfq -- "$2" 4>&-; echo $? >&4) 3>&- 5<&- </dev/null |
+                 eval "$cmp" /dev/fd/5 - >&3) 5<&0
+             )
++            cmp_status=$?
+             case $xz_status in
+               *[1-9]*) xz_status=1;;
+               *) xz_status=0;;
+             esac
++            (exit $cmp_status)
+           else
+             F=`expr "/$2" : '.*/\(.*\)[-.][ablmtxz2]*$'` || F=$prog
+             tmp=
+diff --git a/tests/Makefile.am b/tests/Makefile.am
+index d0807ae4..0469264a 100644
+--- a/tests/Makefile.am
++++ b/tests/Makefile.am
+@@ -10,6 +10,7 @@ EXTRA_DIST = \
+ 	tests.h \
+ 	test_files.sh \
+ 	test_compress.sh \
++	test_scripts.sh \
+ 	bcj_test.c \
+ 	compress_prepared_bcj_sparc \
+ 	compress_prepared_bcj_x86
+@@ -42,7 +43,8 @@ TESTS = \
+ 	test_block_header \
+ 	test_index \
+ 	test_files.sh \
+-	test_compress.sh
++	test_compress.sh \
++	test_scripts.sh
+ 
+ clean-local:
+ 	-rm -f compress_generated_*
+diff --git a/tests/test_scripts.sh b/tests/test_scripts.sh
+new file mode 100755
+index 00000000..891fc76a
+--- /dev/null
++++ b/tests/test_scripts.sh
+@@ -0,0 +1,54 @@
++#!/bin/sh
++
++###############################################################################
++#
++# Author: Jonathan Nieder
++#
++# This file has been put into the public domain.
++# You can do whatever you want with this file.
++#
++###############################################################################
++
++# If scripts weren't built, this test is skipped.
++XZ=../src/xz/xz
++XZDIFF=../src/scripts/xzdiff
++test -x "$XZ" || XZ=
++test -r "$XZDIFF" || XZDIFF=
++if test -z "$XZ" || test -z "$XZDIFF"; then
++	(exit 77)
++	exit 77
++fi
++
++PATH=`pwd`/../src/xz:$PATH
++export PATH
++
++preimage=$srcdir/files/good-1-check-crc32.xz
++samepostimage=$srcdir/files/good-1-check-crc64.xz
++otherpostimage=$srcdir/files/good-1-lzma2-1.xz
++
++sh "$XZDIFF" "$preimage" "$samepostimage" >/dev/null
++status=$?
++if test "$status" != 0 ; then
++	echo "xzdiff with no changes exited with status $status != 0"
++	(exit 1)
++	exit 1
++fi
++
++sh "$XZDIFF" "$preimage" "$otherpostimage" >/dev/null
++status=$?
++if test "$status" != 1 ; then
++	echo "xzdiff with changes exited with status $status != 1"
++	(exit 1)
++	exit 1
++fi
++
++sh "$XZDIFF" "$preimage" "$srcdir/files/missing.xz" >/dev/null 2>&1
++status=$?
++if test "$status" != 2 ; then
++	echo "xzdiff with missing operand exited with status $status != 2"
++	(exit 1)
++	exit 1
++fi
++
++(exit 0)
++exit 0
+-- 
+1.7.10.2
+
diff --git a/debian/patches/xzgrep-argv0-parsing b/debian/patches/xzgrep-argv0-parsing
new file mode 100644
index 0000000..c3e2a58
--- /dev/null
+++ b/debian/patches/xzgrep-argv0-parsing
@@ -0,0 +1,36 @@
+From: Martin Väth <vaeth@mathematik.uni-wuerzburg.de>
+Date: Fri, 15 Apr 2011 04:54:49 -0400
+Subject: xzgrep: fix typo in $0 parsing
+
+Reported-by: Diego Elio Pettenò <flameeyes@gentoo.org>
+Signed-off-by: Martin Väth <vaeth@mathematik.uni-wuerzburg.de>
+Signed-off-by: Mike Frysinger <vapier@gentoo.org>
+---
+ src/scripts/xzgrep.in | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/src/scripts/xzgrep.in b/src/scripts/xzgrep.in
+index cbc6b238..dd945137 100644
+--- a/src/scripts/xzgrep.in
++++ b/src/scripts/xzgrep.in
+@@ -27,7 +27,7 @@
+ xz='@xz@ --format=auto'
+ unset GZIP BZIP BZIP2
+ 
+-case ${0##/*} in
++case ${0##*/} in
+   *egrep*) prog=xzegrep; grep=${GREP:-egrep};;
+   *fgrep*) prog=xzfgrep; grep=${GREP:-fgrep};;
+   *)       prog=xzgrep; grep=${GREP:-grep};;
+@@ -35,7 +35,7 @@ esac
+ 
+ version="$prog (@PACKAGE_NAME@) @VERSION@"
+ 
+-usage="Usage: ${0##/*} [OPTION]... [-e] PATTERN [FILE]...
++usage="Usage: ${0##*/} [OPTION]... [-e] PATTERN [FILE]...
+ Look for instances of PATTERN in the input FILEs, using their
+ uncompressed contents if they are compressed.
+ 
+-- 
+1.7.11.rc3
+
diff --git a/debian/patches/xzgrep-ignore-SIGPIPE b/debian/patches/xzgrep-ignore-SIGPIPE
new file mode 100644
index 0000000..57086c8
--- /dev/null
+++ b/debian/patches/xzgrep-ignore-SIGPIPE
@@ -0,0 +1,36 @@
+From: Lasse Collin <lasse.collin@tukaani.org>
+Date: Wed, 22 Feb 2012 14:02:34 +0200
+Subject: Fix exit status of xzgrep when grepping binary files.
+
+When grepping binary files, grep may exit before it has
+read all the input. In this case, gzip -q returns 2 (eating
+SIGPIPE), but xz and bzip2 show SIGPIPE as the exit status
+(e.g. 141). This causes wrong exit status when grepping
+xz- or bzip2-compressed binary files.
+
+The fix checks for the special exit status that indicates SIGPIPE.
+It uses kill -l which should be supported everywhere since it
+is in both SUSv2 (1997) and POSIX.1-2008.
+
+Thanks to James Buren for the bug report.
+---
+ src/scripts/xzgrep.in |    3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/src/scripts/xzgrep.in b/src/scripts/xzgrep.in
+index bfa9fb53..cbc6b238 100644
+--- a/src/scripts/xzgrep.in
++++ b/src/scripts/xzgrep.in
+@@ -190,7 +190,8 @@ for i; do
+     fi >&3 5>&-
+   )
+   r=$?
+-  test "$xz_status" -eq 0 || test "$xz_status" -eq 2 || r=2
++  test "$xz_status" -eq 0 || test "$xz_status" -eq 2 \
++      || test "$(kill -l "$xz_status" 2> /dev/null)" = "PIPE" || r=2
+   test $res -lt $r && res=$r
+ done
+ exit $res
+-- 
+1.7.10.2
+
diff --git a/debian/rules b/debian/rules
new file mode 100755
index 0000000..9612d54
--- /dev/null
+++ b/debian/rules
@@ -0,0 +1,108 @@
+#!/usr/bin/make -f
+
+build clean install binary-arch binary-indep binary:
+	+dh --parallel $(opt_no_act) $@
+
+override_dh_auto_clean:
+	dh_auto_clean --builddirectory debian/xzdec-build
+	dh_auto_clean --builddirectory debian/normal-build
+	chmod -x tests/test_scripts.sh
+	sh debian/clean.sh
+
+override_dh_auto_configure:
+	autoreconf -fis
+	dh_auto_configure --builddirectory debian/normal-build -- \
+		$(opt_optimize) $(opt_quiet) \
+		--disable-xzdec --disable-lzmadec
+	dh_auto_configure --builddirectory debian/xzdec-build -- \
+		--disable-shared --disable-nls --disable-encoders \
+		--enable-small --disable-threads \
+		$(opt_optimize_small) $(opt_quiet) \
+		--disable-lzmainfo --disable-scripts \
+		--disable-xz --disable-lzma-links
+
+override_dh_auto_build:
+	dh_auto_build --builddirectory debian/normal-build
+	dh_auto_build --builddirectory debian/xzdec-build
+	: 'Work around bug #478524'
+	set -e; if type doxygen >/dev/null 2>/dev/null; \
+	then \
+		cd debian/normal-build; \
+		doxygen Doxyfile; \
+	fi
+
+override_dh_auto_test:
+	chmod +x tests/test_scripts.sh
+	$(MAKE) -C debian/normal-build check
+	$(MAKE) -C debian/xzdec-build/tests create_compress_files
+	$(MAKE) -C debian/xzdec-build/tests \
+		TESTS="test_check test_files.sh test_compress.sh" \
+		check-TESTS
+
+override_dh_auto_install:
+	dh_auto_install --builddirectory debian/xzdec-build
+	dh_auto_install --builddirectory debian/normal-build
+
+override_dh_installchangelogs:
+	dh_installchangelogs debian/changelog.upstream
+
+opt_optimize = CFLAGS="-g -O2"
+opt_optimize_small = CFLAGS="-g -Os"
+opt_no_act =
+opt_quiet =
+
+# Unless noopt is set, use optimized CRC32 routine on the Hurd.
+ifeq (hurd,$(shell dpkg-architecture -qDEB_HOST_ARCH_OS))
+    cputype := $(shell dpkg-architecture -qDEB_HOST_ARCH_CPU)
+    ifeq (i386,$(cputype))
+        opt_optimize += --enable-assembler=x86
+        opt_optimize_small += --enable-assembler=x86
+    endif
+    ifeq (amd64,$(cputype))
+        opt_optimize += --enable-assembler=x86_64
+        opt_optimize_small += --enable-assembler=x86_64
+    endif
+endif
+
+ifneq (,$(filter noopt,$(DEB_BUILD_OPTIONS)))
+    opt_optimize = --disable-assembler CFLAGS="-g -O0"
+    opt_optimize_small = --disable-assembler CFLAGS="-g -O0"
+endif
+
+ifneq (,$(findstring n,$(MAKEFLAGS)))
+    opt_no_act = --no-act
+endif
+
+ifneq (,$(filter quiet,$(DEB_BUILD_OPTIONS)))
+    opt_quiet = --quiet
+    MAKEFLAGS += --quiet
+endif
+
+# Build a tarball with the latest upstream version.
+# This is made complicated by the need to choose a nice version number.
+REPO = http://git.tukaani.org/xz.git
+BRANCH = master
+get-orig-source:
+	mkdir debian-orig-source
+	-set -e; cd debian-orig-source; \
+	: Fetch latest upstream version.; \
+		git init -q; \
+		git fetch -q --tags $(REPO); \
+		git fetch -q $(REPO) $(BRANCH); \
+	: Determine version number.; \
+		commit_name=$$(git describe FETCH_HEAD); \
+		release=$${commit_name%%-*}; \
+		date=$$(date --utc --date="$$( \
+			git log -1 --pretty=format:%cD "$$commit_name" \
+			)" "+%Y%m%d"); \
+		if test "$$commit_name" = "$$release"; \
+		then upstream_version=$${commit_name#v}; \
+		else upstream_version="$${release#v}+$${date}"; \
+		fi; \
+	: Generate tarball.; \
+		echo "packaging $$commit_name"; \
+		git archive --format=tar "$$commit_name" \
+			--prefix="xz-utils-$$upstream_version/" | \
+		gzip -n --rsyncable -9 \
+			> "../xz-utils_$$upstream_version.orig.tar.gz"
+	rm -fr debian-orig-source
diff --git a/debian/source/format b/debian/source/format
new file mode 100644
index 0000000..163aaf8
--- /dev/null
+++ b/debian/source/format
@@ -0,0 +1 @@
+3.0 (quilt)
diff --git a/debian/source/include-binaries b/debian/source/include-binaries
new file mode 100644
index 0000000..bc7b083
--- /dev/null
+++ b/debian/source/include-binaries
@@ -0,0 +1,2 @@
+tests/files/bad-1-block_header-6.xz
+tests/files/good-1-lzma2-5.xz
diff --git a/debian/source/local-options b/debian/source/local-options
new file mode 100644
index 0000000..02058dc
--- /dev/null
+++ b/debian/source/local-options
@@ -0,0 +1 @@
+extend-diff-ignore = doc/examples/xz_pipe_(?:de)?comp.c$
diff --git a/debian/symbols b/debian/symbols
new file mode 100644
index 0000000..1a7d6ea
--- /dev/null
+++ b/debian/symbols
@@ -0,0 +1,96 @@
+liblzma.so.2 liblzma2 #MINVER#
+* Build-Depends-Package: liblzma-dev
+ lzma_alone_decoder@Base 4.999.9beta
+ lzma_alone_encoder@Base 4.999.9beta+20091116
+ lzma_auto_decoder@Base 4.999.9beta
+ lzma_block_buffer_bound@Base 4.999.9beta
+ lzma_block_buffer_decode@Base 4.999.9beta
+ lzma_block_buffer_encode@Base 5.0.0-2.1~
+ lzma_block_compressed_size@Base 4.999.9beta+20100602
+ lzma_block_decoder@Base 4.999.9beta
+ lzma_block_encoder@Base 5.0.0-2.1~
+ lzma_block_header_decode@Base 4.999.9beta
+ lzma_block_header_encode@Base 4.999.9beta
+ lzma_block_header_size@Base 4.999.9beta
+ lzma_block_total_size@Base 4.999.9beta
+ lzma_block_unpadded_size@Base 4.999.9beta
+ lzma_check_is_supported@Base 4.999.9beta
+ lzma_check_size@Base 4.999.9beta
+ lzma_chunk_size@Base 4.999.9beta
+ lzma_code@Base 4.999.9beta
+ lzma_crc32@Base 4.999.9beta
+ lzma_crc64@Base 4.999.9beta
+ lzma_easy_buffer_encode@Base 5.0.0-2.1~
+ lzma_easy_decoder_memusage@Base 4.999.9beta
+ lzma_easy_encoder@Base 4.999.9beta
+ lzma_easy_encoder_memusage@Base 4.999.9beta
+ lzma_end@Base 4.999.9beta
+ lzma_filter_decoder_is_supported@Base 4.999.9beta
+ lzma_filter_encoder_is_supported@Base 4.999.9beta
+ lzma_filter_flags_decode@Base 4.999.9beta
+ lzma_filter_flags_encode@Base 4.999.9beta
+ lzma_filter_flags_size@Base 4.999.9beta
+ lzma_filters_copy@Base 4.999.9beta+20091116
+ lzma_filters_update@Base 4.999.9beta+20091116
+ lzma_get_check@Base 4.999.9beta
+ lzma_index_append@Base 4.999.9beta
+ lzma_index_block_count@Base 4.999.9beta+20100117
+ lzma_index_buffer_decode@Base 4.999.9beta
+ lzma_index_buffer_encode@Base 4.999.9beta+20100117
+ lzma_index_cat@Base 4.999.9beta+20100117
+ lzma_index_checks@Base 4.999.9beta+20100117
+ lzma_index_decoder@Base 5.0.0
+ lzma_index_dup@Base 4.999.9beta
+ lzma_index_encoder@Base 5.0.0
+ lzma_index_end@Base 4.999.9beta
+ lzma_index_file_size@Base 4.999.9beta
+ lzma_index_hash_append@Base 4.999.9beta
+ lzma_index_hash_decode@Base 4.999.9beta
+ lzma_index_hash_end@Base 4.999.9beta
+ lzma_index_hash_init@Base 4.999.9beta
+ lzma_index_hash_size@Base 4.999.9beta
+ lzma_index_init@Base 4.999.9beta+20100117
+ lzma_index_iter_init@Base 4.999.9beta+20100117
+ lzma_index_iter_locate@Base 4.999.9beta+20100117
+ lzma_index_iter_next@Base 4.999.9beta+20100117
+ lzma_index_iter_rewind@Base 4.999.9beta+20100117
+ lzma_index_memusage@Base 4.999.9beta+20100117
+ lzma_index_memused@Base 4.999.9beta+20100117
+ lzma_index_size@Base 4.999.9beta
+ lzma_index_stream_count@Base 4.999.9beta+20100117
+ lzma_index_stream_flags@Base 4.999.9beta+20100117
+ lzma_index_stream_padding@Base 4.999.9beta+20100117
+ lzma_index_stream_size@Base 4.999.9beta
+ lzma_index_total_size@Base 4.999.9beta
+ lzma_index_uncompressed_size@Base 4.999.9beta
+ lzma_lzma_preset@Base 4.999.9beta+20091116
+ lzma_memlimit_get@Base 4.999.9beta
+ lzma_memlimit_set@Base 4.999.9beta
+ lzma_memusage@Base 4.999.9beta
+ lzma_mf_is_supported@Base 4.999.9beta
+ lzma_mode_is_supported@Base 4.999.9beta
+ lzma_physmem@Base 4.999.9beta+20091116
+ lzma_properties_decode@Base 4.999.9beta
+ lzma_properties_encode@Base 4.999.9beta
+ lzma_properties_size@Base 4.999.9beta
+ lzma_raw_buffer_decode@Base 4.999.9beta
+ lzma_raw_buffer_encode@Base 4.999.9beta
+ lzma_raw_decoder@Base 4.999.9beta
+ lzma_raw_decoder_memusage@Base 4.999.9beta
+ lzma_raw_encoder@Base 4.999.9beta
+ lzma_raw_encoder_memusage@Base 4.999.9beta
+ lzma_stream_buffer_bound@Base 4.999.9beta
+ lzma_stream_buffer_decode@Base 4.999.9beta
+ lzma_stream_buffer_encode@Base 5.0.0-2.1~
+ lzma_stream_decoder@Base 4.999.9beta
+ lzma_stream_encoder@Base 4.999.9beta
+ lzma_stream_flags_compare@Base 4.999.9beta
+ lzma_stream_footer_decode@Base 4.999.9beta
+ lzma_stream_footer_encode@Base 4.999.9beta
+ lzma_stream_header_decode@Base 4.999.9beta
+ lzma_stream_header_encode@Base 4.999.9beta
+ lzma_version_number@Base 4.999.9beta
+ lzma_version_string@Base 4.999.9beta
+ lzma_vli_decode@Base 4.999.9beta
+ lzma_vli_encode@Base 4.999.9beta
+ lzma_vli_size@Base 4.999.9beta
diff --git a/debian/watch b/debian/watch
new file mode 100644
index 0000000..6352a9c
--- /dev/null
+++ b/debian/watch
@@ -0,0 +1,3 @@
+version=3
+opts=dversionmangle=s/\+\d{8}$// \
+http://tukaani.org/xz/xz-([\d.]*(?:beta)?)\.tar\.gz
diff --git a/debian/xz-lzma.install b/debian/xz-lzma.install
new file mode 100644
index 0000000..7601bc1
--- /dev/null
+++ b/debian/xz-lzma.install
@@ -0,0 +1,8 @@
+usr/bin/lzma
+usr/bin/unlzma
+usr/bin/lzcat
+usr/bin/lzmore
+usr/bin/lzless
+usr/bin/lzdiff
+usr/bin/lzcmp
+usr/bin/lz*grep
diff --git a/debian/xz-lzma.links b/debian/xz-lzma.links
new file mode 100644
index 0000000..7f65243
--- /dev/null
+++ b/debian/xz-lzma.links
@@ -0,0 +1,16 @@
+usr/share/doc/xz-utils/README.gz usr/share/doc/xz-lzma/README.gz
+usr/share/doc/xz-utils/AUTHORS usr/share/doc/xz-lzma/AUTHORS
+usr/share/doc/xz-utils/THANKS usr/share/doc/xz-lzma/THANKS
+usr/share/doc/xz-utils/NEWS.gz usr/share/doc/xz-lzma/NEWS.gz
+usr/share/doc/xz-utils/history.txt.gz usr/share/doc/xz-lzma/history.txt.gz
+usr/share/doc/xz-utils/extra usr/share/doc/xz-lzma/extra
+usr/share/man/man1/xz.1.gz usr/share/man/man1/lzma.1.gz
+usr/share/man/man1/xz.1.gz usr/share/man/man1/unlzma.1.gz
+usr/share/man/man1/xz.1.gz usr/share/man/man1/lzcat.1.gz
+usr/share/man/man1/xzmore.1.gz usr/share/man/man1/lzmore.1.gz
+usr/share/man/man1/xzless.1.gz usr/share/man/man1/lzless.1.gz
+usr/share/man/man1/xzdiff.1.gz usr/share/man/man1/lzdiff.1.gz
+usr/share/man/man1/xzdiff.1.gz usr/share/man/man1/lzcmp.1.gz
+usr/share/man/man1/xzgrep.1.gz usr/share/man/man1/lzgrep.1.gz
+usr/share/man/man1/xzgrep.1.gz usr/share/man/man1/lzegrep.1.gz
+usr/share/man/man1/xzgrep.1.gz usr/share/man/man1/lzfgrep.1.gz
diff --git a/debian/xz-utils.NEWS b/debian/xz-utils.NEWS
new file mode 100644
index 0000000..6eac958
--- /dev/null
+++ b/debian/xz-utils.NEWS
@@ -0,0 +1,31 @@
+xz-utils (4.999.9beta+20100212-2) unstable; urgency=low
+
+  The tiny xzdec and lzmadec decompressors have been moved to the new
+  xzdec package.  One can use xzcat (which is an abbreviation for
+  “xz --decompress --stdout”) to replace them where space is not a
+  premium.
+
+ -- Jonathan Nieder <jrnieder@gmail.com>  Tue, 23 Feb 2010 08:24:10 -0600
+
+xz-utils (4.999.9beta+20100117-1) unstable; urgency=low
+
+  From this version on, xz produces sparse files by default when
+  decompressing.  This saves disk space when reproducing files with long
+  runs of zero bytes, such as file system images.  Implementing this
+  feature requires seeking forward beyond the end of a file so that the
+  operating system knows where to put in a hole.
+
+  If you use xz --decompress to write to end of a file that is appended
+  to at the same time by another process, this could cause concurrent
+  output from the other command to be overwritten.  This is a rare and
+  quite weird thing to do.  If you really want to do it, note that xz’s
+  buffering strategy is not part of its documented interface; to safely
+  interleave concurrent output from xz and another command, a
+  construction such as
+
+  	xz --decompress input.xz | dd ibs=1k obs=1k >> log
+
+  would be needed to avoid unpredictable results.
+
+ -- Jonathan Nieder <jrnieder@gmail.com>  Tue, 02 Feb 2010 15:51:37 -0600
+
diff --git a/debian/xz-utils.README.Debian b/debian/xz-utils.README.Debian
new file mode 100644
index 0000000..763f758
--- /dev/null
+++ b/debian/xz-utils.README.Debian
@@ -0,0 +1,64 @@
+XZ Utils for Debian
+===================
+
+Contents:
+ 1. Differences from standard XZ Utils
+ 2. History
+ 3. LZMA Utils compatibility
+ 4. Configuration
+
+Differences from standard XZ Utils
+----------------------------------
+
+ * The soname of standard liblzma was bumped to 5.0.0, while Debian
+   liblzma remains at 2.0.0.
+
+ * Some corners of the liblzma API (like layout of reserved fields)
+   have therefore been maintained at an older version in Debian
+   liblzma.  Pre-compiled applications built against liblzma on
+   other distributions are likely not to work on this version of
+   Debian if an additional compatibility library is not installed.
+
+See /usr/share/doc/liblzma2/README.Debian for details.
+
+History
+-------
+
+XZ Utils should have been called LZMA Utils 4.42, but it came too late.
+The old .lzma file format has some problems, worst of which is the lack
+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.
+
+LZMA Utils compatibility
+------------------------
+
+To support old scripts and muscle memory, XZ Utils can emulate the
+legacy LZMA Utils interface.  To use this feature, you can install some
+subset of the following list of symbolic links to your $PATH.
+
+	lzma, unlzma, lzcat -> /usr/bin/xz
+	lzgrep, lzegrep, lzfgrep -> /usr/bin/xzgrep
+	lzless -> /usr/bin/xzless
+	lzmore -> /usr/bin/xzmore
+	lzdiff, lzcmp -> /usr/bin/xzdiff
+
+To allow administrators to keep the old lzma package, the xz-utils
+package does not provide those links itself.  If you would like XZ Utils
+to provide these commands by default for all users, install the
+xz-lzma package.
+
+Configuration
+-------------
+
+The memory usage of xz can vary from a few hundred kilobytes to several
+gigabytes depending on the compression settings.  If you would like xz
+to automatically scale down its settings while compressing to decrease
+memory usage, you can declare so by adding an option like the
+following to your environment (e.g., in ~/.profile):
+
+	XZ_DEFAULTS=--memlimit-compress=256MiB
+	export XZ_DEFAULTS
+
+See the "Memory usage" section of the xz(1) manual page for details.
+
+ -- Jonathan Nieder <jrnieder@gmail.com>  Mon, 25 Oct 2010 12:29:25 -0500
diff --git a/debian/xz-utils.docs b/debian/xz-utils.docs
new file mode 100644
index 0000000..463b710
--- /dev/null
+++ b/debian/xz-utils.docs
@@ -0,0 +1,7 @@
+README
+NEWS
+AUTHORS
+THANKS
+doc/history.txt
+doc/faq.txt
+extra
diff --git a/debian/xz-utils.install b/debian/xz-utils.install
new file mode 100644
index 0000000..9acbd88
--- /dev/null
+++ b/debian/xz-utils.install
@@ -0,0 +1,19 @@
+usr/bin/xz
+usr/bin/unxz
+usr/bin/xzcat
+usr/bin/xzmore
+usr/bin/xzless
+usr/bin/xzdiff
+usr/bin/xzcmp
+usr/bin/xz*grep
+usr/share/man/man1/xz.1
+usr/share/man/man1/unxz.1
+usr/share/man/man1/xzcat.1
+usr/share/man/man1/xzmore.1
+usr/share/man/man1/xzless.1
+usr/share/man/man1/xzdiff.1
+usr/share/man/man1/xzcmp.1
+usr/share/man/man1/xz*grep.1
+usr/bin/lzmainfo
+usr/share/man/man1/lzmainfo.1
+usr/share/locale/*/LC_MESSAGES/xz.mo
diff --git a/debian/xzdec.docs b/debian/xzdec.docs
new file mode 100644
index 0000000..7b5ff1f
--- /dev/null
+++ b/debian/xzdec.docs
@@ -0,0 +1,6 @@
+README
+NEWS
+AUTHORS
+THANKS
+doc/history.txt
+doc/faq.txt
diff --git a/debian/xzdec.install b/debian/xzdec.install
new file mode 100644
index 0000000..7f67bd8
--- /dev/null
+++ b/debian/xzdec.install
@@ -0,0 +1,4 @@
+usr/bin/xzdec
+usr/bin/lzmadec
+usr/share/man/man1/xzdec.1
+usr/share/man/man1/lzmadec.1
diff --git a/po/cs.po b/po/cs.po
index a7041ec..3ef3fcc 100644
--- a/po/cs.po
+++ b/po/cs.po
@@ -6,7 +6,7 @@
 msgstr ""
 "Project-Id-Version: xz-utils\n"
 "Report-Msgid-Bugs-To: lasse.collin@tukaani.org\n"
-"POT-Creation-Date: 2010-12-03 11:25+0100\n"
+"POT-Creation-Date: 2010-10-23 17:48+0300\n"
 "PO-Revision-Date: 2010-12-03 11:32+0100\n"
 "Last-Translator: Marek Černocký <marek@manet.cz>\n"
 "Language-Team: Czech <diskuze@lists.l10n.cz>\n"
@@ -30,8 +30,7 @@
 
 #: src/xz/args.c:382
 msgid "Only one file can be specified with `--files' or `--files0'."
-msgstr ""
-"Spolu s přepínači „--files“ nebo „--files0“ může být zadán pouze jeden soubor"
+msgstr "Spolu s přepínači „--files“ nebo „--files0“ může být zadán pouze jeden soubor"
 
 #: src/xz/args.c:445
 #, c-format
@@ -52,8 +51,7 @@
 
 #: src/xz/coder.c:131
 msgid "The exact options of the presets may vary between software versions."
-msgstr ""
-"Přesné volby u přednastavení se mohou lišit mezi různými verzemi softwaru."
+msgstr "Přesné volby u přednastavení se mohou lišit mezi různými verzemi softwaru."
 
 #: src/xz/coder.c:157
 msgid "The .lzma format supports only the LZMA1 filter"
@@ -74,12 +72,8 @@
 
 #: src/xz/coder.c:247
 #, c-format
-msgid ""
-"Adjusted LZMA%c dictionary size from %s MiB to %s MiB to not exceed the "
-"memory usage limit of %s MiB"
-msgstr ""
-"Přizpůsobit velikost slovníku LZMA%c z %s MiB na %s MiB, tak aby nebylo "
-"překročeno omezení použitelné paměti %s MiB"
+msgid "Adjusted LZMA%c dictionary size from %s MiB to %s MiB to not exceed the memory usage limit of %s MiB"
+msgstr "Přizpůsobit velikost slovníku LZMA%c z %s MiB na %s MiB, tak aby nebylo překročeno omezení použitelné paměti %s MiB"
 
 #. TRANSLATORS: When compression or decompression finishes,
 #. and xz is going to remove the source file, xz first checks
@@ -159,8 +153,7 @@
 #: src/xz/file_io.c:762 src/xz/file_io.c:946
 #, c-format
 msgid "%s: Seeking failed when trying to create a sparse file: %s"
-msgstr ""
-"%s: Selhalo nastavení pozice při pokusu o vytvoření souboru řídké matice: %s"
+msgstr "%s: Selhalo nastavení pozice při pokusu o vytvoření souboru řídké matice: %s"
 
 #: src/xz/file_io.c:821
 #, c-format
@@ -319,12 +312,10 @@
 #: src/xz/list.c:693
 msgid ""
 "  Streams:\n"
-"    Stream    Blocks      CompOffset    UncompOffset        CompSize      "
-"UncompSize  Ratio  Check      Padding"
+"    Stream    Blocks      CompOffset    UncompOffset        CompSize      UncompSize  Ratio  Check      Padding"
 msgstr ""
 "  Proudy:\n"
-"     Proud     Bloky     KomprPozice   NekomprPozice   KomprVelikost "
-"NekomprVelikost  Poměr  Kontrola   Zarovnání"
+"     Proud     Bloky     KomprPozice   NekomprPozice   KomprVelikost NekomprVelikost  Poměr  Kontrola   Zarovnání"
 
 #. TRANSLATORS: The second line is column headings. All
 #. except Check are right aligned; Check is left aligned.
@@ -332,12 +323,10 @@
 #, c-format
 msgid ""
 "  Blocks:\n"
-"    Stream     Block      CompOffset    UncompOffset       TotalSize      "
-"UncompSize  Ratio  Check"
+"    Stream     Block      CompOffset    UncompOffset       TotalSize      UncompSize  Ratio  Check"
 msgstr ""
 "  Bloky:\n"
-"     Proud      Blok     KomprPozice   NekomprPozice    CelkVelikost "
-"NekomprVelikost  Poměr  Kontrola"
+"     Proud      Blok     KomprPozice   NekomprPozice    CelkVelikost NekomprVelikost  Poměr  Kontrola"
 
 #. TRANSLATORS: These are additional column headings
 #. for the most verbose listing mode. CheckVal
@@ -408,24 +397,16 @@
 
 #: src/xz/main.c:120
 #, c-format
-msgid ""
-"%s: Null character found when reading filenames; maybe you meant to use `--"
-"files0' instead of `--files'?"
-msgstr ""
-"%s: Byl nalezen nulový znak při čtení názvů souborů; nechtěli jste náhodou "
-"použít „--files0“ místo „--files“?"
+msgid "%s: Null character found when reading filenames; maybe you meant to use `--files0' instead of `--files'?"
+msgstr "%s: Byl nalezen nulový znak při čtení názvů souborů; nechtěli jste náhodou použít „--files0“ místo „--files“?"
 
 #: src/xz/main.c:174
 msgid "Compression and decompression with --robot are not supported yet."
 msgstr "Komprimace a dekomprimace s přepínačem --robot není zatím podporovaná."
 
 #: src/xz/main.c:231
-msgid ""
-"Cannot read data from standard input when reading filenames from standard "
-"input"
-msgstr ""
-"Ze standardního vstupu nelze číst data, když se ze standardního vstupu "
-"načítají názvy souborů"
+msgid "Cannot read data from standard input when reading filenames from standard input"
+msgstr "Ze standardního vstupu nelze číst data, když se ze standardního vstupu načítají názvy souborů"
 
 #: src/xz/message.c:792 src/xz/message.c:842
 msgid "Internal error (bug)"
@@ -441,8 +422,7 @@
 
 #: src/xz/message.c:811
 msgid "Unsupported type of integrity check; not verifying file integrity"
-msgstr ""
-"Nepodporovaný typ kontroly integrity; integrita souboru se nebude ověřovat"
+msgstr "Nepodporovaný typ kontroly integrity; integrita souboru se nebude ověřovat"
 
 #: src/xz/message.c:818
 msgid "Memory usage limit reached"
@@ -491,11 +471,8 @@
 "\n"
 
 #: src/xz/message.c:1091
-msgid ""
-"Mandatory arguments to long options are mandatory for short options too.\n"
-msgstr ""
-"Povinné argumenty pro dlouhé přepínače jsou povinné rovněž pro krátké "
-"přepínače.\n"
+msgid "Mandatory arguments to long options are mandatory for short options too.\n"
+msgstr "Povinné argumenty pro dlouhé přepínače jsou povinné rovněž pro krátké přepínače.\n"
 
 #: src/xz/message.c:1095
 msgid " Operation mode:\n"
@@ -528,10 +505,8 @@
 "  -c, --stdout        write to standard output and don't delete input files"
 msgstr ""
 " -k, --keep            zachovat (nemazat) vstupní soubory\n"
-" -f, --force           vynutit přepis výstupního souboru a de/komprimovat "
-"odkazy\n"
-" -c, --stdout          zapisovat na standardní výstup a nemazat vstupní "
-"soubory"
+" -f, --force           vynutit přepis výstupního souboru a de/komprimovat odkazy\n"
+" -c, --stdout          zapisovat na standardní výstup a nemazat vstupní soubory"
 
 #: src/xz/message.c:1113
 msgid ""
@@ -539,19 +514,15 @@
 "  -S, --suffix=.SUF   use the suffix `.SUF' on compressed files\n"
 "      --files[=FILE]  read filenames to process from FILE; if FILE is\n"
 "                      omitted, filenames are read from the standard input;\n"
-"                      filenames must be terminated with the newline "
-"character\n"
+"                      filenames must be terminated with the newline character\n"
 "      --files0[=FILE] like --files but use the null character as terminator"
 msgstr ""
 "     --no-sparse       nevytvářet při dekomprimaci soubory řídkých matic\n"
 " -S, --suffix=.PRIP    použít u komprimovaných souborů příponu „.PRIP“\n"
-"     --files[=SOUBOR]  číst názvy souborů, které se mají zpracovat, ze "
-"SOUBORu;\n"
-"                       pokud není SOUBOR zadán, čte se ze standardního "
-"vstupu;\n"
+"     --files[=SOUBOR]  číst názvy souborů, které se mají zpracovat, ze SOUBORu;\n"
+"                       pokud není SOUBOR zadán, čte se ze standardního vstupu;\n"
 "                       názvy souborů musí být zakončeny znakem nového řádku\n"
-"     --files0[=SOUBOR] stejné jako --files, ale použít k zakončování nulový "
-"znak"
+"     --files0[=SOUBOR] stejné jako --files, ale použít k zakončování nulový znak"
 
 #: src/xz/message.c:1121
 msgid ""
@@ -570,26 +541,20 @@
 msgstr ""
 " -F, --format=FORMÁT   formát souboru k zakódování nebo dekódování; možné\n"
 "                       hodnoty jsou „auto“ (výchozí), „xz“, „lzma“ a „raw“\n"
-" -C, --check=KONTROLA  typ kontroly integrity: „none“ (používejte s "
-"rozmyslem),\n"
+" -C, --check=KONTROLA  typ kontroly integrity: „none“ (používejte s rozmyslem),\n"
 "                       „crc32“, „crc64“ (výchozí) nebo „sha256“"
 
 #: src/xz/message.c:1130
 msgid ""
-"  -0 ... -9           compression preset; default is 6; take compressor "
-"*and*\n"
-"                      decompressor memory usage into account before using "
-"7-9!"
+"  -0 ... -9           compression preset; default is 6; take compressor *and*\n"
+"                      decompressor memory usage into account before using 7-9!"
 msgstr ""
-" -0 .. -9              přednastavení komprimace; výchozí je 6; než "
-"použijete\n"
-"                       hodnoty 7 – 9, vezměte do úvahy množství použité "
-"paměti"
+" -0 .. -9              přednastavení komprimace; výchozí je 6; než použijete\n"
+"                       hodnoty 7 – 9, vezměte do úvahy množství použité paměti"
 
 #: src/xz/message.c:1134
 msgid ""
-"  -e, --extreme       try to improve compression ratio by using more CPU "
-"time;\n"
+"  -e, --extreme       try to improve compression ratio by using more CPU time;\n"
 "                      does not affect decompressor memory requirements"
 msgstr ""
 " -e, --extreme         zkusit zlepšit poměr komprimace využitím více času\n"
@@ -601,27 +566,22 @@
 "      --memlimit-compress=LIMIT\n"
 "      --memlimit-decompress=LIMIT\n"
 "  -M, --memlimit=LIMIT\n"
-"                      set memory usage limit for compression, "
-"decompression,\n"
+"                      set memory usage limit for compression, decompression,\n"
 "                      or both; LIMIT is in bytes, % of RAM, or 0 for defaults"
 msgstr ""
 "     --memlimit-compress=LIMIT\n"
 "     --memlimit-decompress=LIMIT\n"
 " -M, --memlimit=LIMIT\n"
 "                       nastaví omezení použitelné paměti pro komprimaci,\n"
-"                       dekomprimaci nebo obojí; LIMIT je v bajtech, % z "
-"paměti\n"
+"                       dekomprimaci nebo obojí; LIMIT je v bajtech, % z paměti\n"
 "                       RAM nebo 0 pro výchozí"
 
 #: src/xz/message.c:1146
 msgid ""
-"      --no-adjust     if compression settings exceed the memory usage "
-"limit,\n"
-"                      give an error instead of adjusting the settings "
-"downwards"
+"      --no-adjust     if compression settings exceed the memory usage limit,\n"
+"                      give an error instead of adjusting the settings downwards"
 msgstr ""
-"     --no-adjust       pokud nastavení komprimace přesáhne omezení "
-"použitelné\n"
+"     --no-adjust       pokud nastavení komprimace přesáhne omezení použitelné\n"
 "                       paměti, předat chybu namísto snížení nastavení"
 
 #: src/xz/message.c:1152
@@ -630,16 +590,13 @@
 " Custom filter chain for compression (alternative for using presets):"
 msgstr ""
 "\n"
-"Vlastní omezující filtr pro komprimaci (alternativa k použití "
-"přednastavených):"
+"Vlastní omezující filtr pro komprimaci (alternativa k použití přednastavených):"
 
 #: src/xz/message.c:1161
 msgid ""
 "\n"
-"  --lzma1[=OPTS]      LZMA1 or LZMA2; OPTS is a comma-separated list of zero "
-"or\n"
-"  --lzma2[=OPTS]      more of the following options (valid values; "
-"default):\n"
+"  --lzma1[=OPTS]      LZMA1 or LZMA2; OPTS is a comma-separated list of zero or\n"
+"  --lzma2[=OPTS]      more of the following options (valid values; default):\n"
 "                        preset=PRE reset options to a preset (0-9[e])\n"
 "                        dict=NUM   dictionary size (4KiB - 1536MiB; 8MiB)\n"
 "                        lc=NUM     number of literal context bits (0-4; 3)\n"
@@ -647,29 +604,20 @@
 "                        pb=NUM     number of position bits (0-4; 2)\n"
 "                        mode=MODE  compression mode (fast, normal; normal)\n"
 "                        nice=NUM   nice length of a match (2-273; 64)\n"
-"                        mf=NAME    match finder (hc3, hc4, bt2, bt3, bt4; "
-"bt4)\n"
-"                        depth=NUM  maximum search depth; 0=automatic "
-"(default)"
+"                        mf=NAME    match finder (hc3, hc4, bt2, bt3, bt4; bt4)\n"
+"                        depth=NUM  maximum search depth; 0=automatic (default)"
 msgstr ""
 "\n"
-" --lzma1[=VOLBY]       LZMA1 nebo LZMA2; VOLBY je čárkou oddělovaný seznam "
-"žádné\n"
-" --lzma2[=VOLBY]       nebo více následujících voleb (platné hodnoty; "
-"výchozí):\n"
-"                         preset=PŘE změnit volby na PŘEdnastavené (0 – 9"
-"[e])\n"
-"                         dict=POČ   velikost slovníku (4 KiB – 1536 MiB; 8 "
-"MiB)\n"
-"                         lc=POČ     počet kontextových bitů literálu (0 – 4; "
-"3)\n"
-"                         lp=POČ     počet pozičních bitů literálu (0 – 4; "
-"0)\n"
+" --lzma1[=VOLBY]       LZMA1 nebo LZMA2; VOLBY je čárkou oddělovaný seznam žádné\n"
+" --lzma2[=VOLBY]       nebo více následujících voleb (platné hodnoty; výchozí):\n"
+"                         preset=PŘE změnit volby na PŘEdnastavené (0 – 9[e])\n"
+"                         dict=POČ   velikost slovníku (4 KiB – 1536 MiB; 8 MiB)\n"
+"                         lc=POČ     počet kontextových bitů literálu (0 – 4; 3)\n"
+"                         lp=POČ     počet pozičních bitů literálu (0 – 4; 0)\n"
 "                         pb=POČ     počet pozičních bitů (0 – 4; 2)\n"
 "                         mode=REŽIM režim komprimace (fast, normal; normal)\n"
 "                         nice=NUM   příznivá délka shody (2 – 273; 64)\n"
-"                         mf=NÁZEV   hledání shod (hc3, hc4, bt2, bt3, bt4; "
-"bt4)\n"
+"                         mf=NÁZEV   hledání shod (hc3, hc4, bt2, bt3, bt4; bt4)\n"
 "                         depth=POČ  maximální hloubka prohledávání;\n"
 "                                    0 = automaticky (výchozí)"
 
@@ -704,8 +652,7 @@
 msgstr ""
 "\n"
 " --delta[=VOLBY]       Filtr Delta; platné VOLBY (platné hodnoty; výchozí):\n"
-"                         dist=POČ   vzdálenost mezi bajty, které jsou "
-"odečítány\n"
+"                         dist=POČ   vzdálenost mezi bajty, které jsou odečítány\n"
 "                                    jeden od druhého (1 – 256; 1)"
 
 #: src/xz/message.c:1196
@@ -718,12 +665,10 @@
 
 #: src/xz/message.c:1199
 msgid ""
-"  -q, --quiet         suppress warnings; specify twice to suppress errors "
-"too\n"
+"  -q, --quiet         suppress warnings; specify twice to suppress errors too\n"
 "  -v, --verbose       be verbose; specify twice for even more verbose"
 msgstr ""
-" -q, --quiet           potlačit varování; zadáním dvakrát, potlačíte i "
-"chyby\n"
+" -q, --quiet           potlačit varování; zadáním dvakrát, potlačíte i chyby\n"
 " -v, --verbose         podrobnější zprávy; zadáním dvakrát, budou ještě\n"
 "                       podrobnější"
 
@@ -732,20 +677,17 @@
 msgstr " -Q, --no-warn         způsobí, že varování neovlivní stav ukončení"
 
 #: src/xz/message.c:1206
-msgid ""
-"      --robot         use machine-parsable messages (useful for scripts)"
+msgid "      --robot         use machine-parsable messages (useful for scripts)"
 msgstr ""
 "     --robot           použít strojově analyzovatelné zprávy (užitečné pro\n"
 "                       skripty)"
 
 #: src/xz/message.c:1209
 msgid ""
-"      --info-memory   display the total amount of RAM and the currently "
-"active\n"
+"      --info-memory   display the total amount of RAM and the currently active\n"
 "                      memory usage limits, and exit"
 msgstr ""
-"     --info-memory     zobrazit celkové množství paměti RAM a současné "
-"aktivní\n"
+"     --info-memory     zobrazit celkové množství paměti RAM a současné aktivní\n"
 "                       omezení použitelné paměti a skončit"
 
 #: src/xz/message.c:1212
@@ -753,8 +695,7 @@
 "  -h, --help          display the short help (lists only the basic options)\n"
 "  -H, --long-help     display this long help and exit"
 msgstr ""
-" -h, --help            zobrazit krátkou nápovědu (vypíše jen základní "
-"přepínače)\n"
+" -h, --help            zobrazit krátkou nápovědu (vypíše jen základní přepínače)\n"
 " -H, --long-help       zobrazit tuto úplnou nápovědu a skončit"
 
 #: src/xz/message.c:1216
@@ -763,8 +704,7 @@
 "  -H, --long-help     display the long help (lists also the advanced options)"
 msgstr ""
 " -h, --help            zobrazit tuto zkrácenou nápovědu a skončit\n"
-" -H, --long-help       zobrazit úplnou nápovědu (vypíše i pokročilé "
-"přepínače)"
+" -H, --long-help       zobrazit úplnou nápovědu (vypíše i pokročilé přepínače)"
 
 #: src/xz/message.c:1221
 msgid "  -V, --version       display the version number and exit"
@@ -776,8 +716,7 @@
 "With no FILE, or when FILE is -, read standard input.\n"
 msgstr ""
 "\n"
-"Pokud SOUBOR není zadán nebo pokud je -, bude se číst ze standardního "
-"vstupu.\n"
+"Pokud SOUBOR není zadán nebo pokud je -, bude se číst ze standardního vstupu.\n"
 
 #. TRANSLATORS: This message indicates the bug reporting address
 #. for this package. Please add _another line_ saying
@@ -824,11 +763,8 @@
 
 #: src/xz/suffix.c:79 src/xz/suffix.c:164
 #, c-format
-msgid ""
-"%s: With --format=raw, --suffix=.SUF is required unless writing to stdout"
-msgstr ""
-"%s: S přepínačem --format=raw je vyžadován --sufix=.PRIP, vyjma zápisu do "
-"standardního výstupu"
+msgid "%s: With --format=raw, --suffix=.SUF is required unless writing to stdout"
+msgstr "%s: S přepínačem --format=raw je vyžadován --sufix=.PRIP, vyjma zápisu do standardního výstupu"
 
 #: src/xz/suffix.c:99
 #, c-format
@@ -857,9 +793,7 @@
 
 #: src/xz/util.c:105
 msgid "Valid suffixes are `KiB' (2^10), `MiB' (2^20), and `GiB' (2^30)."
-msgstr ""
-"Platné jednotky s předponami jsou „KiB“ (2^10 B), „MiB“ (2^20 B) a "
-"„GiB“ (2^30 B)."
+msgstr "Platné jednotky s předponami jsou „KiB“ (2^10 B), „MiB“ (2^20 B) a „GiB“ (2^30 B)."
 
 #: src/xz/util.c:122
 #, c-format
@@ -893,49 +827,37 @@
 #~ msgstr "%s MiB (%s bajtů)\n"
 
 #~ msgid ""
-#~ "  -e, --extreme       use more CPU time when encoding to increase "
-#~ "compression\n"
+#~ "  -e, --extreme       use more CPU time when encoding to increase compression\n"
 #~ "                      ratio without increasing memory usage of the decoder"
 #~ msgstr ""
-#~ " -e, --extreme         využít více procesorového času pro kódování, čímž "
-#~ "se\n"
-#~ "                       zvýší kompresní poměr bez zvýšení paměti použité "
-#~ "kodérem"
+#~ " -e, --extreme         využít více procesorového času pro kódování, čímž se\n"
+#~ "                       zvýší kompresní poměr bez zvýšení paměti použité kodérem"
 
 #~ msgid ""
-#~ "  -M, --memory=NUM    use roughly NUM bytes of memory at maximum; 0 "
-#~ "indicates\n"
+#~ "  -M, --memory=NUM    use roughly NUM bytes of memory at maximum; 0 indicates\n"
 #~ "                      the default setting, which is 40 % of total RAM"
 #~ msgstr ""
-#~ " -M, --memory=POČ      použít zhruba POČ bajtů paměti jako maximum; 0 "
-#~ "znamená\n"
-#~ "                       výchozí nastavení, což je 40% celkového množství "
-#~ "paměti"
+#~ " -M, --memory=POČ      použít zhruba POČ bajtů paměti jako maximum; 0 znamená\n"
+#~ "                       výchozí nastavení, což je 40% celkového množství paměti"
 
 #~ msgid ""
 #~ "\n"
-#~ "  --subblock[=OPTS]   Subblock filter; valid OPTS (valid values; "
-#~ "default):\n"
+#~ "  --subblock[=OPTS]   Subblock filter; valid OPTS (valid values; default):\n"
 #~ "                        size=NUM   number of bytes of data per subblock\n"
 #~ "                                   (1 - 256Mi; 4Ki)\n"
-#~ "                        rle=NUM    run-length encoder chunk size (0-256; "
-#~ "0)"
+#~ "                        rle=NUM    run-length encoder chunk size (0-256; 0)"
 #~ msgstr ""
 #~ "\n"
-#~ " --subblock[=VOLBY]    Subblokový filtr; platné VOLBY (platné hodnoty; "
-#~ "výchozí):\n"
+#~ " --subblock[=VOLBY]    Subblokový filtr; platné VOLBY (platné hodnoty; výchozí):\n"
 #~ "                         size=POČ   počet bajtů dat na subblok\n"
 #~ "                                    (1 - 256 Mi; 4 Ki)\n"
-#~ "                         rle=POČ    velikost dávky pro kodér run-length "
-#~ "(0-256; 0)"
+#~ "                         rle=POČ    velikost dávky pro kodér run-length (0-256; 0)"
 
 #~ msgid ""
-#~ "On this system and configuration, this program will use a maximum of "
-#~ "roughly\n"
+#~ "On this system and configuration, this program will use a maximum of roughly\n"
 #~ "%s MiB RAM and "
 #~ msgstr ""
-#~ "Na tomto systému a s tímto nastavením použije tento program maximum ze "
-#~ "zhruba\n"
+#~ "Na tomto systému a s tímto nastavením použije tento program maximum ze zhruba\n"
 #~ "%s MiB RAM a "
 
 #~ msgid ""
diff --git a/po/de.po b/po/de.po
index d88b8cd..2cf17c6 100644
--- a/po/de.po
+++ b/po/de.po
@@ -6,10 +6,11 @@
 msgstr ""
 "Project-Id-Version: XZ Utils 4.999.9beta\n"
 "Report-Msgid-Bugs-To: lasse.collin@tukaani.org\n"
-"POT-Creation-Date: 2010-09-11 17:07+0200\n"
+"POT-Creation-Date: 2010-10-23 17:48+0300\n"
 "PO-Revision-Date: 2010-09-07 20:27+0200\n"
 "Last-Translator:  <maan@systemlinux.org>\n"
 "Language-Team: German\n"
+"Language: \n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
@@ -27,8 +28,7 @@
 
 #: src/xz/args.c:382
 msgid "Only one file can be specified with `--files' or `--files0'."
-msgstr ""
-"Nur ein file kann als Argument für --files oder --files0 angegeben werden."
+msgstr "Nur ein file kann als Argument für --files oder --files0 angegeben werden."
 
 #: src/xz/args.c:445
 #, c-format
@@ -41,8 +41,7 @@
 
 #: src/xz/coder.c:108
 msgid "Memory usage limit is too low for the given filter setup."
-msgstr ""
-"Das Speicher Limit ist zu niedrig für die gegebene Filter Konfiguration."
+msgstr "Das Speicher Limit ist zu niedrig für die gegebene Filter Konfiguration."
 
 #: src/xz/coder.c:129
 msgid "Using a preset in raw mode is discouraged."
@@ -50,9 +49,7 @@
 
 #: src/xz/coder.c:131
 msgid "The exact options of the presets may vary between software versions."
-msgstr ""
-"Die genauen Optionen der Voreinstellung können zwischen Software Versionen "
-"variieren."
+msgstr "Die genauen Optionen der Voreinstellung können zwischen Software Versionen variieren."
 
 #: src/xz/coder.c:157
 msgid "The .lzma format supports only the LZMA1 filter"
@@ -73,12 +70,8 @@
 
 #: src/xz/coder.c:247
 #, c-format
-msgid ""
-"Adjusted LZMA%c dictionary size from %s MiB to %s MiB to not exceed the "
-"memory usage limit of %s MiB"
-msgstr ""
-"Passte LZMA%c Wörterbuch Größe von %s MiB to %s MiB an, um nicht das "
-"Speicher Nutzungslimit von %s MiB zu übersteigen"
+msgid "Adjusted LZMA%c dictionary size from %s MiB to %s MiB to not exceed the memory usage limit of %s MiB"
+msgstr "Passte LZMA%c Wörterbuch Größe von %s MiB to %s MiB an, um nicht das Speicher Nutzungslimit von %s MiB zu übersteigen"
 
 #. TRANSLATORS: When compression or decompression finishes,
 #. and xz is going to remove the source file, xz first checks
@@ -93,8 +86,7 @@
 #: src/xz/file_io.c:137
 #, c-format
 msgid "%s: File seems to have been moved, not removing"
-msgstr ""
-"%s: Datei scheint umbenannt worden zu sein, daher wird sie nicht gelöscht"
+msgstr "%s: Datei scheint umbenannt worden zu sein, daher wird sie nicht gelöscht"
 
 #: src/xz/file_io.c:144 src/xz/file_io.c:590
 #, c-format
@@ -149,8 +141,7 @@
 #: src/xz/file_io.c:714
 #, c-format
 msgid "Error restoring the O_APPEND flag to standard output: %s"
-msgstr ""
-"Fehler beim Wiederherstellen des O_APPEND flags bei Standard Output: %s"
+msgstr "Fehler beim Wiederherstellen des O_APPEND flags bei Standard Output: %s"
 
 #: src/xz/file_io.c:726
 #, c-format
@@ -160,8 +151,7 @@
 #: src/xz/file_io.c:762 src/xz/file_io.c:946
 #, c-format
 msgid "%s: Seeking failed when trying to create a sparse file: %s"
-msgstr ""
-"%s: Positionierungsfehler beim Versuch eine sparse Datei zu erzeugen: %s"
+msgstr "%s: Positionierungsfehler beim Versuch eine sparse Datei zu erzeugen: %s"
 
 #: src/xz/file_io.c:821
 #, c-format
@@ -212,7 +202,7 @@
 #. but the Check ID is known (here 2). This and other "Unknown-N"
 #. strings are used in tables, so the width must not exceed ten
 #. columns with a fixed-width font. It's OK to omit the dash if
-#. you need space for one extra letter.
+#. you need space for one extra letter, but don't use spaces.
 #: src/xz/list.c:69
 msgid "Unknown-2"
 msgstr "Unbek.2"
@@ -320,12 +310,10 @@
 #: src/xz/list.c:693
 msgid ""
 "  Streams:\n"
-"    Stream    Blocks      CompOffset    UncompOffset        CompSize      "
-"UncompSize  Ratio  Check      Padding"
+"    Stream    Blocks      CompOffset    UncompOffset        CompSize      UncompSize  Ratio  Check      Padding"
 msgstr ""
 "  Ströme:\n"
-"     Strom    Blöcke      KompOffset    UnkompOffset       KompGröße     "
-"UnkompGröße  Verh.  Check   Auffüllung"
+"     Strom    Blöcke      KompOffset    UnkompOffset       KompGröße     UnkompGröße  Verh.  Check   Auffüllung"
 
 #. TRANSLATORS: The second line is column headings. All
 #. except Check are right aligned; Check is left aligned.
@@ -333,12 +321,10 @@
 #, c-format
 msgid ""
 "  Blocks:\n"
-"    Stream     Block      CompOffset    UncompOffset       TotalSize      "
-"UncompSize  Ratio  Check"
+"    Stream     Block      CompOffset    UncompOffset       TotalSize      UncompSize  Ratio  Check"
 msgstr ""
 "  Blöcke:\n"
-"     Strom     Block      KompOffset    UnkompOffset      TotalGröße     "
-"UnkompGröße  Verh.  Check"
+"     Strom     Block      KompOffset    UnkompOffset      TotalGröße     UnkompGröße  Verh.  Check"
 
 #. TRANSLATORS: These are additional column headings
 #. for the most verbose listing mode. CheckVal
@@ -390,8 +376,7 @@
 
 #: src/xz/list.c:1072
 msgid "--list works only on .xz files (--format=xz or --format=auto)"
-msgstr ""
-"--list funktioniert nur mit .xz Dateien (--format=xz oder --format=auto)"
+msgstr "--list funktioniert nur mit .xz Dateien (--format=xz oder --format=auto)"
 
 #: src/xz/list.c:1078
 msgid "--list does not support reading from standard input"
@@ -409,79 +394,69 @@
 
 #: src/xz/main.c:120
 #, c-format
-msgid ""
-"%s: Null character found when reading filenames; maybe you meant to use `--"
-"files0' instead of `--files'?"
-msgstr ""
-"%s: Null Charakter gefunden beim Lesen der Dateinamen; Meinten Sie `--"
-"files0' statt `--files'?"
+msgid "%s: Null character found when reading filenames; maybe you meant to use `--files0' instead of `--files'?"
+msgstr "%s: Null Charakter gefunden beim Lesen der Dateinamen; Meinten Sie `--files0' statt `--files'?"
 
 #: src/xz/main.c:174
 msgid "Compression and decompression with --robot are not supported yet."
 msgstr "Kompression und Dekompression mit --robot ist noch nicht unterstützt."
 
 #: src/xz/main.c:231
-msgid ""
-"Cannot read data from standard input when reading filenames from standard "
-"input"
-msgstr ""
-"Lesen der Standardeingabe ist nicht möglich, wenn die Dateinamen auch von "
-"der Standardeingabe gelesen werden"
+msgid "Cannot read data from standard input when reading filenames from standard input"
+msgstr "Lesen der Standardeingabe ist nicht möglich, wenn die Dateinamen auch von der Standardeingabe gelesen werden"
 
-#: src/xz/message.c:800 src/xz/message.c:844
+#: src/xz/message.c:792 src/xz/message.c:842
 msgid "Internal error (bug)"
 msgstr "Interner Fehler (Bug)"
 
-#: src/xz/message.c:807
+#: src/xz/message.c:799
 msgid "Cannot establish signal handlers"
 msgstr "Kann Signal Routine nicht setzen"
 
-#: src/xz/message.c:816
+#: src/xz/message.c:808
 msgid "No integrity check; not verifying file integrity"
 msgstr "Kein Integritäts-Check; werde Datei-Integrität nicht überprüfen"
 
-#: src/xz/message.c:819
+#: src/xz/message.c:811
 msgid "Unsupported type of integrity check; not verifying file integrity"
-msgstr ""
-"Typ des Integritäts-Checks nicht unterstützt; werde Datei-Integrität nicht "
-"überprüfen"
+msgstr "Typ des Integritäts-Checks nicht unterstützt; werde Datei-Integrität nicht überprüfen"
 
-#: src/xz/message.c:826
+#: src/xz/message.c:818
 msgid "Memory usage limit reached"
 msgstr "Speicher-Limit erreicht"
 
-#: src/xz/message.c:829
+#: src/xz/message.c:821
 msgid "File format not recognized"
 msgstr "Datei Format nicht erkannt"
 
-#: src/xz/message.c:832
+#: src/xz/message.c:824
 msgid "Unsupported options"
 msgstr "Optionen nicht unterstützt"
 
-#: src/xz/message.c:835
+#: src/xz/message.c:827
 msgid "Compressed data is corrupt"
 msgstr "Komprimierte Daten sind korrupt"
 
-#: src/xz/message.c:838
+#: src/xz/message.c:830
 msgid "Unexpected end of input"
 msgstr "Unerwartetes Eingabe Ende"
 
-#: src/xz/message.c:886
+#: src/xz/message.c:881
 #, c-format
 msgid "%s MiB of memory is required. The limit is %s."
 msgstr "%s MiB Speicher wird benötigt. Limit ist %s."
 
-#: src/xz/message.c:1053
+#: src/xz/message.c:1048
 #, c-format
 msgid "%s: Filter chain: %s\n"
 msgstr "%s: Filter Kette: %s\n"
 
-#: src/xz/message.c:1063
+#: src/xz/message.c:1058
 #, c-format
 msgid "Try `%s --help' for more information."
 msgstr "Versuchen Sie `%s --help' für mehr Informationen."
 
-#: src/xz/message.c:1089
+#: src/xz/message.c:1084
 #, c-format
 msgid ""
 "Usage: %s [OPTION]... [FILE]...\n"
@@ -492,18 +467,17 @@
 "Komprimiert oder dekomprimiert .xz DATEI(EN).\n"
 "\n"
 
-#: src/xz/message.c:1096
-msgid ""
-"Mandatory arguments to long options are mandatory for short options too.\n"
+#: src/xz/message.c:1091
+msgid "Mandatory arguments to long options are mandatory for short options too.\n"
 msgstr ""
 "Obligatorische Argumente für lange Optionen sind auch für kurze Optionen\n"
 "zwingend.\n"
 
-#: src/xz/message.c:1100
+#: src/xz/message.c:1095
 msgid " Operation mode:\n"
 msgstr " Operationsmodus:\n"
 
-#: src/xz/message.c:1103
+#: src/xz/message.c:1098
 msgid ""
 "  -z, --compress      force compression\n"
 "  -d, --decompress    force decompression\n"
@@ -515,7 +489,7 @@
 "  -t, --test            überprüfe Datei Integrität\n"
 "  -l, --list            liste Datei Informationen"
 
-#: src/xz/message.c:1109
+#: src/xz/message.c:1104
 msgid ""
 "\n"
 " Operation modifiers:\n"
@@ -523,7 +497,7 @@
 "\n"
 " Operationsmodifikatoren:\n"
 
-#: src/xz/message.c:1112
+#: src/xz/message.c:1107
 msgid ""
 "  -k, --keep          keep (don't delete) input files\n"
 "  -f, --force         force overwrite of output file and (de)compress links\n"
@@ -535,14 +509,13 @@
 "  -c, --stdout          schreibe nach Standard Output und lösche nicht die\n"
 "                        Eingabedateien"
 
-#: src/xz/message.c:1118
+#: src/xz/message.c:1113
 msgid ""
 "      --no-sparse     do not create sparse files when decompressing\n"
 "  -S, --suffix=.SUF   use the suffix `.SUF' on compressed files\n"
 "      --files[=FILE]  read filenames to process from FILE; if FILE is\n"
 "                      omitted, filenames are read from the standard input;\n"
-"                      filenames must be terminated with the newline "
-"character\n"
+"                      filenames must be terminated with the newline character\n"
 "      --files0[=FILE] like --files but use the null character as terminator"
 msgstr ""
 "      --no-sparse       erzeuge keine sparse Datei beim Dekomprimieren\n"
@@ -551,10 +524,9 @@
 "                        DATEI nicht angegeben wurde, werden Dateinamen\n"
 "                        von Standard Input gelesen. Dateinamen müssen mit\n"
 "                        einem Zeilenumbruch voneinander getrennt werden\n"
-"      --files0=[DATEI]  wie --files, aber benutze den Null Charakter als "
-"Trenner"
+"      --files0=[DATEI]  wie --files, aber benutze den Null Charakter als Trenner"
 
-#: src/xz/message.c:1126
+#: src/xz/message.c:1121
 msgid ""
 "\n"
 " Basic file format and compression options:\n"
@@ -562,76 +534,62 @@
 "\n"
 " Grundlegende Optionen für Dateiformat und Kompression:\n"
 
-#: src/xz/message.c:1128
+#: src/xz/message.c:1123
 msgid ""
 "  -F, --format=FMT    file format to encode or decode; possible values are\n"
 "                      `auto' (default), `xz', `lzma', and `raw'\n"
 "  -C, --check=CHECK   integrity check type: `none' (use with caution),\n"
 "                      `crc32', `crc64' (default), or `sha256'"
 msgstr ""
-"  -F, --format=FMT      Dateiformat zur Kodierung oder Dekodierung; "
-"mögliche\n"
-"                        Werte sind `auto' (Voreinstellung), `xz', `lzma' "
-"und\n"
+"  -F, --format=FMT      Dateiformat zur Kodierung oder Dekodierung; mögliche\n"
+"                        Werte sind `auto' (Voreinstellung), `xz', `lzma' und\n"
 "                        `raw'\n"
-"  -C, --check=CHECK     Typ des Integritätschecks: `none' (Vorsicht), "
-"`crc32',\n"
+"  -C, --check=CHECK     Typ des Integritätschecks: `none' (Vorsicht), `crc32',\n"
 "                        `crc64' (Voreinstellung), oder `sha256'"
 
-#: src/xz/message.c:1135
+#: src/xz/message.c:1130
 msgid ""
-"  -0 ... -9           compression preset; default is 6; take compressor "
-"*and*\n"
-"                      decompressor memory usage into account before using 7-"
-"9!"
+"  -0 ... -9           compression preset; default is 6; take compressor *and*\n"
+"                      decompressor memory usage into account before using 7-9!"
 msgstr ""
-"  -0 .. -9              Kompressionseinstellung; Voreinstellung is 6. "
-"Beachten\n"
-"                        Sie den Speicherverbrauch des Komprimieres *und* "
-"des\n"
+"  -0 .. -9              Kompressionseinstellung; Voreinstellung is 6. Beachten\n"
+"                        Sie den Speicherverbrauch des Komprimieres *und* des\n"
 "                        Dekomprimierers, wenn Sie 7-9 benutzen!"
 
-#: src/xz/message.c:1139
+#: src/xz/message.c:1134
 msgid ""
-"  -e, --extreme       try to improve compression ratio by using more CPU "
-"time;\n"
+"  -e, --extreme       try to improve compression ratio by using more CPU time;\n"
 "                      does not affect decompressor memory requirements"
 msgstr ""
-"  -e, --extreme         Versuche durch stärkere CPU Nutzung das "
-"Kompressions-\n"
+"  -e, --extreme         Versuche durch stärkere CPU Nutzung das Kompressions-\n"
 "                        verhältnis zu verbessern. Das beeinflusst nicht den\n"
 "                        Speicherbedarf des Dekomprimierers."
 
-#: src/xz/message.c:1144
+#: src/xz/message.c:1139
 #, no-c-format
 msgid ""
 "      --memlimit-compress=LIMIT\n"
 "      --memlimit-decompress=LIMIT\n"
 "  -M, --memlimit=LIMIT\n"
-"                      set memory usage limit for compression, "
-"decompression,\n"
+"                      set memory usage limit for compression, decompression,\n"
 "                      or both; LIMIT is in bytes, % of RAM, or 0 for defaults"
 msgstr ""
 "      --memlimit-compress=LIMIT\n"
 "      --memlimit-decompress=LIMIT\n"
 "  -M, --memlimit=LIMIT  Setze Speicher Nutzungslimit für Kompression,\n"
-"                        Dekompression, oder beides; LIMIT ist in bytes, % "
-"RAM,\n"
+"                        Dekompression, oder beides; LIMIT ist in bytes, % RAM,\n"
 "                        oder 0 für Grundeinstellungen."
 
-#: src/xz/message.c:1151
+#: src/xz/message.c:1146
 msgid ""
-"      --no-adjust     if compression settings exceed the memory usage "
-"limit,\n"
-"                      give an error instead of adjusting the settings "
-"downwards"
+"      --no-adjust     if compression settings exceed the memory usage limit,\n"
+"                      give an error instead of adjusting the settings downwards"
 msgstr ""
 "      --no-adjust       Wenn die Kompressionseinstellungen das Speicher\n"
-"                        Nutzungslimit übersteigen, erzeuge einen Fehler "
-"statt\n"
+"                        Nutzungslimit übersteigen, erzeuge einen Fehler statt\n"
 "                        die Einstellungen nach unten anzupassen."
 
-#: src/xz/message.c:1157
+#: src/xz/message.c:1152
 msgid ""
 "\n"
 " Custom filter chain for compression (alternative for using presets):"
@@ -639,13 +597,11 @@
 "\n"
 " User-definierte Filter Kette für Kompression (alternativ zu Voreinstellung):"
 
-#: src/xz/message.c:1166
+#: src/xz/message.c:1161
 msgid ""
 "\n"
-"  --lzma1[=OPTS]      LZMA1 or LZMA2; OPTS is a comma-separated list of zero "
-"or\n"
-"  --lzma2[=OPTS]      more of the following options (valid values; "
-"default):\n"
+"  --lzma1[=OPTS]      LZMA1 or LZMA2; OPTS is a comma-separated list of zero or\n"
+"  --lzma2[=OPTS]      more of the following options (valid values; default):\n"
 "                        preset=PRE reset options to a preset (0-9[e])\n"
 "                        dict=NUM   dictionary size (4KiB - 1536MiB; 8MiB)\n"
 "                        lc=NUM     number of literal context bits (0-4; 3)\n"
@@ -653,37 +609,28 @@
 "                        pb=NUM     number of position bits (0-4; 2)\n"
 "                        mode=MODE  compression mode (fast, normal; normal)\n"
 "                        nice=NUM   nice length of a match (2-273; 64)\n"
-"                        mf=NAME    match finder (hc3, hc4, bt2, bt3, bt4; "
-"bt4)\n"
-"                        depth=NUM  maximum search depth; 0=automatic "
-"(default)"
+"                        mf=NAME    match finder (hc3, hc4, bt2, bt3, bt4; bt4)\n"
+"                        depth=NUM  maximum search depth; 0=automatic (default)"
 msgstr ""
 "\n"
 "  --lzma1[=OPTIONEN]    LZMA1 oder LZMA2; OPTIONEN ist eine durch Kommata\n"
-"  --lzma2[=OPTIONEN]    getrennte Liste bestehend aus den folgenden "
-"Optionen\n"
+"  --lzma2[=OPTIONEN]    getrennte Liste bestehend aus den folgenden Optionen\n"
 "                        (zulässige Werte; Voreinstellung):\n"
-"                          preset=NUM Setze Optionen zurück zu "
-"Voreinstellung\n"
+"                          preset=NUM Setze Optionen zurück zu Voreinstellung\n"
 "                                     (0-9[e])\n"
-"                          dict=NUM   Wörterbuch Größe (4 KiB - 1536 MiB; 8 "
-"MiB)\n"
-"                          lc=NUM     Anzahl der Literal Kontext Bits (0-4; "
-"3)\n"
-"                          lp=NUM     Anzahl der Literal Positionsbits (0-4; "
-"0)\n"
+"                          dict=NUM   Wörterbuch Größe (4 KiB - 1536 MiB; 8 MiB)\n"
+"                          lc=NUM     Anzahl der Literal Kontext Bits (0-4; 3)\n"
+"                          lp=NUM     Anzahl der Literal Positionsbits (0-4; 0)\n"
 "                          pb=NUM     Anzahl der Positionsbits (0-4; 2)\n"
-"                          mode=MODUS Kompressionsmodus (fast, normal; "
-"normal)\n"
+"                          mode=MODUS Kompressionsmodus (fast, normal; normal)\n"
 "                          nice=NUM   Nice-Länge eines Treffers (2-273; 64)\n"
 "                          mf=NAME    Algorithmus zum Auffinden von\n"
-"                                     Übereinstimmungen (hc3, hc4, bt2, bt3, "
-"bt4;\n"
+"                                     Übereinstimmungen (hc3, hc4, bt2, bt3, bt4;\n"
 "                                     bt4)\n"
 "                          depth=NUM  Maximale Suchtiefe; 0=automatisch\n"
 "                                     (Voreinstellung)"
 
-#: src/xz/message.c:1181
+#: src/xz/message.c:1176
 msgid ""
 "\n"
 "  --x86[=OPTS]        x86 BCJ filter (32-bit and 64-bit)\n"
@@ -706,7 +653,7 @@
 "                          start=NUM  Start-Offset für Konversion\n"
 "                          (Voreinstellung=0)"
 
-#: src/xz/message.c:1193
+#: src/xz/message.c:1188
 msgid ""
 "\n"
 "  --delta[=OPTS]      Delta filter; valid OPTS (valid values; default):\n"
@@ -716,11 +663,10 @@
 "\n"
 "  --delta[=OPTIONEN]    Delta Filter; zulässige Optionen (gültige Werte;\n"
 "                        Voreinstellung):\n"
-"                          dist=NUM  Abstand zwischen den Bytes, die "
-"voneinander\n"
+"                          dist=NUM  Abstand zwischen den Bytes, die voneinander\n"
 "                                    subtrahiert werden (1-256; 1)"
 
-#: src/xz/message.c:1201
+#: src/xz/message.c:1196
 msgid ""
 "\n"
 " Other options:\n"
@@ -728,37 +674,33 @@
 "\n"
 " Andere Optionen:\n"
 
-#: src/xz/message.c:1204
+#: src/xz/message.c:1199
 msgid ""
-"  -q, --quiet         suppress warnings; specify twice to suppress errors "
-"too\n"
+"  -q, --quiet         suppress warnings; specify twice to suppress errors too\n"
 "  -v, --verbose       be verbose; specify twice for even more verbose"
 msgstr ""
 "  -q, --quiet           unterdrücke Warnungen; benutze diese Option zweimal\n"
 "                        um auch Fehlermeldungen zu unterdrücken\n"
-"  -v, --verbose         sei gesprächig; benutze diese Option zweimal um "
-"noch\n"
+"  -v, --verbose         sei gesprächig; benutze diese Option zweimal um noch\n"
 "                        gesprächiger zu sein"
 
-#: src/xz/message.c:1209
+#: src/xz/message.c:1204
 msgid "  -Q, --no-warn       make warnings not affect the exit status"
 msgstr "  -Q, --no-warn         Warnungen verändern nicht den exit status"
 
-#: src/xz/message.c:1211
-msgid ""
-"      --robot         use machine-parsable messages (useful for scripts)"
+#: src/xz/message.c:1206
+msgid "      --robot         use machine-parsable messages (useful for scripts)"
 msgstr ""
 "      --robot           benutze Maschinen-lesbare Meldungen (nützlich für\n"
 "                        Skripte)"
 
-#: src/xz/message.c:1214
+#: src/xz/message.c:1209
 msgid ""
-"      --info-memory   display the total amount of RAM and the currently "
-"active\n"
+"      --info-memory   display the total amount of RAM and the currently active\n"
 "                      memory usage limits, and exit"
 msgstr "      --info-memory     zeige Speicherlimit an und terminiere"
 
-#: src/xz/message.c:1217
+#: src/xz/message.c:1212
 msgid ""
 "  -h, --help          display the short help (lists only the basic options)\n"
 "  -H, --long-help     display this long help and exit"
@@ -767,21 +709,20 @@
 "                        Optionen)\n"
 "  -H, --long-help       zeige diese lange Hilfe an und terminiere"
 
-#: src/xz/message.c:1221
+#: src/xz/message.c:1216
 msgid ""
 "  -h, --help          display this short help and exit\n"
 "  -H, --long-help     display the long help (lists also the advanced options)"
 msgstr ""
 "  -h, --help            zeige diese kurze Hilfe an und terminiere\n"
-"  -H, --long-help       zeige die lange Hilfe an (zeigt auch "
-"fortgeschrittene\n"
+"  -H, --long-help       zeige die lange Hilfe an (zeigt auch fortgeschrittene\n"
 "                        Optionen an)"
 
-#: src/xz/message.c:1226
+#: src/xz/message.c:1221
 msgid "  -V, --version       display the version number and exit"
 msgstr "  -V, --version         zeige Versionsnummer an und terminiere"
 
-#: src/xz/message.c:1228
+#: src/xz/message.c:1223
 msgid ""
 "\n"
 "With no FILE, or when FILE is -, read standard input.\n"
@@ -794,15 +735,14 @@
 #. for this package. Please add _another line_ saying
 #. "Report translation bugs to <...>\n" with the email or WWW
 #. address for translation bugs. Thanks.
-#: src/xz/message.c:1234
+#: src/xz/message.c:1229
 #, c-format
 msgid "Report bugs to <%s> (in English or Finnish).\n"
 msgstr ""
 "Melde Bugs an <%s> (in englisch oder finnisch).\n"
-"Melde Übersetzungsfehler an <maan@systemlinux.org> (in englisch oder "
-"deutsch).\n"
+"Melde Übersetzungsfehler an <maan@systemlinux.org> (in englisch oder deutsch).\n"
 
-#: src/xz/message.c:1236
+#: src/xz/message.c:1231
 #, c-format
 msgid "%s home page: <%s>\n"
 msgstr "%s Homepage: <%s>\n"
@@ -810,9 +750,7 @@
 #: src/xz/options.c:86
 #, c-format
 msgid "%s: Options must be `name=value' pairs separated with commas"
-msgstr ""
-"%s: Optionen müssen in der Form `Name=Wert` gegeben werden, getrennt durch "
-"Kommata"
+msgstr "%s: Optionen müssen in der Form `Name=Wert` gegeben werden, getrennt durch Kommata"
 
 #: src/xz/options.c:93
 #, c-format
@@ -836,17 +774,12 @@
 #: src/xz/options.c:359
 #, c-format
 msgid "The selected match finder requires at least nice=%<PRIu32>"
-msgstr ""
-"Der ausgewählte Algorithmus zum Auffinden von Übereinstimmungen braucht "
-"mindestens nice=%<PRIu32>"
+msgstr "Der ausgewählte Algorithmus zum Auffinden von Übereinstimmungen braucht mindestens nice=%<PRIu32>"
 
 #: src/xz/suffix.c:79 src/xz/suffix.c:164
 #, c-format
-msgid ""
-"%s: With --format=raw, --suffix=.SUF is required unless writing to stdout"
-msgstr ""
-"%s: Mit --format=raw ist --sufix=.SUF notwendig, falls nicht nach stdout "
-"geschrieben wird"
+msgid "%s: With --format=raw, --suffix=.SUF is required unless writing to stdout"
+msgstr "%s: Mit --format=raw ist --sufix=.SUF notwendig, falls nicht nach stdout geschrieben wird"
 
 #: src/xz/suffix.c:99
 #, c-format
diff --git a/po/it.po b/po/it.po
index ea6f858..4bffbe3 100644
--- a/po/it.po
+++ b/po/it.po
@@ -7,8 +7,8 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: xz-utils\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-05-27 11:42+0200\n"
+"Report-Msgid-Bugs-To: lasse.collin@tukaani.org\n"
+"POT-Creation-Date: 2010-10-23 17:48+0300\n"
 "PO-Revision-Date: 2011-05-27 11:43+0200\n"
 "Last-Translator: Milo Casagrande <milo@ubuntu.com>\n"
 "Language-Team: Italian <tp@lists.linux.it>\n"
@@ -20,72 +20,62 @@
 "X-Generator: Launchpad (build Unknown)\n"
 "Plural-Forms: nplurals=2; plural=(n != 1)\n"
 
-#: ../src/xz/args.c:333
+#: src/xz/args.c:333
 #, c-format
 msgid "%s: Unknown file format type"
 msgstr "%s: tipo di formato del file sconosciuto"
 
-#: ../src/xz/args.c:356 ../src/xz/args.c:364
+#: src/xz/args.c:356 src/xz/args.c:364
 #, c-format
 msgid "%s: Unsupported integrity check type"
 msgstr "%s: tipo di controllo integrità non supportato"
 
-#: ../src/xz/args.c:382
+#: src/xz/args.c:382
 msgid "Only one file can be specified with `--files' or `--files0'."
 msgstr "Solo un file può essere specificato con \"--files\" o \"--files0\"."
 
-#: ../src/xz/args.c:445
+#: src/xz/args.c:445
 #, c-format
 msgid "The environment variable %s contains too many arguments"
 msgstr "La variabile d'ambiente %s contiene troppi argomenti"
 
-#: ../src/xz/coder.c:95
+#: src/xz/coder.c:95
 msgid "Maximum number of filters is four"
 msgstr "Il numero massimo di filtri è quattro"
 
-#: ../src/xz/coder.c:108
+#: src/xz/coder.c:108
 msgid "Memory usage limit is too low for the given filter setup."
-msgstr ""
-"Il limite dell'uso della memoria è troppo basso per l'impostazione del "
-"filtro dato."
+msgstr "Il limite dell'uso della memoria è troppo basso per l'impostazione del filtro dato."
 
-#. The message is shown only if warnings are allowed
-#. but the exit status isn't changed.
-#: ../src/xz/coder.c:129
+#: src/xz/coder.c:129
 msgid "Using a preset in raw mode is discouraged."
 msgstr "Non è consigliato usare un preset nella modalità raw."
 
-#: ../src/xz/coder.c:131
+#: src/xz/coder.c:131
 msgid "The exact options of the presets may vary between software versions."
-msgstr ""
-"Le opzioni esatte per i preset possono variare tra le versioni del software."
+msgstr "Le opzioni esatte per i preset possono variare tra le versioni del software."
 
-#: ../src/xz/coder.c:157
+#: src/xz/coder.c:157
 msgid "The .lzma format supports only the LZMA1 filter"
 msgstr "Il formato .lzma supporta solo il filtro LZMA1"
 
-#: ../src/xz/coder.c:165
+#: src/xz/coder.c:165
 msgid "LZMA1 cannot be used with the .xz format"
 msgstr "LZMA1 non può essere usato con il formato .xz"
 
-#: ../src/xz/coder.c:182
+#: src/xz/coder.c:182
 msgid "Unsupported filter chain or filter options"
 msgstr "Catena di filtri od opzioni del filtro non supportata"
 
-#: ../src/xz/coder.c:190
+#: src/xz/coder.c:190
 #, c-format
 msgid "Decompression will need %s MiB of memory."
 msgstr "L'estrazione necessita di %s MiB di memoria."
 
-#. Tell the user that we decreased the dictionary size.
-#: ../src/xz/coder.c:247
+#: src/xz/coder.c:247
 #, c-format
-msgid ""
-"Adjusted LZMA%c dictionary size from %s MiB to %s MiB to not exceed the "
-"memory usage limit of %s MiB"
-msgstr ""
-"Regolata la dimensione del dizionario LZMA%c da %s MiB a %s MiB per non "
-"superare il limite dell'uso della memoria di %s MiB"
+msgid "Adjusted LZMA%c dictionary size from %s MiB to %s MiB to not exceed the memory usage limit of %s MiB"
+msgstr "Regolata la dimensione del dizionario LZMA%c da %s MiB a %s MiB per non superare il limite dell'uso della memoria di %s MiB"
 
 #. TRANSLATORS: When compression or decompression finishes,
 #. and xz is going to remove the source file, xz first checks
@@ -97,128 +87,118 @@
 #. it is possible that the user has put a new file in place
 #. of the original file, and in that case it obviously
 #. shouldn't be removed.
-#: ../src/xz/file_io.c:137
+#: src/xz/file_io.c:137
 #, c-format
 msgid "%s: File seems to have been moved, not removing"
 msgstr "%s: sembra che il file sia stato spostato, non viene rimosso"
 
-#: ../src/xz/file_io.c:144 ../src/xz/file_io.c:589
+#: src/xz/file_io.c:144 src/xz/file_io.c:590
 #, c-format
 msgid "%s: Cannot remove: %s"
 msgstr "%s: impossibile rimuovere: %s"
 
-#: ../src/xz/file_io.c:169
+#: src/xz/file_io.c:169
 #, c-format
 msgid "%s: Cannot set the file owner: %s"
 msgstr "%s: impossibile impostare il proprietario del file: %s"
 
-#: ../src/xz/file_io.c:175
+#: src/xz/file_io.c:175
 #, c-format
 msgid "%s: Cannot set the file group: %s"
 msgstr "%s: impossibile impostare il gruppo del file: %s"
 
-#: ../src/xz/file_io.c:194
+#: src/xz/file_io.c:194
 #, c-format
 msgid "%s: Cannot set the file permissions: %s"
 msgstr "%s: impossibile impostare i permessi del file: %s"
 
-#: ../src/xz/file_io.c:337 ../src/xz/file_io.c:420
+#: src/xz/file_io.c:337 src/xz/file_io.c:420
 #, c-format
 msgid "%s: Is a symbolic link, skipping"
 msgstr "%s: è un collegamento simbolico, viene saltato"
 
-#: ../src/xz/file_io.c:455
+#: src/xz/file_io.c:455
 #, c-format
 msgid "%s: Is a directory, skipping"
 msgstr "%s: è una directory, viene saltata"
 
-#: ../src/xz/file_io.c:461
+#: src/xz/file_io.c:462
 #, c-format
 msgid "%s: Not a regular file, skipping"
 msgstr "%s: non è un file regolare, viene saltato"
 
-#. gzip rejects setuid and setgid files even
-#. when --force was used. bzip2 doesn't check
-#. for them, but calls fchown() after fchmod(),
-#. and many systems automatically drop setuid
-#. and setgid bits there.
-#.
-#. We accept setuid and setgid files if
-#. --force was used. We drop these bits
-#. explicitly in io_copy_attr().
-#: ../src/xz/file_io.c:478
+#: src/xz/file_io.c:479
 #, c-format
 msgid "%s: File has setuid or setgid bit set, skipping"
 msgstr "%s: il file ha il bit setuid o setgid impostato, viene saltato"
 
-#: ../src/xz/file_io.c:485
+#: src/xz/file_io.c:486
 #, c-format
 msgid "%s: File has sticky bit set, skipping"
 msgstr "%s: il file ha lo sticky bit impostato, viene saltato"
 
-#: ../src/xz/file_io.c:492
+#: src/xz/file_io.c:493
 #, c-format
 msgid "%s: Input file has more than one hard link, skipping"
 msgstr "%s: il file di input ha più di un collegamento fisico, viene saltato"
 
-#: ../src/xz/file_io.c:713
+#: src/xz/file_io.c:714
 #, c-format
 msgid "Error restoring the O_APPEND flag to standard output: %s"
 msgstr "Errore nel ripristinare la flag O_APPEND sullo standard output: %s"
 
-#: ../src/xz/file_io.c:725
+#: src/xz/file_io.c:726
 #, c-format
 msgid "%s: Closing the file failed: %s"
 msgstr "%s: chiusura del file non riuscita: %s"
 
-#: ../src/xz/file_io.c:761 ../src/xz/file_io.c:945
+#: src/xz/file_io.c:762 src/xz/file_io.c:946
 #, c-format
 msgid "%s: Seeking failed when trying to create a sparse file: %s"
-msgstr ""
-"%s: posizionamento non riuscito nel tentativo di creare un file sparso: %s"
+msgstr "%s: posizionamento non riuscito nel tentativo di creare un file sparso: %s"
 
-#: ../src/xz/file_io.c:820
+#: src/xz/file_io.c:821
 #, c-format
 msgid "%s: Read error: %s"
 msgstr "%s: errore di lettura: %s"
 
-#: ../src/xz/file_io.c:843
+#: src/xz/file_io.c:844
 #, c-format
 msgid "%s: Error seeking the file: %s"
 msgstr "%s: errore nel cercare il file: %s"
 
-#: ../src/xz/file_io.c:853
+#: src/xz/file_io.c:854
 #, c-format
 msgid "%s: Unexpected end of file"
 msgstr "%s: fine del file inaspettata"
 
-#: ../src/xz/file_io.c:903
+#: src/xz/file_io.c:904
 #, c-format
 msgid "%s: Write error: %s"
 msgstr "%s: errore di scrittura: %s"
 
-#: ../src/xz/hardware.c:100
+#: src/xz/hardware.c:100
 msgid "Disabled"
 msgstr "Disabilitato"
 
 #. TRANSLATORS: Test with "xz --info-memory" to see if
 #. the alignment looks nice.
-#: ../src/xz/hardware.c:119
+#: src/xz/hardware.c:119
 msgid "Total amount of physical memory (RAM): "
 msgstr "Quantità totale di memoria fisica (RAM):     "
 
-#: ../src/xz/hardware.c:121
+#: src/xz/hardware.c:121
 msgid "Memory usage limit for compression:    "
 msgstr "Limite utilizzo memoria per la compressione: "
 
-#: ../src/xz/hardware.c:123
+#: src/xz/hardware.c:123
 msgid "Memory usage limit for decompression:  "
 msgstr "Limite utilizzo memoria per l'estrazione:    "
 
 #. TRANSLATORS: Indicates that there is no integrity check.
 #. This string is used in tables, so the width must not
 #. exceed ten columns with a fixed-width font.
-#: ../src/xz/list.c:62
+#: src/xz/list.c:62
 msgid "None"
 msgstr "Nessuno"
 
@@ -227,60 +207,60 @@
 #. strings are used in tables, so the width must not exceed ten
 #. columns with a fixed-width font. It's OK to omit the dash if
 #. you need space for one extra letter, but don't use spaces.
-#: ../src/xz/list.c:69
+#: src/xz/list.c:69
 msgid "Unknown-2"
 msgstr "Sconosc2"
 
-#: ../src/xz/list.c:70
+#: src/xz/list.c:70
 msgid "Unknown-3"
 msgstr "Sconosc3"
 
-#: ../src/xz/list.c:72
+#: src/xz/list.c:72
 msgid "Unknown-5"
 msgstr "Sconosc5"
 
-#: ../src/xz/list.c:73
+#: src/xz/list.c:73
 msgid "Unknown-6"
 msgstr "Sconosc6"
 
-#: ../src/xz/list.c:74
+#: src/xz/list.c:74
 msgid "Unknown-7"
 msgstr "Sconosc7"
 
-#: ../src/xz/list.c:75
+#: src/xz/list.c:75
 msgid "Unknown-8"
 msgstr "Sconosc8"
 
-#: ../src/xz/list.c:76
+#: src/xz/list.c:76
 msgid "Unknown-9"
 msgstr "Sconosc9"
 
-#: ../src/xz/list.c:78
+#: src/xz/list.c:78
 msgid "Unknown-11"
 msgstr "Sconosc11"
 
-#: ../src/xz/list.c:79
+#: src/xz/list.c:79
 msgid "Unknown-12"
 msgstr "Sconosc12"
 
-#: ../src/xz/list.c:80
+#: src/xz/list.c:80
 msgid "Unknown-13"
 msgstr "Sconosc13"
 
-#: ../src/xz/list.c:81
+#: src/xz/list.c:81
 msgid "Unknown-14"
 msgstr "Sconosc14"
 
-#: ../src/xz/list.c:82
+#: src/xz/list.c:82
 msgid "Unknown-15"
 msgstr "Sconosc15"
 
-#: ../src/xz/list.c:126
+#: src/xz/list.c:126
 #, c-format
 msgid "%s: File is empty"
 msgstr "%s: il file è vuoto"
 
-#: ../src/xz/list.c:131
+#: src/xz/list.c:131
 #, c-format
 msgid "%s: Too small to be a valid .xz file"
 msgstr "%s: troppo piccolo per essere un file .xz valido"
@@ -289,72 +269,66 @@
 #. to Ratio, the columns are right aligned. Check and Filename
 #. are left aligned. If you need longer words, it's OK to
 #. use two lines here. Test with "xz -l foo.xz".
-#: ../src/xz/list.c:612
+#: src/xz/list.c:612
 msgid "Strms  Blocks   Compressed Uncompressed  Ratio  Check   Filename"
 msgstr " Strm  Blocc.    Compresso     Estratto  Rapp.  Contr   Nome file"
 
-#: ../src/xz/list.c:652
+#: src/xz/list.c:652
 #, c-format
 msgid "  Streams:            %s\n"
 msgstr "  Stream:               %s\n"
 
-#: ../src/xz/list.c:654
+#: src/xz/list.c:654
 #, c-format
 msgid "  Blocks:             %s\n"
 msgstr "  Blocchi:              %s\n"
 
-#: ../src/xz/list.c:656
+#: src/xz/list.c:656
 #, c-format
 msgid "  Compressed size:    %s\n"
 msgstr "  Dim. compresso:       %s\n"
 
-#: ../src/xz/list.c:659
+#: src/xz/list.c:659
 #, c-format
 msgid "  Uncompressed size:  %s\n"
 msgstr "  Dim. estratto:        %s\n"
 
-#: ../src/xz/list.c:662
+#: src/xz/list.c:662
 #, c-format
 msgid "  Ratio:              %s\n"
 msgstr "  Rapporto:             %s\n"
 
-#: ../src/xz/list.c:664
+#: src/xz/list.c:664
 #, c-format
 msgid "  Check:              %s\n"
 msgstr "  Controllo:            %s\n"
 
-#: ../src/xz/list.c:665
+#: src/xz/list.c:665
 #, c-format
 msgid "  Stream padding:     %s\n"
 msgstr "  Padding dello stream: %s\n"
 
-#. Print information about the Streams.
-#.
 #. TRANSLATORS: The second line is column headings. All except
 #. Check are right aligned; Check is left aligned. Test with
 #. "xz -lv foo.xz".
-#: ../src/xz/list.c:693
+#: src/xz/list.c:693
 msgid ""
 "  Streams:\n"
-"    Stream    Blocks      CompOffset    UncompOffset        CompSize      "
-"UncompSize  Ratio  Check      Padding"
+"    Stream    Blocks      CompOffset    UncompOffset        CompSize      UncompSize  Ratio  Check      Padding"
 msgstr ""
 "Stream:\n"
-"    Stream    Blocc.    Offset comp.    Offset estr.      Dim. comp.   Dim. "
-"estratto  Rapp.  Contr      Padding"
+"    Stream    Blocc.    Offset comp.    Offset estr.      Dim. comp.   Dim. estratto  Rapp.  Contr      Padding"
 
 #. TRANSLATORS: The second line is column headings. All
 #. except Check are right aligned; Check is left aligned.
-#: ../src/xz/list.c:748
+#: src/xz/list.c:748
 #, c-format
 msgid ""
 "  Blocks:\n"
-"    Stream     Block      CompOffset    UncompOffset       TotalSize      "
-"UncompSize  Ratio  Check"
+"    Stream     Block      CompOffset    UncompOffset       TotalSize      UncompSize  Ratio  Check"
 msgstr ""
 "  Blocchi:\n"
-"    Stream    Blocc.    Offset comp. Offset estratto       Dim. tot.   Dim. "
-"estratto  Rapp.  Contr"
+"    Stream    Blocc.    Offset comp. Offset estratto       Dim. tot.   Dim. estratto  Rapp.  Contr"
 
 #. TRANSLATORS: These are additional column headings
 #. for the most verbose listing mode. CheckVal
@@ -363,160 +337,130 @@
 #. are right aligned. %*s is replaced with 0-120
 #. spaces to make the CheckVal column wide enough.
 #. Test with "xz -lvv foo.xz".
-#: ../src/xz/list.c:760
+#: src/xz/list.c:760
 #, c-format
 msgid "      CheckVal %*s Header  Flags        CompSize    MemUsage  Filters"
 msgstr "      Val.cont %*s Header  Flag       Dim.compr.    Uso mem.  Filtri"
 
-#: ../src/xz/list.c:838 ../src/xz/list.c:1007
+#: src/xz/list.c:838 src/xz/list.c:1007
 #, c-format
 msgid "  Memory needed:      %s MiB\n"
 msgstr "  Memoria necessaria:   %s MiB\n"
 
-#: ../src/xz/list.c:840 ../src/xz/list.c:1009
+#: src/xz/list.c:840 src/xz/list.c:1009
 #, c-format
 msgid "  Sizes in headers:   %s\n"
 msgstr "  Dim. negli header:    %s\n"
 
-#: ../src/xz/list.c:841 ../src/xz/list.c:1010
+#: src/xz/list.c:841 src/xz/list.c:1010
 msgid "Yes"
 msgstr "Sì"
 
-#: ../src/xz/list.c:841 ../src/xz/list.c:1010
+#: src/xz/list.c:841 src/xz/list.c:1010
 msgid "No"
 msgstr "No"
 
-#. Since we print totals only when there are at least two files,
-#. the English message will always use "%s files". But some other
-#. languages need different forms for different plurals so we
-#. have to translate this with ngettext().
-#.
 #. TRANSLATORS: %s is an integer. Only the plural form of this
 #. message is used (e.g. "2 files"). Test with "xz -l foo.xz bar.xz".
-#: ../src/xz/list.c:986
+#: src/xz/list.c:986
 #, c-format
 msgid "%s file\n"
 msgid_plural "%s files\n"
 msgstr[0] "%s file\n"
 msgstr[1] "%s file\n"
 
-#: ../src/xz/list.c:999
+#: src/xz/list.c:999
 msgid "Totals:"
 msgstr "Totali:"
 
-#: ../src/xz/list.c:1000
+#: src/xz/list.c:1000
 #, c-format
 msgid "  Number of files:    %s\n"
 msgstr "  Numero di file:       %s\n"
 
-#: ../src/xz/list.c:1072
+#: src/xz/list.c:1072
 msgid "--list works only on .xz files (--format=xz or --format=auto)"
 msgstr "--list funziona solamente con file .xz (--format=xz o --format=auto)"
 
-#: ../src/xz/list.c:1078
+#: src/xz/list.c:1078
 msgid "--list does not support reading from standard input"
 msgstr "--list non è in grado di leggere dallo standard input"
 
-#: ../src/xz/main.c:89
+#: src/xz/main.c:89
 #, c-format
 msgid "%s: Error reading filenames: %s"
 msgstr "%s: errore nel leggere i nomi dei file: %s"
 
-#: ../src/xz/main.c:96
+#: src/xz/main.c:96
 #, c-format
 msgid "%s: Unexpected end of input when reading filenames"
 msgstr "%s: fine dell'input durante la lettura dei nomi dei file non attesa"
 
-#. A null character was found when using --files,
-#. which expects plain text input separated with
-#. newlines.
-#: ../src/xz/main.c:120
+#: src/xz/main.c:120
 #, c-format
-msgid ""
-"%s: Null character found when reading filenames; maybe you meant to use `--"
-"files0' instead of `--files'?"
-msgstr ""
-"%s: nessun carattere trovato durante la lettura dei nomi dei file; forse si "
-"intendeva usare \"--files0\" invece di \"--files\"?"
+msgid "%s: Null character found when reading filenames; maybe you meant to use `--files0' instead of `--files'?"
+msgstr "%s: nessun carattere trovato durante la lettura dei nomi dei file; forse si intendeva usare \"--files0\" invece di \"--files\"?"
 
-#: ../src/xz/main.c:174
+#: src/xz/main.c:174
 msgid "Compression and decompression with --robot are not supported yet."
 msgstr "La compressione e l'estrazione con --robot non sono ancora supportate."
 
-#: ../src/xz/main.c:231
-msgid ""
-"Cannot read data from standard input when reading filenames from standard "
-"input"
-msgstr ""
-"Impossibile leggere i dati dallo standard input durante la lettura dei nomi "
-"dei file dallo standard input"
+#: src/xz/main.c:231
+msgid "Cannot read data from standard input when reading filenames from standard input"
+msgstr "Impossibile leggere i dati dallo standard input durante la lettura dei nomi dei file dallo standard input"
 
-#. TRANSLATORS: This is the program name in the beginning
-#. of the line in messages. Usually it becomes "xz: ".
-#. This is a translatable string because French needs
-#. a space before a colon.
-#: ../src/xz/message.c:733
-#, c-format
-msgid "%s: "
-msgstr "%s: "
-
-#: ../src/xz/message.c:796 ../src/xz/message.c:846
+#: src/xz/message.c:792 src/xz/message.c:842
 msgid "Internal error (bug)"
 msgstr "Errore interno (bug)"
 
-#: ../src/xz/message.c:803
+#: src/xz/message.c:799
 msgid "Cannot establish signal handlers"
 msgstr "Impossibile stabilire i gestori dei segnali"
 
-#: ../src/xz/message.c:812
+#: src/xz/message.c:808
 msgid "No integrity check; not verifying file integrity"
-msgstr ""
-"Nessun controllo d'integrità; l'integrità del file non viene verificata"
+msgstr "Nessun controllo d'integrità; l'integrità del file non viene verificata"
 
-#: ../src/xz/message.c:815
+#: src/xz/message.c:811
 msgid "Unsupported type of integrity check; not verifying file integrity"
-msgstr ""
-"Tipo di controllo di integrità non supportato; l'integrità del file non "
-"viene verificata"
+msgstr "Tipo di controllo di integrità non supportato; l'integrità del file non viene verificata"
 
-#: ../src/xz/message.c:822
+#: src/xz/message.c:818
 msgid "Memory usage limit reached"
 msgstr "Limite di utilizzo della memoria raggiunto"
 
-#: ../src/xz/message.c:825
+#: src/xz/message.c:821
 msgid "File format not recognized"
 msgstr "Formato di file non riconosciuto"
 
-#: ../src/xz/message.c:828
+#: src/xz/message.c:824
 msgid "Unsupported options"
 msgstr "Opzioni non supportate"
 
-#: ../src/xz/message.c:831
+#: src/xz/message.c:827
 msgid "Compressed data is corrupt"
 msgstr "I dati compressi sono danneggiati"
 
-#: ../src/xz/message.c:834
+#: src/xz/message.c:830
 msgid "Unexpected end of input"
 msgstr "Fine dell'input non attesa"
 
-#: ../src/xz/message.c:885
+#: src/xz/message.c:881
 #, c-format
 msgid "%s MiB of memory is required. The limit is %s."
 msgstr "%s MiB di memoria sono richiesti. Il limite è %s."
 
-#: ../src/xz/message.c:1052
+#: src/xz/message.c:1048
 #, c-format
 msgid "%s: Filter chain: %s\n"
 msgstr "%s: catena di filtri: %s\n"
 
-#. Print this with V_WARNING instead of V_ERROR to prevent it from
-#. showing up when --quiet has been specified.
-#: ../src/xz/message.c:1062
+#: src/xz/message.c:1058
 #, c-format
 msgid "Try `%s --help' for more information."
 msgstr "Provare \"%s --help\" per maggiori informazioni."
 
-#: ../src/xz/message.c:1088
+#: src/xz/message.c:1084
 #, c-format
 msgid ""
 "Usage: %s [OPTION]... [FILE]...\n"
@@ -527,18 +471,15 @@
 "Comprime o estrae i FILE nel formato .xz.\n"
 "\n"
 
-#: ../src/xz/message.c:1095
-msgid ""
-"Mandatory arguments to long options are mandatory for short options too.\n"
-msgstr ""
-"Gli argomenti obbligatori per le opzioni lunghe lo sono anche per quelle "
-"brevi.\n"
+#: src/xz/message.c:1091
+msgid "Mandatory arguments to long options are mandatory for short options too.\n"
+msgstr "Gli argomenti obbligatori per le opzioni lunghe lo sono anche per quelle brevi.\n"
 
-#: ../src/xz/message.c:1099
+#: src/xz/message.c:1095
 msgid " Operation mode:\n"
 msgstr " Modalità di operazione:\n"
 
-#: ../src/xz/message.c:1102
+#: src/xz/message.c:1098
 msgid ""
 "  -z, --compress      force compression\n"
 "  -d, --decompress    force decompression\n"
@@ -550,7 +491,7 @@
 "  -t, --test          Verifica l'integrità dei file compressi\n"
 "  -l, --list          Elenca informazioni sui file .xz"
 
-#: ../src/xz/message.c:1108
+#: src/xz/message.c:1104
 msgid ""
 "\n"
 " Operation modifiers:\n"
@@ -558,40 +499,35 @@
 "\n"
 " Modificatori di operazioni:\n"
 
-#: ../src/xz/message.c:1111
+#: src/xz/message.c:1107
 msgid ""
 "  -k, --keep          keep (don't delete) input files\n"
 "  -f, --force         force overwrite of output file and (de)compress links\n"
 "  -c, --stdout        write to standard output and don't delete input files"
 msgstr ""
 "  -k, --keep          Mantiene (non elimina) i file di input\n"
-"  -f, --force         Forza la sovrascrittura dell'output e comprime/estrae "
-"i\n"
+"  -f, --force         Forza la sovrascrittura dell'output e comprime/estrae i\n"
 "                      collegamenti\n"
-"  -c, --stdout        Scrive sullo standard output e non elimina i file di "
-"input"
+"  -c, --stdout        Scrive sullo standard output e non elimina i file di input"
 
-#: ../src/xz/message.c:1117
+#: src/xz/message.c:1113
 msgid ""
 "      --no-sparse     do not create sparse files when decompressing\n"
 "  -S, --suffix=.SUF   use the suffix `.SUF' on compressed files\n"
 "      --files[=FILE]  read filenames to process from FILE; if FILE is\n"
 "                      omitted, filenames are read from the standard input;\n"
-"                      filenames must be terminated with the newline "
-"character\n"
+"                      filenames must be terminated with the newline character\n"
 "      --files0[=FILE] like --files but use the null character as terminator"
 msgstr ""
 "      --no-sparse     Non crea file sparsi durante l'estrazione\n"
 "  -S, --suffix=.SUF   Usa il suffisso \".SUF\" sui file compressi\n"
 "      --files=[FILE]  Legge i nomi dei file da elaborare da FILE; se FILE è\n"
-"                      omesso, i nomi dei file sono letti dallo standard "
-"input;\n"
-"                      i nomi dei file devono essere terminati con un "
-"carattere\n"
+"                      omesso, i nomi dei file sono letti dallo standard input;\n"
+"                      i nomi dei file devono essere terminati con un carattere\n"
 "                      di newline\n"
 "      --files0=[FILE] Come --files ma usa il carattere null come terminatore"
 
-#: ../src/xz/message.c:1125
+#: src/xz/message.c:1121
 msgid ""
 "\n"
 " Basic file format and compression options:\n"
@@ -599,76 +535,62 @@
 "\n"
 " Formato file di base e opzioni di compressione:\n"
 
-#: ../src/xz/message.c:1127
+#: src/xz/message.c:1123
 msgid ""
 "  -F, --format=FMT    file format to encode or decode; possible values are\n"
 "                      `auto' (default), `xz', `lzma', and `raw'\n"
 "  -C, --check=CHECK   integrity check type: `none' (use with caution),\n"
 "                      `crc32', `crc64' (default), or `sha256'"
 msgstr ""
-"  -F, --format=FMT    Formato file per codificare o decodificare; i "
-"possibili\n"
-"                      valori sono \"auto\" (predefinito) \"xz\", \"lzma\" e "
-"\"raw\"\n"
-"  -C, --check=CHECK   Tipo di verifica integrità: \"none\" (usare con "
-"attenzione),\n"
+"  -F, --format=FMT    Formato file per codificare o decodificare; i possibili\n"
+"                      valori sono \"auto\" (predefinito) \"xz\", \"lzma\" e \"raw\"\n"
+"  -C, --check=CHECK   Tipo di verifica integrità: \"none\" (usare con attenzione),\n"
 "                      \"crc32\", \"crc64\" (predefinito) o \"sha256\""
 
-#: ../src/xz/message.c:1134
+#: src/xz/message.c:1130
 msgid ""
-"  -0 ... -9           compression preset; default is 6; take compressor "
-"*and*\n"
-"                      decompressor memory usage into account before using "
-"7-9!"
+"  -0 ... -9           compression preset; default is 6; take compressor *and*\n"
+"                      decompressor memory usage into account before using 7-9!"
 msgstr ""
-"  -0 ... -9           Preset di compressione; predefinito è 6; tenere a "
-"mente\n"
-"                      l'utilizzo di memoria per comprimere ed estrarre "
-"prima\n"
+"  -0 ... -9           Preset di compressione; predefinito è 6; tenere a mente\n"
+"                      l'utilizzo di memoria per comprimere ed estrarre prima\n"
 "                      di usare 7-9"
 
-#: ../src/xz/message.c:1138
+#: src/xz/message.c:1134
 msgid ""
-"  -e, --extreme       try to improve compression ratio by using more CPU "
-"time;\n"
+"  -e, --extreme       try to improve compression ratio by using more CPU time;\n"
 "                      does not affect decompressor memory requirements"
 msgstr ""
 "  -e, --extreme       Tenta di migliorare il rapporto di compressione\n"
-"                      utilizzando più tempo di CPU; non cambia i requisiti "
-"di\n"
+"                      utilizzando più tempo di CPU; non cambia i requisiti di\n"
 "                      memoria in fase di estrazione"
 
-#: ../src/xz/message.c:1143
+#: src/xz/message.c:1139
 #, no-c-format
 msgid ""
 "      --memlimit-compress=LIMIT\n"
 "      --memlimit-decompress=LIMIT\n"
 "  -M, --memlimit=LIMIT\n"
-"                      set memory usage limit for compression, "
-"decompression,\n"
+"                      set memory usage limit for compression, decompression,\n"
 "                      or both; LIMIT is in bytes, % of RAM, or 0 for defaults"
 msgstr ""
 "      --memlimit-compress=LIMIT\n"
 "      --memlimit-decompress=LIMIT\n"
 "  -M, --memlimit=LIMIT\n"
 "                      Imposta il limite di utilizzo della memoria per la\n"
-"                      compressione, l'estrazione o entrambe; LIMIT è in "
-"byte,\n"
+"                      compressione, l'estrazione o entrambe; LIMIT è in byte,\n"
 "                      % della memoria RAM oppure 0 per il valore predefinito"
 
-#: ../src/xz/message.c:1150
+#: src/xz/message.c:1146
 msgid ""
-"      --no-adjust     if compression settings exceed the memory usage "
-"limit,\n"
-"                      give an error instead of adjusting the settings "
-"downwards"
+"      --no-adjust     if compression settings exceed the memory usage limit,\n"
+"                      give an error instead of adjusting the settings downwards"
 msgstr ""
-"      --no-adjust     Se le impostazioni di compressione eccedono il limite "
-"di\n"
+"      --no-adjust     Se le impostazioni di compressione eccedono il limite di\n"
 "                      utilizzo della memoria, lancia un errore invece di\n"
 "                      utilizzare valori più piccoli"
 
-#: ../src/xz/message.c:1156
+#: src/xz/message.c:1152
 msgid ""
 "\n"
 " Custom filter chain for compression (alternative for using presets):"
@@ -677,13 +599,11 @@
 " Catena di filtri personalizzati per la compressione (alternative per\n"
 " l'utilizzo di preset):"
 
-#: ../src/xz/message.c:1165
+#: src/xz/message.c:1161
 msgid ""
 "\n"
-"  --lzma1[=OPTS]      LZMA1 or LZMA2; OPTS is a comma-separated list of zero "
-"or\n"
-"  --lzma2[=OPTS]      more of the following options (valid values; "
-"default):\n"
+"  --lzma1[=OPTS]      LZMA1 or LZMA2; OPTS is a comma-separated list of zero or\n"
+"  --lzma2[=OPTS]      more of the following options (valid values; default):\n"
 "                        preset=PRE reset options to a preset (0-9[e])\n"
 "                        dict=NUM   dictionary size (4KiB - 1536MiB; 8MiB)\n"
 "                        lc=NUM     number of literal context bits (0-4; 3)\n"
@@ -691,24 +611,17 @@
 "                        pb=NUM     number of position bits (0-4; 2)\n"
 "                        mode=MODE  compression mode (fast, normal; normal)\n"
 "                        nice=NUM   nice length of a match (2-273; 64)\n"
-"                        mf=NAME    match finder (hc3, hc4, bt2, bt3, bt4; "
-"bt4)\n"
-"                        depth=NUM  maximum search depth; 0=automatic "
-"(default)"
+"                        mf=NAME    match finder (hc3, hc4, bt2, bt3, bt4; bt4)\n"
+"                        depth=NUM  maximum search depth; 0=automatic (default)"
 msgstr ""
 "\n"
-"  --lzma1[=OPZ]      LZMA1 o LZMA2; OPZ è un elenco separato da virgole di "
-"zero\n"
-"  --lzma2[=OPZ]      o più delle seguenti opzioni (valori validi; "
-"predefinito):\n"
-"                        preset=NUM Reimposta le opzioni al preset NUM (0-9"
-"[e])\n"
+"  --lzma1[=OPZ]      LZMA1 o LZMA2; OPZ è un elenco separato da virgole di zero\n"
+"  --lzma2[=OPZ]      o più delle seguenti opzioni (valori validi; predefinito):\n"
+"                        preset=NUM Reimposta le opzioni al preset NUM (0-9[e])\n"
 "                        dict=NUM   Dimensione del dizionario\n"
 "                                   (4KiB - 1536MiB; 8MiB)\n"
-"                        lc=NUM     Numero di bit letterali di contesto (0-4; "
-"3)\n"
-"                        lp=NUM     Numero di bit letterali di posizione "
-"(0-4; 0)\n"
+"                        lc=NUM     Numero di bit letterali di contesto (0-4; 3)\n"
+"                        lp=NUM     Numero di bit letterali di posizione (0-4; 0)\n"
 "                        pb=NUM     Numero di bit di posizione (0-4; 2)\n"
 "                        mode=MODE  Modalità di compressione\n"
 "                                   (fast, normal; normal)\n"
@@ -716,11 +629,10 @@
 "                                   (2-273; 64)\n"
 "                        mf=NAME    Strumento per cercare corrispondenze\n"
 "                                   (hc3, hc4, bt2, bt3, bt4; bt4)\n"
-"                        depth=NUM  Profondità massima di ricerca; "
-"0=automatica\n"
+"                        depth=NUM  Profondità massima di ricerca; 0=automatica\n"
 "                                   (predefinito)"
 
-#: ../src/xz/message.c:1180
+#: src/xz/message.c:1176
 msgid ""
 "\n"
 "  --x86[=OPTS]        x86 BCJ filter (32-bit and 64-bit)\n"
@@ -743,7 +655,7 @@
 "                      start=NUM Offset iniziale per le conversioni\n"
 "                                (predefinito=0)"
 
-#: ../src/xz/message.c:1192
+#: src/xz/message.c:1188
 msgid ""
 "\n"
 "  --delta[=OPTS]      Delta filter; valid OPTS (valid values; default):\n"
@@ -755,7 +667,7 @@
 "                      dist=NUM   Distanza tra byte sottratti\n"
 "                                 gli uni dagli altri (1-256; 1)"
 
-#: ../src/xz/message.c:1200
+#: src/xz/message.c:1196
 msgid ""
 "\n"
 " Other options:\n"
@@ -763,39 +675,33 @@
 "\n"
 " Altre opzioni:\n"
 
-#: ../src/xz/message.c:1203
+#: src/xz/message.c:1199
 msgid ""
-"  -q, --quiet         suppress warnings; specify twice to suppress errors "
-"too\n"
+"  -q, --quiet         suppress warnings; specify twice to suppress errors too\n"
 "  -v, --verbose       be verbose; specify twice for even more verbose"
 msgstr ""
-"  -q, --quiet         Sopprime gli avvisi; specificare due volte per "
-"sopprimere\n"
+"  -q, --quiet         Sopprime gli avvisi; specificare due volte per sopprimere\n"
 "                      anche gli errori\n"
-"  -v, --verbose       Output prolisso; specificare due volte per output "
-"ancora\n"
+"  -v, --verbose       Output prolisso; specificare due volte per output ancora\n"
 "                      più prolisso"
 
-#: ../src/xz/message.c:1208
+#: src/xz/message.c:1204
 msgid "  -Q, --no-warn       make warnings not affect the exit status"
 msgstr "  -Q, --no-warn       Gli avvisi non influenzano lo stato d'uscita"
 
-#: ../src/xz/message.c:1210
-msgid ""
-"      --robot         use machine-parsable messages (useful for scripts)"
+#: src/xz/message.c:1206
+msgid "      --robot         use machine-parsable messages (useful for scripts)"
 msgstr "      --robot         Usa messaggi analizzabili (utile per gli script)"
 
-#: ../src/xz/message.c:1213
+#: src/xz/message.c:1209
 msgid ""
-"      --info-memory   display the total amount of RAM and the currently "
-"active\n"
+"      --info-memory   display the total amount of RAM and the currently active\n"
 "                      memory usage limits, and exit"
 msgstr ""
-"      --info-memory   Visualizza la quantità totale di RAM, il limite "
-"attuale\n"
+"      --info-memory   Visualizza la quantità totale di RAM, il limite attuale\n"
 "                      attivo di utilizzo della memore ed esce"
 
-#: ../src/xz/message.c:1216
+#: src/xz/message.c:1212
 msgid ""
 "  -h, --help          display the short help (lists only the basic options)\n"
 "  -H, --long-help     display this long help and exit"
@@ -803,7 +709,7 @@
 "  -h, --help          Stampa l'aiuto breve (elenca solo le opzioni di base)\n"
 "  -H, --long-help     Stampa questo lungo aiuto ed esce"
 
-#: ../src/xz/message.c:1220
+#: src/xz/message.c:1216
 msgid ""
 "  -h, --help          display this short help and exit\n"
 "  -H, --long-help     display the long help (lists also the advanced options)"
@@ -811,11 +717,11 @@
 "  -h, --help          Stampa questo breve aiuto ed esce\n"
 "  -H, --long-help     Stampa l'aiuto lungo (elenca anche le opzioni avanzate)"
 
-#: ../src/xz/message.c:1225
+#: src/xz/message.c:1221
 msgid "  -V, --version       display the version number and exit"
 msgstr "  -V, --version       Stampa il numero della versione ed esce"
 
-#: ../src/xz/message.c:1227
+#: src/xz/message.c:1223
 msgid ""
 "\n"
 "With no FILE, or when FILE is -, read standard input.\n"
@@ -827,111 +733,102 @@
 #. for this package. Please add _another line_ saying
 #. "Report translation bugs to <...>\n" with the email or WWW
 #. address for translation bugs. Thanks.
-#: ../src/xz/message.c:1233
+#: src/xz/message.c:1229
 #, c-format
 msgid "Report bugs to <%s> (in English or Finnish).\n"
 msgstr ""
 "Segnalare i bug a <%s> (in inglese o finlandese).\n"
 "Segnalare i bug di traduzione a <tp@lists.linux.it>.\n"
 
-#: ../src/xz/message.c:1235
+#: src/xz/message.c:1231
 #, c-format
 msgid "%s home page: <%s>\n"
 msgstr "Sito web di %s: <%s>\n"
 
-#: ../src/xz/options.c:86
+#: src/xz/options.c:86
 #, c-format
 msgid "%s: Options must be `name=value' pairs separated with commas"
-msgstr ""
-"%s: le opzioni devono essere coppie \"nome=valore\" separate da virgole"
+msgstr "%s: le opzioni devono essere coppie \"nome=valore\" separate da virgole"
 
-#: ../src/xz/options.c:93
+#: src/xz/options.c:93
 #, c-format
 msgid "%s: Invalid option name"
 msgstr "%s: nome opzione non valido"
 
-#: ../src/xz/options.c:113
+#: src/xz/options.c:113
 #, c-format
 msgid "%s: Invalid option value"
 msgstr "%s: valore dell'opzione non valido"
 
-#: ../src/xz/options.c:247
+#: src/xz/options.c:247
 #, c-format
 msgid "Unsupported LZMA1/LZMA2 preset: %s"
 msgstr "Preset LZMA/LZMA2 non supportato: %s"
 
-#: ../src/xz/options.c:355
+#: src/xz/options.c:355
 msgid "The sum of lc and lp must not exceed 4"
 msgstr "La somma di lc e lp non deve superare 4"
 
-#: ../src/xz/options.c:359
+#: src/xz/options.c:359
 #, c-format
 msgid "The selected match finder requires at least nice=%<PRIu32>"
-msgstr ""
-"Lo strumento per cercare corrispondenze selezionato richiede almeno nice="
-"%<PRIu32>"
+msgstr "Lo strumento per cercare corrispondenze selezionato richiede almeno nice=%<PRIu32>"
 
-#: ../src/xz/suffix.c:101 ../src/xz/suffix.c:194
+#: src/xz/suffix.c:79 src/xz/suffix.c:164
 #, c-format
-msgid ""
-"%s: With --format=raw, --suffix=.SUF is required unless writing to stdout"
-msgstr ""
-"%s: con --format=raw, --suffix=.SUF è richiesto a meno che non si scriva "
-"sullo stdout"
+msgid "%s: With --format=raw, --suffix=.SUF is required unless writing to stdout"
+msgstr "%s: con --format=raw, --suffix=.SUF è richiesto a meno che non si scriva sullo stdout"
 
-#: ../src/xz/suffix.c:121
+#: src/xz/suffix.c:99
 #, c-format
 msgid "%s: Filename has an unknown suffix, skipping"
 msgstr "%s: il nome del file ha un suffisso sconosciuto, viene saltato"
 
-#: ../src/xz/suffix.c:175 ../src/xz/suffix.c:184
+#: src/xz/suffix.c:154
 #, c-format
 msgid "%s: File already has `%s' suffix, skipping"
 msgstr "%s: il file ha già il suffisso \"%s\", viene saltato"
 
-#: ../src/xz/suffix.c:235
+#: src/xz/suffix.c:205
 #, c-format
 msgid "%s: Invalid filename suffix"
 msgstr "%s: suffisso del nome del file non valido"
 
-#: ../src/xz/util.c:61
+#: src/xz/util.c:61
 #, c-format
 msgid "%s: Value is not a non-negative decimal integer"
 msgstr "%s: il valore non è un numero intero decimale non-negativo"
 
-#: ../src/xz/util.c:103
+#: src/xz/util.c:103
 #, c-format
 msgid "%s: Invalid multiplier suffix"
 msgstr "%s: suffisso del moltiplicatore non valido"
 
-#: ../src/xz/util.c:105
+#: src/xz/util.c:105
 msgid "Valid suffixes are `KiB' (2^10), `MiB' (2^20), and `GiB' (2^30)."
-msgstr ""
-"I suffissi validi sono \"KiB\" (2^10), \"MiB\" (2^20), e \"GiB\" (2^30)."
+msgstr "I suffissi validi sono \"KiB\" (2^10), \"MiB\" (2^20), e \"GiB\" (2^30)."
 
-#: ../src/xz/util.c:122
+#: src/xz/util.c:122
 #, c-format
 msgid "Value of the option `%s' must be in the range [%<PRIu64>, %<PRIu64>]"
-msgstr ""
-"Il valore dell'opzione \"%s\" deve essere nell'intervallo [%<PRIu64>, "
-"%<PRIu64>]"
+msgstr "Il valore dell'opzione \"%s\" deve essere nell'intervallo [%<PRIu64>, %<PRIu64>]"
 
-#: ../src/xz/util.c:247
+#: src/xz/util.c:247
 msgid "Empty filename, skipping"
 msgstr "Nome file vuoto, viene saltato"
 
-#: ../src/xz/util.c:261
+#: src/xz/util.c:261
 msgid "Compressed data cannot be read from a terminal"
 msgstr "I dati compressi non possono essere letti da un terminale"
 
-#: ../src/xz/util.c:274
+#: src/xz/util.c:274
 msgid "Compressed data cannot be written to a terminal"
 msgstr "I dati compressi non possono essere scritti ad un terminale"
 
-#: ../src/common/tuklib_exit.c:39
+#: src/common/tuklib_exit.c:39
 msgid "Writing to standard output failed"
 msgstr "Scrittura sullo standard ouput non riuscita"
 
-#: ../src/common/tuklib_exit.c:42
+#: src/common/tuklib_exit.c:42
 msgid "Unknown error"
 msgstr "Errore sconosciuto"
diff --git a/src/liblzma/Makefile.am b/src/liblzma/Makefile.am
index 6d05fc6..ee34c83 100644
--- a/src/liblzma/Makefile.am
+++ b/src/liblzma/Makefile.am
@@ -24,7 +24,7 @@
 	-I$(top_srcdir)/src/liblzma/simple \
 	-I$(top_srcdir)/src/common \
 	-DTUKLIB_SYMBOL_PREFIX=lzma_
-liblzma_la_LDFLAGS = -no-undefined -version-info 5:0:0
+liblzma_la_LDFLAGS = -no-undefined -version-info 2:0:0
 
 include $(srcdir)/common/Makefile.inc
 include $(srcdir)/check/Makefile.inc
diff --git a/src/liblzma/api/lzma/base.h b/src/liblzma/api/lzma/base.h
index 43dde8d..fc165ab 100644
--- a/src/liblzma/api/lzma/base.h
+++ b/src/liblzma/api/lzma/base.h
@@ -478,12 +478,8 @@
 	 */
 	void *reserved_ptr1;
 	void *reserved_ptr2;
-	void *reserved_ptr3;
-	void *reserved_ptr4;
 	uint64_t reserved_int1;
 	uint64_t reserved_int2;
-	size_t reserved_int3;
-	size_t reserved_int4;
 	lzma_reserved_enum reserved_enum1;
 	lzma_reserved_enum reserved_enum2;
 
@@ -510,8 +506,7 @@
  */
 #define LZMA_STREAM_INIT \
 	{ NULL, 0, 0, NULL, 0, 0, NULL, NULL, \
-	NULL, NULL, NULL, NULL, 0, 0, 0, 0, \
-	LZMA_RESERVED_ENUM, LZMA_RESERVED_ENUM }
+	NULL, NULL, 0, 0, LZMA_RESERVED_ENUM, LZMA_RESERVED_ENUM }
 
 
 /**
diff --git a/src/liblzma/api/lzma/lzma.h b/src/liblzma/api/lzma/lzma.h
index 8d5fdb6..ae57728 100644
--- a/src/liblzma/api/lzma/lzma.h
+++ b/src/liblzma/api/lzma/lzma.h
@@ -381,6 +381,8 @@
 	 * with the currently supported options, so it is safe to leave these
 	 * uninitialized.
 	 */
+	void *reserved_ptr1;
+	void *reserved_ptr2;
 	uint32_t reserved_int1;
 	uint32_t reserved_int2;
 	uint32_t reserved_int3;
@@ -393,8 +395,6 @@
 	lzma_reserved_enum reserved_enum2;
 	lzma_reserved_enum reserved_enum3;
 	lzma_reserved_enum reserved_enum4;
-	void *reserved_ptr1;
-	void *reserved_ptr2;
 
 } lzma_options_lzma;
 
diff --git a/src/liblzma/api/lzma/stream_flags.h b/src/liblzma/api/lzma/stream_flags.h
index bbdd408..c6e7303 100644
--- a/src/liblzma/api/lzma/stream_flags.h
+++ b/src/liblzma/api/lzma/stream_flags.h
@@ -91,6 +91,8 @@
 	lzma_reserved_enum reserved_enum2;
 	lzma_reserved_enum reserved_enum3;
 	lzma_reserved_enum reserved_enum4;
+	lzma_reserved_enum reserved_enum5;
+	lzma_reserved_enum reserved_enum6;
 	lzma_bool reserved_bool1;
 	lzma_bool reserved_bool2;
 	lzma_bool reserved_bool3;
@@ -101,6 +103,8 @@
 	lzma_bool reserved_bool8;
 	uint32_t reserved_int1;
 	uint32_t reserved_int2;
+	uint32_t reserved_int3;
+	uint32_t reserved_int4;
 
 } lzma_stream_flags;
 
diff --git a/src/liblzma/common/common.c b/src/liblzma/common/common.c
index 0408e15..d1a9bed 100644
--- a/src/liblzma/common/common.c
+++ b/src/liblzma/common/common.c
@@ -186,12 +186,8 @@
 	// which would indicate that some new feature is wanted.
 	if (strm->reserved_ptr1 != NULL
 			|| strm->reserved_ptr2 != NULL
-			|| strm->reserved_ptr3 != NULL
-			|| strm->reserved_ptr4 != NULL
 			|| strm->reserved_int1 != 0
 			|| strm->reserved_int2 != 0
-			|| strm->reserved_int3 != 0
-			|| strm->reserved_int4 != 0
 			|| strm->reserved_enum1 != LZMA_RESERVED_ENUM
 			|| strm->reserved_enum2 != LZMA_RESERVED_ENUM)
 		return LZMA_OPTIONS_ERROR;
diff --git a/src/liblzma/common/filter_encoder.c b/src/liblzma/common/filter_encoder.c
index 635d812..436d2cc 100644
--- a/src/liblzma/common/filter_encoder.c
+++ b/src/liblzma/common/filter_encoder.c
@@ -226,7 +226,6 @@
 }
 
 
-/*
 extern LZMA_API(lzma_vli)
 lzma_chunk_size(const lzma_filter *filters)
 {
@@ -248,7 +247,6 @@
 
 	return max;
 }
-*/
 
 
 extern LZMA_API(lzma_ret)