Таблица 6.1. Директивы преамбулы spec-файла
|
SPEC-директива
|
Определение
|
|---|---|
Name
|
Базовое имя пакета (должно совпадать с именем spec-файла)
|
Version
|
Версия upstream-кода
|
Release
|
Релиз пакета используется для указания номера сборки при данной версии upstream-кода.
Для пакетов Sisyphus поле Release должно иметь вид:
|
Epoch
|
Используется, если необходимо уменьшить версию или релиз пакета по сравнению с имеющимся в репозитории. В этом случае значение Epoch увеличивается на единицу относительно предыдущего (отсутствие поля эквивалентно значению 0), а версия и релиз устанавливаются в требуемые значени
Epoch не входит в имя RPM-файла, поэтому следует избегать пакетов с одинаковыми Version и Release, но разными Epoch.
|
Summary
|
Краткое однострочное описание пакета. Должно начинаться с заглавной буквы и не заканчиваться точкой
|
License
|
Лицензия программного обеспечения. Должна указываться в точности так, как сформулировано в upstream-пакете.
При указании лицензии рекомендуется пользоваться макросами из пакета rpm-build-licenses, добавив его в список
BuildRequires.
Текст лицензии включается в пакет только если он отсутствует в
/usr/share/license (пакет common-licenses). В противном случае достаточно указать название лицензии
|
Group
|
Категория пакета. Должна соответствовать списку групп RPM (файл
/usr/lib/rpm/GROUPS из пакета rpm)
|
URL
|
Полный URL-адрес для получения дополнительной информации о программе.
Рекомендуется указывать действующий URL домашней страницы проекта или другой источник исходного кода.
Для директивы URL можно использовать утилиту
rpmurl. Например, проверка доступности URL:
$
|
Source0
|
Путь или URL к архиву исходного кода (без учёта патчей). Должен указывать на надёжный внешний источник (например, upstream), а не на локальное хранилище.
Дополнительные источники задаются как
Source1, Source2 и т. д.
|
Patch0
|
Название первого патча, применяемого к исходному коду. Дополнительные патчи задаются как
Patch1, Patch2 и т. д.
|
BuildArch
|
Явное указание архитектуры, под которую собирается двоичный пакет. Если не задано, используется архитектура системы сборки (например, x86_64).
Для архитектурно-независимых пакетов указывается noarch.
|
BuildRequires, BuildPreReq, BuildRequires(pre)
|
Список пакетов, необходимых для сборки (разделяется запятыми или пробелами). Может быть несколько записей
BuildRequires, каждая в отдельной строке.
BuildRequires обычно формируется автоматически (например, с помощью buildreq). Дополнительные зависимости рекомендуется указывать в BuildPreReq
|
Requires, PreReq
|
Список пакетов, необходимых для работы программы после установки (разделяется запятыми или пробелами). Может быть несколько записей
Requires, каждая в отдельной строке.
|
ExcludeArch
|
Исключает архитектуры, на которых пакет не может быть собран или работать
|
Conflicts
|
Список пакетов, конфликтующих с данным. Используется при наличии файловых, RPC- или логических конфликтов
|
Provides
|
Указывает, какую функциональность предоставляет пакет (например, альтернативное или устаревшее имя). Следует применять только в случае реальной необходимости и, как правило, в форме
Provides: something = %version-%release
При переименовании пакета используется совместно с
Obsoletes
|
Obsoletes
|
Перечисляет устаревшие пакеты/версии. Обычно применяется при переименовании и используется вместе с
Provides
|
Name, Version и Release формируют имя RPM-пакета. Их часто называют N-V-R или NVR, поскольку имя пакета имеет формат: NAME-VERSION-RELEASE.
rpm для конкретного пакета:
$ rpm -q rpmspec
rpmspec-4.13.0.1-alt40.x86_64
Здесь: