(Created page with '== Предисловие == Этот конспект я вел исключительно для собственных нужд. Поэтому этот текст не яв...') |
(→Имена) |
||
Line 78: | Line 78: | ||
См. также [[Packaging:DistTag|Packaging:DistTag]]. | См. также [[Packaging:DistTag|Packaging:DistTag]]. | ||
=== Pre-Release === | |||
Release Tag для Pre-Release Packages: | |||
<pre> | |||
0.%{X}.%{alphatag} | |||
</pre> | |||
где %{X} - release number (увеличивается на 1), %{alphatag} строка из версии. | |||
Пример для release candidate 1 | |||
<pre> | |||
#define alphatag rc1 | |||
</pre> | |||
См. также [http://en.wikipedia.org/wiki/Software_release_life_cycle Software release life cycle] для общего развития. |
Revision as of 12:58, 6 November 2009
Предисловие
Этот конспект я вел исключительно для собственных нужд. Поэтому этот текст не является руководством, это необходимо понять прежде всего - это краткий конспект. Вместо любых разъяснений даны ссылки на исчерпывающие материалы по теме, которые обновляются, как и принято в комьюнити, более сведущими специалистами. В этом тескте также нет правильных переводов терминов.
Конспект написан по причине того, что в федора-вики много информации по теме, и, вместе с тем, некоторые особенности освещены слабо. По крайней мере, это вызвало у меня, как у ньюба, затруднения. Но, в целом, повторюсь, информации по данной теме в федора-вики много, англоязычной, естественно.
Автор выражает надежду, что изложенная информация будет полезна для успешного старта.
Начало
Источники:
- Join the package collection maintainers
- How to create an RPM package
- Building Packages Guide
- Packaging:Guidelines
- Packaging:NamingGuidelines
- New package process for existing contributors
Дополнительно
- When Sally met Eddie: The Fedora package story
- CVS access for package maintainers
- Using CVS FAQ for package maintainers
- Использование ssh-agent от SSH1 и OpenSSH
Перво-наперво посмотреть нет ли уже такого пакета в :
- Fedora Package Database
- в списке Review Request
- а также в списке https://bugzilla.rpmfusion.org/ (прим. авт.: я так "накололся" с mocp - "изобрел" spec, который уже был на ревью в rpmfusion)
Можно взять спек от похожей проги (а лучше несколько)
$ yumdownloader --source sourcepackage-name
Настройка системы
# yum groupinstall "Development Tools" # yum install rpmdevtools
Создать отдельного юзера под которым будут собираться пакеты:
# /usr/sbin/useradd makerpm
Создать дерево каталогов, необходимое для сборки
$ rpmdev-setuptree
Имена
Допустимые символы для именования пакета
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.
Pre-Release
Release Tag для Pre-Release Packages:
0.%{X}.%{alphatag}
где %{X} - release number (увеличивается на 1), %{alphatag} строка из версии.
Пример для release candidate 1
#define alphatag rc1
См. также Software release life cycle для общего развития.