MarioDebian, mi devlog

Bitácora de un desarrollador newbie.

Planta una encina.
Leo en barrapunto, una noticia bastante curiosa, ya que nos permite plantar una encina virtualmente.

Extraido de verdeqtqverde.org el siguiente texto:

Tienes 5 días para
plantar tu árbol...

Econauta*, ¿quieres formar parte de este bosque virtual? .

Planta tu encina. El próximo 5 de junio es el Día Internacional del Medio Ambiente y, coincidiendo con el aniversario del nacimiento de Federico García Lorca, la Consejería de Medio Ambiente lo convertirá en el Bosque Verdeqtqverde de Federico García Lorca. Un nuevo pulmón para Andalucía.
Regístrate y hazle el mejor regalo posible a la Tierra.

Cartas de presentación Institucionales

*Internauta sensibilizado con el medio ambiente.

Desde mi bitácora os animo a que planteis una. Yo ya he plantado la mía.





Malas formas de windoze!!!
Resulta que en el ordenador de mi hermano (que usa esa cosa que dicen llamar windoze) se ha colado un virus.

El virus en cuestion se llama SP2-fireblocker y consiste en repetir las malas maneras por las que la compañía del señor puertas fue condenada cuando derribó a su antiguo competidor Netscape.

Qué mejor forma de demostrarlo que una captura....

Captura del nuevo BLOQUEADOR de windoze contra firefox





Spam en los blogs, toy quemao!!!
Ya hace unos días que no recibo comentarios spam en mi blog, pero en su momento llegué a plantearme borralo sin más, porque los mensajes llegaban de muchos sitios distintos. Configuré correctamente el plog con palabras prohibidas, y eso terminó.

Resulta que si, por si no tuviera bastante ahora llega la moda de escribir toda la música que tienes en tu discotéca personal, ¡PUES NO ME DA LA GANA!, si empezamos así con los mensajes enlazados entre blogs acabaremos pasándonos aquellos correos mierda basura de hotmail con la foto de farruquito, o con una maldición que si no lo compartes con 100 amigos enemigos se hará realidad.

El "amigo" Aloriel me invita a un ¿meme?....

Me paso toa la puta mañana escuchando la mierda de los 50 criminales (en la escuela el resto de las emisoras se oyen fatal), y no soporto la música de mazi, qué pena haber perdido mis buenas costumbres de cuando trabajaba en Camarote..., aquello si era música!!!

Pasa lo mismo con correos de personas que les gusta dar por culo mal informadas, que deberían abrir un poco su mentalidad GUIRI, y dejarse de criticar por medio de insultos. Los hijos de la gran bretaña no son europeos.

Estoy más quemao que la moto de un hippi!! esto me pasa por no descansar el fin de semana y pasármelo currando como un gili.





SOLEUPIX y yo nos vamos de viaje a Fuerteventura
Después de una tarde de nervios yo creo que ya es el momento de hacer pública la noticia bomba:

He sido seleccionado como ponente para las I Jornadas de Software Libre de Fuerteventura organizadas por el GULIC (Grupo de usuarios de Software libre de Canarias) días 23, 24, 25 de Junio con el fin de dar una charla sobre Metadistros.

Esta mañana cuando recibí la llamada de Javilón (miembro de SOLEUP en la sombra), y actualmente trabajando y residiendo en las islas afortunadas me quede bastante impresionado, y sólo se me ocurrió decir que me perdía las fiestas de mi pueblo. Una vez centrado y más en frío he visto que es una buena oportunidad para expandir un poco más SOLEUPIX y el tema del Software Libre en general, aunque por lo visto el GULIC se mueve bastante.

Esta tarde estuve hablando por teléfono con Luis Méndez Alejo que es el promotor/organizador de las ponencias y ya después por correo hemos cerrado la charla.

La charla consistirá en la explicación del funcionamiento de SOLEUPIX, y de cómo arranca desde un medio sólo lectura (cdrom), además de la charla tengo pensado de manera muy rápida compilar un live-cd delante de todos y quizás un taller de instalación.

