Incluir pruebas en el desarrollo de debian


Continuando con la serie de entradas relacionadas con el empaquetado en Debian, vamos a pasar a explicar algunas de las herramientas disponibles para hacer pruebas a los paquetes que estemos desarrollando, a fin de comprobar y mejorar la calidad de los mismos. Vamos a explicar los pasos que hay que dar para utilizar algunas de estas herramientas en nuestra máquina local de desarrollo, así como la posibilidad de realizar estas pruebas de forma automática en salsa utilizando el sistema de integración continua de Gitlab.

Esta entrada es continuación de las siguientes, cuya lectura recomiendo previamente.

  1. Preparar una máquina para el desarrollo de paquetes Debian
  2. Usando git en el empaquetado de Debian
  3. Adoptar un paquete en Debian
  4. Primeras modificaciones para empaquetar dnsproxy para Debian
  5. Parchear código con quilt

Sigue leyendo

Parchear código con quilt


Quilt es una aplicación utilizada para parchear código, es decir, para modificar el código fuente a través de un “parche”, un trozo de código claramente definido que modifica el código original. Quilt no es una herramienta específica de Debian ni de su desarrollo, pero aquí vamos a explicar la forma de usarla en el desarrollo de paquetes debian mediante un sencillo ejemplo con el paquete dnsproxy que estamos poniendo a punto.

Sigue leyendo

Primeras modificaciones para empaquetar dnsproxy para Debian


En la anterior entrada del blog, relacionada con esta serie dedicada a explicar paso a paso el procedimiento de participación en el proyecto Debian como mantenedor de un paquete, había explicado cómo se adopta un paquete y en particular, lo había hecho adoptando el paquete dnsproxy a través del bug #876201. A continuación, veremos las modificaciones necesarias que hay que realizar correspondientes ya al desarrollo propio de la versión 1.17 de dnsproxy.  La ventaja que tiene el paquete dnsproxy para comenzar y usarlo como ejemplo, es que es un programa muy sencillo, escrito en C y bastante “estándar”, por lo que lo consideramos muy adecuado para este ejemplo inicial.

Esta entrada del blog era la que tenía inicialmente intención de escribir, para explicar el procedimiento habitual de desarrollo de un paquete Debian que realiza un mantenedor, pero al escribirlo me fui dando cuenta que era mejor explicar antes de forma detallada algunos pasos previos, y eso ha dado lugar a las siguientes entradas relacionadas, que recomiendo leer previamente:

  1. Preparar una máquina para el desarrollo de paquetes Debian
  2. Usando git en el empaquetado de Debian
  3. Adoptar un paquete en Debian

Sigue leyendo

Adoptar un paquete en Debian


Continuando con la temática de las entradas Preparar una máquina para el desarrollo de paquetes Debian y Usando git en el empaquetado de Debian, en este caso vamos a explicar los sencillos pasos que hay que dar para adoptar un paquete en Debian, para lo que seguiremos con nuestro ejemplo con dnsproxy.

Sigue leyendo

Usando git en el empaquetado de Debian


Como continuación de la entrada Preparar una máquina para el desarrollo de paquetes Debian, voy a explicar a continuación el uso que he hecho hasta ahora del sistema de control de versiones git en el empaquetado de Debian, ya que tiene bastantes peculiaridades y como es un tema bastante amplio es posible que modifique esta entrada añadiéndole las nuevas cosas que vaya usando o encontrando.

La referencia para empaquetar en Debian usando git es obviamente la página Packaging with Git de la wiki de debian, cuya lectura será necesaria en más de una ocasión.

Es posible empaquetar para Debian y no usar git, también es posible hacerlo y no usar ningún otro sistema de control de versiones como svn o mercurial, pero si estás empezando en el empaquetado de Debian vas a hacerlo con git, el esfuerzo vale la pena.

Sigue leyendo

Preparar una máquina para el desarrollo de paquetes Debian


En esta entrada vamos a explicar los pasos a dar para tener una máquina lista para la creación de paquetes Debian. Lo que a continuación se muestra no pretende ser, ni mucho menos, una explicación genérica, ya que una de las principales características que tiene el desarrollo en Debian es que no hay una sola forma de hacer las cosas, sino múltiples. En la Política Debian se especifican de forma muy detallada las características que debe tener un paquete fuente o uno binario, pero no la forma de obtenerlo, que es mucho más libre. Aquí simplemente explico los pasos que he seguido yo, en buena parte siguiendo las recomendaciones de Arturo Borrero, que me ha ayudado mucho en estos primeros pasos con el empaquetado de Debian, para tener donde buscarlos cuando me haga falta y si de paso le sirve a alguien en sus inicios, pues mejor :).

Sigue leyendo

Basic network bridge configuration for a laptop running Debian


In many different situations, mainly related to virtualization or containers, a basic linux bridge configuration is needed, typically defining br0 connected to the first Ethernet interface, eth0 (no, I don’t like predictable network interface names ;) ). In such a case, a basic configuration of “/etc/network/interfaces” must be similar to:

auto lo 
iface lo inet loopback

iface eth0 inet manual

auto br0
iface br0 inet dhcp
  bridge_ports eth0

Sigue leyendo

rsyslog, journal or both?


rsyslog is an open source project that has been providing log data management in many linux distros for years, rsyslog is easy to setup and it has been widely used to store logs from many servers on a centralized one. On the other hand, journal is a systemd component with a similar role to rsyslog, but with a different approach (it doesn’t use traditional syslog files).

systemd is a controversial project since its beginnings, and journal is probably one of the most controversial components, mainly because of its initial intention to replace a stable and well-known component of any linux system such as syslog. In this post we are not discussing which of these projects is better, but simply showing which one of them is used in some linux distributions: Debian, Ubuntu, CentOS or Fedora, because many users (like me before writing this post) are a little confused about the changes that are taking place in the log management. In any case, the situation shown in this post is likely to change in the next releases, so this post will probably soon become obsolete.

Sigue leyendo

OpenStack: Setup a new debian image from a running instance


Debian provides standard images designed for OpenStack, but sometimes is better to use your own images, with local modifications or with specific packages installed and configured. One way to achieve this is to create a snapshot from a running instance previously launched from a standard image. In this post we’re going to create a new image from a running instance, explaining the modifications needed in one specific use case: Create a Debian Stretch image from a running Debian Jessie instance.

Sigue leyendo

Shrinking qcow2 images


This post is written as a recipe containing a set of commands to shrink the real and virtual size of a qcow2 image. There are different alternatives to achieve a similar result and probably some of them will be better, so if you know one of them, please post it as comment ;).

Sigue leyendo