Accéder au contenu.
Menu Sympa

fr - Re: [sympa-fr] les erreurs suivantes (mhonarc)

Objet : Pour les administrateurs de serveurs de listes utilisant le logiciel Sympa

Archives de la liste

Chronologique Discussions  
  • From: Bruno Jolys <adresse@cachée>
  • To: adresse@cachée
  • Subject: Re: [sympa-fr] les erreurs suivantes (mhonarc)
  • Date: Sun, 9 Jul 2017 22:50:13 +0200

Bon, j'ai trouvé pour l'erreur sur defined(%hash) :

Ça a l'air d'être une fonction dépréciée pour les clés de hashage dans les versions récentes de perl :

http://perldoc.perl.org/functions/defined.html

Use of defined on aggregates (hashes and arrays) is no longer supported. It used to report whether memory for that aggregate had ever been allocated. You should instead use a simple test for size:

  1. if (@an_array) { print "has array elements\n" }
  2. if (%a_hash) { print "has hash members\n" }

When used on a hash element, it tells you whether the value is defined, not whether the key exists in the hash. Use exists for the latter purpose.

Et comme par hasard, j'ai deux versions de ce script, avec deux codages différents pour cette fonction :

# sed -n '32 p; 1563,1575 p' /usr/share/mhonarc/mhamain.pl

$VERSION = '2.6.19+';
##---------------------------------------------------------------------------
##    Create Index2MsgId if not defined
##
sub defineIndex2MsgId {
    no warnings qw(deprecated);
    unless (%Index2MsgId) {
    foreach (keys %MsgId) {
        $Index2MsgId{$MsgId{$_}} = $_;
    }
    }
}

##---------------------------------------------------------------------------

# sed -n '32 p; 1560,1571 p' /usr/local/share/perl/5.24.1/mhamain.pl
$VERSION = '2.6.19';
##---------------------------------------------------------------------------
##    Create Index2MsgId if not defined
##
sub defineIndex2MsgId {
    no warnings qw(deprecated);
    if (!defined(%Index2MsgId)) {
    foreach (keys %MsgId) {
        $Index2MsgId{$MsgId{$_}} = $_;
    }
    }
}

Je ne sais pas pourquoi.

Mais du coup, en faisant un simple lien de l'une à l'autre, ça roule :

# mv /usr/local/share/perl/5.24.1/mhamain.pl /usr/local/share/perl/5.24.1/mhamain.pl.old
# ln -s /usr/share/mhonarc/mhamain.pl /usr/local/share/perl/5.24.1/mhamain.pl

Et du coup l'installation va jusqu'au bout cette fois :

# /usr/lib/sympa/bin/sympa_wizard.pl --check
##############################################################################
# The programme va vous aider à installer tous les modules Perl (CPAN) requis par Sympa.
## Sympa nécessite l'installation de 50 à 65 modules pour fonctionner correctement.
# L'ensemble du processus d'installation devrait prendre autour de 15 minutes.
# Vous devrez tout d'abord l'outil de ligne de commande CPAN lui-même
# et sélectionner votre serveur CPAN favori.
# Notez que vous pouvez préférer installer ces modules à l'aide de votre
# gestionnaire de paquetage (yum, apt-get) préféré.
# Vous pouvez interrompre ce programme à tout moment. Il pourra être relancé
# sans dommage par la suite.
##############################################################################
Appuyez sur une touche pour continuer...



Vérification de la version de l'interpréteur Perl :

Votre version de Perl est suffisante (5.024001 >= 5.008)

Vérification des modules OBLIGATOIRES :

