1. Abhängigkeiten installieren

Darktable braucht viele Pakete. Installiere sie mit pacman oder yay (für AUR):

sudo pacman -Syu  # System updaten  
sudo pacman -S base-devel cmake git intltool libjpeg-turbo libpng libtiff libxml2 sqlite3 curl openexr exiv2 lensfun librsvg libgphoto2 openmp libwebp libsecret pugixml lua libxslt osm-gps-map graphicsmagick opencl-headers opencl-icd-loader  
yay -S libraw  # Aus AUR, für RAW-Verarbeitung  
  • Für OpenCL: Stelle sicher, dass deine GPU-Treiber installiert sind (z. B. mesa für AMD/Intel, nvidia für NVIDIA).
  • Optional: gtk3 für UI, llvm für Clang-Integration.

2. Repository klonen

Klone das offizielle Git-Repo:

git clone https://github.com/darktable-org/darktable.git  
cd darktable  
  • Wechsle zu einem stabilen Branch, falls du nicht die neueste Entwicklung willst: git checkout release-4.6.x (checke git branch -r für Optionen).

3. Build vorbereiten

Erstelle ein Build-Verzeichnis und konfiguriere mit CMake:

mkdir build  
cd build  
cmake .. -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local  # Release für Performance, /usr/local für lokale Installation  
  • Optionen: -DUSE_OPENCL=ON für GPU-Unterstützung, -DUSE_LUA=ON für Lua-Scripts.
  • Wenn Fehler auftreten (z. B. fehlende Libs), installiere die fehlenden Pakete und wiederhole.

4. Kompilieren und installieren

make -j$(nproc)  # Paralleles Kompilieren (nutzt alle CPU-Kerne)  
sudo make install  
  • make kompiliert, install kopiert die Binärdateien.
  • Starte darktable mit /usr/local/bin/darktable (oder füge /usr/local/bin zu deinem PATH hinzu).

5. Testen und entwickeln

  • Starte darktable und teste deine Änderungen (z. B. in src/iop/ashift.c).
  • Für Debugging: Verwende gdb oder füge printf-Statements hinzu.
  • Wenn du OpenCL testest, checke die Logs in der Konsole.