Add --noacls options and set dwDesiredAccess more appropriately
[wimlib] / README.WINDOWS
index 952cbd85cf1ae239fbe2de95b1ec18074ae81d98..a4968279c2f1e6abeabd9e4c0bfda2550f8600e7 100644 (file)
@@ -1,23 +1,18 @@
-wimlib 1.3.0 has added experimental support for Windows builds.  These builds
-include both the "wimlib" library (built as a DLL) and the "imagex" executable.
+                                  INTRODUCTION
 
-The Windows builds use native Win32 calls when appropriate to handle alternate
-data streams, security descriptors, and reparse points.
+wimlib 1.3.0 has added experimental support for Windows builds.  The Windows
+build consists of both the "wimlib" library (which can be built as a DLL) and
+the "imagex" executable.
 
-Windows support currently has the following limitations:
+The Windows build of wimlib uses native Win32 calls when appropriate to handle
+alternate data streams, security descriptors, and reparse points.
 
--  It relies on the Cygwin UNIX-compatibility layer.  You do not, however, need
-   to have the Cygwin distribution installed to run it, as I have posted a ZIP
-   file on SourceForge that contains the build of wimlib and "imagex" along with
-   the DLLs needed for it to run.  Please note that these DLLs are free and open
-   source software; see http://www.cygwin.com/ for more details.
+Mounting WIM files is not supported on Windows.  Also please note that wimlib's
+"imagex" is NOT intended to be command-line compatible with Microsoft's
+"imagex", and wimlib is NOT intended to be API compatible with Microsoft's
+WIMGAPI.  They are similar, though.
 
--  Mounting WIM files is not supported.
-
--  wimlib's API is not compatible with Microsoft's WIMGAPI, although they offer
-   some of the same functionality.
-
-So, in terms of the "imagex" program:
+                                NOTES ABOUT IMAGEX
 
 "imagex capture", "imagex append", and "imagex apply" will work on Windows and
 have the added advantage of saving and restoring alternate data streams,
@@ -29,11 +24,40 @@ way on Windows as on UNIX.
 
 "imagex mount", "imagex mountrw", and "imagex unmount" will NOT work on Windows.
 
+
 So on Windows, why would you want to use wimlib's ImageX instead of Microsoft's?
 Well, here are a few reasons:
 
-- wimlib can be freely distributed; there is no need to download a 1.8 gigabyte
-  "Windows Automated Installation Kit".
 - wimlib offers fast multithreaded compression, so making WIM images can be much
   faster.
+
+- wimlib can correctly save and restore alternate data streams, which
+  Microsoft's ImageX sometimes captures incorrectly due to a bug.
+
 - wimlib is free software, so you can modify and/or audit the source code.
+
+See the man page for 'imagex' for more information.
+
+                                BUILDING ON WINDOWS
+
+Actually doing the Windows build is a bit tricky, and I'd recommend you download
+precompiled binaries from http://sourceforge.net/projects/wimlib/files/ instead.
+I did it using MinGW-w64 on a Linux host, with the following configuration
+command:
+
+$ ./configure --host=i686-w64-mingw32
+
+after having installed the required libraries:
+
+* mingw-w64-gettext
+* mingw-w64-libiconv
+* mingw-w64-libxml2
+* mingw-w64-winpthreads
+* mingw-w64-zlib
+
+Note: zlib and gettext are only necessary when required by the build of libxml2.
+
+Building wimlib using Cygwin is not supported.  I was trying this for a while,
+but I ran into some issues with mixing native Win32 functions and
+Cygwin-provided functions, so I made it possible to do a native Win32 build
+instead.