[OpenAFS] perl script alternative to graphical msi transform creation

ted creedon tcreedon@easystreet.com
Thu, 1 Feb 2007 09:23:30 -0900

This needs to be on a Wiki along with other scripts


-----Original Message-----
From: openafs-info-admin@openafs.org [mailto:openafs-info-admin@openafs.org]
On Behalf Of Joe Buehler
Sent: Thursday, February 01, 2007 6:03 AM
To: openafs-info@openafs.org
Subject: [OpenAFS] perl script alternative to graphical msi transform

When the OpenAFS msi installer became available I had
originally used the available Microsoft GUI tool to
modify it, create a transform, etc.  This got old
after a while because of the large number of releases,
so I wrote a PERL script to do the work for me.

If you have similar frustrations and no better tools
than I do, you can find a copy of the script along with
the tree it is intended to create/edit at:

The 1.5.14 directory is intended to live on a Samba
share.  Users double-click the install.bat file in the
directory to perform an OpenAFS client install/upgrade.
All they have to do is select the defaults.  We currently
use this for Windows 2000 and XP users along with a
couple servers that are 2003 or something like that.  It
is for a kaserver setup at present and I haven't looked
yet at what might need to change for a MIT KFW setup.

The PERL script runs on a LINUX box and works by
using the open-source msi2xml tool on a Windows XP box
running Cygwin to unpack the official OpenAFS msi.  Then
it edits the resulting XML using the XML::LibXML to customize
it according to my taste.  Then it uses msi2xml again
to pack it all back up into a new msi.  This has worked
flawlessly for me for that past couple years or so, with
some minor changes needed from time to time.

The PERL script that does all the work is called
make-modified-installer.  You will need to review it and
make changes for your needs before using it.  The customizations
I make from release to release are all at the top of the script
but some of the other parts will need changing for your
environment.  You will likely need to have some knowledge
of the database tables in msi files -- it is all documented
on the Microsoft website.
Joe Buehler

OpenAFS-info mailing list