Geneweb est un logiciel de généalogie libre qui fonctionne sur Linux, MacOS X et Windows. Ecrit en OCamel à l’INRIA, geneweb se présente sous la forme d’une application web. Cela a l’avantage de permettre l’accès à la base de données généalogiques à de nombreuses personnes aussi bien en lecture qu’écriture.
Cependant on peut avoir envie de diffuser la base sous forme de cdrom. C’est le cas quand l’accès au réseau n’est pas possible ou que l’on souhaite archiver une version autonome de la base. La documentation de geneweb présente les manipulations à effectuer afin générer une arborescence que l’on peut ensuite graver sur un Cdrom. Si ces explications constituent une base dans l’automatisation de la tâche de création d’image ISO d’une base geneweb, ce billet explique comment arriver au but final sous Ubuntu 11.04.
En premier lieu, la manipulation consistant à compacter la base en faisant un export au format gw puis un import est à proscrire. En effet selon les cas (configuration de la base ou typologie de celle-ci comme la présence de branche), cette opération risque d’enlever des personnes dans la base. Nous recommandons donc de ne pas effectuer ces optimisations sauf si l’utilisateur en a l’habitude.
La suite des opérations est conforme à la documentation. Nous allons copier la base ainsi que les executables mais aussi mettre en place un autorun pour plateforme windows. Ainsi la base généalogique est distribuable auprès de tous les membres de votre famille même ceux qui ne sont pas (encore) passés dans la lumière du libre !
L’ensemble des opération est heureusement automatisable et nous proposons ici le script bash suivant qui va jusqu’à créer l’ISO. Attention l’exécutable gwd.exe pour Windows doit être mis à dans le répertoire à côté du script !
#!/bin/bash #----------------------------------------------- # generate cdrom iso ready to burn from geneweb #----------------------------------------------- # check if destination argument is present if [ $# -ne 2 ] then echo "Usage: $0 base destination" echo "base is the name of the base" echo "destination is the destination to write the cdrom tree where" exit 1 else BASE_NAME=$1 DEST_DIR=$2 fi # remove existing destination files if [ -e $DEST_DIR ] then rm -R $DEST_DIR fi #create destination mkdir -p $DEST_DIR # copy geneweb database cp -R /var/lib/geneweb/$BASE_NAME.gwb $DEST_DIR/$BASE_NAME.gwb # copy config file cp /var/lib/geneweb/$BASE_NAME.gwf $DEST_DIR/ # copy lang, etc, images from /usr/share/geneweb cp -R /usr/share/geneweb/lang $DEST_DIR/ cp -R /usr/share/geneweb/etc $DEST_DIR/ cp -R /usr/share/geneweb/images $DEST_DIR/ # copy images from /var/lib/geneweb cp -R /var/lib/geneweb/images $DEST_DIR/ # copy Linux executable mkdir $DEST_DIR/Linux cp `which gwd` $DEST_DIR/Linux/ # create gwd.arg for Linux echo "-wd" >> $DEST_DIR/Linux/gwd.arg echo "/tmp/geneweb" >> $DEST_DIR/Linux/gwd.arg echo "-hd" >> $DEST_DIR/Linux/gwd.arg echo "../" >> $DEST_DIR/Linux/gwd.arg echo "-bd" >> $DEST_DIR/Linux/gwd.arg echo "../" >> $DEST_DIR/Linux/gwd.arg echo "-dd" >> $DEST_DIR/Linux/gwd.arg echo "../" >> $DEST_DIR/Linux/gwd.arg # copy Windows executable mkdir $DEST_DIR/Windows cp gwd.exe $DEST_DIR/Windows/ # create gwd.arg for Windows echo "-wd" >> $DEST_DIR/Windows/gwd.arg echo "c:tempgeneweb" >> $DEST_DIR/Windows/gwd.arg echo "-hd" >> $DEST_DIR/Windows/gwd.arg echo "..\" >> $DEST_DIR/Windows/gwd.arg echo "-bd" >> $DEST_DIR/Windows/gwd.arg echo "..\" >> $DEST_DIR/Windows/gwd.arg echo "-dd" >> $DEST_DIR/Windows/gwd.arg echo "..\" >> $DEST_DIR/Windows/gwd.arg # create a launcher for Windows echo "call "cmd /c start ./Windows/gwd.exe"" >> $DEST_DIR/run.bat echo "@start "" /b "C:\Program Files\Internet Explorer\iexplore.exe" http://localhost:2317/$BASE_NAME" >> $DEST_DIR/run.bat # create autorun for Windows echo "[Autorun]" >> $DEST_DIR/autorun.inf echo "open=run.bat" >> $DEST_DIR/autorun.inf #create an iso mkisofs -V "Geneweb $BASE_NAME" -o $BASE_NAME.iso -J $DEST_DIR
Ce script a été testé sous Ubuntu 11.04. L’ISO obtenue montée sur Windows XP sous VirtualBox (simulatiion d’une gravue et insertion physique). Une fois le cdrom introduit, un navigateur s’ouvre automatiquemen sur la page d’accueil de la base contenue dans le cdrom.
Tags: Geneweb Linux Ubuntu