Linux/fr
Cette page détaille les instructions pour compiler RawTherapee dans les systèmes GNU/Linux. Vous trouverez aussi des instructions pour la compilation dans Windows et OS X.
En cas de doute, Joigniez nous sur IRC et demandez à un humain !
Dépendances
Pour compiler RawTherapee votre système nécessite un jeu d'outils, appelés dépendances, en voici la liste pour les deux versions de RawTherapee GTK2 et GTK3
GTK+ | Paquetage | Version | Gentoo | Debian/Ubuntu | URL |
---|---|---|---|---|---|
GTK2, GTK3 | BZIP2 | bzip2>-1.0.4 | app-arch/bzip2 | libbz2-dev | http://www.bzip.org/ |
GTK2, GTK3 | EXIV2 | exiv2>=0.19 | media-gfx/exiv2 | libexiv2-dev | http://www.exiv2.org/ |
GTK2, GTK3 | EXPAT | expat>=2.1.0 | dev-libs/expat | libexpat-dev | http://expat.sourceforge.net/ |
GTK2, GTK3 | FFTW3 | fftw>=3.2.2 | sci-libs/fftw | fftw-dev | http://fftw.org/ |
GTK2, GTK3 | GCC | gcc>=4.9 | sys-devel/gcc | build-essential | http://gcc.gnu.org/ |
GTK2, GTK3 | GLIB2 | glib-2.0>=2.24 | dev-libs/glib | libglib2.0-dev | http://www.gtk.org/ |
GTK2, GTK3 | GLIBMM | glibmm-2.4>=2.24 | dev-cpp/glibmm | libglibmm-2.4-dev | http://www.gtkmm.org |
GTK2 | GTK+ | gtk+-2.0>=2.24.18 | x11-libs/gtk+ | libgtk2.0-dev | http://www.gtk.org/ |
GTK3 | GTK+ | gtk+-3.16 | x11-libs/gtk+ | libgtk-3-dev | http://www.gtk.org/ |
GTK2 | GTK2-Engines | gtk-engines-2.20.2 | x11-themes/gtk-engines | gtk2-engines | http://www.gtk.org/ |
GTK2 | GTKMM | gtkmm-2.4>=2.22 | dev-cpp/gtkmm | libgtkmm-2.4-dev | http://www.gtkmm.org |
GTK3 | GTKMM | gtkmm-3.16 | dev-cpp/gtkmm | libgtkmm-3.0-dev | http://www.gtkmm.org |
GTK2, GTK3 | JPEG | libjpeg>=6b | media-libs/jpeg | libjpeg-dev | http://libjpeg-turbo.virtualgl.org/ http://jpegclub.org/ http://www.ijg.org/ |
GTK2, GTK3 | LCMS2 | lcms>=2.6 | media-libs/lcms | liblcms2-dev | http://www.littlecms.com/ |
GTK3 | LENSFUN | lensfun>=0.2 | media-libs/lensfun | liblensfun-dev | http://lensfun.sourceforge.net/ |
GTK2, GTK3 | LIBCANBERRA | libcanberra>=0.29 | media-libs/libcanberra | libcanberra-gtk3-dev | http://0pointer.de/lennart/projects/libcanberra/ (Linux seulement) |
GTK2, GTK3 | LIBIPTCDATA | libiptcdata>=1.0.2 | media-libs/libiptcdata | libiptcdata-dev | http://libiptcdata.sourceforge.net |
GTK2, GTK3 | PNG | libpng>=1.2.44 | media-libs/libpng | libpng-dev | http://www.libpng.org/ |
GTK2, GTK3 | SIGC | sigc++-2.0 | dev-libs/libsigc++ | libsigc++-2.0-dev | http://libsigc.sourceforge.net/ |
GTK2, GTK3 | TIFF | libtiff>=3.9.4 | media-libs/tiff | libtiff-dev | http://www.remotesensing.org/libtiff/ |
GTK2, GTK3 | ZLIB | zlib>=1.2.3 | sys-libs/zlib | zlib1g-dev | http://www.zlib.net/ |
Pour compiler RawTherapee 3, obsolète, vous avez besoin de ceux-ci :
Paquetage | Version | Gentoo | Debian/Ubuntu | URL |
---|---|---|---|---|
LCMS1 | lcms<=1.99 | media-libs/lcms | liblcms1-dev | http://www.littlecms.com/ |
Pour installer toutes ces dépendances, vous devez ouvrir une console et y coller le code de la section appropriée. Notez que ces bribes de code incluent les dépendances Gtk3 si elles sont disponibles, donc si vous voulez compiler la branche Legacy "gtk2" qui utilise Gtk2, bien vouloir remplacer les dépendances Gtk3 par celles de Gtk2 comme décrit dans la liste ci-dessus.
Arch
La dernière version de Arch supporte Gtk3. Utiliser la branche dev
(ou essayez une édition "gtk3"). Les dépendances ci-dessous sont pour GTK3 seulement.
sudo pacman -S bzip2 exiv2 expat fftw glib2 glibmm gtk3 gtkmm3 lcms2 lensfun libcanberra libiptcdata libjpeg-turbo libpng libsigc++ libtiff zlib
CentOS 7.1
Centos 7.1 ne supporte pas de version suffisamment récente de Gtk3, vous ne pouvez donc compiler que la branche gtk2
.
Etant donné que CentOS 7.1 ne semble pas avoir le moteur du thème Clearlooks GTK2, vous aurez soit à installer un autre moteur du thème GTK2, ou bien après l'installation de RawTherapee d'aller dans "Préférences > Général > Thème par défaut" et de valider "Utiliser le thème du système".
sudo yum install bzip2-devel cmake curl exiv2-devel expat-devel fftw-devel gcc-c++ git glibmm24-devel gtk2-devel gtkmm24-devel lcms2-devel libjpeg-turbo-devel libcanberra-devel libiptcdata-devel libpng-devel libtiff-devel sigc++20-devel zlib-devel
Fedora
Fedora supporte Gtk3 depuis la version 22, utiliser la branche dev
(ou essayez une édition "gtk3"). Les dépendances ci-dessous sont pour GTK3 seulement. Si vous utilisez Fedora 21 ou plus ancien, utilisez la branche Legacy gtk2
.
sudo dnf install bzip2-devel cmake exiv2-devel expat-devel fftw-devel gcc-c++ glib2-devel glibmm24-devel gtk3-devel gtkmm30-devel lcms2-devel lensfun-devel libcanberra-devel libiptcdata-devel libjpeg-turbo-devel libpng-devel libsigc++20-devel libtiff-devel zlib-devel
Gentoo
Gentoo supporte Gtk3. utiliser la branche dev
(ou essayez une édition "gtk3"). Les dépendances ci-dessous sont pour GTK3 seulement.
sudo emerge -uva app-arch/bzip2 dev-cpp/gtkmm:3.0 dev-libs/expat media-gfx/exiv2 media-libs/lcms media-libs/lensfun media-libs/libcanberra media-libs/libiptcdata media-libs/libjpeg-turbo media-libs/libpng media-libs/tiff net-misc/curl sci-libs/fftw sys-libs/zlib x11-libs/gtk+:3
openSUSE
openSUSE 42.2 et Tumbleweed supportent Gtk3, utiliser la branche dev
(ou essayez une édition "gtk3"). Les dépendances ci-dessous sont pour GTK3 seulement. A noter openSUSE 42.1 supporte gtk+-3.16.7 mais la compilation échoue car l'exigence sigc++-2.0>=2.4 n'est pas respectée. Si vous utilisez une version 42.1 ou plus ancienne, utilisez la branche Legacy gtk2
.
sudo zypper in cmake fftw3-devel gcc-c++ glib2-devel glibmm2-devel gtk3-devel gtkmm3-devel libbz2-devel libcanberra-devel libexpat-devel libiptcdata-devel libjpeg-devel liblcms2-devel libpng-devel libsigc++2-devel libtiff-devel zlib-devel
Sabayon
Sabayon supporte Gtk3, utiliser la branche dev
(ou essayez une édition "gtk3"). Les dépendances ci-dessous sont pour GTK3 seulement.
sudo equo install app-arch/bzip2 dev-cpp/gtkmm:3.0 dev-libs/expat dev-util/cmake media-gfx/exiv2 media-libs/lcms media-libs/libcanberra media-libs/libiptcdata media-libs/libjpeg-turbo media-libs/libpng media-libs/tiff net-misc/curl sci-libs/fftw sys-libs/zlib x11-libs/gtk+:3
Ubuntu
Ubuntu à partir de la version 15.10 (Wily Werewolf) supporte Gtk3, utiliser la branche dev
(ou essayez une édition "gtk3"). Les dépendances ci-dessous sont pour GTK3 seulement. Les versions plus anciennes d'Ubuntu soit ne supportent pas du tout gtk3
, soit la version de gtk3
qu'elles fournissent n'est pas suffisamment récente (la branche gtk3
exige au minimum la version 3.16 de Gtk3), cela signifie que dans ce cas vous devez utiliser la branche Legacy gtk2
qui utilise Gtk2.
Ubuntu 17.10, 17.04 et 16.10
Utiliser la branche dev
(ou essayez une édition "gtk3"). Les dépendances ci-dessous sont pour GTK3 seulement.
sudo apt update sudo apt install build-essential cmake curl git libcanberra-gtk3-dev libexiv2-dev libexpat-dev libfftw3-dev libglibmm-2.4-dev libgtk-3-dev libgtkmm-3.0-dev libiptcdata0-dev libjpeg-dev liblcms2-dev libpng-dev libsigc++-2.0-dev libtiff5-dev zlib1g-dev
Ubuntu 16.04 LTS et 15.10
Utiliser la branche dev
(ou essayez une édition "gtk3"). Les dépendances ci-dessous sont pour GTK3 seulement.
sudo apt-get update sudo apt-get install build-essential cmake curl git libbz2-dev libcanberra-gtk3-dev libexiv2-dev libexpat-dev libfftw3-dev libglibmm-2.4-dev libgtk-3-dev libgtkmm-3.0-dev libiptcdata0-dev libjpeg8-dev liblcms2-dev liblensfun-dev libpng12-dev libsigc++-2.0-dev libtiff5-dev zlib1g-dev
Ubuntu 15.04, 14.10, 14.04 LTS
Utiliser la branche Legacy gtk2
. Les dépendances ci-dessous sont pour gtk2
seulement.
sudo apt-get update sudo apt-get install build-essential cmake curl git libbz2-dev libcanberra-gtk-dev libexiv2-dev libexpat-dev libfftw3-dev libglibmm-2.4-dev libgtk2.0-dev libgtkmm-2.4-dev libiptcdata0-dev libjpeg8-dev liblcms2-dev libpng12-dev libsigc++-2.0-dev libtiff5-dev zlib1g-dev
RawTherapee nécessite la version 4.9 ou supérieure de GCC. Ubuntu 14.04 LTS est fourni avec la version 4.8.2 qui est trop ancienne, pour obtenir la version 4.9, suivre ces étapes : http://askubuntu.com/questions/466651/how-do-i-use-the-latest-gcc-on-ubuntu-14-04 (en anglais)
Ubuntu 13.10, 13.04, 12.10, 12.04 LTS, 11.10
Ces versions d'Ubuntu sont très dépassées. Le code ci-dessous fonctionne habituellement mais il peut s'arrêter à tout moment. Mettez votre système d'exploitation à jour.
comme ces version d'Ubuntu ne supportent que GCC-4.8.1 ou plus ancien, la dernière version que vous pourrez compiler est commit b343b9a7 du 29-12-2015. Les versions plus récentes ne compileront pas.
sudo apt-get update sudo apt-get install build-essential cmake curl git libbz2-dev libcanberra-gtk-dev libexiv2-dev libexpat-dev libfftw3-dev libglibmm-2.4-dev libgtk2.0-dev libgtkmm-2.4-dev libiptcdata0-dev libjpeg8-dev liblcms2-dev libpng12-dev libsigc++-2.0-dev libtiff5-dev zlib1g-dev
Ubuntu 10.10 et 11.04
Ces versions d'Ubuntu sont très dépassées. Le code ci-dessous fonctionne habituellement mais il peut s'arrêter à tout moment. Mettez votre système d'exploitation à jour.
sudo apt-add-repository ppa:dasprid/rawtherapee sudo apt-get update sudo apt-get install cmake curl git libbz2-dev libcanberra-gtk-dev libexiv2-dev libexpat-dev libglibmm-2.4-dev libgtk2.0-dev libgtkmm-2.4-dev libiptcdata0-dev libjpeg62 liblcms2-dev libnm-glib2 libpng12-dev libsigc++-2.0-dev libtiff4-dev zlib1g-dev
Deux façons de continuer
Deux façons de poursuivre : soit utiliser le script Bash qui compile RawTherapee à votre place (recommandé), ou faites le manuellement.
Compilation :_la méthode automatique
Voici la façon recommandée pour compiler RawTherapee car elle est rapide, simple et sûre. Elle s'appuie sur un script Bash qui télécharge le dernier code source de RawTherapee et le compile de façon optimisée pour votre processeur. Les compilations sont prêtes à l'usage. Le script ne vérifie pas la disponibilité des dépendances, lisez donc bien le chapitre Dépendances avant de lancer le script. Les compilations sont autonomes, c'est à dire que vous pouvez faire cohabiter plusieurs versions de RawTherapee en même temps, simplement en renommant les dossiers de compilation afin que la création d'une nouvelle compilation n'écrase pas la précédente, ce qui est le cas par défaut.
Lancer le script sous un compte utilisateur, pas sous root !
Ouvrir un terminal, aller chercher le script, le rendre exécutable et le lancer :
cd ~ wget https://raw.githubusercontent.com/Beep6581/RawTherapee/dev/tools/build-rawtherapee chmod +x build-rawtherapee ./build-rawtherapee
Si tout va bien, le script se terminera par le message "Pour lancer RawTherapee entrer : ..."
Pour mettre RawTherapee à jour si vous l'avez précédemment compilé avec ce script, simplement exécuter à nouveau le script, c'est tout.
Compilation : la méthode manuelle
La façon recommandée pour compiler RawTherapee est d'utiliser le script, voir Compilation :_la méthode automatique. Pour apprendre à compiler manuellement, continuez la lecture.
Afin de préserver le bon ordre dans votre répertoire "home" pendant la compilation manuelle de multiples programmes (par ex. en n'utilisant pas le gestionnaire de paquetages de votre distribution) et pour que ce tutoriel de compilation manuelle reste compatible avec le script de compilation automatique, veuillez créer le dossier ~/programs/
qui va contenir dans le dossier ~/programs/code-rawtherapee
, tous les codes sources relatifs à RawTherapee, et dans le dossier ~/programs/rawtherapee
, la compilation. Vous pouvez utiliser la même disposition pour compiler d'autres programmes.
Cloner la source
Premièrement, il faut cloner le dépôt du code source de RawTherapee. Ouvrir une console et exécuter ces commandes :
mkdir -p ~/programs git clone https://github.com/Beep6581/RawTherapee ~/programs/code-rawtherapee cd ~/programs/code-rawtherapee
Choisir une branche
- Les fonctionnalités sont développées sur leur propre branche de fonctionnalité
- Les développements sont effectués dans la branche
dev
. Les branches de fonctionnalité sont fusionnées avec la branchedev
quand elle sont prêtes. La branchedev
est instable. - Les publications sont issues de la branche
releases
.
Essayez la dernière publication si vous souhaitez la version la plus stable. Pour voir toutes les branches disponibles, tapez :
git tag
Choisir la branche dev
ou une autre branche de fonctionnalité si désirez tester le code dernier cri. Pour voir toutes les branches disponibles tapez :
git branch -a
Le "choix" se fait via la commande "git checkout". Pour choisir une publication ou une branche, tapez
git checkout <publication ou branche>
RawTherapee utilise GTK+ pour l'interface utilisateur et exige la version 3.16 ou supérieure. Si votre système ne supporte pas cette version 3.16 ou plus récente, vous devez utiliser la publication 5.0-r1-gtk2
. Notre support de GYK2 a officiellement cessé le 02 février 2017, mettez votre système à jour.
Note: la compilation d'anciennes versions de RawTherapee échouera sur un système moderne, car les vieilles dépendances seront manquantes.
Compiler RawTherapee
Vous allez maintenant réaliser une compilation de RawTherapee, elle sera construite dans le dossier ~/programs/code-rawtherapee/build/release
, et ensuite vous déplacerez ce dossier dans ~/programs/rawtherapee
CMake
Vous devez avoir connaissance de quelques paramètres de compilation, vous passerez ceux-ci à CMake en utilisant l'option -D
, comme décrit ci-dessous :
- BUILD_TYPE
- Un des suivants :
release
(par defaut),relwithdebinfo
oudebug
. - Cela détermine si la compilation doit favoriser la rapidité d’exécution ou la quantité des commentaires en sortie de déboguage.
- Les compilations "relwithdebinfo" et "debug" vous fournira une trace d'appels bien utile si RawTherapee se plante pendant l'exécution de GDB et vous pourrez nous la soumettre afin que nous puissions résoudre le problème. La compilation "debug" est la plus lente mais génère les informations les plus détaillées. La compilation "relwithdebinfo" est presque aussi rapide qu'une compilation "release" et génère le plus souvent suffisamment d'informations bien que pas aussi détaillées qu'avec la compilation "debug". La compilation "release" ne fournira aucune information mais contient de nombreuses optimisations de la vitesse ce qui en fait un programme qui fonctionne beaucoup plus vite que la version "debug". Pour une utilisation usuelle choisissez une compilation "release" ou "relwithdebinfo". Si vous tombez sur un bug reproductible, alors refaites la compilation avec "debug" et envoyez nous la trace d'appels (ou réparez vous même et envoyez nous le patch !). Nous préférons les traces d'appels des compilations debug plutôt que celles des compilations relwithdebinfo
- Pour réaliser une compilation de type "release", écrire
-DCMAKE_BUILD_TYPE="release"
- Pour réaliser une compilation de type "release", écrire
- USE_OLD_CXX_ABI
ON
orOFF
(par défaut).- Lors de la compilation d'un programme, on doit utiliser les mêmes conventions que celles utilisées par les bibliothèques appelées par ledit programme, sinon, la compilation (création des liens) échouera. En général, on n'a pas besoin de s'en préoccuper, mais nous sommes actuellement à une époque de remplacement progressif de GCC4 par GCC5, chacun utilisant par défaut une convention incompatible avec l'autre, ce qui est la cause du problème. Si les bibliothèques sur votre système ont été compilées avec GC5, elles utilisent probablement un standard appelé C++11. Cela signifie que votre compilation de RawTherapee doit utiliser le même standard, ce qui est le cas par défaut. Cependant, si malgré l'utilisation de GCC5 vos bibliothèques étaient compilées avec l'ancien standard C++03, alors RawTherapee doit être paramétré pour utiliser le même, et pour cela vous devez configurer "USE_OLD_CXX_ABI" sur "ON":
- Pour valider USE_OLD_CXX_ABI, écrire :
-DUSE_OLD_CXX_ABI="ON"
- Pour valider USE_OLD_CXX_ABI, écrire :
- CACHE_NAME_SUFFIX
- Les options CACHE_NAME_SUFFIX définissent le suffixe des noms du répertoire de configuration et du cache qui seront utilisés par la compilation de RawTherapee. : Voir l'article Où sont les fichiers ? pour une explication de ce que sont ces répertoires.
- Pour les versions stables (si vous choisissez la branche "releases") mettre
-DCACHE_NAME_SUFFIX=""
- Pour les compilations de développement (si vous choisissez la branche "dev" ou toute autre branche que "releases") mettre
-DCACHE_NAME_SUFFIX="5-dev"
- PROC_TARGET_NUMBER
- Entre
0
(par défaut) et9
. - L'option PROC_TARGET_NUMBER définit pour quel type de CPU doit se faire l’optimisation.
- Si vous compilez pour vous-même, mettre "2". Cela signifie "natif", donc l'optimisation sera automatiquement pour le CPU détecte et RawTherapee sera aussi rapide que possible sur votre CPU. Il se peut qu'il ne fonctionne pas du tout sur d'autres architectures.
- Si vous compilez pour distribuer (à d'autres personnes), mettre "1". Cela signifie "générique", ainsi seules les optimisations supportées par le plus grand nombre de CPU seront utilisées, la compilation peut donc être téléchargée et utilisée par tout le monde, mais n'aura pas les meilleures optimisations possibles.
- Pour plus d'informations, voir le fichier "ProcessorTargets.cmake" dans le dossier cloné.
- Pour que la compilation utilise l'optimisation "native", écrire :
-DPROC_TARGET_NUMBER="2"
- Pour que la compilation utilise l'optimisation "native", écrire :
- BUILD_BUNDLE
ON
ouOFF
- Il est forcé sur "ON "pour Windows et macOS. Optionnel pour Linux où c'est "OFF" par défaut.
- Si réglé sur "ON", le programme sera compilé dans un répertoire (
DATADIR
), sinon il sera installé selonCMAKE_INSTALL_PREFIX
qui vaut typiquement pour tout le système.
- BUNDLE_BASE_INSTALL_DIR
- Utiliser un chemin absolu.
- Le programme sera compilé dans ce répertoire.
- Par exemple, choisir :
-DBUNDLE_BASE_INSTALL_DIR="$HOME/programs/rawtherapee"
- S'il n'est pas défini,
${CMAKE_BINARY_DIR}/${CMAKE_BUILD_TYPE}
sera utilisé par défaut
- LENSFUNDBDIR
- Non défini par défaut
- L'option
LENSFUNDBDIR
permet de situer la base de données lensfun dans le répertoire spécifié. Elle peut être non définie, absolue ou relative. - Si non définie, alors Lensfun utilise sa propre logique pour trouver la base de donnée. C'est l'option recommandée si Lensfun est déjà installée pour tout le système et que vous souhaitez l'utiliser.
- Vous pouvez choisir un chemin relatif ou absolu pour utiliser une base de données lensfun personnalisée.
- Si vous compilez un lot, le chemin est relatif au répertoire racine du lot, sinon il est relatif au
DATADIR
, c'est-à-dire${CMAKE_INSTALL_PREFIX}/share/rawtherapee
- OPTION_OMP
ON
(par défaut) ouOFF
.- Si validé, compile avec le support de OpenMP, ce qui valide le multithreading et rend RawTherapee plus rapide.
- WITH_LTO
ON
ouOFF
(par défaut).- Si validé, compile avec les optimisations de link-time, ce qui peut rendre RawTherapee un peu plus rapide.
- WITH_PROF
ON
ouOFF
(par défaut).- Pour des fins de débogage. Génère du code supplémentaire pour écrire des informations de profil adaptées au programme d'analyse gprof.
- WITH_SAN
OFF
(défaut) ou l'une des diverses autres options.- Pour des fins de débogage. Permet d'activer Allows enabling various sanitizers to help detect program issues.
- See GCC manual's Program Instrumentation Options chapter for more information.
- WITH_SYSTEM_KLT
ON
orOFF
(par défaut).- Build using system KLT library when ON, otherwise use KLT files bundled with RawTherapee.
- The Kanade–Lucas–Tomasi (KLT) feature tracker is used by the Auto Distortion Correction tool.
Make
Enfin, vous devez trouver combien de threads sont supportés par votre CPU. Cela rendra la compilation plus rapide mais n'aura aucun effet sur la vitesse d’exécution de RawTherapee.
- Threads
- Pour trouver combien de threads sont supportés par votre CPU, exécuter :
grep -c processor /proc/cpuinfo
- puis remplacer le nombre dans "-j4" ci-dessous par ce nombre.
Maintenant, vous êtes prêt pour la compilation :
cd ~/repo-rt "2" est un bon choix car il signifie "natif", donc l'optimisation sera automatiquement pour le CPU détecte. rm -rf build mkdir build && cd build cmake -DCMAKE_BUILD_TYPE="release" \ -DPROC_TARGET_NUMBER="2" \ -DBUILD_BUNDLE="ON" \ -DCACHE_NAME_SUFFIX="5-dev" \ -DWITH_LTO="OFF" \ .. make -j4 install mv release ~/rt
Exécuter RawTherapee
Pour lancer RawTherapee :
~/rt/rawtherapee
Le dépot du code source est dans ~/repo-rt
et le programme compilé est dans ~/rt
f it is not set
Vous pouvez effacer en toute sécurité ~/repo-rt
si vous le désirez. Le programme compilé continuera de fonctionner, mais vous aurez à refaire toutes les étapes ci-dessus pour réaliser une mise à jour. Il vaut mieux laisser le dépot intact et vous pourrez ainsi réaliser l'étape suivante dans une semaine ou un mois.
Mettre à jour RawTherapee
Chaque fois que vous désirez mettre RawTherapee à jour vers le dernier code disponible, simplement faire ce qui suit :
cd ~/repo-rt git pull
Puis répéter l'étape [Linux/fr#Compiler RawTherapee | Compiler RawTherapee]] ci-dessus.