xz.tukaani.org Open in urlscan Pro
2606:50c0:8000::153  Public Scan

URL: https://xz.tukaani.org/xz-utils/
Submission: On March 29 via manual from US — Scanned from DE

Form analysis 0 forms found in the DOM

Text Content

Home XZ Utils XZ Embedded XZ for Java XZ File Format Contact


XZ UTILS

Documentation Releases Security Issues Development Bindings Pre-built binaries
Platforms Licensing

XZ Utils is a complete C99 implementation of the .xz file format. XZ Utils were
originally written for POSIX systems, but has been ported to a few non-POSIX
systems over the years.

XZ Utils consist of several components:

 * liblzma is a compression library with an API similar to that of zlib.
 * xz is a command line tool with syntax similar to that of gzip.
 * xzdec is a decompression-only tool smaller than the full-featured xz tool.
 * A set of shell scripts (xzgrep, xzdiff, etc.) have been adapted from gzip to
   ease viewing, grepping, and comparing compressed files.


DOCUMENTATION ¶

The documentation provided here is from the 5.6.1 release.

Man pages with keyword indexes:

 * xz(1)
 * xzgrep(1)
 * xzdiff(1) and xzcmp(1)
 * xzless(1)
 * xzmore(1)
 * xzdec(1)
 * lzmainfo(1)

Doxygen-generated liblzma API documentation is also included in the source
packages since XZ Utils 5.4.2.


RELEASES ¶

Versions 5.2.12, 5.4.3 and later have been signed with Jia Tan's OpenPGP key .
The older releases have been signed with Lasse Collin's OpenPGP key .

See the NEWS file for a summary of changes between versions. A more detailed
change log is provided in the source code releases.


STABLE

5.6.1 was released on 2024-03-09.

xz-5.6.1.tar.gz (2975 KiB) signature xz-5.6.1.tar.bz2 (2239 KiB) signature
xz-5.6.1.tar.zst (1798 KiB) signature xz-5.6.1.tar.xz (1738 KiB) signature

All releases since 5.2.10 and 5.4.0 are hosted on GitHub.


UNSTABLE

The odd numbered minor releases are development releases and should be
considered unstable. Incompatible changes to unstable features may be done
before they are included in a stable release.

There currently are no unstable releases in this cycle.


OLD VERSIONS

Source and binary packages of old XZ Utils releases are available for the stable
releases.


SECURITY ISSUES ¶


XZGREP CVE-2022-1271, ZDI-CAN-16587

A patch to fix a security vulnerability in xzgrep (CVE-2022-1271, ZDI-CAN-16587)
was made public on 2022-04-07. The patch applies to 4.999.9beta, 5.2.5,
5.3.1alpha, and 5.3.2alpha. Newer XZ Utils releases include an improved fix for
the problem.

It is a severe issue if an attacker can control the filenames that are given on
the xzgrep command line. The vulnerability was discovered by cleemy desu wayo
working with Trend Micro Zero Day Initiative. For more information, see the
detailed description in the patch file linked below.

xzgrep-ZDI-CAN-16587.patch
xzgrep-ZDI-CAN-16587.patch.sig


DEVELOPMENT ¶

The project's main repository is on GitHub and is mirrored (with some delay) to
git.tukaani.org.

Check out the current source code:

git clone https://github.com/tukaani-project/xz



BUILDING

--------------------------------------------------------------------------------

XZ Utils should primarily be built using GNU Autotools. CMake is close to
feature parity with the GNU Autotools build, but is still missing a few
features.

We encourage users to test the CMake-based build on different operating systems.
See the main comment in CMakeLists.txt for more information.

For GNU Autotools, the minimum versions required are:

 * Autoconf 2.69
 * Automake 1.12
 * gettext 0.19.6 (Note: autopoint depends on cvs!)
 * Libtool 2.4

Note: It is strongly recommended to build using the latest versions.

The following are optional dependencies. The autogen.sh script will fail if they
are missing but autogen.sh takes command line arguments to disable these
dependencies.

 * po4a is needed for translated documentation (man pages). To build without
   po4a, use --no-po4a with autogen.sh.
 * Doxygen is needed to generate liblzma API documentation. To build without
   Doxygen, use --no-doxygen with autogen.sh.

For the CMake build, version 3.14 or greater is required. However, translation
support is disabled with CMake versions older than 3.20.


BRANCHES:

 * master: the latest development code
 * v5.6: fixes for the next 5.6.x release
 * v5.4: fixes for the next 5.4.x release (unmaintained)
 * v5.2: fixes for the next 5.2.x release (unmaintained)
 * v5.0: fixes for the next 5.0.x release (unmaintained)


BINDINGS ¶


PYTHON

Python 3.3 includes bindings for liblzma.



PERL

Perl bindings for liblzma: IO-Compress-Lzma and Compress-Raw-Lzma.



HASKELL

Haskell bindings.



