Spec-файл можно рассматривать как «инструкцию», которую утилита rpmbuild использует для фактической сборки RPM-пакета. Spec-файл определяет все действия, которые должны быть выполнены при сборке RPM-пакета, а также все действия, необходимые при установке/удалении пакета. Каждый src.rpm-пакет имеет в своем составе spec-файл.
Spec-файл — это текстовый файл. Соглашение об именовании предлагает называть spec-файл таким образом: имя_пакета.spec. Spec-файл сообщает системе сборки, что делать, определяя инструкции в серии разделов. Разделы определены в «Преамбуле» и в «Основной части». «Преамбула» содержит ряд элементов метаданных, которые используются в «Основной части». Тело содержит основную часть инструкций.
Текст внутри spec-файла имеет специальный синтаксис. Синтаксические определения имеют значения, задающие порядок сборки, номер версии, информацию о зависимостях и вообще всю информацию о пакете, которая может быть впоследствии запрошена из БД RPM.
5.2.1. Пример spec-файла
Пример spec-файла:
Name: sampleprog
Version: 1.0
Release: alt1
Summary: Sample program specfile
Summary(ru_RU.UTF-8): Пример спек-файла для программы
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
Этот спек-файл является примером спек-файла для пакета с программой. Он содержит
основные теги и конструкции, используемые в подобных спек-файлах.
%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