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:
- if (@an_array) { print "has array elements\n" }
- 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