SpecTips
Версия от 17:16, 13 сентября 2009; MichaelShigorin (обсуждение | вклад) (forked off SpecTips/Compatibility)
Как писать спеки?
Инструменты
Макросы
Книжки
- Русский перевод Red Hat RPM Guide
- ALT Packaging
- Maximum RPM (snapshot)
- http://bog.pp.ru/work/rpm.html
- Policy
Ссылки
- Типичные ошибки при написании spec-файлов
- Про (не)использование внутренних макросов RPM (%__macro)
- Рекомендации по размещению файлов в пакетах
- http://fedora.redhat.com/docs/drafts/rpm-guide-en/
- http://fedoraproject.org/wiki/Packaging/Guidelines
- http://qa.mandriva.com/twiki/bin/view/Main/RpmHowTo
Разное
- Совместимость с «чужими» спеками
- Скрипты и коды возврата
- Фильтрация Provides/Requires
- autoreconf
- Локализация
- Одинаковые симлинки в пакетах
- «Странные» зависимости вида rpmlib(CompressedFileNames)
- Perl man3 pages
- TEXTREL
- Пакетные скрипты, в том числе триггеры
- CFLAGS в qmake
- Упаковка %files
- Борьба с TEXTREL
- Борьба с .la
- Выбор версии компилятора/auto*
- Работа со службами
Примеры
Взаимодействие
Requires:
> > Если в 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.
Rebuild
> Если все нежелающие править эту багу у себя дадут мне 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
ldv@