Spec-Zone.ru › CMake 3.12

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 не задан. Если эта переменная установлена, значение поля RPM Release: устанавливается в ${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
END_OF_DOCUMENT_MARKER
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
END_OF_DOCUMENT_MARKER
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).

  • Обязательно : НЕТ
  • По умолчанию : ВЫКЛ.
END_OF_DOCUMENT_MARKER

Примечание

Для проектов 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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API