RPM Build Configuration Properties

InstallShield 11 Universal

Available in InstallShield Universal Premier Only

Set the Standard and Advanced properties of an RPM Build Configuration in an RPM Installer project as described below to build your project into an RPM installer.

You can add as many build configurations as you need to the same project to suit different installation needs—you select which build configuration to use to build your project before you click Build.

Tip

To determine how many build configurations you need, see Determining the Project Type(s) and Build Configuration(s) You Need.

Note

In order for the RPM Installer payload to be spanned across multiple media, the build configuration's Archive Type Info property must be set to either "Custom Size Archive" or "CDROM Archive."

The following descriptions and instructions are for setting the Standard and Advanced properties of RPM Build Configurations.

Standard Properties

Property Description
Output Directory Specify the location to where you want the built project saved. Either type the location in this field, or click the ellipsis ("...") and browse to the location. A path variable can also be used.
Archive Name Specify the name of the file or directory to create. Typically, ZIP-compatible archives are named with the .jar extension, while directory archives do not have an extension. A path variable can also be used for this property.
Archive Type Info Universal supports four types of archives. Click the ellipsis ("...") and select one of the following types that most appropriately fits the needs of this configuration:
  • Directory Archive—This type of archive creates a directory structure that can be used to run the installation. It does not compress the files. Directories are used most frequently for CD or file system-based installations because they enable direct access to the contents of the installation. However, they offer minor performance advantages over JAR archives.
  • Single JAR Archive—Also known as a "ZIP® Archive," this type of archive is the most common. A JAR file can be distributed as a single file because it compresses all of the files at build time except for those that are specified to be built outside of the archive. This archive type is the only archive type supported by Universal installation launchers. Also, if the product you will install with this project is a Java application, then this is the type of Archive Type Info you should select.

    Note

    If the following message is received, it is usually because the installation is a single JAR archive, but it is located in the / (root) directory when it runs:

    Insert Media #1
    If this message is received and your installation does not span multiple media, then the installation process must be killed using <Ctrl+C> or the kill command for that platform. The installation archive must then be moved to a directory other than root, and it must be reinstalled.

  • Custom Size Archive—This type of archive enables you to specify the amount of data that should be written to a each CD when media spanning is required for the installation, that is, when the size of the installation exceeds the storage space on one piece of media. It is also used when you will distribute the installation on DVD(s) so that you can set the media and block sizes for DVDs. When this type of archive is selected, the following additional properties become available to be set (see below for an additional property):
    • Media Size—The total size in bytes on the media. For example, a CD-ROM has 681984000 bytes of available space, which is the default value for this property.
    • Block Size—The byte size for each block of data on the media. A file stored to the media always takes up a size that is a multiple of this number. For example:
      • A CD-ROM has a Block Size of 2048 bytes (the default value for this property). A stored file of 1048 bytes (which is the Media Size of the file), would require one block (1 x 2048, which is 2048 bytes) because the byte size of the file is less than the number of bytes in one block.
      • A file that is larger in bytes than the byte size of one block would require a multiple of blocks. Therefore, a stored file of 2056 bytes would require two blocks (2 x 2048), which would be 4096 bytes.
  • CDROM Archive—This type of archive creates a CDROM installation, which can utilize media spanning when the size of the installation exceeds the storage space on one CD. The amount of data written to each CD cannot, however, be specified as it can be in Custom Size Archive (see below for an additional property).
RPM Package Output Directory This property determines the name of the directory to which only the RPM portion—the entire RPM package—will be written. You can set this property to an absolute or relative path. Setting it to a relative path appends it to the value of the Output Directory property. The default value is "rpm."
Platform This property determines which platform the build of this project should target. Each built RPM Installer project can only target one platform. You set up all of the platforms that this project should be able to target in the Files and Folders view, and select one of those platforms in this property.

Tip

If you need this project to target multiple platforms, set this property to "Platform Independent" and it will be deployable to all platforms that have RPM installed.

