Compilar GIMP 2.9 en Debian Jessie 8.9

Prepárense para un viaje a lo desconocido 😀 , hoy vamos a intentar compilar la versión 2.9 de GIMP en Debian Jessie 8.9.

2017-09-09-131847_1366x701_scrot

Ya antes he escrito sobre lo difícil que es conseguir versiones recientes de software libre para Linux, es ilógico que en Windows puedas descargar nightly builds y en Linux, particularmente en Debian, no tengas más opción que usar una versión de hace 2 años, es material para un post de desaventuras en el que pueda sacar todo mi enojo y frustración 😛 . Pero si no puedes bajar la versión más reciente, aún queda la opción de intentar compilarla tú mismo; no debería ser tan difícil, ¿cierto 😛 ?.

Debo mencionar que Debian Stretch 9.0 trae versiones más recientes de muchos de los paquetes que usaremos en este post, por lo que compilar GIMP en Debian Stretch debería ser más fácil que en Debian Jessie. En este caso aún podemos compilar manualmente GIMP en Debian Jessie pero otros paquetes, como el emulador MAME que requiere la versión 5 de gcc, ya son imposibles de compilar con la versión de gcc en Debian Jessie. En estos casos las opciones son actualizar tu distro o, por ejemplo, compilar los programas dentro de un contenedor LXC con una distro más actual.

Volviendo a GIMP 2.9, es obvio que necesita versiones más recientes de casi todas las librerías necesarias ya que las versiones en el repositorio estable no son suficiente para cumplir los requerimientos de compilación. Este es mi primer intento por compilar GIMP en Linux así que en este post describiré los pasos y problemas que vaya encontrando en mi intento por compilarlo.

En primer lugar debemos descargar el código fuente de GIMP y extraerlo en una carpeta, por ejemplo, tu carpeta de /home/. En este caso descargué versión más reciente del código, gimp-2.9.6.tar.bz2. Podemos verificar con el comando md5sum el MD5 del archivo antes de extraerlo:

monstruosoft@monstruosoft-PC:~/Descargas$ md5sum gimp-2.9.6.tar.bz2 
b2d5b5619630288c882a35118e2241e5  gimp-2.9.6.tar.bz2

Si intentas copilar el código de GIMP ahora, seguramente obtendrás muchos errores por librerías faltantes. En particular, GIMP requiere las librerías GLib, BABL y GEGL pero, como veremos en el transcurso de este post, cada una de estas librerías tiene a su vez otras dependencias que debemos cumplir. Como lo mencioné antes, las librerías requeridas por GIMP 2.9 son, por lo general, más recientes que las disponibles en el repositorio estable de Debian Jessie 8.9, así que las tendremos que compilar manualmente. Para librerías/paquetes en las que sea suficiente la versión del repositorio estable de Debian Jessie preferiré instalarlas desde el gestor de paquetes de forma que sólo tendremos que compilar las que sean absolutamente necesarias.

En primer lugar es necesario compilar manualmente GLib. La versión de GLib en el repositorio estable de Debian es la 2.42 pero GIMP 2.9 requiere al menos la versión 2.44, así que es necesario descargar el código fuente, en este caso la versión más reciente era la 2.53 en el archivo glib-2.53.7.tar.xz. Al extraer el archivo e intentar compilar GLib, es obvio que requiere la instalación de los siguientes paquetes que, por suerte, podemos instalar desde el gestor de paquetes:

  • libffi6-dev – versión 3.1-2+deb8u1

  • libfam-dev – versión 2.7.0-17.1

  • libmount-dev – versión 2.25.2-6

Una vez instalados los paquetes anteriores, podemos compilar e instalar GLib con los siguientes comandos:

Nota: Debemos instalar en un directorio distinto al de sistema para evitar causar conflictos con los paquetes que se instalan desde el gestor de paquetes. Para instalar en un directorio distinto al de sistema, usaremos la opción –prefix soportada prácticamente por todas las librerías para Linux. En general no debes usar root o sudo para instalar librerías manualmente a menos que sepas lo que estás haciendo.

