conf

The “conf” folder contains special configurations including some information which cannot be described in the INFO file with key/pair format. Package Center controls the flow of installation, upgrading, un-installation, starting, and stopping processes according to these configurations.

In DSM 4.2, there are two configurations, PKG_DEPS and PKG_CONX, which are stored in this folder. They are used to define dependency or conflict between the packages. The dependency or conflict will be checked according to the end user’s DSM version. For example, Perl was built on DSM 4.1, but it does not exist on DSM 4.2. Therefore, if your package depends on Perl, the Perl package must be installed on DSM 4.2 before your package can be installed. You can set the PKG_DEPS configuration to indicate that the dependency rule only works on DSM 4.2 or later.

The dependency or conflict is similar to install_dep_packages and install_conflict_packages keys in INFO file, but they do not define the restriction according to specific DSM versions.

PKG_DEPS and PKG_CONX always have higher priority compared with the keys in the INFO file. That is, if you define dependency in the PKG_DEPS file, then the install_dep_packages key in the INFO file will be ignored in DSM 4.2 or later. If you define the conflict in the PKG_CONX file, then the install_conflict_packages key in the INFO file will be ignored in DSM 4.2 or later.

The conf folder contains the following files:

File/Folder Name Description File/Folder Type DSM Requirement
PKG_DEPS Define dependency between packages with restrictions of DSM version. Before your package is installed or upgraded, these packages must be installed first. Package Center controls the order of start or stop packages according to the dependency. File 4.2-3160
PKG_CONX Define conflicts between packages with restrictions of DSM version. Before your package is installed or upgraded, these conflicting packages cannot be installed. File 4.2-3160

Note: All words are case sensitive.

Each configuration file is defined in standard .ini file format with key/value pairs and sessions, for example:

[session]

A session describes a unique name of dependent/conflicting package. Each session contains information about the requirements of package versions and the restriction of DSM versions.

  • Keys configured in PKG_DEPS file each dependent package (session) contains:
Key Description Value
pkg_min_ver Minimum version of dependent package. You must install this dependent package with this version or newer before installing your package. Package version
pkg_max_ver Maximum version of dependent package. You must install this dependent package with the version or older before installing your package. Package version
dsm_min_ver Minimum required DSM version. If you have this version or newer of DSM, this dependency will be considered, but it will be ignored in an older DSM. X.Y-Z
DSM major number, DSM minor number, DSM build number
dsm_max_ver Maximum required DSM version. If you have this version or older of DSM, this dependency will be considered, but it will be ignored in a newer DSM. X.Y-Z
DSM major number, DSM minor number, DSM build number

Example:

; Your package depends on Package A in any version
[Package A]

; Your package depends on Package B version 2 or newer
pkg_min_ver=2

; Your package depends on Package C with version 2 or older
[Package C]
pkg_max_ver=2

; Your package depends on Package D with version 2 or older but it will be ignored when DSM version is older than 4.1-2668
[Package D]
dsm_min_ver=4.1-2668
pkg_min_ver=2

; Your package depends on Package E with version 2 or newer but it will be ignored when DSM version is newer than 4.1-2668
[Package E]
dsm_max_ver=4.1-2668
pkg_min_ver=2
  • Keys configured in PKG_CONX file each conflicting package (session) contain:
Key Description Value
pkg_min_ver Minimum version of conflicting package. If end user installs this conflicting package with the specified version or newer, he will not be able to install your package. Package Version
pkg_max_ver Maximum version of conflicting package. If end user installs this conflicting package with the specified version or older, he will not be able to install your package. Package Version
dsm_min_ver Minimum requried DSM version. If end user has the specified version or newer of DSM, this conflict will be considered, but it will be ignored in older versions of DSM. X.Y-Z
DSM major number, DSM minor number, DSM build number
dsm_max_ver Maximum requried DSM version. If the end user has the specified version or older of DSM, this conflict will be considered, but it will be ignored in newer DSM. X.Y-Z
DSM major number, DSM minor number, DSM build number

Example:

; Your package conflicts with Package A in any version
[Package A]

; Your package conflicts with Package B version 2 or newer
[Package B]
pkg_min_ver=2

; Your package conflicts with Package C version 2 or older
[Package C]
pkg_max_ver=2

; Your package conflicts with Package D version 2 or older, but it will be ignored when DSM version is older than 4.1-2668
[Package D]
dsm_min_ver=4.1-2668
pkg_min_ver=2

; Your package conflict on Package E with version 2 or newer but it will be ignored when DSM version is newer than 4.1-2668
[Package E]
dsm_max_ver=4.1-2668
pkg_min_ver=2