X-Git-Url: https://wimlib.net/git/?p=wimlib;a=blobdiff_plain;f=README.WINDOWS;h=09f9624ac7755e006ff124be2a4ee9efd8241482;hp=a0521f023e394f4245e3af38a8ab40fec3cf4562;hb=4f8059f2d0a74a9922128b162d9c9343b305999c;hpb=09301b8018e00f51ba96ba02adca676e817b8827 diff --git a/README.WINDOWS b/README.WINDOWS index a0521f02..09f9624a 100644 --- a/README.WINDOWS +++ b/README.WINDOWS @@ -1,41 +1,72 @@ -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 support has +been further improved in later versions. The Windows build consists of both the +"wimlib" library (which can be built as a DLL) and the "wimlib-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, reparse points, encrypted files, +compressed files, and sparse files. -- 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 +"wimlib-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. + NOTES ABOUT IMAGEX -- wimlib's API is not compatible with Microsoft's WIMGAPI, although they offer - some of the same functionality. +"wimlib-imagex capture", "wimlib-imagex append", and "wimlib-imagex apply" will +work on Windows and have the added advantage of saving and restoring +NTFS-specific data, such as alternate data streams, security descriptors, and +reparse points. -So to be clear: +"wimlib-imagex delete", "wimlib-imagex dir", "wimlib-imagex export", +"wimlib-imagex info", "wimlib-imagex join", "wimlib-imagex optimize", and +"wimlib-imagex split" are all portable and should work the same way on Windows +as on UNIX. -"imagex capture", "imagex append", and "imagex apply" will work on Windows and -have the added advantage of saving and restoring alternate data streams, -security descriptors, and reparse points. - -"imagex delete", "imagex dir", "imagex export", "imagex info", "imagex join", -"imagex optimize", and "imagex split" are all portable and should work the same -way on Windows as on UNIX. - -"imagex mount", "imagex mountrw", and "imagex unmount" will NOT work on Windows. +"wimlib-imagex mount", "wimlib-imagex mountrw", and "wimlib-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. + +- Whenever possible I have included improved documentation and informational + output compared to Microsoft's software. + +- wimlib can correctly save and restore some combinations of data that + Microsoft's ImageX runs into bugs on --- for example, uncompressed files in + compressed directories, or files with alternate data streams and multiple + links. + - wimlib is free software, so you can modify and/or audit the source code. + +See the man page for 'wimlib-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.