monstruosoft@monstruosoft-PC:~/glib-2.53.7$ ./configure --prefix=/home/monstruosoft/libs/
monstruosoft@monstruosoft-PC:~/glib-2.53.7$ make
monstruosoft@monstruosoft-PC:~/glib-2.53.7$ make install

Una vez que se ha compilado correctamente la librería GLib, podemos continuar con la librería BABL. La versión más reciente de BABL es la 0.1.30, babl-0.1.30.tar.bz2. Tras extraer el contenido del archivo, podemos compilar BABL:

monstruosoft@monstruosoft-PC:~/glib-2.53.7$ cd
monstruosoft@monstruosoft-PC:~$ cd babl-0.1.30/
monstruosoft@monstruosoft-PC:~/babl-0.1.30$ ./configure --prefix=/home/monstruosoft/libs/
monstruosoft@monstruosoft-PC:~/babl-0.1.30$ make
monstruosoft@monstruosoft-PC:~/babl-0.1.30$ make install

A continuación es el turno de GEGL, la versión más reciente 0.3.20. Al ejecutar el script de configuración de GEGL podemos ver que este encuentra de forma predeterminada la versión de BABL instalada en el sistema (en este caso 0.1.10) y no la que acabamos de compilar (0.1.30), ¿qué está pasando 😮 ?:

...
checking for BABL... no
configure: error: Package requirements (babl >= 0.1.30) were not met:

Requested 'babl >= 0.1.30' but version of babl is 0.1.10

Consider adjusting the PKG_CONFIG_PATH environment variable if you
installed software in a non-standard prefix.

Alternatively, you may set the environment variables BABL_CFLAGS
and BABL_LIBS to avoid the need to call pkg-config.
See the pkg-config man page for more details.

El script de configuración está buscando las librerías en los directorios de sistema y no en los directorios donde estamos instalando las versiones más recientes. Como lo indica el mensaje de error, podemos usar la variable de entorno PKG_CONFIG_PATH o bien BABL_CFLAGS y BABL_LIBS para definir las rutas de las nuevas versiones de la librería BABL. Cualquiera de las dos opciones funciona pero ya que estaremos instalando muchas nuevas librerías, la opción de PKG_CONFIG_PATH es la mejor en este caso:

monstruosoft@monstruosoft-PC:~/gegl-0.3.20$ pkg-config --modversion babl
0.1.10
monstruosoft@monstruosoft-PC:~/gegl-0.3.20$ echo $PKG_CONFIG_PATH

monstruosoft@monstruosoft-PC:~/gegl-0.3.20$ export PKG_CONFIG_PATH=/home/monstruosoft/libs/lib/pkgconfig/
monstruosoft@monstruosoft-PC:~/gegl-0.3.20$ echo $PKG_CONFIG_PATH 
/home/monstruosoft/libs/lib/pkgconfig/
monstruosoft@monstruosoft-PC:~/gegl-0.3.20$ pkg-config --modversion babl
0.1.30

Ahora podemos ver que al ejecutar nuevamente el script de configuración, este detecta correctamente las versiones de BABL y GLib que acabamos de compilar pero GEGL requiere también instalar los siguientes paquetes desde el gestor de paquetes:

  • libjson-glib-dev – versión 1.0.2-1

  • intltool – versión 0.50.2-2

Después de instalar estos paquetes podemos continuar con la compilación de GEGL (nota que algunas características opcionales no estarán activas a menos que instales todas la librerías requeridas 😮 ):

monstruosoft@monstruosoft-PC:~/gegl-0.3.20$ ./configure --prefix=/home/monstruosoft/libs/
Optional features:
  GEGL docs:       yes
  Build workshop:  no
  Build website:   no  (asciidoc not found)
  SIMD:            sse:yes mmx:yes
  Vala support:    no  (vapigen not found)

