26 noviembre 2011

Awesome en Slackware o "De cómo partiendo de la Nada, se llegó a las cimas más altas de la Miseria"

Awesome en Slackware 13.37 Aviso: Alto prejuicio cognitivo mio. Soy Slacker de alma, por eso mis servidores son Slackware[0] o FreeBSD[1], y como buen perezoso, quiero un *BSD antes que cualquier otra cosa... No incito al flameWar pero me gustan los estandares...

He usado manejadores de ventanas (WMs de ahora en adelante) durante mucho tiempo. ¿Porque? Son mucho mas rapidos, eficientes y hace un buen uso del espacio disponible en la pantalla, al margen de que muchos equipos considerados "obsoletos" pueden tranquilamente seguir siendo usados, evitando una "obsolecencia planificada" y siendo mas amigables con el medio ambiente al generar menos basura tecnologica. Tambien me senti muy feliz aquella primera vez que me pude compilar y sacar andando un KDE 0.96 en la obscuridad de los tiempos y en un (ahora) vetusto 486SX de mi propiedad, pero ese no es el caso...

Ahora bien, los programas que necesito con entorno grafico no son muchos, Firefox, LibreOffice[2], XPdf[3] y alguno otro mas, ya que las peliculas las puedo ver directo en consola[4], el chat con Finch[5] (IRC y tambien IM), reproducir musica con MOCP[6], el excelente manejador de archivos en consola MC[7] para el todos los dias y asi puedo seguir dando ejemplos... Cuando uno se acostumbra a "administrar miseria" puede volverse muy creativo con muy poco, ej. JLime[8] en una Jornada 680E o Slackware[0] en un equipo antigüo ;-)

Por recomendacion de OSiUX[9], un amigo de BuenosAiresLibre[10], conoci Awesome[11], y cuando quise instalarlo realmente se me complico bastante, no por tener que compilar todo, sino porque la bibilioteca RCairo debia ser parchada, y eso causaba que otras cosas que usaba, dejaran de hacerlo bien o no lo hicieran directamente, se que es más fácil hacer preguntas estúpidas que corregir errores estúpidos...
Deberan disculpar si insisto en lo de la inteligencia, pero tengo que luchar a diario contra el discriminador y malintencionado prejuicio de que los lindos somos tontos.

Todo muy bonito, pero no me iba a quedar solo en eso de que "no me funciona bien"[12]

... Buscando en muchos sitios encontre en Slackword.net[13] una guia (en ingles obviamente) que funciona de manera exitosa y sin tener que aplicar parches raros a RCairo, sino simplemente recompilando.

¿Qué consuelo encontraríamos en saber que los sufrimientos de millones de hombres han permitido la revelación de una situación límite de la condición humana, si más allá de dicha situación límite sólo estuviera la nada?

Aca esta, basado en la guia que mencione[13], la forma mucho mas simple de instalar Awesome 3.x en Slackware[0] 13.1 o 13.37 (y -current) en pasos muy simples y amenos y en totalmente castellano, ya que la lengua de los hijos de la gran bretaña no es para todos.

Primero de todo lo que necesitamos es bajar el slackbuild y los fuentes de Cairo desde la serie L de los fuentes de Slackware[0] y recompilar con xbc. Para esto necesitamos editar el archivo cairo.Slackbuild y agregar la linea resaltada:


CFLAGS="$SLKCFLAGS" \
./configure \
--prefix=/usr \
--libdir=/usr/lib${LIBDIRSUFFIX} \
--mandir=/usr/man \
--sysconfdir=/etc \
--disable-gtk-doc \
--disable-glitz \
--disable-quartz \
--disable-static \
#########Agregar la siguiente linea#########
--enable-xcb \
#########Agregar la linea anterior#########
--disable-win32


Dependencias:

Despues de eso, necesitas instalar todas las dependencias que necesita Awesome: lua, imlib2, libev. Todo esto esta disponible desde los scripts de www.slackbuilds.org[14]. Finalizando, podes tomar el fuente de libxdg desde aca[15] y crearte tu paquete de Slack. Lo podes intentar hacer manualmente[16], o simplemente usar src2pkg[17]. Es la simpleza de Slackware y su filosofía KISS (Mantenlo Estupidamente Simple, de sus siglas en inglés KISS que significan "Keep It Simple Stupid"), y si un paquete no esta en Pkgs.org[19] tenemos un SlackBuild que lo complementa. Cuando el paquete libxdg sea creado en /tmp, ya podes instalarlo con el siguiente comando:

# installpkg /tmp/libxdg-basedir*.tgz


