Ubuntu logo

Packaging Guide

4. Obtener el código fuente

4.1. URLs de los paquetes fuente

Bazaar proporciona varios atajos muy buenos para acceder a las ramas fuentes de paquetes de Launchpad tanto de Ubuntu como de Debian.

Para referirse a las ramas fuentes use:

ubuntu:package

donde paquete se refiere el nombre del paquete en el que está interesado. Esta URL se refiere al paquete en la versión de desarrollo actual de Ubuntu. Para referirse a la rama de Tomboy en la versión de desarrollo, debería usar:

ubuntu:tomboy

To refer to the version of a source package in an older release of Ubuntu, just prefix the package name with the release’s code name. E.g. to refer to Tomboy’s source package in Saucy use:

ubuntu:saucy/tomboy

Puesto que son únicos, también puede abreviar el nombre de las series de distribuciones:

ubuntu:s/tomboy

Puede usar un esquema similar para acceder a las ramas fuentes de Debian, aunque en este caso no hay atajos para nos nombres de las series de distribuciones de Debian. Para acceder a la rama de Tomboy en la serie de desarrollo de Debian actual use:

debianlp:tomboy

and to access Tomboy in Debian Wheezy use:

debianlp:wheezy/tomboy

4.2. Obtener el código fuente

Cada paquete fuente de Ubuntu tiene asociada una rama fuente en Launchpad. Estas ramas fuentes son actualizadas automáticamente por Launchpad, aunque el proceso actualmente no es infalible.

Hay un par de cosas que se hacen antes para que el flujo de trabajo posterior sea más eficiente. Una vez que se acostumbre al proceso aprenderá cuando puede saltarse estos pasos.

4.2.1. Crear un repositorio compartido

Digamos que desea trabajar en el paquete Tomboy, y que ha comprobado que el paquete fuente se llama tomboy. Antes de efectuar la bifurcación del código de Tomboy, cree un repositorio compartido para mantener las ramas de este paquete. Este repositorio compartido hará que el trabajo futuro sea mucho más eficiente.

Hágalo usando la orden bzr init-repo, pasándole el nombre de directorio que le gustaría usar:

$ bzr init-repo tomboy

Verá que se crea un directorio tomboy en su área de trabajo actual. Cambie a este nuevo directorio para el resto del proceso:

$ cd tomboy

4.2.2. Obtener la rama troncal

Se usa la orden bzr branch para crear una rama local del paquete. Llamaremos al directorio destino tomboy.dev sólo para mantenerlo fácil de recordar:

$ bzr branch ubuntu:tomboy tomboy.dev

El directorio tomboy.dev representa la versión de Tomboy en la versión de desarrollo de Ubuntu y siempre puede cambiarse (cd) a este directorio y hacer bzr pull para obtener actualizaciones futuras.

4.2.3. Asegurarse de que la versión está actualizada

Cuando hace bzr branch obtendrá un mensaje indicándole si la rama de empaquetado está actualizada. Por ejemplo:

$ bzr branch ubuntu:tomboy
Most recent Ubuntu version: 1.8.0-1ubuntu1.2
Packaging branch status: CURRENT
Branched 86 revisions.

Ocasionalmente el importador falla y las ramas de empaquetado no coincidirán con lo que hay en el repositorio. Un mensaje diciendo:

Packaging branch status: OUT-OF-DATE

means the importer has failed. You can find out why on http://package-import.ubuntu.com/status/ and file a bug on the UDD project to get the issue resolved.

4.2.4. Tar aguas arriba («upstream»)

Puede obtener un tar de aguas arriba ejecutando:

bzr get-orig-source

Esto probará varios métodos para obtener el archivo tar de aguas arriba, primero recreándolo desde la etiqueta upstream-x.y del archivo bzr, luego descargándolo desde el repositorio de Ubuntu y finalmente ejecutando debian/rules get-orig-source. El tar de aguas arriba también se recreará cuando se usa bzr para construir el paquete:

bzr builddeb

The builddeb plugin has several configuration options.

4.2.5. Obtener una rama de una versión en particular

When you want to do something like a stable release update (SRU), or you just want to examine the code in an old release, you’ll want to grab the branch corresponding to a particular Ubuntu release. For example, to get the Tomboy package for Quantal do:

$ bzr branch ubuntu:m/tomboy quantal

4.2.6. Importar un paquete fuente de Debian

Si el paquete en el que desea trabajar está disponible en Debian, pero no en Ubuntu, sigue siendo fácil importar el código a una rama de bzr local para el desarrollo. Digamos que quiere importar el paquete fuente newpackage. Empezaremos por crear un repositorio compartido como habitualmente, pero también debemos crear un árbol de trabajo en el que importar el paquete fuente (recuerde salir del directorio tomboy creado anteriormente):

$ bzr init-repo newpackage
$ cd newpackage
$ bzr init debian
$ cd debian
$ bzr import-dsc http://ftp.de.debian.org/debian/pool/main/n/newpackage/newpackage_1.0-1.dsc

Como puede ver, solo hace falta proporcionar la ubicación remota del archivo dsc, y Bazaar hará el resto. Ya ha obtenido la rama fuente de Bazaar.