Optional dependencies:
  asciidoc:        no  (asciidoc not found)
  enscript:        no  (enscript not found)
  mrg:             no  (mrg not found)
  Ruby:            yes
  Lua:             no  (usable lua not found)
  Cairo:           yes
  Pango:           no  (usable pango not found)
  pangocairo:      no  (usable pangocairo not found)
  GDKPixbuf:       no  (gdk-pixbuf not found)
  JPEG:            yes
  PNG:             yes
  OpenEXR:         no  (OpenEXR library not found)
  rsvg:            no  (usable librsvg not found)
  SDL:             yes
  libraw:          no  (libraw library not found)
  Jasper:          no  (jasper library not found)
  graphviz:        no  (graphviz not found)
  avformat:        no  (sufficiently new libavformat / libavcodec or libswcale not found)
  V4L:             no   (v4l library not found)
  V4L2:            no  (usable libv4l2 not found)
  spiro:           no  (usable SPIRO library not found)
  EXIV:            no  (exiv2 library not found)
  gexiv2:          no  (gexiv2 not found)
  umfpack:         no  (usable umfpack library not found)
  TIFF             no  (libtiff library not found)
  webp:            no  (webp library not found)
  poly2tri-c:      yes (internal)
monstruosoft@monstruosoft-PC:~/gegl-0.3.20$ make
monstruosoft@monstruosoft-PC:~/gegl-0.3.20$ make install

Si intentamos compilar ahora el código de GIMP obtendremos una lista de errores indicando las librerías que aún hace falta instalar. Esto es bueno, ya que simplemente podemos ver la lista e instalar esas librerías ya sea manualmente o desde nuestro gestor de paquetes (siempre y cuando cumplan con la versión mínima requerida para compilar GIMP). En este caso, en Debian Jessie, podemos ver la lista de librerías faltantes ejecutando el script de configuración después de asignar valores correctos a las variables de entorno PKG_CONFIG_PATH, LD_LIBRARY_PATH y PATH para evitar conflictos con las librerías instaladas en el sistema:

monstruosoft@monstruosoft-PC:~/gimp-2.9.6$ export PKG_CONFIG_PATH=/home/monstruosoft/libs/lib/pkgconfig/
monstruosoft@monstruosoft-PC:~/gimp-2.9.6$ export LD_LIBRARY_PATH=/home/monstruosoft/libs/lib/
monstruosoft@monstruosoft-PC:~/gimp-2.9.6$ export PATH=/home/monstruosoft/libs/bin/:$PATH
monstruosoft@monstruosoft-PC:~/gimp-2.9.6$ ./configure --prefix=/home/monstruosoft/libs/
...
Error: GIMP configuration failed.

  - Error: missing dependency glib-networking
      *** Test for glib-networking failed. This is required.
  - Error: missing dependency gexiv2 >= 0.10.6
  - Error: missing dependency libtiff
      *** Checks for TIFF library failed: TIFF library not found
  - Error: missing dependency libbzip2
      *** libbzip2 header files not found
  - Error: missing dependency liblzma >= 5.0.0
  - Error: missing dependency libpng >= 1.6.25
  - Error: missing dependency libmypaint >= 1.3.0
  - Error: missing dependency rsvg >= 2.40.6
  - Error: missing dependency lcms2 >= 2.7
  - Python 2 headers

De la anterior lista de librerías faltantes, podemos instalar las siguientes desde el gestor de paquetes de Debian Jessie (en Debian Stretch es posible que haya más librerías en el repositorio que cumplan con los requerimientos mínimos):

  • libtiff5-dev – versión 4.0.3-12.3+deb8u4

  • libbz2-dev – versión 1.0.6-7+b3

