web-dev-qa-db-fra.com

L'argument "Perl_version" n'est pas numérique dans ge numérique (> =) à (eval 534) ligne 1

Depuis la dernière mise à jour du paquet, tous mes serveurs Ubuntu 14.04.1 m'envoient des courriels avec un avertissement Cron - le sujet est

Test Cron -e/usr/sbin/amavisd-new-cronjob &&/usr/sbin/amavisd-new-cronjob sa-sync

avec un contenu corporel

Argument "Perl_version" isn't numeric in numeric ge (>=) at (eval 530) line 1.
Argument "Perl_version" isn't numeric in numeric ge (>=) at (eval 1023) line 1.
Argument "Perl_version" isn't numeric in numeric ge (>=) at (eval 532) line 1.
Argument "Perl_version" isn't numeric in numeric ge (>=) at (eval 1025) line 1.

Dois-je m'inquiéter à ce sujet et comment puis-je le résoudre? Ou puis-je seulement attendre la mise à jour d'Amavis?

Merci.

4
Xdg

Dans les commentaires sur @cgross, il semble que je ne sois pas le seul à ne pas avoir mis à niveau SpamAssassin vers la version 3.4.0.

Je vais donc créer ma propre réponse à partir de ce que j'ai fait.


Téléchargez les patchs avec

wget "http://svn.Apache.org/viewvc/spamassassin/trunk/lib/Mail/SpamAssassin/Conf/Parser.pm?r1=1642207&r2=1642206&pathrev=1642207&view=patch" -O parser.pm.patch
wget "http://svn.Apache.org/viewvc/spamassassin/trunk/lib/Mail/SpamAssassin/Conf.pm?r1=1642207&r2=1642206&pathrev=1642207&view=patch" -O conf.pm.patch

Basculez sur root et corrigez les fichiers

su
patch /usr/share/Perl5/Mail/SpamAssassin/Conf/Parser.pm < parser.pm.patch
patch /usr/share/Perl5/Mail/SpamAssassin/Conf.pm < conf.pm.patch
4
Germar

Pour ceux qui utilisent sa-learn: Basculez vers une version plus récente de Mail-SpamAssassin (par exemple, 3.4.0). Si vous avez installé Mail :: SpamAssassin en utilisant CPAN, vous pouvez le mettre à jour comme ceci:

cpan upgrade Mail::SpamAssassin

Pour tous les autres, examinez vos scripts et essayez d'incorporer la solution de contournement utilisée dans Mail-SpamAssassin:

# Store the version for later use
my $mm_version = $ExtUtils::MakeMaker::VERSION;

# avoid stupid 'Argument "6.30_01" isn't numeric in numeric ge (>=)' warnings;
# strip off the beta Subversion noise that causes the trouble.
$mm_version =~ s/_\S+$//;      # "6.30_01" => "6.30"

if ($mm_version+0 < 5.45) {
  die "SpamAssassin Makefile.PL requires at least ExtUtils::MakeMaker v5.45";
}
2
cgross

Ceci est un avertissement, pas une erreur fatale. Il peut être ignoré en toute sécurité. Cela est dû à une récente mise à jour de la règle utilisant une condition SA qui a été ajoutée à la jonction mais n'a pas encore été publiée.

La réponse de Germar résoudra le problème mais ne sera peut-être pas acceptable pour ceux qui veulent rester avec du code de distribution pure.

Je ne sais pas avec quelle rapidité les distributions incorporeront les SA modifications: https://svn.Apache.org/viewvc?view=revision&revision=1642207

La règle en question a été désactivée dans le sandbox de règles, elle sera (espérons-le) publiée dans les mises à jour d'ici ce soir (2014-11-30) et cet avertissement devrait alors s'arrêter.

1
John Hardin