Mail Archives: djgpp/2014/12/23/12:59:05
This is a port of XZ utils 5.0.7 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 sources do not compile with djdev203 because inttypes.h and snprintf are
missed. This port uses the CVS repository version of snprintf. The required
definition for PRIx32 and PRIx64 have been taken from the CVS repository
version of inttypes.h.
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.
The port has been configured and compiled on WinXP SP3. There is no guarantee
that this may be possible with any other DOS-like OS. Due to the massive use
of long file names it will not be possible to configure and compile without
LFN support.
The source package is now distributed configured for both DJGPP 2.03 and
DJGPP 2.04. In the top srcdir there is a "_build.203" directory and a
"_build.204" directory. If for some reason you need to reconfigure the
sources delete the complete contain of the _build.20[3|4] directory and
run the following command:
..\djgpp\config.bat ./..
The DJGPP 2.03 version of the port has been compiled using gcc473 and
bnu224br2. The DJGPP 2.04 version of the port has been compiled using
gcc492 and bnu224br2. Building with stock djdev204 is no longer supported
due to bugs in different LFN functions that makes the port useless on plain
DOS together with LFN drivers that do not implement the full set of 0x71NN
functions. Instead of using the libc.a provided djdev204, a libc version
compiled from the repository code has been used. The repository code has
been patched with the memory patch as provided by Andris Pavenis in:
http://ap1.pp.fi/djgpp/djdev/djgpp/20140421/use_nmalloc.diff
The goal is to test how well the new memory system and the current libc
code works. The repository code can be downloaded from Martin Stromberg's
site as:
http://www.ludd.luth.se/~ams/djgpp/cvs/djgpp.cvs.tar.gz
This port provides no NLS support for the version compiled with djdev203.
It has been configured with NLS support disabled by passing the no-nls
flag as argument to config.bat. If you prefer NLS support you will have
to reconfigure the sources omitting the no-nls flag when calling config.bat.
This port provides NLS support for the version compiled with DJGPP 2.04.
It has been configured with NLS support enabled. If you prefer no NLS,
then reconfigure the sources passing the no-nls flag to the config.bat
file.
The port has been configured and compiled with NLS support enabled using
the latest ports of libiconv and gettext:
ftp://ftp.delorie.com/pub/djgpp/beta/v2gnu/licv114br2.zip
ftp://ftp.delorie.com/pub/djgpp/beta/v2gnu/gtxt192b.zip
These are DXE3 modules and _MUST_ be installed or the program will abort
every time it is started.
As usual, all djgpp specific files (config.bat, diffs, readme files, etc.)
are located in the /djgpp directory.
Please read the docs to become familiar with the products.
This is an verbatim extract of the NEWS file:
-------------------------------------------------------------------------------
5.0.7 (2014-09-20)
* Fix regressions introduced in 5.0.6:
- Fix building with non-GNU make.
- Fix invalid Libs.private value in liblzma.pc which broke
static linking against liblzma if the linker flags were
taken from pkg-config.
5.0.6 (2014-09-14)
* xzgrep now exits with status 0 if at least one file matched.
* A few minor portability and build system fixes
-------------------------------------------------------------------------------
The port has been compiled using stock djdev203 (patchlevel 2) and consists
of the four packages that can be downloaded from ftp.delorie.com and mirrors
as (time stamp 2014-12-22):
XZ utils 5.0.7 binaries, scripts and man format documentation:
ftp://ftp.delorie.com/pub/djgpp/current/v2apps/xz-507b.zip
XZ utils 5.0.7 lzma library and headers:
ftp://ftp.delorie.com/pub/djgpp/current/v2apps/xz-507a.zip
XZ utils 5.0.7 pdf format documentation:
ftp://ftp.delorie.com/pub/djgpp/current/v2apps/xz-507d.zip
XZ utils 5.0.7 source:
ftp://ftp.delorie.com/pub/djgpp/current/v2apps/xz-507s.zip
The binaries and library have been produced a second time using a libc.a
version compiled from current repository code and patched with the new
malloc code. This package is available at ftp.delorie.com and mirrors
as (time stamp 2014-12-22):
XZ utils 5.0.7 binaries, scripts and man format documentation:
ftp://ftp.delorie.com/pub/djgpp/beta/v2apps/xz-507b.zip
XZ utils 5.0.7 lzma library and headers:
ftp://ftp.delorie.com/pub/djgpp/beta/v2apps/xz-507a.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 -