You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@httpd.apache.org by "William A. Rowe, Jr." <wr...@covalent.net> on 2002/01/09 21:39:18 UTC

Re: Win32 installer

From: "Mladen Turk" <mt...@mappingsoft.com>
Sent: Wednesday, January 09, 2002 1:52 PM


> Perhaps off the topic, but why we are using commercial setup software for a
> BSD licensed one?
> Cannot figure out what is the sw you are using for the httpd-win32-msi
> project, Install Shiled Pro?
> Take a look at http://www.jrsoftware.org

Because 1. it fits a typical win32 user's expectations, 2. it was written 
[by me] at Covalent and donated to Apache, 3. it replaced a then-broken
propritary installer format and scripting (InstallSheildPro 2.0, I think) 
and was ment to be the -starting- point for the win32 installer.

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.

In any case, since I've supported it, it's terribly irrelevant.  Unless
one of the project members cares to take on that burden, it's whatever
happens to be convenient for me.  Of course I'll share, if anyone else
wants to assist.  [Noone expressed much interest except in using VBScript,
which I naysayed, or continuing the ISPro flavor installer, which I didn't
care to fight with.]

Finally ... I took the cue from ActiveState Perl, if you want to know :)

Bill


Re: Win32 installer

Posted by "William A. Rowe, Jr." <wr...@covalent.net>.
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.

Bill


From: "Dwayne Miller" <dm...@espgroup.net>
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.



Re: Win32 installer

Posted by Dwayne Miller <dm...@espgroup.net>.
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:

>From: "Mladen Turk" <mt...@mappingsoft.com>
>Sent: Wednesday, January 09, 2002 1:52 PM
>
>
>>Perhaps off the topic, but why we are using commercial setup software for a
>>BSD licensed one?
>>Cannot figure out what is the sw you are using for the httpd-win32-msi
>>project, Install Shiled Pro?
>>Take a look at http://www.jrsoftware.org
>>
>
>Because 1. it fits a typical win32 user's expectations, 2. it was written 
>[by me] at Covalent and donated to Apache, 3. it replaced a then-broken
>propritary installer format and scripting (InstallSheildPro 2.0, I think) 
>and was ment to be the -starting- point for the win32 installer.
>
>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.
>
>In any case, since I've supported it, it's terribly irrelevant.  Unless
>one of the project members cares to take on that burden, it's whatever
>happens to be convenient for me.  Of course I'll share, if anyone else
>wants to assist.  [Noone expressed much interest except in using VBScript,
>which I naysayed, or continuing the ISPro flavor installer, which I didn't
>care to fight with.]
>
>Finally ... I took the cue from ActiveState Perl, if you want to know :)
>
>Bill
>