El resto de las librerías faltantes deberán ser compiladas manualmente. Esto significa que en Debian Jessie 8.9 tuve que instalar manualmente las librerías glib-networking, gexiv2, libpng, libmypaint, rsvg y lcms2. Antes de continuar tuve que instalar también los siguientes paquetes desde el gestor de paquetes ya que son necesarios para compilar manualmente la librería glib-networking:

  • libtool – versión 2.4.2-1.11+b1

  • libgnutls28-dev – versión 3.3.8-6+deb8u7

Tuve que bajar el archivo glib-networking-2.46.0.tar.xz debido a que la versión de gettext en Debian Jessie 8.9 no es compatible con las versiones más recientes de glib-networking 😦 . Por suerte la versión 2.46.0 es suficiente para cumplir los requerimientos mínimos de GIMP 2.9:

monstruosoft@monstruosoft-PC:~$ cd glib-networking-2.46.0
monstruosoft@monstruosoft-PC:~/glib-networking-2.46.0$ ./autogen
monstruosoft@monstruosoft-PC:~/glib-networking-2.46.0$ ./configure --prefix=/home/monstruosoft/libs/
monstruosoft@monstruosoft-PC:~/glib-networking-2.46.0$ make
monstruosoft@monstruosoft-PC:~/glib-networking-2.46.0$ make install

Una librería menos, pero aún faltan algunas por instalar. Es el turno de la librería gexiv2, que a su vez requiere la librería exiv2 pero, por suerte, esta vez la versión en el repositorio estable de Debian es suficiente así que instalé los siguientes paquetes desde el gestor de paquetes:

  • libexiv2-dev – versión 0.24-4.1

  • libgirepository1.0-dev – versión 1.42.0-2.2

La instalación del paquete libgirepository1.0-dev no es para nada obvia pero contiene las librerías necesarias para habilitar la opción enable-introspection al compilar gexiv2, aunque en teoría se podría compilar sin esa opción pero estoy siguiendo las instrucciones de compilación de la página oficial 😛 . Esta librería tiene otras opciones que no son obvias 😦 pero que son necesarias para evitar que intente instalar archivos en la ruta de sistema, estas opciones son –with-python2-girdir y –with-python3-girdir:

monstruosoft@monstruosoft-PC:~$ cd gexiv2-0.10.6/
monstruosoft@monstruosoft-PC:~/gexiv2-0.10.6$ ./configure --help
monstruosoft@monstruosoft-PC:~/gexiv2-0.10.6$ ./configure --enable-introspection --prefix=/home/monstruosoft/libs/ --with-python2-girdir=/home/monstruosoft/libs/lib/python2.7/dist-packages/gi/overrides --with-python3-girdir=/home/monstruosoft/libs/lib/python3/dist-packages/gi/overrides
...
GExiv2 will be built with prefix /home/monstruosoft/libs for x86_64-pc-linux-gnu (cross-compiling: no).

Options:
    Introspection:      yes
    Python2 binding:    yes
    Python3 binding:    yes
monstruosoft@monstruosoft-PC:~/gexiv2-0.10.6$ make
monstruosoft@monstruosoft-PC:~/gexiv2-0.10.6$ make install

El siguiente en la lista es libpng, un viejo conocido. La versión en el repositorio estable de Debian Jessie 8.9 es muy vieja pero no debería ser un problema compilar la versión más reciente:

monstruosoft@monstruosoft-PC:~$ cd libpng-1.6.32/
monstruosoft@monstruosoft-PC:~/libpng-1.6.32$ ./configure --prefix=/home/monstruosoft/libs/
monstruosoft@monstruosoft-PC:~/libpng-1.6.32$ make
monstruosoft@monstruosoft-PC:~/libpng-1.6.32$ make install
monstruosoft@monstruosoft-PC:~/libpng-1.6.32$ pkg-config --modversion libpng
1.6.32

Eso fue fácil. La siguiente librería pendiente es libmypaint. Podemos ver en la página oficial que requiere instalar el siguiente paquete desde el gestor de paquetes:

  • libjson-c-dev – versión 0.11-4

