[devel] netamsadmin, зависимости Perl
Aleksey Avdeev
=?iso-8859-1?q?solo_=CE=C1_altlinux=2Eru?=
Чт Авг 19 13:22:57 MSD 2004
Здравствуйте.
Опакечивая netamsadmin
(<http://sourceforge.net/projects/netamsadmin/>), столкнулся со
сложностями при автоматическом поиске зависимостей для Perl
скриптов. Подскажите пожалуйста, как правильно с ними бороться.
Есть Perl скрипт /var/www/html/netamsadmin/modules/include.cgi и
некоторое множество *.pl, которыми он пользуется.
1. При сборке, наблюдаю следующие:
++++
Поиск Provides (используя /usr/lib/rpm/find-provides)
Выполняется(Provides): /bin/sh -e /home/solo/tmp/rpm-tmp.59612
+ umask 022
+ /bin/mkdir -p /home/solo/RPM/BUILD
+ cd /home/solo/RPM/BUILD
+ /usr/lib/rpm/find-provides
+ exit 0
Поиск Requires (используя /usr/lib/rpm/find-requires)
Выполняется(Requires): /bin/sh -e /home/solo/tmp/rpm-tmp.54825
+ umask 022
+ /bin/mkdir -p /home/solo/RPM/BUILD
+ cd /home/solo/RPM/BUILD
+ /usr/lib/rpm/find-requires
/home/solo/tmp/netamsadmin-buildroot/var/www/html/netamsadmin/config.pl
syntax OK
/home/solo/tmp/netamsadmin-buildroot/var/www/html/netamsadmin/index.cgi
syntax OK
Global symbol "%POLICY" requires explicit package name at
/home/solo/tmp/netamsadmin-buildroot/var/www/html/netamsadmin/modules/include.pl
line 17.
...
----
Эксперименты показали, что идёт ругань на глобальные символы за
данные в index.cgi следующим образом:
use vars qw(%cfg $VERSION %QUERY %UNIT %UNIT_BYNAME %POLICY
%POLICY_BYNAME %LOGINS %QUOTA_GLOBAL_INFO %QUOTAINFO %QUOTALIST
$GRPLIST $html %secrets_data);
Победить удаётся, только явно отключив поиск Requires в
проблемных файлах (через %add_findreq_skiplist).
2. Если указать:
%define _perl_lib_path %perl_vendor_privlib:/var/www/html/netamsadmin
то пакет провадит все свои внутренние *.pl файлы:
Provides: perl(config.pl), perl(modules/include.pl),
perl(modules/na_count.pl), perl(modules/na_graph.pl),
perl(modules/na_login.pl), perl(modules/na_main.pl),
perl(modules/na_policy.pl), perl(modules/na_quota.pl),
perl(modules/na_unit.pl), perl(modules/secrets.pl), perl(subs.pl),
perl(theme/theme.pl)
Если не указывать - запрашивает наличие присутствующего в нём
конфига config.pl:
Requires: perl(GD.pm), perl(CGI.pm), perl(POSIX.pm),
perl(config.pl), perl-base
--
С уважением. Алексей.
Подробная информация о списке рассылки Devel