wiki:construccion_paquete_deb_desde_codigo_fuente_qpdfview-0.4.16

En construcción…

Descargamos la versión estable de qpdfview desde https://launchpad.net/qpdfview/trunk/0.4.16/+download/qpdfview-0.4.16.tar.gz

$ wget -c https://launchpad.net/qpdfview/trunk/0.4.16/+download/qpdfview-0.4.16.tar.gz

Luego, descomprimimos el fichero .tar.gz descargado con:

$ tar zxvf qpdfview-0.4.16.tar.gz

La descompresión nos creará un nuevo directorio qpdfview-0.4.16 que contiene:

application.pro  djvu-plugin.pro  icons.qrc         ps-plugin.pro  sources
CHANGES          fitz-plugin.pro  image-plugin.pro  qpdfview.pri   synctex
CONTRIBUTORS     help             miscellaneous     qpdfview.pro   TODO
COPYING          icons            pdf-plugin.pro    README         translations

Podemos ver que este paquete no está debianizado porque no contiene el subdirectotio DEBIAN característico del caso.

Para empezar con la construcción del paquete .deb necesitamos tener instalados los siguientes programas:

autoconf
automake
autotools-dev
dh-make
debhelper
devscripts (Solo si solicita instalación, puede que desabilite otras librerías importantes)
fakeroot
gnupg
lintian 
quilt

¿Que es dh-make?

Herramienta para convertir archivos de código fuente en paquetes de código fuente de Debian

Configurar dh_make

Primero debemos configurar las variables de entorno $DEBEMAIL y $DEBFULLNAME que son utilizadas por varias herramientas de mantenimiento de Debian para obtener el nombre y correo electrónico del constructor o mantenedor de los paquetes.

En el /home/user editamos el fichero .bashrc le añadimos al final lo siguiente:

export DEBFULLNAME="Argenis Osorio"

export DEBEMAIL=aosorio@cenditel.gob.ve

Guardamos, con esto tendríamos configurado dh_make

Ahora, vamos a mover el fichero qpdfview-0.4.16.tar.gz a la carpeta qpdfview-0.4.16 creada al descomprimir.

$ mv qpdfview-0.4.16.tar.gz qpdfview-0.4.16

Entramos en el directorio qpdfview-0.4.16/

$ cd qpdfview-0.4.16

Una vez adentro, lanzamos el comando de dh_make que construirá automáticamente los ficheros necesarios de un paquete debian.

qpdfview-0.4.16$ dh_make -f qpdfview-0.4.16.tar.gz

dh_make nos preguntará:

Type of package: single binary, indep binary, multiple binary, library, kernel module, kernel patch?
 [s/i/m/l/k/n]

Escogemos single binary

Nos mostrará la información que acompañará al paquete (que configuramos antes) y nos pedirá que la confirmemos

Maintainer name  : Argenis Osorio
Email-Address    : aosorio@cenditel.gob.ve 
Date             : Thu, 5 Oct 2016 12:30:05 -0400
Package Name     : qpdfview
Version          : 0.4.16
License          : blank
Type of Package  : Single
Hit <enter> to confirm: 
Currently there is no top level Makefile. This may require additional tuning.
Done. Please edit the files in the debian/ subdirectory now. You should also
check that the qpdfview Makefiles install into $DESTDIR and not in / .

Ahora vemos que nos ha creado el directorio debian/

qpdfview-0.4.16$ ls
application.pro  djvu-plugin.pro  image-plugin.pro        qpdfview.pri  TODO
CHANGES          fitz-plugin.pro  miscellaneous           qpdfview.pro  translations
CONTRIBUTORS     help             pdf-plugin.pro          README
COPYING          icons            ps-plugin.pro           sources
debian           icons.qrc        qpdfview-0.4.16.tar.gz  synctex

A su vez, junto a la carpeta raíz qpdfview-0.4.16 nos creo el fichero qpdfview_0.4.16.orig.tar.gz que contiene las fuentes originales del proyecto.

$ ls
qpdfview-0.4.16  qpdfview_0.4.16.orig.tar.gz

Ahora dentro de qpdfview-0.4.16 removemos el fichero comprimido que movimos al principio qpdfview-0.4.16.tar.gz

qpdfview-0.4.16$ rm qpdfview-0.4.16.tar.gz

Entramos en el directorio debian/

qpdfview-0.4.16$ cd debian/

Ahora vemos todos los ficheros que hemos creado gracias a dh-make

qpdfview-0.4.16/debian$ ls
changelog  init.d.ex        postinst.ex         qpdfview.default.ex   source
compat     manpage.1.ex     postrm.ex           qpdfview.doc-base.EX  watch.ex
control    manpage.sgml.ex  preinst.ex          README.Debian
copyright  manpage.xml.ex   prerm.ex            README.source
docs       menu.ex          qpdfview.cron.d.ex  rules

Estos ficheros los debemos modificar antes de la construcción del paquete binario.

Para guiarnos en la modificación de los ficheros, descargaremos la última versión de qpdfview disponible en los repositorios inestables de Debian.

Editamos el fichero source.list

# vim /etc/apt/sources.list

Agregamos los repositorios

# Unstable repo main, contrib and non-free branches, no security updates here
deb http://http.us.debian.org/debian unstable main non-free contrib
deb-src http://http.us.debian.org/debian unstable main non-free contrib

Actualizamos el repositorio

# apt-get update

Descargamos qpdfview

$ apt-get source qpdfview

La versión que nos descargará será la qpdfview-0.4.14

Como descargamos las fuentes desde los repositorios de Debian nos deja los siguientes ficheros y un directorio raíz:

qpdfview-0.4.14/                  qpdfview_0.4.14-1.dsc
qpdfview_0.4.14-1.debian.tar.xz  qpdfview_0.4.14.orig.tar.gz

Ahora usaremos estas fuentes debianizadas para la edición de nuestro paquete original.

Se modificaron los directorios de qpdfview-0.4.16 a terepaima-0.4.16, además se hicieron otros cambios los ficheros.

El histórico de la modificación de los ficheros se puede seguir en el siguiente repositorio: https://tibisay.cenditel.gob.ve/visorpdf/browser/terepaima

Comando para el empaquetamiento:

$ dpkg-buildpackage -B
Last modified 22 months ago Last modified on Nov 1, 2016, 12:57:05 PM