Compilar darktable en Linux Mint

Pasos para compilar e instalar darktable del código fuente en Linux Mint.

Versiones comprobadas

  • Comprobado con Darktable 3.6.0 y Linux Mint 20.2

Instalar dependencias

Instalar dependencias mínimas:

sudo apt get udo apt-get install gcc g++ cmake intltool xsltproc libgtk-3-dev libxml2-utils libxml2-dev liblensfun-dev librsvg2-dev libsqlite3-dev libcurl4-gnutls-dev libjpeg-dev libtiff5-dev liblcms2-dev libjson-glib-dev libexiv2-dev libpugixml-dev git

Instalar dependencias opcionales. Altamente recomendado si quiere una instalación darktable completa con todas sus funcionalidades.
Esto instalará todas las dependencias opcionales exepto GMIC y LIBAVIF por los siguientes motivos:

  • Mint 20.1 viene conlibgmic-dev 2.4.5 y darktable require >= 2.7, por lo que no se puede instalar usando el repositorio oficial.
  • El paquete libavif-dev todavía no soporta codificar en AVIF en los sistemas basados en Debian usando repositorios oficiales. (Bug reportado en Debian aquí)
sudo apt-get install libgphoto2-dev libsoup2.4-dev libopenexr-dev libwebp-dev libopenjp2-7-dev libsecret-1-dev libgraphicsmagick1-dev libcolord-dev libcolord-gtk-dev libcups2-dev libosmgpsmap-1.0-dev libopenjp2-7-dev python3-jsonschema llvm-11-dev clang libimage-exiftool-perl liblua5.3-dev libsaxon-java openjdk-14-jre imagemagick fop po4a clang-tools-11

Descarga el código fuente y compila

git clone https://github.com/darktable-org/darktable.git
cd darktable
# Quédate en la rama master si quieres compilar la última versión de desarrollo o 
# encuentra la última publicación estable. En este ejemplo es el release-3.6.0:
git checkout release-3.6.0
git submodule init
git submodule update
./build.sh

Instalar

Cuando termine la compilación, el sistema te dará una nota con el comando de instalación. Ejecútalo. Será algo como esto:

sudo cmake --build "./build" --target install -- -j8

Abre Darktable

Ya puedes ejecutar darktable o crearte un link a tu escritorio para un uso más cómodo:

/opt/darktable/bin/darktable
2 Me gusta

Qué ventajas nos aporta compliar nosotros el software?

Para el usuario recién llegado a darktable quizás no note la diferencia, pero a medida que avanzas más con la aplicación te pueda interesar más compilarlo tú en algunos casos.

Yo le veo 3 ventajas:

  • Tener lo último. Si te gusta jugar con fuego y probar lo último de lo último puedes compilar la últimísima versión de darktable (actualmente la 3.5). Pero al menos que necesites una característica en especial o corrigan un problema en concreto que necesitas, no lo recomendaría para un entorno de producción. Eso sí, también puedes elegir compilar la última versión estable (actualmente la 3.4.1)

  • Rapidez. Diferentes distribuciones de Linux tardan semanas o incluso meses en sacar la última versión en su repositorio. Si te lo compilas tú, lo tienes el mismo día que los desarrolladores la publiquen.

  • Funcionalidad. El paquete ya compilado, según quien lo haya hecho no siempre contiene todas las dependencias opcionales. Puede ser que una funcionalidad en concreto no la tengas. O lo que es más frecuente aún, es que sí tenga la dependecia pero con una versión anterior.

En mi caso por ejemplo me pasó que mi cámara, la canon 5DS no estaba en la base de datos de lensfun, por lo que no le podía aplicar la correción de lente en darktable. Lo solucioné añadiendo mi cámara a lensfun, pero claro la versión compilada de darktable se compiló con una versión antigua de lensfun por lo que seguía sin podar usar el módulo. Sin embargo, compilando yo mismo yo podía acceder a la última versión de lensfun e inmediatamente pude empezar a usar la corrección de lente que quería.

La compilación puede complicarse en algunas distribuciones, pero en la mayoría de los casos si sigues los pasos es rápida y efectiva. Lo recomendaría sólo para el usuario medio-avanzado de darktable.

Buena explicación. Yo voy a preferir la seguridad, salvo que sea un módulo súper imprescindible. Cómo podría ser panorámicas o stacking. Aún así pienso que eso tardará en llegar.

En mi caso por ejemplo me pasó que mi cámara, la canon 5DS no estaba en la base de datos de lensfun, por lo que no le podía aplicar la correción de lente en darktable. Lo solucioné añadiendo mi cámara a lensfun, pero claro la versión compilada de darktable se compiló con una versión antigua de lensfun por lo que seguía sin podar usar el módulo. Sin embargo, compilando yo mismo yo podía acceder a la última versión de lensfun e inmediatamente pude empezar a usar la corrección de lente que quería.

Recuerdo que también mi cámara no estaba listada en lensfun, por lo que también la añadí a la base de datos. Pero no fue necesario recompilar darktable para que se listara el modelo y poder usar las correcciones.

He actualizado las instrucciones para Darktable 3.6.0
Básicamente se trata de hacer el checkout de la release-3.6.0. Lo demás, igual.
Lo he probado en un Linux Mint 20.2 Uma y ha funcionado perfectamente

Gracias @jdbaldoma!