Habilitar Antialiasing

From AMSN
Jump to: navigation, search

Una de las características más solicitadas en aMSN para Linux son las fuentes tipográficas con antialiasing. Esto hace que las letras sean mas suaves y limpias para leer. En este artículo vamos a explicarles cómo obtener esta prestación y cómo esta situación va a evolucionar en un futuro cercano para las distribuciones de Linux.

Contents

Introducción y notas históricas

aMSN está escrito utilizando el lenguaje de programación Tcl y el widget toolkit Tk. Las letras con antialiasing no es una característica de aMSN; esto depende de las capacidades del toolkit gráfico. Tk 8.4 para Linux no lo soportaba, ahora Tk 8.5 lo soporta y está activado por defecto. Esto significa que no se podía hacer nada dentro de aMSN para activar esta función: para tener fuentes con antialiasing debes tener Tk 8.5 con esta opción activada en el momento de compilar (o mejor dicho a la hora de configurar, ./configure, como veremos después).

La gran mayoría de las versiones de aMSN empaquetadas para las distribuciones de Linux están compiladas usando Tk 8.4, así que no queda otra alternativa más que compilar Tcl/Tk 8.5 desde el código fuente. Esto es porque Tcl/Tk 8.5 ha sido lanzado como estable en Diciembre de 2007. En el futuro más distribuciones pondrán en sus repositorios aMSN con antialiasing por defecto (o, dicho de mejor modo, compilado con Tcl/Tk 8.5). Como puedes ver aMSN en Debian Lenny (que es la próxima versión estable) está compilado con Tcl/Tk 8.5 y muchas otras distribuciones lo harán también.

Entonces, las posibles soluciones al problema son:

  • Esperar unos meses por el nuevo lanzamiento de tu distribución.
  • Instalar un backport.
  • Compilar apropiadamente Tcl/Tk 8.5 y aMSN desde el código fuente, usando la guía oficial sobre cómo Compilar aMSN.

Versiones que incluyen Tcl/Tk 8.5

Si quieres exactamente cuanto deberás esperar, mira la tabla de los próximos lanzamientos en Distrowatch.com (notar que la lista es actualizada semanalmente, si deseas leer la última ve a Distrowatch weekly y abre la última edición).

Aquí está la lista de las distribuciones más importantes que incluyen Tcl/Tk 8.5 por defecto en sus repositorios:

  • Ubuntu 8.04;
  • Fedora 9;
  • Mandriva 2008.1;
  • OpenSuse 11;
  • Debian 5.0;
  • y algunas otras más.

Instalar por backports

Ubuntu 7.10 - Gutsy Gibbon: ambos, Tcl/Tk 8.5 y aMSN 0.97 han sido portados a Gutsy, así que tan solo necesitas activar los repositorios backports para instalar el nuevo aMSN. Una buena guía sobre backports puede ser encontrada aquí.

Debian 4.0 Etch: quienes usen un Debian estable pueden instalar aMSN desde Debian Lenny siguiendo esta guía oficial apt-pinning o esta guía no oficial para apt-pinning. Solo recuerda que, por ahora, stable=etch y testing=lenny pero apt-pin acepta solo la terminología stable/testing/unstable/experimental (por ejemplo, contrario a /etc/apt/sources.list el archivo de configuración /etc/apt/preferences no acepta etch o lenny como parámetro para "release").

Instalar las librerías requeridas

Para compilar un paquete desde su código fuente, se necesitan muchas cosas: necesitamos un compilador, algunas librerías y algunos headers. En este caso, vamos a necesitar gcc, algunos Paquetes Dev para compilar Tcl/Tk 8.5 y la libxft-dev para obtener letras con antialiasing.

Afortunadamente las distribuciones más importantes proveen de herramientas para facilitar el desarrollo de paquetes de algunos programas o librerías.

Debian, Ubuntu y distribuciones con apt-get

