C4 Data - Installation Profile

The actual details of how to install the application, independently of its dependencies.

InstallerGlob -- __list of restricted file glob__

<app> <installprofile> <installerglob> </installerglob>

The file globs to use to find the installer when faced with a directory. This replaces the automatic discovery performed by the locate installer routine. This glob is relative to the installer root directory (typically a CD mount point, or extracted archive directory).

Note:

  • This is a list so one can more easily handle cases where the file may be in the top-level directory or a known subdirectory depending on the installation source.
  • If this is empty, we can use autorun.exe.so which generally handles CDs properly.
  • if there is a single entry containing the keyword ':stop:' then there is no expected installer. This is used for file copy only profiles and the such.

InstallerTreatAs -- string

<app> <installprofile> <installertreatas> </installertreatas>

A file basename to use to determine how to handle the installer, instead of looking at the actual installer base name. For example if the InstallerTreatAs value is 'installer.cab' it will be treated as a Cab file regardless of the actual installer basename (which could be something like 'setup.exe'). The full basename is examined which means that a value of 'autorun.inf' could be handled differently from one of 'setup.inf'.

This setting has no effect on Android.


LocalInstallerGlob -- __list of restricted file globs__

<app> <installprofile> <localinstallerglob> </localinstallerglob>

This field is meant to allow us to avoid downloading the installer for a dependency which is already available locally. So if the installer source is a directory, then we scan it using the specified glob list and use the first match we find as the installer to use.

Note:

  • For instance, to detect the on-CD DirectX installer one would use something like '<localinstallerfile>DXSETUP.exe</localinstallerfile>'.

InstallerOption -- __list of expandable strings__

<app> <installprofile> <installeroption> </installeroption>

Additional options to pass to the windows installer, one string per argument. Windows environment variable will be expanded but not Unix ones.


InstallerSilentOption -- __list of expandable strings__

<app> <installprofile> <installersilentoption> </installersilentoption>

Additional options to pass to the windows installer when performing a silent install; one string per argument.


InstallerWinVer -- string

<app> <installprofile> <installerwinver> </installerwinver>

The windows version to use to run the installer (wine's --winver option). This will change the windows version to the set value before installation and set it back to the original windows version after the installation is complete.

Valid winver values are :

  • win20
  • win30
  • win31
  • win95
  • win98
  • winme
  • nt351
  • nt40
  • win2000
  • winxp
  • win2003
  • winvista
  • win2008

InstallerDllOverrides -- string

<app> <installprofile> <installerdlloverrides> </installerdlloverrides>

A Wine DllOverrides string to use to run the installer (wine's --dll option).


InstallerEnvironment -- __list of (name, expandable value) pairs__

<app> <installprofile> <installerenvironment> <name>...</name> <value>...</value> </installerenvironment>

A list of environment variables to set before running the installer.

  • The values can make references to other environment variables so they can build on the standard Windows environment variables. However we make no guarantee about the order in which we compute them so the variables on this list should not reference each other.

PreInstallEnvironment

<app> <installprofile> <preinstallenvironment> <name>...</name> <value>...</value> </preinstallenvironment>

A list of Unix environment variables to set before running the installer.


SelfExtractThreshold -- Non-negative Integer

<app> <installprofile> <selfextractthreshold> </selfextractthreshold>

Sets a threshold for the installer file size to determine if the given installer file needs to be treated as a self-extracting installer or is the actual installer file itself. The threshold is in kilobytes. If the installer file is larger than this value it will be treated as a self extracting file. After the file is extracted the install is restarted targeting the temporary directory where the extraction took place.


SelfExtractOption -- __list of expandable strings__

<app> <installprofile> <selfextractoption> </selfextractoption>

Additional options to pass to the windows self extracting installer, one string per argument. Windows environment variable will be expanded but not Unix ones.


SelfExtractSilentOption -- __list of expandable strings__

<app> <installprofile> <selfextractsilentoption> </selfextractsilentoption>

Additional options to pass to the windows self extracting installer when performing a silent install; one string per argument.


FilesToCopy -- __list of ([restricted file glob|c4p_DataTypes#restricted-file-glob], [expandable|c4p_DataTypes#expandable-string] restricted destination path) pairs__

<app> <installprofile> <filestocopy> <glob>...</glob> <dst>...</dst> </filestocopy>

This is to allow profiles for programs which don't have installers. Such profiles will direct CrossOver to copy files into the bottle and maybe create a Start Menu shortcut for them.

Each glob is used to find the files to copy, relative to the installer root directory.

If a destination path ends with a slash or backslash, it specifies a directory to which files matching the glob will be copied. Otherwise, it specifies a specific file path to which to copy a file matching the glob. If more than one file matches a glob and the destination path is not a directory, an error results. For either kind of destination path, intermediate directories will be created.


PostInstallReboot -- __boolean__

<app> <installprofile> <postinstallreboot> </postinstallreboot>

This option indicates whether windows should be rebooted after this package's installer completes.

If not present defaults to false.


PreRmFakeDll -- list of strings

<app> <installprofile> <prermfakedll> </prermfakedll>

This specifies wine fake dlls that need to be removed before the install can successfully progress. CrossOver checks to see if the given dll files present in the bottles windows/system32 directory are windows native or wine fake stub dlls. If they are wine fake stub dlls then they are renamed to a .bak file before the install begins. If they are found to already be windows native dlls then no action is taken.


PreInstallRegistry -- list of (key path, list of ( value name, data)) tuples

<app> <installprofile> <preinstallregistry> <key>...</key> <value> <name>...</name> <data>...</data> </value> </preinstallregistry>

presently the format for the data is as follows:

  • str:<REG_SZ string> (implied if all other directives absent)
  • str(2):<REG_EXPAND_SZ string>
  • str(7):<REG_MULTI_SZ string>
  • dword:<REG_DWORD value>
  • hex:<REG_BINARY comma separated list of bytes>

LnkFile -- list of ([expandable|c4p_DataTypes#expandable-string] [restricted shortcut path|c4p_DataTypes#restricted-file-path], [expandable|c4p_DataTypes#expandable-string] [restricted target path|c4p_DataTypes#restricted-file-path], expandable workdir) tuples

<app> <installprofile> <lnkfile> <shortcut>...</shortcut> <target>...</target> </lnkfile>

Specifies a list of Windows shortcuts to be created.

Each shortcut path must start either with '%StartMenu%' or with '%Desktop%'.

Note that the '%Desktop%' designation will not work on Mac, only Linux. LnkFiles instructing the creation of %Desktop% links will be ignored when executed on a Mac.

In most cases links should be created in '%StartMenu%\%Programs%\'. The remainder of the path is relative these directories. If a shortcut already exists at that location, then the new shortcut is not created.

The workdir string specifies the directory the command should be started in.

Next Step: C4 Data - PostInstallation Profile

Last modified on 2023-09-29 20:30:39 UTC by Andrew Balfour