SampleSpecs: различия между версиями
м (→Примеры spec-файлов: +qt{3,4} snippets) |
м (+ссылки) |
||
(не показано 13 промежуточных версий 6 участников) | |||
Строка 1: | Строка 1: | ||
Предлагаем вашему вниманию примеры спек-файлов для некоторых типичных пакетов RPM. Если не знаете, с чего начать упаковку пакета — попробуйте взять образец отсюда. Также полезно посмотреть готовые спеки для пакетов в [http://packages.altlinux.org/ru packages.altlinux.org] (вкладка «Спек» похожего пакета). | |||
Предлагаем вашему вниманию примеры спек-файлов для некоторых типичных пакетов RPM. Если | |||
Обратите внимание на то, что метаданные заполняются в ASCII, пример переводов см. [[SampleSpecs/program|здесь]]; значение <tt>Group:</tt> — одна из строк файла {{path|/usr/lib/rpm/GROUPS}}. | |||
Не забывайте про {{cmd|[[buildreq]]}}. | |||
=== Примеры spec-файлов === | === Примеры spec-файлов === | ||
Строка 10: | Строка 13: | ||
* [[SampleSpecs/kernelmodule|модуль ядра]] | * [[SampleSpecs/kernelmodule|модуль ядра]] | ||
* [[SampleSpecs/kernelsource|kernel-source для модуля ядра]] | * [[SampleSpecs/kernelsource|kernel-source для модуля ядра]] | ||
* [[SampleSpecs/javalib|java библиотека]] | * [[SampleSpecs/javalib|java-библиотека]] | ||
* [[SampleSpecs/Maven|Пакет Java, который собирается Maven]] | |||
* [[SampleSpecs/vimplugin|плагин для Vim]] | * [[SampleSpecs/vimplugin|плагин для Vim]] | ||
* [[SampleSpecs/pythonmodule| | * [https://git.altlinux.org/people/slev/public/?p=python_spec.git;a=tree;h=refs/heads/main;hb=main| вариант 2022 для Python 3] | ||
* [[SampleSpecs/python3module|модуль для Python 3]] (тж. [[SampleSpecs/pythonmodule|для Python 2]]) -- устарело согласно [[Python packaging guide]] | |||
* [[SampleSpecs/pearmodule|модуль для PEAR]] | * [[SampleSpecs/pearmodule|модуль для PEAR]] | ||
* [[SampleSpecs/rubymodule|модуль для Ruby]] | * [[SampleSpecs/rubymodule|модуль для Ruby]]<!-- | ||
* [[SampleSpecs/gnomelib|библиотека для GNOME]] | * [[SampleSpecs/gnomelib|библиотека для GNOME]] | ||
* [[SampleSpecs/gnomeprog|программа для GNOME]] | * [[SampleSpecs/gnomeprog|программа для GNOME]]--> | ||
* [[SampleSpecs/apache2module|модуль для Apache2]] | |||
Для получения готового спека модуля perl рекомендуется использовать программу <tt>cpan2rpm</tt> из одноимённого пакета, которой указывается название модуля perl, и она формирует готовый спек, со всеми зависимостями. Не забывайте проверять description и включить страницы man и файлы README и Changelog, если они имеются, в секцию %files. | Для получения готового спека модуля perl рекомендуется использовать программу <tt>cpan2rpm</tt> из одноимённого пакета, которой указывается название модуля perl, и она формирует готовый спек, со всеми зависимостями. Не забывайте проверять description и включить страницы man и файлы README и Changelog, если они имеются, в секцию %files. | ||
Строка 28: | Строка 34: | ||
* [[SampleSpecs/qt4program|программа на qt4]] | * [[SampleSpecs/qt4program|программа на qt4]] | ||
=== | === Условное переопределение макросов === | ||
(куда бы это воткнуть? пока лучше не придумал) | ''(куда бы это воткнуть? пока лучше не придумал)'' | ||
Иногда бывает полезно определить макрос в случае, если он ещё не определён (например, для более старого сборочного окружения). На примере <tt>%_desktopdir</tt>: | Иногда бывает полезно определить макрос в случае, если он ещё не определён (например, для более старого сборочного окружения). На примере <tt>%_desktopdir</tt>: | ||
<pre>%{?!_desktopdir:%define _desktopdir %_datadir/applications}</pre> | <pre>%{?!_desktopdir:%define _desktopdir %_datadir/applications}</pre> | ||
(другим вариантом в случае старого сборочного окружения является добавление [[BuildPreReq|BuildPreReq]]: rpm-build-compat, который автоматически добавляется при портировании спеков с помощью | (другим вариантом в случае старого сборочного окружения является добавление [[BuildPreReq|BuildPreReq]]: rpm-build-compat, который автоматически добавляется при портировании спеков с помощью rpmbp из [[etersoft-build-utils]]) | ||
== | === Ссылки === | ||
* [[spec]] | |||
** [[spec/Предопределенные макросы]] | |||
* [[SpecTips]] | |||
* [[RPMMacrosDescription]] | |||
[[Категория:Сборка пакетов]] | |||
{{Category navigation|title=SampleSpecs|category=SampleSpecs|sortkey=*}} | {{Category navigation|title=SampleSpecs|category=SampleSpecs|sortkey=*}} |
Текущая версия от 09:18, 23 сентября 2022
Предлагаем вашему вниманию примеры спек-файлов для некоторых типичных пакетов RPM. Если не знаете, с чего начать упаковку пакета — попробуйте взять образец отсюда. Также полезно посмотреть готовые спеки для пакетов в packages.altlinux.org (вкладка «Спек» похожего пакета).
Обратите внимание на то, что метаданные заполняются в ASCII, пример переводов см. здесь; значение Group: — одна из строк файла /usr/lib/rpm/GROUPS.
Не забывайте про buildreq.
Примеры spec-файлов
- пустой спек
- программа (на autotools)
- программа (на cmake)
- библиотека
- модуль ядра
- kernel-source для модуля ядра
- java-библиотека
- Пакет Java, который собирается Maven
- плагин для Vim
- вариант 2022 для Python 3
- модуль для Python 3 (тж. для Python 2) -- устарело согласно Python packaging guide
- модуль для PEAR
- модуль для Ruby
- модуль для Apache2
Для получения готового спека модуля perl рекомендуется использовать программу cpan2rpm из одноимённого пакета, которой указывается название модуля perl, и она формирует готовый спек, со всеми зависимостями. Не забывайте проверять description и включить страницы man и файлы README и Changelog, если они имеются, в секцию %files.
Для получения готового спека модуля pear можно использовать команду pear make-rpm-spec название_пакета.
Что еще: перловый/питоновый/php модуль/pam модуль/сервис, KDE-шная прога со специфичными хаками
Примеры фрагментов spec-файлов
Условное переопределение макросов
(куда бы это воткнуть? пока лучше не придумал)
Иногда бывает полезно определить макрос в случае, если он ещё не определён (например, для более старого сборочного окружения). На примере %_desktopdir:
%{?!_desktopdir:%define _desktopdir %_datadir/applications}
(другим вариантом в случае старого сборочного окружения является добавление BuildPreReq: rpm-build-compat, который автоматически добавляется при портировании спеков с помощью rpmbp из etersoft-build-utils)