httpd-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "William A. Rowe, Jr." <>
Subject Re: Win32 installer
Date Wed, 09 Jan 2002 21:35:38 GMT
The utility, cabarc, comes with the Win32 SDK.  It it really trivial to use,
although I would much prefer exposing the [entirely undocumented] Diamond
SDK library (also part of the sdk, see fdi.h/fci.h) using a Perl XS wrapper
and creating an archive::cab library in perl :)  

It's critical that every file in the cab is in the order documented by the
sequence number within the .msi.  If you want to 'peek' into or muck up an
msi, use the Orca.exe utility that is also part of the SDK (or part of the
MSI SDK, I don't know if they are still seperate.)

Really, since our components, dialogs, and the like change rarely if ever,
it's just a matter of populating a new Files table listing the files, and
a new cabinet.  The utility msidb lets you import or export the cab file
attached to an .msi, as well as importing tables.  [Also in the SDK]

But better than msidb would be another perl module, something like
win32::msidb which could be tied and accessed.  Then a really simple
perl script would simply call archive::cab and modify the list with
win32::msidb in parallel.  Really simple, actually.

And the installer script writing itself is done from awk, so that's
really trivial to change.

Right now, there is no tangent to what I'm doing for a living, nor do
I really have the time to hammer out what I described above.  If you have
additional questions though, don't hesistate to ask.  The msi stuff all
resides in cvs in the httpd-win32-msi repository.


From: "Dwayne Miller" <>
Sent: Wednesday, January 09, 2002 3:16 PM

> Not being that familiar with rolling a cab, and MsiDatabaseApi,  where 
> can one go to see some examples of this.
> William A. Rowe, Jr. wrote:
> >That is, it's just an .msi database.  Anyone with the time and inclination
> >(I've run out recently, may revisit it) can simply take the .msi file, and
> >propogate it with the current version.
> >
> >My philosopy on any .msi authoring package is that they simply make pretty
> >dialog editors, and any modest project like apache should roll it's own
> >cab, update the files list through the MsiDatabaseApi, and volia.

View raw message