]> wimlib.net Git - wimlib/blobdiff - README.WINDOWS
Add --noacls options and set dwDesiredAccess more appropriately
[wimlib] / README.WINDOWS
index a0521f023e394f4245e3af38a8ab40fec3cf4562..a4968279c2f1e6abeabd9e4c0bfda2550f8600e7 100644 (file)
@@ -1,25 +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 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.  On Windows there is no equivalent of
-   FUSE, which I used to get mounting working on Linux and BSD, so I would have
-   to program a "Filesystem Filter" driver with Microsoft's eccentric API.
-
--  wimlib's API is not compatible with Microsoft's WIMGAPI, although they offer
-   some of the same functionality.
-
-So to be clear:
+                                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,
 
 "imagex capture", "imagex append", and "imagex apply" will work on Windows and
 have the added advantage of saving and restoring alternate data streams,
@@ -31,11 +24,40 @@ way on Windows as on UNIX.
 
 "imagex mount", "imagex mountrw", and "imagex unmount" will NOT work on Windows.
 
 
 "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:
 
 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 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.
 - 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.