SpecTips

Материал из ALT Linux Wiki

(Различия между версиями)
Перейти к: навигация, поиск
(Документы: Обновлена ссылка на Maximum RPM)
 
(11 промежуточных версий не показаны.)
Строка 1: Строка 1:
[[Category:RPM spec]]
[[Category:RPM spec]]
-
{{Викифицировать}}
 
== Как писать спеки? ==
== Как писать спеки? ==
* [[Spec|Отличия спеков ALT Linux / Sisyphus от «обычного» RPM]]
* [[Spec|Отличия спеков ALT Linux / Sisyphus от «обычного» RPM]]
 +
* [[SampleSpecs|Примеры спек-файлов]]
-
=== Инструменты ===
+
=== Документы ===
-
* [[buildreq]]
+
* [[ALT_Packaging_HOWTO|Howto по упаковке пакетов в ALT]]
-
* [[add_changelog|add_changelog]]
+
* [http://ftp.altlinux.org/pub/distributions/ALTLinux/Sisyphus/doc/old/rpm_packaging_howto.html ALT Packaging] (html версия)
-
* [[rpmcs|rpmcs]]
+
* [[Policy|ALT policy]]
 +
* [http://www.lexpr.ru/node/11 Русский перевод Red Hat RPM Guide] (актуально)
 +
* [http://ftp.rpm.org/max-rpm Maximum RPM] (snapshot), [http://rpm.org/max-rpm/s1-rpm-specref-macros.html макросы]
 +
* [http://fedora.redhat.com/docs/drafts/rpm-guide-en/ Fedora RPM Guide], [http://fedoraproject.org/wiki/Packaging/Guidelines Fedora Packaging Guidelines]
 +
* [http://qa.mandriva.com/twiki/bin/view/Main/RpmHowTo Mandriva RPM Howto]
 +
* [http://bog.pp.ru/work/rpm.html Краткий курс по RPM] (старо)
-
=== [http://rpm.org/max-rpm/s1-rpm-specref-macros.html Макросы] ===
+
=== Взаимодействие ===
 +
* [[OtherDistros|С другими дистрибутивами]]
 +
* [[SpecTips/Compatibility|Совместимость с «чужими» спеками]]
 +
 
 +
=== Макросы ===
* [[SpecTips/triggers|%trigger*]]
* [[SpecTips/triggers|%trigger*]]
* [[SpecTips/optflags|%optflags]]
* [[SpecTips/optflags|%optflags]]
* [[spectips/VersionHacks|Использование конкретных версий инструментов сборки]]
* [[spectips/VersionHacks|Использование конкретных версий инструментов сборки]]
-
=== Книжки ===
+
=== Инструменты ===
-
* [http://www.lexpr.ru/node/11 Русский перевод Red Hat RPM Guide]
+
* [[buildreq]]
-
* [http://docs.altlinux.ru/alt/devel/ch01.html ALT Packaging]
+
* [[add_changelog|add_changelog]]
-
* [http://www.rpm.org/max-rpm-snapshot/p5206.html Maximum RPM] (snapshot)
+
* [[rpmcs|rpmcs]]
-
* [http://bog.pp.ru/work/rpm.html http://bog.pp.ru/work/rpm.html]
+
-
* [[Policy]]
+
-
=== Ссылки ===
+
=== Разное ===
* [[TypicalPackagingErrors|Типичные ошибки]] при написании spec-файлов
* [[TypicalPackagingErrors|Типичные ошибки]] при написании spec-файлов
-
** Про (не)использование [[TypicalPackagingErrors/InternalMacros|внутренних макросов RPM]] (%__macro)
+
** e.g. использование [[TypicalPackagingErrors/InternalMacros|внутренних макросов RPM]] (%__macro)
* [[PackageSplitting|Рекомендации по размещению файлов в пакетах]]
* [[PackageSplitting|Рекомендации по размещению файлов в пакетах]]
-
 
+
* [[SpecTips/Requires|Генерируемые зависимости]]
-
* [http://fedora.redhat.com/docs/drafts/rpm-guide-en/ http://fedora.redhat.com/docs/drafts/rpm-guide-en/]
+
* [[SpecTips/ReturnCodes|Скрипты и коды возврата]]
-
* [http://fedoraproject.org/wiki/Packaging/Guidelines http://fedoraproject.org/wiki/Packaging/Guidelines]
+
* [[SpecTips/ReqProvFilter|Фильтрация Provides/Requires]]
-
* [http://qa.mandriva.com/twiki/bin/view/Main/RpmHowTo http://qa.mandriva.com/twiki/bin/view/Main/RpmHowTo]
+
-
 
+
-
=== Разное ===
+
-
* [[SpecTips/Compatibility|Совместимость с «чужими» спеками]]
+
-
* [[spectips/ReturnCodes|Скрипты и коды возврата]]
+
-
* [[SpecTips/FiltrProvides|Фильтрация Provides/Requires]]
+
* [[SpecTips/autoreconf|autoreconf]]
* [[SpecTips/autoreconf|autoreconf]]
-
* [[spectips/l10n|Локализация]]
+
* [[SpecTips/l10n|Локализация]]
-
* [[spectips/ClashLinks|Одинаковые симлинки в пакетах]]
+
* [[SpecTips/ClashLinks|Одинаковые симлинки в пакетах]]
-
* [https://lists.altlinux.ru/pipermail/devel/2005-September/024045.html «Странные» зависимости вида rpmlib(CompressedFileNames)]
+
* [[PerlManPages|Perl man3 pages]]
-
* [[spectips/perlman3pages|Perl man3 pages]]
+
* [[TextRel|TEXTREL]]
* [[TextRel|TEXTREL]]
-
* [[SpecTips/triggers|Пакетные скрипты, в том числе триггеры]]
+
* [[SpecTips/triggers|Пакетные скрипты, в том числе триггеры]] <!-- дубль ссылки -->
* [[qmakeCFLAGS|CFLAGS в qmake]]
* [[qmakeCFLAGS|CFLAGS в qmake]]
* [[SpecTips/FileDirs|Упаковка %files]]
* [[SpecTips/FileDirs|Упаковка %files]]
Строка 48: Строка 48:
* [[SpecTips/ToolChain|Выбор версии компилятора/auto*]]
* [[SpecTips/ToolChain|Выбор версии компилятора/auto*]]
* [[ServiceMaint|Работа со службами]]
* [[ServiceMaint|Работа со службами]]
-
 
+
* [[MassRebuild|Массовая пересборка]]
-
=== Примеры ===
+
* [http://uneex.ru/LecturesCMC/PackageMaintaining2009 Курс на ВМК МГУ]
-
[[SampleSpecs|здесь]]
+
* [http://www-uxsup.csx.cam.ac.uk/~jw35/docs/rpm_config.html <tt>%config</tt> в деталях] (англ.)
-
 
+
-
=== Взаимодействие ===
+
-
[[OtherDistros|здесь]]
+
-
 
+
-
 
+
-
=== Requires: ===
+
-
<pre>> > Если в req/prov скриптах использовать опцию --verbose, то можно
+
-
> > узнать что-нибудь интересное.
+
-
> > $ rpm -ql rpm-utils |file -NF$'\t' -f - |/usr/lib/rpm/shell.req.files |/usr/lib/rpm/shell.req -v 2>&1| head
+
-
> > shell.req: /usr/bin/add_changelog: cat -> /bin/cat -> ... (via which)
+
-
> > shell.req: /usr/bin/add_changelog: /bin/cat -> coreutils (via rpmdb)
+
-
>
+
-
> Ой хорошо, сегодня только грепал recoll -- где ж он lyx зацепил.
+
-
> Кстати, куда кто смотрит, что умудряется вытащить (правильную)
+
-
> зависимость на отсутствующий в чруте пакет lyx-qt?
+
-
 
+
-
Если собирается хешером, то он смотрит в
+
-
$build/cache/contents/contents_index_bin.
+
-
 
+
-
Этот contents index как раз нужен, чтобы лучше искать зависимости вопреки
+
-
минимальной сборочной среде и в ряде случаев давать более точные
+
-
зависимости, напр. зависимость на mutt должна разрешиться в /usr/bin/mutt,
+
-
а не в mutt или mutt1.5, т.к. любой из них сгодится.
+
-
 
+
-
Кстати я внес много исправлений в find-package (это типа диспетчер, как искать
+
-
такого рода зависимости), теперь в ряде "сложных" случаев
+
-
результат будет более корректным.  См. commit messages, там есть примеры
+
-
с /sbin/ifup, openssl-config, arpsend и vim.</pre>
+
-
''[http://lists.altlinux.org/pipermail/devel/2007-March/042883.html at@]''
+
-
 
+
-
=== Rebuild ===
+
-
<pre>> Если все нежелающие править эту багу у себя дадут мне NMU -- я это сделаю.
+
-
> Сейчас несколько человек заявили что пересоберут свои пакеты. Оставшиеся я
+
-
> починю сам, если их пропустят.
+
-
 
+
-
Пусть лучше скрипты работают.
+
-
В терминологии /usr/share/doc/hasher-*/rebuild-prog.sh,
+
-
 
+
-
if egrep -qs '^Build(Requires|PreReq):.*(libpq4|postgresql8)[^-]*-devel' "$specfile"; then
+
-
        sed -i -e '/^Build\(Requires\|PreReq\):/ s/libpq4[^-]*-devel/libpq-devel/g;s/postgresql8[^-]*-devel/postgresql-devel/g' "$specfile"
+
-
        e='- Fixed postgresql build dependencies.
+
-
- Rebuilt due to libpq.so.4 -> libpq.so.5 soname change.'
+
-
else
+
-
        e='- Rebuilt due to libpq.so.4 -> libpq.so.5 soname change.'
+
-
fi</pre>
+
-
''ldv@''
+
{{Category navigation|title=RPM spec|category=RPM spec}}
{{Category navigation|title=RPM spec|category=RPM spec}}

Текущая версия на 17:43, 29 мая 2017


Содержание

Как писать спеки?

Документы

Взаимодействие

Макросы

Инструменты

Разное

 
Личные инструменты