Si tienes un sistema basado en Debian que no tiene Tcl/Tk 8.5 en sus repositorios (como Debian 4.0 "etch" o Ubuntu 7.10 "Gutsy Gibbon"), necesitarás instalar algunos paquetes.

Nota: utiliza sudo solo si está configurado apropiadamente (como en Ubuntu), de otro modo, inicia una sesión como root con su y luego escribe las siguientes líneas sin sudo al principio.

Esto descargará las dependencias necesarias para compilar Tcl/Tk (las dependencias son las mismas para las versiones 8.4 y 8.5):

sudo apt-get build-dep tcl tk

Luego necesitarás el paquete para desarrollo de libxft:

sudo apt-get install libxft-dev

Si deseas descargar el código fuente de Tcl/Tk desde cvs (no es muy recomendado), necesitarás además instalar:

sudo apt-get install cvs

RHEL, Fedora y basados en Yum

Las distribuciones basadas en Red Hat usan el gestor de paquetes Yum. Es una herramienta similar al apt-get build-dep, el cual es incluido en el paquete yum-utils y se llama yum-builddep. Entonces, inicia una sesión como root usando su e instala las yum-utils:

yum install yum-utils

instala las dependencias que necesita Tcl y Tk para instalarse

yum-builddep tcl tk

instala la libXft-devel (necesaria para que Tk tenga antialiasing), libpng-devel y libjpeg-devel (ambas necesarias para aMSN):

yum install libXft-devel libpng-devel libjpeg-devel

NOTA: por favor, asegúrate que las x están escritas en mayúsculas.

Y, si lo deseas para instalar la versión en cvs de Tcl Tk:

yum install cvs

Descargar Tcl y Tk 8.5

Las librerías Tcl/Tk 8.5 han sido lanzados como estables, así que puedes descargar el código fuente desde el sitio web oficial. En la página de descargas se encuentran las últimas correcciones tanto para Tcl como para Tk.

Cuando la descarga se haya completado, solo descomprime el archivo con tu herramienta favorita. En línea de comandos:

 tar xzf tcl8.5.x-src.tar.gz
 tar xzf tk8.5.x-src.tar.gz

donde x es obviamente el número de la versión que descargaste.

Compilar e Instalar Tcl/Tk 8.5

Nota: esto puede tomar muchos minutos. Mientras, puedes disfrutar del tuxracer o el buscaminas :D. Las siguientes instrucciones instalarán Tcl/Tk 8.5 en /usr/local

 cd tcl/unix
 ./configure --prefix=/usr/local --includedir=/usr/local/include/tcl8.5 --enable-shared --enable-threads --enable-64bit \
  --mandir=/usr/local/share/man --enable-man-symlinks --enable-man-compression=gzip && make CFLAGS="-g -O2 -D_REENTRANT"
 sudo make install

Nota: de esta forma estás habilitando hilos (threads). Esto puede causar bloqueos en el kernel 2.6. Si experimentas esto, recompila Tcl/Tk sin threads (solo quita --enable-threads en la línea anterior).

Desde donde te encuentras, pasa a instalar Tk:

 cd ../../tk/unix
 ./configure --prefix=/usr/local --includedir=/usr/local/include/tcl8.5 --with-tcl=/usr/local/lib --enable-shared --enable-threads \
  --enable-64bit --enable-man-symlinks --enable-man-compression=gzip --enable-xft && make CFLAGS="-g -O2 -D_REENTRANT"
 sudo make install

Nota: si no tenías habilitadas las threads antes, deberás desabilitarlas aquí también.

Compilar aMSN para que use antialiasing

Sigue las instrucciones de aquí (Instalando desde SVN) pero utiliza esta línea cuando hagas ./configure

  ./configure --with-tcl=/usr/local/lib --with-tk=/usr/local/lib

Actualizar los enlaces simbólicos (symbolic links)

