debian: Link against libfreebsd-glue on kfreebsd
cpuset_getaffinity() is available on kfreebsd but not in libc but in
libfreebsd-glue. This code adds the library if kfreebsd is detected so
cpuset_getaffinity() can be used.
Without this, tuklib_cpucores will detect `cpuset' because the compile
test succeeds and later it fails at link phase.
[jrnieder@gmail.com: imported from uploaded NMU]
diff --git a/debian/.git-dpm b/debian/.git-dpm
new file mode 100644
index 0000000..9c1d147
--- /dev/null
+++ b/debian/.git-dpm
@@ -0,0 +1,8 @@
+# see git-dpm(1) from git-dpm package
+c49e1b3c33488a05467d754dc574b284578533ed
+c49e1b3c33488a05467d754dc574b284578533ed
+141d36d7861b6e8522c213194d5fba1e47af63e9
+141d36d7861b6e8522c213194d5fba1e47af63e9
+xz-utils_5.2.2.orig.tar.xz
+72c567d3263345844191a7e618779b179d1f49e0
+1016404
diff --git a/debian/.gitignore b/debian/.gitignore
new file mode 100644
index 0000000..7936ab7
--- /dev/null
+++ b/debian/.gitignore
@@ -0,0 +1,23 @@
+/changelog.upstream
+/generated-m4.list
+/generated-po.list
+/generated-build-aux.list
+
+*.debhelper.log
+*.debhelper
+
+/*-stamp
+
+/normal-build/
+/static-build/
+/xzdec-build/
+/tmp/
+
+/liblzma5/
+/xz-utils/
+/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..05a3a9f
--- /dev/null
+++ b/debian/autogen.sh
@@ -0,0 +1,32 @@
+#!/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
+! changelog_needs_update || exec sh debian/changelog.upstream.sh
diff --git a/debian/changelog b/debian/changelog
new file mode 100644
index 0000000..06a85b5
--- /dev/null
+++ b/debian/changelog
@@ -0,0 +1,659 @@
+xz-utils (5.2.2-1.2) unstable; urgency=medium
+
+ * Non-maintainer upload.
+ * link against libfreebsd-glue on kfreebsd-* (Closes: #840063)
+
+ -- Sebastian Andrzej Siewior <sebastian@breakpoint.cc> Sat, 08 Oct 2016 15:11:19 +0200
+
+xz-utils (5.2.2-1.1) unstable; urgency=medium
+
+ * Non-maintainer upload.
+ * switch to git-dpm for packaging (closes: #540405)
+ * New Upstream (closes: #731634)
+ - no more "xzless error in line 49" (closes: #693537)
+ - xzgrep -h works (closes: #780268)
+ * update symbol file
+ * enable threads for the "normal build"
+
+ -- Sebastian Andrzej Siewior <sebastian@breakpoint.cc> Mon, 26 Sep 2016 20:45:45 +0200
+
+xz-utils (5.1.1alpha+20120614-2.1) unstable; urgency=medium
+
+ [ Helmut Grohne ]
+ * Non-maintainer upload.
+
+ [ Colin Watson ]
+ * Remove build-dependency on perl; we use no non-trivial Perl modules so
+ the Essential perl-base is perfectly adequate, and an unadorned
+ build-dependency on perl is problematic for cross-building.
+ Closes: #697328.
+
+ -- Helmut Grohne <helmut@subdivi.de> Thu, 18 Jun 2015 20:27:23 +0200
+
+xz-utils (5.1.1alpha+20120614-2) unstable; urgency=low
+
+ * Apply fixes from 5.1.2alpha. Closes: #685220.
+ - liblzma: report a LZMA_DATA_ERROR when range encoded data starts
+ with a nonzero byte. This is a sanity check to catch malformed
+ files that no known encoders produce.
+ - xz -v -v --list: Support for decompressing blocks with
+ zero-length uncompressed data was added in xz 5.0.2, not 5.0.3.
+ - xz.1: "xz --robot -v -v --list" gained a "minimum xz version to
+ decompress" field.
+ * xz-utils/README.Debian: Document differences from upstream.
+ Closes: #685217.
+
+ -- Jonathan Nieder <jrnieder@gmail.com> Mon, 10 Sep 2012 14:35:33 -0700
+
+xz-utils (5.1.1alpha+20120614-1) unstable; urgency=low
+
+ * New snapshot, taken from upstream commit f1675f76.
+ - liblzma: BCJ filters would return a spurious LZMA_BUF_ERROR
+ result in certain circumstances. As a result, the xz tool
+ could produce inappropriate "Compressed data is corrupt" or
+ "Unexpected end of input" failures (reported in XZ Embedded as
+ Fedora bug 735408).
+ - "xz -v -v --list" prints the minimal XZ Utils version needed
+ to decompress a stream.
+ - "xz --robot -v --list" formats filenames more plainly.
+ - xzgrep does not fail unconditionally when the decompressor
+ dies with SIGPIPE due to unconsumed output any more. This
+ makes the exit status from commands such as "xzgrep -q" and
+ "xzgrep -l" more predictable and convenient for scripts.
+ - examples/xz_pipe_decomp.c did not check correctly for
+ truncated input.
+ - There is a new set of sample programs. The old ones have
+ been renamed to examples_old but are still maintained.
+ * liblzma:
+ - If dlopen() indicates that liblzma.so.2 is loaded, check fewer
+ reserved fields in the stream argument to the lzma_code()
+ function. This prevents out-of-bounds reads when liblzma5
+ functions are called by code built against liblzma2 (see
+ <http://sourceware.org/PR12977>).
+ - Remove the lzma_code@Base compatibility symbol.
+ Closes: #649522. Thanks to Eduard Bloch.
+ - Install run-time library to /lib so it can be used before /usr
+ is mounted. Closes: #672120.
+ - Configure with --disable-threads for now to avoid needlessly
+ linking to libpthread and librt.
+ * liblzma-dev:
+ - Install an appropriate library for static linking instead of
+ the decompression-only version used to build xzdec.
+ Closes: #673001. Thanks to Anton Tolchanov.
+ - Use the liblzma2-compatible version of lzma_code() in the
+ static library.
+ - Multi-Arch: same. Thanks to Riku Voipio.
+ - Install new examples and revised old examples to
+ /usr/share/doc/liblzma-dev.
+ * xz-utils:
+ - Use update-alternatives to provide lzma, unlzma, lzcat, and
+ the rest of the lz* scripts without conflicting with the lzma
+ package.
+ - Conflicts: lzma versions before before 9.22-1, when it started
+ providing lzma, unlzma, and lzcat through the alternatives
+ system.
+ - Conflicts: and Replaces: xz-lzma.
+ - README.Debian: Update instructions on configuring the package
+ to provide lzma compatibility commands.
+ * Remove xz-lzma package.
+ * Use dpkg-buildflags to retrieve compiler flags, including
+ hardening options. Build-Depends: dpkg-dev (>= 1.16.1).
+ Closes: #653739.
+ * debian/rules:
+ - build-arch: Simplify by using a double-colon rule instead of a
+ dependency on a dummy noop target.
+ - build-indep: Assume doxygen is available, instead of trying to
+ get by by assuming the caller meant to invoke build-arch when
+ it is missing. Build-Depends: dpkg-dev (>= 1.16.2).
+ - Rearrange for clarity.
+ * debian/symbols: Bump the minimal version for lzma_code(),
+ lzma_raw_buffer_decode(), and lzma_raw_buffer_encode().
+ * Use machine-readable copyright-format 1.0.
+ * Update copyright file.
+ * Standards-Version: 3.9.3 (checked).
+ * debian/changelog.upstream.sh: Use ‘git rev-list | git diff-tree’
+ instead of ‘git log’ to avoid depending on the build system’s
+ configuration.
+
+ -- Jonathan Nieder <jrnieder@gmail.com> Sat, 16 Jun 2012 15:03:17 -0500
+
+xz-utils (5.1.1alpha+20110809-3) unstable; urgency=low
+
+ * liblzma: Match upstream ABI.
+ - Remove the lzma_chunk_size() function.
+ - A few ABI tweaks to reserved space in structures.
+ - Enable ELF symbol versioning.
+ - Bump soname to 5.
+ - Continue to leave out threading support, since the relevant
+ interfaces in liblzma are not yet stable.
+ * xz-utils/README.Debian: Remove note on ABI differences.
+ * Remove liblzma/README.Debian.
+ * liblzma: Introduce a lzma_code@Base compatibility symbol to ensure
+ programs linked against unversioned symbols from liblzma2 can
+ share a process image with liblzma5 without breaking.
+ * debian/symbols: XZ_5.0 symbols come from liblzma5. Build-Depends:
+ dpkg-dev (>= 1.15.6); thanks to Jakub Wilk for a reminder.
+ * debian/symbols: The lzma_code@Base symbol is not guaranteed to
+ continue to exist in the future, so tell dpkg-shlibdeps to produce
+ an error if some package manages to use it.
+
+ -- Jonathan Nieder <jrnieder@gmail.com> Thu, 20 Oct 2011 21:31:31 -0500
+
+xz-utils (5.1.1alpha+20110809-2) unstable; urgency=low
+
+ * debian/rules build-arch: Do not trigger an infinite "make"
+ recursion loop when DEB_BUILD_OPTIONS=nocheck. Closes: #638071.
+ Thanks to Thorsten Glaser.
+
+ -- Jonathan Nieder <jrnieder@gmail.com> Tue, 16 Aug 2011 18:11:47 -0500
+
+xz-utils (5.1.1alpha+20110809-1) unstable; urgency=low
+
+ * New snapshot, taken from upstream commit 5c5b225.
+ - liblzma:
+ - lzma_stream_encoder() leaked memory.
+ - The LZMA2 decoder rejected streams that decompress to a
+ zero-length string.
+ - lzma_easy_buffer_encode() and lzma_stream_buffer_encode()
+ used to write such streams when asked to compress a 0-length
+ buffer.
+ - lzma_index_init() would segfault on allocation failure.
+ - liblzma: Various functions check their arguments (especially
+ choice of integrity check) better, making it harder to create
+ a corrupt .xz file instead of receiving an error.
+ - xz and scripts:
+ - "xz -v -v --list" would read and try to free() uninitialized
+ memory, continuing past the end of an on-stack array, when
+ asked to describe certain corrupted XZ files.
+ - xz -S.suf now refuses to compress a file whose name already
+ ends with the suffix “.suf”.
+ - xz --force can be used to compress setuid, setgid, sticky,
+ and multiply linked files.
+ - xz uses posix_fadvise() to speed up sequential input.
+ - xz --block-size forces a full flush periodically during
+ compression, for better random-access reading support and to
+ make simple parallelism possible in the future.
+ - unxz: The new --single-stream option discards trailing
+ garbage after the end of the first stream.
+ - xzdiff can read gzip- and bzip2-compressed files.
+ - xzdiff and xzgrep can read lzop-compressed files.
+ - xzegrep and xzfgrep perform extended regex and fixed-string
+ matches, respectively. (The previous behavior was to always
+ use basic regexes.)
+ - xzgrep -l (= --files-with-match) works.
+ - The Czech “xz --help” output uses a more correct term for
+ files with holes. Thanks to Petr Hubený. Closes: #605762.
+ - xz: New Polish and French translations.
+ - The Doxygen-generated documentation uses short, relative paths
+ to name source files. Closes: #572273.
+ * Update copyright file.
+ * Remove example programs from debian/examples. They are included
+ in the upstream source package now.
+ * Move liblzma to an architecture-specific directory, so the
+ native library and foreign-architecture versions can be installed
+ simultaneously.
+ - liblzma2: Pre-Depends: multiarch-support.
+ - Use debhelper compatibility level 9. This requires passing
+ the dh sequence name before other options when invoking dh in
+ debian/rules. Build-Depends: debhelper (>= 8.1.3).
+ - liblzma2, liblzma-dev: Install files under /usr/lib/<triplet>
+ instead of /usr/lib.
+ - Thanks to Steve Langasek for explaining the process on the
+ Debian wiki.
+ * Standards-Version: 3.9.2 (checked).
+ * debian/control: liblzma2 is Multi-Arch: same, while xz-utils
+ and xzdec are Multi-Arch: foreign. Closes: #637883. Thanks to
+ Riku Voipio.
+ * debian/symbols: Bump the minimal version for LZMA2 encoder
+ functions that reject more bad arguments and skip empty blocks.
+ * debian/rules: ./configure --disable-symbol-versions for now.
+ * debian/rules: Provide build-arch and build-indep targets that
+ only build the code and the API documentation, respectively.
+ Thanks to Roger Leigh for suggesting it through lintian.
+ Build-Depends: debhelper (>= 8.9.0).
+ * debian/rules: Treat DEB_BUILD_OPTIONS=nocheck as a request not to
+ run build-time tests. Thanks to Thorsten Glaser for a reminder.
+ Closes: #627209.
+
+ -- Jonathan Nieder <jrnieder@gmail.com> Tue, 16 Aug 2011 00:40:31 -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..afaec0f
--- /dev/null
+++ b/debian/changelog.upstream.sh
@@ -0,0 +1,133 @@
+#!/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 rev-list --no-merges "$limiter$last_cid" |
+ git diff-tree --date=iso --stat --format=medium --stdin
+ 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..59248e4
--- /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
+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..ec63514
--- /dev/null
+++ b/debian/compat
@@ -0,0 +1 @@
+9
diff --git a/debian/control b/debian/control
new file mode 100644
index 0000000..7e91b73
--- /dev/null
+++ b/debian/control
@@ -0,0 +1,114 @@
+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 (>= 8.9.0), dpkg-dev (>= 1.16.2),
+ autoconf (>= 2.64~), automake, libtool (>= 2.2),
+ gettext, autopoint | gettext (<< 0.18-1), autopoint | cvs, freebsd-glue [kfreebsd-any]
+Build-Depends-Indep: doxygen
+Build-Conflicts: automake1.4
+Standards-Version: 3.9.3
+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: liblzma5
+Section: libs
+Architecture: any
+Depends: ${shlibs:Depends}, ${misc:Depends}
+Pre-Depends: ${misc:Pre-Depends}
+Multi-Arch: same
+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}
+Multi-Arch: foreign
+Conflicts: lzma (<< 9.22-1), xz-lzma
+Breaks: lzip (<< 1.8~rc2)
+Replaces: lzip (<< 1.8~rc2), xz-lzma
+Provides: lzma
+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: xzdec
+Priority: extra
+Architecture: any
+Depends: ${shlibs:Depends}, ${misc:Depends}
+Multi-Arch: foreign
+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
+Multi-Arch: same
+Architecture: any
+Depends: liblzma5 (= ${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..3327901
--- /dev/null
+++ b/debian/copyright
@@ -0,0 +1,383 @@
+Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
+Upstream-Name: XZ Utils
+Upstream-Contact:
+ Lasse Collin <lasse.collin@tukaani.org>
+ http://tukaani.org/xz/lists.html
+Source:
+ http://tukaani.org/xz
+ http://git.tukaani.org/xz.git
+Comment:
+ 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).
+ .
+ This file describes the source package. The binary packages contain
+ some files derived from other works: for example, images in the API
+ documentation come from Doxygen.
+License:
+ 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.
+
+Files: *
+Copyright: 2006-2012, Lasse Collin
+ 1999-2008, Igor Pavlov
+ 2006, Ville Koskinen
+ 1998, Steve Reid
+ 2000, Wei Dai
+ 2003, Kevin Springle
+ 2009, Jonathan Nieder
+ 2010, Anders F Björklund
+License: PD
+ This file has been put in the public domain.
+ You can do whatever you want with this file.
+Comment:
+ 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
+Other-Authors: Paul Eggert, Ulrich Drepper
+License: 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.
+Other-Authors: Ulrich Drepper
+License: 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.
+Other-Authors: Bruno Haible, Paul Eggert
+License: permissive-fsf
+
+Files: m4/acx_pthread.m4
+Copyright: © 2008, Steven G. Johnson <stevenj@alum.mit.edu>
+License: Autoconf
+
+Files: Doxyfile.in
+Copyright: © 1997-2007 by Dimitri van Heesch
+Origin: Doxygen 1.4.7
+License: GPL-2
+
+Files: src/liblzma/check/crc32_table_?e.h
+ src/liblzma/check/crc64_table_?e.h
+ src/liblzma/lzma/fastpos_table.c
+ src/liblzma/rangecoder/price_table.c
+Copyright: none, automatically generated data
+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
+Source-Code: tests/bcj_test.c
+License: PD
+ This file has been put into the public domain.
+ You can do whatever you want with this file.
+Comment:
+ 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 po/fr.po
+Copyright: 2010, Marek ÄŒernocký
+ 2010, Andre Noll
+ 2011, Adrien Nader
+License: PD
+ This file is put in the public domain.
+
+Files: po/it.po po/pl.po
+Copyright: 2009, 2010, Gruppo traduzione italiano di Ubuntu-it
+ 2010, Lorenzo De Liso
+ 2009, 2010, 2011, Milo Casagrande
+ 2011, Jakub Bogusz
+License: PD
+ This file is in the public domain
+
+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
+
+Files: dos/config.h
+Copyright: © 1992, 1993, 1994, 1999, 2000, 2001, 2002, 2005
+ Free Software Foundation, Inc.
+ 2007-2010, Lasse Collin
+Other-Authors: Roland McGrath, Akim Demaille, Paul Eggert,
+ David Mackenzie, Bruno Haible, and many others.
+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.
+ .
+ [...]
+ .
+ # 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.
+ .
+ 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
+Origin: gettext-runtime/po/Makevars (gettext-0.12)
+Copyright: © 2003 Free Software Foundation, Inc.
+Authors: Bruno Haible
+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: 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-2012, Jonathan Nieder
+License: PD-debian
+ The Debian packaging files are in the public domain.
+ You may freely use, modify, distribute, and relicense them.
+
+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’.
+
+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’.
+
+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’.
+
+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 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’.
+
+License: permissive-fsf
+ 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.
+
+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.
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..9c1a7dc
--- /dev/null
+++ b/debian/liblzma-dev.docs
@@ -0,0 +1,5 @@
+doc/xz-file-format.txt
+doc/lzma-file-format.txt
+doc/examples
+doc/examples_old
+TODO
diff --git a/debian/liblzma-dev.install b/debian/liblzma-dev.install
new file mode 100644
index 0000000..97de04c
--- /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..06a0344
--- /dev/null
+++ b/debian/liblzma-dev.links
@@ -0,0 +1,3 @@
+usr/share/doc/liblzma5/AUTHORS usr/share/doc/liblzma-dev/AUTHORS
+usr/share/doc/liblzma5/THANKS usr/share/doc/liblzma-dev/THANKS
+usr/share/doc/liblzma5/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/liblzma5.docs b/debian/liblzma5.docs
new file mode 100644
index 0000000..aa4127d
--- /dev/null
+++ b/debian/liblzma5.docs
@@ -0,0 +1,3 @@
+AUTHORS
+THANKS
+NEWS
diff --git a/debian/liblzma5.install b/debian/liblzma5.install
new file mode 100644
index 0000000..1b15eaa
--- /dev/null
+++ b/debian/liblzma5.install
@@ -0,0 +1 @@
+lib/*/liblzma.so.*
diff --git a/debian/patches/kfreebsd-link-against-libfreebsd-glue.patch b/debian/patches/kfreebsd-link-against-libfreebsd-glue.patch
new file mode 100644
index 0000000..0733b3d
--- /dev/null
+++ b/debian/patches/kfreebsd-link-against-libfreebsd-glue.patch
@@ -0,0 +1,51 @@
+From c49e1b3c33488a05467d754dc574b284578533ed Mon Sep 17 00:00:00 2001
+From: Sebastian Andrzej Siewior <sebastian@breakpoint.cc>
+Date: Sat, 8 Oct 2016 14:55:42 +0200
+Subject: kfreebsd: link against libfreebsd-glue
+
+cpuset_getaffinity() is available on kfreebsd but not in libc but in
+libfreebsd-glue. This code adds the library if kfreebsd is detected so
+cpuset_getaffinity() can be used.
+Without it tuklib_cpucores will detect `cpuset' because the compile test
+succeeds and later it fails at link phase.
+
+Patch-Name: kfreebsd-link-against-libfreebsd-glue.patch
+Signed-off-by: Sebastian Andrzej Siewior <sebastian@breakpoint.cc>
+---
+ configure.ac | 7 +++++++
+ src/liblzma/Makefile.am | 4 ++++
+ 2 files changed, 11 insertions(+)
+
+diff --git a/configure.ac b/configure.ac
+index d17629e0e7f6..9697fbd9ab7b 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -39,6 +39,13 @@ case $host_os in
+ esac
+ AM_CONDITIONAL([COND_W32], [test "$is_w32" = yes])
+
++# We need -lfreebsd-glue on kfreebsd
++case $host_os in
++ kfreebsd*-gnu* ) is_kfreebsd=yes ;;
++ *) is_kfreebsd=no ;;
++esac
++AM_CONDITIONAL([COND_NEED_FREEBSD_GLUE], [test "$is_kfreebsd" = yes])
++
+ # We need to use $EXEEXT with $(LN_S) when creating symlinks to
+ # executables. Cygwin is an exception to this, since it is recommended
+ # that symlinks don't have the .exe suffix. To make this work, we
+diff --git a/src/liblzma/Makefile.am b/src/liblzma/Makefile.am
+index 24d9c261233e..13624d08798c 100644
+--- a/src/liblzma/Makefile.am
++++ b/src/liblzma/Makefile.am
+@@ -32,6 +32,10 @@ liblzma_la_LDFLAGS += \
+ -Wl,--version-script=$(top_srcdir)/src/liblzma/liblzma.map
+ endif
+
++if COND_NEED_FREEBSD_GLUE
++liblzma_la_LDFLAGS += -lfreebsd-glue
++endif
++
+ liblzma_la_SOURCES += ../common/tuklib_physmem.c
+
+ if COND_THREADS
diff --git a/debian/patches/liblzma-make-dlopen-based-liblzma2-compatibility-opt.patch b/debian/patches/liblzma-make-dlopen-based-liblzma2-compatibility-opt.patch
new file mode 100644
index 0000000..54617d9
--- /dev/null
+++ b/debian/patches/liblzma-make-dlopen-based-liblzma2-compatibility-opt.patch
@@ -0,0 +1,197 @@
+From e284cfe27457239e932038fb90084c91f4229c36 Mon Sep 17 00:00:00 2001
+From: Jonathan Nieder <jrnieder@gmail.com>
+Date: Sat, 16 Jun 2012 05:57:42 -0500
+Subject: liblzma: make dlopen()-based liblzma2 compatibility optional
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Suppose I want to build a statically linked program:
+
+ gcc -static -o app app.c -lrpm -llzma
+
+Suppose further that librpm.a was built against a pre-5.0 version of
+liblzma so it does not allocate as much space for reserved fields at
+the end of lzma_stream as the current API requires.
+
+(This is a hypothetical scenario --- Debian librpm does not provide a
+static library.)
+
+If liblzma uses unpatched lzma_code() from XZ Utils >= 5.0, then
+during calls to librpm that try to compress or decompress an
+xz-compressed RPM, lzma_code’s reserved field checks will overflow the
+buffer and segfault.
+
+If liblzma uses the modified version of lzma_code() which asks libdl
+if liblzma.so.2 is resident and refrains from checking reserved fields
+past the end of the old lzma_stream struct when the answer is "yes",
+the behavior is no better. The dynamic library liblzma.so.2 is _not_
+resident, so lzma_code() dutifully reads reserved fields past the end
+of the buffer --- segfault.
+
+So the only safe behavior in the static library is to unconditionally
+disable checks that might break for callers we want to continue to
+support.
+
+The new "./configure --enable-liblzma2-compat" option implements all
+three sets of semantics:
+
+ - "./configure --disable-liblzma2-compat" means to check the full set
+ of reserved fields unconditionally. You can use this to check how
+ your application would behave with the unpatched library.
+
+ - "./configure --enable-liblzma2-compat=auto" means to skip checks of
+ reserved fields past the old end of struct lzma_stream when
+ liblzma.so.2 is resident. If a DSO built against liblzma2 shares
+ the process image, the ABI-incompatible checks are skipped for
+ safety, whereas in the usual case when no such DSO is resident, the
+ full set of checks is run to help application developers remember
+ to zero all reserved fields.
+
+ - "./configure --enable-liblzma2-compat" makes liblzma skip the
+ ABI-incompatible checks unconditionallty. You can use this if you
+ want your copy of liblzma to be usable by static libraries that
+ were built against the old library.
+
+Patch-Name: liblzma-make-dlopen-based-liblzma2-compatibility-opt.patch
+Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
+---
+ configure.ac | 33 +++++++++++++++++++++++++++++++--
+ src/liblzma/common/common.c | 40 +++++++++++++++++++++++++++++++++++-----
+ src/liblzma/common/common.h | 2 ++
+ 3 files changed, 68 insertions(+), 7 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index 6dae0b9756d6..d17629e0e7f6 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -548,10 +548,39 @@ case $enable_threads in
+ esac
+ AM_CONDITIONAL([COND_THREADS], [test "x$enable_threads" != xno])
+
+-# As a Debian-specific hack, liblzma uses dlopen() to check if extra
++# As a Debian-specific hack, liblzma can use dlopen() to check if extra
+ # paranoia is needed because unversioned symbols from liblzma.so.2 are
+ # present in the same process. See src/liblzma/common/common.c.
+-AC_SEARCH_LIBS([dlopen], [dl])
++AC_MSG_CHECKING([if lzma_code checks should be relaxed for compatibility])
++AC_ARG_ENABLE([liblzma2-compat], [AC_HELP_STRING([--enable-liblzma2-compat],
++ [Relax run-time checks to accomodate old binaries built
++ with smaller sizeof(lzma_stream). The default is "dynamic",
++ which means to only use the relaxed checks when the dynamic
++ loader reports that liblzma.so.2 is loaded in the same process.])],
++ [], [enable_liblzma2_compat=dynamic])
++case $enable_liblzma2_compat in
++dynamic)
++ AC_SEARCH_LIBS([dlopen], [dl])
++ AC_DEFINE([LIBLZMA2_COMPAT_DYNAMIC], [1],
++ [Define to 1 to use dlopen() to check if lzma_code() checks
++ should be more tolerant because the process is also linked to
++ liblzma from Debian 6.0.])
++ AC_MSG_RESULT([auto])
++ ;;
++yes)
++ AC_DEFINE([LIBLZMA2_COMPAT], [1],
++ [Define to 1 to unconditionally make lzma_code() checks tolerant
++ to accomodate callers built against liblzma from Debian 6.0.])
++ AC_MSG_RESULT([yes])
++ ;;
++no)
++ AC_MSG_RESULT([no])
++ ;;
++*)
++ AC_MSG_RESULT([])
++ AC_MSG_ERROR([--enable-liblzma2: unrecognized value $enable_liblzma2_compat])
++ ;;
++esac
+
+ echo
+ echo "Initializing Libtool:"
+diff --git a/src/liblzma/common/common.c b/src/liblzma/common/common.c
+index 5474211cf0ca..79427b005b4b 100644
+--- a/src/liblzma/common/common.c
++++ b/src/liblzma/common/common.c
+@@ -164,16 +164,46 @@ lzma_next_end(lzma_next_coder *next, const lzma_allocator *allocator)
+ // External to internal API wrapper //
+ //////////////////////////////////////
+
+-static bool
+-liblzma2_loaded(void)
++#ifdef LIBLZMA2_COMPAT_DYNAMIC
++
++static void
++init_liblzma2_compat(lzma_stream *strm)
+ {
+ void *handle = dlopen("liblzma.so.2", RTLD_LAZY | RTLD_NOLOAD);
+ if (handle) {
+ dlclose(handle);
+- return true;
++ strm->internal->liblzma2_compat = true;
++ return;
+ }
++ strm->internal->liblzma2_compat = false;
++}
++
++static bool
++liblzma2_loaded(lzma_stream *strm)
++{
++ return strm->internal->liblzma2_compat;
++}
++
++#else
++
++static void
++init_liblzma2_compat(lzma_stream *strm)
++{
++}
++
++#ifdef LIBLZMA2_COMPAT
++static bool liblzma2_loaded(lzma_stream *strm)
++{
++ return true;
++}
++#else
++static bool liblzma2_loaded(lzma_stream *strm)
++{
+ return false;
+ }
++#endif
++
++#endif
+
+ extern lzma_ret
+ lzma_strm_init(lzma_stream *strm)
+@@ -188,7 +218,7 @@ lzma_strm_init(lzma_stream *strm)
+ return LZMA_MEM_ERROR;
+
+ strm->internal->next = LZMA_NEXT_CODER_INIT;
+- strm->internal->liblzma2_compat = liblzma2_loaded();
++ init_liblzma2_compat(strm);
+ }
+
+ memzero(strm->internal->supported_actions,
+@@ -241,7 +271,7 @@ lzma_code(lzma_stream *strm, lzma_action action)
+ || strm->reserved_ptr4 != NULL)
+ return LZMA_OPTIONS_ERROR;
+
+- if (strm->internal->liblzma2_compat)
++ if (liblzma2_loaded(strm))
+ ; /* Enough checks. */
+ else if (strm->reserved_int1 != 0
+ || strm->reserved_int2 != 0
+diff --git a/src/liblzma/common/common.h b/src/liblzma/common/common.h
+index b056e417a29e..eb1d0525c07d 100644
+--- a/src/liblzma/common/common.h
++++ b/src/liblzma/common/common.h
+@@ -227,9 +227,11 @@ struct lzma_internal_s {
+ /// made (no input consumed and no output produced by next.code).
+ bool allow_buf_error;
+
++#ifdef LIBLZMA2_COMPAT_DYNAMIC
+ /// Indicates whether we are sharing a process image with
+ /// liblzma.so.2 and need to tread carefully.
+ bool liblzma2_compat;
++#endif
+ };
+
+
diff --git a/debian/patches/liblzma-skip-ABI-incompatible-check-when-liblzma.so.patch b/debian/patches/liblzma-skip-ABI-incompatible-check-when-liblzma.so.patch
new file mode 100644
index 0000000..066d260
--- /dev/null
+++ b/debian/patches/liblzma-skip-ABI-incompatible-check-when-liblzma.so.patch
@@ -0,0 +1,211 @@
+From 7e228a81c1aa330de9289f579f768c7c9a686db2 Mon Sep 17 00:00:00 2001
+From: Jonathan Nieder <jrnieder@gmail.com>
+Date: Thu, 17 May 2012 18:49:00 -0500
+Subject: liblzma: skip ABI-incompatible check when liblzma.so.2 is loaded
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+When liblzma started using ELF symbol versioning at the same time
+as a soname bump (2 → 5) and a small increase in the reserved space at
+the end of the lzma_stream structure checked by lzma_code, introducing
+an unversioned compatibility symbol to ease the transition seemed like
+a great idea. After all:
+
+ - most applications only use one version of the library (liblzma.so.2
+ or liblzma.so.5) and would obviously work fine
+
+ - applications linking to the new version of the library
+ (liblzma.so.5) should use the default, versioned lzma_code symbol so
+ errors initializing the reserved space can be noticed
+
+ - symbol versioning should ensure application/library mixtures
+ independently making use of both versions of the library also
+ work. Calls using the unversioned symbol names would be resolved
+ using the old symbol from liblzma.so.2 or the compatibility symbol
+ from liblzma.so.5, avoiding segfaults and spurious
+ LZMA_OPTIONS_ERROR errors.
+
+ - application/library mixtures using both versions of the library and
+ passing lzma_stream objects between the two would break, but that
+ was never supposed to be supported, anyway.
+
+Three toolchain bugs dash that plan.
+
+Current (2.22) versions of the gold linker cannot be used to build
+libraries providing versioned and unversioned symbols with the same
+name. On the other hand, BFD ld doesn't mind. So GNU gold refuses to
+link versions of liblzma including the compatibility symbol (PR12261):
+
+ /usr/bin/ld: error: symbol lzma_code has undefined version
+
+Annoying, but livable. liblzma with the compatibility symbol just
+has to be built with BFD ld.
+
+More importantly, gold does not support linking to libraries providing
+versioned and unversioned symbols with the same name. If I link some
+code to a version of liblzma with the compatibility symbol:
+
+ ld -o demo demo.o -llzma
+
+then the documented behavior, implemented by BFD ld, is to interpret
+calls to lzma_code as referring to the default version
+(lzma_code@XZ_5.0). Current versions of GNU gold treat such calls as
+referring to whichever symbol comes first in liblzma.so.5's symbol
+table. If the unversioned symbol comes first (and in Debian liblzma5
+5.1.1alpha+20110809-3 it does), GNU gold will mislink new applications
+to use the unversioned compatibility symbol (PR13521):
+
+ $ ld.gold -o test.gold test.o -llzma
+ $ eu-readelf -s test.gold | grep lzma_code
+ 1: 0000000000000000 0 FUNC GLOBAL DEFAULT UNDEF lzma_code
+ 5: 0000000000000000 0 FUNC GLOBAL DEFAULT UNDEF lzma_code
+
+There is no warning.
+
+Worse, ld.so from glibc unpredictably will sometimes use the versioned
+symbol to resolve references to the unversioned base version when both
+are present (PR12977).
+
+Clearly no one has been testing mixtures of versioned and
+unversioned symbols at all, and we cannot trust the symbol resolution
+process to do anything in particular for them.
+
+This patch implements an alternative method to implement the same
+compatibility goals described above.
+
+ - No more compatibility symbol. liblzma.so.5 will define lzma_code
+ only once, with version XZ_5.0.
+
+ - When initializing an lzma_stream object, use dlopen("liblzma.so.2",
+ RTLD_NOLOAD) to detect whether the caller might have been expecting
+ the old ABI, and store that information in the private
+ stream->internal->liblzma2_compat field.
+
+ - In lzma_code, when checking reserved fields, skip fields past the
+ old end of the lzma_stream structure ifying reserved fields if and
+ only if this->internal->liblzma2_compat is false.
+
+That's it. Hopefully this time it will work reliably.
+
+Thanks to Eduard Bloch for noticing PR13521 and to Ian Lance Taylor
+for PR12977.
+
+Patch-Name: liblzma-skip-ABI-incompatible-check-when-liblzma.so.patch
+Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
+---
+ configure.ac | 5 +++++
+ src/liblzma/common/common.c | 40 ++++++++++++++++++++++++++++++++++++++--
+ src/liblzma/common/common.h | 4 ++++
+ 3 files changed, 47 insertions(+), 2 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index 53ae7bef7472..6dae0b9756d6 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -548,6 +548,11 @@ case $enable_threads in
+ esac
+ AM_CONDITIONAL([COND_THREADS], [test "x$enable_threads" != xno])
+
++# As a Debian-specific hack, liblzma uses dlopen() to check if extra
++# paranoia is needed because unversioned symbols from liblzma.so.2 are
++# present in the same process. See src/liblzma/common/common.c.
++AC_SEARCH_LIBS([dlopen], [dl])
++
+ echo
+ echo "Initializing Libtool:"
+ LT_PREREQ([2.2])
+diff --git a/src/liblzma/common/common.c b/src/liblzma/common/common.c
+index 28aa2b7142f4..5474211cf0ca 100644
+--- a/src/liblzma/common/common.c
++++ b/src/liblzma/common/common.c
+@@ -12,6 +12,8 @@
+
+ #include "common.h"
+
++#include <dlfcn.h>
++
+
+ /////////////
+ // Version //
+@@ -162,6 +164,17 @@ lzma_next_end(lzma_next_coder *next, const lzma_allocator *allocator)
+ // External to internal API wrapper //
+ //////////////////////////////////////
+
++static bool
++liblzma2_loaded(void)
++{
++ void *handle = dlopen("liblzma.so.2", RTLD_LAZY | RTLD_NOLOAD);
++ if (handle) {
++ dlclose(handle);
++ return true;
++ }
++ return false;
++}
++
+ extern lzma_ret
+ lzma_strm_init(lzma_stream *strm)
+ {
+@@ -175,6 +188,7 @@ lzma_strm_init(lzma_stream *strm)
+ return LZMA_MEM_ERROR;
+
+ strm->internal->next = LZMA_NEXT_CODER_INIT;
++ strm->internal->liblzma2_compat = liblzma2_loaded();
+ }
+
+ memzero(strm->internal->supported_actions,
+@@ -189,6 +203,24 @@ lzma_strm_init(lzma_stream *strm)
+ }
+
+
++// Before v5.0.0~6 (liblzma: A few ABI tweaks to reserve space in
++// structures, 2010-10-23), the reserved fields in lzma_stream were:
++//
++// void *reserved_ptr1;
++// void *reserved_ptr2;
++// uint64_t reserved_int1;
++// uint64_t reserved_int2;
++// lzma_reserved_enum reserved_enum1;
++// lzma_reserved_enum reserved_enum2;
++//
++// Nowadays there are two more pointers between reserved_ptr2 and
++// reserved_int1 and two size_t fields between reserved_int2 and
++// reserved_enum1.
++//
++// When strm->internal->liblzma2_compat is set, limit the checks of
++// reserved fields to fields that were present in the old ABI to avoid
++// segfaults and spurious "Unsupported options" from callers sharing
++// the process image that expect the old ABI.
+ extern LZMA_API(lzma_ret)
+ lzma_code(lzma_stream *strm, lzma_action action)
+ {
+@@ -206,8 +238,12 @@ lzma_code(lzma_stream *strm, lzma_action action)
+ if (strm->reserved_ptr1 != NULL
+ || strm->reserved_ptr2 != NULL
+ || strm->reserved_ptr3 != NULL
+- || strm->reserved_ptr4 != NULL
+- || strm->reserved_int1 != 0
++ || strm->reserved_ptr4 != NULL)
++ return LZMA_OPTIONS_ERROR;
++
++ if (strm->internal->liblzma2_compat)
++ ; /* Enough checks. */
++ else if (strm->reserved_int1 != 0
+ || strm->reserved_int2 != 0
+ || strm->reserved_int3 != 0
+ || strm->reserved_int4 != 0
+diff --git a/src/liblzma/common/common.h b/src/liblzma/common/common.h
+index 955d784a5b6a..b056e417a29e 100644
+--- a/src/liblzma/common/common.h
++++ b/src/liblzma/common/common.h
+@@ -226,6 +226,10 @@ struct lzma_internal_s {
+ /// If true, lzma_code will return LZMA_BUF_ERROR if no progress was
+ /// made (no input consumed and no output produced by next.code).
+ bool allow_buf_error;
++
++ /// Indicates whether we are sharing a process image with
++ /// liblzma.so.2 and need to tread carefully.
++ bool liblzma2_compat;
+ };
+
+
diff --git a/debian/patches/series b/debian/patches/series
new file mode 100644
index 0000000..2236e2a
--- /dev/null
+++ b/debian/patches/series
@@ -0,0 +1,3 @@
+liblzma-skip-ABI-incompatible-check-when-liblzma.so.patch
+liblzma-make-dlopen-based-liblzma2-compatibility-opt.patch
+kfreebsd-link-against-libfreebsd-glue.patch
diff --git a/debian/rules b/debian/rules
new file mode 100755
index 0000000..63bc7c7
--- /dev/null
+++ b/debian/rules
@@ -0,0 +1,164 @@
+#!/usr/bin/make -f
+
+build clean install binary-arch binary-indep binary:
+ +dh $@ --parallel $(opt_no_act)
+
+# Runs tests, too, if and only if nocheck is unset (see below).
+build-arch:: build-plain build-static build-small
+
+build-indep: debian/normal-build/Makefile
+ cd debian/normal-build && doxygen Doxyfile
+
+autoreconf_sources := $(wildcard Makefile.am */Makefile.am */*/Makefile.am)
+autoreconf_sources += configure.ac
+
+autoreconf_products := $(wildcard Makefile.in */Makefile.in */*/Makefile.in)
+autoreconf_products += configure # and more, but these will do
+
+configure_input := $(autoreconf_products)
+configure_input += Doxyfile.in
+configure_input += src/liblzma/liblzma.pc.in
+configure_input += $(wildcard src/scripts/*.in)
+
+override_dh_auto_clean:
+ rm -f debian/*-stamp
+ dh_auto_clean --builddirectory debian/xzdec-build
+ dh_auto_clean --builddirectory debian/normal-build
+ dh_auto_clean --builddirectory debian/static-build
+ sh debian/clean.sh
+
+override_dh_auto_install:
+ dh_auto_install --builddirectory debian/xzdec-build
+ dh_auto_install --builddirectory debian/normal-build
+ dh_auto_install --builddirectory debian/static-build
+ set -e; arch=$$(dpkg-architecture -qDEB_HOST_MULTIARCH); \
+ install -d debian/tmp/lib/$$arch; \
+ mv debian/tmp/usr/lib/$$arch/liblzma.so.* debian/tmp/lib/$$arch/; \
+ dso=$$(basename $$(readlink debian/tmp/usr/lib/$$arch/liblzma.so)); \
+ ln -s -f /lib/$$arch/$$dso debian/tmp/usr/lib/$$arch/liblzma.so
+
+override_dh_installchangelogs:
+ dh_installchangelogs ChangeLog
+
+build-plain: debian/normal-build/Makefile
+ dh_auto_build --builddirectory debian/normal-build
+
+build-static: debian/static-build/Makefile
+ dh_auto_build --builddirectory debian/static-build
+
+build-small: debian/xzdec-build/Makefile
+ dh_auto_build --builddirectory debian/xzdec-build
+
+debian/test-plain-stamp: | build-plain
+ dh_auto_test --builddirectory debian/normal-build
+ >$@
+
+debian/test-static-stamp: | build-static
+ dh_auto_test --builddirectory debian/static-build
+ >$@
+
+debian/test-xzdec-stamp: | build-small
+ $(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
+ >$@
+
+debian/normal-build/Makefile debian/normal-build/Doxyfile: $(configure_input)
+ dh_auto_configure --builddirectory debian/normal-build -- \
+ --enable-threads --disable-static \
+ $(opt_optimize) $(opt_quiet) \
+ --disable-xzdec --disable-lzmadec
+
+debian/static-build/Makefile: $(configure_input)
+ dh_auto_configure --builddirectory debian/static-build -- \
+ --disable-threads --disable-shared \
+ --enable-liblzma2-compat \
+ $(opt_optimize) $(opt_quiet) \
+ --disable-lzmainfo --disable-scripts \
+ --disable-xzdec --disable-lzmadec \
+ --disable-xz --disable-lzma-links
+
+debian/xzdec-build/Makefile: $(configure_input)
+ dh_auto_configure --builddirectory debian/xzdec-build -- \
+ --disable-shared --disable-nls --disable-encoders \
+ --enable-small --disable-threads \
+ --disable-liblzma2-compat \
+ $(opt_optimize_small) $(opt_quiet) \
+ --disable-lzmainfo --disable-scripts \
+ --disable-xz --disable-lzma-links
+
+$(autoreconf_products): $(autoreconf_sources)
+ autoreconf -is
+
+small_flags_env =
+small_flags_env += DEB_CFLAGS_MAINT_STRIP='-O2 -O3'
+small_flags_env += DEB_CFLAGS_MAINT_PREPEND=-Os
+flags_cmd = dpkg-buildflags --export=configure
+opt_optimize = $(shell $(flags_cmd))
+opt_optimize_small = $(shell $(small_flags_env) $(flags_cmd))
+
+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
+ opt_optimize_small += --disable-assembler
+endif
+
+ifneq (,$(findstring n,$(MAKEFLAGS)))
+ opt_no_act = --no-act
+endif
+
+ifneq (,$(filter quiet,$(DEB_BUILD_OPTIONS)))
+ opt_quiet = --quiet
+ MAKEFLAGS += --quiet
+endif
+
+ifeq (,$(filter nocheck,$(DEB_BUILD_OPTIONS)))
+build-arch:: debian/test-plain-stamp
+build-arch:: debian/test-static-stamp
+build-arch:: debian/test-xzdec-stamp
+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/symbols b/debian/symbols
new file mode 100644
index 0000000..4a95cf5
--- /dev/null
+++ b/debian/symbols
@@ -0,0 +1,7 @@
+liblzma.so.5 liblzma5 #MINVER#
+* Build-Depends-Package: liblzma-dev
+ (symver)XZ_5.0 5.1.1alpha+20110809
+ lzma_code@XZ_5.0 5.1.1alpha+20120614
+ lzma_raw_buffer_decode@XZ_5.0 5.1.1alpha+20120614
+ lzma_raw_buffer_encode@XZ_5.0 5.1.1alpha+20120614
+ (symver)XZ_5.2 5.2.2
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-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..e1c7b97
--- /dev/null
+++ b/debian/xz-utils.README.Debian
@@ -0,0 +1,90 @@
+XZ Utils for Debian
+===================
+
+Contents:
+ 1. History
+ 2. Differences from standard XZ Utils
+ 3. LZMA Utils compatibility
+ 4. Configuration
+
+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.
+
+Differences from standard XZ Utils
+----------------------------------
+
+XZ Utils 5.1.y has some experimental features which are disabled in
+Debian to allow interfaces to evolve. Debian liblzma is also modified
+to avoid breakage when the same process loads liblzma2 from Debian 6.0
+(squeeze) and liblzma5.
+
+abi-threaded-encoder
+ Disable threaded compression in liblzma and xz.
+
+abi-version-script
+ liblzma: Do not pretend to satisfy dependencies on XZ_5.1.1alpha.
+
+abi-liblzma2-compat, configure-liblzma2-compat
+ Do not check reserved fields past the historical end of the
+ lzma_stream structure if liblzma.so.2 is loaded in the same
+ process image. Likewise when linked statically.
+ (See bug #649522.)
+
+man-date, man-xz-lvv-minver (from upstream)
+ Document the "Minimum version required to decompress" field of
+ "xz --robot -v -v --list" output.
+
+xz-lvv-empty-block-minver (from upstream)
+ Fix the version number printed by "xz -lvv" for files with Blocks
+ of zero uncompressed_size: the decoder bug preventing reading such
+ files was fixed in xz 5.0.2, not 5.0.3.
+
+decoder-check-first-0x00 (from upstream)
+ Check that the first byte of range encoded data is zero to catch
+ broken files sooner.
+
+Changes in 5.1.2alpha not applied:
+
+ Docs: Language fix to 01_compress_easy.c
+ xz: Add incomplete support for --block-list
+ INSTALL: Document --enable-symbol-versions
+ configure: Add a comment about *-linux tuples for clarity
+ TODO: Warn that threads and fork() do not mix well
+ Bump the version number and update NEWS for 5.1.2alpha
+
+LZMA Utils compatibility
+------------------------
+
+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
+
+If you would like XZ Utils to provide these commands by default for
+all users, use "update-alternatives --config lzma".
+
+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, 10 Sep 2012 14:35:27 -0700
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/xz-utils.postinst b/debian/xz-utils.postinst
new file mode 100644
index 0000000..a2cf46f
--- /dev/null
+++ b/debian/xz-utils.postinst
@@ -0,0 +1,19 @@
+#!/bin/sh
+set -e
+
+slave () {
+ dir=$1 filename=$2 target=$3
+ echo "--slave $dir/$filename $filename $dir/$target"
+}
+
+update-alternatives --install /usr/bin/lzma lzma /usr/bin/xz 20 $(
+ slave /usr/share/man/man1 lzma.1.gz xz.1.gz
+ slave /usr/bin unlzma unxz
+ slave /usr/share/man/man1 unlzma.1.gz unxz.1.gz
+ for util in cat more less diff cmp grep egrep fgrep
+ do
+ slave /usr/bin lz$util xz$util
+ slave /usr/share/man/man1 lz$util.1.gz xz$util.1.gz
+ done
+)
+#DEBHELPER#
diff --git a/debian/xz-utils.prerm b/debian/xz-utils.prerm
new file mode 100644
index 0000000..8dd3d8f
--- /dev/null
+++ b/debian/xz-utils.prerm
@@ -0,0 +1,10 @@
+#!/bin/sh
+set -e
+if
+ test "$1" != upgrade ||
+ # downgrading to a pre-alternatives version
+ dpkg --compare-versions "$2" lt-nl 5.1.1alpha+20120614-1
+then
+ update-alternatives --remove lzma /usr/bin/xz
+fi
+#DEBHELPER#
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