module Perl             depuis CPAN             STATUS
-----------             ---------               ------
Archive::Zip            Archive-Zip             OK (1.59   >= 1.05)
CGI                     CGI                     OK (4.35   >= 3.51)
Class::Singleton        Class-Singleton         OK (1.5    >= 1.03)
DBD::mysql              DBD-mysql               OK (4.041  >= 4.008)
DBI                     DBI                     OK (1.636  >= 1.48)
DateTime::Format::Mail  DateTime-Format-Mail    OK (0.403  >= 0.28)
DateTime::TimeZone      DateTime-TimeZone       OK (2.09   >= 0.59)
Digest::MD5             Digest-MD5              OK (2.54   >= 2.00)
Encode                  Encode                  OK (2.88   >= 1.0)
File::Copy::Recursive   File-Copy-Recursive     OK (0.38   >= 0.36)
File::NFSLock           File-NFSLock            OK (1.27   >= 1.0)
File::Path              File-Path               OK (2.1201 >= 2.08)
HTML::FormatText        HTML-Format             OK (2.12   >= 1.0)
HTML::StripScripts::ParserHTML-StripScripts-ParserOK (1.03   >= 1.03)
HTML::TreeBuilder       HTML-Tree               OK (5.03   >= 1.0)
IO::File                IO                      OK (1.16   >= 1.10)
IO::Scalar              IO-stringy              OK (2.111  >= 1.0)
LWP::UserAgent          libwww-perl             OK (6.15   >= 1.0)
List::Util::XS          Scalar-List-Utils       OK (1.47   >= 1.20)
Locale::Messages        libintl-perl            OK (1.26   >= 1.20)
MHonArc::UTF8           MHonArc                 OK (2.6.19+ >= 2.6.18)
MIME::Base64            MIME-Base64             OK (3.15   >= 3.03)
MIME::Charset           MIME-Charset            OK (1.012  >= 1.011.3)
MIME::EncWords          MIME-EncWords           OK (1.014.3 >= 1.014)
MIME::Lite::HTML        MIME-Lite-HTML          OK (1.24   >= 1.23)
MIME::Tools             MIME-tools              OK (5.508  >= 5.423)
Mail::Address           MailTools               OK (2.18   >= 1.70)
Net::CIDR               Net-CIDR                OK (0.18   >= 0.16)
Sys::Syslog             Sys-Syslog              OK (0.33_01 >= 0.03)
Template                Template-Toolkit        OK (2.24   >= 2.21)
Term::ProgressBar       Term-ProgressBar        OK (2.18   >= 2.09)
Text::LineFold          Unicode-LineBreak       OK (2016.00702 >= 2011.05)
Time::HiRes             Time-HiRes              OK (1.9733 >= 1.29)
URI::Escape             URI                     OK (3.31   >= 3.28)
XML::LibXML             XML-LibXML              OK (2.0128 >= 1.70)

Vérification des modules OPTIONNELS :

module Perl             depuis CPAN             STATUS
-----------             ---------               ------
AuthCAS                 AuthCAS                 OK (1.7    >= 1.4)
CGI::Fast               CGI-Fast                OK (2.12   >= 1.08)
Crypt::CipherSaber      Crypt-CipherSaber       OK (1.01   >= 0.50)
Crypt::OpenSSL::X509    Crypt-OpenSSL-X509      OK (1.807  >= 1.800.1)
Crypt::SMIME            Crypt-SMIME             OK (0.19   >= 0.15)
DBD::CSV                DBD-CSV                 version trop ancienne (0.49 < 1.0)
[Sun Jul  9 22:46:06 2017] sympa_wizard.pl: Use of uninitialized value in printf at /usr/lib/sympa/bin/sympa_wizard.pl line 572.
>>>>>>> Vous devez mettre à jour "DBD-CSV" vers la version "". <<<<<<
Setting FTP Passive mode
-> Utilisation de ce module : CSV database driver, required if you include
   list members, owners or editors from CSV file.
-> Installer le module DBD::CSV ? [n]
DBD::ODBC               DBD-ODBC                n'a pas été trouvé sur le sytème.
-> Utilisation de ce module : Pilote de base de données ODBC ; requis si vous
   comptez vous connecter à une base de données de type ODBC.
-> Installer le module DBD::ODBC ? [n]
DBD::Oracle             DBD-Oracle              n'a pas été trouvé sur le sytème.
-> Utilisation de ce module : Pilote de base de données Oracle ; requis si
   vous comptez vous connecter à une base de données de type Oracle.
-> Installer le module DBD::Oracle ? [n]
DBD::Pg                 DBD-Pg                  OK (3.5.3  >= 2.00)
DBD::SQLite             DBD-SQLite              OK (1.54   >= 1.31)
DBD::Sybase             DBD-Sybase              n'a pas été trouvé sur le sytème.
-> Utilisation de ce module : Pilote de base de données Sybase ; requis si
   vous comptez vous connecter à une base de données de type Sybase.