DELPHI AND FREE PASCAL

Bindings and example programs for Delphi and Free Pascal are available here.


PRE-BUILT BINARIES ¶

Many free software operating systems already provide easy-to-install XZ Utils
binaries. It doesn't make sense to provide links to all those here.

Windows and DOS binaries are provided here for older versions of XZ Utils. If
there is any interest in future versions of these binaries then please contact
us.


WINDOWS

--------------------------------------------------------------------------------

The Windows version of XZ Utils includes binaries for 32-bit and 64-bit x86. The
binaries only depend on msvcrt.dll, which is available on Windows 98 and later
out of the box.

 * Command line tools: xz, xzdec, lzmadec, lzmainfo
 * Shared (DLL) and static liblzma, required C header files, and liblzma.def to
   create import libraries for non-GNU toolchains (no import library is needed
   with GNU toolchain)
 * Documentation is in plain text (UTF-8) format. The man pages of the command
   line tools are included also as PDF.

5.2.10, 5.2.11, or 5.2.12 do not have anything significant for Windows so only
5.2.9 is here. 5.4.x builds are not provided for now.

xz-5.2.9.zip (1473 KiB) signature xz-5.2.9.7z (708 KiB) signature


DOS

--------------------------------------------------------------------------------

The DOS version of XZ Utils includes only the xz command line tool and some
documentation. The xz tool should work e.g. on FreeDOS (also in DOSEMU), MS-DOS,
and Windows 95/98/98SE/ME. This doesn't necessarily work in DOSBox at all, and
at least some problems are expected under Windows XP Command Prompt (signal
handling doesn't work).

Since the DOS version is naturally going to get very little testing, it is
recommended to use the Windows version instead of the DOS version if you need xz
under Windows 98 or later. It is likely that that the DOS version will be
updated only occasionally.

5.2.0 and later have experimental support for 8.3 filenames. See xz-dos.txt in
the binary package or dos/README.txt in the source package for details.

xz-5.4.0.zip (277 KiB) signature

The package includes some copylefted code from DJGPP and CWSDPMI. The relevant
source code is available from their home pages, and copies are also available
below.

djlsr205.zip (1880 KiB) djtst205.zip (963 KiB) csdpmi7s.zip (88 KiB)

Juan Manuel Guerrero has made a more complete port of XZ Utils to DOS. It also
has support for short file names (8.3), but the naming method is different from
the one found in 5.2.0 and later. It is available from DJGPP mirrors under
/current/v2apps (e.g. xz-500b.zip for 5.0.0 binaries).


SUPPORTED PLATFORMS ¶

Below is an incomplete and somewhat vague (version numbers mostly missing) list
of operating systems on which XZ Utils should work. The compiler(s) or
toolchains are mentioned in parenthesis. GCC refers to GCC 3 or later. If you
have additions or corrections, please contact us.

 * GNU/Linux (GCC, Clang, ICC, IBM XL C)
 * GNU/HURD (GCC)
 * DragonflyBSD (GCC)
 * FreeBSD (GCC, Clang)
 * MirBSD (GCC)
 * NetBSD (GCC)
 * OpenBSD (Clang, GCC)
 * MINIX 3 (GCC) [1]
 * Haiku (GCC4)
 * Mac OS X (GCC)
 * Solaris 8, 9, 10, 11 (GCC, Sun Studio) [3]
 * Solaris 2.6, 7 (GCC)
 * HP-UX (GCC, HP ANSI C) [2]
 * Tru64 (GCC, Compaq C compiler) [1]
 * IRIX (MIPSpro) [1]
 * AIX (GCC, IBM XL C)
 * z/OS (IBM XL C)
 * QNX (compilers?)
 * OpenVMS (HP C compiler) [1]
 * OpenVOS 17 (GCC)
 * SCO OpenServer 5.0.7 (GCC 3.4.6, 4.2.4) [4]
 * Windows 95 and later (GCC/MinGW, GCC/MinGW-w64, GCC/Cygwin, GCC/Interix,
   Visual Studio 15+ [1]
 * OS/2, eComStation (GCC)
 * DOS e.g. FreeDOS and MS-DOS (GCC/DJGPP) [1]

[1] See also the platform-specific notes in the INSTALL file.

[2] 2010-09-22: HP ANSI C compiler crashes when compiling XZ Utils on PA-RISC.
On Itanium there are no problems.

[3] On Solaris 8 and 9 one may need to pass ac_cv_prog_cc_c99= to configure if
using Sun Studio.

[4] Use --disable-threads when running configure.


LICENSING ¶

From the version 5.5.2beta onwards, the core components of XZ Utils are under
the the BSD Zero Clause License (0BSD). The previous versions remain in the
public domain.

Some parts of XZ Utils (for example, scripts from GNU gzip and some build system
files) are under different free software licenses such as GNU LGPLv2.1, GNU
GPLv2, or GNU GPLv3.

See the file COPYING for more details.