En esta entrada voy a explicar como subir un paquete a un PPA de LaunchPad, puede ser útil para crear paquetes para una distribución diferente a la que usas o si quieren tener su propio repositorios con algunos paquetes para ubuntu.

Para ello hay que hacer lo siguiente:

  1. Previamente hay que agregar nuestra clave en launchpad y firmar el código de conducta.
  2. Hay que activar un PPA, lo cual lo puedes hacer desde tu cuenta
  3. Construir un paquete de código fuente (source package) para el programa y subirlo a un PPA, esto ultimo es lo interesante y lo que explicare

Para construir el paquete fuente (source package) se hace de manera similar a como uno construye un paquete binario, en este caso voy a continuar con el ejemplo del programa escrito en python que convierte temperaturas (al cual anteriormente cree el paquete binario)

Básicamente es paquete se construye de la misma manera, hasta antes de generar el paquete binario (Paso N°7), en donde hay que usar unas opciones extras en el dpkg-buildpackage para crear un paquete fuente, o sea hay que hacer lo siguiente:

dpkg-buildpackage -S -sa -rfakeroot

La opción -S es para que construya un paquete fuente y la opción -sa es para que al subirlo incluya el codigo fuente (el **.orig.tar.gz).

El -sa no es necesario si se esta reempaquetando algún paquete que ya exista en ubuntu, pero solo en ese caso, ya que puede obtener el *.orig.tar.gz desde los repositorios de ubuntu, pero en la mayoría de los casos no es así

El ejecutar este comando nos genero varios archivos en el directorio, de los cuales los que importan (y que tenemos que subir) son:

  • ***.dsc
  • ***_source.changes
  • ***.diff.gz
  • ***.orig.tar.gz (Normalmente se sube si se usa el -sa, ya que este contiene las fuentes originales antes de ser se debianizadas)

De aquí lo mas importante hay que revisar el ***_source.changes para ver si esta correcto (principalmente hay que modificar si es necesario el parámetro Distribution a el que corresponda), por ejemplo el del conversor quedo así.

Una vez que todo este correcto hay que subirlo, para ello primero instalamos dput (apt-get install dput) y luego modificamos la configuracion ~/.dput.cf a algo similar a esto

[my-ppa]
fqdn = ppa.launchpad.net
method = ftp
incoming = ~<tu-usuario>/<nombre-ppa>/ubuntu/
login = anonymous
allow_unsigned_uploads = 0

Ahora para subirlo hacemos:

dput my-ppa ***_source.changes

En donde los *** hay que reemplazarlo por lo que corresponda

Luego hay que esperar entre 5 a 10 minutos para que launchpad reconozca la subida y comience a compilarlo, mientras tanto se ve un circulo que va girando al lado del nombre del paquete.

Launchpad PPA

Y listo, luego de varios minutos, aparecerá el (o los) paquete(s) en el PPA correspondiente