La Mirada hecha Pedazos Fotografía libre con software libre

Borrar las sesiones vacías de la base de datos de Darktable

Darktable es una excelente herramienta para revelar nuestras fotografías, sin embargo, pese a tener un desarrollo muy rápido, algunas cuestiones aún están por pulir: como es el caso de la gestión de nuestra colección de imágenes. Para este fin el programa utiliza una base de datos sqlite a la cual tenemos que importar las ubicaciones de nuestras imágenes y en ella se gestionan cuestiones como las etiquetas, ajustes de la imagen y un largo etc.

Un problema de los más frecuentes es que borremos totalmente las imágenes de una sesión, o que tengamos una importación de un dispositivo fallida y se nos quede una sesión vacía que no hay forma de borrar. Por ahora no existe una solución desde el programa, aunque se está trabajando en ello (sí sabes como hacerlo te invito a que colabores en el desarrollo de Darktable). Para limpiar nuestra base de datos de todas aquellas sesiones vacías tendremos que ejecutar un script desde una consola SIEMPRE CON DARKTABLE CERRADO, os dejo el script:

#!/bin/sh

DBFILE=~/.config/darktable/library.db
TMPFILE=`mktemp -t tmp.XXXXXXXXXX`
QUERY="select A.id,B.folder,A.filename from images as A join film_rolls as B on A.film_id = B.id"
sqlite3 $DBFILE "$QUERY" > $TMPFILE
cat $TMPFILE | while read result
do
ID=$(echo "$result" | cut -f1 -d"|")
FD=$(echo "$result" | cut -f2 -d"|")
FL=$(echo "$result" | cut -f3 -d"|")
if ! [ -f "$FD/$FL" ];
then
echo "removing non existent file $FD/$FL with ID = $ID"

for table in images meta_data; do
sqlite3 "$DBFILE" "delete from $table where id=$ID"
done

for table in color_labels history mask selected_images tagged_images; do
sqlite3 "$DBFILE" "delete from $table where imgid=$ID"
done

fi
done
rm $TMPFILE

# delete now-empty filmrolls
sqlite3 "$DBFILE" "DELETE FROM film_rolls WHERE (SELECT COUNT(A.id) FROM images AS A WHERE A.film_id=film_rolls.id)=0"

Ten paciencia porque si tienes muchas imágenes tardará en encontrar todas tus sesiones vacías.

La fuente de donde he conseguido este script es del mismo proyecto darktable.org

Perfiles de color de salida en Darktable

Parece que hay algún problema con los perfiles (sRGB, Adobe, etc...) que lcms2 crea para incrustar en las imágenes de salida de darktable (JPG y TIFF). No sé si esto ocurre siempre, yo por lo menos no lo había detectado. No obstante, se está comentando en la lista de desarrollo de Darktable y lo suyo es que lo comente.

Para que esto no ocurra copiar los perfiles que usáis habitualmente sRGB.icc; AdobeRGB.icm; Prophoto.icm; etc... A la carpeta:

/usr/share/darktable/color/out 

Al reiniciar el programa os aparecerán como opción de selección de perfiles de salida. Si teníais grabado algún ajuste predeterminado, tendréis que volverlo a grabar, pero esta vez con vuestros perfiles.

Instalación de la última versión de Darktable en Debian GNU/Linux

Lo primero que tenemos que hacer es comprobar que no tenemos ninguna versión de Darktable instalada, en cuyo caso tendremos que desinstalar. Si es la versión de los repositorios, lo hacemos con aptitude (sudo aptitude remove darktable), y si es una compilación anterior, tenemos que ir a la carpeta /build de la anterior versión y ejecutar:

~$ sudo make uninstall

Ahora instalamos algunas dependencias principales de nuestro sistema Debian Jessie 8:

~$ sudo apt-get install gcc git g++ 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

Instalamos otras dependencias opcionales:

~$ sudo apt-get install libgphoto2-dev libsoup2.4-dev libopenexr-dev libwebp-dev libflickcurl-dev desktop-file-utils libopenjpeg-dev libsecret-1-dev libgraphicsmagick1-dev libcolord-dev libcolord-gtk-dev libcups2-dev libsdl1.2-dev libsdl-image1.2-dev libgl1-mesa-dev libosmgpsmap-1.0-dev

Instalamos los paquetes necesarios para el manual de darktable:

~$ sudo apt-get install default-jdk gnome-doc-utils libsaxon-java fop imagemagick docbook-xml docbook-xsl

Instalamos los paquetes necesarios para actualizar las páginas de ayuda del sistema "man":

~$ sudo apt-get install po4a

 Es un requisito para compilar Darktable la versión 3.0 de cmake, sin embargo hay un problema con la versión que hay en GNU/Debian (cmake 3.0.2), y es necesario instalar una versión superior, tendremos que desinstalar cmake e instalar la última versión:

~$ sudo apt-get remove cmake cmake-data
~$ wget https://cmake.org/files/v3.7/cmake-3.7.2.tar.gz
~$ tar xvfz cmake-3.7.2.tar.gz
~$ cd cmake-3.7.2
~$ ./configure
~$ make
~$ sudo make install

Nos ponemos en nuestra carpeta personal, por ejemplo y clonamos la carpeta de los repositorios de Darktable:

~$ git clone https://github.com/darktable-org/darktable.git
~$ cd darktable

Seleccionamos la versión que queremos compilar, esto es útil por si la última nos da problemas, seleccionar la penúltima hasta que se depuren los bugs, en este ejemplo selecciono la 2.2.1 (Por ahora hay un Bug que me impide compilar por encima de esta versión):

~$ git tag # Busca la última versión
~$ git checkout release-2.2.1

Si ya habías clonado antes la carpeta y ya descargaste el código de Darktable desde git y lo que quieres es sólo actualizar el contenido de la carpeta:

~$ cd darktable
~$ git pull

Ahora compilamos la fuente:

~$ ./build.sh --prefix /usr/local/darktable
~$ cd build
~$ make darktable-usermanual
~$ make darktable-lua-api

Para terminar instalamos los ejecutables:

~$ sudo cmake --build "/home/tomy/darktable/build" --target install -- -j4

Y creamos los enlaces simbólicos a lo ejecutables:

~$ sudo ln -sf /usr/local/darktable/share/applications/darktable.desktop /usr/share/applications/darktable.desktop
~$ sudo ln -sf /usr/local/darktable/bin/darktable /usr/local/bin/darktable
~$ sudo ln -sf /usr/local/darktable/bin/darktable-cli /usr/local/bin/darktable-cli
~$ sudo ln -sf /usr/local/darktable/bin/darktable-viewer /usr/local/bin/darktable-viewer
~$ sudo ln -sf /usr/local/darktable/bin/darktable-cltest /usr/local/bin/darktable-cltest
~$ sudo ln -sf /usr/local/darktable/share/icons/hicolor/scalable/apps/darktable.svg /usr/share/pixmaps/
~$ sudo ln -sf /usr/local/darktable/share/icons/hicolor/scalable/apps/darktable-2.svg /usr/share/pixmaps/

Yo siempre mantengo la carpeta de la fuente de darktable para cuando venga la siguiente versión desinstalar como he descrito al principio.

Si quieres comenzar a usar Darktable, puedes empezar por ojear el manual en este enlace.

REFERENCIAS:

Pagina de inicio