Retour de galère d’installation de Mantis (Bug Tracking) sur Debian/Lenny

closeCet article a été publié il y a 14 ans 10 mois 22 jours, il est donc possible qu’il ne soit plus à jour. Les informations proposées sont donc peut-être expirées.

Mantis est un BTS (Bug Tracking System) comme Bugzilla, gForge, Trac etc…
Je ne parlerai pas des intérêts de celui-là plutôt qu’un autre, simplement des spécificités liées au packaging Debian et d’une fonction essentielle manquante : import d’un existant de bugs depuis un tableau type CSV.
J’aborde vite fait la partie LDAP pour recommander de l’oublier – OpenLDAP et Active Directory aussi

Contenu du coffret

La release actuelle de Mantis est 1.1.7, une 1.2 est en préparation et Debian propose la 1.1.6 de stable à « SID ». Les langues sont packagées de base avec Debian.
Quelques spécificités viennent du fait que, comme d’hab, des liens symboliques de certains fichiers de conf (des include PHP) sont en alias vers /etc/mantis/ depuis l’arborescence du logiciel (/usr/share/mantis/www/).
A noter que pour une fois, on n’a pas un fichier de conf standard dans /etc qu’on adapte, mais un fichier de conf standard dans /usr/share/mantis/www/ qui inclut un fichier « local » en alias vers /etc/mantis/. Il s’agit donc d’écraser des valeurs. Bon, admettons. Le but est de ne pas toucher les fichiers de l’arborescence du produit, pour prévoir l’upgrade plus facilement :

#ls -l /usr/share/mantis/www/conf*
lrwx[...] /usr/share/mantis/www/config_db.php -> /etc/mantis/config_db.php
-rw-[...] /usr/share/mantis/www/config_defaults_inc.php
lrwx[...] /usr/share/mantis/www/config_inc.php -> /etc/mantis/config_inc.php
lrwx[...] /usr/share/mantis/www/config_local.php -> /etc/mantis/config_local.php

Ca veut surtout dire de lire d’un côté l’intégralité du fichier /usr/share/mantis/www/config_defaults_inc.php et de reprendre les paramètres qu’on veut écraser dans /etc/mantis/config_local.php. Exemple après conf minimaliste :

$g_signup_use_captcha           = OFF;
$g_administrator_email          = 'admin@blabla.fr';
$g_webmaster_email              = $g_administrator_email;
# a voir avec les utilisateurs : $g_email_receive_own = ON ?
$g_limit_email_domain           = 'blabla.fr';
$g_smtp_host                    = 'mon.smtp.blabla.net';
# pas compris, a voir : $g_email_set_category
$g_default_language             = 'french';
$g_show_footer_menu             = ON;
# LDAP : completement moisi sur mantis, surtout pour un AD

En gros, je n’y règle que la partie essentielle permettant d’envoyer des mails dans le workflow de vie du bug et je supprime les « CAPTCHA » car usage interne uniquement.

Le LDAP

Il y a quelques paramètres à positionner pour passer en authentification par le LDAP. Génial. Seul hic, de taille, les utilisateurs ne remontent pas – de ce que j’en ai lu – dans l’outil, ça implique une synchro à la main (login/mail/nom/prénom). Pourquoi ? pour pouvoir affecter les rôles (access levels) aux utilisateurs : rapporteurs, développeurs etc.
Enfin, côté Active Directory, la page du manuel ne dit qu’un mot : « TODO » et le fichier de conf indique juste de mettre « samAccountName » au lieu de « uid ».
Je me demande pourquoi j’ai pas eu confiance dans la qualité de l’intégration du LDAP…

Import/export de bug – tableau CSV (XML en fait)

Fonction essentielle si vous ne démarrez pas de rien. Dans mon cas, un fabullissimeux tableau excel de suivi de bug…
De base il n’y a rien pour importer.
Avec google, vous tomberez sur plusieurs trucs plus ou moins foireux.
Je vous la fais courte, le résultat qui marche est le suivant :

Installez le « plug-in manager »

Disponible ici : en version 0.4.0 compatible Mantis 1.1.6
Je résume la doc d’installation et explique 2/3 spécificités liées au packaging Debian – faites un backup complet d’abord (base, fichiers de conf) :

chown www-data /usr/share/mantis/www/
cp -a core.php core.php.orig
chown www-data /usr/share/mantis/www/core.php # il y aura 5/6 lignes de code en plus à la fin
chown www-data /etc/mantis/custom_strings*
ln -sf /usr/share/mantis/www/plugins/ /etc/mantis/plugins # meme s'il n'existe pas pour l'instant

Si l’installation du plugin_manager se passe mal, DROPpez les 3 tables mantis_plugins_* afin que l’installation de l’outil ne détecte plus qu’il est déjà [mal] installé.
Le checkup d’installation de l’outil peut raconter n’importe quoi, exemple si vous oubliez le droit www-data sur /etc/mantis/custom_string.php, l’installation se déroule « bien », vous n’avez juste aucun libellé dans les menus…
Après l’installation, il manquait encore un dernier chown -R www-data /usr/share/mantis/www/plugins/
Vous devriez avoir un nouveau menu disponible, nommé « plugin_manager »

Installez le plug-in « import/export »

Celui-ci disponible sur le même site n’est pas compatible (!) avec Mantis 1.1.6, allez chercher celui-là (2ème message), en version 0.1.0a9, compatible. L’installation cette fois se passe toute seule par le « plugin manager ».
Ensuite, pour balancer la purée, point de fichier CSV, mais du XML ; c’est pas plus mal. Un exemple de syntaxe de ce fichier XML est donné là.

D’autres BTS ?

Si quelqu’un a un retour d’expérience sur Bugzilla, gForge etc, n’hésitez pas.
Mantis sait apparement être relié (dans quelle mesure ?) à un CVS. Pas de mention à SVN.

One comment

  1. BUG :
    Les e-mails envoyés sont mal encodés : problème classique d’accent etc etc.
    MAIS : certains envois sont OK, d’autres non
    En attendant mieux, j’ai forcé une correction à la main :
    dans /usr/share/mantis/www/core/email_api.php, ligne 766 :

    $mail->CharSet = $t_email_data->metadata[‘charset’];

    Parfois, ça doit retourner du vide et le header qu’on reçoit est KO :

    Content-Type: text/plain; charset= » »

    J’ai forcé à : $mail->CharSet = ‘utf-8’;
    en attendant mieux

    J’ai expliqué le truc ici : http://www.mantisbt.org/bugs/view.php?id=10479
    On verra ce que ça donne, vu que je suis sur une ancienne release (mais la dernière sur Debian Stable, tout de même)

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.