Compiler Shotwell depuis les sources
J’utilise régulièrement Shotwell, un gestionnaire de photos que je ne saurais que vous conseiller. Ce logiciel gère les photos au format RAW, JPEG ainsi que les vidéos. Il me permet de taguer l’ensemble de mes photos de manière simple et donc de retrouver les photos d’une personnes de manière encore plus simple. Cependant, Shotwell a pour moi 2 défauts, il ne range pas les photos comme je veux et il utilise une base de données de type SQLite qui trouve ses limites avec un nombre de photos grandissant. J’ai donc entrepris d’étudier son code afin d’analyser les possibilités d’amélioration, c’est pas fait pour ça le libre ? La particularité de Shotwell est d’être développé en Vala.
Qu’est ce que le Vala
Le Vala est un langage de programmation compilé utilisé pour le développement de programme sur la plateforme GNOME. Sa syntaxe est basé sur le C#. Lors de sa phase de compilation, il est tout d’abord converti en C puis compilé en code machine.
Installation des pré-requis
Le code de Shotwell est disponible dans un dépôt Git de GNOME. Nous avons besoin des paquets suivants afin de pouvoir débuter.
# apt-get install build-essential git
Shotwell a lui aussi ses pré-requis. Nous en trouverons la liste sur la page du Wiki Gnome de l’installation de Shotwell. La commande suivante permettra d’installer les dépendances requises à la compilation.
# apt-get install libgee-0.8-dev libgexiv2-dev libgio2.0-cil-dev libglib2.0-dev libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev libgtk-3-dev libgudev-1.0-dev libexif-dev libgphoto2-2-dev libraw-dev librest-dev libsoup2.4-dev libxml2-dev m4 libsqlite3-dev libjson-glib-dev valac libwebkitgtk-3.0-dev desktop-file-utils gnome-doc-utils libgconf2-dev
La compilation
Dans un premier temps, nous récupérons les sources de Shotwell sur le dépôt Git de Gnome.
$ git clone git://git.gnome.org/shotwell
La création du binaire se fait de manière simple via les 2 commandes suivantes :
$ cd shotwell $ ./configure $ make
La compilation demande environ 600 Mo de RAM, si vous n’avez pas assez de RAM, la compilation s’arrêtera avec les 2 lignes suivantes :
$ make ... Makefile:660: recipe for target 'src/.stamp' failed make: *** [src/.stamp] Processus arrêté
L’utilisation
Nous pouvons maintenant tester la version qui vient d’être compiler.
$ ./shotwell
Pour avoir les logs, vous devez spécifier la variable SHOTWELL_LOG
. Les logs se trouveront, par défaut, à l’emplacement ~/.cache/shotwell/shotwell.log
ou sur la console si vous spécifiez SHOTWELL_LOG_FILE=:console:
. La commande suivante vous permettra d’avoir les logs en direct sur la console.
$ SHOTWELL_LOG=1 SHOTWELL_LOG_FILE=:console: ./shotwell
L’installation
Si vous désirez utiliser cette version de manière régulière et donc l’installer sur votre ordinateur, vous pouvez l’installer avec la commande suivante :
# make install
Shotwell sera installé par défaut dans /usr/local/bin
.