[mon] problème de script perl dns.monitor [solved]

Bonjour à tous,

J’ai eu quelques problèmes avec le module dns.monitor de mon sur Debian Wheezy.
En effet, celui-ci rendait l’erreur suivante quoi qu’un advienne (même avec un --help en option)

# /usr/lib/mon/mon.d/dnscustom.monitor 127.0.0.1 defined(@array) is deprecated at /usr/lib/mon/mon.d/dnscustom.monitor line 171. (Maybe you should just omit the defined()?) defined(@array) is deprecated at /usr/lib/mon/mon.d/dnscustom.monitor line 176. (Maybe you should just omit the defined()?) defined(@array) is deprecated at /usr/lib/mon/mon.d/dnscustom.monitor line 182. (Maybe you should just omit the defined()?)

mon générait donc des alertes intempestives…
Je vous livre ma résolution car je n’ai pas trouvé beaucoup d’infos sur le net.

Il s’agit de la fonction “defined” sur une array qui n’est plus appréciée depuis perl 5.16. Voici un extrait de ma source (je ne connais pas perl personnellement) :

[quote]The next spec bigger error here just happened with 5.16 as the language police decided that defined(@array) and defined(%hash) is illegal, and will warn.
Ok now with 5.16 p5p overruled that if (@array) is semantically the same as if defined(@array), because if does not auto-vivify.[/quote]
Voir le sujet complet blogs.perl.org/users/rurban/2012 … dhash.html

Et voici mon patch pour mon 1.2.0-6 en amd64

[code]diff /usr/lib/mon/mon.d/dns.monitor /usr/lib/mon/mon.d/dnscustom.monitor
171c171
< if (!defined(@Master)) {

if (! @Master) {
176c176
< if ( !defined(@Zones) ) {


if (! @Zones) {
182c182
< if ( !defined(@Queries) ) {


if (! @Queries) { [/code]

J’espère en aider plus d’un.

J’aurais quand même une question : comment soumettre un patch à la communauté ?

Bonne journée

Salut,

Ce paquet donc:
packages.debian.org/wheezy/mon

Les bugs répertoriés pour Debian:
bugs.debian.org/cgi-bin/pkgrepor … t=unstable

La doc (pas hyper bien foutue…) qui explique comment remplir un rapport de bug, ainsi qu’y joindre un patch: debian.org/Bugs/