Serveur SVN, Python et Trac avec MAMP sous Mac OS X
29 août 2009Encore une fois, j’ai eu du mal à trouver de la documentation intéressante sur le net pour expliquer la procédure d’installation d’un serveur SVN et un Trac sous Mac OS, et donc j’ai décidé de partager ce petit tuto avec vous, en espérant qu’il vous sera utile (autant qu’à moi).
Prérequis :
Télécharger et installer les deux softs suivants :
- MAMP, (Apache / MySQL / PHP)
- SPMPT un petit soft qui va grandement nous simplifier la vie, un genre d’extension à MAMP, pour lui ajouter mod_python, svn, et trac en un clic. (Dailleurs c’est dommage que ce n’est pas inclus par défaut sur MAMP).
Mise en place de SVN et Trac
Une fois les deux softs téléchargés et installés avec succès (ce qui ne devrait pas poser trop de soucis), il ne vous reste plus qu’à mettre en place votre repository SVN et le relier à Trac. Pour ce faire suivez les instructions ci-dessous.
1 – Ouvrez un terminal (/Applications/utilitaires/Terminal)
2 – Créez votre repository avec la commande suivante :
/Applications/MAMP/subversion/bin/svnadmin create /Dossier/de/votre/repository
2 – Ajoutez les lignes suivantes à la fin de votre fichier de configuration Apache (/Applications/MAMP/conf/apache/httpd.conf)
LoadModule python_module modules/mod_python.so
<Location /svn>
DAV svn
SVNPath /Dossier/de/votre/repository
AuthType Basic
AuthName "Subversion Repository"
AuthUserFile /Applications/MAMP/conf/svn-auth-file
Require valid-user
</Location>
<Location /trac>
SetHandler mod_python
PythonDebug on
PythonInterpreter main_interpreter
PythonHandler trac.web.modpython_frontend
# Yout trac-projects environment
PythonOption TracEnv /Dossier/de/votre/trac
#/trac/ refer to /trac (Location)
PythonOption TracUriRoot /trac
PythonOption PYTHON_EGG_CACHE /tmp
AuthType Basic
AuthName "Trac"
AuthUserFile /Applications/MAMP/conf/svn-auth-file
Require valid-user
</Location>
3 – Après il faut créer le fichier qui contiendra les utilisateur de votre serveur SVN/Trac en utilisant la commande suivante :
htpasswd -c /Applications/MAMP/conf/svn-auth-file nomutilisateur
Choisissez ensuite votre mot de passe (cet utilisateur va être choisi pour être administrateur de Trac)
4- Ensuite, Initialisez Trac avec la commande suivante :
/Applications/MAMP/Trac/bin/trac-admin /Dossier/de/votre/trac initenv "nom-de-votre-trac" sqlite:db/trac.db "svn" /Dossier/de/votre/repository
5- Accordez ensuite les droits d’admin du trac à l’utilisateur créé précédemment :
/Applications/MAMP/Trac/bin/trac-admin /Dossier/de/votre/trac permission add nomutilisateur TRAC_ADMIN
6- Quelques réglages de droits avec les commandes suivantes :
current_user=`ls -l /Applications/MAMP/ | grep MAMP.app | awk '{ print $3 }'`
sudo chown -R $current_user /Applications/MAMP/
chmod -R ug+rw /Applications/MAMP/
Voilà maintenant votre trac et votre SVN sont prêts à être utilisé, lancez MAMP, et ensuite vous aurez accès à votre serveur svn avec l’url http://localhost:8888/svn ou votre trac avec l’adresse http://localhost:8888/trac
Mise en place du hook ‘post commit’ de Trac
Pour faire fonctionner le hook de post commit de Trac, la procédure est assez simple :
1 – Téléchargez tout dabord la dernière version du script de post-commit de trac,
2- Copiez ce script dans le dossier hooks de votre repository SVN créé précédemment,
3- modifiez ensuite le fichier post-commit.tmpl qui est dans le dossier hooks de votre svn comme suit :
REPOS="$1"
REV="$2"
TRAC_ENV="/dossier/de/votre/trac"
/Applications/MAMP/python/bin/python2.6 Dossier/de/votre/repository/hooks/trac-post-commit-hook -p "$TRAC_ENV" -r "$REV"
Remarque : Attention il faut mettre le bon numéro de version de python, actuellement dans SPMPT c’est 2.6
4- renommer ce fichier en enlevant simplement l’extension .tmpl, vous pouvez par exemple utiliser la commande :
cd /Dossier/de/votre/repository/hooks
mv post-commit.tmpl post-commit
Voilà vous êtes prêts à commiter et à agir sur le trac directement
Enjoy
Chargement ...


Youknowriad sur Blogasty
le 29 août 2009 à 21:32Retrouvez cet article sur Blogasty …
Vous aimez cet article? Votez pour lui sur Blogasty …