ppa-libuntu

Luego de algunos días de pelea, finalmente he logrado comenzar a subir programas a Lauchpad, el método es relativamente sencillo, a través de los siguientes pasos he logrado subir el primer programa ¡Parole!

Obviamente debes de crearte una cuenta en Lauchpad y crear una ppa, este el el método mas sencillo ya que es casi igual a suscribirse en una página, primero nos vamos a Lauchpad, nos registramos y creamos la ppa.

crear-ppa

Luego vienen una serie de pasos que si bien, son relativamente fáciles, nos dará seguramente mas de un dolor de cabeza.

Lo primordial luego de registrarse en Launchpad, es seguir todos los pasos elementales que se indican en la página de empaquetamiento de Ubuntu.

Luego de configurar la clave, nos aseguraremos que la tengamos, para ello vía terminal ponemos gpg –list-keys y luego de cerciorarnos colocamos lo siguiente:

gpg -a –output ~/.gnupg/Tu_Nombre.gpg –export Tu usuario Launchpad 

y luego


gpg –import ~/.gnupg/El_primer_nombre_que_colocaste_anteriormente.gpg

(Importante!!, en la primera parte deberas colocar tu nombre y apellido tal cual como lo colocastes mediante el tutorial de Ubuntu, importantisimo ademas es que el nombre y apellido va unido por _ )

Una vez realizado este paso, pasamos a la compilación del paquete fuente que queramos, para ello creamos una carpeta en nuestro usuario home (yo le puse ppa) y nos bajamos el paquete fuente que generalmente viene comprimido con tar.gz o tar.gz2 y lo colocamos en la carpeta creada para la compilación, luego vía terminal nos dirigimos a la carpeta para descomprimirlo, esto se haría de la siguiente manera:

cd ppa/ (donde ppa será la carpeta que creamos para la compilación)
tar xf paquete_fuente.tar.gz (obviamente el nombre del paquete se cambia por el que se descargo)

Luego mediante la terminal nos dirigiremos a la carpeta que se originó al descomprimir la fuente, en el caso mio fue parole-0.7.0 mediante la terminal:

cd parole-0.7.0 (aquí obviamente va la carpeta del paquete fuente en cuestión al descomprimirse)

luego de esto, verificamos cuales son las dependencias de ese paquete para su posterior compilación, para ello:

dpkg-depcheck -d ./configure

al final nos ira diciendo todas las dependencias que requiere dicho paquete para la compilación, en el caso mio fueron:

libxau-dev, mawk, libxfce4util-dev, intltool, file, libpixman-1-dev, libunistring0, libgstreamer-plugins-base1.0-dev, libatk1.0-dev, x11proto-xinerama-dev, libwayland-dev, x11proto-composite-dev, libxcomposite-dev, libgl1-mesa-glx, libpango1.0-dev, libgstreamer1.0-dev, libxfconf-0-dev, x11proto-damage-dev, libfontconfig1-dev, libxfce4ui-2-dev, libegl1-mesa, libfakeroot, libpng12-dev, pkg-config, libxml2, gettext, libpthread-stubs0-dev, libnotify-dev, libxi-dev, x11proto-randr-dev, libxdmcp-dev, libcairo2-dev, libgtk-3-dev, libdbus-glib-1-dev, mime-support, libharfbuzz-dev, libglib2.0-dev, x11proto-render-dev, libmagic1, libgdk-pixbuf2.0-dev, x11proto-kb-dev, libfreetype6-dev, perl-modules, libxkbcommon-dev, cpio, libxau-dev

Nos copiamos todas las dependencias que nos indico el ./configure en nuestro editor de texto favorito (Gedit, Mousepad, etc) y nos ponemos manos a la obra con el empaquetado y subida!!!

Antes de todo, nos devolvemos nuevamente a la carpeta de compilación ya que anteriormente estábamos en la carpeta que se creo al descompilarse el paquete fuente, por ejemplo y pongo mi caso -> vía terminal:

sudo apt-get install dh-make
cd
cd ppa
bzr dh-make carpeta del paquete + versión paquete_fuente.tar.gz (en el caso mio de parole 0.7.0 fue: bzr dh-make parole 0.7.0 parole_0.7.0.tar.gz2)

