About XPK

XPK is an interfacing standard between application programs and packer libraries. Every XPK application program can pack data with any XPK packer.

The XPK system consists of a master library (libxpkmaster.so) and several (un)packer sublibraries (libxpkXXXX.so). Application programs only use the master library directly: the master library takes care of loading and using the sublibraries. Each sublibrary implements one type of compression. There are different libraries for different types of data. When unpacking the applications do not need to know which library was used to pack the data - the appropriate library needs to be installed.

This port is not complete and is under development. Only a few sublibraries are currently available and not all of them work perfectly.

Vesa Halttunen has only ported the XPK library from Amiga. Please send feedback concerning the UNIX port ONLY to him. Please do not blame him for any design flaws in the API. The author of the original Amiga version is aware of them and is willing to help if someone wants to redesign XPK to better reflect the modern trends. It may be a good idea, however, to finish off with a properly working port of the original Amiga library so that former Amiga users can easily import all their XPK packed stuff into new environments.

Some things have been done in a very Amiga-specific way. This means weird type casting and storage size assumptions. These may cause problems on some architectures.

The first UNIX version was created by Vesa Halttunen in December 1999. The original Amiga distribution was created by Dirk Stöcker in October 1996.

The concept, the most stuff and documentations of version 2.x distribution were made by Bryan Ford and Urban Dominik Müller. A lot of bug fixes made Christian von Roques. Vesa Halttunen takes care of the UNIX version and Dirk Stöcker continues the Amiga XPK development. The other persons mentioned above have no time to do further support.

These documents were converted from the Amiga version. If something important has been deleted please tell the author. Error reports and newer docs or corrected contact addresses are welcome too. Some of them are probably outdated.

If you have UNIXified versions of sub libraries or other enhancements please contact the author!

Testing

This package has been tested in the following environments:

Operating systemArchitecture(s)Status
Linux 2.x (glibc 2.1)ix86, ppc, m68kCompiles and works
Solaris 2.7sparc, ix86Compiles and works
AIX 4.3.2ppcCompiles and works
IRIX 6.5mipsCompiles and works
Tru64 UNIX 4.0FalphaCompiles but doesn't work
HP-UX 11.00hppaDoes not compile