No description
.gitignore | ||
api.h | ||
autogen.sh | ||
configure.ac | ||
dupstr.c | ||
dupstr.h | ||
LICENCE | ||
makecab.c | ||
makecab.py | ||
Makefile.am | ||
makemsi.c | ||
md5.c | ||
memory.c | ||
memory.h | ||
misc.h | ||
preload.c | ||
readcab.c | ||
README.txt | ||
subproc.c | ||
subproc.h | ||
test.c | ||
uchars.c | ||
uchars.h | ||
version.c | ||
winterop-stubs.c | ||
wrapper.py |
WiX cross-building support for Linux ==================================== This directory contains a suite of Linux shared libraries and supporting scripts to allow parts of the WiX toolset to run on Linux, generating MSI Windows installer files without depending on Windows itself, any official Windows DLLs, or even Wine. Requirements ------------ This system has so far been tested only on Ubuntu 14.04. To run, you will need some Ubuntu packages installed: - 'mono-runtime' (to run the main CLR executables from WiX itself) - 'cabextract' and 'msitools' (the libraries in this suite will expect to be able to invoke them via fork/exec) - Python (currently only tested with Python 2) to run the wrapper.py and makecab.py scripts that are part of this source base. To compile it, you will also need gcc and autotools. (There may be other package dependencies I haven't spotted. I've only tested this on my own machine and haven't done a full analysis of what might have already been installed here that I didn't realise I was depending on. If you find problems along these lines, please help make this section more complete.) Installation ------------ First, get the official WiX distribution. I downloaded the latest WiX 3 zip file at the time, which was a zip file called wix310-binaries.zip. Unpack that zip file into a directory of your choice, which I will refer to below as $WIX_INSTALL_DIR. Now build and install the stuff in _this_ directory into that same directory, by running - ./autogen.sh (assuming you checked this source tree out of git rather than installing a tarball of it, so that 'configure' won't already exist) - ./configure --bindir=$WIX_INSTALL_DIR - make - make install This will install some Python scripts and some .so files into the same location $WIX_INSTALL_DIR where you unpacked the WiX zip file. In particular, you should find two files 'candle' and 'light' - actually symlinks to wrapper.py - dropped into that directory, alongside the candle.exe and light.exe that came from the WiX distribution. Running it ---------- You should now be able to run $WIX_INSTALL_DIR/candle and $WIX_INSTALL_DIR/light more or less as if they were the ordinary WiX 'candle' and 'light' programs. Ordinary WiX installer source should basically work, except that as a consequence of running the WiX CLR code on a different OS, this system will not tolerate backslashes used as directory separators in pathnames in the .wxs file. You'll need to replace any of those with forward slashes first (which in my experience does not break compatibility with WiX run in the usual way). Those scripts will run candle.exe and light.exe under Mono, and arrange to load my .so files in place of the native-code Windows DLLs that those programs need; the .so files will in turn call out to cabextract, msibuild and my makecab.py script as necessary. Disclaimer ---------- This system is very new and not very tested! I have tested it so far on exactly _one_ installer, namely PuTTY's one, as of the current master branch at https://git.tartarus.org/simon/putty.git . It is extremely possible that some more advanced features of WiX will not work in this system. I will be interested to hear about them, if so, but I may not have time and energy to fix them; patches would be preferable to plain bug reports. Licence ------- The contents of this directory are copyright 2017 Simon Tatham, except for md5.c, which contains code from PuTTY written in 1999 (also copyright Simon Tatham). It is redistributable under the MIT licence. See the file LICENCE for the full licence text.