Perl

Материал из ALT Linux Wiki
Версия от 19:04, 28 июля 2008; MichaelShigorin (обсуждение | вклад) (Import from freesource.info)
(разн.) ← Предыдущая версия | Текущая версия (разн.) | Следующая версия → (разн.)
Freesource-logo.png Blue Glass Arrow.svg MediaWiki logo.png
Эта страница была перемещена с freesource.info.
Эта страница наверняка требует чистки и улучшения — смело правьте разметку и ссылки.
Просьба по окончанию убрать этот шаблон со страницы.
> Ну вообще-то для перловых пакетов и надо использовать -bi. > Алексей Турбин об этом писал неоднократно.

Не всегда, а иногда, даже изредка. :)

Дело в том, что если в пакете есть `make test', в котором происходит загрузка (и тестирование) всех модулей, которые будут установлены, то -bi использовать не надо.

Если же в пакете тестов нету, т.е. `make test' говорит 'No tests defined for $(NAME) extension.', то использовать -bi почти наверняка надо, т.к. perl.req (в конце стадии -bi) производит полноценную загрузку модулей для синтаксического анализа (вернее, для анализа дерева опкодов), при которой отрабатывают все директивы "use" и некоторые директивы "require" (это особенность самой загрузки модулей, то есть самого перла, а не perl.req).

Что касается просто программ, написанных на перле, то рекомендую в конце секции %build добавить что-нибудь вроде

./prog --version

или

%__perl -Mblib ./prog --version

если в каталоге blib после сборки есть модули.

Это должно зафиксировать все сборочные зависимости. А также это тест на минимальную работоспособность.

А вообще треды лучше оторвать. Rafael Garcia-Suarez стал собирать перл для мандраки без тредов вообще. Кстати, вот с ним интервью: http://www.perl.com/pub/a/2005/02/24/mandrakelinux.html

at@

Если 'make test' запускается посредством макросов из /etc/rpm/macros.d/perl5, то стоит добавить в них проверку, выключающую запуск 'make test' под buildreq'ом.

За неимением (пока) секции %check, я в своих пакетах обычно использую такую конструкцию: %{?!__buildreqs:%{?!_without_check:%{?!_disable_check:%make_build -k check}}}

ldv@