From 232c381f9f3ab814258aa8e2380f537498a50905 Mon Sep 17 00:00:00 2001 From: Eric Biggers Date: Thu, 21 Mar 2013 20:36:36 -0500 Subject: [PATCH] Allow "imagex" to be renamed (default: wimlib-imagex) --- Makefile.am | 40 ++++++---- NEWS | 9 +++ configure.ac | 51 +++++++----- doc/imagex-append.1.in | 2 +- doc/imagex-apply.1.in | 42 +++++----- doc/imagex-capture.1.in | 50 ++++++------ doc/imagex-delete.1.in | 20 ++--- doc/imagex-dir.1.in | 12 +-- doc/imagex-export.1.in | 20 ++--- doc/imagex-info.1.in | 20 ++--- doc/imagex-join.1.in | 16 ++-- doc/imagex-mount.1.in | 60 +++++++------- doc/imagex-mountrw.1.in | 2 +- doc/imagex-optimize.1.in | 18 ++--- doc/imagex-split.1.in | 10 +-- doc/imagex-unmount.1.in | 2 +- doc/imagex.1.in | 104 ++++++++++++------------- doc/mkwinpeimg.1.in | 2 +- programs/imagex.c | 77 +++++++++--------- programs/{mkwinpeimg => mkwinpeimg.in} | 37 ++++----- src/wimlib.h | 64 ++++++++------- 21 files changed, 350 insertions(+), 308 deletions(-) rename programs/{mkwinpeimg => mkwinpeimg.in} (94%) diff --git a/Makefile.am b/Makefile.am index 7700f46a..ed45a7bc 100644 --- a/Makefile.am +++ b/Makefile.am @@ -103,6 +103,16 @@ imagex_SOURCES += programs/imagex-win32.c programs/imagex-win32.h libwim_la_SOURCES += src/win32.c endif +install-exec-hook: + if [ "@IMAGEX_PROGNAME@" != imagex ]; then \ + cd $(DESTDIR)$(bindir) && mv -f imagex "@IMAGEX_PROGNAME@"; \ + fi + +uninstall-hook: + if [ "@IMAGEX_PROGNAME@" != imagex ]; then \ + cd $(DESTDIR)$(bindir) && rm -f "@IMAGEX_PROGNAME@"; \ + fi + dist_bin_SCRIPTS = programs/mkwinpeimg include_HEADERS = src/wimlib.h @@ -127,21 +137,21 @@ pkgconfig_DATA = wimlib.pc $(pkgconfig_DATA): config.status -man1_MANS = \ - doc/imagex.1 \ - doc/imagex-append.1 \ - doc/imagex-apply.1 \ - doc/imagex-capture.1 \ - doc/imagex-delete.1 \ - doc/imagex-dir.1 \ - doc/imagex-export.1 \ - doc/imagex-info.1 \ - doc/imagex-join.1 \ - doc/imagex-mount.1 \ - doc/imagex-mountrw.1 \ - doc/imagex-optimize.1 \ - doc/imagex-split.1 \ - doc/imagex-unmount.1 \ +man1_MANS = \ + doc/@IMAGEX_PROGNAME@.1 \ + doc/@IMAGEX_PROGNAME@-append.1 \ + doc/@IMAGEX_PROGNAME@-apply.1 \ + doc/@IMAGEX_PROGNAME@-capture.1 \ + doc/@IMAGEX_PROGNAME@-delete.1 \ + doc/@IMAGEX_PROGNAME@-dir.1 \ + doc/@IMAGEX_PROGNAME@-export.1 \ + doc/@IMAGEX_PROGNAME@-info.1 \ + doc/@IMAGEX_PROGNAME@-join.1 \ + doc/@IMAGEX_PROGNAME@-mount.1 \ + doc/@IMAGEX_PROGNAME@-mountrw.1 \ + doc/@IMAGEX_PROGNAME@-optimize.1 \ + doc/@IMAGEX_PROGNAME@-split.1 \ + doc/@IMAGEX_PROGNAME@-unmount.1 \ doc/mkwinpeimg.1 $(man1_MANS): config.status diff --git a/NEWS b/NEWS index 0dd16bce..2c96d8a5 100644 --- a/NEWS +++ b/NEWS @@ -1,5 +1,14 @@ Only the most important changes more recent than version 0.6 are noted here. +Version 1.3.1: + Since wimlib can now be used on Windows, wimlib's implementation of + ImageX has been renamed to wimlib-imagex to avoid confusion with + Microsoft's implementation of ImageX, which would have the same file + name ("imagex.exe"). If you really don't like this you can pass the + --with-imagex-progname option to `configure' to choose a different name, + or even simply rename the binary yourself (but the former way will + configure the man pages to use the chosen name). + Version 1.3.0: Added experimental support for native Windows builds. Binaries can be downloaded from the SourceForge page. diff --git a/configure.ac b/configure.ac index 06a75400..2b15855b 100644 --- a/configure.ac +++ b/configure.ac @@ -6,26 +6,39 @@ AM_INIT_AUTOMAKE([-Wall -Werror subdir-objects]) AC_C_BIGENDIAN m4_ifdef([AM_PROG_AR], [AM_PROG_AR]) LT_INIT + +AC_ARG_WITH(imagex-progname, + [AS_HELP_STRING([--with-imagex-progname=NAME], + [Set the name of installed ImageX program (default: wimlib-imagex)])], + [IMAGEX_PROGNAME=$withval], + [IMAGEX_PROGNAME="wimlib-imagex"]) + +AC_SUBST([IMAGEX_PROGNAME], [$IMAGEX_PROGNAME]) +AC_DEFINE_UNQUOTED([IMAGEX_PROGNAME], ["$IMAGEX_PROGNAME"], + [Binary name for the implementation of ImageX distributed with wimlib]) + AC_CONFIG_HEADERS([config.h]) -AC_CONFIG_FILES([Makefile - doc/Doxyfile - wimlib.pc - doc/imagex.1 - doc/imagex-append.1 - doc/imagex-apply.1 - doc/imagex-capture.1 - doc/imagex-delete.1 - doc/imagex-dir.1 - doc/imagex-export.1 - doc/imagex-info.1 - doc/imagex-join.1 - doc/imagex-mount.1 - doc/imagex-mountrw.1 - doc/imagex-optimize.1 - doc/imagex-split.1 - doc/imagex-unmount.1 - doc/mkwinpeimg.1 - ]) +AC_CONFIG_FILES([Makefile] + [doc/Doxyfile] + [wimlib.pc] + [doc/"$IMAGEX_PROGNAME".1:doc/imagex.1.in] + [doc/"$IMAGEX_PROGNAME"-append.1:doc/imagex-append.1.in] + [doc/"$IMAGEX_PROGNAME"-apply.1:doc/imagex-apply.1.in] + [doc/"$IMAGEX_PROGNAME"-capture.1:doc/imagex-capture.1.in] + [doc/"$IMAGEX_PROGNAME"-delete.1:doc/imagex-delete.1.in] + [doc/"$IMAGEX_PROGNAME"-dir.1:doc/imagex-dir.1.in] + [doc/"$IMAGEX_PROGNAME"-export.1:doc/imagex-export.1.in] + [doc/"$IMAGEX_PROGNAME"-info.1:doc/imagex-info.1.in] + [doc/"$IMAGEX_PROGNAME"-join.1:doc/imagex-join.1.in] + [doc/"$IMAGEX_PROGNAME"-mount.1:doc/imagex-mount.1.in] + [doc/"$IMAGEX_PROGNAME"-mountrw.1:doc/imagex-mountrw.1.in] + [doc/"$IMAGEX_PROGNAME"-optimize.1:doc/imagex-optimize.1.in] + [doc/"$IMAGEX_PROGNAME"-split.1:doc/imagex-split.1.in] + [doc/"$IMAGEX_PROGNAME"-unmount.1:doc/imagex-unmount.1.in] + [doc/mkwinpeimg.1]) + +AC_CONFIG_FILES([programs/mkwinpeimg], [chmod +x programs/mkwinpeimg]) + AC_PROG_CC AM_PROG_CC_C_O AC_CANONICAL_HOST diff --git a/doc/imagex-append.1.in b/doc/imagex-append.1.in index da020ce8..b2c19505 100644 --- a/doc/imagex-append.1.in +++ b/doc/imagex-append.1.in @@ -1 +1 @@ -.so man1/imagex-capture.1 +.so man1/@IMAGEX_PROGNAME@-capture.1 diff --git a/doc/imagex-apply.1.in b/doc/imagex-apply.1.in index 59114271..1868100c 100644 --- a/doc/imagex-apply.1.in +++ b/doc/imagex-apply.1.in @@ -1,14 +1,14 @@ -.TH IMAGEX "1" "March 2013" "imagex (wimlib) wimlib @VERSION@" "User Commands" +.TH IMAGEX "1" "March 2013" "@IMAGEX_PROGNAME@ @VERSION@" "User Commands" .SH NAME -imagex-apply \- Extract one image, or all images, from a WIM archive +@IMAGEX_PROGNAME@-apply \- Extract one image, or all images, from a WIM archive .SH SYNOPSIS -\fBimagex apply\fR \fIWIMFILE\fR \fIIMAGE\fR \fITARGET\fR [\fIOPTION\fR]... +\fB@IMAGEX_PROGNAME@ apply\fR \fIWIMFILE\fR \fIIMAGE\fR \fITARGET\fR [\fIOPTION\fR]... .SH DESCRIPTION .PP -\fBimagex apply\fR extracts an image, or all images, from the Windows Imaging +\fB@IMAGEX_PROGNAME@ apply\fR extracts an image, or all images, from the Windows Imaging (WIM) file \fIWIMFILE\fR. Note: this man page primarily documents the UNIX behavior. See \fBWINDOWS @@ -16,7 +16,7 @@ VERSION\fR for information specific to the Windows build of wimlib. \fIIMAGE\fR specifies the WIM image to extract. It may be a 1-based index of an image in the WIM, the name of an image in the WIM, or the keyword "all" to -indicate that all images are to be extracted. Use the \fBimagex info\fR (1) +indicate that all images are to be extracted. Use the \fB@IMAGEX_PROGNAME@ info\fR (1) command to show what images a WIM file contains. \fITARGET\fR specifies where to extract the WIM image(s) to. If \fITARGET\fR @@ -26,7 +26,7 @@ location and the WIM image(s) are extracted to that directory. If \fITARGET\fR specifies a regular file or block device, it is interpreted as a NTFS volume to which the WIM image is to be extracted. -\fBimagex apply\fR supports applying images from stand-alone WIMs as well as +\fB@IMAGEX_PROGNAME@ apply\fR supports applying images from stand-alone WIMs as well as split WIMs. See \fBSPLIT WIMS\fR. .SH NORMAL MODE @@ -146,7 +146,7 @@ is installed. So let's say you applied an image from an existing "install.wim" as in the example, or you've applied a custom Windows image that you've created using the -\fBimagex capture\fR (1) command. You've just applied the "Boot" partition, or +\fB@IMAGEX_PROGNAME@ capture\fR (1) command. You've just applied the "Boot" partition, or the main Windows partition, but there is no "System" partition yet (i.e. no \\BOOTMGR and no \\Boot\\BCD). @@ -165,7 +165,7 @@ partition (Windows' MBR does, and SYSLINUX provides an equivalent MBR). .SH SPLIT WIMS -You may use \fBimagex apply\fR to apply images from a split WIM. The +You may use \fB@IMAGEX_PROGNAME@ apply\fR to apply images from a split WIM. The \fIWIMFILE\fR argument is used to specify the first part of the split WIM, and the \fB--refs\fR="\fIGLOB\fR" option is used to provide a shell-style file glob that specifies the additional parts of the split WIM. \fIGLOB\fR is expected to @@ -190,17 +190,17 @@ mywim5.swm To apply the first image of this split WIM to the directory "dir", run: .PP .RS -imagex apply mywim.swm 1 dir --ref="mywim*.swm" +@IMAGEX_PROGNAME@ apply mywim.swm 1 dir --ref="mywim*.swm" .RE .PP .SH WINDOWS VERSION -This section documents the differences between \fBimagex apply\fR in the Windows +This section documents the differences between \fB@IMAGEX_PROGNAME@ apply\fR in the Windows builds of wimlib versus the rest of this man page, which is written to document the UNIX build. -\fBimagex apply\fR does not have separate "normal" and "NTFS" modes on Windows. +\fB@IMAGEX_PROGNAME@ apply\fR does not have separate "normal" and "NTFS" modes on Windows. There is simply one mode, and it uses the Windows API to apply NTFS-specific information, including alternate data streams, reparse points, hard links, and file attributes. So, you essentially get the advantages of the "NTFS mode" @@ -212,7 +212,7 @@ ImageX. Windows. Except for the differences documented in this section, the Windows build of -\fBimagex apply\fR should be essentially equivalent to the UNIX build. However, +\fB@IMAGEX_PROGNAME@ apply\fR should be essentially equivalent to the UNIX build. However, one additional thing to note is that wimlib's Windows ImageX is NOT written to be command-line compatible with Microsoft's ImageX, although they are very similar. @@ -245,26 +245,26 @@ applied. See \fBSPLIT_WIMS\fR. .TP \fB--unix-data\fR This option may only be given in the normal extraction mode (not NTFS). -By default, in the normal extraction mode, \fBimagex apply\fR will ignore both +By default, in the normal extraction mode, \fB@IMAGEX_PROGNAME@ apply\fR will ignore both Windows-style security descriptors and UNIX-specific file owners, groups, and -modes set when using \fBimagex capture\fR with the \fB--unix-data\fR flag. By -passing \fB--unix-data\fR to \fBimagex apply\fR instead, this causes this +modes set when using \fB@IMAGEX_PROGNAME@ capture\fR with the \fB--unix-data\fR flag. By +passing \fB--unix-data\fR to \fB@IMAGEX_PROGNAME@ apply\fR instead, this causes this UNIX-specific data to be restored when available. .SH NOTES -\fBimagex apply\fR calculates the SHA1 message digest of every file stream it +\fB@IMAGEX_PROGNAME@ apply\fR calculates the SHA1 message digest of every file stream it extracts and verifies that it is the same as the SHA1 message digest provided in the WIM file. It is an error if the message digests don't match. It's also considered to be an error if any WIM resources cannot be found in the stream lookup table. So you can be fairly certain that the file streams are extracted -correctly, even though \fBimagex apply\fR don't have a \fB/verify\fR option like +correctly, even though \fB@IMAGEX_PROGNAME@ apply\fR don't have a \fB/verify\fR option like Microsoft's ImageX does. Please note that this is separate from the integrity table of the WIM, which provides SHA1 message digests over raw chunks of the entire WIM file and is checked separately if the \fB--check\fR option is specified. -You cannot use \fBimagex apply\fR to apply a WIM from a pipe (such as standard +You cannot use \fB@IMAGEX_PROGNAME@ apply\fR to apply a WIM from a pipe (such as standard input) because the WIM file format is not designed for this. .SH EXAMPLES @@ -287,7 +287,7 @@ image apply /media/windows8/sources/boot.wim all boot --hardlink Apply a WIM image to a NTFS filesystem image: .RS .PP -imagex apply mywim.wim 1 fsimage.ntfs +@IMAGEX_PROGNAME@ apply mywim.wim 1 fsimage.ntfs .RE .PP Create a new NTFS filesystem on the partition /dev/sda2 and apply the first @@ -295,10 +295,10 @@ image in the Windows Vista/7/8 installation WIM to it. (Obviously, only do this if you want to erase everything on that partition.) .RS .PP -mkntfs /dev/sda2 && imagex apply /media/windows/sources/install.wim 1 /dev/sda2 +mkntfs /dev/sda2 && @IMAGEX_PROGNAME@ apply /media/windows/sources/install.wim 1 /dev/sda2 .RE .PP .SH SEE ALSO -.BR imagex (1) +.BR @IMAGEX_PROGNAME@ (1) diff --git a/doc/imagex-capture.1.in b/doc/imagex-capture.1.in index b306cbfa..a599f2ce 100644 --- a/doc/imagex-capture.1.in +++ b/doc/imagex-capture.1.in @@ -1,20 +1,20 @@ -.TH IMAGEX "1" "March 2013" "imagex (wimlib) wimlib @VERSION@" "User Commands" +.TH IMAGEX "1" "March 2013" "@IMAGEX_PROGNAME@ @VERSION@" "User Commands" .SH NAME -imagex-capture, imagex-append \- Create or append a WIM image +@IMAGEX_PROGNAME@-capture, @IMAGEX_PROGNAME@-append \- Create or append a WIM image .SH SYNOPSIS -\fBimagex capture\fR \fISOURCE\fR \fIWIMFILE\fR [\fIIMAGE_NAME\fR] \ +\fB@IMAGEX_PROGNAME@ capture\fR \fISOURCE\fR \fIWIMFILE\fR [\fIIMAGE_NAME\fR] \ [\fIDESCRIPTION\fR] [\fIOPTION\fR]... .br -\fBimagex append\fR \fISOURCE\fR \fIWIMFILE\fR [\fIIMAGE_NAME\fR] \ +\fB@IMAGEX_PROGNAME@ append\fR \fISOURCE\fR \fIWIMFILE\fR [\fIIMAGE_NAME\fR] \ [\fIDESCRIPTION\fR] [\fIOPTION\fR]... .SH DESCRIPTION .PP -The \fBimagex capture\fR and \fBimagex append\fR commands create a Windows -Imaging (WIM) image from a directory tree. The \fBimagex capture\fR command -creates a new WIM file containing the captured image, while the \fBimagex +The \fB@IMAGEX_PROGNAME@ capture\fR and \fB@IMAGEX_PROGNAME@ append\fR commands create a Windows +Imaging (WIM) image from a directory tree. The \fB@IMAGEX_PROGNAME@ capture\fR command +creates a new WIM file containing the captured image, while the \fB@IMAGEX_PROGNAME@ append\fR command appends the captured image to an existing WIM file. Note: this man page primarily documents the UNIX behavior. See \fBWINDOWS @@ -106,16 +106,16 @@ Win32+DOS namespace, and POSIX namespace. This includes hard links. Yet another capture mode is entered when the \fB--source-list\fR option is given. It is essentially an extension of the \fBNORMAL MODE\fR that allows multiple files or directories to be incorporated into a WIM image using a single -\fBimagex capture\fR or \fBimagex append\fR command. See the documentation for +\fB@IMAGEX_PROGNAME@ capture\fR or \fB@IMAGEX_PROGNAME@ append\fR command. See the documentation for \fB--source-list\fR below. .SH WINDOWS VERSION -This section documents the differences between \fBimagex capture\fR and -\fBimagex append\fR in the Windows builds of wimlib versus the rest of this man +This section documents the differences between \fB@IMAGEX_PROGNAME@ capture\fR and +\fB@IMAGEX_PROGNAME@ append\fR in the Windows builds of wimlib versus the rest of this man page, which is written to document UNIX build. -\fBimagex capture\fR and \fBimagex append\fR do not have separate "normal" and +\fB@IMAGEX_PROGNAME@ capture\fR and \fB@IMAGEX_PROGNAME@ append\fR do not have separate "normal" and "NTFS" modes on Windows. There is simply one mode, and it uses the Windows API to capture NTFS-specific information, including alternate data streams, reparse points, hard links, and file attributes. So, you essentially get the advantages @@ -127,7 +127,7 @@ The \fB--source-list\fR option is supported on Windows, but the \fB--dereference\fR option is not. Except for the differences documented in this section, the Windows build of -\fBimagex capture\fR and \fBimagex append\fR should be essentially equivalent to +\fB@IMAGEX_PROGNAME@ capture\fR and \fB@IMAGEX_PROGNAME@ append\fR should be essentially equivalent to the UNIX build. However, one additional thing to note is that wimlib's Windows ImageX is NOT written to be command-line compatible with Microsoft's ImageX, although they are very similar. @@ -140,11 +140,11 @@ Specifies that the new image is to be made the bootable image of the WIM archive \fB--check\fR Include an integrity table in the new WIM file or the modified WIM file. If this option is not specified, no integrity table is included in \fIWIMFILE\fR, -even if there was one before in the case of \fBimagex append\fR. +even if there was one before in the case of \fB@IMAGEX_PROGNAME@ append\fR. .TP \fB--compress\fR=\fITYPE\fR Specifies the compression type for the new WIM file. This flag is only valid -for \fBimagex capture\fR, since the compression mode for \fBimagex append\fR +for \fB@IMAGEX_PROGNAME@ capture\fR, since the compression mode for \fB@IMAGEX_PROGNAME@ append\fR must be the same as that of the existing WIM. \fITYPE\fR may be "none", "maximum", or "fast". By default, it is "fast". @@ -158,9 +158,9 @@ threads will not be used, regardless of this parameter, since no compression needs to be done in this case. .TP \fB--rebuild\fR -For \fBimagex append\fR: rebuild the entire WIM rather than appending the new +For \fB@IMAGEX_PROGNAME@ append\fR: rebuild the entire WIM rather than appending the new data to the end of it. Rebuilding the WIM is slower, but will save a little bit -of space that would otherwise be left as a hole in the WIM. Also see \fBimagex +of space that would otherwise be left as a hole in the WIM. Also see \fB@IMAGEX_PROGNAME@ optimize\fR. .TP \fB--flags\fR=\fIEDITIONID\fR @@ -230,12 +230,12 @@ used: Store the UNIX owner, group, and mode of regular files, symbolic links, and directories. This is done by adding a special alternate data stream to each directory entry that contains this information. Please note that this flag is -for convenience only, in case you want to use \fBimagex\fR to archive files on +for convenience only, in case you want to use \fB@IMAGEX_PROGNAME@\fR to archive files on UNIX. Microsoft's software will not understand this special information. .TP \fB--source-list\fR -\fBimagex capture\fR and \fBimagex append\fR, as of wimlib 1.3.0, support a new +\fB@IMAGEX_PROGNAME@ capture\fR and \fB@IMAGEX_PROGNAME@ append\fR, as of wimlib 1.3.0, support a new option to create a WIM image from multiple files or directories. When \fB--source-list\fR is specified, the \fISOURCE\fR argument specifies the name of a text file, each line of which is either 1 or 2 whitespace separated @@ -287,16 +287,16 @@ a full NTFS volume is supported. The different capture modes only specify the data that is captured and don't specify a special WIM format. A WIM file can contain images captured using different modes. However, all images in a WIM must have the same compression -type, and \fBimagex\fR always enforces this. +type, and \fB@IMAGEX_PROGNAME@\fR always enforces this. -\fBimagex\fR writes WIMs having the version number 0x10d00 and a compressed +\fB@IMAGEX_PROGNAME@\fR writes WIMs having the version number 0x10d00 and a compressed stream chunk size of 32768. The only WIMs I've seen that are different from this are some pre-Vista WIMs that had a different version number. -Unless \fB--rebuild\fR is specified, aborting an \fBimagex append\fR command +Unless \fB--rebuild\fR is specified, aborting an \fB@IMAGEX_PROGNAME@ append\fR command mid-way through has a small chance of corrupting the WIM file. However, a precaution is taken against this, so it should be very unlikely. In the event -of an aborted \fBimagex append\fR, \fBimagex optimize\fR may be run to remove +of an aborted \fB@IMAGEX_PROGNAME@ append\fR, \fB@IMAGEX_PROGNAME@ optimize\fR may be run to remove extra data that may have been partially appended to the physical WIM file but not yet incorporated into the structure of the WIM. @@ -322,7 +322,7 @@ Create a new WIM 'mywim.wim' from the directory 'somedir', using LZX compression including an integrity table: .RS .PP -imagex capture somedir mywim.wim --compress=maximum --check +@IMAGEX_PROGNAME@ capture somedir mywim.wim --compress=maximum --check .RE .PP Append an image to the WIM we just captured, but do it from a NTFS volume on the @@ -332,10 +332,10 @@ cannot be changed. You need to specify \fB--check\fR if you don't want the integrity table to be discarded. .RS .PP -imagex append /dev/sda2 mywim.wim --check "Windows 7" +@IMAGEX_PROGNAME@ append /dev/sda2 mywim.wim --check "Windows 7" .RE .PP .SH SEE ALSO -.BR imagex (1) +.BR @IMAGEX_PROGNAME@ (1) diff --git a/doc/imagex-delete.1.in b/doc/imagex-delete.1.in index 8dfcd306..6cb9050d 100644 --- a/doc/imagex-delete.1.in +++ b/doc/imagex-delete.1.in @@ -1,19 +1,19 @@ -.TH IMAGEX "1" "March 2013" "imagex (wimlib) wimlib @VERSION@" "User Commands" +.TH IMAGEX "1" "March 2013" "@IMAGEX_PROGNAME@ @VERSION@" "User Commands" .SH NAME -imagex-delete \- Delete an image from a WIM archive +@IMAGEX_PROGNAME@-delete \- Delete an image from a WIM archive .SH SYNOPSIS -\fBimagex delete\fR \fIWIMFILE\fR \fIIMAGE\fR [--check] +\fB@IMAGEX_PROGNAME@ delete\fR \fIWIMFILE\fR \fIIMAGE\fR [--check] .SH DESCRIPTION .PP -\fBimagex delete\fR deletes the specified image from the Windows Imaging (WIM) +\fB@IMAGEX_PROGNAME@ delete\fR deletes the specified image from the Windows Imaging (WIM) file \fIWIMFILE\fR. \fIIMAGE\fR specifies the WIM image to deleted. It may be a 1-based index of an image in the WIM, the name of an image in the WIM, or the keyword "all" to -indicate that all images are to be deleted. Use the \fBimagex info\fR (1) +indicate that all images are to be deleted. Use the \fB@IMAGEX_PROGNAME@ info\fR (1) command to show what images a WIM file contains. .SH NOTES @@ -23,10 +23,10 @@ This is different from Microsoft's imagex.exe, which only will delete the directory tree metadata and XML data for this operation. (See the \fB--soft\fR option for the other kind of delete). -Also, unlike imagex.exe, it is legal to delete all the images from a WIM and -have a WIM with 0 images, although such a file wouldn't be very useful. +Also, unlike Microsoft's imagex.exe, it is legal to delete all the images from a +WIM and have a WIM with 0 images, although such a file wouldn't be very useful. -\fBimagex delete\fR does not support split WIMs. +\fB@IMAGEX_PROGNAME@ delete\fR does not support split WIMs. .SH OPTIONS .TP 6 @@ -44,7 +44,7 @@ particular, all streams will be left alone, even if they are no longer referenced. This is probably not what you want, because almost no space will be saved by deleting an image in this way. -You may use \fBimagex optimize\fR to delete unreferenced streams from a WIM that +You may use \fB@IMAGEX_PROGNAME@ optimize\fR to delete unreferenced streams from a WIM that has had images soft-deleted from it. .SH EXAMPLES @@ -56,5 +56,5 @@ image delete boot.wim 1 .PP .SH SEE ALSO -.BR imagex (1) +.BR @IMAGEX_PROGNAME@ (1) diff --git a/doc/imagex-dir.1.in b/doc/imagex-dir.1.in index f5804614..8d95f206 100644 --- a/doc/imagex-dir.1.in +++ b/doc/imagex-dir.1.in @@ -1,9 +1,9 @@ -.TH IMAGEX "1" "March 2013" "imagex (wimlib) wimlib @VERSION@" "User Commands" +.TH IMAGEX "1" "March 2013" "@IMAGEX_PROGNAME@ @VERSION@" "User Commands" .SH NAME -imagex-dir \- Show the files contained in a WIM archive +@IMAGEX_PROGNAME@-dir \- Show the files contained in a WIM archive .SH SYNOPSIS -\fBimagex dir\fR \fIWIMFILE\fR \fIIMAGE\fR +\fB@IMAGEX_PROGNAME@ dir\fR \fIWIMFILE\fR \fIIMAGE\fR .SH DESCRIPTION .PP @@ -12,12 +12,12 @@ Windows Imaging (WIM) file \fIWIMFILE\fR. \fIIMAGE\fR specifies the WIM image to show the files of. It may be a 1-based index of an image in the WIM, the name of an image in the WIM, or the keyword -"all" to indicate that files from all images are to be shown. Use the \fBimagex +"all" to indicate that files from all images are to be shown. Use the \fB@IMAGEX_PROGNAME@ info\fR (1) command to show what images a WIM file contains. .SH NOTES -\fBimagex dir\fR supports split WIMs, but it will only work on the first part of +\fB@IMAGEX_PROGNAME@ dir\fR supports split WIMs, but it will only work on the first part of the split WIM. The DOS names of files are not displayed. @@ -31,5 +31,5 @@ image dir boot.wim 1 .PP .SH SEE ALSO -.BR imagex (1) +.BR @IMAGEX_PROGNAME@ (1) diff --git a/doc/imagex-export.1.in b/doc/imagex-export.1.in index e0ad169a..00a03eb2 100644 --- a/doc/imagex-export.1.in +++ b/doc/imagex-export.1.in @@ -1,9 +1,9 @@ -.TH IMAGEX "1" "March 2013" "imagex (wimlib) wimlib @VERSION@" "User Commands" +.TH IMAGEX "1" "March 2013" "@IMAGEX_PROGNAME@ @VERSION@" "User Commands" .SH NAME -imagex-export \- Exports an image from a WIM archive to an existing or new WIM archive +@IMAGEX_PROGNAME@-export \- Exports an image from a WIM archive to an existing or new WIM archive .SH SYNOPSIS -\fBimagex export\fR \fISRC_WIMFILE\fR (\fISRC_IMAGE_NUM\fR | \ +\fB@IMAGEX_PROGNAME@ export\fR \fISRC_WIMFILE\fR (\fISRC_IMAGE_NUM\fR | \ \fISRC_IMAGE_NAME\fR | all ) \fIDEST_WIMFILE\fR [\fIDEST_IMAGE_NAME\fR\] \ [\fIDEST_IMAGE_DESCRIPTION\fR] [\fIOPTION\fR]... @@ -29,7 +29,7 @@ If given, \fIDEST_IMAGE_DESCRIPTION\fR specifies the description to give the image being exported to \fIDEST_WIMFILE\fR. The default is its description in \fISRC_WIMFILE\fR. -\fBimagex export\fR supports exporting images from stand-alone WIMs as well as +\fB@IMAGEX_PROGNAME@ export\fR supports exporting images from stand-alone WIMs as well as from split WIMs. However, you cannot export an image to a split WIM. See \fBSPLIT WIMS\fR. @@ -73,7 +73,7 @@ done in these cases. When exporting image(s) to an existing WIM: rebuild the entire WIM rather than appending data to the end of it. Rebuilding the WIM is slower, but will save a little bit of space that would otherwise be left as a hole in the WIM. Also see -\fBimagex optimize\fR. +\fB@IMAGEX_PROGNAME@ optimize\fR. .TP \fB--ref\fR="\fIGLOB\fR" File glob of additional split WIM parts that are part of the split WIM being @@ -81,7 +81,7 @@ exported. See \fBSPLIT_WIMS\fR. .SH SPLIT WIMS -You may use \fBimagex export\fR to export images from a split WIM. The +You may use \fB@IMAGEX_PROGNAME@ export\fR to export images from a split WIM. The \fISRC_WIMFILE\fR argument is used to specify the first part of the split WIM, and the \fB--refs\fR="\fIGLOB\fR" option is used to provide a shell-style file glob that specifies the additional parts of the split WIM. \fIGLOB\fR is expected to @@ -107,16 +107,16 @@ To export the first image of this split WIM to a new or existing WIM file "other.wim", run: .PP .RS -imagex export mywim.swm 1 other.wim --ref="mywim*.swm" +@IMAGEX_PROGNAME@ export mywim.swm 1 other.wim --ref="mywim*.swm" .RE .PP .SH NOTES -Unless \fB--rebuild\fR is specified, aborting an \fBimagex export\fR command +Unless \fB--rebuild\fR is specified, aborting an \fB@IMAGEX_PROGNAME@ export\fR command mid-way through has a small chance of corrupting the destination WIM file. However, a precaution is taken against this, so it should be very unlikely. In -the event of an aborted \fBimagex export\fR, \fBimagex optimize\fR can be run to +the event of an aborted \fB@IMAGEX_PROGNAME@ export\fR, \fB@IMAGEX_PROGNAME@ optimize\fR can be run to remove extra data that may have been partially appended to the physical destination WIM file but not yet incorporated into the structure of the WIM. @@ -130,5 +130,5 @@ image export boot.wim 2 new.wim --compress=maximum .PP .SH SEE ALSO -.BR imagex (1) +.BR @IMAGEX_PROGNAME@ (1) diff --git a/doc/imagex-info.1.in b/doc/imagex-info.1.in index 48f2a946..8580b5b9 100644 --- a/doc/imagex-info.1.in +++ b/doc/imagex-info.1.in @@ -1,17 +1,17 @@ -.TH IMAGEX "1" "March 2013" "imagex (wimlib) wimlib @VERSION@" "User Commands" +.TH IMAGEX "1" "March 2013" "@IMAGEX_PROGNAME@ @VERSION@" "User Commands" .SH NAME -imagex-info \- Display information about a WIM file, or change information about +@IMAGEX_PROGNAME@-info \- Display information about a WIM file, or change information about an image .SH SYNOPSIS -\fBimagex info\fR \fIWIMFILE\fR [\fIIMAGE_NUM\fR | \fIIMAGE_NAME\fR] \ +\fB@IMAGEX_PROGNAME@ info\fR \fIWIMFILE\fR [\fIIMAGE_NUM\fR | \fIIMAGE_NAME\fR] \ [\fINEW_NAME\fR] [\fINEW_DESC\fR] [\fIOPTION\fR]... .SH DESCRIPTION .PP -\fBimagex info\fR displays information about \fIWIMFILE\fR, and optionally +\fB@IMAGEX_PROGNAME@ info\fR displays information about \fIWIMFILE\fR, and optionally changes which image is bootable, or what the name and description of an image are. @@ -27,18 +27,18 @@ Changes to the WIM are made if \fINEW_NAME\fR and/or \fB--boot\fR are specified. description. If \fINEW_DESC\fR is not specified, the image's description is unchanged. -\fBimagex info\fR does not support modifying a split WIM, although you may +\fB@IMAGEX_PROGNAME@ info\fR does not support modifying a split WIM, although you may display information about one. .SH NOTES -The possible modifications to \fIWIMFILE\fR by \fBimagex info\fR are made -quickly without re-building the entire WIM. \fBimagex info\fR will only take a +The possible modifications to \fIWIMFILE\fR by \fB@IMAGEX_PROGNAME@ info\fR are made +quickly without re-building the entire WIM. \fB@IMAGEX_PROGNAME@ info\fR will only take a significant amount of time to complete if \fB--check\fR is specified when the WIM previously had no integrity table. -Aborting an \fBimagex info\fR command that modifies \fIWIMFILE\fR is unlikely to -result in corruption of \fIWIMFILE\fR. Even if \fBimagex info\fR is aborted +Aborting an \fB@IMAGEX_PROGNAME@ info\fR command that modifies \fIWIMFILE\fR is unlikely to +result in corruption of \fIWIMFILE\fR. Even if \fB@IMAGEX_PROGNAME@ info\fR is aborted while the integrity table is being calculated (with \fB--check\fR), the WIM should be in a consistent state with any changes to the bootable index, name, or description of the specified image committed. @@ -77,5 +77,5 @@ the first part of a split WIM. Prints the raw XML data from the WIM. Note: the XML data will be encoded using UTF-16LE, and it will begin with a byte-order mark. .SH SEE ALSO -.BR imagex (1) +.BR @IMAGEX_PROGNAME@ (1) diff --git a/doc/imagex-join.1.in b/doc/imagex-join.1.in index 96da145b..3b0e910b 100644 --- a/doc/imagex-join.1.in +++ b/doc/imagex-join.1.in @@ -1,9 +1,9 @@ -.TH IMAGEX "1" "March 2013" "imagex (wimlib) wimlib @VERSION@" "User Commands" +.TH IMAGEX "1" "March 2013" "@IMAGEX_PROGNAME@ @VERSION@" "User Commands" .SH NAME -imagex-join \- Join split WIMs into a standalone one-part WIM +@IMAGEX_PROGNAME@-join \- Join split WIMs into a standalone one-part WIM .SH SYNOPSIS -\fBimagex join\fR [\fIOPTION...] \fIOUT_WIMFILE\fR \fISPLIT_WIM...\fR +\fB@IMAGEX_PROGNAME@ join\fR [\fIOPTION...] \fIOUT_WIMFILE\fR \fISPLIT_WIM...\fR .SH DESCRIPTION .PP @@ -26,18 +26,18 @@ Join a split WIM, with the parts named `windows*.swm' where the * is anything number), and write the joined WIM to the file `windows.wim'. .RS .PP -imagex join windows.wim windows*.swm +@IMAGEX_PROGNAME@ join windows.wim windows*.swm .RE .SH NOTES -\fBimagex join\fR is roughly equivalent to: +\fB@IMAGEX_PROGNAME@ join\fR is roughly equivalent to: .RS .PP -\fBimagex export\fR \fISWM_PART_1\fR --ref="\fISWM_GLOB\fR" [--check] all \fIOUT_WIMFILE\fR +\fB@IMAGEX_PROGNAME@ export\fR \fISWM_PART_1\fR --ref="\fISWM_GLOB\fR" [--check] all \fIOUT_WIMFILE\fR .RE .PP .SH SEE ALSO -.BR imagex (1) -.BR imagex-export (1) +.BR @IMAGEX_PROGNAME@ (1) +.BR @IMAGEX_PROGNAME@-export (1) diff --git a/doc/imagex-mount.1.in b/doc/imagex-mount.1.in index 86a60dd9..e99e3069 100644 --- a/doc/imagex-mount.1.in +++ b/doc/imagex-mount.1.in @@ -1,34 +1,34 @@ -.TH IMAGEX "1" "March 2013" "imagex (wimlib) wimlib @VERSION@" "User Commands" +.TH IMAGEX "1" "March 2013" "@IMAGEX_PROGNAME@ @VERSION@" "User Commands" .SH NAME -imagex-mount, imagex-mountrw, imagex-unmount \- Mount and unmount an image from a WIM archive +@IMAGEX_PROGNAME@-mount, @IMAGEX_PROGNAME@-mountrw, @IMAGEX_PROGNAME@-unmount \- Mount and unmount an image from a WIM archive .SH SYNOPSIS -\fBimagex mount\fR \fIWIMFILE\fR \fIIMAGE\fR \fIDIRECTORY\fR [\fIOPTION\fR]... +\fB@IMAGEX_PROGNAME@ mount\fR \fIWIMFILE\fR \fIIMAGE\fR \fIDIRECTORY\fR [\fIOPTION\fR]... .br -\fBimagex mountrw\fR \fIWIMFILE\fR \fIIMAGE\fR \fIDIRECTORY\fR [\fIOPTION\fR]... +\fB@IMAGEX_PROGNAME@ mountrw\fR \fIWIMFILE\fR \fIIMAGE\fR \fIDIRECTORY\fR [\fIOPTION\fR]... .br -\fBimagex unmount\fR \fIDIRECTORY\fR [--commit] [--check] [--rebuild] +\fB@IMAGEX_PROGNAME@ unmount\fR \fIDIRECTORY\fR [--commit] [--check] [--rebuild] .SH DESCRIPTION .PP -The \fBimagex mount\fR and \fBimagex mountrw\fR commands will mount the image in +The \fB@IMAGEX_PROGNAME@ mount\fR and \fB@IMAGEX_PROGNAME@ mountrw\fR commands will mount the image in the Windows Imaging (WIM) file \fIWIMFILE\fR specified by \fIIMAGE\fR on the -directory \fIDIRECTORY\fR using FUSE (Filesystem in Userspace). \fBimagex -mount\fR will mount the image read-only, while \fBimagex mountrw\fR will mount +directory \fIDIRECTORY\fR using FUSE (Filesystem in Userspace). \fB@IMAGEX_PROGNAME@ +mount\fR will mount the image read-only, while \fB@IMAGEX_PROGNAME@ mountrw\fR will mount the image read-write. \fIIMAGE\fR may be a 1-based index of the image in the WIM to mount, or it may -be the name of an image in the WIM. Use the \fBimagex info\fR (1) command to +be the name of an image in the WIM. Use the \fB@IMAGEX_PROGNAME@ info\fR (1) command to see the available images in the WIM. It is possible to omit \fIIMAGE\fR, but only if the WIM contains only one image. -The WIM image can be unmounted using the \fBimagex unmount\fR command. Changes +The WIM image can be unmounted using the \fB@IMAGEX_PROGNAME@ unmount\fR command. Changes made to a WIM mounted read-write will be discarded unless the \fB--commit\fR -flag is provided to \fBimagex unmount\fR. +flag is provided to \fB@IMAGEX_PROGNAME@ unmount\fR. .SH SPLIT WIMS -You may use \fBimagex mount\fR to mount an image from a split WIM read-only. +You may use \fB@IMAGEX_PROGNAME@ mount\fR to mount an image from a split WIM read-only. However, you may not mount an image from a split WIM read-write. The \fIWIMFILE\fR argument is used to specify the first part of the split WIM, and @@ -55,14 +55,14 @@ mywim5.swm To mount the first image of this split WIM to the directory "dir", we would do: .PP .RS -imagex mount mywim.swm 1 dir --ref="mywim*.swm" +@IMAGEX_PROGNAME@ mount mywim.swm 1 dir --ref="mywim*.swm" .RE .PP .SH NOTES -If wimlib was configured using the \fB--without-fuse\fR flag, then the \fBimagex -mount\fR, \fBimagex mountrw\fR, and \fBimagex unmount\fR commands will not work. +If wimlib was configured using the \fB--without-fuse\fR flag, then the \fB@IMAGEX_PROGNAME@ +mount\fR, \fB@IMAGEX_PROGNAME@ mountrw\fR, and \fB@IMAGEX_PROGNAME@ unmount\fR commands will not work. Also, these commands are not available in the Windows builds of wimlib. You can mount multiple images from a WIM file read-only at the same time, but @@ -80,8 +80,8 @@ By default, changes to a read-write WIM are made in-place by appending to the WIM. This is nice for big WIM files, since the entire file doesn't have to be rebuilt to make a small change. But, if you are making many changes to a read-write mounted WIM, especially deleting large files, it is suggested to -provide the \fB--rebuild\fR option to \fBimagex unmount\fR to force the WIM to -be rebuilt, or else run \fBimagex optimize\fR on the WIM afterwards. +provide the \fB--rebuild\fR option to \fB@IMAGEX_PROGNAME@ unmount\fR to force the WIM to +be rebuilt, or else run \fB@IMAGEX_PROGNAME@ optimize\fR on the WIM afterwards. .SH MOUNT OPTIONS @@ -117,23 +117,23 @@ the background. .TP \fB--ref\fR="\fIGLOB\fR" File glob of additional split WIM parts that are part of the split WIM being -mounted. This option is valid for \fBimagex mount\fR but not \fBimagex +mounted. This option is valid for \fB@IMAGEX_PROGNAME@ mount\fR but not \fB@IMAGEX_PROGNAME@ mountrw\fR. See \fBSPLIT_WIMS\fR. .TP \fB--staging-dir\fR=\fIDIR\fR Store temporary staging files in a subdirectory of the directory \fIDIR\fR. -Only valid for \fBimagex mountrw\fR. +Only valid for \fB@IMAGEX_PROGNAME@ mountrw\fR. .TP \fB--unix-data\fR -By default, \fBimagex mount\fR and \fBimagex mountrw\fR will ignore both +By default, \fB@IMAGEX_PROGNAME@ mount\fR and \fB@IMAGEX_PROGNAME@ mountrw\fR will ignore both Windows-style security descriptors (which may have been set either from Windows or by -\fBimagex capture\fR from a NTFS-volume) and UNIX-specific data (which is from using -\fBimagex capture\fR with the \fB--unix-data\fR flag). In this default mode, -all files will simply be owned by the user running \fBimagex\fR and will have mode 0777. +\fB@IMAGEX_PROGNAME@ capture\fR from a NTFS-volume) and UNIX-specific data (which is from using +\fB@IMAGEX_PROGNAME@ capture\fR with the \fB--unix-data\fR flag). In this default mode, +all files will simply be owned by the user running \fB@IMAGEX_PROGNAME@\fR and will have mode 0777. (Note: they will still not be accessible to other users unless you also specify \fB--allow-other\fR.) If you instead provide the \fB--unix-data\fR flag, these default permissions will be overridden on a per-file basis with the -UNIX-specific data when available, and in the case of \fBimagex mountrw\fR it +UNIX-specific data when available, and in the case of \fB@IMAGEX_PROGNAME@ mountrw\fR it will be possible to change the UNIX permissions using the standard UNIX tools and functions. .TP @@ -158,12 +158,12 @@ Rebuild the entire WIM rather than appending any new data to the end of it. Rebuilding the WIM is slower, but will save a little bit of space that would otherwise be left as a hole in the WIM. Even more space will be saved if the read-write mount resulted in streams being deleted from the WIM. Also see -\fBimagex optimize\fR. Has no effect if the mount is read-only or if +\fB@IMAGEX_PROGNAME@ optimize\fR. Has no effect if the mount is read-only or if \fB--commit\fR was not specified. .SH IMPLEMENTATION DETAILS -Since a WIM is an archive and not a filesystem, \fBimagex mountrw\fR creates a +Since a WIM is an archive and not a filesystem, \fB@IMAGEX_PROGNAME@ mountrw\fR creates a temporary staging directory to contain files that are created or modified. This directory is located in the same directory as \fIWIMFILE\fR by default, but the location can be set using the \fB--staging-dir\fR option. When the filesystem @@ -171,13 +171,13 @@ is unmounted with \fB--commit\fR, the WIM is modified in-place (or rebuild completely with \fB--rebuild\fR), merging in the staging files as needed. Then, the temporary staging directory is deleted. -\fBimagex unmount\fR runs in a separate process from the process that previously -ran \fBimagex mount\fR, and these two processes communicate using POSIX message +\fB@IMAGEX_PROGNAME@ unmount\fR runs in a separate process from the process that previously +ran \fB@IMAGEX_PROGNAME@ mount\fR, and these two processes communicate using POSIX message queues. See \fIsrc/mount_image.c\fR in the sources for details. Note: As of -wimlib v1.2.1, \fBimagex unmount\fR correctly fails with an error within a +wimlib v1.2.1, \fB@IMAGEX_PROGNAME@ unmount\fR correctly fails with an error within a reasonable amount of time (1 second) if the filesystem daemon is abnormally terminated. .SH SEE ALSO -.BR imagex (1) +.BR @IMAGEX_PROGNAME@ (1) diff --git a/doc/imagex-mountrw.1.in b/doc/imagex-mountrw.1.in index 3791defd..77d60ae2 100644 --- a/doc/imagex-mountrw.1.in +++ b/doc/imagex-mountrw.1.in @@ -1 +1 @@ -.so man1/imagex-mount.1 +.so man1/@IMAGEX_PROGNAME@-mount.1 diff --git a/doc/imagex-optimize.1.in b/doc/imagex-optimize.1.in index c21585cd..20041a1e 100644 --- a/doc/imagex-optimize.1.in +++ b/doc/imagex-optimize.1.in @@ -1,13 +1,13 @@ -.TH IMAGEX "1" "March 2013" "imagex (wimlib) wimlib @VERSION@" "User Commands" +.TH IMAGEX "1" "March 2013" "@IMAGEX_PROGNAME@ @VERSION@" "User Commands" .SH NAME -imagex-optimize \- Optimize a WIM archive +@IMAGEX_PROGNAME@-optimize \- Optimize a WIM archive .SH SYNOPSIS -\fBimagex optimize\fR \fIWIMFILE\fR [--check] [--recompress] +\fB@IMAGEX_PROGNAME@ optimize\fR \fIWIMFILE\fR [--check] [--recompress] .SH DESCRIPTION .PP -\fBimagex optimize\fR will rebuild the stand-alone WIM \fIWIMFILE\fR. The new +\fB@IMAGEX_PROGNAME@ optimize\fR will rebuild the stand-alone WIM \fIWIMFILE\fR. The new WIM is written to a temporary file, and it is renamed to the original file when it's ready. This action will remove any holes that have been left as a result of appending images, so the new WIM may be slightly smaller than the old WIM. @@ -38,16 +38,16 @@ created on Windows. .SH NOTES -\fBimagex optimize\fR does not support split WIMs. +\fB@IMAGEX_PROGNAME@ optimize\fR does not support split WIMs. -\fBimagex optimize\fR is roughly equivalent to: +\fB@IMAGEX_PROGNAME@ optimize\fR is roughly equivalent to: .RS .PP -\fBimagex export\fR \fIWIMFILE\fR all tmp.wim [--check] && mv tmp.wim \fIWIMFILE\fR +\fB@IMAGEX_PROGNAME@ export\fR \fIWIMFILE\fR all tmp.wim [--check] && mv tmp.wim \fIWIMFILE\fR .RE .PP .SH SEE ALSO -.BR imagex (1) -.BR imagex-export (1) +.BR @IMAGEX_PROGNAME@ (1) +.BR @IMAGEX_PROGNAME@-export (1) diff --git a/doc/imagex-split.1.in b/doc/imagex-split.1.in index 2c87ba54..23cba7ff 100644 --- a/doc/imagex-split.1.in +++ b/doc/imagex-split.1.in @@ -1,9 +1,9 @@ -.TH IMAGEX "1" "March 2013" "imagex (wimlib) wimlib @VERSION@" "User Commands" +.TH IMAGEX "1" "March 2013" "@IMAGEX_PROGNAME@ @VERSION@" "User Commands" .SH NAME -imagex-split \- Split a WIM into multiple parts +@IMAGEX_PROGNAME@-split \- Split a WIM into multiple parts .SH SYNOPSIS -\fBimagex split\fR \fIWIMFILE\fR \fISPLIT_WIMFILE\fR \fIPART_SIZE\fR [\fIOPTION...\fR] +\fB@IMAGEX_PROGNAME@ split\fR \fIWIMFILE\fR \fISPLIT_WIMFILE\fR \fIPART_SIZE\fR [\fIOPTION...\fR] .SH DESCRIPTION .PP @@ -25,7 +25,7 @@ Splits the WIM 'windows.wim' into 'windows.swm', 'windows2.swm', 'windows3.swm', etc. where each part is at most 100 MiB: .RS .PP -imagex split windows.wim windows.swm 100 +@IMAGEX_PROGNAME@ split windows.wim windows.swm 100 .RE .SH NOTE @@ -39,4 +39,4 @@ least one part that is 100 MiB in size to contain that file. However, if the WIM resources are compressed then less space would be needed. .SH SEE ALSO -.BR imagex (1) +.BR @IMAGEX_PROGNAME@ (1) diff --git a/doc/imagex-unmount.1.in b/doc/imagex-unmount.1.in index 3791defd..77d60ae2 100644 --- a/doc/imagex-unmount.1.in +++ b/doc/imagex-unmount.1.in @@ -1 +1 @@ -.so man1/imagex-mount.1 +.so man1/@IMAGEX_PROGNAME@-mount.1 diff --git a/doc/imagex.1.in b/doc/imagex.1.in index c694dd33..bcd15ce8 100644 --- a/doc/imagex.1.in +++ b/doc/imagex.1.in @@ -1,44 +1,44 @@ -.TH IMAGEX 1 "March 2013" "imagex (wimlib @VERSION@)" "User Commands" +.TH IMAGEX 1 "March 2013" "@IMAGEX_PROGNAME@ @VERSION@" "User Commands" .SH NAME -imagex \- Create, modify, extract, mount, or unmount a WIM (Windows Imaging Format) archive +@IMAGEX_PROGNAME@ \- Create, modify, extract, mount, or unmount a WIM (Windows Imaging Format) archive .SH SYNOPSIS -\fBimagex append\fR \fIarguments...\fR +\fB@IMAGEX_PROGNAME@ append\fR \fIarguments...\fR .br -\fBimagex apply\fR \fIarguments...\fR +\fB@IMAGEX_PROGNAME@ apply\fR \fIarguments...\fR .br -\fBimagex capture\fR \fIarguments...\fR +\fB@IMAGEX_PROGNAME@ capture\fR \fIarguments...\fR .br -\fBimagex delete\fR \fIarguments...\fR +\fB@IMAGEX_PROGNAME@ delete\fR \fIarguments...\fR .br -\fBimagex dir\fR \fIarguments...\fR +\fB@IMAGEX_PROGNAME@ dir\fR \fIarguments...\fR .br -\fBimagex export\fR \fIarguments...\fR +\fB@IMAGEX_PROGNAME@ export\fR \fIarguments...\fR .br -\fBimagex info\fR \fIarguments...\fR +\fB@IMAGEX_PROGNAME@ info\fR \fIarguments...\fR .br -\fBimagex join\fR \fIarguments...\fR +\fB@IMAGEX_PROGNAME@ join\fR \fIarguments...\fR .br -\fBimagex mount\fR \fIarguments...\fR +\fB@IMAGEX_PROGNAME@ mount\fR \fIarguments...\fR .br -\fBimagex mountrw\fR \fIarguments...\fR +\fB@IMAGEX_PROGNAME@ mountrw\fR \fIarguments...\fR .br -\fBimagex optimize\fR \fIarguments...\fR +\fB@IMAGEX_PROGNAME@ optimize\fR \fIarguments...\fR .br -\fBimagex split\fR \fIarguments...\fR +\fB@IMAGEX_PROGNAME@ split\fR \fIarguments...\fR .br -\fBimagex unmount\fR \fIarguments...\fR +\fB@IMAGEX_PROGNAME@ unmount\fR \fIarguments...\fR .SH DESCRIPTION -\fBimagex\fR is able to deal with archives in the Windows Imaging Format (.wim +\fB@IMAGEX_PROGNAME@\fR is able to deal with archives in the Windows Imaging Format (.wim files). Its interface is meant to be similar to Microsoft's imagex.exe program. -To do its work, \fBimagex\fR uses \fBwimlib\fR, a library which provides +To do its work, \fB@IMAGEX_PROGNAME@\fR uses \fBwimlib\fR, a library which provides interfaces for manipulating WIM archives. You could wimlib in your own programs if you wanted to. wimlib's public interface is documented. .SH COMMANDS -There is a separate manual page for each \fBimagex\fR command. +There is a separate manual page for each \fB@IMAGEX_PROGNAME@\fR command. .SH SUPPORTED FEATURES @@ -46,31 +46,31 @@ The following general features are currently supported (note: this is not a complete list): .IP \[bu] 3 -Create a stand-alone WIM from a directory or NTFS volume (\fBimagex capture\fR) +Create a stand-alone WIM from a directory or NTFS volume (\fB@IMAGEX_PROGNAME@ capture\fR) .IP \[bu] -Append a directory or NTFS volume onto a stand-alone WIM as a new image (\fBimagex +Append a directory or NTFS volume onto a stand-alone WIM as a new image (\fB@IMAGEX_PROGNAME@ append\fR) .IP \[bu] Apply an image from a stand-alone or split WIM to a directory or NTFS volume -(\fBimagex apply\fR) +(\fB@IMAGEX_PROGNAME@ apply\fR) .IP \[bu] -Mount an image from a stand-alone or split WIM read-only (\fBimagex mount\fR) +Mount an image from a stand-alone or split WIM read-only (\fB@IMAGEX_PROGNAME@ mount\fR) .IP \[bu] -Mount an image from a stand-alone WIM read-write (\fBimagex mountrw\fR) +Mount an image from a stand-alone WIM read-write (\fB@IMAGEX_PROGNAME@ mountrw\fR) .IP \[bu] -Delete image(s) from a stand-alone WIM (\fBimagex delete\fR) +Delete image(s) from a stand-alone WIM (\fB@IMAGEX_PROGNAME@ delete\fR) .IP \[bu] -Export image(s) from a stand-alone or split WIM (\fBimagex export\fR) +Export image(s) from a stand-alone or split WIM (\fB@IMAGEX_PROGNAME@ export\fR) .IP \[bu] -Display information about a WIM file (\fBimagex info\fR, \fBimagex dir\fR) +Display information about a WIM file (\fB@IMAGEX_PROGNAME@ info\fR, \fB@IMAGEX_PROGNAME@ dir\fR) .IP \[bu] -Change the name or description of an image in the WIM (\fBimagex info\fR) +Change the name or description of an image in the WIM (\fB@IMAGEX_PROGNAME@ info\fR) .IP \[bu] -Change which image in a WIM is bootable (\fBimagex info\fR) +Change which image in a WIM is bootable (\fB@IMAGEX_PROGNAME@ info\fR) .IP \[bu] -Combine split WIMs into one stand-alone WIM (\fBimage join\fR) +Combine split WIMs into one stand-alone WIM (\fB@IMAGEX_PROGNAME@ join\fR) .IP \[bu] -Split a stand-alone WIM into multiple parts (\fBimage split\fR) +Split a stand-alone WIM into multiple parts (\fB@IMAGEX_PROGNAME@ split\fR) .IP \[bu] Support for all WIM compression types, both compression and decompression (LZX, XPRESS, and none) @@ -89,7 +89,7 @@ when appropriate. .IP \[bu] 4 Because Microsoft designed the WIM file format to accomodate Windows-specific and NTFS-specific features, wimlib must have two separate image capture and -application modes (although the \fBimagex\fR subcommands for the modes are the +application modes (although the \fB@IMAGEX_PROGNAME@\fR subcommands for the modes are the same): one for general image capture and application, and one for the capture or application of an image specifically from/to an NTFS volume. @@ -108,22 +108,22 @@ same bugs in wimlib, although in some cases I have had to work around bugs for compatibility purposes. .IP \[bu] -wimlib's \fBimagex\fR offers the extra command \fBimagex optimize\fR, +wimlib's \fB@IMAGEX_PROGNAME@\fR offers the extra command \fB@IMAGEX_PROGNAME@ optimize\fR, which lets you easily remove wasted space in a WIM (which can arise after a WIM image is appended or mounted read-write). .IP \[bu] -wimlib's \fBimagex\fR also offers the command \fBimagex join\fR, which lets you +wimlib's \fB@IMAGEX_PROGNAME@\fR also offers the command \fB@IMAGEX_PROGNAME@ join\fR, which lets you easily join the parts of a split WIM. .IP \[bu] -wimlib's \fBimagex apply\fR supports keeping files hard-linked or symlinked +wimlib's \fB@IMAGEX_PROGNAME@ apply\fR supports keeping files hard-linked or symlinked across WIM images when extracted from a WIM. So you can, for example, extract different versions of Windows from an install.wim without using much extra space. (Note: this functionality is only available in UNIX builds of wimlib.) .IP \[bu] -wimlib's \fBimagex capture\fR supports combining multiple separate directories +wimlib's \fB@IMAGEX_PROGNAME@ capture\fR supports combining multiple separate directories and files together in a configurable way to create a WIM image. .IP \[bu] @@ -134,18 +134,18 @@ wimlib supports multithreaded compression, which can make it much faster to create compressed WIM files. .IP \[bu] -wimlib's \fBimagex capture\fR supports a special mode where UNIX file modes, +wimlib's \fB@IMAGEX_PROGNAME@ capture\fR supports a special mode where UNIX file modes, owners, and groups are stored. (Note: this functionality is only available on UNIX builds.) .IP \[bu] -wimlib's \fBimagex mount\fR and \fBimagex mountrw\fR are much faster than +wimlib's \fB@IMAGEX_PROGNAME@ mount\fR and \fB@IMAGEX_PROGNAME@ mountrw\fR are much faster than Microsoft's versions for some reason. I don't know what they have their program do that takes so long to simply set up a mountpoint. (Note: this functionality is only available on UNIX builds.) .IP \[bu] -wimlib's \fBimagex mount\fR supports mounting an image from a split WIM, but +wimlib's \fB@IMAGEX_PROGNAME@ mount\fR supports mounting an image from a split WIM, but Microsoft's software does not. (Note: this functionality is only available on UNIX builds.) @@ -166,7 +166,7 @@ containing files with names not representable in the current Windows code page. .SH WARNING -Note: \fBwimlib\fR and \fBimagex\fR are experimental. Use Microsoft's +Note: \fBwimlib\fR and \fB@IMAGEX_PROGNAME@\fR are experimental. Use Microsoft's imagex.exe if you have to make sure your WIM files are made "correctly". Feel free to submit a bug report if you find a bug. @@ -179,16 +179,16 @@ way that appears to be compatible with Microsoft's software. Report bugs to ebiggers3@gmail.com. .SH SEE ALSO -.BR imagex-append (1), -.BR imagex-apply (1), -.BR imagex-capture (1), -.BR imagex-delete (1), -.BR imagex-dir (1), -.BR imagex-export (1), -.BR imagex-info (1), -.BR imagex-join (1), -.BR imagex-mount (1), -.BR imagex-mountrw (1), -.BR imagex-optimize (1), -.BR imagex-split (1), -.BR imagex-unmount (1), +.BR @IMAGEX_PROGNAME@-append (1), +.BR @IMAGEX_PROGNAME@-apply (1), +.BR @IMAGEX_PROGNAME@-capture (1), +.BR @IMAGEX_PROGNAME@-delete (1), +.BR @IMAGEX_PROGNAME@-dir (1), +.BR @IMAGEX_PROGNAME@-export (1), +.BR @IMAGEX_PROGNAME@-info (1), +.BR @IMAGEX_PROGNAME@-join (1), +.BR @IMAGEX_PROGNAME@-mount (1), +.BR @IMAGEX_PROGNAME@-mountrw (1), +.BR @IMAGEX_PROGNAME@-optimize (1), +.BR @IMAGEX_PROGNAME@-split (1), +.BR @IMAGEX_PROGNAME@-unmount (1), diff --git a/doc/mkwinpeimg.1.in b/doc/mkwinpeimg.1.in index 684a5394..cd4a0c5e 100644 --- a/doc/mkwinpeimg.1.in +++ b/doc/mkwinpeimg.1.in @@ -132,4 +132,4 @@ they may limit your rights to redistribute customized versions of Windows PE. Report bugs to ebiggers3@gmail.com. .SH SEE ALSO -.BR imagex (1) +.BR @IMAGEX_PROGNAME@ (1) diff --git a/programs/imagex.c b/programs/imagex.c index 0f65ae51..e37b04f1 100644 --- a/programs/imagex.c +++ b/programs/imagex.c @@ -74,52 +74,53 @@ enum imagex_op_type { static void usage(int cmd_type); static void usage_all(); + static const char *usage_strings[] = { [APPEND] = -"imagex append (DIRECTORY | NTFS_VOLUME) WIMFILE [IMAGE_NAME]\n" +IMAGEX_PROGNAME" append (DIRECTORY | NTFS_VOLUME) WIMFILE [IMAGE_NAME]\n" " [DESCRIPTION] [--boot] [--check] [--flags EDITION_ID]\n" " [--verbose] [--dereference] [--config=FILE]\n" " [--threads=NUM_THREADS] [--rebuild] [--unix-data]\n" " [--source-list]\n", [APPLY] = -"imagex apply WIMFILE [IMAGE_NUM | IMAGE_NAME | all]\n" +IMAGEX_PROGNAME" apply WIMFILE [IMAGE_NUM | IMAGE_NAME | all]\n" " (DIRECTORY | NTFS_VOLUME) [--check] [--hardlink]\n" " [--symlink] [--verbose] [--ref=\"GLOB\"] [--unix-data]\n", [CAPTURE] = -"imagex capture (DIRECTORY | NTFS_VOLUME) WIMFILE [IMAGE_NAME]\n" +IMAGEX_PROGNAME" capture (DIRECTORY | NTFS_VOLUME) WIMFILE [IMAGE_NAME]\n" " [DESCRIPTION] [--boot] [--check] [--compress=TYPE]\n" " [--flags EDITION_ID] [--verbose] [--dereference]\n" " [--config=FILE] [--threads=NUM_THREADS] [--unix-data]\n" " [--source-list]\n", [DELETE] = -"imagex delete WIMFILE (IMAGE_NUM | IMAGE_NAME | all) [--check] [--soft]\n", +IMAGEX_PROGNAME" delete WIMFILE (IMAGE_NUM | IMAGE_NAME | all) [--check] [--soft]\n", [DIR] = -"imagex dir WIMFILE (IMAGE_NUM | IMAGE_NAME | all)\n", +IMAGEX_PROGNAME" dir WIMFILE (IMAGE_NUM | IMAGE_NAME | all)\n", [EXPORT] = -"imagex export SRC_WIMFILE (SRC_IMAGE_NUM | SRC_IMAGE_NAME | all ) \n" +IMAGEX_PROGNAME" export SRC_WIMFILE (SRC_IMAGE_NUM | SRC_IMAGE_NAME | all ) \n" " DEST_WIMFILE [DEST_IMAGE_NAME] [DEST_IMAGE_DESCRIPTION]\n" " [--boot] [--check] [--compress=TYPE] [--ref=\"GLOB\"]\n" " [--threads=NUM_THREADS] [--rebuild]\n", [INFO] = -"imagex info WIMFILE [IMAGE_NUM | IMAGE_NAME] [NEW_NAME]\n" +IMAGEX_PROGNAME" info WIMFILE [IMAGE_NUM | IMAGE_NAME] [NEW_NAME]\n" " [NEW_DESC] [--boot] [--check] [--header] [--lookup-table]\n" " [--xml] [--extract-xml FILE] [--metadata]\n", [JOIN] = -"imagex join [--check] WIMFILE SPLIT_WIM...\n", +IMAGEX_PROGNAME" join [--check] WIMFILE SPLIT_WIM...\n", [MOUNT] = -"imagex mount WIMFILE (IMAGE_NUM | IMAGE_NAME) DIRECTORY\n" +IMAGEX_PROGNAME" mount WIMFILE (IMAGE_NUM | IMAGE_NAME) DIRECTORY\n" " [--check] [--debug] [--streams-interface=INTERFACE]\n" " [--ref=\"GLOB\"] [--unix-data] [--allow-other]\n", [MOUNTRW] = -"imagex mountrw WIMFILE [IMAGE_NUM | IMAGE_NAME] DIRECTORY\n" +IMAGEX_PROGNAME" mountrw WIMFILE [IMAGE_NUM | IMAGE_NAME] DIRECTORY\n" " [--check] [--debug] [--streams-interface=INTERFACE]\n" " [--staging-dir=DIR] [--unix-data] [--allow-other]\n", [OPTIMIZE] = -"imagex optimize WIMFILE [--check] [--recompress] [--compress=TYPE]\n", +IMAGEX_PROGNAME" optimize WIMFILE [--check] [--recompress] [--compress=TYPE]\n", [SPLIT] = -"imagex split WIMFILE SPLIT_WIMFILE PART_SIZE_MB [--check]\n", +IMAGEX_PROGNAME" split WIMFILE SPLIT_WIMFILE PART_SIZE_MB [--check]\n", [UNMOUNT] = -"imagex unmount DIRECTORY [--commit] [--check] [--rebuild]\n", +IMAGEX_PROGNAME" unmount DIRECTORY [--commit] [--check] [--rebuild]\n", }; static const struct option apply_options[] = { @@ -236,9 +237,9 @@ static int verify_image_exists(int image, const char *image_name, { if (image == WIMLIB_NO_IMAGE) { imagex_error("\"%s\" is not a valid image in `%s'!\n" - " Please specify a 1-based imagex index or " + " Please specify a 1-based image index or " "image name.\n" - " You may use `imagex info' to list the images " + " You may use `"IMAGEX_PROGNAME" info' to list the images " "contained in a WIM.", image_name, wim_name); return -1; @@ -354,9 +355,9 @@ enum { /* * Parses a filename in the source list file format. (See the man page for - * 'imagex capture' for details on this format and the meaning.) Accepted - * formats for filenames are an unquoted string (whitespace-delimited), or a - * double or single-quoted string. + * 'wimlib-imagex capture' for details on this format and the meaning.) + * Accepted formats for filenames are an unquoted string (whitespace-delimited), + * or a double or single-quoted string. * * @line_p: Pointer to the pointer to the line of data. Will be updated * to point past the filename iff the return value is @@ -419,8 +420,8 @@ static int parse_filename(char **line_p, size_t *len_p, char **fn_ret) } /* Parses a line of data (not an empty line or comment) in the source list file - * format. (See the man page for 'imagex capture' for details on this format - * and the meaning.) + * format. (See the man page for 'wimlib-imagex capture' for details on this + * format and the meaning.) * * @line: Line of data to be parsed. line[len - 1] must be '\0', unless * len == 0. The data in @line will be modified by this function call. @@ -463,8 +464,8 @@ static bool is_comment_line(const char *line, size_t len) } } -/* Parses a file in the source list format. (See the man page for 'imagex - * capture' for details on this format and the meaning.) +/* Parses a file in the source list format. (See the man page for + * 'wimlib-imagex capture' for details on this format and the meaning.) * * @source_list_contents: Contents of the source list file. Note that this * buffer will be modified to save memory allocations, @@ -923,8 +924,9 @@ out: } /* Create a WIM image from a directory tree, NTFS volume, or multiple files or - * directory trees. 'imagex capture': create a new WIM file containing the - * desired image. 'imagex append': add a new image to an existing WIM file. */ + * directory trees. 'wimlib-imagex capture': create a new WIM file containing + * the desired image. 'wimlib-imagex append': add a new image to an existing + * WIM file. */ static int imagex_capture_or_append(int argc, char **argv) { int c; @@ -2045,7 +2047,7 @@ static const struct imagex_command imagex_commands[] = { static void version() { static const char *s = - "imagex (" PACKAGE ") " PACKAGE_VERSION "\n" + IMAGEX_PROGNAME " (" PACKAGE ") " PACKAGE_VERSION "\n" "Copyright (C) 2012, 2013 Eric Biggers\n" "License GPLv3+; GNU GPL version 3 or later .\n" "This is free software: you are free to change and redistribute it.\n" @@ -2094,7 +2096,7 @@ static void usage(int cmd_type) printf("Usage: %s", usage_strings[cmd_type]); for_imagex_command(cmd) { if (cmd->cmd == cmd_type) - printf("\nTry `man imagex-%s' for more details.\n", + printf("\nTry `man "IMAGEX_PROGNAME"-%s' for more details.\n", cmd->name); } } @@ -2105,17 +2107,17 @@ static void usage_all() for (int i = 0; i < ARRAY_LEN(usage_strings); i++) printf(" %s", usage_strings[i]); static const char *extra = -" imagex --help\n" -" imagex --version\n" +" "IMAGEX_PROGNAME" --help\n" +" "IMAGEX_PROGNAME" --version\n" "\n" " The compression TYPE may be \"maximum\", \"fast\", or \"none\".\n" "\n" -" Try `man imagex' for more information.\n" +" Try `man "IMAGEX_PROGNAME"' for more information.\n" ; fputs(extra, stdout); } -/* Entry point for the 'imagex' program. */ +/* Entry point for wimlib's ImageX implementation */ int main(int argc, char **argv) { const struct imagex_command *cmd; @@ -2143,7 +2145,7 @@ int main(int argc, char **argv) if (ret) goto out; - /* Search for the function to handle the 'imagex' subcommand. */ + /* Search for the function to handle the ImageX subcommand. */ for_imagex_command(cmd) { if (strcmp(cmd->name, *argv) == 0) { ret = cmd->func(argc, argv); @@ -2155,9 +2157,9 @@ int main(int argc, char **argv) usage_all(); return 1; out_check_write_error: - /* For 'imagex info' and 'imagex dir', data printed to standard output - * is part of the program's actual behavior and not just for - * informational purposes, so we should set a failure exit status if + /* For 'wimlib-imagex info' and 'wimlib-imagex dir', data printed to + * standard output is part of the program's actual behavior and not just + * for informational purposes, so we should set a failure exit status if * there was a write error. */ if (cmd == &imagex_commands[INFO] || cmd == &imagex_commands[DIR]) { if (ferror(stdout) || fclose(stdout)) { @@ -2167,9 +2169,10 @@ out_check_write_error: } } out: - /* Exit status (ret): -1 indicates an error found by 'imagex' outside - * of the wimlib library code. 0 indicates success. > 0 indicates a - * wimlib error code from which an error message can be printed. */ + /* Exit status (ret): -1 indicates an error found by 'wimlib-imagex' + * outside of the wimlib library code. 0 indicates success. > 0 + * indicates a wimlib error code from which an error message can be + * printed. */ if (ret > 0) { imagex_error("Exiting with error code %d:\n" " %s.", ret, diff --git a/programs/mkwinpeimg b/programs/mkwinpeimg.in similarity index 94% rename from programs/mkwinpeimg rename to programs/mkwinpeimg.in index b5b99769..19712ce7 100755 --- a/programs/mkwinpeimg +++ b/programs/mkwinpeimg.in @@ -20,7 +20,8 @@ script_name="$(basename $0)" PREFIX_REG="::" -WIMLIB_VERSION=1.3.0 +WIMLIB_VERSION=@VERSION@ +imagex=@IMAGEX_PROGNAME@ calc_columns () { STAT_COL=80 @@ -78,7 +79,7 @@ stat_fail() { cleanup() { if mountpoint -q "$mnt_dir" ; then - imagex unmount "$mnt_dir" + @IMAGEX_PROGNAME@ unmount "$mnt_dir" fi rm -rf "$tmp_dir" } @@ -88,23 +89,23 @@ usage() { Usage: $script_name [OPTIONS] IMAGE -i, --iso Make an ISO image instead of a disk image. - -o, --only-wim Make neither a disk image nor an ISO image; + -o, --only-wim Make neither a disk image nor an ISO image; instead, only make a modified boot.wim file. -W, --windows-dir=DIR Use DIR as the location of the mounted Windows 7 or Windows 8 DVD. Default is /mnt/windows, then /mnt/windows7, then /mnt/windows8. - -A, --waik-dir=DIR Get the boot files and boot.wim from the ISO of the + -A, --waik-dir=DIR Get the boot files and boot.wim from the ISO of the Windows Automated Installation Kit mounted on DIR instead of from the Windows 7 or Windows 8 DVD. - -s, --start-script=FILE Add FILE to the root directory of Windows PE image - and adjust \Windows\System32\winpeshl.ini to + -s, --start-script=FILE Add FILE to the root directory of Windows PE image + and adjust \Windows\System32\winpeshl.ini to execute FILE when Windows PE starts up. - -w, --wim=WIM Use WIM as the boot.wim file. Defaults to + -w, --wim=WIM Use WIM as the boot.wim file. Defaults to sources/boot.wim in the Windows DVD directory, or F1_WINPE.WIM from the WAIK if --waik-dir is specified. -O, --overlay=DIR Adds all the files in DIR to the Windows PE image. - -t, --tmp-dir=DIR Use DIR as the temporary base of the ISO filesystem. + -t, --tmp-dir=DIR Use DIR as the temporary base of the ISO filesystem. Defaults to making one using "mktemp -d". -a, --arch=ARCH Use the Windows PE version from the WAIK that has the CPU architecture ARCH. Possible values: @@ -192,7 +193,7 @@ process_command_line() { elif [ "$2" == "amd64" ]; then arch="AMD64" arch_id="3" - else + else echo "ERROR: $2 is not a valid arch (x86/amd64)" exit 1 fi @@ -257,11 +258,11 @@ EOF check_needed_programs() { if [ -z "$waik_dir" -o -n "$modify_wim" ]; then - if ! type -P imagex &> /dev/null ; then + if ! type -P @IMAGEX_PROGNAME@ &> /dev/null ; then cat << EOF -ERROR: To make a customized image of Windows PE, we need the "imagex" program -from WIMLIB so that we can modify the boot.wim file. However, "imagex" -doesn't seem to be installed. Please install WIMLIB to continue. +ERROR: To make a customized image of Windows PE, we need the "$imagex" program +from "wimlib" so that we can modify the boot.wim file. However, "$imagex" +doesn't seem to be installed. Please install "wimlib" to continue. EOF exit 1 fi @@ -269,7 +270,7 @@ EOF if [ $make = iso ]; then if ! type -P mkisofs &> /dev/null ; then - cat << EOF + cat << EOF ERROR: To make a bootable ISO image of Windows PE, we need the "mkisofs" program, but it doesn't seem to be installed. Please install the "cdrkit" package to continue, or try omitting the --iso option to make a disk image @@ -361,7 +362,7 @@ get_boot_wim() { remove_setup=yes wim="$windows_dir/sources/boot.wim" stat_busy "Exporting image from \"$wim\"" - imagex export "$windows_dir"/sources/boot.wim 2 \ + "$imagex" export "$windows_dir"/sources/boot.wim 2 \ --boot "$boot_wim" || stat_fail stat_done fi @@ -377,11 +378,11 @@ modify_boot_wim() { boot_wim="$1" mnt_dir="$2" - # Make modifications to the WIM. + # Make modifications to the WIM. stat_busy "Mounting "$1" read-write" mkdir -p "$mnt_dir" || stat_fail - imagex mountrw "$boot_wim" "$mnt_dir"|| stat_fail + "$imagex" mountrw "$boot_wim" "$mnt_dir"|| stat_fail stat_done @@ -410,7 +411,7 @@ EOF fi stat_busy "Rebuilding WIM with changes made" - imagex unmount --commit "$mnt_dir" || stat_fail + "$imagex" unmount --commit "$mnt_dir" || stat_fail stat_done rmdir "$mnt_dir" diff --git a/src/wimlib.h b/src/wimlib.h index 643438b2..16f3ecb4 100644 --- a/src/wimlib.h +++ b/src/wimlib.h @@ -32,17 +32,18 @@ * \section intro Introduction * * This is the documentation for the library interface of wimlib 1.3.0. If you - * have installed wimlib and want to know how to use the @c imagex program, - * please see the man pages instead. Also: the actual project page where you - * can download the source code for the library is at https://sourceforge.net/projects/wimlib. * * wimlib is a C library to read, write, and mount archive files in the Windows - * Imaging Format (WIM files). These files are normally created using the @c - * imagex.exe utility on Windows, but this library provides a free - * implementetion of @c imagex for UNIX-based systems and an API to allow other - * programs to read, write, and mount WIM files. wimlib is comparable to - * Microsoft's WIMGAPI, but was designed independently and is not a clone of it. + * Imaging Format (WIM files). These files are normally created using the + * ImageX (@a imagex.exe) utility on Windows, but this library provides a free + * implementation of ImageX for UNIX-based systems (and, since v1.3.0, for + * Windows systems) and an API to allow other programs to read, write, and mount + * WIM files. wimlib is comparable to Microsoft's WIMGAPI, but was designed + * independently and is not a clone of it. * * \section format WIM files * @@ -81,6 +82,10 @@ * Configuration Data. In addition, a Windows installation can be captured (or * backed up) into a WIM file, and then re-applied later. * + * wimlib v1.3.0 and later also supports NTFS capture and apply in the native + * Windows build, which works slightly differently and relies on native Win32 + * API calls rather than libntfs-3g. + * * \section winpe Windows PE * * A major use for this library is to create customized images of Windows PE, the @@ -170,11 +175,13 @@ * the WIM operation(s) to report on the progress of the operation (for example, * how many bytes have been written so far). * - * \section imagex imagex + * \section imagex wimlib-imagex * - * wimlib comes with a command-line interface, the @b imagex program. It is - * documented with man pages. See its source code (@c programs/imagex.c in - * wimlib's source tree) for an example of how to use wimlib in your program. + * wimlib comes with a command-line interface, the @b wimlib-imagex program. It + * is documented with man pages. This program was originally just called @b + * imagex, but has been changed to @b wimlib-imagex to avoid confusion with + * Microsoft's @a imagex.exe (which would otherwise have exactly the same + * filename on Windows). * * \section mkwinpeimg mkwinpeimg * @@ -189,7 +196,7 @@ * encoding (e.g. ASCII, ISO-8859-1, or UTF-8), or ::wimlib_utf8char strings, * which are encoded in UTF-8. Generally, filenames and paths are in the * locale-dependent multibyte encoding, while other types of data must be - * provided in UTF-8. Please see the man page for @b imagex for more + * provided in UTF-8. Please see the man page for @b wimlib-imagex for more * information. However, I strongly recommend that you use UTF-8 for your * locale's encoding so that ::wimlib_mbchar strings will be encoded the same * way as ::wimlib_utf8char strings. @@ -221,14 +228,14 @@ * image, then loading them after boot using @b drvload.exe. * - Although wimlib 1.3.0 and later can be used on Windows as well as UNIX, the * Windows build has some limitations compared to the UNIX build. - * (The differences are documented better in the man pages for @b imagex than - * here.) + * (The differences are documented better in the man pages for + * @b wimlib-imagex than here.) * * \section legal License * * The wimlib library, as well as the programs and scripts distributed with it - * (@b imagex and @b mkwinpeimg), is licensed under the GNU General Public - * License version 3 or later. + * (@b wimlib-imagex and @b mkwinpeimg), is licensed under the GNU General + * Public License version 3 or later. */ #ifndef _WIMLIB_H @@ -622,9 +629,8 @@ struct wimlib_capture_source { /** Store the UNIX owner, group, and mode. This is done by adding a special * alternate data stream to each regular file, symbolic link, and directory to * contain this information. Please note that this flag is for convenience - * only; Microsoft's version of imagex.exe will not understand this special - * information. This flag cannot be combined with ::WIMLIB_ADD_IMAGE_FLAG_NTFS. - * */ + * only; Microsoft's @a imagex.exe will not understand this special information. + * This flag cannot be combined with ::WIMLIB_ADD_IMAGE_FLAG_NTFS. */ #define WIMLIB_ADD_IMAGE_FLAG_UNIX_DATA 0x00000010 /****************************** @@ -837,9 +843,9 @@ enum wimlib_error_code { * files are then read on-demand if wimlib_write() or wimlib_overwrite() is * called. * - * See the manual page for the @c imagex program for more information about the - * "normal" capture mode versus the NTFS capture mode (entered by providing the - * flag ::WIMLIB_ADD_IMAGE_FLAG_NTFS). + * See the manual page for the @b wimlib-imagex program for more information + * about the "normal" capture mode versus the NTFS capture mode (entered by + * providing the flag ::WIMLIB_ADD_IMAGE_FLAG_NTFS). * * Note that @b no changes are committed to the underlying WIM file (if * any) until wimlib_write() or wimlib_overwrite() is called. @@ -855,7 +861,7 @@ enum wimlib_error_code { * @param config * Pointer to the contents of an image capture configuration file. If @c * NULL, a default string is used. Please see the manual page for - * imagex capture for more information. + * wimlib-imagex capture for more information. * @param config_len * Length of the string @a config in bytes, not including an optional * null-terminator. Ignored if @a config is @c NULL. @@ -920,8 +926,8 @@ wimlib_add_image(WIMStruct *wim, const wimlib_mbchar *source, * multiple sources to be combined into a single WIM image. This is done by * specifying the @a sources and @a num_sources parameters instead of the @a * source parameter of wimlib_add_image(). The rest of the parameters are the - * same as wimlib_add_image(). See the documentation for imagex capture - * for full details on how this mode works. + * same as wimlib_add_image(). See the documentation for wimlib-imagex + * capture for full details on how this mode works. * * Additional note: @a sources is not a @c const parameter and you cannot * assume that its contents are valid after this function returns. You must @@ -1138,9 +1144,9 @@ wimlib_export_image(WIMStruct *src_wim, int src_image, * Extracts an image, or all images, from a standalone or split WIM file to a * directory or a NTFS volume. * - * Please see the manual page for the @c imagex program for more information - * about the "normal" extraction mode versus the NTFS extraction mode - * (entered by providing flag ::WIMLIB_EXTRACT_FLAG_NTFS). + * Please see the manual page for the @c wimlib-imagex program for more + * information about the "normal" extraction mode versus the NTFS extraction + * mode (entered by providing flag ::WIMLIB_EXTRACT_FLAG_NTFS). * * Extraction is done with one thread. * -- 2.43.0