Queda un mes para estas Jornadas y "estoy mas ilusionao que un ocho". Espero que todo salga bien.

En este mes voy a preparar una versión de soleupix, más o menos estable, aunque seguro que el señor Murphy juega de nuevo en mi contra y se vuelve a colgar, en fin, si tiene que colgarse, que se cuelgue, esta vez llevaré un par de chistes preparaos del "saben aquel que diu" mientras arranca.





Jorge Gonzalez (sin acentos) rompe el XML del planet-augcyl
Llevo unos días sin poder leer el feed del planet Augcyl desde Firefox y sorpresa que cuando miro el xml me encuentro con esto:


Error de lectura XML: entidad no definida
Ubicación: http://soleup.eup.uva.es/planet-augcyl/rss20.xml
Número de línea 42, columna 25: <title>Jorge González: &iexcl;No decidan por mi!</title>
---------------------------------------------------^

Jorge, me parece muy bien que pongas acentos pero ponlos bien!!!

Actualización:

Parece ser que es su feed xml y una apertura de admiración:

Error de lectura XML: entidad no definida
Ubicación: http://aloriel.no-ip.org/rss/index.xml
Número de línea 17, columna 8:
<title>&iexcl;No decidan por mi!</title>
-------^

Hablando de otras cosas, estoy intentando instalar el plog nuevo (1.0) y es bastante complicado mantener las noticias y comentarios viejos, quizás le haga un reset al blog y borrón y cuenta nueva.





Empaquetador/Desempaquetador de debian
Sigo descubriendo grandes posibilidades en esta distribución de GNU/Linux y una de ellas es empaquetar deb's de cosas que no tenemos en los mirrors oficiales.

Antes de seguir, quiero dejar claro que el método de crear un deb desde las fuentes de un programa no es éste, existen checkinstall o mucho mejor dpkg-buildpackage, que para eso estan pudiendo firmar con gpg el paquete y despueś testearlo con lintian o linda. Mi script es un apaño para salir del paso por conflictos de dependencias o la creación de paquetes no binarios como puede ser un tema de gnome o programas que sólo es descomprimir (basados en java por ejemplo)

Hace tiempo que vengo usando un pequeño script que he hecho en bash y ahora ya que funciona bastante bien me he decidido a publicarlo. A más de uno seguro que le va a venir muy bien...

El funcionamiento es muy sencillo, como usuario o como root ejecutamos:

empaqueta_deb.sh -d ruta/relativa/archivo.deb
empaqueta_deb.sh -d /ruta/absoluta/archivo.deb

Esto desempaqueta el deb en /tmp/paquete/tmp creando un árbol de directorios Linux (/usr /bin /var con los archivos que se copian en el sistema cuando lo instalamos por apt) además se crea un directorio especial /tmp/paquete/tmp/DEBIAN con los ficheros responsables de la creación del paquete, el más importante es control donde indicamos el nombre del paquete, versión, tamaño ocupado, responsable empaquetador y las dependencias. Puede haber otros scripts que se ejcutarán antes, después de la instalación o desinstalación. Para más info acude a la Guía del nuevo desarrollador de Debian.

Para empaquetar:
empaqueta_deb.sh -e    (esto sólo crea el deb en /tmp/paquete)
empaqueta_deb.sh -e -a (crea el deb, lo copia en el mirror que tengamos)
Como prueba de su funcionamiento aquí tengo una lista de los paquetes que he empaquetado hasta hoy:

