Understanding the scp2 project
What are scp files?
scp is the abbreviation for script particle. Every scp file is a small part of the setup script, which can be found in the installation set next to the setup. The setup script contains the information about the installation of OpenOffice.org. Every script particle contains a little information, for example about the kde integration, or the readme files or entries for the Windows registry. You will see, there are many, many different scp files for many different applications.
When do I have to make changes in the scp2 project?
Changes in the scp2 project are necessary, if the installation of OpenOffice.org has to be changed. This can include a new file, or an additional entry into the windows registry. Anything that is done by the setup, has to be available in the setup script. Every file and every entry into the Windows registry is written in the setup script in this special setup script language. In detail the setup script can contain the following information:
Setup Modules, Files, Directories, Profiles (ini-files), ProfileItems (entries into ini-files), RegistryItems (entries into the Windows registry), Folder and FolderItems (Directories and Links in the Windows system directories), ShortCuts (Links to defined files or other Shortcuts), UnixLinks (Links to any location in the system), WindowsCustomActions (Windows Installer specific actions), ScpActions (copying files from the output tree into the installation set (only for the ZipDirector and lzip)) and Installation (for global installation parameters).
How do we build the setup script?
The setup script is made of the script particle. These particle contain information about the languages, the platform, the different products etc. Therefore the scp files are first of all edited by a preprocessor, who gets the necessary parameter. Then the program pre2par.pl prepares the files for the linker par2script.pl. The results of pre2par.pl are par-files (same filename, but extension .par), which you can find in the output tree in the par directory.
Which par files for which products and which platforms have to be built, is determined in the makefile.mk in the local source directories of the different scp projects. After creating the par files, the linker links all necessary par files to the different setup scripts. Which par files are needed for which platform and which product is described in the makefile.mk in the util directory of the different scp projects.
The resulting setup script still contains all information for the different languages we support, but is specified for one product and one platform. Therefore in the last step of creating installation sets the scpzip packs all files which are mentioned in the setup script, writes this information into the script and changes the script corresponding to the desired language.
Which scp projects exist?
Currently the project containing scp files is named scp2.
Last changes in the scp structure
Caused by the strict separation of language dependent files and language independent files and by the increased number of supported languages for OpenOffice.org, a new mechanism was required, to generate modules with language specific files automatically. In this context a new concept with sct-files and modules with flag TEMPLATEMODULE was introduced into src680m242. sct is the abbreviation for script template files.
During the scp build process, Perl programs expand the content of the sct files to content that would normally be defined in scp files. But the Perl programs "know" the supported languages and are therefore able to create a huge number of scp modules automatically.
The assignment of "Files", "Dirs" or other items can be achieved by using template modules, that are not used to define "real" modules, but only assignments to modules. This template modules require the flag TEMPLATEMODULE. This modules can be included from every non template module using the key "Assigns=...". Please find more information here.