Update README and README.WINDOWS
authorEric Biggers <ebiggers3@gmail.com>
Wed, 6 Aug 2014 23:58:10 +0000 (18:58 -0500)
committerEric Biggers <ebiggers3@gmail.com>
Thu, 7 Aug 2014 00:22:23 +0000 (19:22 -0500)
README
README.WINDOWS

diff --git a/README b/README
index 2a17188..9a3f26d 100644 (file)
--- 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.
index 1040646..775d545 100644 (file)
@@ -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/.