Compilation et sauvegarde de darktable

Pourquoi compiler darktable ?

j’y trouve deux raisons actuellement. La première est d’avoir la version stable le plus rapidement dès la sortie. En effet, packager dépend encore du temps disponible de chaque contributeur sur les différentes distributions. La compilation permet de ne dépendre que de soi-même. La deuxième est de pouvoir tester la version en développement. Il y a eu tellement d’ajouts sur la future v3.2 que j’ai effectué le passage en production de cette version en développement. Il y a que peu d’écueils comparés au bénéfice obtenu. Et cela était à l’origine de ma démarche. Maintenant, j’ai une version de développement toujours, la 3.3, c’est-à-dire la future 3.4.

Pour la version en développement, il est toujours possible de passer par un dépôt tiers. Outre la difficulté de savoir si ils sont sécurisés correctement, la principale réside dans l’impossibilité de revenir en arrière si une fonctionnalité dysfonctionne ; ce qui est possible avec un dépôt git, un autre intérêt de la compilation.

Il y a quelques précautions à prendre tout de même :

Comment compiler et installer une première fois ?

Je ne reviendrais que peu dessus, il existe un excellent article de Nicolas Tissot ; il n’y a pas besoin de réinventer la roue : Compilation de darktable.

A ne pas oublier :

Sauvegarde de la base de données

Pour cela, borgbackup est une solution idéale. Versionner la base de données ne prend que peu de place. Je vous laisse le soin de lire le post récent paru sur le blog : par là.

Il est nécessaire de faire une sauvegarde dès que l’on change de version, juste avant la compilation. Pour ma part, je sauvegarde sur un nas maison sous un raspberry pi zéro W et je lance, en plus, des sauvegardes automatiques toutes les trois heures.

Revenir en arrière sur la base de données

Il suffit de monter comme une clé usb la dernière version de la base de données sur un emplacement et de remplacer le contenu du dossier config par le contenu monté. Cela sert quand darktable met à jour la base de données mais qu’il bugge. Comme les versions de darktable antérieures ne supportent pas le nouveau format de la base de données, il faut revenir en arrière.

Il suffit de :

Pour plus d’explications, par ici.

Revenir à la version darktable qui se lance

Pour revenir en arrière quand le “nouveau” darktable bugge, il suffit de recompiler dans la dernière version qui fonctionne. Si la base de données a été modifiée, il sera possible de revenir aussi en arrière comme écrit précédemment.

Dans un premier temps, il faut être dans le dossier git qui a été créé lors de l’installation et compilation de darktable.

La commande qui sera utilisée est :

git checkout numéro-commit
Elle sert à se placer à la version de dt voulue et ensuite il faudra lancer la compilation avec les deux commandes vu auparavant.

Pour trouver le numéro, il faut se rendre sur le site du dépôt git à savoir dépôt darktable, de cliquer sur le numéro court du commit.

Numéro court du commit

Il suffira ensuite de copier le numéro long dans la commande

git checkout numéro-commit
par exemple :

Numéro long du commit

Il suffira de relancer le script de compilation pour avoir un darktable “ancien” mais qui fonctionne.

Synthèse avec un script

En dehors des bugs qui peuvent parsemer le développement, darktable se lance assez bien dans cette version “béta”. Il peut donc être intéressant de scripter cette sauvegarde, mise à jour du dépôt git et compilation de darktable. C’est ce que j’ai fait, voici le mien :

#!/bin/bash

cd ~
echo -e "\033[31mSauvegarde et compilation de dt\033[0m"

cd git-darktable/
git pull
git submodule init
git submodule update

cd ~
borg create --compression lzma,9 /repo::{now} /home/guillaume/.config/darktable_master/

sudo rm -R /opt/darktable_master/

cd git-darktable/
./build.sh --prefix /opt/darktable_master/ --build-type Release
sudo cmake --build "/home/guillaume/git-darktable/build" --target install -- -j6

Le /repo doit vous correspondre et donc peut être modifié. Le script est à placer dans le dossier bin/ et avoir les droits pour pouvoir être lancé depuis le terminal ; assez pratique.


Infos, documents, contact… rendez-vous sur la page d’accueil