El resto de los requisitos para compilar libmypaint ya deben estar instalados si llegaste hasta aquí 😛 :

monstruosoft@monstruosoft-PC:~$ cd libmypaint-1.3.0/
monstruosoft@monstruosoft-PC:~/libmypaint-1.3.0$ ./configure --prefix=/home/monstruosoft/libs/
...
  Configured libmypaint 1.3.0
monstruosoft@monstruosoft-PC:~/libmypaint-1.3.0$ make
monstruosoft@monstruosoft-PC:~/libmypaint-1.3.0$ make install
monstruosoft@monstruosoft-PC:~/libmypaint-1.3.0$ pkg-config --modversion libmypaint 
1.3.0

A continuación rsvg que requiere instalar los siguientes paquetes desde el gestor de paquetes:

  • libxml2-dev – versión 2.9.1+dfsg1-5+deb8u5

  • libcroco3-dev – versión 0.6.8-3+b1

Desafortunadamente, rsvg también requiere versiones más recientes de las librerías pangocairo y pangoft2 de las que están en el repositorio de Debian, por lo que debemos descargar pango y compilar la versión más reciente manualmente 😦 . pango requiere además una versión de HarfBuzz más reciente que la disponible en Debian Jessie 8.9 aunque esto no es obvio al ejecutar el script de configuración y es necesario revisar la versión mínima requerida en el archivo configure.ac 😦 , así que también debemos compilar HarfBuzz. Elegí la versión 2.40.18 de librsvg ya que es el archivo más reciente en la versión 2.40 y no requiere rust, el cual me causó problemas de compilación con la versión más reciente de librsvg (2.41.1), tal vez sea necesario actualizar rust (usando, si no me equivoco, el comando rustup) pero de momento la versión 2.40.18 basta para cumplir los requisitos de compilación de GIMP; nótese que es necesario usar la opción –disable-pixbuf-loader al compilar librsvg para evitar errores cuando intenta instalar archivos en rutas de sistema y no en la ruta especificada como –prefix:, una vez más, una opción que no es obvia 😦 :

monstruosoft@monstruosoft-PC:~$ cd harfbuzz-1.5.1/
monstruosoft@monstruosoft-PC:~/harfbuzz-1.5.1$ pkg-config --modversion harfbuzz
0.9.35
monstruosoft@monstruosoft-PC:~/harfbuzz-1.5.1$ ./configure --prefix=/home/monstruosoft/libs/
...
Build configuration:

Unicode callbacks (you want at least one):
	Builtin (UCDN):	true
	Glib:			true
	ICU:			false

Font callbacks (the more the better):
	FreeType:		true

Tools used for command-line utilities:
	Cairo:		true
	Fontconfig:		true

Additional shapers (the more the better):
	Graphite2:		false

Platform shapers (not normally needed):
	CoreText:		false
	Uniscribe:		false
	DirectWrite:	false

Other features:
	Documentation:	no
	GObject bindings:	false
	Introspection:	false
monstruosoft@monstruosoft-PC:~/harfbuzz-1.5.1$ make
monstruosoft@monstruosoft-PC:~/harfbuzz-1.5.1$ make install
monstruosoft@monstruosoft-PC:~/harfbuzz-1.5.1$ pkg-config --modversion harfbuzz
1.5.1
monstruosoft@monstruosoft-PC:~/harfbuzz-1.5.1$ cd ..
monstruosoft@monstruosoft-PC:~$ cd pango-1.40.12/
monstruosoft@monstruosoft-PC:~/pango-1.40.12$ pkg-config --modversion pango
1.36.8
monstruosoft@monstruosoft-PC:~/pango-1.40.12$ pkg-config --modversion pangocairo 
1.36.8
monstruosoft@monstruosoft-PC:~/pango-1.40.12$ pkg-config --modversion pangoft2 
1.36.8
monstruosoft@monstruosoft-PC:~/pango-1.40.12$ ./configure --prefix=/home/monstruosoft/libs/
...
configuration:
	backends: Cairo Xft FreeType