Or, add an RPM Assembly Build Configuration for each platform you specified in the Files and Folders view. Set each build configuration's Platform property to a different platform—the Software Object Key Overrides property of each new build configuration will automatically contain unique UUIDs. Then build this project using each build configuration. The end result will be one built RPM assembly for each targeted platform, each with unique UUIDs for their software objects. (This enables you to create and deploy updates and patches for them in the future.) Then reference those RPM assemblies in either an RPM Installer, Universal Installer, Condenser Installer, Dynamic Suite, or Condenser Dynamic Suite project that will be built with an RPM, Product, or Suite Build Configuration. If you reference the assemblies in a Universal Installer or Condenser Installer, conditionalize each feature for the platform that its referenced RPM assembly was built to target.

Enable Auto-Dependency Checking Select whether RPM should automatically check all dependencies during the installation of this assembly. The default value for this property is "True" and should rarely be changed.
Include Support for Non-RPM Platforms If you need this installation to be able to be deployed to platforms that do not have RPM installed, then set this property to "True." You would need this, for example, if you have included assemblies in your project that are not built RPM assemblies and/or want to be able to install this product onto platforms that do not have RPM. Otherwise, leave this property set to the default value of "False."
  • If set to "True"
    • The following message displays in the build output view (at the bottom of the interface) during the build process:
      Including support for non-RPM enabled platforms...
    • You will be able to install this product onto any platform that does not have RPM installed. At the beginning of the run time, Universal will determine that RPM is not installed on the target machine. It will use the Universal File Service instead of RPM to install the payload onto these machines.
  • If set to "False"
    • The following message displays in the build output view (at the bottom of the interface) during the build process:
      This installer will only support RPM-enabled platforms...
    • You will not be able to install this product onto any platform that does not have RPM installed.

Advanced Properties

Property Description
Build Category Filter This property enables you to specify the build category(ies) to exclude when you build this project using this build configuration. Those software objects that are set with the build category(ies) specified will not be included in the build.
Comments
(Premier Only)
This optional property enables you to specify comments about this build configuration. They are stored in the project file and are for your use only. They are ignored at run time.
Software Object Key Overrides This property enables you to use different UUIDs for the product and root component each time this project is built. The new UUIDs are stored only with this build configuration—the UUIDs that are set in the General Information view are not altered. The default value of this property is "Use key overrides," which means that new UUIDs were automatically set in this build configuration when you added it to your project.

Note

If you need this project to target multiple platforms, set the Platform property to "Platform Independent" and it will be deployable to all platforms that have RPM installed.

Or, you can add an RPM Assembly Build Configuration for each platform. You would leave this property set at the default in all of the RPM Assembly Build Configurations, set each one's Platform property to one of your targeted platforms, and build the project once for each build configuration. The end result will be one built RPM assembly for each targeted platform, each with unique UUIDs for their software objects. (This enables you to create and deploy updates and patches for them in the future.) You would then reference those assemblies in an RPM Installer, Universal Installer, Condenser Installer, Dynamic Suite, or Condenser Dynamic Suite project that will be built with an RPM, Product, or Suite Build Configuration. If you reference the RPM assemblies in a Universal Installer or Condenser Installer, conditionalize each feature for the platform that its referenced RPM assembly was built to target.

You can also specify the UUID for each object, or have Universal generate another set of unique ones for you. Instructions for accomplishing both are described below.

Procedures

To specify UUIDs:

  1. Click the ellipsis ("..."), and the Software Object Keys dialog box opens.

    Tip

    To reset the UUID for all of the software objects in your project, click Generate All New UUIDs in the right side of the dialog box. Then click OK and skip the rest of these steps.

  2. In the left side of the dialog box, select the software object for which you want to set a new UUID.
    1. Select the Software Object UUID field, then right-click and select Generate UUID. Universal will generate a unique UUID for the selected object.

      --OR--

      1. In the right side of the dialog box, double-click the Software Object UUID field, and the field becomes editable.
      2. Double-click the field again, and the UUID becomes highlighted.
      3. Type the new, maximum 32-character, alphanumeric UUID with no spaces. The only non-alphanumeric character you can use is the underscore ("_").
      4. Press Enter to save the new UUID.
    If this project is targeting only one platform, then you should build the project using the UUIDs set in the General Information view.

    Procedure

    To Use the UUIDs set in General Information:

    In the Software Object Keys dialog box, click the check box next to Use Default Keys. A check mark appears in the check box, and the UUIDs set in the General Information view will be used every time you build this project using this build configuration.