atnag_0.0.3_i386.deb
jclic_0.1.1.5_i386.deb
jclic-games-3-6-years_0.1.1.5_i386.deb
clearlooks_0.5-1_i386.deb
sofilin_0.0.3_i386.deb
xfce4-panel-menu-plugin-_0.3.1-1_i386.deb
vnc2swf_0.4.2-1_i386.deb
spice_3f4-15_i386.deb
tablix_0.1.1-1_i386.deb
tnt_1.2.2-1_i386.deb
php-gtk_0.1.0-mario-1_i386.deb
php-gtk-cvs_1.0.1-1_i386.deb
php-manual-es_0.0.2_i386.deb
pxes-base-i586_0.9-2_i386.deb
pxesconfig_0.9-2_all.deb
libparted1.6-12_1.6.20-0.exp.1_i386.deb
libtiff3g_3.7.2-1_i386.deb
ming_0.2a-1_i386.deb
mixmagic_0.1.7-1_i386.deb
mysqlcc_0.9.4_i386.deb
gparted_0.0.8-1_i386.deb
gphpedit_0.9.50-2_i386.deb
gphpedit-cvs_0.9.50-2_i386.deb
gtablix_0.0.7-12_all.deb
gtk2-engines-soleupix_0.0.1_i386.deb
gtkscintilla-0.8.2_0.8.2-1_i386.deb
gcursor_0.0.6.1-1_i386.deb
gcvs_1.0.0-1_i386.deb
geotrace_0.0.4-2_i386.deb
getleft_1.1.2-2_all.deb
gimpshop_2.2.4-2_i386.deb
ccd2iso_0.1+fix-1_i386.deb
cinelerra_1.2.2-1_i386.deb
as6edriver-0.5_0.5-1_i386.deb
bashburn_1.5b2_i386.deb


Quizás alguno de estos paquetes ya esté en debian oficialmente, pero cuando yo lo empaquete no estaba.

No me vengais pidiendo nada de esto porque no tengo suficiente ancho de banda para hacerlos públicos.
(algunos están colgados en idefix.eup.uva.es)

Fichero: empaqueta_deb.sh
(recomiendo copiarlo en /usr/bin o /usr/sbin dependiendo de si lo ejecutará root o cualquiera) y darle permisos de ejecución: chmod 755 empaqueta_deb.sh
#!/bin/bash

#------------------------------------------------------------------
# Copyright (C) 2005, Mario Izquierdo mariodebian[AT]gmail[dot]com
# You may distribute this software under the GPL License
#------------------------------------------------------------------

# directorio donde montaremos el mirror
# no poner la ultima barra
# edita esta variable
#
#despues añadir al sources.list la siguiente linea
#deb file:///mirror/extra ./

mirror_extra="/mirror/extra"

# NO EDITES DESDE AQUI

#variables más comodas
modificador=$1
fichero=$2
destino=$3

ayuda() {
echo "Uso de empaqueta_deb.sh"
echo ""
echo " Desempaquetar:"
echo " empaqueta_deb.sh --desempaqueta (-d) /ruta/donde/este/archivo.deb"
echo " Esto descomprime nuestro deb a un directorio temporal"
echo " /tmp/paquete/tmp/"
echo ""
echo " Empaquetar:"
echo " empaqueta_deb.sh --empaqueta (-e) [-a /destino/del/mirror]"
echo " Esto empaqueta el deb préviamente desempaquetado"
echo " generando de nuevo el archivo .deb"
echo " "
echo " ejemplos:"
echo ""
echo " empaqueta_deb.sh -d /usr/src/sofilin_0.0.3_i386.deb"
echo ""
echo " empaqueta_deb.sh -e -a /mirror/extra"
exit 0
}

