Mail Archives: djgpp/2021/02/25/17:20:41
This is a port of XZ utils 5.2.5 to MSDOS/DJGPP.
XZ utils provide a general-purpose data compression library and command line
tools. The native file format is the .xz format, but also the legacy .lzma
format is supported. The .xz format supports multiple compression algorithms,
which are called "filters" in context of XZ Utils. The primary filter is
currently LZMA2. With typical files, XZ utils create about 30 % smaller
files than gzip.
To ease adapting support for the .xz format into existing applications and
scripts, the API of liblzma is somewhat similar to the API of the popular
zlib library. For the same reason, the command line tool xz has similar
command line syntax than that of gzip.
DJGPP specific changes.
=======================
- The library code itself has not been changed. The code has already enough
DJGPP support. But the driver program has no SFN support at all. It simply
appends a ".xz" or ".lzma" extension to the original file name according to
the compression algorithm used. This will work on systems with LFN support
but not on plain DOS. I have applied the same schema that I have used for
the BZIP2 port. Unfortunately the original file name is not stored in the
compressed file header so there will be no way to restore the original file
name extension on SFN systems. The program will try to preserve as much
characters as possible from the extension.
For SFN systems the following rules apply for ".xz" extension:
compressed name uncompressed name
filename.exx --> filename.ex
filename.exz --> filename.e
filename.xz --> filename
uncompressed name compressed name
filename.ext --> filename.exx
filename.ex --> filename.exx
filename.e --> filename.exz
filename --> filename.xz
For SFN systems the following rules apply for ".lzma" extension:
compressed name uncompressed name
filename.exl --> filename.ex
filename.elz --> filename.e
filename.lzm --> filename
uncompressed name compressed name
filename.ext --> filename.exl
filename.ex --> filename.exl
filename.e --> filename.elz
filename --> filename.lzm
The port will detect at run time if LFN support is available or not and will
select the method to handle the extension creation accordingly. For LFN and
SFN systems, ".txz" and ".tlz" extensions are always identified as tar files.
Their file name will always get a ".tar" extension. On LFN systems the port
will behave as the original concerning the generation of the extension.
To compile the sources and run the test suite you will need LFN support.
- On SFN systems, this port will always give precedence to the above described
naming convention over the naming convention defined by xz using the -S flag.
This is absolute intentional, so that all the DJGPP ports of bzip2, clzip and
xz behave in the same maner and also backward compatibility is retained.
If you do not like it, you can always revert the changes I have done and
compile the sources from scratch.
- The source package has been configured to be build in the "_build" directory.
- The port has been configured and compiled on WinXP SP3 and Win98 SE. There is
no guarantee that this may be possible with any other DOS-like OS. Due to the
use of long file names it will not be possible to configure and compile without
LFN support.
- This version of the port has been compiled using gcc346 and bnu2351b.
All the changes done to the original distribution are documented in the
diffs file and stored together with all the files needed to configure
the package (config.bat, config.sed, config.site, etc.) in the /djgpp
directory.
For further information about XZ utils please read the info docs and NEWS file.
Here is an extract of the NEWS file showing the user visible changes
from the last port (XZ utils 5.0.8) to this one:
-------------------------------------------------------------------------------
The list of changes is to long to be duplicated here.
Read the NEWS file if you are interested.
-------------------------------------------------------------------------------
The port consists of the usual four packages that have been produced using
djdev205 (CVS repository code) and can be downloaded from ftp.delorie.com
and mirrors as (time stamp 2021-02-08):
XZ utils 5.2 binaries, scripts and man format documentation:
ftp://ftp.delorie.com/pub/djgpp/current/v2apps/xz-525b.zip
XZ utils 5.2 lzma library and headers:
ftp://ftp.delorie.com/pub/djgpp/current/v2apps/xz-525a.zip
XZ utils 5.2 pdf format documentation:
ftp://ftp.delorie.com/pub/djgpp/current/v2apps/xz-525d.zip
XZ utils 5.2 source:
ftp://ftp.delorie.com/pub/djgpp/current/v2apps/xz-525s.zip
Send XZ utils specific bug reports to <lasse DOT collin AT tukaani DOT org>.
Send suggestions and bug reports concerning the DJGPP port to
comp.os.msdos.djgpp or <djgpp AT delorie DOT com>.
Enjoy.
Guerrero, Juan Manuel <juan DOT guerrero AT gmx DOT de>
- Raw text -