Si intentas ejecutar aMSN ahora, vas a obtener un Segmentation Fault (Violación de Segmento). ¿Por qué? A pesar de tener instalada una nueva versión de Tcl/Tk, la versión vieja aún continúa allí, y es la que es invocada cuando escribes comandos como wish o tclsh, que son ejecutables de Tcl/Tk.

Por lo que deberás decirle que cuando escribas wish, deberá correr wish8.5 en lugar del viejo wish8.4. ¿Tienes idea de como hacer esto? Bueno, ve a /usr/local/bin (o donde sea que instales las cosas) y haz:

ls -l tclsh* wish*

Probablemente obtendrás algo como esto:

  lrwxrwxrwx 1 root root    8 Nov 17 00:17 tclsh -> tclsh8.4
  -rwxr-xr-x 1 root root 6192 Jul 20 16:28 tclsh8.4
  -rwxr-xr-x 1 root root 7689 Nov 17 00:14 tclsh8.5
  lrwxrwxrwx 1 root root    7 Nov 17 00:16 wish -> wish8.4
  -rwxr-xr-x 1 root root 6968 Jul 20 17:08 wish8.4
  -rwxr-xr-x 1 root root 8572 Nov 17 00:24 wish8.5

Como puedes ver, wish y tclsh están apuntados a las herramientas de la versión 8.4. Para corregir esto y usar la nueva versión por defecto, haz lo siguiente. En los directorios donde tengas instalado los binarios de Tcl/Tk:

  • Si tu distribución está basada en Debian (incluyendo Ubuntu), prueba esto:
sudo update-alternatives --config tclsh && sudo update-alternatives --config wish

Si no provee ninguna alternativa, añádele:

sudo update-alternatives --install $(which tclsh) tclsh /usr/local/bin/tclsh8.5 900;
sudo update-alternatives --install $(which wish) wish /usr/local/bin/wish8.5 900;

y vuelve a intentar la configuración

  • Si tu sistema no está basado en Debian, enlázalo manualmente:
sudo ln -sf tclsh8.5 tclsh
sudo ln -sf wish8.5 wish

Ahora tu sistema utiliza la nueva versión de Tcl/Tk por defecto. El comando amsn debería funcionar bien! ¡Disfruta de la suavidad de tu aMSN!

Mantener la antigua versión de Tcl/Tk como predeterminada

Si deseas utilizar la versión con antialiasing pero quieres conservar Tcl/Tk 8.4 por defecto, tan solo no actualices los enlaces como explicamos anteriormente. Deberás hacer el siguiente comando para correr aMSN:

wish8.5 /ruta/a/amsn

en lugar de tan solo escribir

/ruta/a/amsn

porque este último utiliza wish8.4. Así que crear un alias, un script o un acceso desde escritorio puede ser una buena idea en este caso.

Instalar Tcl/Tk en tu directorio personal

NOTA PRELIMINAR: si necesitas mas información, lee esta entrada o lee también la sección de Links Relacionados.

Asumimos que ya tienes descargadas las librerías necesarias y los códigos fuentes (incluyendo aMSN). Para hacer todo el proceso más genérico, vamos a fijar la variable de entorno (environment variable) para decirle donde hemos instalado Tcl/Tk. Para creas esta variable, escribimos en la terminal:

RUTA_INST=/ruta/donde/quieres/instalar/tcl_y_tk

un buen ejemplo es:

RUTA_INST=/personal_aMSN/tcltk8.5

recuerda que esto es relativo a tu directorio personal, así que el siguiente comando:

echo $HOME$RUTA_INST

debería devolver algo como esto:

/home/tu_nombre_de_usuario/personal_aMSN/tcltk8.5

Bueno, ahora a compilar! Ingresa al directorio donde descargaste los códigos fuentes. Recomendamos respetar el siguiente orden:

  • Tcl;
  • Tk;
  • aMSN.

Configurar, compilar e instalar Tcl

Ahora que estás en el directorio donde tienes el código fuente de Tcl, ingresa al subdirectorio unix:

cd unix

ahora puedes ver la lista de opciones del configure escribiendo:

./configure --help

