Xlunzip

lzip logo

Introduction

Xlunzip is a test tool for the lzip decompression code of my lzip patch for linux. Xlunzip is similar to lunzip, but it uses the lzip_decompress linux module as a backend. Xlunzip tests the module for stream, buffer-to-buffer and mixed decompression modes, including in-place decompression (using the same buffer for input and output). You can use xlunzip to verify that the module produces correct results when decompressing single member files, multimember files, or the concatenation of two or more compressed files. Xlunzip can be used with unzcrash to test the robustness of the module to the decompression of corrupted data.

Note that the in-place decompression of concatenated files can't be guaranteed to work because an arbitrarily low compression ratio of the last part of the data can be achieved by appending enough empty compressed members to a file.

The xlunzip tarball contains a copy of the lzip_decompress module and can be compiled and tested without downloading or applying the patch to the kernel.

My lzip patch for linux can be found at http://download.savannah.gnu.org/releases/lzip/kernel/

Learn more about lzip in the Lzip Home Page.

Lzip related components in the kernel

The lzip_decompress module in lib/lzip.c provides a versatile lzip decompression function able to do buffer to buffer decompression or stream decompression with fill and flush callback functions. The usage of the function is documented in include/linux/lzip.h.

For decompressing the kernel image, initramfs, and initrd, there is a wrapper function in lib/decompress_lunzip.c providing the same common interface as the other decompress_*.c files, which is defined in include/linux/decompress/generic.h.

Documentation

Xlunzip only includes a man page and a README file. For information about the lzip file format see the online manual of lzip below.

The manual is available in the info system of the GNU Operating System. Use info to access the top level info page. Use info lzip to access the lzip section directly.

An online manual for lzip can be found here.

Download

The latest released version of xlunzip can be found here. You may also subscribe to lzip-bug and receive an email every time a new version is released.

How to get help

For general discussion of bugs in xlunzip the mailing list lzip-bug@nongnu.org is the most appropriate forum. Please send messages as plain text. Please do not send messages encoded as HTML nor encoded as base64 MIME nor included as multiple formats. Please include a descriptive subject line. If all of the subject are "bug in xlunzip" it is impossible to differentiate them.

An archive of the bug report mailing list is available at http://lists.gnu.org/mailman/listinfo/lzip-bug.

How to help

To contact the author, either to report a bug or to contribute fixes or improvements, send mail to lzip-bug@nongnu.org. Please send messages as plain text. If posting patches they should be in unified diff format against the latest version. They should include a text description.

See also the lzip project page at Savannah.

Licensing

Xlunzip 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 of the License, or (at your option) any later version.

Valid HTML 4.01 Strict


Copyright © 2018 Antonio Diaz Diaz
Lzip logo Copyright © 2013 Sonia Diaz Pacheco

You are free to copy, modify and distribute all or part of this article without limitation.

Updated: 2017-07-09