-> Installer le module DBD::Sybase ? [n]
Data::Password          Data-Password           OK (1.12   >= 1.07)
Encode::Locale          Encode-Locale           OK (1.05   >= 1.02)
FCGI                    CGI-Fast                OK (0.78   >= 0.67)
IO::Socket::SSL         IO-Socket-SSL           OK (2.044  >= 0.90)
Mail::DKIM::Verifier    Mail-DKIM               OK (0.4    >= 0.37)
Net::DNS                Net-DNS                 OK (1.07   >= 0.65)
Net::LDAP               perl-ldap               OK (0.65   >= 0.40)
Net::SMTP               libnet                  OK (3.08_01 >= 1.0)
SOAP::Lite              SOAP-Lite               OK (1.20   >= 0.712)
******* NOTE *******
Vous pouvez récupérer tous ces modules depuis n'importe quel serveur CPAN
(par exemple ftp://ftp.pasteur.fr/pub/computing/CPAN/CPAN.html)

Mais j'ai toujours l'erreur de départ sur les archives... :-\

Bruno

Le 09/07/2017 à 19:17, Bruno Jolys a écrit :

On dirait bien une erreur d'installation :

# /usr/lib/sympa/bin/sympa_wizard.pl --check

##############################################################################
# The programme va vous aider à installer tous les modules Perl (CPAN) requis par Sympa.
## Sympa nécessite l'installation de 50 à 65 modules pour fonctionner correctement.
# L'ensemble du processus d'installation devrait prendre autour de 15 minutes.
# Vous devrez tout d'abord l'outil de ligne de commande CPAN lui-même
# et sélectionner votre serveur CPAN favori.
# Notez que vous pouvez préférer installer ces modules à l'aide de votre
# gestionnaire de paquetage (yum, apt-get) préféré.
# Vous pouvez interrompre ce programme à tout moment. Il pourra être relancé
# sans dommage par la suite.
##############################################################################
Appuyez sur une touche pour continuer...


Vérification de la version de l'interpréteur Perl :

Votre version de Perl est suffisante (5.024001 >= 5.008)

Vérification des modules OBLIGATOIRES :

module Perl             depuis CPAN             STATUS
-----------             ---------               ------
Archive::Zip            Archive-Zip             OK (1.59   >= 1.05)
CGI                     CGI                     OK (4.35   >= 3.51)
Class::Singleton        Class-Singleton         OK (1.5    >= 1.03)
DBD::mysql              DBD-mysql               OK (4.041  >= 4.008)
DBI                     DBI                     OK (1.636  >= 1.48)
DateTime::Format::Mail  DateTime-Format-Mail    OK (0.403  >= 0.28)
DateTime::TimeZone      DateTime-TimeZone       OK (2.09   >= 0.59)
Digest::MD5             Digest-MD5              OK (2.54   >= 2.00)
Encode                  Encode                  OK (2.88   >= 1.0)
File::Copy::Recursive   File-Copy-Recursive     OK (0.38   >= 0.36)
File::NFSLock           File-NFSLock            OK (1.27   >= 1.0)
File::Path              File-Path               OK (2.1201 >= 2.08)
HTML::FormatText        HTML-Format             OK (2.12   >= 1.0)
HTML::StripScripts::ParserHTML-StripScripts-ParserOK (1.03   >= 1.03)
HTML::TreeBuilder       HTML-Tree               OK (5.03   >= 1.0)
IO::File                IO                      OK (1.16   >= 1.10)
IO::Scalar              IO-stringy              OK (2.111  >= 1.0)
LWP::UserAgent          libwww-perl             OK (6.15   >= 1.0)
List::Util::XS          Scalar-List-Utils       OK (1.47   >= 1.20)
Locale::Messages        libintl-perl            OK (1.26   >= 1.20)
Can't use 'defined(%hash)' (Maybe you should just omit the defined()?) at /usr/local/share/perl/5.24.1/mhamain.pl line 1565.
Compilation failed in require at /usr/lib/sympa/bin/sympa_wizard.pl line 550.

MHonArc::UTF8           MHonArc

Et vers cette fameuse ligne 550 on a :

# nano /usr/lib/sympa/bin/sympa_wizard.pl               

548    ## MHonArc module does not provide its version the standard way
549            if ($mod =~ /^MHonArc/i) {
550                require "mhamain.pl";
551                $v = $mhonarc::VERSION;
552            } else {
553
554                $vs = "$mod" . "::VERSION";
555                {
556                    no strict 'refs';
557                    $v = $$vs;
558                }
559            }

Mais le script perl requis existe pourtant bien :
# find / -iname 'mhamain.pl'
/usr/share/mhonarc/mhamain.pl
/usr/local/share/perl/5.24.1/mhamain.pl
/root/.cpan/build/MHonArc-2.6.19-22Q3lI/lib/mhamain.pl

Une idée ?

Bruno





Archives gérées par MHonArc 2.6.19+.

Haut de le page