|
|
Line 1: |
Line 1: |
| == Предисловие ==
| |
|
| |
|
| Этот конспект я вел исключительно для собственных нужд. Поэтому этот текст не является руководством, это необходимо понять прежде всего - это краткий конспект. Вместо любых разъяснений даны ссылки на исчерпывающие материалы по теме, которые обновляются, как и принято в комьюнити, более сведущими специалистами. В этом тескте также нет правильных переводов терминов.
| |
|
| |
| Конспект написан по причине того, что в федора-вики много информации по теме, и, вместе с тем, некоторые особенности освещены слабо. По крайней мере, это вызвало у меня, как у ньюба, затруднения. Но, в целом, повторюсь, информации по данной теме в федора-вики много, англоязычной, естественно.
| |
|
| |
| Автор выражает надежду, что изложенная информация будет полезна для успешного старта.
| |
|
| |
|
| |
| == Начало ==
| |
|
| |
| Источники:
| |
|
| |
| # [[PackageMaintainers/Join|Join the package collection maintainers]]
| |
| # [[PackageMaintainers/CreatingPackageHowTo|How to create an RPM package]]
| |
| # [[Docs/Drafts/BuildingPackagesGuide|Building Packages Guide]]
| |
| # [[Packaging/Guidelines|Packaging:Guidelines]]
| |
| # [[Packaging/NamingGuidelines|Packaging:NamingGuidelines]]
| |
| # [[PackageMaintainers/NewPackageProcess|New package process for existing contributors]]
| |
|
| |
| Дополнительно
| |
| * [http://magazine.redhat.com/2008/02/28/when-sally-met-eddie-the-fedora-package-story/ When Sally met Eddie: The Fedora package story]
| |
| * [[CVS_access_for_package_maintainers|CVS access for package maintainers]]
| |
| * [[Using_CVS_FAQ_for_package_maintainers|Using CVS FAQ for package maintainers]]
| |
| * [http://gazette.linux.ru.net/lg67/articles/rus-nazario2.html Использование ssh-agent от SSH1 и OpenSSH ]
| |
|
| |
| Перво-наперво посмотреть нет ли уже такого пакета в :
| |
| * [https://admin.fedoraproject.org/pkgdb/packages/ Fedora Package Database]
| |
| * в списке [https://bugzilla.redhat.com/ Review Request]
| |
| * а также в списке https://bugzilla.rpmfusion.org/ (прим. авт.: я так "накололся" с mocp - "изобрел" spec, который уже был на ревью в rpmfusion)
| |
|
| |
| Можно взять спек от похожей проги (а лучше несколько)
| |
| <pre>
| |
| $ yumdownloader --source sourcepackage-name
| |
| </pre>
| |
|
| |
|
| |
| == Настройка системы ==
| |
|
| |
| [[PackageMaintainers/CreatingPackageHowTo|How to create an RPM package]]
| |
| <pre>
| |
| # yum groupinstall "Development Tools"
| |
| # yum install rpmdevtools
| |
| </pre>
| |
|
| |
| Создать отдельного юзера под которым будут собираться пакеты:
| |
| <pre>
| |
| # /usr/sbin/useradd makerpm
| |
| </pre>
| |
|
| |
| Создать дерево каталогов, необходимое для сборки
| |
| <pre>
| |
| $ rpmdev-setuptree
| |
| </pre>
| |
|
| |
| == Имена ==
| |
|
| |
| [[Packaging/NamingGuidelines|Packaging:NamingGuidelines]]
| |
|
| |
| Допустимые символы для именования пакета
| |
| <pre>
| |
| a--z A--Z 0--9
| |
| -._+
| |
| </pre>
| |
|
| |
| При присвоении имен пакетов для Fedora, мантайнеру необходимо использовать <code>-</code>
| |
| в качестве разделителя для названия частей. Мантайнер **НЕ** должен юзать <code>_ + . </code> в качестве разделителя.
| |
|
| |
|
| |
| Имя '''spec''' файла по схеме : <code>%{имя пакета}.spec</code>. Если имя пакета foo-1.0.0-1.src.rpm, то имя spec файла д.б. <code>foo.spec</code>
| |
|
| |
| <code>%{номер версии}</code> не нужно писать в имени spec файла.
| |
|
| |
| Поле <code>Version</code> в спеке должно быть.
| |
|
| |
| <code>release number</code> (или в старых доках ''vepoch'') начинается с 1. При незначительных изменениях он увеличивается на 1.
| |
| При значительных изменениях увеличивается <code>version number</code> и <code>release number</code> опять начинается с 1.
| |
|
| |
| См. также [[Packaging:DistTag|Packaging:DistTag]].
| |