wiki:construccion_paquete_deb_desde_codigo_fuente_qpdfview-0.4.16

Version 10 (modified by aaraujo, 8 years ago) (diff)

--

En construcción…

Para la construcción de un paquete .deb a partir del código fuente de qpdfview-0.4.16 realizaremos varias pruebas.

Descargamos la version estable de qpdfview desde https://launchpad.net/qpdfview/trunk/0.4.16/+download/qpdfview-0.4.16.tar.gz con:

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 (dir DEBIAN)

Buscamos y descargamos las fuentes del paquete qpdfview disponible en los repositorios:

$ aptitude search qpdfview
c   qpdfview                            - tabbed document viewer         
p   qpdfview-djvu-plugin                - tabbed document viewer - DjVu plugin   
p   qpdfview-ps-plugin                  - tabbed document viewer - PostScript plugin
p   qpdfview-translations               - tabbed document viewer - translations
$ aptitude show qpdfview
Paquete: qpdfview                                
Estado: sin instalar
Versión: 0.4.12-1
Prioridad: opcional
Sección: graphics
Desarrollador: Benjamin Eltzner <b.eltzner@gmx.de>
Arquitectura: amd64
Tamaño sin comprimir: 1.176 k
Depende de: libc6 (>= 2.14), libcups2 (>= 1.4.0), libgcc1 (>= 1:4.1.1), libgl1-mesa-glx
            | libgl1, libpoppler-qt5-1 (>= 0.26.0), libqt5core5a (>= 5.2.0~alpha1),
            libqt5dbus5 (>= 5.0.2), libqt5gui5 (>= 5.2.0), libqt5printsupport5 (>=
            5.0.2), libqt5sql5 (>= 5.0.2), libqt5svg5 (>= 5.0.2), libqt5widgets5 (>=
            5.2.0), libqt5xml5 (>= 5.0.2), libstdc++6 (>= 4.1.1), zlib1g (>=
            1:1.2.3.4), libqt5sql5-sqlite, hicolor-icon-theme
Recomienda: qpdfview-djvu-plugin (= 0.4.12-1), qpdfview-ps-plugin (= 0.4.12-1),
            qpdfview-translations (= 0.4.12-1)
Descripción: tabbed document viewer
 qpdfview is a simple tabbed document viewer which uses the Poppler library for PDF
 rendering and CUPS for printing and provides a clear and simple Qt graphical user
 interface. Support for the DjVu and PostScript formats can be added via plugins. 
 
 Current features include: 
 * Outline, properties and thumbnail panes 
 * Scale, rotate and fit 
 * Fullscreen and presentation views 
 * Continuous and multi-page layouts 
 * Search for text (PDF and DjVu only) 
 * Configurable toolbars 
 * SyncTeX support (PDF only) 
 * Partial annotation support (PDF only, Poppler version 0.20.1 or newer) 
 * Partial form support (PDF only) 
 * Persistent per-file settings 
 * Support for DjVu and PostScript documents via plugins
Página principal: https://launchpad.net/qpdfview

Marcas: uitoolkit::qt

La versión disponible en los repositorios es la 0.4.12-1 pero nos servirá de referencia puesto que está debianizada y se podrá construir un .deb (de prueba) a partir de esta version.

Descargamos las fuentes desde el repositorio con:

$ apt-get source qpdfview

Lo cual nos dejara un directorio raíz y tres ficheros.

qpdfview-0.4.12/
	application.pro
	debian
	icons
	ps-plugin.pro
	sources
	CHANGES
	djvu-plugin.pro
	icons.qrc
	qpdfview.pri
	synctex
	CONTRIBUTORS
	fitz-plugin.pro
	miscellaneous
	qpdfview.pro
	TODO
	COPYING
	help
	pdf-plugin.pro
	README
	translations
qpdfview_0.4.12-1.dsc
qpdfview_0.4.12-1.debian.tar.xz
qpdfview_0.4.12.orig.tar.gz

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

autoconf
automake
autotools-dev
dh-make
debhelper
devscripts
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, creamos una carpeta llamada qpdfview-0.4.16 dentro pegamos el fichero qpdfview-0.4.16.tar.gz descargado anteriormente, que son las fuentes originales del qpdfview.

entramos en el directorio creado:

$ 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, 15 Sep 2016 10: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
debian/  qpdfview-0.4.16.tar.gz

Entramos en debian/

qpdfview-0.4.16$ cd debian/

Vemos el contenido

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

Dentro nos creo varios ficheros que irémos modificando y adaptando a nuestras necesidades.