Installation de Trac sur Slackware

20/10/09

Sources


A quoi cela sert ?

  • Visionner son dépot subversion en ligne
  • Gestion des incidents/bugs
  • Gestion de la roadmap du projet
  • Wiki qui permet de stocker une documentation utilisateur/technique

Installation

Téléchargements

La liste des téléchargements est assez conséquente:

Trac

wget http://ftp.edgewall.com/pub/trac/trac-VER.tar.gz
tar zxf trac-VER.tar.gz
cd trac-VER
python setup.py install --prefix=/usr

Clearsilver

wget http://www.clearsilver.net/downloads/clearsilver-VER.tar.gz
tar zxvf clearsilver-VER.tar.gz
cd clearsilver-VER
./configure --with-python=/usr/bin/python --prefix=/usr --disable-ruby --disable-java --disable-apache --disable-csharp --disable-perl
make
make install

Sqlite

wget http://www.sqlite.org/sqlite-VER.tar.gz
tar zxf sqlite-VER.tar.gz
cd sqlite-VER
./configure --prefix=/usr
make
make install
ln -s /usr/bin/sqlite3 /usr/bin/sqlite

pysqlite

wget http://code.google.com/p/pysqlite/downloads/list/VER/
tar zxf pysqlite-VER.tar.gz
cd pysqlite-VER
python setup.py build
python setup.py install --prefix=/usr

Swig

wget http://dl.sourceforge.net/sourceforge/swig/swig-VER.tar.gz
tar zxf swig-VER.tar.gz
cd swig-VER
./configure --prefix=/usr/packages --with-python=/usr/bin/python
make
make install

Subversion

wget http://subversion.tigris.org/downloads/subversion-VER.tar.gz
tar zxf subversion-VER.tar.gz
cd subversion-VER
./configure --with-python=/usr/bin/python --prefix=/usr --with-swig=/usr/bin/swig --without-berkeley-db --with-ssl --with-zlib
make
make install
make swig-py
make install-swig-py
cd /usr/lib/pythonVER/site-packages
echo /usr/lib/svn-python > subversion.pth
ln -s /usr/lib/svn-python/libsvn
ln -s /usr/lib/svn-python/svn
* Test it with python -c "from svn import client" (No errors should result.)

Test - Création d'un projet et lancement de Trac

Maintenant que tout ce beau monde est installé, on va créer le trac pour un projet:
mkdir /home/trac/projet1
trac-admin /home/trac/projet1/ initenv
Ceci étant fait, on peut lancer tracd et essayer l'interface web:
tracd -port=8000 /home/trac/projet1/
Il faut ensuite faire pointer son navigateur sur l'ip du serveur, port 8000:
http://XXX.XXX.XXX.XXX:8000/
Normalement, Trac n'affiche pas d'erreur et tout est bon ;)
Reste à faire la configuration.

Configuration

Plusieurs Projets

Il suffit de les lister en paramètre
tracd -port=8000 /home/trac/projet1/ /home/trac/projet2/
Pour lancer Trac sur tout les sous répertoires:
tracd -p 8000 -e /home/trac/

Authentification

Trac ne gère pas l'authentification "de base", il faut soit créer un fichier htpassword, soit installer un plugin.
Méthode via htpasswd:

Création du fichier avec premier identifiant:
sudo htpasswd -c FICHIER username
Ensuite pour rajouter un utilisateur:
sudo htpasswd FICHIER username2

Lancement de Trac en précisant l'htpawwsd:
tracd -p 8000 \
   --basic-auth=project1,/path/to/htpasswd1,mycompany.com \
   --basic-auth=project2,/path/to/htpasswd2,mycompany.com \
   /path/to/project1 /path/to/project2
Pour partager le fichier d'authentification, il suffit de préciser le même fichier à --basic-auth
Il est aussi possible de préciser l'utilisation d'un fichier htpasswd comme authentification pour tout les projets:
tracd -p 8000 \
   --basic-auth="*",/path/to/htpasswd,mycompany.com \
   /path/to/project1 /path/to/project2
Si on préfère les fichiers htdigest, il suffit de remplacer --basic-auth par --auth, et le tour est joué

Url du projet

Il est possible de changer l'url de base du projet:
tracd --base-path=/some/path

Rajouter des fichiers en téléchargement

Tracd peut proposer des fichiers en télécahrgement sans passer par un serveur http externe:
Placer le fichier dans le repertoire htdocs/ du projet Trac
Accéder au fichier avec une url en NOM_PROJET/chrome/site/FICHIER

Gestion des permissions

Comme les permissions unix, il est possible d'avoir des groupes dans lequels figurent les utilisateurs.
Pour la liste complète des droits, se référer au site de trac: TracPermissions
On va commencer par rajouter un groupe admins avec "e;tout les droits"e;
trac-admin /home/trac/PROJECT
permission add admins TRAC_ADMIN
permission add {username} admins
exit

Pour modifier un droit:
trac-admin /home/trac/PROJECT
permission add/remove {group} RIGHT
permission add/remove {username} RIGHT
exit
Il faut relancer tracd pour que les droits soient pris en compte.

Installation de plugins

Trac est exstensible via des plugins, pour les installer il faut easy setup tools:
wget http://peak.telecommunity.com/dist/ez_setup.py
python ez_setup.py --prefix=/usr
On teste si le tout est bien installé (ca ne doit rien renvoyer)
python -c "import pkg_resources"
Pour l'installation de plugin, il suffit de lancer easy_install sur le svn du plugin! Voici les plugins que j'installe:
easy_install http://trac-hacks.org/svn/accountmanagerplugin/0.11

Personalisation

Trac à une interface très reconaissable, mais l'on peut vouloir mieux l'intégrer avec ses sites, surtout dans le cas d'un accès public.
Tout n'est pas modifiable, mais les header/footer sont un bon début
Pour plus d'infos : TracInterfaceCustomization

Conclusion

Grâce à cette installation, on peut gagner du temps lors de la gestion de son projet, et centraliser toute les informations technique.
Trac est aussi très adapté à un accès grand public pour que celui ci puisse rajouter des "bugs" sous forme de ticket, mais attention à prévoir assez de temps pour les analyser ;)