External Resource Location Specify the relative directory to which all of the external resources should be written at build time. The specified directory will be created relative to the location of the built project. Leave this property blank if the external resources should be located in the same directory as the built project, or if you have no external resources to include in this configuration.
Include Assemblies This property contains all of the assemblies that were selected to be referenced by this project in the Assemblies view. You also indicated in the assembly's Source property whether the assembly should be included in this build configuration. This property is for you to add any additional assemblies that are required by this product.

Click the ellipsis ("...") and the List of Values dialog box opens. For each assembly reference you want to add to this build configuration, click Add and type the absolute path to the assembly.

For example:
  • If an assembly requires another assembly that is not referenced by this project, then you would add it here.
  • If this project is installing an add-on to a product that is already installed on the target machine, then it requires that the product be present in order for this installation to succeed. You would add the path to that required product here. If the product is not found on the target machine, the installation fails, and an error message displays advising of the unresolved dependency.
Generate Manifest Select whether you want the build output of this build configuration to include the creation of a manifest.xml file. This file contains detailed information about the assembly, and is presented in XML format. This file is for your administrative use only. The default value of this property is "False."
Additional RPM Build Commands This optional property is for you to specify any additional RPM commands that you want to be executed at run time. These parameters will be passed to the rpmbuild command, which is used to build the .rpm file.
RPM Spec File Override This optional property enables you to specify a specific .spec file to be used to build the RPM package, which determines how the underlying .rpm file should be built. Specify the path to that .spec file here. If the installation should use the .spec file built by Universal, then leave this property blank.
RPM Build Root Directory Override This is the temporary, base directory that is used to package the payload for the .rpm file. The directory that is used is the one that is set in the Java system property temp.dir on the development machine. At build time, all of the payload files are copied to this directory and then packaged into the .rpm file. Once the .rpm file has been built, this temporary directory is removed. To change this location, specify a directory, noting that the directory and its contents will be removed after the build has finished.
RPM Package Name Override The default RPM package name is a combination of the Name and Version properties of the product that are set in the General Information view, as follows:

<Name>-<Version>

To override this value, specify a different RPM package name; otherwise, leave this property blank.
RPM Erase This property determines whether you want to allow this RPM package to be uninstalled using the rpm -e <packageName>. The options are as follows:
  • "Disable" (default)—This means that the RPM package can only be uninstalled using the Universal uninstaller. If the end user types rpm -e <packageName>, an error message displays advising them to uninstall the package in that manner. If you have configured a Product Uninstaller Launcher (in the General Information view), the end user can execute it to uninstall the package; otherwise, they would need to execute the uninstall.jar file.
  • "Enable"—This means that the end user can uninstall the package by typing rpm -e <packageName>. If you have configured a Product Uninstaller Launcher, it will be used to uninstall the package; otherwise, the uninstall.jar file will be used. If the installation was built without the Universal wizard "wrapper," then RPM will uninstall the package.
  • "Launch Universal Uninstaller"—This means that when the end user types rpm -e <packageName> to uninstall this package, the Product Uninstaller Launcher will always be used. The end user can still, of course, manually execute the uninstall.jar file.

    Warnings

    If this property is set to "Launch Universal Uninstaller" and no Product Uninstaller Launcher is configured, you will receive an error at build time, and the build will stop.

  • If you will deploy this installation as an RPM installation without the Universal wizard "wrapper," then set this property to "Enable" to enable the package to be uninstalled using just RPM. Deploying only the RPM installer does not create entries in the Universal VPD registry, so uninstalling in this manner will not cause error messages to be received nor will the uninstallation fail if uninstalling an assembly(ies) breaks a dependency(ies).

    If you will deploy this installation in its entirety, that is, include the Universal wizard, then either leave this property set to its default value of "Disable" or change it to "Launch Universal Uninstaller." Uninstallation of this package can then only be successfully accomplished by executing a Universal uninstaller because the product will have been registered in the VPD—dependencies will be checked and verified by Universal before any assembly is uninstalled, and unregistration will occur in both the VPD and RPM registries. If you uninstall the product by typing rpm -e <package name>, the Universal uninstaller will be left on the machine.

See Also