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

Материал из ALT Linux Wiki
(Import from freesource.info)
 
(packages.altlinux.org)
 
(не показаны 3 промежуточные версии 3 участников)
Строка 1: Строка 1:
[[Category:Devel]]
[[Category:Sisyphus]]
{{MovedFromFreesourceInfo|AltLinux/Sisyphus/devel/Perl}}
> Ну вообще-то для перловых пакетов и надо использовать -bi. > Алексей Турбин об этом писал неоднократно.
Не всегда, а иногда, даже изредка. :)


Дело в том, что если в пакете есть `make test', в котором происходит
Наилучшее текущее приближение к HOWTO по упаковке perl-модулей и perl-приложений находится в пакете rpm-build-perl, в файле [http://git.altlinux.org/people/at/packages/?p=rpm-build-perl.git;a=blob_plain;f=README.ALT;hb=HEAD README.ALT].
загрузка (и тестирование) всех модулей, которые будут установлены, то
-bi использовать не надо.


Если же в пакете тестов нету, т.е. `make test' говорит
Для простой упаковки модулей из CPAN (или соответствующих CPAN-овским рекомендациям по упаковке), можно также воспользоваться утилитой [http://packages.altlinux.org/ru/Sisyphus/srpms/cpan2rpm cpan2rpm].
'No tests defined for $(NAME) extension.', то использовать -bi почти
наверняка надо, т.к. perl.req (в конце стадии -bi) производит
полноценную загрузку модулей для синтаксического анализа (вернее, для
анализа дерева опкодов), при которой отрабатывают все директивы "use"
и некоторые директивы "require" (это особенность самой загрузки модулей,
то есть самого перла, а не perl.req).


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


./prog --version
# perl-podlators is required for pod2man conversion.
 
  BuildRequires: perl-podlators
или
  ...
 
%build
%__perl -Mblib ./prog --version
%perl_vendor_build INSTALLMAN1DIR=%_man1dir
 
если в каталоге blib после сборки есть модули.
 
Это должно зафиксировать все сборочные зависимости.
А также это тест на минимальную работоспособность.
 
А вообще треды лучше оторвать. Rafael Garcia-Suarez стал собирать перл
для мандраки без тредов вообще. Кстати, вот с ним интервью:
[http://www.perl.com/pub/a/2005/02/24/mandrakelinux.html 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@''

Текущая версия от 18:49, 18 февраля 2014


Наилучшее текущее приближение к HOWTO по упаковке perl-модулей и perl-приложений находится в пакете rpm-build-perl, в файле README.ALT.

Для простой упаковки модулей из CPAN (или соответствующих CPAN-овским рекомендациям по упаковке), можно также воспользоваться утилитой cpan2rpm.

Для генерации man1 для скриптов в %_bindir:

# perl-podlators is required for pod2man conversion.
BuildRequires: perl-podlators
...
%build
%perl_vendor_build INSTALLMAN1DIR=%_man1dir