monstruosoft@monstruosoft-PC:~/pango-1.40.12$ make
monstruosoft@monstruosoft-PC:~/pango-1.40.12$ make install
monstruosoft@monstruosoft-PC:~/pango-1.40.12$ pkg-config --modversion pango
1.40.12
monstruosoft@monstruosoft-PC:~/pango-1.40.12$ pkg-config --modversion pangocairo 
1.40.12
monstruosoft@monstruosoft-PC:~/pango-1.40.12$ pkg-config --modversion pangoft2 
1.40.12
monstruosoft@monstruosoft-PC:~/pango-1.40.12$ cd ..
monstruosoft@monstruosoft-PC:~$ cd librsvg-2.40.18/
monstruosoft@monstruosoft-PC:~/librsvg-2.40.18$ ./configure --prefix=/home/monstruosoft/libs/ --disable-pixbuf-loader
...
librsvg-2.40.18

	prefix:                         /home/monstruosoft/libs
	compiler:                       gcc

	Build introspectable bindings:  yes
	Build Vala bindings:            no
	Build GdkPixbuf loader:         no
	GTK+ 3.10.0 or later:           no
	Build miscellaneous tools:      yes
monstruosoft@monstruosoft-PC:~/librsvg-2.40.6$ make
monstruosoft@monstruosoft-PC:~/librsvg-2.40.6$ make install
monstruosoft@monstruosoft-PC:~/librsvg-2.40.18$ pkg-config --modversion librsvg-2.0 
2.40.18

¡Vaya! ¡Eso fue mucho trabajo para instalar librsvg!. Nos queda una librería más por instalar, lcms2.

monstruosoft@monstruosoft-PC:~$ cd lcms2-2.8/
monstruosoft@monstruosoft-PC:~/lcms2-2.8$ ./configure --prefix=/home/monstruosoft/libs/
monstruosoft@monstruosoft-PC:~/lcms2-2.8$ make
monstruosoft@monstruosoft-PC:~/lcms2-2.8$ make install
monstruosoft@monstruosoft-PC:~/lcms2-2.8$ pkg-config --modversion lcms2 
2.8

Ya falta poco 😮 . Podemos deshabilitar python en nuestro ejecutable de GIMP o podemos instalar desde el gestor de paquetes los siguientes paquetes:

  • libpython2.7-dev – versión 2.7.9-2+deb8u1

  • python-gtk2-dev – versión 2.24.0-4

  • python-cairo-dev – versión 1.8.8-1

Finalmente el script de configuración de GIMP se completará con éxito:

monstruosoft@monstruosoft-PC:~$ cd gimp-2.9.6/
monstruosoft@monstruosoft-PC:~/gimp-2.9.6$ ./configure --prefix=/home/monstruosoft/libs/
...
Building GIMP with prefix=/home/monstruosoft/libs, datarootdir=${prefix}/share
Desktop files install into ${datarootdir}

Extra Binaries:
  gimp-console:        yes

Optional Features:
  Language selection:  yes
  Vector icons:        yes
  Dr. Mingw (Win32):   no

Optional Plug-Ins:
  Ascii Art:           no (AA library not found)
  Ghostscript:         no (Ghostscript library not found)
  Help Browser:        no (WebKit not found)
  JPEG 2000:           no (JasPer library not found)
  MNG:                 no (MNG header file not found)
  OpenEXR:             no (OpenEXR not found)
  WebP:                no (WebP not found)
  PDF (import):        Using PostScript plug-in (libpoppler-glib not found)
  PDF (export):        yes
  Print:               yes
  Python 2:            yes
  Script-Fu:           yes
  TWAIN (Win32):       no
  Webpage:             no (WebKit not found)
  WMF:                 no (libwmf not found)
  X11 Mouse Cursor:    yes
  XPM:                 no (XPM library not found)
  Email:               yes (xdg-email)

