I just released v0.01 of msitools, a collection of utilities to inspect and create
Windows Installer files. It is based on the Wine code, but ported to POSIX.
You can find the source and binary packages at http://bonzini.fedorapeople.org/ - unfortunately you will need to build libgsf from git, because I found a bug and no released version has the fix as of now. The linked page has Fedora RPMs with the fix.
$ msiinfo streams ~/download/Firefox-16.0.2-it.msi
Binary.New
Binary.Up
Binary.info
Binary.dlgbmp
Binary.CustomBin
Binary.bannrbmp
Binary.completi
Binary.custicon
Binary.exclamic
Binary.insticon
Binary.removico
Binary.repairic
_MAKEMSI_Cabs.MM01.cab
Binary.BannerGraphic.BMP
Icon.firefox.16.0.2.0.ico.exe
DigitalSignature
SummaryInformation
$ msiinfo extract ~/download/Firefox-16.0.2-it.msi _MAKEMSI_Cabs.MM01.cab > firefox.cab
$ cabextract -l firefox.cab
Viewing cabinet: firefox.cab
File size | Date Time | Name
-----------+---------------------+-------------
917984 | 24.10.2012 12:50:38 | firefox.exe
18912 | 24.10.2012 12:50:38 | AccessibleMarshal.dll
There is a companion utility msibuild to build MSIs. It is very low-level, but you can use the two tools together to make small changes to an MSI you already made on Windows.
update: now hosted at https://live.gnome.org/msitools, it also has a tool (wixl) that supports a subset of the WiX XML. Requires libgsf 1.14.25 or newer. Fedora 18 and newer have it packaged.