Lo unico que falta ahora es bajar los fuentes de Awesome[11], armar el paquete e instalarlo en tu sistema. Hasta ahora no tuvimos que cambiar nada, solo agregar una linea. Por omision, los fuentes Awesome[18] asumen que los archivos de configuracion e instalacion estan en /usr/etc y esto no es una politica en un filesystem estandar de Slackware[0] (Hasta donde se yo, solo la familia Debian lo hace así). Normalmente todos los archivos de configuracion en Slackware[0] estan en /etc. Vamos a tener que hacer unas ligeras modificaciones a el codigo fuente:

1. Descomprimimos con TAR los fuentes:
tar xvjf  awesome-3.4.8.tar.bz2
cd awesome-3.4.8

2. Abrimos awesomeConfig.cmake con tu editor favorito

3. Cambiamos lo siguiente:
if(DEFINED SYSCONFDIR)
set(SYSCONFDIR ${SYSCONFDIR} CACHE PATH "config directory")
else()
set(SYSCONFDIR ${PREFIX}/etc CACHE PATH "config directory")
endif()

Por esto:
if(DEFINED SYSCONFDIR)
set(SYSCONFDIR /etc CACHE PATH "config directory")
else()
set(SYSCONFDIR /etc CACHE PATH "config directory")
endif()

4. Ejecutamos ‘make’

5. Como root:
mkdir /tmp/awesome-3.4.8
make install DESTDIR=/tmp/awesome-3.4.8
cd /tmp/awesome-3.4.8
makepkg -l y -c n /tmp/awesome-3.4.8.tgz
installpkg /tmp/awesome-3.4.8.tgz

Awesome Window Manager esta ahora instalado en tu sistema.

Este es un ejemplo de un xinitrc de Awesome (tomado del Slackbuild[14] de Awesome[11] para Slack 13.0). Para agregar esto a xwconfig necesitas previamente crearte un xinitrc.awesome y copiarlo en /etc/X11/xinit/

#!/bin/sh
# $Xorg: xinitrc.cpp,v 1.3 2000/08/17 19:54:30 cpqbld Exp $

userresources=$HOME/.Xresources
usermodmap=$HOME/.Xmodmap
sysresources=/etc/X11/xinit/.Xresources
sysmodmap=/etc/X11/xinit/.Xmodmap

# merge in defaults and keymaps

if [ -f $sysresources ]; then
    /usr/bin/xrdb -merge $sysresources
fi

if [ -f $sysmodmap ]; then
    /usr/bin/xmodmap $sysmodmap
fi

if [ -f $userresources ]; then
    /usr/bin/xrdb -merge $userresources
fi

if [ -f $usermodmap ]; then
    /usr/bin/xmodmap $usermodmap
fi

exec awesome
#Fin del script


Eso es todo, ya podes iniciar Awesome Window Manager en tu Slackware[0]
Y todo esto gracias al Software Libre. Ojo... No confundan "libre" con "gratis", en ingles "free"... Se esta dejando de usar mundialmente la expresion "free software" por "software libre" para deliberadamente evitar ambigüedades, porque no es "gratis como una cerveza libre". Cualquiera puede fabricar cerveza, la formula es "libre", pero los elementos para hacerla no son "gratis". Aunque me ofrezco "gratis" para de manera "libre" a degustar las cervezas que me quieran convidar, y tambien acepto donaciones :P

Que te diviertas!

[Este tutorial ha sido testeado en Slackware64 13.1, Slackware64 13.37 y Slackware64-current al 20/11/2011]

Referencias:
[0]  http://www.slackware.org/
[1]  http://www.freebsd.org/es/
[2]  http://www.libreoffice.org/
[3]  http://www.foolabs.com/xpdf/
[4]  http://vampii.blogspot.com/2011/10/ver-peliculas-por-consola-sin-arrancar.html
[5]  http://vampii.blogspot.com/2011/09/finch-chat-e-irc-desde-la-consola.html
[6]  http://moc.daper.net
[7]  http://www.midnight-commander.org/
[8]  http://jlime.org
[9]  http://osiux.com
[10] http://www.buenosaireslibre.org
[11] http://awesome.naquadah.org/download/
[12] http://vampii.blogspot.com/2011/09/instalando-xmonad-en-slackware-1337.html
[13] http://www.slackword.net/
[14] http://www.slackbuilds.org
[15] http://n.ethz.ch/~nevillm/download/libxdg-basedir/
[16] http://slackwiki.org/Building_A_Package
[17] http://www.src2pkg.net/
[18] http://awesome.naquadah.org/wiki/Awesome-3-Slackware
[19] http://pkgs.org/

No hay comentarios: