New in 1.2: * "-t" option: Allows you to test that every file can be extracted without having to extract it. This also prints the MD5 checksum of the file. * UTF-8 filenames are now decoded correctly. * Large files (>2GB) are now searched correctly for cabinets. * Problems with the GNU library code have been fixed. * Several bugs in the LZX and Quantum decompressors have been fixed. New in 1.1: * A security vulnerability has been fixed. If the files within a cabinet file include the directory ".." in their filename, this will be changed to "xx", to prevent directory traversal by a malicious cabinet (e.g. a cabinet with "..\etc\passwd", "..\..\etc\passwd" and so on) * The GNU library code used has been upgraded to the latest from libiberty, so it should now work better with Cygwin. * cabextract should now compile cleanly on AIX. New in 1.0: * The libmspack library is used for all the hard work. You should find cabextract more robust, and fractionally faster. See the libmspack website at http://www.kyz.uklinux.net/libmspack/ for more on this library. * Fixed a bug (now moved to libmspack) where CAB files that had two kinds of compression would crash. * CAB files should no longer get "/" and "\" mixed up, even with non MS-DOS cabinet files created by tools like Powerarchiver and Cablinux. * Now ignores CAB files listed on the command line that have already been used as part of a multipart set. You can now type "cabextract *.cab" on your Win95 cabinet set, and cabextract will not extract all the files sixty times over. * Now supports reading and extracting large (more than 2Gb) files. * "-L" option: viewing the archive pays attention to the "-L" flag, and shows the filenames in lowercase. * "-L" option: cabextract now correctly lowercases cabinet files with Unicode filenames. * "-l" option: viewing the archive should always show forward slashes as directory seperators. * "-F" option: Now you can choose which files are extracted from the cab. For example, "cabextract -F '*.wav' music.cab" extracts only WAV files. * "-s" option: Now you can limit which multipart cabinets are used. For example, "cabextract -s WIN98_5*.CAB" will only extract files from WIN98_50.CAB through WIN98_59.CAB. * "-p" option: Now you can extract files to stdout rather than disk. * Now comes with an experimental "wince_info" and "wince_rename" perl scripts in the src/ directory, for examining and processing Windows CE installation cabinet header files. There is also the "cabinfo" command for examining the structure of a cab file. As this information is not very useful to most people, none of these three tools are installed. * Both the English and Japanese manual page have been updated. * cabextract now alerts you if you try to unpack InstallShield cabinets. * The definition of Microsoft cabinet files for UNIX's "magic" file, in doc/magic, has been fixed, and a definition of Windows CE install cabinet header files has also been added. New in 0.6: * Quantum method is now supported! Many thanks to Matthew Russotto for this. * Fixed more build problems on non-glibc systems. I have now followed the 'FSF approved' method for including getopt_long, so hopefully Solaris and all the other OSes won't have a problem building cabextract any more. * Japanese manual page included -- you will have to install the file ja/cabextract.1 by yourself, it's not part of the install process. * Now searches for spanning cabinet files in a case-insensitive way. It also searches in both directions for spanned cabinets (each spanned cabinet can include a 'previous' and 'next' cabinet filename), so you can also specify a cabinet in the middle of a set and get the full set, rather than have to work out what the first cabinet is. * An off-by-one month error in file dates was fixed. * Cabinets with files beginning with "/" (or rather, "\") no longer extract to your root directory. * A better embeded cabinet search algorithm was introduced for finding those elusive cabinets in files and executables :) * Now you can find more than one cabinet in a file (if there is more than one to find), and it will be extracted or listed as normal. * Files and directories created now honour your umask settings. * Errors and warnings are now printed to stderr. New in 0.5: * Fixed build problems on non-glibc systems. New in 0.4: * Fixed a new bug I added by myself to 0.3... :) It corrupts all MS-ZIP compressed cabinets after the first 32k, and it should be very obvious that corruption has taken place. * cabextract should be happier building on Cygwin and other such architectures -- you should be able to "./configure; make; make install" again. This was broken in 0.3 due to the getopt.c / getopt1.c weirdness I copied from GNU hello. * Now prints 'Finished processing cabinet.' after completing the extraction a cabinet. New in 0.3: * Fixed very rare, but invisible decrunching bug... if you have any important things you extracted with cabextract, extract them again to be sure they're not corrupt. * cabextract now tells you if a file isn't a cabinet file. * cabextract now goes on to the next file, if extracting one fails. * cabextract now goes on to the next cabinet, if extracting one fails. * cabextract lets you try to 'fix' some cabinets by skipping over bad blocks rather than failing on them. If you have a corrupt cabinet, try the '-f' option, and see how it goes. * Use the new '-d dir' option to extract cabinets to a given directory. * Use the new '-L' option to turn the extracted filenames to lowercase. * Use the new '-q' option to be quiet while extracting archives. * cabextract now prints more information while it's probing multi-part cabinets New in 0.2: * new even-easier installation: ./configure; make; make install * Extracted files now have their timestamps set * Fixed bug which occured when extracting tiny files * Fixed completely invisible intel E8 decoding bug... if you have any important things you extracted with cabextract, extract them again to be sure they're not corrupt. * cabinet search extended to look through *any* file for cabinets, not just MS-DOS/Windows executables. * Now looks for multipart cabinets in the same directory as the base cabinet. This means you can do stuff like 'cd /tmp && cabextract /cdrom/part01.cab' New in 0.1: * supports MSZIP and LZX compression methods * supports split cabs and cabs embedded in executables * initial release