summaryrefslogtreecommitdiff
path: root/share/cmake-3.17/Help/cpack_gen/rpm.rst
diff options
context:
space:
mode:
Diffstat (limited to 'share/cmake-3.17/Help/cpack_gen/rpm.rst')
-rw-r--r--share/cmake-3.17/Help/cpack_gen/rpm.rst955
1 files changed, 0 insertions, 955 deletions
diff --git a/share/cmake-3.17/Help/cpack_gen/rpm.rst b/share/cmake-3.17/Help/cpack_gen/rpm.rst
deleted file mode 100644
index 2693c7b..0000000
--- a/share/cmake-3.17/Help/cpack_gen/rpm.rst
+++ /dev/null
@@ -1,955 +0,0 @@
-CPack RPM Generator
--------------------
-
-The built in (binary) CPack RPM generator (Unix only)
-
-Variables specific to CPack RPM generator
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-The CPack RPM generator may be used to create RPM packages using :module:`CPack`.
-The CPack RPM generator is a :module:`CPack` generator thus it uses the
-``CPACK_XXX`` variables used by :module:`CPack`.
-
-The CPack RPM generator has specific features which are controlled by the specifics
-``CPACK_RPM_XXX`` variables.
-
-``CPACK_RPM_<COMPONENT>_XXXX`` variables may be used in order to have
-**component** specific values. Note however that ``<COMPONENT>`` refers to the
-**grouping name** written in upper case. It may be either a component name or
-a component GROUP name. Usually those variables correspond to RPM spec file
-entities. One may find information about spec files here
-http://www.rpm.org/wiki/Docs
-
-.. note::
-
- `<COMPONENT>` part of variables is preferred to be in upper case (e.g. if
- component is named ``foo`` then use ``CPACK_RPM_FOO_XXXX`` variable name format)
- as is with other ``CPACK_<COMPONENT>_XXXX`` variables.
- For the purposes of back compatibility (CMake/CPack version 3.5 and lower)
- support for same cased component (e.g. ``fOo`` would be used as
- ``CPACK_RPM_fOo_XXXX``) is still supported for variables defined in older
- versions of CMake/CPack but is not guaranteed for variables that
- will be added in the future. For the sake of back compatibility same cased
- component variables also override upper cased versions where both are
- present.
-
-Here are some CPack RPM generator wiki resources that are here for historic
-reasons and are no longer maintained but may still prove useful:
-
- - https://gitlab.kitware.com/cmake/community/wikis/doc/cpack/Configuration
- - https://gitlab.kitware.com/cmake/community/wikis/doc/cpack/PackageGenerators#rpm-unix-only
-
-List of CPack RPM generator specific variables:
-
-.. variable:: CPACK_RPM_COMPONENT_INSTALL
-
- Enable component packaging for CPack RPM generator
-
- * Mandatory : NO
- * Default : OFF
-
- If enabled (``ON``) multiple packages are generated. By default
- a single package containing files of all components is generated.
-
-.. variable:: CPACK_RPM_PACKAGE_SUMMARY
- CPACK_RPM_<component>_PACKAGE_SUMMARY
-
- The RPM package summary.
-
- * Mandatory : YES
- * Default : :variable:`CPACK_PACKAGE_DESCRIPTION_SUMMARY`
-
-.. variable:: CPACK_RPM_PACKAGE_NAME
- CPACK_RPM_<component>_PACKAGE_NAME
-
- The RPM package name.
-
- * Mandatory : YES
- * Default : :variable:`CPACK_PACKAGE_NAME`
-
-.. variable:: CPACK_RPM_FILE_NAME
- CPACK_RPM_<component>_FILE_NAME
-
- Package file name.
-
- * Mandatory : YES
- * Default : ``<CPACK_PACKAGE_FILE_NAME>[-<component>].rpm`` with spaces
- replaced by '-'
-
- This may be set to ``RPM-DEFAULT`` to allow ``rpmbuild`` tool to generate package
- file name by itself.
- Alternatively provided package file name must end with ``.rpm`` suffix.
-
- .. note::
-
- By using user provided spec file, rpm macro extensions such as for
- generating ``debuginfo`` packages or by simply using multiple components more
- than one rpm file may be generated, either from a single spec file or from
- multiple spec files (each component execution produces its own spec file).
- In such cases duplicate file names may occur as a result of this variable
- setting or spec file content structure. Duplicate files get overwritten
- and it is up to the packager to set the variables in a manner that will
- prevent such errors.
-
-.. variable:: CPACK_RPM_MAIN_COMPONENT
-
- Main component that is packaged without component suffix.
-
- * Mandatory : NO
- * Default : -
-
- This variable can be set to any component or group name so that component or
- group rpm package is generated without component suffix in filename and
- package name.
-
-.. variable:: CPACK_RPM_PACKAGE_EPOCH
-
- The RPM package epoch
-
- * Mandatory : No
- * Default : -
-
- Optional number that should be incremented when changing versioning schemas
- or fixing mistakes in the version numbers of older packages.
-
-.. variable:: CPACK_RPM_PACKAGE_VERSION
-
- The RPM package version.
-
- * Mandatory : YES
- * Default : :variable:`CPACK_PACKAGE_VERSION`
-
-.. variable:: CPACK_RPM_PACKAGE_ARCHITECTURE
- CPACK_RPM_<component>_PACKAGE_ARCHITECTURE
-
- The RPM package architecture.
-
- * Mandatory : YES
- * Default : Native architecture output by ``uname -m``
-
- This may be set to ``noarch`` if you know you are building a ``noarch`` package.
-
-.. variable:: CPACK_RPM_PACKAGE_RELEASE
-
- The RPM package release.
-
- * Mandatory : YES
- * Default : 1
-
- This is the numbering of the RPM package itself, i.e. the version of the
- packaging and not the version of the content (see
- :variable:`CPACK_RPM_PACKAGE_VERSION`). One may change the default value if
- the previous packaging was buggy and/or you want to put here a fancy Linux
- distro specific numbering.
-
-.. note::
-
- This is the string that goes into the RPM ``Release:`` field. Some distros
- (e.g. Fedora, CentOS) require ``1%{?dist}`` format and not just a number.
- ``%{?dist}`` part can be added by setting :variable:`CPACK_RPM_PACKAGE_RELEASE_DIST`.
-
-.. variable:: CPACK_RPM_PACKAGE_RELEASE_DIST
-
- The dist tag that is added RPM ``Release:`` field.
-
- * Mandatory : NO
- * Default : OFF
-
- This is the reported ``%{dist}`` tag from the current distribution or empty
- ``%{dist}`` if RPM macro is not set. If this variable is set then RPM
- ``Release:`` field value is set to ``${CPACK_RPM_PACKAGE_RELEASE}%{?dist}``.
-
-.. variable:: CPACK_RPM_PACKAGE_LICENSE
-
- The RPM package license policy.
-
- * Mandatory : YES
- * Default : "unknown"
-
-.. variable:: CPACK_RPM_PACKAGE_GROUP
- CPACK_RPM_<component>_PACKAGE_GROUP
-
- The RPM package group.
-
- * Mandatory : YES
- * Default : "unknown"
-
-.. variable:: CPACK_RPM_PACKAGE_VENDOR
-
- The RPM package vendor.
-
- * Mandatory : YES
- * Default : CPACK_PACKAGE_VENDOR if set or "unknown"
-
-.. variable:: CPACK_RPM_PACKAGE_URL
- CPACK_RPM_<component>_PACKAGE_URL
-
- The projects URL.
-
- * Mandatory : NO
- * Default : :variable:`CMAKE_PROJECT_HOMEPAGE_URL`
-
-.. variable:: CPACK_RPM_PACKAGE_DESCRIPTION
- CPACK_RPM_<component>_PACKAGE_DESCRIPTION
-
- RPM package description.
-
- * Mandatory : YES
- * Default : :variable:`CPACK_COMPONENT_<compName>_DESCRIPTION` (component
- based installers only) if set, :variable:`CPACK_PACKAGE_DESCRIPTION_FILE`
- if set or "no package description available"
-
-.. variable:: CPACK_RPM_COMPRESSION_TYPE
-
- RPM compression type.
-
- * Mandatory : NO
- * Default : -
-
- May be used to override RPM compression type to be used to build the
- RPM. For example some Linux distribution now default to ``lzma`` or ``xz``
- compression whereas older cannot use such RPM. Using this one can enforce
- compression type to be used.
-
- Possible values are:
-
- - lzma
- - xz
- - bzip2
- - gzip
-
-.. variable:: CPACK_RPM_PACKAGE_AUTOREQ
- CPACK_RPM_<component>_PACKAGE_AUTOREQ
-
- RPM spec autoreq field.
-
- * Mandatory : NO
- * Default : -
-
- May be used to enable (``1``, ``yes``) or disable (``0``, ``no``) automatic
- shared libraries dependency detection. Dependencies are added to requires list.
-
- .. note::
-
- By default automatic dependency detection is enabled by rpm generator.
-
-.. variable:: CPACK_RPM_PACKAGE_AUTOPROV
- CPACK_RPM_<component>_PACKAGE_AUTOPROV
-
- RPM spec autoprov field.
-
- * Mandatory : NO
- * Default : -
-
- May be used to enable (``1``, ``yes``) or disable (``0``, ``no``)
- automatic listing of shared libraries that are provided by the package.
- Shared libraries are added to provides list.
-
- .. note::
-
- By default automatic provides detection is enabled by rpm generator.
-
-.. variable:: CPACK_RPM_PACKAGE_AUTOREQPROV
- CPACK_RPM_<component>_PACKAGE_AUTOREQPROV
-
- RPM spec autoreqprov field.
-
- * Mandatory : NO
- * Default : -
-
- Variable enables/disables autoreq and autoprov at the same time.
- See :variable:`CPACK_RPM_PACKAGE_AUTOREQ` and
- :variable:`CPACK_RPM_PACKAGE_AUTOPROV` for more details.
-
- .. note::
-
- By default automatic detection feature is enabled by rpm.
-
-.. variable:: CPACK_RPM_PACKAGE_REQUIRES
- CPACK_RPM_<component>_PACKAGE_REQUIRES
-
- RPM spec requires field.
-
- * Mandatory : NO
- * Default : -
-
- May be used to set RPM dependencies (requires). Note that you must enclose
- the complete requires string between quotes, for example::
-
- set(CPACK_RPM_PACKAGE_REQUIRES "python >= 2.5.0, cmake >= 2.8")
-
- The required package list of an RPM file could be printed with::
-
- rpm -qp --requires file.rpm
-
-.. variable:: CPACK_RPM_PACKAGE_CONFLICTS
- CPACK_RPM_<component>_PACKAGE_CONFLICTS
-
- RPM spec conflicts field.
-
- * Mandatory : NO
- * Default : -
-
- May be used to set negative RPM dependencies (conflicts). Note that you must
- enclose the complete requires string between quotes, for example::
-
- set(CPACK_RPM_PACKAGE_CONFLICTS "libxml2")
-
- The conflicting package list of an RPM file could be printed with::
-
- rpm -qp --conflicts file.rpm
-
-.. variable:: CPACK_RPM_PACKAGE_REQUIRES_PRE
- CPACK_RPM_<component>_PACKAGE_REQUIRES_PRE
-
- RPM spec requires(pre) field.
-
- * Mandatory : NO
- * Default : -
-
- May be used to set RPM preinstall dependencies (requires(pre)). Note that
- you must enclose the complete requires string between quotes, for example::
-
- set(CPACK_RPM_PACKAGE_REQUIRES_PRE "shadow-utils, initscripts")
-
-.. variable:: CPACK_RPM_PACKAGE_REQUIRES_POST
- CPACK_RPM_<component>_PACKAGE_REQUIRES_POST
-
- RPM spec requires(post) field.
-
- * Mandatory : NO
- * Default : -
-
- May be used to set RPM postinstall dependencies (requires(post)). Note that
- you must enclose the complete requires string between quotes, for example::
-
- set(CPACK_RPM_PACKAGE_REQUIRES_POST "shadow-utils, initscripts")
-
-.. variable:: CPACK_RPM_PACKAGE_REQUIRES_POSTUN
- CPACK_RPM_<component>_PACKAGE_REQUIRES_POSTUN
-
- RPM spec requires(postun) field.
-
- * Mandatory : NO
- * Default : -
-
- May be used to set RPM postuninstall dependencies (requires(postun)). Note
- that you must enclose the complete requires string between quotes, for
- example::
-
- set(CPACK_RPM_PACKAGE_REQUIRES_POSTUN "shadow-utils, initscripts")
-
-.. variable:: CPACK_RPM_PACKAGE_REQUIRES_PREUN
- CPACK_RPM_<component>_PACKAGE_REQUIRES_PREUN
-
- RPM spec requires(preun) field.
-
- * Mandatory : NO
- * Default : -
-
- May be used to set RPM preuninstall dependencies (requires(preun)). Note that
- you must enclose the complete requires string between quotes, for example::
-
- set(CPACK_RPM_PACKAGE_REQUIRES_PREUN "shadow-utils, initscripts")
-
-.. variable:: CPACK_RPM_PACKAGE_SUGGESTS
- CPACK_RPM_<component>_PACKAGE_SUGGESTS
-
- RPM spec suggest field.
-
- * Mandatory : NO
- * Default : -
-
- May be used to set weak RPM dependencies (suggests). Note that you must
- enclose the complete requires string between quotes.
-
-.. variable:: CPACK_RPM_PACKAGE_PROVIDES
- CPACK_RPM_<component>_PACKAGE_PROVIDES
-
- RPM spec provides field.
-
- * Mandatory : NO
- * Default : -
-
- May be used to set RPM dependencies (provides). The provided package list
- of an RPM file could be printed with::
-
- rpm -qp --provides file.rpm
-
-.. variable:: CPACK_RPM_PACKAGE_OBSOLETES
- CPACK_RPM_<component>_PACKAGE_OBSOLETES
-
- RPM spec obsoletes field.
-
- * Mandatory : NO
- * Default : -
-
- May be used to set RPM packages that are obsoleted by this one.
-
-.. variable:: CPACK_RPM_PACKAGE_RELOCATABLE
-
- build a relocatable RPM.
-
- * Mandatory : NO
- * Default : CPACK_PACKAGE_RELOCATABLE
-
- If this variable is set to TRUE or ON, the CPack RPM generator will try
- to build a relocatable RPM package. A relocatable RPM may
- be installed using::
-
- rpm --prefix or --relocate
-
- in order to install it at an alternate place see rpm(8). Note that
- currently this may fail if :variable:`CPACK_SET_DESTDIR` is set to ``ON``. If
- :variable:`CPACK_SET_DESTDIR` is set then you will get a warning message but
- if there is file installed with absolute path you'll get unexpected behavior.
-
-.. variable:: CPACK_RPM_SPEC_INSTALL_POST
-
- Deprecated - use :variable:`CPACK_RPM_SPEC_MORE_DEFINE` instead.
-
- * Mandatory : NO
- * Default : -
- * Deprecated: YES
-
- May be used to override the ``__spec_install_post`` section within the
- generated spec file. This affects the install step during package creation,
- not during package installation. For adding operations to be performed
- during package installation, use
- :variable:`CPACK_RPM_POST_INSTALL_SCRIPT_FILE` instead.
-
-.. variable:: CPACK_RPM_SPEC_MORE_DEFINE
-
- RPM extended spec definitions lines.
-
- * Mandatory : NO
- * Default : -
-
- May be used to add any ``%define`` lines to the generated spec file. An
- example of its use is to prevent stripping of executables (but note that
- this may also disable other default post install processing)::
-
- set(CPACK_RPM_SPEC_MORE_DEFINE "%define __spec_install_post /bin/true")
-
-.. variable:: CPACK_RPM_PACKAGE_DEBUG
-
- Toggle CPack RPM generator debug output.
-
- * Mandatory : NO
- * Default : -
-
- May be set when invoking cpack in order to trace debug information
- during CPack RPM run. For example you may launch CPack like this::
-
- cpack -D CPACK_RPM_PACKAGE_DEBUG=1 -G RPM
-
-.. variable:: CPACK_RPM_USER_BINARY_SPECFILE
- CPACK_RPM_<componentName>_USER_BINARY_SPECFILE
-
- A user provided spec file.
-
- * Mandatory : NO
- * Default : -
-
- May be set by the user in order to specify a USER binary spec file
- to be used by the CPack RPM generator instead of generating the file.
- The specified file will be processed by configure_file( @ONLY).
-
-.. variable:: CPACK_RPM_GENERATE_USER_BINARY_SPECFILE_TEMPLATE
-
- Spec file template.
-
- * Mandatory : NO
- * Default : -
-
- If set CPack will generate a template for USER specified binary
- spec file and stop with an error. For example launch CPack like this::
-
- cpack -D CPACK_RPM_GENERATE_USER_BINARY_SPECFILE_TEMPLATE=1 -G RPM
-
- The user may then use this file in order to hand-craft is own
- binary spec file which may be used with
- :variable:`CPACK_RPM_USER_BINARY_SPECFILE`.
-
-.. variable:: CPACK_RPM_PRE_INSTALL_SCRIPT_FILE
- CPACK_RPM_PRE_UNINSTALL_SCRIPT_FILE
-
- Path to file containing pre (un)install script.
-
- * Mandatory : NO
- * Default : -
-
- May be used to embed a pre (un)installation script in the spec file.
- The referred script file (or both) will be read and directly
- put after the ``%pre`` or ``%preun`` section
- If :variable:`CPACK_RPM_COMPONENT_INSTALL` is set to ON the (un)install
- script for each component can be overridden with
- ``CPACK_RPM_<COMPONENT>_PRE_INSTALL_SCRIPT_FILE`` and
- ``CPACK_RPM_<COMPONENT>_PRE_UNINSTALL_SCRIPT_FILE``.
- One may verify which scriptlet has been included with::
-
- rpm -qp --scripts package.rpm
-
-.. variable:: CPACK_RPM_POST_INSTALL_SCRIPT_FILE
- CPACK_RPM_POST_UNINSTALL_SCRIPT_FILE
-
- Path to file containing post (un)install script.
-
- * Mandatory : NO
- * Default : -
-
- May be used to embed a post (un)installation script in the spec file.
- The referred script file (or both) will be read and directly
- put after the ``%post`` or ``%postun`` section.
- If :variable:`CPACK_RPM_COMPONENT_INSTALL` is set to ON the (un)install
- script for each component can be overridden with
- ``CPACK_RPM_<COMPONENT>_POST_INSTALL_SCRIPT_FILE`` and
- ``CPACK_RPM_<COMPONENT>_POST_UNINSTALL_SCRIPT_FILE``.
- One may verify which scriptlet has been included with::
-
- rpm -qp --scripts package.rpm
-
-.. variable:: CPACK_RPM_USER_FILELIST
- CPACK_RPM_<COMPONENT>_USER_FILELIST
-
- * Mandatory : NO
- * Default : -
-
- May be used to explicitly specify ``%(<directive>)`` file line
- in the spec file. Like ``%config(noreplace)`` or any other directive
- that be found in the ``%files`` section. You can have multiple directives
- per line, as in ``%attr(600,root,root) %config(noreplace)``. Since
- the CPack RPM generator is generating the list of files (and directories) the
- user specified files of the ``CPACK_RPM_<COMPONENT>_USER_FILELIST`` list will
- be removed from the generated list. If referring to directories do
- not add a trailing slash.
-
-.. variable:: CPACK_RPM_CHANGELOG_FILE
-
- RPM changelog file.
-
- * Mandatory : NO
- * Default : -
-
- May be used to embed a changelog in the spec file.
- The referred file will be read and directly put after the ``%changelog``
- section.
-
-.. variable:: CPACK_RPM_EXCLUDE_FROM_AUTO_FILELIST
-
- list of path to be excluded.
-
- * Mandatory : NO
- * Default : /etc /etc/init.d /usr /usr/bin /usr/include /usr/lib
- /usr/libx32 /usr/lib64 /usr/share /usr/share/aclocal
- /usr/share/doc
-
- May be used to exclude path (directories or files) from the auto-generated
- list of paths discovered by CPack RPM. The default value contains a
- reasonable set of values if the variable is not defined by the user. If the
- variable is defined by the user then the CPack RPM generator will NOT any of
- the default path. If you want to add some path to the default list then you
- can use :variable:`CPACK_RPM_EXCLUDE_FROM_AUTO_FILELIST_ADDITION` variable.
-
-.. variable:: CPACK_RPM_EXCLUDE_FROM_AUTO_FILELIST_ADDITION
-
- additional list of path to be excluded.
-
- * Mandatory : NO
- * Default : -
-
- May be used to add more exclude path (directories or files) from the initial
- default list of excluded paths. See
- :variable:`CPACK_RPM_EXCLUDE_FROM_AUTO_FILELIST`.
-
-.. variable:: CPACK_RPM_RELOCATION_PATHS
-
- Packages relocation paths list.
-
- * Mandatory : NO
- * Default : -
-
- May be used to specify more than one relocation path per relocatable RPM.
- Variable contains a list of relocation paths that if relative are prefixed
- by the value of :variable:`CPACK_RPM_<COMPONENT>_PACKAGE_PREFIX` or by the
- value of :variable:`CPACK_PACKAGING_INSTALL_PREFIX` if the component version
- is not provided.
- Variable is not component based as its content can be used to set a different
- path prefix for e.g. binary dir and documentation dir at the same time.
- Only prefixes that are required by a certain component are added to that
- component - component must contain at least one file/directory/symbolic link
- with :variable:`CPACK_RPM_RELOCATION_PATHS` prefix for a certain relocation
- path to be added. Package will not contain any relocation paths if there are
- no files/directories/symbolic links on any of the provided prefix locations.
- Packages that either do not contain any relocation paths or contain
- files/directories/symbolic links that are outside relocation paths print
- out an ``AUTHOR_WARNING`` that RPM will be partially relocatable.
-
-.. variable:: CPACK_RPM_<COMPONENT>_PACKAGE_PREFIX
-
- Per component relocation path install prefix.
-
- * Mandatory : NO
- * Default : CPACK_PACKAGING_INSTALL_PREFIX
-
- May be used to set per component :variable:`CPACK_PACKAGING_INSTALL_PREFIX`
- for relocatable RPM packages.
-
-.. variable:: CPACK_RPM_NO_INSTALL_PREFIX_RELOCATION
- CPACK_RPM_NO_<COMPONENT>_INSTALL_PREFIX_RELOCATION
-
- Removal of default install prefix from relocation paths list.
-
- * Mandatory : NO
- * Default : CPACK_PACKAGING_INSTALL_PREFIX or CPACK_RPM_<COMPONENT>_PACKAGE_PREFIX
- are treated as one of relocation paths
-
- May be used to remove CPACK_PACKAGING_INSTALL_PREFIX and CPACK_RPM_<COMPONENT>_PACKAGE_PREFIX
- from relocatable RPM prefix paths.
-
-.. variable:: CPACK_RPM_ADDITIONAL_MAN_DIRS
-
- * Mandatory : NO
- * Default : -
-
- May be used to set additional man dirs that could potentially be compressed
- by brp-compress RPM macro. Variable content must be a list of regular
- expressions that point to directories containing man files or to man files
- directly. Note that in order to compress man pages a path must also be
- present in brp-compress RPM script and that brp-compress script must be
- added to RPM configuration by the operating system.
-
- Regular expressions that are added by default were taken from brp-compress
- RPM macro:
-
- - /usr/man/man.*
- - /usr/man/.*/man.*
- - /usr/info.*
- - /usr/share/man/man.*
- - /usr/share/man/.*/man.*
- - /usr/share/info.*
- - /usr/kerberos/man.*
- - /usr/X11R6/man/man.*
- - /usr/lib/perl5/man/man.*
- - /usr/share/doc/.*/man/man.*
- - /usr/lib/.*/man/man.*
-
-.. variable:: CPACK_RPM_DEFAULT_USER
- CPACK_RPM_<compName>_DEFAULT_USER
-
- default user ownership of RPM content
-
- * Mandatory : NO
- * Default : root
-
- Value should be user name and not UID.
- Note that <compName> must be in upper-case.
-
-.. variable:: CPACK_RPM_DEFAULT_GROUP
- CPACK_RPM_<compName>_DEFAULT_GROUP
-
- default group ownership of RPM content
-
- * Mandatory : NO
- * Default : root
-
- Value should be group name and not GID.
- Note that <compName> must be in upper-case.
-
-.. variable:: CPACK_RPM_DEFAULT_FILE_PERMISSIONS
- CPACK_RPM_<compName>_DEFAULT_FILE_PERMISSIONS
-
- default permissions used for packaged files
-
- * Mandatory : NO
- * Default : - (system default)
-
- Accepted values are lists with ``PERMISSIONS``. Valid permissions
- are:
-
- - OWNER_READ
- - OWNER_WRITE
- - OWNER_EXECUTE
- - GROUP_READ
- - GROUP_WRITE
- - GROUP_EXECUTE
- - WORLD_READ
- - WORLD_WRITE
- - WORLD_EXECUTE
-
- Note that <compName> must be in upper-case.
-
-.. variable:: CPACK_RPM_DEFAULT_DIR_PERMISSIONS
- CPACK_RPM_<compName>_DEFAULT_DIR_PERMISSIONS
-
- default permissions used for packaged directories
-
- * Mandatory : NO
- * Default : - (system default)
-
- Accepted values are lists with PERMISSIONS. Valid permissions
- are the same as for :variable:`CPACK_RPM_DEFAULT_FILE_PERMISSIONS`.
- Note that <compName> must be in upper-case.
-
-.. variable:: CPACK_RPM_INSTALL_WITH_EXEC
-
- force execute permissions on programs and shared libraries
-
- * Mandatory : NO
- * Default : - (system default)
-
- Force set owner, group and world execute permissions on programs and shared
- libraries. This can be used for creating valid rpm packages on systems such
- as Debian where shared libraries do not have execute permissions set.
-
-.. note::
-
- Programs and shared libraries without execute permissions are ignored during
- separation of debug symbols from the binary for debuginfo packages.
-
-Packaging of Symbolic Links
-^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-The CPack RPM generator supports packaging of symbolic links::
-
- execute_process(COMMAND ${CMAKE_COMMAND}
- -E create_symlink <relative_path_location> <symlink_name>)
- install(FILES ${CMAKE_CURRENT_BINARY_DIR}/<symlink_name>
- DESTINATION <symlink_location> COMPONENT libraries)
-
-Symbolic links will be optimized (paths will be shortened if possible)
-before being added to the package or if multiple relocation paths are
-detected, a post install symlink relocation script will be generated.
-
-Symbolic links may point to locations that are not packaged by the same
-package (either a different component or even not packaged at all) but
-those locations will be treated as if they were a part of the package
-while determining if symlink should be either created or present in a
-post install script - depending on relocation paths.
-
-Symbolic links that point to locations outside packaging path produce a
-warning and are treated as non relocatable permanent symbolic links.
-
-Currently there are a few limitations though:
-
-* For component based packaging component interdependency is not checked
- when processing symbolic links. Symbolic links pointing to content of
- a different component are treated the same way as if pointing to location
- that will not be packaged.
-
-* Symbolic links pointing to a location through one or more intermediate
- symbolic links will not be handled differently - if the intermediate
- symbolic link(s) is also on a relocatable path, relocating it during
- package installation may cause initial symbolic link to point to an
- invalid location.
-
-Packaging of debug information
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-Debuginfo packages contain debug symbols and sources for debugging packaged
-binaries.
-
-Debuginfo RPM packaging has its own set of variables:
-
-.. variable:: CPACK_RPM_DEBUGINFO_PACKAGE
- CPACK_RPM_<component>_DEBUGINFO_PACKAGE
-
- Enable generation of debuginfo RPM package(s).
-
- * Mandatory : NO
- * Default : OFF
-
-.. note::
-
- Binaries must contain debug symbols before packaging so use either ``Debug``
- or ``RelWithDebInfo`` for :variable:`CMAKE_BUILD_TYPE` variable value.
-
-.. note::
-
- Packages generated from packages without binary files, with binary files but
- without execute permissions or without debug symbols will cause packaging
- termination.
-
-.. variable:: CPACK_BUILD_SOURCE_DIRS
-
- Provides locations of root directories of source files from which binaries
- were built.
-
- * Mandatory : YES if :variable:`CPACK_RPM_DEBUGINFO_PACKAGE` is set
- * Default : -
-
-.. note::
-
- For CMake project :variable:`CPACK_BUILD_SOURCE_DIRS` is set by default to
- point to :variable:`CMAKE_SOURCE_DIR` and :variable:`CMAKE_BINARY_DIR` paths.
-
-.. note::
-
- Sources with path prefixes that do not fall under any location provided with
- :variable:`CPACK_BUILD_SOURCE_DIRS` will not be present in debuginfo package.
-
-.. variable:: CPACK_RPM_BUILD_SOURCE_DIRS_PREFIX
- CPACK_RPM_<component>_BUILD_SOURCE_DIRS_PREFIX
-
- Prefix of location where sources will be placed during package installation.
-
- * Mandatory : YES if :variable:`CPACK_RPM_DEBUGINFO_PACKAGE` is set
- * Default : "/usr/src/debug/<CPACK_PACKAGE_FILE_NAME>" and
- for component packaging "/usr/src/debug/<CPACK_PACKAGE_FILE_NAME>-<component>"
-
-.. note::
-
- Each source path prefix is additionally suffixed by ``src_<index>`` where
- index is index of the path used from :variable:`CPACK_BUILD_SOURCE_DIRS`
- variable. This produces ``<CPACK_RPM_BUILD_SOURCE_DIRS_PREFIX>/src_<index>``
- replacement path.
- Limitation is that replaced path part must be shorter or of equal
- length than the length of its replacement. If that is not the case either
- :variable:`CPACK_RPM_BUILD_SOURCE_DIRS_PREFIX` variable has to be set to
- a shorter path or source directories must be placed on a longer path.
-
-.. variable:: CPACK_RPM_DEBUGINFO_EXCLUDE_DIRS
-
- Directories containing sources that should be excluded from debuginfo packages.
-
- * Mandatory : NO
- * Default : "/usr /usr/src /usr/src/debug"
-
- Listed paths are owned by other RPM packages and should therefore not be
- deleted on debuginfo package uninstallation.
-
-.. variable:: CPACK_RPM_DEBUGINFO_EXCLUDE_DIRS_ADDITION
-
- Paths that should be appended to :variable:`CPACK_RPM_DEBUGINFO_EXCLUDE_DIRS`
- for exclusion.
-
- * Mandatory : NO
- * Default : -
-
-.. variable:: CPACK_RPM_DEBUGINFO_SINGLE_PACKAGE
-
- Create a single debuginfo package even if components packaging is set.
-
- * Mandatory : NO
- * Default : OFF
-
- When this variable is enabled it produces a single debuginfo package even if
- component packaging is enabled.
-
- When using this feature in combination with components packaging and there is
- more than one component this variable requires :variable:`CPACK_RPM_MAIN_COMPONENT`
- to be set.
-
-.. note::
-
- If none of the :variable:`CPACK_RPM_<component>_DEBUGINFO_PACKAGE` variables
- is set then :variable:`CPACK_RPM_DEBUGINFO_PACKAGE` is automatically set to
- ``ON`` when :variable:`CPACK_RPM_DEBUGINFO_SINGLE_PACKAGE` is set.
-
-.. variable:: CPACK_RPM_DEBUGINFO_FILE_NAME
- CPACK_RPM_<component>_DEBUGINFO_FILE_NAME
-
- Debuginfo package file name.
-
- * Mandatory : NO
- * Default : rpmbuild tool generated package file name
-
- Alternatively provided debuginfo package file name must end with ``.rpm``
- suffix and should differ from file names of other generated packages.
-
- Variable may contain ``@cpack_component@`` placeholder which will be
- replaced by component name if component packaging is enabled otherwise it
- deletes the placeholder.
-
- Setting the variable to ``RPM-DEFAULT`` may be used to explicitly set
- filename generation to default.
-
-.. note::
-
- :variable:`CPACK_RPM_FILE_NAME` also supports rpmbuild tool generated package
- file name - disabled by default but can be enabled by setting the variable to
- ``RPM-DEFAULT``.
-
-Packaging of sources (SRPM)
-^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-SRPM packaging is enabled by setting :variable:`CPACK_RPM_PACKAGE_SOURCES`
-variable while usually using :variable:`CPACK_INSTALLED_DIRECTORIES` variable
-to provide directory containing CMakeLists.txt and source files.
-
-For CMake projects SRPM package would be produced by executing::
-
- cpack -G RPM --config ./CPackSourceConfig.cmake
-
-.. note::
-
- Produced SRPM package is expected to be built with :manual:`cmake(1)` executable
- and packaged with :manual:`cpack(1)` executable so CMakeLists.txt has to be
- located in root source directory and must be able to generate binary rpm
- packages by executing ``cpack -G`` command. The two executables as well as
- rpmbuild must also be present when generating binary rpm packages from the
- produced SRPM package.
-
-Once the SRPM package is generated it can be used to generate binary packages
-by creating a directory structure for rpm generation and executing rpmbuild
-tool::
-
- mkdir -p build_dir/{BUILD,BUILDROOT,RPMS,SOURCES,SPECS,SRPMS}
- rpmbuild --define "_topdir <path_to_build_dir>" --rebuild <SRPM_file_name>
-
-Generated packages will be located in build_dir/RPMS directory or its sub
-directories.
-
-.. note::
-
- SRPM package internally uses CPack/RPM generator to generate binary packages
- so CMakeScripts.txt can decide during the SRPM to binary rpm generation step
- what content the package(s) should have as well as how they should be packaged
- (monolithic or components). CMake can decide this for e.g. by reading environment
- variables set by the package manager before starting the process of generating
- binary rpm packages. This way a single SRPM package can be used to produce
- different binary rpm packages on different platforms depending on the platform's
- packaging rules.
-
-Source RPM packaging has its own set of variables:
-
-.. variable:: CPACK_RPM_PACKAGE_SOURCES
-
- Should the content be packaged as a source rpm (default is binary rpm).
-
- * Mandatory : NO
- * Default : OFF
-
-.. note::
-
- For cmake projects :variable:`CPACK_RPM_PACKAGE_SOURCES` variable is set
- to ``OFF`` in CPackConfig.cmake and ``ON`` in CPackSourceConfig.cmake
- generated files.
-
-.. variable:: CPACK_RPM_SOURCE_PKG_BUILD_PARAMS
-
- Additional command-line parameters provided to :manual:`cmake(1)` executable.
-
- * Mandatory : NO
- * Default : -
-
-.. variable:: CPACK_RPM_SOURCE_PKG_PACKAGING_INSTALL_PREFIX
-
- Packaging install prefix that would be provided in :variable:`CPACK_PACKAGING_INSTALL_PREFIX`
- variable for producing binary RPM packages.
-
- * Mandatory : YES
- * Default : "/"
-
-.. VARIABLE:: CPACK_RPM_BUILDREQUIRES
-
- List of source rpm build dependencies.
-
- * Mandatory : NO
- * Default : -
-
- May be used to set source RPM build dependencies (BuildRequires). Note that
- you must enclose the complete build requirements string between quotes, for
- example::
-
- set(CPACK_RPM_BUILDREQUIRES "python >= 2.5.0, cmake >= 2.8")