svn-buildpackage es una herramienta para construir y mantener paquetes Debian utilizando un repositorio subversion.

Introducción

Aunque se trata de una herramienta pensada para Debian maintainers te puede venir bien saber utilizarla para poder construir paquetes a partir del repositorio si por cualquier motivo un paquete no está disponible en un momento dado. En principio para eso es la receta, pero no descarto ampliarla si en el futuro lo uso para hacer y mantener paquetes. Si algún otro se anima a completarla, perfecto también.

EDITADO: Al final hice otra receta sobre cómo mantener paquetes con svn-buildpackage

Ingredientes

Para compilar paquetes Debian obviamente vas a necesitar todas las herramientas típicas del mantenedor:

  • build-essential
  • fakeroot
  • svn-buildpackage
  • python-dev (para el ejemplo de esta receta)

La excusa: gnome-bluetooth

Para ver cómo funciona svn-buildpackage vamos a construir el paquete Debian de gnome-bluetooth, que no es un paquete oficial (lleva más de 800 días en preparación). Evidentemente lo puedes hacer con cualquier paquete Debian o Ubuntu mantenido de la misma forma.

Repositorio

Tienes que descargar los fuentes de los paquetes. svn-buildpackage no requiere que los fuentes del programa (upstream) estén en el mismo sitio que los ficheros de gestión del paquete Debian. En el caso de gnome-bluetooth si que está todo. Voy a suponer que lo vas a hacer todo desde un directorio devel por tener una referencia de donde está cada cosa.

 devel$ svn co svn://svn.debian.org/pkg-bluetooth/gnome-bluetooth

Y también habrá que empaquetar una librería que viene con gnome-bluetooth llamada libbbtctl.

 devel$ svn co svn://svn.debian.org/pkg-bluetooth/libbtctl

libbtctl

Empezamos por la librería, porque es una dependencia del paquete principal. Lo primero es instalar las build-depends, que las puedes ver en el fichero debian/control

 # apt-get install python-support  intltool  libopenobex-1.0-0-dev libbluetooth2-dev python-gtk2-dev gtk-doc-tools

Y para construir los paquetes simplemente:

 devel$ cd libbtctl/trunk
$ svn-buildpackage -us -uc -rfakeroot

E instalarla, claro:

devel# cd /libbtctl/buil-area
# dpkg -i libbtctl2_0.6.0-2_i386.deb
# dpkg -i libbtctl2-dev_0.6.0-2_i386.deb

gnome-bluetooth

Las build-depends son:

 # apt-get install gob2 libgnomeui-dev libgconf2-dev libbtctl2-dev libgnomevfs2-dev librsvg2-dev libgnome2-dev

Como ves hacen falta muchos paquetes para compilar paquetes ;-)

Y por fin, generar los paquetes e instalarlos.

devel$ cd gnome-bluetooth/trunk
$ svn-buildpackage -us -uc -rfakeroot
devel# cd gnome-bluetooth/build-area
# dpkg -i libgnomebt0_0.7.0-2_i386.deb
# dpkg -i gnome-bluetooth_0.7.0-2_i386.deb

Y ya está. Fácil, fácil y para toda la familia.

Referencias



blog comments powered by Disqus