Spec-файл можно рассматривать как «инструкцию», которую утилита rpmbuild использует для сборки RPM-пакета. Он определяет все действия, выполняемые при сборке, а также операции, необходимые при установке и удалении пакета. Каждый .src.rpm-пакет содержит spec-файл.
Spec-файл представляет собой текстовый файл. Согласно соглашению об именовании, он должен называться по шаблону: имя_пакета.spec.
Spec-файл сообщает системе сборки, что необходимо выполнить, задавая инструкции в виде набора разделов. Эти разделы условно делятся на две части:
Преамбула содержит элементы метаданных, которые используются в основной части Основная часть включает команды и сценарии, выполняемые на различных этапах сборки.
Текст внутри spec-файла имеет специальный синтаксис. Его конструкции определяют порядок сборки, версию пакета, зависимости и другую информацию, которая впоследствии может быть получена из базы данных RPM.
6.2.1. Пример spec-файла
Пример spec-файла:
Name: sampleprog
Version: 1.0
Release: alt1
Summary: Sample program specfile
Summary(ru_RU.UTF-8): Пример spec-файла для программы
License: GPLv2+
Group: Development/Other
Url: http://www.altlinux.org/SampleSpecs/program
Packager: Sample Packager <sample@altlinux.org>
Source: %name-%version.tar
Patch0: %name-1.0-alt-makefile-fixes.patch
%description
This specfile is provided as sample specfile for packages with programs.
It contains most of usual tags and constructions used in such specfiles.
%description -l ru_RU.UTF-8
Этот spec-файл является примером spec-файла для пакета с программой. Он содержит
основные теги и конструкции, используемые в подобных spec-файлах.
%prep
%setup
%patch0 -p1
%build
%configure
%make_build
%install
%makeinstall_std
%find_lang %name
%files -f %name.lang
%doc AUTHORS ChangeLog NEWS README THANKS TODO contrib/ manual/
%_bindir/*
%_man1dir/*
%changelog
* Sat Sep 12 3001 Sample Packager <sample@altlinux.org> 1.0-alt1
- initial build