Luego de esto se nos preguntará que tipo de binario deseamos, esto se deja a libre elección pero la mas común y recomendada es s (Binary Single) ya que es el que comúnmente se usa en la mayoría de las aplicaciones actuales: Multi-binario es en caso de que el paquete fuente contenga numerosos binarios y múltiples enlaces y librerías, esto actualmente es poco usual ya que por lo general, las aplicaciones se ejecutan mediante un único binario realmente, las otras opciones serían el de binario independiente: el cuál como su nombre indica, un binario totalmente independiente del paquete en cuestión y de la arquitectura en que se valla a construir, el de librerías y el de kernels, no hace falta que se explique en cuestión estos dos últimos ¿o si?).

Después de un breve proceso nos iremos a un archivo llamado debian el cuál se encuentra dentro de la nueva carpeta creada, en mi caso fue /ppa/parole/debian (vía terminal: cd parole/debian ya que anteriormente me encontraba en la carpeta ppa)

aquí eliminamos los archivos de ejemplos con el comando rm *ex *EX y editaremos algunos archivos importantes al respecto, estos son changelog y control.

En control es donde haremos mas modificaciones y debemos de prestar mucha atención, pues es el archivo que personalmente considero y es como se diría coloquialmente hablando, “el de vida o muerte”, el mio (luego de varios intentos fallidos) quedo así:

control-debian

Se preguntaran el porque no hay 32 bits? pues porque no pienso dar soporte a dicha plataforma, ya que desde que comencé a usar Ubuntu (cuando era la versión 7.10) fue la de 64 bits y como se ha sufrido con las aplicaciones de 64 bits!, ahorita es que se esta acelerando el paso… no es posible que a estas alturas, aun un grande como Valve, tenga que depender de librerías de 32 bits para ejecutar Steam….

Luego pasamos a modificar el Changelog, este también resulta ser importante, especialmente cuando se vaya a actualizar las versiones o nos equivoquemos en algo (vale destacar que cualquier error que nos llegue de Launchpad, ya sea porque falto una dependencia o porque no hay descripción o no se colocó la licencia en cuestión, debemos por ley modificar la versión del paquete)

changelog-debian

Con respecto al Copyright y para evitar algunos errores al momento de verificar nuestra construcción mediante lintian, yo lo modifique de esta manera (es mi primer paquete, así que a medida que comience mas a conocer esto del empaquetado de programas iré mejorando en este aspecto).

copyright

Luego de esto, procedemos ya al empaquetado en cuestión!!!

primero crearemos el .deb para cerciorarnos de que no hayan fallos al respecto al momento de la compilación en Lauchpad

bzr commit -m “Initial commit of Debian packaging.”

y luego

bzr builddeb — -us -uc

Luego, si todo salio relativamente bien, analizamos la construcción:

 lintian paquete-amd64.deb

llegado a este punto es muy probable que nos de varios errores, pero estos varían mucho de caso, en el caso de los reproductores es normal encontrarse con errores tipo:

pkg-has-shlibs-control-file-but-no-actual-shared-libs o
non-empty-dependency_libs-in-la-file

estos errores se originan por llamadas a plugins, demonios de sonidos o librerías privadas… y a pesar de que aparece en rojo alarmista, no hay que alarmarse tanto… lo que si hay que estar pendiente es con los errores en los changelogs, en control (a mi en algunas ocasiones me dio problemas de dependencias entre la arquitectura amd64 y algunos paquetes, en este caso simplemente los borre y listo!) y en copyright (aunque en realidad creo que es mas la “alaraca” que en lo que en la practica resulte)

Una vez pasado esto, nos vamos a la ultima compilacion para luego subirlo a nuestra ppa en Lauchpad, en este punto debemos de tener bien configurada nuestra firma SSH ya que si todo resulta “viento en popa” nos la solicitara para firmar digitalmente dicho paquete, para ello:

bzr builddeb -S

Finalmente a subirlo a Launchpad se ha dicho!!!!

dput ppa:nuestrappa/nuestrappa nombre_paquete.changes

(importante, debemos de subir unicamente el archivo .changes que esta ubicado en nuestra carpeta de compilación que en mi caso la llame ppa)

una vez hecho esto, se procederá a subir el paquete y el mismo Launchpad compilará todo el resto, ahora solo resta espera por los respectivos emails sobre el progreso del mismo!

 

Fuente: libuntu

 

¿Quién está en línea?

Hay 2285 invitados y ningún miembro en línea