The Goal: build a fully functional Office 2003 SP1, using cache on setup, asking for serial, being only a bit larger than the original without SP1 & allowing for administrative install
What do you need:
- MSI 3.1 installed
- WSH 5.6 installed
- md5sum.exe (http://unxutils.sourceforge.net/)
- makecab.exe (Microsoft Cabinet SDK)
- sort2cabs.js (Download (5,5kB))
- Office 2003 CD(s)
- appropriate administrative updates
- some hard disk space and some time
What I did to create a working Office 2003 SP1:
1. Copy the office 2003 to the hard disk (referred from now on as X:\office2003). Remove all hidden and write-only attributes from files. Store all updates on hard disk (*.MSP, directory referred to is called x:\SP1). Make backups of X:\office2003\FILES\SETUP\*.INI
2. Apply Updates (slipstream) using the following Syntax:
msiexec /a X:\office2003\PRO11.MSI /p X:\SP1\MAINSP1ff.msp MSINODISABLEMEDIA=1 SHORTFILENAMES=TRUE PIDKEY="xxxxxxxxxxxxxxxxxxxxxxxxx" msiexec /a X:\office2003\OWC11.MSI /p X:\SP1\OWC11SP1ff.msp MSINODISABLEMEDIA=1 SHORTFILENAMES=TRUE PIDKEY="xxxxxxxxxxxxxxxxxxxxxxxxx" msiexec /a X:\office2003\OWC10.MSI /p X:\SP1\OWC102003SP1ff.msp MSINODISABLEMEDIA=1 SHORTFILENAMES=TRUE PIDKEY="xxxxxxxxxxxxxxxxxxxxxxxxx" msiexec /a X:\office2003\FP11.MSI /p X:\SP1\MAINSP1ff.msp MSINODISABLEMEDIA=1 SHORTFILENAMES=TRUE PIDKEY="yyyyyyyyyyyyyyyyyyyyyyyyy" ... (and so on for all your components)
if this is not working, try first making an administrative install and then copy the original msi-files over the altered and the apply the patches. This may be no longer necessary since MSI 3.x
After the Updates delete any cab files in X:\office2003
3. Create a subdirectory X:\office2003\sort and extract sort2cabs.zip here. Create subdirectories for every msi you installed before (-> X:\office2003\sort\pro11, X:\office2003\sort\owc10, X:\office2003\sort\owc11, ...). The following has to be done with every msi file:
- open with ORCA
- export tables CabinetDetail, Component, Directory, File, Media to the created corresponding directory
4. Copy XML files located at X:\office2003\FILES\SETUP to X:\office2003\sort. Now edit X:\office2003\sort\tabledirs.lst and X:\office2003\sort\xmlfiles.lst to match your need. tabledirs.lst lists all directories containing the exported tables from the msi packages (existence is checked in sort2cabs.js) and xmlfiles.lst lists all xml to edit (correct md5sums).
5. Open a command line (cmd) and change path to X:\office2003\sort. Start sort2cabs using folling syntax:
cscript sort2cabs.jsfor successful completion md5sum.exe and makecab.exe should be placed in a directory listed in the path variable! ok, time for a cup of coffee
6. When the script stops you have to replace some tables in your msi packages. Use ORCA for this task:
- open zzz.msi with ORCA (replace zzz with msi package names)
- import tables called *.new.idt from X:\office2003\sort\zzz, replace the old ones, do not merge
- save (this is important, too)
now the script may continue (this stop is necessary for calculating the md5sums for the xml files)
7. That's nearly all, now copy the xml files from X:\office2003\sort to X:\office2003\FILES\SETUP, restore the backed up ini files in X:\office2003\FILES\SETUP and delete all files that were not originally on the office cd (ok, i wrote a bat file for copying all files to another location, which files are necessary you'll see on your cd ). Burn your new Office 2003 on a CD labeled 'OFFICE11'
It may be necessary to edit the msi package of MS Project when building an AIO CD. The table "Media" contains a column "VolumeLabel" which should be "OFFICE11". Make this change after step 1.
I know this is not as easy as just pressing a button, but sort2cabs.js is rather generic and may work with other msi packages. If not, try to alter the script
Here a short summary what the script does:
- read dirlist.lst and test for all necessary files in listed subdirs
- read all *.idt and combine information in arrays
- sort by media (cab files) and sequence numbers from msi packages
- renumber all files/set new sequence numbers to eliminate duplicate numbers (otherwise you cannot use compression)
- compress using makecab and ddf files to control process, sorting of files in cabs must be the same as sorting by sequence numbers in msi packages
- calculate md5 sums for cabs and other files listed in xml files located in X:\office2003\FILES\SETUP
This may help understanding the script. I added some comments, too.
Because I tested the whole process only with SP1 (maybe all later patches can be integrated) and not in detail please report problems here.