Elige las opciones que deseas. He experimentado algunos problemas con la opción --enable-threads por lo que he decidido quitarlas (es así por defecto). Por otro lado, --enable-shared está activado por defecto entonces no es necesario agregarlo en la línea del configure.

 ./configure --prefix=$HOME$RUTA_INST --includedir=$HOME$RUTA_INST/include/tcl8.5 --mandir=$HOME$RUTA_INST/share/man --enable-man-compression=gzip

Si algo ha fallado, verifica los errores o las librerías faltantes. Si continúas teniendo problemas, repórtalos en el foro. Si todo ha saldo bien, procedemos a compilar usando make:

make CFLAGS="-g -O2 -D_REENTRANT"

Si además la compilación fue exitosa, instala Tcl en tu directorio:

make install

Configurar, compilar e instalar Tk

Lo mismo hay que hacer con el código fuente de Tk, así que ingresa al directorio con el código, entra al subdirectorio unix:

cd unix

revisa las opciones del configure:

./configure --help

Como puedes ver --enable-xft viene activado por defecto, pero asegúrate de tener libxft-dev instalado, así que haz:

./configure --prefix=$HOME$RUTA_INST --includedir=$HOME$RUTA_INST/include/tcl8.5 --with-tcl=$HOME$RUTA_INST/lib --enable-man-compression=gzip

luego compílalo

make CFLAGS="-g -O2 -D_REENTRANT"

e instalalo

make install


Crear los enlaces simbólicos

Si todo ha salido bien, escribiendo

  ls $HOME$RUTA_INST

Deberías obtener los siguientes directorios

bin  include  lib  man share

Si quieres crear un enlace simbólico a los nuevos ejecutables de Tcl/Tk de esta manera:

ln -s * ~/bin

Esto hará posible que puedas usar el Tcl/Tk 8.5 instalado en tu directorio personal usando tan solo los comandos tclsh8.5 y wish8.5.

NOTA: $HOME/bin debería estar en la variable de entorno PATH. Para ver tu variable PATH escribe:

env | grep PATH

Si deseas conocer más sobre como fijar tus variables de entorno, puedes leer esta guía.

Configurar, compilar e instalar aMSN

Es hora de tener aMSN funcionando. Con el procedimiento usual hacemos:

./configure --with-tcl=$HOME$RUTA_INST/lib --with-tk=$HOME$RUTA_INST/lib

Nota: Si solo usas "./configure" vas a usar la antigua versión de Tcl/Tk y terminará causando un error con tkcximage al iniciar aMSN.

Si ya tenías aMSN compilado antes, asegúrate de hacer:

make clean

y luego:

make

Esto va a construir nuevamente aMSN con el nuevo Tcl/Tk 8.5.

Ahora haciendo

wish8.5 ~/personal_aMSN/amsn-0.xx/amsn

debe iniciar aMSN con unas letras bellísimas.

NOTA IMPORTANTE: El Anti-aliasing solo funciona con letras TrueType. Asegúrate cuando inicies aMSN que estás usando las tipografías adecuadas, yendo a Cuenta -> Preferencias -> Apariencia -> Cambiar Fuente y selecciona una letra TrueType.

Una manera simple de iniciar aMSN es creando un acceso directo o un script como este:

#!/bin/bash
wish8.5 $HOME/personal_aMSN/amsn-0.xx/amsn

Guárdalo como amsn en tu directorio ~/bin y agrégale permisos de ejecución:

chmod u+x amsn

Luego de hacer esto, lo único que resta hacer es iniciar aMSN escribiendo amsn en la terminal. Puedes crear un acceso directo en el escritorio o presionar Alt+F2 y escribir:

amsn

¡Eso es todo! :)

Enlaces relacionados

This article is a translated version of Enabling Antialiasing.

Por último, te dejamos aquí unos enlaces si deseas investigar sobre este tema. Algunos son temas son antiguos pero igual son útiles para resolver problemas

Personal tools