[sa-conf] патч для решения проблемы парсинга версии perl'а

Victor Ustugov victor на corvax.kiev.ua
Вс Ноя 30 21:41:10 EET 2014


приветствую

в процессе работы spamassassin и sa-learn полезли тут ошибки такого плана:

Argument "perl_version" isn't numeric in numeric ge (>=) at (eval 540)
line 1.
Argument "perl_version" isn't numeric in numeric ge (>=) at (eval 1033)
line 1.


на сколько я понимаю, проблема возникает при парсинге конструкций типа
такой, каких появилось несколько в
/var/db/spamassassin/3.004000/updates_spamassassin_org/72_active.cf
(путь дан применительно к SpamAssassin'у, установленному из порта под
FreeBSD):

if perl_version >= 5.010000


наткнулся на упоминание об этом баге:

http://www.mail-archive.com/debian-bugs-dist@lists.debian.org/msg1285804.html
http://www.mail-archive.com/debian-bugs-dist@lists.debian.org/msg1285532.html

на
http://www.mail-archive.com/debian-bugs-dist@lists.debian.org/msg1285532.html
дали ссылку на https://issues.apache.org/SpamAssassin/show_bug.cgi?id=7107

в конце обсуждения бага на
https://issues.apache.org/SpamAssassin/show_bug.cgi?id=7107 есть ссылка
на http://svn.apache.org/viewvc?view=revision&revision=1642207

там ссылки на патчи для правки двух файлов:

http://svn.apache.org/viewvc/spamassassin/trunk/lib/Mail/SpamAssassin/Conf/Parser.pm?view=markup&pathrev=1642207
http://svn.apache.org/viewvc/spamassassin/trunk/lib/Mail/SpamAssassin/Conf.pm?view=markup&pathrev=1642207

на основании этих патчей создан патч для применения в своих механизмах
сборки spamassassin:

http://mta.org.ua/spamassassin-3.4.0/patches/3.4.0-perl_version/patch-src__3.4.0-perl_version.patch

этот патч включен в новый механизм сборки SpamAssassin в виде порта FreeBSD:

http://mta.org.ua/spamassassin-3.4.0/packages/ports-freebsd/spamassassin-3.4.0_14/

если при сборке spamassassin-3.4.0_14 появятся сообщения об ошибках типа
таких:

===>   Registering installation for spamassassin-3.4.0_14
pkg-static:
lstat(/usr/ports/mail/spamassassin/work/stage/usr/local/lib/perl5/site_perl/man/man3/Mail::SpamAssassin.3.gz):
No such file or directory
pkg-static:
lstat(/usr/ports/mail/spamassassin/work/stage/usr/local/lib/perl5/site_perl/man/man3/Mail::SpamAssassin::AICache.3.gz):
No such file or directory

, то не стоит пытаться откатиться на spamassassin-3.4.0_13 и применить к
нему патч patch-src__3.4.0-perl_version.patch

я пересобрал perl5-5.16.3, пути к man'ам в
/usr/local/etc/man.d/perl5.16.conf поменялись, после этого
spamassassin-3.4.0_14 установился без проблем.

старое содержимое /usr/local/etc/man.d/perl5.16.conf:

MANPATH /usr/local/lib/perl5/5.16/man
MANPATH /usr/local/lib/perl5/5.16/perl/man


новое содержимое /usr/local/etc/man.d/perl5.16.conf:

MANPATH /usr/local/lib/perl5/site_perl/man
MANPATH /usr/local/lib/perl5/5.16/perl/man


нужно еще пересобрать порты, man файлы которых лежат в
/usr/local/lib/perl5/5.16/man/man3

также патч включен в уже существующий механизм сборки SpamAssassin в
виде пакета для RedHat/CentOS/Fedora:

http://mta.org.ua/spamassassin-3.4.0/packages/rpms-redhat/spamassassin-3.4.0-12.fc22.corvax/

-- 
Best wishes Victor Ustugov  mailto:victor на corvax.kiev.ua
public GnuPG/PGP key:       http://victor.corvax.kiev.ua/corvax.asc
ICQ UIN: 371808614          JID: corvax_at_nb на jabber.corvax.kiev.ua
nic-handle: CRV-UANIC



Подробная информация о списке рассылки sa-conf