Compilation du module Perl Heimdal::Kadm5 sous CentOS

Rédigé par Nicolas Sulek Aucun commentaire
Classé dans : Logiciel Mots clés : Kerberos, Perl, Samba
CentOS, et donc Red Hat Enterprise Linux, implémente uniquement la version MIT de Kerberos. Ainsi, il n'est pas possible d'utiliser la version Heimdal avec les paquets fournis en standard, contrairement à d'autres distributions.
Or, pour certains usages, Heimdal est assez intéressant, notamment pour Samba 4.

L'absence de paquets pour Heimdal entraîne l'impossibilité d'installer le module Perl Heimdal::Kadm5, car il a besoin des paquets de développements de Heimdal...

Voici toutefois comment y arriver.

Récupération des bibliothèques et des paquets de développements de Heimdal


Des archives RPM existent pour Fedora et CentOS, proposées pour devenir des paquets officiels, mais ce n'est pas encore réalisé. Ces paquets ont été audités par les développeurs Fedora : https://bugzilla.redhat.com/show_bug.cgi?id=613001, ce qui leur apporte un peu plus de crédibilité.

Il faut donc télécharger heimdal-devel et heimdal-libs sur http://www.pingo.org/aai/heimdal/centos6/x86_64 et les installer.

Compilation du module Heimdal::Kadm5


Malgré l'installation de ces paquets, la compilation échouera, car le Makefile inclus dans les sources du module ne contient pas les bons chemins vers les librairies de développement Heimdal.

Pour corriger cela, on va récupérer les sources du module (Heimdal-Kadm5-0.08.tar.gz)sur http://cpan.fiat-tux.fr/authors/id/L/LE/LEIFJ/

On les décompresse avec tar et on édite le fichier Makefile.PL :
use ExtUtils::MakeMaker;
# $Id$

my $lflags= '-L/usr/lib64/heimdal -lkrb5 -lroken -lasn1 -ldes -lkadm5clnt';
my $cflags= '-I/usr/include/heimdal' ;

$cflags='-I/usr/include/heimdal';
$lflags = '-L/usr/lib64/heimdal -lkadm5clnt';
chomp $lflags;
chomp $cflags;

printf "cflags: $cflags\n";
printf "lflags: $lflags\n";

WriteMakefile(
'NAME' => 'Heimdal::Kadm5',
'VERSION_FROM' => 'Kadm5.pm',
'PREREQ_PM' => {}, # e.g., Module::Name => 1.1
($] >= 5.005 ?
(ABSTRACT_FROM => 'Kadm5.pm',
AUTHOR => 'Leif Johansson <leifj@it.su.se>') : ()),
'LIBS' => [ $lflags ],
'INC' => $cflags ,
'DEFINE' => '',
);

Plus qu'à terminer avec
make

et
make install

Les erreurs de compilation faisant référence à des fonctions deprecated ou des implicit declaration of function sont “normales", le module Perl n'étant pas vraiment finalisé et ne le sera sans doute jamais.

Les commentaires sont fermés.