desempaqueta() {

#salimos si no hay argumento en $fichero
if [ "$fichero" == "" ]; then
echo "No se ha especificado ningún paquete .deb";
exit 1
fi

#miramos que no haya otro paquete para sobreescribirlo accidentamente
if [ -f "/tmp/paquete/tmp/DEBIAN/control" ]; then
nombre_p=`cat /tmp/paquete/tmp/DEBIAN/control |grep ^Package: | awk '{print $2}'`
version_p=`cat /tmp/paquete/tmp/DEBIAN/control |grep ^Version: | awk '{print $2}'`
echo "###################################"
echo "# #"
echo "# Ya hay un paquete deb en /tmp #"
echo "# ======># ${nombre_p}_${version_p} "
echo "# ¿Quiere seguir? #"
echo "# #"
echo -n "################################### (S/n) "
read seguir
if [ "$seguir" == "n" ];then
echo "Saliendo..."
exit 1
fi
fi

#localizamos el deb (ruta relativa o absoluta lo sabemos porque
# $fichero comience o no por /)
if [ "`echo $fichero | cut -c1`" == "/" ];then
fichero=$fichero
else
fichero=`pwd`/$fichero
echo "la ruta completa es: $fichero"
fi

#descomprimir cada cosa en su sitio
cd /tmp/
rm -rf paquete 2>/dev/null
mkdir paquete
cd /tmp/paquete
ar x $fichero >/dev/null
mkdir tmp
cd tmp
tar xzpf ../data.tar.gz
mkdir DEBIAN
cd DEBIAN
tar xzpf ../../control.tar.gz
echo "Desempaquetado."
exit 0
}

empaqueta() {
cd /tmp/paquete/tmp/
dpkg --build . ..
cd ..
ls *.deb
echo "Aquí tienes tu .deb"
}

if [ "$#" == "0" ]; then
ayuda
fi

if [ "$modificador" == "--help" ]; then
ayuda
fi

if [ "$modificador" == "--desempaqueta" ] ; then
desempaqueta
fi

if [ "$modificador" == "-d" ] ; then
desempaqueta
fi

if [ "$modificador" == "--empaqueta" ]; then
empaqueta
fi

if [ "$modificador" == "-e" ]; then
empaqueta
fi

#si no hemos deficnido destino ponemos uno por defecto
if [ "$destino" == "" ]; then
destino=$mirror_extra
fi

if [ "$fichero" == "-a" ]; then
echo "Copiando paquete en $destino ..."
cp *.deb $destino
echo "Actualizando mirror..."
cd $destino
dpkg-scanpackages ./ /dev/null | gzip -9c > ./Packages.gz
if [ ! -f "$destino/Sources.gz" ]; then
#creamos el Sources.gz si no existe
touch Sources
gzip Sources
fi
echo ""
echo "HECHO"
fi








Página web de la EUP
Una de mis labores de becario consiste en _actualizar_ la web de la Escuela Universitaria Politécnica de Valldolid, pues bien, ya con el visto bueno de la directora y demás personal responsable de la misma, vamos a empezar a trabajar sobre Drupal, para ello lo he instalado ya hace un tiempo en el debian-server y ahora es cuando hay que empezar a publicar el contenido.

Mucha gente se queja de lo feas o poco accesibles que son algunas web de universidades españolas, creo que usar drupal conlleva muchas ventajas como son actualizaciones de seguridad (recuerdo que es de los pocos CMS que es paquete oficial de debian), su sistema de plantillas y módulos para hacer una página realmente a medida, etc... La traducción también es muy sencilla ya que usa un archivo .po que se importa en drupal para traducir las cadenas. Jorge ha traducido drupal en rosetta, pero he sido incapaz de descargar un es.po completo (actualmente tiene el 93% más o menos, descargado del CVS de drupal.org)

Lo que hay hasta ahora se encuentra en la página web temporal donde poco a poco vamos añadiendo contenido. Mi idea es usar el módulo de libros como un tablón de anuncios estático para su uso de normativa de la escuela, cargos directivos, calendario de clases, exámenes u otros eventos oficiales, y usar los diarios (blogs) como anuncios de becas o temas más esporádicos. También había pensado dar de alta a los profesores que quieran usarlo para que puedan publicar su horario de tutorias, su correo o lo que quieran, ya que el alta libre está bloqueada, y sólo disponible para las altas que realice el administrador de la web. Para la agenda de los profesores he buscado algún módulo pero mucho me temo que me tocará programarlo en php a pedal. Necesito que tenga un interfaz de administración donde el profesor seleccione las horas en una tabla tipo semanal donde tiene tutorías o clases y que después ese calendario sea público (o no) desde la web por cualquier visitante. ¿algún módulo de drupal de ejemplo?

