|
@@ -0,0 +1,955 @@
|
|
|
+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
|
|
|
+:code:`CPACK_RPM_XXX` variables.
|
|
|
+
|
|
|
+:code:`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 (for 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 it's 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 it's 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 it's 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")
|