Archivos Mensuales: julio 2012

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.

Anuncios
Etiquetado ,

Configurar msmtp para enviar correos desde la terminal

Para enviar correos desde la terminal podemos utilizar muchas herramientas. Vamos a configurar una en particular que se llama msmtp que permite enviar correos utilizando tu cuenta de Gmail que tenga el SMTP habilitado.

sudo apt-get install msmtp

Luego, creamos el archivo de configuración del mismo:

nano ~/.msmtprc

Y copiamos la siguiente configuración (ojo, está para Gmail, para otros proveedores de cuentas de correo tienen que cambiar los parámetros):

# Provider configuration
defaults
tls on
tls_starttls on
tls_trust_file /etc/ssl/certs/ca-certificates.crt
logfile ~/.msmtp.log

# Account configuration
account default
host smtp.gmail.com
port 587
auth on
from tucorreo@gmail.com
user tucorreo@gmail.com
passwordeval gpg -d ~/.msmtp.password.gpg

La documentación completa para el archivo de configuración se encuentra aquí y aquí pueden encontrar un buen ejemplo de archivo de configuración. Noten que solo creamos la cuenta default, msmtp permite crear varias cuentas y luego enviar correos con cada cuenta independiente. También noten que lo anterior también funciona para correos de otros dominios que estén configurados para usar el email de Gmail vía GoogleApps.

Como verán, la clave del correo no está en texto plano en el archivo de configuración (NUNCA!!). Debemos crear el archivo cifrado ~/.msmtp.password.gpg:

nano ~/.msmtp.password

Escribimos la clave del correo en el editor, luego salimos con Ctrl+o (Guardar), Ctrl+x (Salir). Luego, ciframos el archivo:

gpg -c ~/.msmtp.password

Nos va a pedir una clave, puede ser lo que quieran, no es necesario que sea la del correo. Eso creará el archivo ~/.msmtp.password.gpg cifrado, por lo que deben eliminar el archivo original que contiene la clave en texto plano:

rm ~/.msmtp.password

Ahora, estamos listos para probar mandar un correo:

msmtp paraalguien@eldominio.com

Eso iniciará msmtp y ejecutará la acción que definimos para cargar la clave, en cuyo caso es decifrar el archivo que acabamos de crear. Introducimos la clave y luego escribimos en la terminal lo siguiente:

To: paraalguien@eldominio.com
Subject: El título del correo.

Cuerpo, blah blah.

Para enviar el correo introducimos un EOF con dos Ctrl+D seguidos.

Noten que el To no es necesario ya que lo introdujimos como parámetro al llamar a msmtp, pero si no lo ponen sería un envío tipo copia carbón oculta y no se mostrará el remitente. El From no es necesario pues puede ser solo uno, el que tenemos configurado en la cuenta del msmtp que estamos usando, en este caso la default.

Con eso ya deberían ver el correo después de unos segundos en su correo de salida en el webmail.

Saludos

Etiquetado , ,