Building the Next Gen App Installer
This document is obsolete. It only applies to Firefox 0.8
This document describes how to build the next generation installer for your next generation Mozilla application.
The build scripts used to generate the installer are condensed versions of those used to build the Seamonkey installer. They are broken down as follows:
Firefox XPI Install Scripts, Wizard config.ini etc and Installer CFG. - known as the Configuration Path. This path is arbitrary and may vary depending on your source code structure.
Common support scripts (for generating XPI install .js files, INI files, etc) shared with Seamonkey.
To generate an installer for your next generation application you must do the following:
- Identify the downloadable components you wish to have present (e.g. browser, adt, langenus etc).
- Next you create packages-static in the configuration path for your product. This contains a section for each downloadable component and the files it contains, in the form of packages-win, packages-static-win etc from Seamonkey.
- Now you create the .jst template files for each downloadable component that performs the appropriate file copying, upgrading, registration, registry key tweaking etc.
- Edit the config.it and other .it files to identify install options and UI strings for the installer wizard.
- Create a new file, installer.cfg which contains information that tells the scripts what type of file to generate, file names for the installer scripts (e.g. "FirefoxSetup.exe") etc. The format of the installer.cfg file can be found here.
Now go to toolkit/mozapps/installer/windows, make sure ActivePerl is ahead of Cygwin Perl on your path, make sure MOZ_SRC is set correctly and that your build is not using an objdir. Then run:
perl build_static.pl -config <configuration_path>
perl build_static.pl -config "C:/builds/installer/mozilla/browser/installer/windows"
This picks up the package information from the config path you provide, builds the XPIs from the .jst files, creates the wizard exe with the parameters specified in the installer.cfg file with the UI resources specified in config.ini.
- Ben Goodger (7/23/2004)