From Fedora Project Wiki
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

Предисловие

Этот конспект я вел исключительно для собственных нужд. Поэтому этот текст не является руководством, это необходимо понять прежде всего - это краткий конспект. Вместо любых разъяснений даны ссылки на исчерпывающие материалы по теме, которые обновляются, как и принято в комьюнити, более сведущими специалистами. В этом тескте также нет правильных переводов терминов.

Конспект написан по причине того, что в федора-вики много информации по теме, и, вместе с тем, некоторые особенности освещены слабо. По крайней мере, это вызвало у меня, как у ньюба, затруднения. Но, в целом, повторюсь, информации по данной теме в федора-вики много, англоязычной, естественно.

Автор выражает надежду, что изложенная информация будет полезна для успешного старта.


Начало

Источники:

  1. Join the package collection maintainers
  2. How to create an RPM package
  3. Building Packages Guide
  4. Packaging:Guidelines
  5. Packaging:NamingGuidelines
  6. New package process for existing contributors

Дополнительно

Перво-наперво посмотреть нет ли уже такого пакета в :

Можно взять спек от похожей проги (а лучше несколько)

$ yumdownloader --source sourcepackage-name


Настройка системы

How to create an RPM package

# yum groupinstall "Development Tools"
# yum install rpmdevtools

Создать отдельного юзера под которым будут собираться пакеты:

# /usr/sbin/useradd makerpm

Создать дерево каталогов, необходимое для сборки

$ rpmdev-setuptree

Имена

Packaging:NamingGuidelines

Допустимые символы для именования пакета

  a--z  A--Z 0--9
  -._+

При присвоении имен пакетов для Fedora, мантайнеру необходимо использовать - в качестве разделителя для названия частей. Мантайнер **НЕ** должен юзать _ + . в качестве разделителя.


Имя spec файла по схеме : %{имя пакета}.spec. Если имя пакета foo-1.0.0-1.src.rpm, то имя spec файла д.б. foo.spec

%{номер версии} не нужно писать в имени spec файла.

Поле Version в спеке должно быть.

release number (или в старых доках vepoch) начинается с 1. При незначительных изменениях он увеличивается на 1. При значительных изменениях увеличивается version number и release number опять начинается с 1.

См. также Packaging:DistTag.