Ahora que estamos a tiempo, acepto sugerencias de todos lo que estáis en algún estudio universitario, para saber qué es lo que os gustaría ver en una WEB de una Universidad.





Debootstrap y chroot. Cómo tener corriendo a la vez Debian y Ubuntu
Estoy desarrollando una metadistro para la escuela: SOLEUPIX y en medio de las pruebas, me he hecho con un disco duro nuevo (Seagate 80Gb 7.200rpm) y una caja externa USB 2.0 para conectarlo a mi portátil.

He descubierto la amplia potencia de un sistema GNU/Linux y que los límites ni siquiera los pone la imaginación. Después de enredar con el milagro de los terminales ligeros (donde pcs tontos sin disco duro se conectan al interfaz gráfico de otra máquina), o de los live-cd (donde ejecutamos un linux desde un sistema sólo lectura cdrom + RAM), he descubierto un sistema multigráfico.

En una de las particiones ext3 del disco externo he instalado un ubuntu a partir de la aplicación debootstrap, que consiste en decirle que versión de debian (o ubuntu) quieres instalar, el punto de montaje (puede ser partición o no) y el mirror (aprovechando que también he hecho un mirror en el disco duro de debian y ubuntu...)
debootstrap hoary /mnt/hoary http://localhost/ubuntu
Una vez instalado el sistema base y configurado se entra en la jaula chroot , se termina de configurar (base-config para debian, y dpkg-reconfigure -a para ubuntu) y se instala lo que se quiera (en apenas 1,3 Gb tengo gnome2.10 xfce4 y kde3.4). Lanzo el gdm y sorpresa!!! funciona bastante más rápido que desde el lento disco duro del portátil.

chroot /mnt/hoary
nano /etc/fstab ==> añadir la línea de /proc y /dev/pts
mount /proc
mount /dev/pts
dpkg-reconfigure -a
apt-get install x-window-system gdm xfce4 kde-core gnome-core
/etc/init.d/gdm start

Linux al tener separado el núcleo del tema gráfico permite cosas como correr varias distribuciones linux a la vez, ya que los servidores gráficos se van añadiendo desde el :0 (Ctrl + Alt + F7) hasta que el sistema aguante. De esta manera arranco mi debian sarge con kernel 2.6.8-2-k7 y una vez lanzado gdm uso mi xfce de toda la vida, pero lanzo el gdm de ubuntu en el screen :1 (Ctrl + Alt + F8) y arranco la jaula gráfica de ubuntu en esa pantalla.

El funcionamineto es impresionante, ya que el disco duro externo es bastante más rápido que el disco del portátil y aplicaciones muy pesadas como firefox ahora van muy bien. La ventaja de esto es que tengo el sistema debian con sus servidores: apache2, mysql, postfix, courier, dhcp3, etc.. pero el interfaz gráfico no comparte procesos con los servidores.

Esta idea la cojí esta mañana leyendo un articulo en esdebian para enjaular un servidor sftp, entonces fue cuando me pregunte, si con ssh y ftp se puede hacer porqué no con las X. Este artículo lo escribo desde firefox en ubuntu hoary, corriendo el servidor gráfico xorg, y a la vez tengo xfree en otra pantalla con el beep-media-player escuchando musiquita, y mi evolution para controlar los mail...

Hay algún problema en lo que se refiere a comunicación con algún dispositivo ya que no funciona el acpi dentro de ubuntu (no me importa porque si funciona en debian), pero cosas como el sonido o la red lo comparten (supongo que la misma IP). Recuerdo que ubuntu no tiene ningún kernel instalado, y funciona todo con el kernel de debian.

En fin toda una experiencia, recomendadísmimo probarlo. Para el día que lleguen los virus a Linux (espero que no llegue) es una solución, incluso para enjaulado de privilegios de usuarios en aplicaciones gráficas.





