From: Eric Biggers Date: Wed, 6 Aug 2014 23:58:10 +0000 (-0500) Subject: Update README and README.WINDOWS X-Git-Tag: v1.7.1~5 X-Git-Url: https://wimlib.net/git/?p=wimlib;a=commitdiff_plain;h=41fb4d5debd14f3a0e1717bf25e7e145cd42ae1f Update README and README.WINDOWS --- diff --git a/README b/README index 2a171888..9a3f26da 100644 --- a/README +++ b/README @@ -2,16 +2,15 @@ This is wimlib version 1.7.1-BETA (June 2014). wimlib is a C library for creating, modifying, extracting, and mounting files in the Windows Imaging -Format (WIM files). These files are normally created using the ImageX -(imagex.exe) or Dism (Dism.exe) utilities on Windows, but wimlib is distributed -with a free implementation of ImageX called "wimlib-imagex" for both UNIX-like -systems and Windows. +Format (WIM files). wimlib and its command-line frontend 'wimlib-imagex' +provide a free and cross-platform alternative to Microsoft's WIMGAPI, ImageX, +and DISM. INSTALLATION -To install wimlib and wimlib-imagex on Windows you simply need to download and -extract the ZIP file containing the latest binaries from the SourceForge page -(http://sourceforge.net/projects/wimlib/), which you may have already done. +To install wimlib and wimlib-imagex on Windows, simply download and extract the +ZIP file containing the latest binaries from the SourceForge page +(http://sourceforge.net/projects/wimlib/). You probably have already done this! To install wimlib and wimlib-imagex on UNIX-like systems (with Linux being the primary supported and tested platform), you must compile the source code, which @@ -309,47 +308,42 @@ This section documents the most important options that may be passed to the PORTABILITY -wimlib has primarily been tested on Linux and Windows (primarily Windows 7, but -also Windows XP and Windows 8). +wimlib works on both UNIX-like systems (Linux, Mac OS X, FreeBSD, etc.) and +Windows (XP and later). -wimlib may work on FreeBSD and Mac OS X. However, this is not well tested. If -you do not have libntfs-3g 2011-4-12 or later available, you must configure -wimlib with --without-ntfs-3g. On FreeBSD, before mounting a WIM you need to -load the POSIX message queue module (run `kldload mqueuefs'). +On UNIX-like systems other than Linux, you must compile --without-fuse. +In addition, --without-ntfs-3g and --without-libcrypto are needed if the +corresponding libraries are not available on your system. -The code has primarily been tested on x86 and x86_64 CPUs, but it's written to -be portable to other architectures and I've also tested it on ARM. However, -although the code is written to correctly deal with endianness, it has not yet -actually been tested on a big-endian architecture. +wimlib works on x86 and x86_64, but it should work on any other GCC-supported +32-bit or 64-bit architecture. REFERENCES The WIM file format is partially specified in a document that can be found in the Microsoft Download Center. However, this document really only provides an -overview of the format and is not a formal specification. +overview of the format and is not a formal specification. It also does not +cover later extensions of the format, such as solid blocks. With regards to the supported compression formats: - Microsoft has official documentation for XPRESS that is of reasonable quality. -- Microsoft has official documentation for LZX but it contains errors. +- Microsoft has official documentation for LZX, but in two different documents, + neither of which is completely applicable to its use in the WIM format, and + the first of which contains multiple errors. - There does not seem to be any official documentation for LZMS, so my comments and code in src/lzms-decompress.c may in fact be the best documentation available for this particular compression format. +The algorithms used by wimlib's compression and decompression codecs are +inspired by a variety of sources, including open source projects and computer +science papers. + The code in ntfs-3g_apply.c and ntfs-3g_capture.c uses the NTFS-3g library, which is a library for reading and writing to NTFS filesystems (the filesystem used by recent versions of Windows). See http://www.tuxera.com/community/ntfs-3g-download/ for more information. -The LZX decompressor (lzx-decompress.c) was originally based on code from the -cabextract project (http://www.cabextract.org.uk). The LZX compressor -(lzx-compress.c) was originally based on code written by Matthew Russotto -(www.russotto.net/chm/). However I have since rewritten and made many -improvements to both the decompressor and compressor. - -lz_binary_trees.c contains LZ77 match-finding code that uses binary trees. It -is based on code from liblzma but I have since rewritten it. - A limited number of other free programs can handle some parts of the WIM file format: @@ -357,8 +351,9 @@ file format: other archive formats). However, wimlib is designed specifically to handle WIM files and provides features previously only available in Microsoft's implementation, such as the ability to mount WIMs read-write as well as - read-only, the ability to create compressed WIMs, and the correct handling - of security descriptors and hard links. + read-only, the ability to create compressed WIMs, the correct handling of + security descriptors and hard links, support for LZMS compression, and + support for solid archives. * ImagePyX (https://github.com/maxpat78/ImagePyX) is a Python program that provides similar capabilities to wimlib-imagex. One thing to note, though, is that it does not support compression and decompression by itself, but @@ -386,7 +381,3 @@ functionality. wimlib comes with no warranty whatsoever. Please submit a bug report (to ebiggers3@gmail.com) if you find a bug in wimlib and/or wimlib-imagex. - -Be aware that some parts of the WIM file format are poorly documented or even -completely undocumented, so I've just had to do the best I can to read and write -WIMs that appear to be compatible with Microsoft's software. diff --git a/README.WINDOWS b/README.WINDOWS index 10406467..775d545d 100644 --- a/README.WINDOWS +++ b/README.WINDOWS @@ -12,9 +12,9 @@ you should read too. For the convenience of Windows users, the Windows distribution of wimlib is a ZIP file containing the following items: - * wimlib-imagex.exe, a command-line tool to deal with WIM (.wim) and split WIM - (.swm) files that is similar to Microsoft's ImageX. This is a ready-to-run - executable and not an installer. + * wimlib-imagex.exe, a command-line tool to deal with WIM (.wim), split WIM + (.swm), and ESD (.esd) files that is inspired by Microsoft's ImageX and + DISM. This is a ready-to-run executable and not an installer. * Very short batch scripts (e.g. wimapply.cmd) which are shortcuts to the corresponding wimlib-imagex commands (e.g. `wimlib-imagex apply'). @@ -69,8 +69,7 @@ It's recommended to use wimlib-imagex in scripts to avoid having to interactively enter commands. However, note that wimlib-imagex is largely just a command-line front-end for wimlib, and it's possible to use wimlib's API in other front-ends or applications. Currently there is no official graphical user -interface available for wimlib or wimlib-imagex. An unofficial Windows-only -graphical user interface that provides a thin wrapper around wimlib-imagex can -be downloaded at -http://reboot.pro/files/file/485-wimlib-imagex-command-line-compiler/; however, -as of 2014-03-23 it is still under development and is only released for testing. +interface available for wimlib or wimlib-imagex. However, an unofficial, beta, +Windows-only graphical user interface that provides a thin wrapper around +wimlib-imagex can be downloaded at +http://reboot.pro/files/file/485-wimlib-imagex-command-line-compiler/.