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.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.