CPackRPM
Встроенный (бинарный) генератор пакетов CPack RPM (только для Unix)
Переменные, специфичные для генератора CPack RPM
CPackRPM может использоваться для создания пакетов RPM с использованием CPack. CPackRPM является CPack генератором, поэтому он использует переменные CPACK_XXX, используемые CPack.
CPackRPM обладает специфическими функциями, которые контролируются переменными CPACK_RPM_XXX.
Переменные CPACK_RPM_<COMPONENT>_XXXX могут использоваться для получения значений, специфичных для компонента. Обратите внимание, что <COMPONENT> относится к названию группы, записанной заглавными буквами. Это может быть имя компонента или имя группы компонентов. Обычно эти переменные соответствуют сущностям файлов спецификаций RPM. Информацию о файлах спецификаций можно найти здесь http://www.rpm.org/wiki/Docs
Примечание
Часть переменных предпочтительно записывать заглавными буквами (например, если компонент называется foo, используйте имя переменной CPACK_RPM_FOO_XXXX). Так же как и другие переменные CPACK_<COMPONENT>_XXXX. Для обеспечения обратной совместимости (CMake/CPack версии 3.5 и ниже) поддерживается использование переменных с именами компонентов в том же регистре (например, fOo, что эквивалентно CPACK_RPM_fOo_XXXX). Такие переменные, определенные в старых версиях CMake/CPack, по-прежнему поддерживаются для обеспечения обратной совместимости, но не гарантируется поддержка для переменных, которые будут добавлены в будущем. В целях обратной совместимости переменные с компонентами в нижнем регистре также переопределяют переменные с компонентами в верхнем регистре, если оба присутствуют.
Вот некоторые ресурсы вики CPackRPM, которые присутствуют по историческим причинам, больше не поддерживаются, но все еще могут быть полезны:
- https://cmake.org/Wiki/CMake:CPackConfiguration
- https://cmake.org/Wiki/CMake:CPackPackageGenerators#RPM_.28Unix_Only.29
Список переменных, специфичных для CPackRPM:
-
CPACK_RPM_COMPONENT_INSTALL -
Включить компонентную упаковку для CPackRPM
- Обязательно : НЕТ
- По умолчанию : ВЫКЛ.
Если включено (ВКЛ.), генерируется несколько пакетов. По умолчанию генерируется один пакет, содержащий файлы всех компонентов.
-
CPACK_RPM_PACKAGE_SUMMARY -
CPACK_RPM_<component>_PACKAGE_SUMMARY -
Резюме пакета RPM.
- Обязательно : ДА
- По умолчанию :
CPACK_PACKAGE_DESCRIPTION_SUMMARY
-
CPACK_RPM_PACKAGE_NAME -
CPACK_RPM_<component>_PACKAGE_NAME -
Имя пакета RPM.
- Обязательно : ДА
- По умолчанию :
CPACK_PACKAGE_NAME
-
CPACK_RPM_FILE_NAME -
CPACK_RPM_<component>_FILE_NAME -
Имя файла пакета.
- Обязательно : ДА
-
-
Default : <CPACK_PACKAGE_FILE_NAME>[-<component>].rpm with spaces -
заменяется на ‘-’
-
Может быть установлено в
RPM-DEFAULT, чтобы позволить инструменту rpmbuild генерировать имя файла пакета самостоятельно. В противном случае, имя файла пакета должно заканчиваться на.rpm.Примечание
Используя предоставленный пользователем файл спецификации, можно использовать расширения макросов rpm, например, для генерации пакетов debuginfo или просто для использования нескольких компонентов, для создания нескольких файлов rpm, либо из одного файла спецификации, либо из нескольких файлов спецификаций (каждое выполнение компонента создает свой собственный файл спецификации). В таких случаях могут возникнуть дублирующиеся имена файлов в результате установки этой переменной или структуры содержимого файла спецификации. Дублирующиеся файлы перезаписываются, и разработчик пакета должен установить переменные таким образом, чтобы избежать подобных ошибок.
-
CPACK_RPM_MAIN_COMPONENT -
Основной компонент, упаковываемый без суффикса компонента.
- Обязательно : НЕТ
- По умолчанию : -
Эта переменная может быть установлена в любое имя компонента или группы, чтобы сгенерировать пакет rpm компонента или группы без суффикса компонента в имени файла и имени пакета.
-
CPACK_RPM_PACKAGE_EPOCH -
Эпоха пакета RPM
- Обязательно : Нет
- По умолчанию : -
Необязательное число, которое следует увеличивать при изменении схем версионирования или исправлении ошибок в номерах версий старых пакетов.
-
CPACK_RPM_PACKAGE_VERSION -
Версия пакета RPM.
- Обязательно : ДА
- По умолчанию :
CPACK_PACKAGE_VERSION
-
CPACK_RPM_PACKAGE_ARCHITECTURE -
CPACK_RPM_<component>_PACKAGE_ARCHITECTURE -
Архитектура пакета RPM.
- Обязательно : ДА
- По умолчанию : Родная архитектура, выводимая
uname -m
Можно установить значение
noarch, если вы знаете, что создаёте пакет noarch.
-
CPACK_RPM_PACKAGE_RELEASE -
Релиз пакета RPM.
- Обязательно : ДА
- По умолчанию : 1
Это номер самого пакета RPM, то есть версия пакета, а не версия содержимого (см.
CPACK_RPM_PACKAGE_VERSION). Можно изменить значение по умолчанию, если предыдущая упаковка была с ошибками и/или вы хотите использовать специфическую нумерацию для конкретного дистрибутива Linux.
Примечание
Это строка, которая попадает в поле RPM Release:. Некоторые дистрибутивы (например, Fedora, CentOS) требуют формата 1%{?dist}, а не просто числа. Часть %{?dist} может быть добавлена, установив CPACK_RPM_PACKAGE_RELEASE_DIST.
-
CPACK_RPM_PACKAGE_RELEASE_DIST -
Тег dist, который добавляется в поле RPM
Release:.- Обязательно : НЕТ
- По умолчанию : ВЫКЛ.
Это отчётный тег
%{dist}текущего дистрибутива или пустой%{dist}если макрос RPM не установлен. Если эта переменная установлена, то значение поля RPMRelease:устанавливается в${CPACK_RPM_PACKAGE_RELEASE}%{?dist}.
-
CPACK_RPM_PACKAGE_LICENSE -
Политика лицензирования пакета RPM.
- Обязательно : ДА
- По умолчанию : “unknown”
-
CPACK_RPM_PACKAGE_GROUP -
CPACK_RPM_<component>_PACKAGE_GROUP -
Группа пакета RPM.
- Обязательно : ДА
- По умолчанию : “unknown”
-
CPACK_RPM_PACKAGE_VENDOR -
Производитель пакета RPM.
- Обязательно : ДА
- По умолчанию : CPACK_PACKAGE_VENDOR, если установлено, или “unknown”
-
CPACK_RPM_PACKAGE_URL -
CPACK_RPM_<component>_PACKAGE_URL -
URL проекта.
- Обязательно : НЕТ
- По умолчанию : -
-
CPACK_RPM_PACKAGE_DESCRIPTION -
CPACK_RPM_<component>_PACKAGE_DESCRIPTION -
Описание пакета RPM.
- Обязательно : ДА
- По умолчанию :
CPACK_COMPONENT_<compName>_DESCRIPTION(только для установочных программ на основе компонентов), если установлено,CPACK_PACKAGE_DESCRIPTION_FILEесли установлено, или “Описание пакета недоступно”
-
CPACK_RPM_COMPRESSION_TYPE -
Тип сжатия RPM.
- Обязательно : НЕТ
- По умолчанию : -
Может использоваться для переопределения типа сжатия RPM, используемого при построении RPM. Например, некоторые дистрибутивы Linux теперь по умолчанию используют сжатие lzma или xz, в то время как старые не могут использовать такие RPM. Используя эту переменную, можно принудительно использовать определенный тип сжатия.
Возможные значения:
- lzma
- xz
- bzip2
- gzip
-
CPACK_RPM_PACKAGE_AUTOREQ -
CPACK_RPM_<component>_PACKAGE_AUTOREQ -
Поле autoreq спецификации RPM.
- Обязательно : НЕТ
- По умолчанию : -
Может использоваться для включения (1, да) или отключения (0, нет) автоматического обнаружения зависимостей общих библиотек. Зависимости добавляются в список требований.
Примечание
По умолчанию автоматическое обнаружение зависимостей включено генератором rpm.
-
CPACK_RPM_PACKAGE_AUTOPROV -
CPACK_RPM_<component>_PACKAGE_AUTOPROV -
Поле авто-привязки RPM-спецификации.
- Обязательное : НЕТ
- По умолчанию : -
Может использоваться для включения (1, да) или отключения (0, нет) автоматического добавления в список предоставленных пакетом общих библиотек. Общие библиотеки добавляются в список предоставляемых.
Примечание
По умолчанию, автоматическое обнаружение предоставленных библиотек включено генератором rpm.
-
CPACK_RPM_PACKAGE_AUTOREQPROV -
CPACK_RPM_<component>_PACKAGE_AUTOREQPROV -
Поле авто-привязки RPM-спецификации (autoreqprov).
- Обязательное : НЕТ
- По умолчанию : -
Переменная включает/отключает autoreq и autoprov одновременно. Для получения более подробной информации см.
CPACK_RPM_PACKAGE_AUTOREQиCPACK_RPM_PACKAGE_AUTOPROV.Примечание
По умолчанию, автоматическое обнаружение функций включено в rpm.
-
CPACK_RPM_PACKAGE_REQUIRES -
CPACK_RPM_<component>_PACKAGE_REQUIRES -
Поле зависимостей RPM-спецификации (requires).
- Обязательное : НЕТ
- По умолчанию : -
Может использоваться для установки зависимостей RPM (requires). Обратите внимание, что вам необходимо заключить полную строку зависимостей в кавычки, например:
set(CPACK_RPM_PACKAGE_REQUIRES "python >= 2.5.0, cmake >= 2.8")
Список необходимых пакетов файла RPM можно вывести с помощью:
rpm -qp --requires file.rpm
-
CPACK_RPM_PACKAGE_CONFLICTS -
CPACK_RPM_<component>_PACKAGE_CONFLICTS -
Поле конфликтов RPM-спецификации (conflicts).
- Обязательное : НЕТ
- По умолчанию : -
Может использоваться для установки отрицательных зависимостей RPM (conflicts). Обратите внимание, что вам необходимо заключить полную строку зависимостей в кавычки, например:
set(CPACK_RPM_PACKAGE_CONFLICTS "libxml2")
Список конфликтующих пакетов файла RPM можно вывести с помощью:
rpm -qp --conflicts file.rpm
-
CPACK_RPM_PACKAGE_REQUIRES_PRE -
CPACK_RPM_<component>_PACKAGE_REQUIRES_PRE -
Поле зависимостей RPM-спецификации (requires(pre)).
- Обязательное : НЕТ
- По умолчанию : -
Может использоваться для установки предварительных зависимостей RPM (requires(pre)). Обратите внимание, что вам необходимо заключить полную строку зависимостей в кавычки, например:
set(CPACK_RPM_PACKAGE_REQUIRES_PRE "shadow-utils, initscripts")
-
CPACK_RPM_PACKAGE_REQUIRES_POST -
CPACK_RPM_<component>_PACKAGE_REQUIRES_POST -
Поле зависимостей RPM-спецификации (requires(post)).
- Обязательное : НЕТ
- По умолчанию : -
Может использоваться для установки зависимостей RPM после установки (requires(post)). Обратите внимание, что вам необходимо заключить полную строку зависимостей в кавычки, например:
set(CPACK_RPM_PACKAGE_REQUIRES_POST "shadow-utils, initscripts")
-
CPACK_RPM_PACKAGE_REQUIRES_POSTUN -
CPACK_RPM_<component>_PACKAGE_REQUIRES_POSTUN -
Поле зависимостей RPM-спецификации (requires(postun)).
- Обязательное : НЕТ
- По умолчанию : -
Может использоваться для установки зависимостей RPM после удаления (requires(postun)). Обратите внимание, что вам необходимо заключить полную строку зависимостей в кавычки, например:
set(CPACK_RPM_PACKAGE_REQUIRES_POSTUN "shadow-utils, initscripts")
-
CPACK_RPM_PACKAGE_REQUIRES_PREUN -
CPACK_RPM_<component>_PACKAGE_REQUIRES_PREUN -
Поле зависимостей RPM-спецификации (requires(preun)).
- Обязательное : НЕТ
- По умолчанию : -
Может использоваться для установки предварительных зависимостей RPM при удалении (requires(preun)). Обратите внимание, что вам необходимо заключить полную строку зависимостей в кавычки, например:
set(CPACK_RPM_PACKAGE_REQUIRES_PREUN "shadow-utils, initscripts")
-
CPACK_RPM_PACKAGE_SUGGESTS -
CPACK_RPM_<component>_PACKAGE_SUGGESTS -
Поле рекомендаций RPM-спецификации (suggests).
- Обязательное : НЕТ
- По умолчанию : -
Может использоваться для установки слабых зависимостей RPM (suggests). Обратите внимание, что вам необходимо заключить полную строку зависимостей в кавычки.
-
CPACK_RPM_PACKAGE_PROVIDES -
CPACK_RPM_<component>_PACKAGE_PROVIDES -
Поле предоставляемых пакетов RPM-спецификации (provides).
- Обязательное : НЕТ
- По умолчанию : -
Может использоваться для установки зависимостей RPM (provides). Список предоставляемых пакетов файла RPM можно вывести с помощью:
rpm -qp --provides file.rpm
-
CPACK_RPM_PACKAGE_OBSOLETES -
CPACK_RPM_<component>_PACKAGE_OBSOLETES -
Поле устаревших пакетов RPM-спецификации (obsoletes).
- Обязательное : НЕТ
- По умолчанию : -
Может использоваться для установки пакетов RPM, которые устарели в этом.
-
CPACK_RPM_PACKAGE_RELOCATABLE -
Сборка переносимого RPM-пакета.
- Обязательное : НЕТ
- По умолчанию : CPACK_PACKAGE_RELOCATABLE
Если эта переменная установлена в TRUE или ON, CPackRPM попытается создать переносимый RPM-пакет. Переносимый RPM-пакет можно установить с помощью:
rpm --prefix or --relocate
Чтобы установить его в другом месте, см. rpm(8). В настоящее время это может не сработать, если
CPACK_SET_DESTDIRустановлено вON. ЕслиCPACK_SET_DESTDIRустановлено, будет выведено сообщение об ошибке, но если установлен файл с абсолютным путем, произойдёт непредсказуемое поведение.
-
CPACK_RPM_SPEC_INSTALL_POST -
Устарело - используйте
CPACK_RPM_POST_INSTALL_SCRIPT_FILEвместо этого.- Обязательное : НЕТ
- По умолчанию : -
- Устарело: ДА
Этот способ указания скрипта после установки устарел, используйте
CPACK_RPM_POST_INSTALL_SCRIPT_FILE. Может использоваться для установки команды после установки RPM в файле спецификации. Например, установкой в/bin/trueможно предотвратить stripping бинарных файлов rpmbuild.
-
CPACK_RPM_SPEC_MORE_DEFINE -
Дополнительные строки определения спецификаций RPM.
- Обязательное : НЕТ
- По умолчанию : -
Может использоваться для добавления любых
%defineстрок в сгенерированный файл спецификации.
-
CPACK_RPM_PACKAGE_DEBUG -
Включение отладки вывода CPackRPM.
- Обязательное : НЕТ
- По умолчанию : -
Может быть установлено при вызове cpack для отслеживания отладочной информации во время выполнения CPack RPM. Например, вы можете запустить CPack следующим образом:
cpack -D CPACK_RPM_PACKAGE_DEBUG=1 -G RPM
-
CPACK_RPM_USER_BINARY_SPECFILE -
CPACK_RPM_<componentName>_USER_BINARY_SPECFILE -
Пользовательский файл спецификации.
- Обязательное : НЕТ
- По умолчанию : -
Может быть задано пользователем для указания пользовательского файла спецификации двоичного файла для использования CPackRPM вместо генерации файла. Указанный файл будет обработан configure_file( @ONLY).
-
CPACK_RPM_GENERATE_USER_BINARY_SPECFILE_TEMPLATE -
Шаблон файла спецификации.
- Обязательное : НЕТ
- По умолчанию : -
Если установлено, CPack сгенерирует шаблон для пользовательского указанного файла спецификации двоичного файла и завершится с ошибкой. Например, запустите CPack следующим образом:
cpack -D CPACK_RPM_GENERATE_USER_BINARY_SPECFILE_TEMPLATE=1 -G RPM
Затем пользователь может использовать этот файл для создания собственного файла спецификации двоичного файла, который можно использовать с
CPACK_RPM_USER_BINARY_SPECFILE.
-
CPACK_RPM_PRE_INSTALL_SCRIPT_FILE -
CPACK_RPM_PRE_UNINSTALL_SCRIPT_FILE -
Путь к файлу, содержащему скрипт предварительной (ра)установки.
- Обязательное : НЕТ
- По умолчанию : -
Может использоваться для вставки скрипта предварительной (ра)установки в файл спецификации. Ссылаемый скрипт-файл (или оба) будет прочитан и непосредственно помещен после
%preили%preunраздела. ЕслиCPACK_RPM_COMPONENT_INSTALLустановлено в ВКЛ, скрипт (ра)установки для каждого компонента можно переопределить с помощьюCPACK_RPM_<COMPONENT>_PRE_INSTALL_SCRIPT_FILEиCPACK_RPM_<COMPONENT>_PRE_UNINSTALL_SCRIPT_FILE. Можно проверить, какой скрипт был включен с помощью:rpm -qp --scripts package.rpm
-
CPACK_RPM_POST_INSTALL_SCRIPT_FILE -
CPACK_RPM_POST_UNINSTALL_SCRIPT_FILE -
Путь к файлу, содержащему скрипт пост (ра)установки.
- Обязательное : НЕТ
- По умолчанию : -
Может использоваться для вставки скрипта пост (ра)установки в файл спецификации. Ссылаемый скрипт-файл (или оба) будут прочитаны и непосредственно помещены после
%postили%postunраздела. ЕслиCPACK_RPM_COMPONENT_INSTALLустановлено в ВКЛ, скрипт (ра)установки для каждого компонента можно переопределить с помощьюCPACK_RPM_<COMPONENT>_POST_INSTALL_SCRIPT_FILEиCPACK_RPM_<COMPONENT>_POST_UNINSTALL_SCRIPT_FILE. Можно проверить, какой скрипт был включен с помощью:rpm -qp --scripts package.rpm
-
CPACK_RPM_USER_FILELIST -
CPACK_RPM_<COMPONENT>_USER_FILELIST -
- Обязательное поле: НЕТ
- Значение по умолчанию: —
Может быть использовано для явного указания строки файла
%(<directive>)в файле спецификаций. Например,%config(noreplace)или любой другой директивы, которая может быть найдена в разделе%files. Можно указывать несколько директив в одной строке, как в%attr(600,root,root) %config(noreplace). Так как CPackRPM генерирует список файлов (и каталогов), файлы, указанные пользователем в спискеCPACK_RPM_<COMPONENT>_USER_FILELIST, будут удалены из сгенерированного списка. Если вы ссылаетесь на каталоги, не добавляйте конечный слэш.
-
CPACK_RPM_CHANGELOG_FILE -
Файл changelog для RPM.
- Обязательное поле: НЕТ
- Значение по умолчанию: —
Может быть использован для вставки changelog в файл спецификаций. Указанный файл будет прочитан и помещен непосредственно после раздела
%changelog.
-
CPACK_RPM_EXCLUDE_FROM_AUTO_FILELIST -
Список путей, которые нужно исключить.
- Обязательное поле: НЕТ
-
-
Default : /etc /etc/init.d /usr /usr/bin /usr/include /usr/lib - /usr/libx32 /usr/lib64 /usr/share /usr/share/aclocal /usr/share/doc
-
Может быть использован для исключения путей (каталогов или файлов) из автоматически сгенерированного списка путей, обнаруженных CPack RPM. Значение по умолчанию содержит разумный набор значений, если переменная не определена пользователем. Если переменная определена пользователем, CPackRPM не будет использовать значения по умолчанию. Если вы хотите добавить пути к списку по умолчанию, можно использовать переменную
CPACK_RPM_EXCLUDE_FROM_AUTO_FILELIST_ADDITION.
-
CPACK_RPM_EXCLUDE_FROM_AUTO_FILELIST_ADDITION -
Дополнительный список путей, которые нужно исключить.
- Обязательное поле: НЕТ
- Значение по умолчанию: —
Может быть использован для добавления дополнительных путей исключения (каталогов или файлов) к первоначальному списку исключённых путей по умолчанию. Смотрите
CPACK_RPM_EXCLUDE_FROM_AUTO_FILELIST.
-
CPACK_RPM_RELOCATION_PATHS -
Список путей перемещения пакетов.
- Обязательное поле: НЕТ
- Значение по умолчанию: —
Может быть использован для указания более чем одного пути перемещения для переносимого RPM. Переменная содержит список путей перемещения, которые, если относительные, предваряются значением
CPACK_RPM_<COMPONENT>_PACKAGE_PREFIXили значениемCPACK_PACKAGING_INSTALL_PREFIX, если версия компонента не указана. Переменная не зависит от компонента, так как её содержимое может быть использовано для установки различных префиксов путей, например, для каталога библиотек и каталога документации одновременно. В этот компонент добавляются только префиксы, необходимые для данного компонента — компонент должен содержать хотя бы один файл/каталог/символическую ссылку с префиксомCPACK_RPM_RELOCATION_PATHSдля добавления определённого пути перемещения. Пакет не будет содержать никаких путей перемещения, если в указанных префиксных расположениях нет файлов/каталогов/символических ссылок. Пакеты, которые либо не содержат никаких путей перемещения, либо содержат файлы/каталоги/символические ссылки, которые находятся вне путей перемещения, выводят сообщениеAUTHOR_WARNING, что RPM будет частично переносимым.
-
CPACK_RPM_<COMPONENT>_PACKAGE_PREFIX -
Префикс установки пути перемещения на компонент.
- Обязательное поле: НЕТ
- Значение по умолчанию: CPACK_PACKAGING_INSTALL_PREFIX
Может быть использован для установки префикса
CPACK_PACKAGING_INSTALL_PREFIXна компонент для переносимых пакетов RPM.
-
CPACK_RPM_NO_INSTALL_PREFIX_RELOCATION -
CPACK_RPM_NO_<COMPONENT>_INSTALL_PREFIX_RELOCATION -
Удаление префикса установки по умолчанию из списка путей перемещения.
- Обязательное поле: НЕТ
-
-
Default : CPACK_PACKAGING_INSTALL_PREFIX or CPACK_RPM_<COMPONENT>_PACKAGE_PREFIX - рассматриваются как один из путей перемещения
-
Может быть использован для удаления CPACK_PACKAGING_INSTALL_PREFIX и CPACK_RPM_
_PACKAGE_PREFIX из путей префиксов переносимых пакетов RPM.
-
CPACK_RPM_ADDITIONAL_MAN_DIRS -
- Обязательное поле: НЕТ
- Значение по умолчанию: —
Может быть использован для установки дополнительных каталогов man, которые потенциально могут быть сжаты макросом brp-compress RPM. Содержимое переменной должно быть списком регулярных выражений, указывающих на каталоги, содержащие файлы man, или на сами файлы man. Обратите внимание, что для сжатия страниц man путь также должен быть присутствовать в скрипте brp-compress RPM, и этот скрипт должен быть добавлен в конфигурацию RPM операционной системой.
Регулярные выражения, которые добавляются по умолчанию, были взяты из макроса brp-compress RPM:
- /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.*
-
CPACK_RPM_DEFAULT_USER -
CPACK_RPM_<compName>_DEFAULT_USER -
Владелец по умолчанию содержимого RPM.
- Обязательное поле: НЕТ
- Значение по умолчанию: root
Значение должно быть именем пользователя, а не идентификатором пользователя. Обратите внимание, что <compName> должно быть в верхнем регистре.
-
CPACK_RPM_DEFAULT_GROUP -
CPACK_RPM_<compName>_DEFAULT_GROUP -
Группа по умолчанию для владельца содержимого RPM.
- Обязательное поле: НЕТ
- Значение по умолчанию: root
Значение должно быть именем группы, а не идентификатором группы. Обратите внимание, что <compName> должно быть в верхнем регистре.
-
CPACK_RPM_DEFAULT_FILE_PERMISSIONS -
CPACK_RPM_<compName>_DEFAULT_FILE_PERMISSIONS -
Права доступа по умолчанию, используемые для файлов пакета.
- Обязательное поле: НЕТ
- Значение по умолчанию: — (системное значение по умолчанию)
Допустимые значения — списки с
PERMISSIONS. Допустимые права доступа:- OWNER_READ
- OWNER_WRITE
- OWNER_EXECUTE
- GROUP_READ
- GROUP_WRITE
- GROUP_EXECUTE
- WORLD_READ
- WORLD_WRITE
- WORLD_EXECUTE
Обратите внимание, что <compName> должно быть в верхнем регистре.
-
CPACK_RPM_DEFAULT_DIR_PERMISSIONS -
CPACK_RPM_<compName>_DEFAULT_DIR_PERMISSIONS -
Права доступа по умолчанию, используемые для каталогов пакета.
- Обязательное поле: НЕТ
- Значение по умолчанию: — (системное значение по умолчанию)
Допустимые значения — списки с PERMISSIONS. Допустимые права доступа такие же, как и для
CPACK_RPM_DEFAULT_FILE_PERMISSIONS. Обратите внимание, что <compName> должно быть в верхнем регистре.
-
CPACK_RPM_INSTALL_WITH_EXEC -
Принудительное назначение прав выполнения программам и динамическим библиотекам.
- Обязательное поле: НЕТ
- Значение по умолчанию: — (системное значение по умолчанию)
Принудительно устанавливает права владельца, группы и других пользователей на выполнение для программ и динамических библиотек. Это может быть использовано для создания корректных пакетов rpm на системах, таких как Debian, где у динамических библиотек не установлены права выполнения.
Примечание
Программы и динамические библиотеки без прав выполнения игнорируются во время разделения символов отладки из двоичного файла для пакетов debuginfo.
Упаковщик символических ссылок
CPackRPM поддерживает упаковку символических ссылок:
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)
Символические ссылки будут оптимизированы (пути будут сокращены, если это возможно), прежде чем быть добавлены в пакет, или, если обнаружено несколько путей перемещения, будет сгенерирован скрипт перемещения символических ссылок после установки.
Символические ссылки могут указывать на места, которые не упакованы тем же пакетом (либо другой компонент, либо вообще не упакованы), но эти места будут рассматриваться как часть пакета при определении, должна ли быть создана или присутствовать символическая ссылка в скрипте после установки — в зависимости от путей перемещения.
Символические ссылки, которые указывают на расположения вне пути упаковки, производят предупреждение и рассматриваются как непереносимые постоянные символические ссылки.
В настоящее время существуют некоторые ограничения:
- Для компонентного пакета зависимость компонентов не проверяется при обработке символических ссылок. Символические ссылки, указывающие на содержимое другого компонента, обрабатываются так же, как если бы они указывали на расположение, которое не будет упаковано.
- Символические ссылки, указывающие на расположение через одну или несколько промежуточных символических ссылок, не будут обрабатываться по-другому — если промежуточная(ые) символическая(ые) ссылка(и) также находится в пути перемещения, перемещение её во время установки пакета может привести к тому, что начальная символическая ссылка будет указывать на некорректное расположение.
Упаковка информации об отладке
Пакеты debuginfo содержат символы отладки и исходный код для отладки упакованных бинарных файлов.
Упаковка debuginfo RPM имеет собственный набор переменных:
-
CPACK_RPM_DEBUGINFO_PACKAGE -
CPACK_RPM_<component>_DEBUGINFO_PACKAGE -
Включить генерацию пакета(ов) debuginfo RPM.
- Обязательное поле: НЕТ
- Значение по умолчанию: ВЫКЛ.
Примечание
Бинарные файлы должны содержать символы отладки перед пакетированием, поэтому используйте Debug или RelWithDebInfo для CMAKE_BUILD_TYPE значение переменной.
Примечание
Пакеты, сгенерированные из пакетов без бинарных файлов, с бинарными файлами, но без разрешений на выполнение или без символов отладки, приведут к завершению процесса пакетирования.
-
CPACK_BUILD_SOURCE_DIRS -
Указывает расположение корневых каталогов исходных файлов, из которых были построены бинарные файлы.
- Обязательно : ДА, если установлено
CPACK_RPM_DEBUGINFO_PACKAGE - По умолчанию : -
- Обязательно : ДА, если установлено
Примечание
Для проекта CMake CPACK_BUILD_SOURCE_DIRS по умолчанию устанавливается для указания на пути CMAKE_SOURCE_DIR и CMAKE_BINARY_DIR.
Примечание
Исходные файлы с префиксами путей, которые не попадают ни в одну из каталогов, указанных с CPACK_BUILD_SOURCE_DIRS, не будут присутствовать в пакете debuginfo.
-
CPACK_RPM_BUILD_SOURCE_DIRS_PREFIX -
CPACK_RPM_<component>_BUILD_SOURCE_DIRS_PREFIX -
Префикс расположения, куда будут помещены исходные файлы во время установки пакета.
- Обязательно : ДА, если установлено
CPACK_RPM_DEBUGINFO_PACKAGE -
-
Default : “/usr/src/debug/<CPACK_PACKAGE_FILE_NAME>” and - для пакетирования компонента «/usr/src/debug/<CPACK_PACKAGE_FILE_NAME>-<component>”
-
- Обязательно : ДА, если установлено
Примечание
Каждый префикс пути к исходному файлу дополнительно снабжается суффиксом src_<index>, где индекс — это индекс пути, используемого из переменной CPACK_BUILD_SOURCE_DIRS. Это приводит к замене пути <CPACK_RPM_BUILD_SOURCE_DIRS_PREFIX>/src_<index>. Ограничение заключается в том, что заменяемая часть пути должна быть короче или равна длине её замены. Если это не так, то либо переменная CPACK_RPM_BUILD_SOURCE_DIRS_PREFIX должна быть установлена на более короткий путь, либо каталоги исходных файлов должны быть размещены на более длинном пути.
-
CPACK_RPM_DEBUGINFO_EXCLUDE_DIRS -
Каталоги, содержащие исходные файлы, которые должны быть исключены из пакетов debuginfo.
- Обязательно : НЕТ
- По умолчанию : «/usr /usr/src /usr/src/debug»
Указанные пути принадлежат другим пакетам RPM и, следовательно, не должны удаляться при раз установке пакета debuginfo.
-
CPACK_RPM_DEBUGINFO_EXCLUDE_DIRS_ADDITION -
Пути, которые должны быть добавлены к
CPACK_RPM_DEBUGINFO_EXCLUDE_DIRSдля исключения.- Обязательно : НЕТ
- По умолчанию : -
-
CPACK_RPM_DEBUGINFO_SINGLE_PACKAGE -
Создать один пакет debuginfo, даже если установлено пакетирование компонентов.
- Обязательно : НЕТ
- По умолчанию : ВЫКЛ.
При включении этой переменной создаётся один пакет debuginfo, даже если включено пакетирование компонентов.
При использовании этой функции в сочетании с пакетированием компонентов и наличии более одного компонента, необходимо установить
CPACK_RPM_MAIN_COMPONENT.
Примечание
Если ни одна из переменных CPACK_RPM_<component>_DEBUGINFO_PACKAGE не установлена, то CPACK_RPM_DEBUGINFO_PACKAGE автоматически устанавливается в ON, когда CPACK_RPM_DEBUGINFO_SINGLE_PACKAGE установлено.
-
CPACK_RPM_DEBUGINFO_FILE_NAME -
CPACK_RPM_<component>_DEBUGINFO_FILE_NAME -
Имя файла пакета debuginfo.
- Обязательно : НЕТ
- По умолчанию : имя файла пакета, сгенерированного инструментом rpmbuild
В альтернативном случае имя файла пакета debuginfo, которое предоставляется, должно заканчиваться суффиксом
.rpmи отличаться от имён других сгенерированных пакетов.Переменная может содержать
@cpack_component@заполнитель, который будет заменён именем компонента, если включено пакетирование компонентов, иначе заполнитель удаляется.Установка переменной в
RPM-DEFAULTможет использоваться для явного задания генерации имени файла по умолчанию.
Примечание
CPACK_RPM_FILE_NAME также поддерживает имя файла пакета, сгенерированного инструментом rpmbuild - отключено по умолчанию, но может быть включено установкой переменной в RPM-DEFAULT.
Пакеты исходных кодов (SRPM)
Пакеты SRPM включаются установкой переменной CPACK_RPM_PACKAGE_SOURCES, в то время как обычно используется переменная CPACK_INSTALLED_DIRECTORIES для указания каталога, содержащего CMakeLists.txt и исходные файлы.
Для проектов CMake пакет SRPM создаётся путём выполнения:
cpack -G RPM --config ./CPackSourceConfig.cmake
Примечание
Ожидается, что созданный пакет SRPM будет собран с помощью исполняемого файла cmake(1) и упакован с помощью исполняемого файла cpack(1), поэтому CMakeLists.txt должен находиться в корневой директории исходного кода и должен уметь генерировать бинарные rpm пакеты путём выполнения команды cpack -G. Два исполняемых файла, а также rpmbuild, также должны быть доступны при генерации бинарных rpm пакетов из созданного пакета SRPM.
После создания пакета SRPM он может быть использован для генерации бинарных пакетов путём создания структуры каталогов для генерации rpm и выполнения инструмента rpmbuild:
mkdir -p build_dir/{BUILD,BUILDROOT,RPMS,SOURCES,SPECS,SRPMS} rpmbuild --define "_topdir <path_to_build_dir>" --rebuild <SRPM_file_name>
Сгенерированные пакеты будут находиться в каталоге build_dir/RPMS или в его подкаталогах.
Примечание
Пакет SRPM внутренне использует генератор CPack/RPM для создания бинарных пакетов, поэтому CMakeScripts.txt может принимать решение во время генерации пакета SRPM в бинарный rpm пакет о том, какое содержимое должен иметь пакет (пакеты), а также о том, как они должны быть упакованы (монолитный или компоненты). CMake может решить это, например, считывая переменные окружения, установленные менеджером пакетов, перед началом процесса генерации бинарных rpm пакетов. Таким образом, один пакет SRPM может использоваться для создания различных бинарных rpm пакетов на разных платформах в зависимости от правил пакетирования платформы.
Пакеты исходных кодов имеют свои переменные:
-
CPACK_RPM_PACKAGE_SOURCES -
Должно ли содержимое быть упаковано как исходный rpm (по умолчанию бинарный rpm).
- Обязательно : НЕТ
- По умолчанию : ВЫКЛ.
Примечание
Для проектов cmake переменная CPACK_RPM_PACKAGE_SOURCES устанавливается в OFF в сгенерированных файлах CPackConfig.cmake и ON в CPackSourceConfig.cmake.
-
CPACK_RPM_SOURCE_PKG_BUILD_PARAMS -
Дополнительные параметры командной строки, предоставляемые исполняемому файлу
cmake(1).- Обязательно : НЕТ
- По умолчанию : -
-
CPACK_RPM_SOURCE_PKG_PACKAGING_INSTALL_PREFIX -
Префикс установки пакетирования, который будет предоставлен в переменной
CPACK_PACKAGING_INSTALL_PREFIXдля создания бинарных пакетов RPM.- Обязательно : ДА
- По умолчанию : «/»
-
CPACK_RPM_BUILDREQUIRES -
Список зависимостей сборки исходного rpm.
- Обязательно : НЕТ
- По умолчанию : -
Может использоваться для установки зависимостей сборки исходного RPM (BuildRequires). Обратите внимание, что вы должны заключить строку полных требований сборки в кавычки, например:
set(CPACK_RPM_BUILDREQUIRES "python >= 2.5.0, cmake >= 2.8")
© 2000–2019 Kitware, Inc. and Contributors
Licensed under the BSD 3-clause License.
https://cmake.org/cmake/help/v3.11/module/CPackRPM.html