[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