Spec: различия между версиями
(Новая: == Заголовок spec-а == == <tt>%package</tt> == == <tt>%description</tt> == == <tt>%prep</tt> == == <tt>%build</tt> == == <tt>%install</tt> == == <tt>%pre</tt> == == <tt>...) |
(Начало: всасывание релевантных частей из ALT specfile conventions, ALT RPM changes, ALT secure packaging policy) |
||
Строка 1: | Строка 1: | ||
{{Stub}} | |||
== Заголовок spec-а == | == Заголовок spec-а == | ||
=== <tt>Summary</tt> === | |||
Значение тэга <tt>Summary</tt> должно начинаться с заглавной буквы. В конце <tt>Summary</tt> не должно быть точки. | |||
=== <tt>Group</tt> === | |||
Указанная группа должна находиться в списке групп, известном RPM. Этот список располагается в файле <tt>/usr/lib/rpm/GROUPS</tt>, находящемся в пакете <tt>rpm</tt>. | |||
=== <tt>Patch</tt> === | |||
Рекомендуемое именование патчей: | |||
* <tt>NAME-VERSION-ORIGIN-WHAT.patch</tt>, где | |||
** <tt>NAME</tt> и <tt>VERSION</tt> — имя и версия пакета, для которого сделан патч, | |||
** <tt>ORIGIN</tt> — аббревиатура источников патча (обычно дистрибутивов), | |||
** <tt>WHAT</tt> — краткое описание патча. | |||
Если патч образован из нескольких частей, полученных из разных источников, <tt>ORIGIN</tt> должен включать аббревиатуры всех источников. Аббревиатура ALT Linux / Sisyphus — <tt>alt</tt>. Для патчей, полученных на основе системы контроля версий, <tt>ORIGIN</tt> должен включать в себя дату или номер ревизии. | |||
В описании патча рекомендуется пользоваться следующими сокращениями: | |||
* <tt>makefile</tt> — патчи, затрагивающие исключительно <tt>Makefile*</tt>, | |||
* <tt>bound</tt> — проверки на границы (буфера, целых чисел и т. д.), | |||
* <tt>config</tt> — патчи, затрагивающие исключительно конфигурационные файлы, | |||
* <tt>configure</tt> — патчи, затрагивающие исключительно <tt>configure*</tt>, | |||
* <tt>doc</tt> — патчи, затрагивающие исключительно документацию, | |||
* <tt>fixes</tt> — кумулятивные патчи/исправления по надёжности и/или безопасности, | |||
* <tt>format</tt> — патчи на использование форматирования строк (типа <tt>printf</tt>), | |||
* <tt>install</tt> — патчи на выполнение <tt>make install</tt> непривилегированным пользователем, | |||
* <tt>linux</tt> — патчи для портирования По на Linux, | |||
* <tt>man</tt> — патчи, затрагивающие исключительно man-страницы, | |||
* <tt>texinfo</tt> — патчи, затрагивающие исключительно документацию в формате texinfo, | |||
* <tt>tmp</tt> — патчи, предназначенные для решения различных вопросов, связанных с временными файлами, | |||
* <tt>vitmp</tt> — патчи для поддержки <tt>vitmp(1)</tt> | |||
* <tt>warnings</tt> — патчи, исправляющие предупреждения, выданные компилятором | |||
=== <tt>Requires</tt>, <tt>PreReq</tt> === | |||
При наличии логических зависимостей между пакетами внутри одного spec-файла, пакетная зависимость между ними должна включать полную версию пакета, например так: | |||
Requires: %name = %epoch:%version-%release | |||
=== <tt>BuildRoot</tt> === | |||
Тэг <tt>BuildRoot</tt> бесполезен для RPM из Sisyphus: обработку <tt>BuildRoot</tt> RPM производит самостоятельно. | |||
=== <tt>BuildHost</tt> === | |||
Новый опциональный тэг в Sisyphus RPM. Позволяет переопределить имя сборочного хоста. По умолчанию используется, как и в остальных версиях RPM, результат вызова <tt>uname(2)</tt>. | |||
== <tt>%package</tt> == | == <tt>%package</tt> == | ||
Строка 10: | Строка 58: | ||
== <tt>%install</tt> == | == <tt>%install</tt> == | ||
== <tt>%clean</tt> == | |||
Sisyphus RPM автоматически очищает BuildRoot пакета (с помощью макроса <tt>%clean_buildroot</tt>). Таким образом, ручная очистка BuildRoot является ненужной (а точнее - вредной, поскольку повышает вероятность ошибки). | |||
Если секция <tt>%clean</tt> пуста, то рекомендуется вообще не включать её в spec-файл. | |||
== <tt>%pre</tt> == | == <tt>%pre</tt> == | ||
Строка 22: | Строка 76: | ||
== <tt>%files</tt> == | == <tt>%files</tt> == | ||
В отличие от других веток RPM, Sisyphus RPM автоматически подставляет в начало каждой секции <tt>%files</tt> и в начало каждого файла, включаемого с помощью <tt>%files -f</tt>, директиву <tt>%defattr</tt> со значением макроса <tt>%_defattr</tt>. | |||
Таким образом, ручное указание <tt>%defattr</tt> является излишним. | |||
== <tt>%changelog</tt> == | == <tt>%changelog</tt> == | ||
{{Main|Руководство по написанию changelog}} |
Версия от 16:00, 19 октября 2008
Заголовок spec-а
Summary
Значение тэга Summary должно начинаться с заглавной буквы. В конце Summary не должно быть точки.
Group
Указанная группа должна находиться в списке групп, известном RPM. Этот список располагается в файле /usr/lib/rpm/GROUPS, находящемся в пакете rpm.
Patch
Рекомендуемое именование патчей:
- NAME-VERSION-ORIGIN-WHAT.patch, где
- NAME и VERSION — имя и версия пакета, для которого сделан патч,
- ORIGIN — аббревиатура источников патча (обычно дистрибутивов),
- WHAT — краткое описание патча.
Если патч образован из нескольких частей, полученных из разных источников, ORIGIN должен включать аббревиатуры всех источников. Аббревиатура ALT Linux / Sisyphus — alt. Для патчей, полученных на основе системы контроля версий, ORIGIN должен включать в себя дату или номер ревизии.
В описании патча рекомендуется пользоваться следующими сокращениями:
- makefile — патчи, затрагивающие исключительно Makefile*,
- bound — проверки на границы (буфера, целых чисел и т. д.),
- config — патчи, затрагивающие исключительно конфигурационные файлы,
- configure — патчи, затрагивающие исключительно configure*,
- doc — патчи, затрагивающие исключительно документацию,
- fixes — кумулятивные патчи/исправления по надёжности и/или безопасности,
- format — патчи на использование форматирования строк (типа printf),
- install — патчи на выполнение make install непривилегированным пользователем,
- linux — патчи для портирования По на Linux,
- man — патчи, затрагивающие исключительно man-страницы,
- texinfo — патчи, затрагивающие исключительно документацию в формате texinfo,
- tmp — патчи, предназначенные для решения различных вопросов, связанных с временными файлами,
- vitmp — патчи для поддержки vitmp(1)
- warnings — патчи, исправляющие предупреждения, выданные компилятором
Requires, PreReq
При наличии логических зависимостей между пакетами внутри одного spec-файла, пакетная зависимость между ними должна включать полную версию пакета, например так:
Requires: %name = %epoch:%version-%release
BuildRoot
Тэг BuildRoot бесполезен для RPM из Sisyphus: обработку BuildRoot RPM производит самостоятельно.
BuildHost
Новый опциональный тэг в Sisyphus RPM. Позволяет переопределить имя сборочного хоста. По умолчанию используется, как и в остальных версиях RPM, результат вызова uname(2).
%package
%description
%prep
%build
%install
%clean
Sisyphus RPM автоматически очищает BuildRoot пакета (с помощью макроса %clean_buildroot). Таким образом, ручная очистка BuildRoot является ненужной (а точнее - вредной, поскольку повышает вероятность ошибки).
Если секция %clean пуста, то рекомендуется вообще не включать её в spec-файл.
%pre
%post
%preun
%postun
%triggerpostun
%files
В отличие от других веток RPM, Sisyphus RPM автоматически подставляет в начало каждой секции %files и в начало каждого файла, включаемого с помощью %files -f, директиву %defattr со значением макроса %_defattr.
Таким образом, ручное указание %defattr является излишним.