Archivo de la etiqueta: Debian

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 ,

MiniDebConf Panamá

Charla de empaquetamiento por Alejandro Rios en la Ciudad del Saber, Panamá:

Charla de empaquetamiento por Alejandro Rios, MiniDebConf, Panamá

Una metafoto de la imagen anterior, con la sapa centroamericana siempre de chepa:

Moises y Tux 😀

Charla de Marcelo sobre licenciamiento:

Etiquetado , , ,

Instalación de MoinMoin tipo granja en Debian Lenny como WSGI

Esta es una bitácora de la instalación de MoinMoin en mi servidor Debian Lenny. Primero que nada, tengo configurado mi APT con APT-Pinning para poder instalar paquetes del Testing sin hacer el upgrade, cómo hacer esto está fuera del objetivo de este artículo, tal vez luego escriba sobre eso.

También, asumimos que tenemos Apache2 instalado y Python (en mi caso ambos son del repositorio estable, Python 2.5.2).

En este caso instalaremos el MoinMoin del testing (1.9.1-1) porque la del estable es muy vieja (1.7.1). Además, instalaremos MoinMoin como WSGI. Escribo este artículo por la falta de documentación simple para este entorno, pues tuve que tomar elementos de muchas documentaciones.

Primer lo que necesitamos es instalar MoinMoin (como root):

aptitude install python-moinmoin/testing

El /testing es por el APT-Pinning. Es importante usar aptitude aquí porque este puede resolver los upgrades de las dependencias acorde al repositorio de testing.

Una vez terminado, verificamos que tenemos el mod de Apache WSGI:

aptitude install libapache2-mod-wsgi

Ahora, creamos la instancia de MoinMoin:

mkdir -p /var/www/moin/nombrewiki1

mkdir -p /var/lib/moin/nombrewiki1

Llenamos los archivos de la instancia:

cp -r /usr/share/moin/server/moin.wsgi /var/www/moin/nombrewiki1
cp -r /usr/share/moin/data /usr/share/moin/underlay /var/lib/moin/nombrewiki1

Asignamos los permisos adecuados:

chown -R www-data: /var/www/nombrewiki1 /var/lib/nombrewiki1

Listo, con eso tenemos los archivos de la primera instancia en el lugar correcto. Ahora necesitamos configurar a la granja:

Agregamos nuestro sitio al archivos de sitios:

nano /etc/moin/farmconfig.py

Buscamos la sección:

wikis = [

Y agregamos una línea con nuestra wiki, en mi caso, dado que no quiero crear una regla en el DNS estoy poniendo esta regla, dado mi dominio cjenkins.net :

(“nombrewiki1″, r”^http://www.cjenkins.net/nombrewiki1/.*$”),

En dicho archivo aparecen otros ejemplos si quieren correrlo como un subdominio. En todo caso, lo más importante ahora es crear un archivo de configuración de la instancia:

cp /etc/moin/mywiki.py /etc/moin/nombrewiki1.py

Es muy importante que el archivo de configuración del sitio tenga el nombre que hemos puesto desde el inicio a la instancia y debe ser uniforme en todo lugar. El archivo mywiki.py es un template. Editamos el archivo de configuración de la instancia:

nano /etc/moin/nombrewiki1.py

Y lo adaptamos, por lo menos, para que contenga estas reglas:

sitename = u’Nombre legible del sitio’ # [Unicode]
interwikiname = u’NombreWiki1′ # [Unicode]
data_dir = ‘/var/lib/moin/nombrewiki1/data/’
data_underlay_dir = ‘/var/lib/moin/nombrewiki1/underlay’
superuser = [u”nombresuperusuario”, ]

Una vez listo la instancia configuramos el apache. De nuevo, pueden hacerlo un subdominio agregando un <virtualhost> en la carpeta de sites-avalaible, en mi caso, deseo agregarlo al sitio ya establecido:

Editamos el archivo del sitio actual/principal del apache:

nano /etc/apache2/sites-available/root # En mi caso, normalmente es default o algo por el estilo

Y agregamos estas cláusulas entre los tags de <virtualhost>. Está fuera alcance de este artículo explicar los archivos de configuración de Apache.

# Moinmoin settings
Alias /moin_static191/applets/FCKeditor/ “/usr/share/fckeditor/”
Alias /moin_static191/ “/usr/share/moin/htdocs/”
WSGIScriptAlias /
nombrewiki1 /var/www/moin/nombrewiki1/moin.wsgi

Guardamos y recargamos el servidor Apache:

invoke-rc.d apache2 reload

Listo, ahora en http://www.dominio.com/nombrewiki1/ está disponible la instancia del Wiki. Pueden configurarlo en:

http://www.dominio.com/nombrewiki1/LanguageSetup

Basado en el super usuario que definieron en el archivo de configuración de la instancia.

Etiquetado , , , ,