Hacer un patch con quilt

Para aquellos que nos estamos adentrando al empaquetamiento con Debian será necesario algunas veces parchear el código fuente del upstream para arreglar algún problema que no ha sido aplicado, no haya un release oficial para ello o sea algo específico para el empaquetado. Para ello podemos aplicar parches en forma de pila (stack), uno sobre otro, para lograr lo que queremos. Debian provee un programa que se llama quilt.

Antes de parchear algún paquete debemos configurar quilt en nuestro entorno:

nano ~/.bashrc

Y agregamos al final:

export QUILT_PATCHES='debian/patches'
export QUILT_REFRESH_ARGS="-p ab --no-timestamp --no-index"

Recargamos el .bashrc:

source ~/.bashrc

Claro, tenemos que instalar quilt:

sudo apt-get install quilt

En mi caso muy particular, un mismo código fuente debe crear tres paquetes binarios (Python2, Python3 y documentación) pero al realizar el proceso se crean conflictos de ciertos archivos de traducción.

Lo que hacemos es irnos a la raíz del paquete (el que contiene el código fuente y la carpeta debian/) y escribimos:

quilt new nombre-parche.diff

Eso creará un nuevo parche en debian/patches con dicho nombre. Ahora debemos agregar los archivos de vayamos a modificar:

quilt add ruta/archivo/algo

Así tantos como sean necesarios. Ahora modificamos dichos archivos y realizamos los cambios necesarios. Una vez hayamos terminado debemos actualizar el archivo de parche con nuestros cambios:

quilt refresh

Podrán abrir el archivo en debian/patches y notarán cómo se registran los cambios. Ahora para terminar salimos del parche que estamos realizando lo que revierte los archivos modificados a su estado original:

quilt pop -a

Ahora el paquete está listo para ser reempaquetado con los cambios realizados. Los parches serán aplicados de forma automática durante el build. Recuerden hacer el bump de la versión debian.

Etiquetado ,

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: