InstallBuilder
Folders and files
Name | Name | Last commit date | ||
---|---|---|---|---|
parent directory.. | ||||
Description: The install builder is written with the intention of being able to produce native packages for all of the SCX platforms (Linux{RPM/DPKG}, AIX, SunOS, and HPUX) given a set of input datafiles which describe the package. Datafiles: Datafiles are input to the install builder as a list of files at the command line. A section is the most fundamental part of a datafile, and is denoted by a line that begins with a '%'. Basic sections are: Variables Defines Files Directories Links Dependencies Preinstall_*N* Postinstall_*N* Preuninstall_*N* Postuninstall_*N* iConfig_*N* rConfig_*N* (Where _*N* denotes any number of underscores followed by any number of digits) Script sections are those which contain a "_*N*" at the end. These sections are the building blocks of the scripts associated with their names that the native packages will run at the appropriate times. The digits at the end of each script section specify the relative location to include the code that is in that section with respect to the other script sections that share the same name, but with a different set of digits. These sections are sorted numerically. For example, the sections below will combine into a single Preinstall script: --------------------------------------------------------------------------- %Preinstall_10 echo "hello" %Preinstall_5 echo "First!" %Preinstall_300 echo "Last!" --------------------------------------------------------------------------- These will be combined into the 3 lines below for the Preinstall script: echo "First!" echo "hello" echo "Last!" A section can have any name. For example, "%UsefulFunctionsToBeIncluded" is a valid section name, and can be included by any other section. The act of including (#include SECTION) simply inserts every line from the section to be included into the section that is including. Sections other than those specified in the "Basic sections" above will have no other function other than being available for includes in other sections. =========================================================================== Section Grammar and Notes =========================================================================== Variables: VARIABLE_NAME: 'VALUE' --------------------------------------------------------------------------- Defines: DEFINE_NAME --------------------------------------------------------------------------- Files: STAGED_LOCATION; SOURCE_LOCATION; PERMISSIONS; USER; GROUP(; conffile) or COMMAND Notes: 1. The parenthesis around the "; conffile" denote that this field is optional. 2. Including the '; conffile' at the end will inform the package managers that this file is a configuration file, which means that on upgrades the file will be preserved. --------------------------------------------------------------------------- Directories: STAGED_DIRECTORY; PERMISSIONS; USER; GROUP(; sysdir) or COMMAND Notes: 1. The parenthesis around the "; sysdir" denote that this field is optional. 2. Including the '; sysdir' at the end will inform the package managers that this directory is a system directory, which means that it will only create the directory when staging to build the package, but will not attempt to create the directory when installing the package. --------------------------------------------------------------------------- Links: STAGED_LINK; LINK_POINTS_TO_THIS_LOCATION; PERMISSIONS; USER; GROUP or COMMAND --------------------------------------------------------------------------- Dependencies: PACKAGE_SYSTEM_SPECIFIC_DEPENDENCY_ENTRY or COMMAND --------------------------------------------------------------------------- Preinstall_*N*/Postinstall_*N*/Preuninstall_*N*/Postuninstall_*N*/iConfig_*N*/rConfig_*N*: PLAINTEXT or COMMAND Notes: 1. PLAINTEXT is just simply plaintext that gets included into the scripts associated with the section names. --------------------------------------------------------------------------- COMMAND: #ifdef VAR or #ifndef VAR or #elseifdef VAR or #elseifndef VAR or #if VAR OPERATION VALUE or #elseif VAR OPERATION VALUE or #endif or #include SECTION Notes: 1. Conditionals (#if*/#else*/#endif) will determine if the lines within the conditional block are included/evaluated. 2. Includes (#include) will insert another section in place of the #include line. --------------------------------------------------------------------------- OPERATION: == or != or > or < or >= or <= Notes: 1. Equality comparisons are string comparisons, and inequality comparisons are floating point comparisons. ---------------------------------------------------------------------------