El software libre lo hacemos todos y yo también me apunto
Llevo un tiempo manteniendo alguna conversación por correo con el desarrollador del plugin para xfce: xfce4-panel-menu-plugin, que consiste en tener la apariencia del menú de windoze Xp con el xfce4.2. Podeis ver capturas en la web del desarrollador.

No es que quiera que mi escritorio se parezca a windows sino que veo en ese plugin algo muy importante para el acercamiento de la gente normal a un escritorio ligero como es xfce. Seguramente lo implante en el aula magna.

El desarrollador en cuestión es Radoslaw Pociecha y con mi pobre inglés he conseguido explicarle que quería traducir su plugin al español (ví en el CVS algún fichero .po) y me copié la traducción en Polaco y la metí en Español (apenas 49 líneas). Ese archivo se lo envié por mail y me contestó dandome las gracias. Ahora el problema es que quería compilarlo y me ha costado bastante, más que nada porque necesita millones de paquetes de desarrollo (*-dev). Hace un rato por fín lo he conseguido, pero cascaba el panel :(, después de investigar he encontrado algo extraño en un fichero en C:

if (bm->header_button) {
gtk_conainer_remove (GTK_CONTAINER (bm), bm->header_button);
-----------^ ===> change to container
bm->header_button = NULL;
}
He cambiado conainer por container, he recompilado y voila!!! es emocionante ver como se puede contribuir a que cada día el software libre sea más grande y accesible.

y el resultado es espectacular ya que es una versión nueva con títulos de secciones y en el español que he traducido yo. Tiene un navegador de archivos, muestra los archivos recientes, un montador de discos, permite cambiar de usuario o activar el salvapantallas, un menu de aplicaciones en XML que tengo que hacer y un apartado de aplicaciones recientes.

He creado el paquete .deb (xfce4-panel-menu-plugin-cvs) y lo he subido al mirror extra de idefix por si alguien quiere probarlo. Como dependencias para instalar os desinstalará el viejo si lo tenéis instalado. ¡Probadlo!

Aquí va alguna capturilla de mi menú:


Vista PreviaXfce4 Panel Menu (Vista general)

Vista PreviaXfce4 Panel Menu (Montador de discos)

Tengo un fondo bastante "vistoso", perdón si molesta a alguien....





Stallman en Valladolid
Después del jaleo que montó el amigo aloriel ayer, hemos ido en bandada una representación de soleup a verle hoy a su charla. Nada más llegar a la cola avisé de que Stallman necesita Pepsi en sus conferencias y Jorge y Mazi fueron echando leches a comprarlas. Esas tres Pepsis de cristal las compraron los susodichos, que le duraron a Stallman como una hora... (¿ese señor no se mea? porque 1 litro de refresco....) Después me han dicho que Stallman aviso en el viaje.

La conferencia bastante entretenida, "Patentes de Software", (conozco a uno que se ha quedao dormido un buen rato), me salgo con mal sabor de boca ya que no dejaron hablar a una persona que han podido hacer daño. Estaba el presidente del colegio de Ingenieros Informáticos de Valladolid (creo que ese es el cargo) que también estuvo en alguna charla de nuestras Jornadas. Y por lo visto a alguien se le ocurrió no dejarlo hablar, Jorge me decia que Stallman se lo habría comido con patatas pero no es eso... Los que promulgamos por el Software Libre no deberíamos tener la opción de cortar el derecho a la palabra a nadie, aunque reme en nuestra contra.

Lo más gracioso de todo a sido ver a Jorge y a David Crajal haciendose fotos en la cafetería con el "Gran Grial" (la copa de cristal donde ha bebido Richard), es el colmo de frikismo!!! (joder podíamos haber guardado la copa y haberla vendido!!!)

Me entero a traves del planet y Barrapunto que se ha congelado debian sarge. Me alegro pero tengo miedo a las X.org, espero que no me la vuelvan a liar...