SampleSpecs: различия между версиями

Материал из ALT Linux Wiki
м (уточнения про Group: и переводы)
м (+ссылки)
 
(не показано 7 промежуточных версий 3 участников)
Строка 2: Строка 2:


Обратите внимание на то, что метаданные заполняются в ASCII, пример переводов см. [[SampleSpecs/program|здесь]]; значение <tt>Group:</tt> — одна из строк файла {{path|/usr/lib/rpm/GROUPS}}.
Обратите внимание на то, что метаданные заполняются в ASCII, пример переводов см. [[SampleSpecs/program|здесь]]; значение <tt>Group:</tt> — одна из строк файла {{path|/usr/lib/rpm/GROUPS}}.
Не забывайте про {{cmd|[[buildreq]]}}.


=== Примеры spec-файлов ===
=== Примеры spec-файлов ===
Строка 11: Строка 13:
* [[SampleSpecs/kernelmodule|модуль ядра]]
* [[SampleSpecs/kernelmodule|модуль ядра]]
* [[SampleSpecs/kernelsource|kernel-source для модуля ядра]]
* [[SampleSpecs/kernelsource|kernel-source для модуля ядра]]
* [[SampleSpecs/javalib|java библиотека]]
* [[SampleSpecs/javalib|java-библиотека]]
* [[SampleSpecs/Maven|Пакет Java, который собирается Maven]]
* [[SampleSpecs/Maven|Пакет Java, который собирается Maven]]
* [[SampleSpecs/vimplugin|плагин для Vim]]
* [[SampleSpecs/vimplugin|плагин для Vim]]
* [[SampleSpecs/pythonmodule|модуль для Python]]
* [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]]
* [[SampleSpecs/apache2module|модуль для Apache2]]


Строка 31: Строка 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, который автоматически добавляется при портировании спеков с помощью rpmbph)
(другим вариантом в случае старого сборочного окружения является добавление [[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=*}}

Текущая версия от 06:18, 23 сентября 2022

Предлагаем вашему вниманию примеры спек-файлов для некоторых типичных пакетов RPM. Если не знаете, с чего начать упаковку пакета — попробуйте взять образец отсюда. Также полезно посмотреть готовые спеки для пакетов в packages.altlinux.org (вкладка «Спек» похожего пакета).

Обратите внимание на то, что метаданные заполняются в ASCII, пример переводов см. здесь; значение Group: — одна из строк файла /usr/lib/rpm/GROUPS.

Не забывайте про buildreq.

Примеры spec-файлов

Для получения готового спека модуля 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)

Ссылки