Optional Modules:
  ALSA (MIDI Input):   yes
  Linux Input:         yes (GUdev support: no (libgudev not found))
  DirectInput (Win32): no

Tests:
  Use xvfb-run         no (not found)
  Test appdata         no (appstream-util not found)

Hay que notar que aún después de todo lo que hemos hecho, algunas características opcionales de GIMP no estarán activas a menos que se instalen las librerías opcionales correspondientes, pero de momento podemos continuar con la compilación:

monstruosoft@monstruosoft-PC:~/gimp-2.9.6$ make
monstruosoft@monstruosoft-PC:~/gimp-2.9.6$ make install

Ahora hemos compilado exitosamente nuestra versión de GIMP 😀 . Antes de ejecutarlo, y como lo indica la documentación, siempre debemos usar las mismas variables de entorno que usamos durante todo el proceso para que detecte las versiones correctas de las librerías, rutas, etc., así que es una buena idea crear un script donde preparemos las variables de entorno que usamos a lo largo de este post:

#! /bin/bash

# set the path to the installation directory
export INSTALL_PREFIX=/home/monstruosoft/libs

# Now, set mandatory enviroment variables
export PATH=$INSTALL_PREFIX/bin:$PATH
export LD_LIBRARY_PATH=$INSTALL_PREFIX/lib:$LD_LIBRARY_PATH

# Not needed for running GIMP directly, but needed if you want to compile anything against our
# builds (think of plug-ins, etc.)
export PKG_CONFIG_PATH=$INSTALL_PREFIX/lib/pkgconfig:$PKG_CONFIG_PATH

# Now you can run executables or other stuff depending on our environment
# Here we run GIMP, and pass it any arguments given to this script
$INSTALL_PREFIX/bin/gimp-2.9 $@

# If you want to run something else, copy paste into bash everything before the line that
# runs GIMP, and then run it

Ahora podemos ejecutar el script y ver el resultado de todo nuestro trabajo 😀 .


En general, compilar GIMP en Debian Jessie no es tan difícil. La mayoría de las librerías se compilan exitosamente usando los comandos básicos: ./configure, make, make install, así que no es el hecho de compilar donde reside la dificultad. El problema es mayormente encontrar las dependencias y descubrir opciones de configuración que a veces no son tan obvias. Usualmente tuve que ejecutar un comando para descubrir que había librerías faltantes, bajarlas e instalarlas y repetir; algunas librerías a su vez tenían más requerimientos, lo que hizo el proceso no difícil pero sí lento. Me hace preguntarme si existe alguna forma fácil de saber los requerimientos de librerías necesarias para compilar otra librería, tal vez obtener una lista de forma recursiva podría ayudar. La principal molestia fue encontrar opciones que no son nada obvias pero que tienes que usar para instalar las librerías en rutas distintas a las de sistema, esto normalmente resultaba en errores que requerían buscar una solución en internet o revisar cuidadosamente las opciones de configuración o incluso, como en el caso del requerimiento mínimo de HarfBuzz para librsvg, inspeccionar el código de configuración 😦 .

Al final de cuentas, si bien el proceso no está libre de problemas y podría beneficiarse de una forma de listar dependencias y de librerías que sean más amigables al reportar errores, requerimientos o al instalarse en rutas distintas a las de sistema, el hecho es que GIMP 2.9 se puede compilar y ejecutar exitosamente en Debian Jessie 8.9. ¿El lado amable? Al compilar una nueva versión de GIMP no tienes que hacer todo esto de nuevo y sólo tienes que actualizar/instalar una nueva librería cuando sea necesario.

Así termina este post y hace que me pregunte una vez más, ¿por qué si es relativamente fácil compilar GIMP 2.9 en Debian Jessie, es tan endemoniadamente difícil encontrar una versión para instalar en repositorios no oficiales o de backports o en descarga directa o…?.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s