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://gitlab.kitware.com/cmake/community/wikis/doc/cpack/Configuration
- https://gitlab.kitware.com/cmake/community/wikis/doc/cpack/PackageGenerators#rpm-unix-only
Список переменных, специфичных для 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 проекта.
- Обязательно : НЕТ
- По умолчанию :
CMAKE_PROJECT_HOMEPAGE_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 -
Поле autoprov спецификации RPM.
- Обязательное : НЕТ
- Значение по умолчанию : -
Может быть использовано для включения (1, да) или выключения (0, нет) автоматического создания списка общих библиотек, предоставляемых пакетом. Общие библиотеки добавляются в список предоставляемых.
Примечание
По умолчанию автоматическое обнаружение предоставляемых библиотек включено генератором rpm.
-
CPACK_RPM_PACKAGE_AUTOREQPROV -
CPACK_RPM_<component>_PACKAGE_AUTOREQPROV -
Поле autoreqprov спецификации RPM.
- Обязательное : НЕТ
- Значение по умолчанию : -
Переменная включает/выключает autoreq и autoprov одновременно. См.
CPACK_RPM_PACKAGE_AUTOREQиCPACK_RPM_PACKAGE_AUTOPROVдля получения более подробной информации.Примечание
По умолчанию автоматическое обнаружение функций включено rpm.
-
CPACK_RPM_PACKAGE_REQUIRES -
CPACK_RPM_<component>_PACKAGE_REQUIRES -
Поле requires спецификации RPM.
- Обязательное : НЕТ
- Значение по умолчанию : -
Может быть использовано для задания зависимостей RPM (requires). Обратите внимание, что вы должны заключить всю строку 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 -
Поле conflicts спецификации RPM.
- Обязательное : НЕТ
- Значение по умолчанию : -
Может быть использовано для задания отрицательных зависимостей RPM (conflicts). Обратите внимание, что вы должны заключить всю строку requires в кавычки, например:
set(CPACK_RPM_PACKAGE_CONFLICTS "libxml2")
Список конфликтующих пакетов RPM-файла можно вывести с помощью:
rpm -qp --conflicts file.rpm
-
CPACK_RPM_PACKAGE_REQUIRES_PRE -
CPACK_RPM_<component>_PACKAGE_REQUIRES_PRE -
Поле requires(pre) спецификации RPM.
- Обязательное : НЕТ
- Значение по умолчанию : -
Может быть использовано для задания предварительных зависимостей при установке RPM (requires(pre)). Обратите внимание, что вы должны заключить всю строку requires в кавычки, например:
set(CPACK_RPM_PACKAGE_REQUIRES_PRE "shadow-utils, initscripts")
-
CPACK_RPM_PACKAGE_REQUIRES_POST -
CPACK_RPM_<component>_PACKAGE_REQUIRES_POST -
Поле requires(post) спецификации RPM.
- Обязательное : НЕТ
- Значение по умолчанию : -
Может быть использовано для задания зависимостей после установки RPM (requires(post)). Обратите внимание, что вы должны заключить всю строку requires в кавычки, например:
set(CPACK_RPM_PACKAGE_REQUIRES_POST "shadow-utils, initscripts")
-
CPACK_RPM_PACKAGE_REQUIRES_POSTUN -
CPACK_RPM_<component>_PACKAGE_REQUIRES_POSTUN -
Поле requires(postun) спецификации RPM.
- Обязательное : НЕТ
- Значение по умолчанию : -
Может быть использовано для задания зависимостей после удаления RPM (requires(postun)). Обратите внимание, что вы должны заключить всю строку requires в кавычки, например:
set(CPACK_RPM_PACKAGE_REQUIRES_POSTUN "shadow-utils, initscripts")
-
CPACK_RPM_PACKAGE_REQUIRES_PREUN -
CPACK_RPM_<component>_PACKAGE_REQUIRES_PREUN -
Поле requires(preun) спецификации RPM.
- Обязательное : НЕТ
- Значение по умолчанию : -
Может быть использовано для задания зависимостей перед удалением RPM (requires(preun)). Обратите внимание, что вы должны заключить всю строку requires в кавычки, например:
set(CPACK_RPM_PACKAGE_REQUIRES_PREUN "shadow-utils, initscripts")
-
CPACK_RPM_PACKAGE_SUGGESTS -
CPACK_RPM_<component>_PACKAGE_SUGGESTS -
Поле suggest спецификации RPM.
- Обязательное : НЕТ
- Значение по умолчанию : -
Может быть использовано для задания слабых зависимостей RPM (suggests). Обратите внимание, что вы должны заключить всю строку requires в кавычки.
-
CPACK_RPM_PACKAGE_PROVIDES -
CPACK_RPM_<component>_PACKAGE_PROVIDES -
Поле provides спецификации RPM.
- Обязательное : НЕТ
- Значение по умолчанию : -
Может быть использовано для задания зависимостей RPM (provides). Список предоставляемых пакетов RPM-файла можно вывести с помощью:
rpm -qp --provides file.rpm
-
CPACK_RPM_PACKAGE_OBSOLETES -
CPACK_RPM_<component>_PACKAGE_OBSOLETES -
Поле obsoletes спецификации RPM.
- Обязательное : НЕТ
- Значение по умолчанию : -
Может быть использовано для задания пакетов 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_SPEC_MORE_DEFINEвместо этого.- Обязательное : НЕТ
- Значение по умолчанию : -
- Устаревшее: ДА
Может быть использовано для переопределения раздела
__spec_install_postв генерируемом файле спецификации. Это влияет на шаг установки при создании пакета, а не при установке пакета. Для добавления операций, выполняемых при установке пакета, используйтеCPACK_RPM_POST_INSTALL_SCRIPT_FILEвместо этого.
-
CPACK_RPM_SPEC_MORE_DEFINE -
Дополнительные строки определений спецификации RPM.
- Обязательное : НЕТ
- Значение по умолчанию : -
Может быть использовано для добавления любых строк
%defineв генерируемый файл спецификации. Пример его использования - предотвращение удаления исполняемых файлов (но обратите внимание, что это также может отключить другие стандартные операции после установки):set(CPACK_RPM_SPEC_MORE_DEFINE "%define __spec_install_post /bin/true")
-
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установлено в ON, скрипт (ра)установки для каждого компонента может быть переопределен с помощью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 -
Файл заметок о изменениях RPM.
- Обязательно : НЕТ
- По умолчанию : -
Может использоваться для встраивания заметок о изменениях в файл спецификации. Ссылающийся файл будет прочитан и непосредственно помещён после раздела
%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_<COMPONENT>_PACKAGE_PREFIX из путей префикса перемещения перемещаемых RPM.
-
CPACK_RPM_ADDITIONAL_MAN_DIRS -
- Обязательно : НЕТ
- По умолчанию : -
Может использоваться для установки дополнительных каталогов man, которые потенциально могут быть сжаты макросом brp-compress RPM. Содержимое переменной должно быть списком регулярных выражений, которые указывают на каталоги, содержащие файлы man, или непосредственно на файлы man. Обратите внимание, что для сжатия страниц man путь также должен присутствовать в скрипте RPM brp-compress, и этот скрипт brp-compress должен быть добавлен в конфигурацию RPM операционной системой.
По умолчанию добавлены регулярные выражения из макроса RPM brp-compress:
- /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/
- ”
-
- Обязательно : ДА, если
Примечание
Каждый префикс пути исходного файла дополнительно снабжается суффиксом 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@placeholder, который будет заменён именем компонента, если включена компонентная упаковка, в противном случае заполнитель удаляется.Установка переменной в
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 может принять решение во время генерации бинарных пакетов RPM из пакета SRPM, какое содержимое должен иметь пакет(ы), а также как их упаковать (монолитный или компонентный). CMake может принять это решение, например, путём считывания переменных среды, установленных менеджером пакетов, перед началом процесса генерации бинарных пакетов RPM. Таким образом, один пакет SRPM может быть использован для создания разных бинарных пакетов RPM на разных платформах в зависимости от правил упаковки платформы.
Упаковщику Source RPM свойственен собственный набор переменных:
-
CPACK_RPM_PACKAGE_SOURCES -
Должен ли контент быть упакован как source rpm (по умолчанию — binary 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.12/module/CPackRPM.html