Denunciando al Estado por el monopolio de las entidades de gestión

Hace un par de días apareció la noticia de que la Comisión Europea denunció a España por la situación monopolística de las entidades de gestión de derechos de autor (nuestra querida SGAE entre ellas). Esta postura se ha visto reforzada por un informe de la Comisión Nacional de la Competencia. Según dichos informes, España podría estar cometiendo una ilegalidad al permitir a la SGAE y compañía trabajar en el actual régimen, pues ello propiciaría los actuales abusos que sufrimos por parte de ellas.

Y aquí es donde entran David Bravo y Javier de la Cueva con una interesante propuesta: enviar una carta a la delegación española de la Comisión Europea con una denuncia contra el Estado Español por dicha situación. Para ello han publicado un modelo que sólo tenemos que modificar, poniendo nuestros datos (nombre y apellidos, DNI, nacionalidad y dirección) y enviándola por correo certificado a la Comisión.

Suena interesante, pero… ¿tendré que pagar un abogado y demás? Según explica David Bravo, el procedimiento es totalmente gratuito, y no supone más gastos ni trabajo que tomarse la molestia de enviar la carta.

¿Y qué hay que hacer? Simplemente bajarse la carta que ofrecen David Bravo y Javier de la Cueva al final de su entrada en el blog, rellenarla con nuestros datos en los lugares indicados, imprimirla y enviarla por correo ordinario certificado a la delegación española de la Comisión Europea (la dirección viene en el mismo documento).

¿Por correo ordinario? ¡Pero si se puede hacer a través de la página web de correos! Por desgracia, a través de la página web no se puede certificar el contenido de la carta, así que no queda otra que mover el culo del sillón. Por otro lado, no olvidemos que si queremos que se nos tenga en cuenta hay que empezar a hacer cosas en el mundo real, no sólo en Internet. Un correo electrónico se puede enviar sin levantarse de la silla, por lo que es fácil que lo haga mucha gente; una carta ordinaria, por el contrario, implica levantarse, comprar sobres y salir de casa para ir a una oficina de correos, por lo que sólo lo hará la gente a la que la acción le importe de verdad. Los políticos lo saben muy bien, por eso una manifestación en la red les da igual, pero una en la calle los acojona.

Vale ¿y qué tengo que hacer? Personalizas la carta, imprimes dos copias (serán el original y la copia) y las firmas. Vas con ellas y un sobre abierto (con la dirección de la comisión escrita delante, y la tuya como remitente por detrás) a una oficina de correos. Allí pides enviar la carta por correo certificado y que te la sellen (¡muy importante!). Para ello te pedirán el original y la copia. Una vez selladas, te quedas la copia, metes el original en el sobre (delante del funcionario o funcionaria), rellenas el formulario de envío certificado, pagas los 2,49 euros que cuesta y entregas el sobre para que lo envíen.

Si, ya, pero ¿tú ya lo has hecho? Sí, la envié esta misma mañana. ¿Por?

Situacion insostenible

¿Por qué soltar una arenga sobre el artículo 20, apartado 5, de la constitución española si ya lo han hecho otros?

¿Por qué insistir una y otra vez en que la propiedad intelectual no es un derecho fundamental, al contrario que el derecho a la salud, si ya se dice en otras páginas?

¿Por qué añadir que, con la ley actual, cualquiera que vea sus derechos violados en internet puede presentar una petición de cierre cautelar junto a su demanda, aunque asumiendo que si el cierre era innecesario, tendrá que asumir las consecuencias legales, si ya se ha explicado repetidas veces?

¿Incluso por qué dejar caer que el mismo partido que intenta aprobar esta ley se opuso en su día a otra por razones similares a las aquí defendidas, si se ha repetido ya hasta la saciedad?

Pues porque el gobierno va a por todas con la infame Disposición Final Primera de la Ley de Economía Sostenible, y no se ve ningún indicio de querer corregir su rumbo, por lo que no nos queda más remedio que hacer el máximo ruido posible para enviarle un mensaje claro:

NO QUEREMOS LEYES ANTIDEMOCRÁTICAS

No queremos una ley que se salte a la torera la más elemental separación de poderes.

No queremos una ley tan ambigua que permita cerrar prácticamente cualquier web mediante una orden administrativa.

No queremos una ley que otorgue privilegios jurídicos a una pequeña casta y en desmedro de los derechos de la mayoría.

No queremos una ley creada por y para un lobby que sólo busca su propio beneficio, aún a costa del de la sociedad en general.

Nueva versión de FBZX

Aunque ayer lancé la versión 2.2.0, hoy lanzo la 2.3.0 con un pequeño cambio: soporte de PulseAudio. La razón es que, cuando dicho demonio de sonido está lanzado, FBZX da algunos problemas. Ahora, por defecto intenta utilizar PulseAudio como Backend de sonido; si falla probará con ALSA; si tampoco, con OSS; y si ni con esas, entonces sin sonido.

Además, pensando en los usuarios de Gentoo, ahora se puede escoger qué backends de sonido se compilarán. De esta manera, si, por ejemplo, se quiere utilizar exclusivamente ALSA y no se pretende instalar PulseAudio, se puede compilar sin dicho soporte. Basta con retocar el Makefile y eliminar la definición correspondiente.

Regalito

Acabo de lanzar la versión 2.2.0 de FBZX. Los cambios son bastante sutiles, porque afectan únicamente al emulador del procesador. Ahora la emulación es mucho más precisa gracias a que ya pasa casi todos los tests de compatibilidad de FUSE. Estos tests ejecutan trozos de código y comparan el resultado obtenido con el que debería ser. Quedan sólo un par de detalles con los flags H3 y H5, los cuales no deberían dar problemas a nadie. Entre las correcciones, están las temporizaciones de varias instrucciones que trabajan con los registros IX e IY, y un par de detalles en INI, IND, INIR y INDR.

Por otro lado, hace unas semanas lancé también una nueva versión de Devede, la 3.15. Los principales cambios han sido:

  • Soporte de OGG/Vorbis para el sonido de fondo del menú. Esto ha sido necesario porque en algunas distribuciones recientes falla algo con los MP3. Cambiar a OGG soluciona el problema.
  • Nuevos fondos para los menús: ahora se incluyen varios fondos en una carpeta aparte, por lo que el usuario puede escoger entre ellos. En el futuro espero añadir más.
  • Vuelve a permitir dividir en dos una película al hacer un SVCD o un CVD. Fue un error eliminarlo.
  • Al utilizar la resolución por defecto al crear un DivX, directamente no se toca la resolución ni se añaden barras ni nada. De esta manera es posible recomprimir un vídeo en resolución no estándar conservando al máximo la calidad.
  • Admite la externsión RMVB (RealMedia Video). En realidad ya soportaba RM como extensión de vídeo porque estaba añadida en los tipos MIME de Gnome, pero esta en concreto no, así que por petición popular la añadí «a mano».

Y otros pequeños cambios menores.

Transmission

Un nuevo avance en mi disco duro multimedia: he conseguido compilar el cliente de bittorrent Transmission. Las ventajas de éste sobre el viejo cTorrent son muchas, en concreto:

  • Código más reciente y mantenido: la última versión de cTorrent es del 14 de junio de 2008, lo que parece indicar que el autor lo ha dejado de lado, mientras que Transmission (versión 1.76) es del 24 de octubre de 2009, además de que ya están preparando la próxima versión (1.80).
  • Soporta cifrado: sólo por esto ya merece una atención especial, porque puede duplicar (o más) el número de sitios de los que descargar ficheros, además de que muchos Torrents que no funcionaban en cTorrent sí lo harán en éste.
  • Soporta uPNP: para los que no lo conozcan, es un estándar que, entre otras cosas, permite que un dispositivo situado detrás de un router con NAT pueda pedirle de manera automática la redirección de los puertos externos que necesite. Esto elimina por completo la necesidad de abrir a mano puertos específicos en el router; simplemente funcionará.

AVISO: a partir de aquí empiezo a tocar en el sistema operativo del disco duro multimedia, lo que significa que estas acciones sólo las deben realizar aquellos que sepan muy bien lo que hacen. Si alguien se carga su disco, será el único responsable.

Avisados estáis.

Aquí podeis descargar el código completamente compilado, junto con los scripts para lanzar todo el sistema (1,2 MBytes), ajustados para el MemUp LX. Como en el caso anterior, hay que editar el fichero btpd para activar o desactivar los servicios que se deseen. He conservado cTorrent por si alguien prefiere utilizarlo de manera puntual (o incluso tener ambos a la vez en marcha, que a saber…), aunque lo normal será tener sólo Transmission y bFTPd. Al igual que en el paquete anterior, hay un fichero con instrucciones más detalladas.

Respecto a como lo compilé, pocas novedades, salvo el hecho de que, por mucho que especifiqué que quería un ejecutable estático, se empeñó en hacerlo dinámico. Encima, al utilizar autoconf y automake, no muestra la línea de comandos que está ejecutando en cada momento, con lo que ni siquiera podía hacer el enlazado «a mano». La solución, afortunadamente, fue tan sencilla como lanzar make V=1, para hacer la salida más verbosa y que lo mostrase. Así pude copiar y pegar la línea y añadir el -static.

Por desgracia, ni siquiera esto fue suficiente porque se empeñaba en enlazar con un fichero .la (libevent.la, para ser exactos), los cuales son para ejecutables dinámicos. La solución consistió en reemplazar ese fichero por un simple *.o, de manera que pudiese coger lo que más le interesase. Finalmente, un strip dejó el ejecutable limpio como una patena. El resultado es que las descargas ahora son más rápidas al contar con más peers, y encima la interfaz ha ganado aún más.

Obviamente, al ser ejecutables estáticos funcionarán en cualquier equipo con un procesador MIPSel y suficiente memoria, lo que permite reutilizarlos para otros discos multimedia. Lo mismo ocurre con los otros ejecutables (bFTPd, cTorrent y Yodctcs).

Aproveché además para hacer un cambio en la organización de directorios. Hasta la revisión anterior, en DOWNLOADS se almacenaban los ficheros temporales de cTorrent, y en BT los ficheros bajados. Para no ensuciar tanto el raíz del disco, he optado por crear dentro de BT una carpeta, ctorrent_tmp, para albergar esos ficheros, y otra, transmission_tmp, para que transmission haga lo propio. Estas carpetas se crean automáticamente si no existen. Si estabais bajando algo con cTorrent y quereis pasarlo a Transmission, basta con abrir el torrent (que estará, bien en ctorrent_tmp, bien en DOWNLOADS)  y, como el directorio de descargas es el mismo para ambos y no ha cambiado, Transmission comprobará la integridad de los datos que hay ahí y seguirá descargando justo desde donde se quedó el otro. Por tanto, una vez pasados los ficheros, es seguro borrar la carpeta DOWNLOADS.

Por último, actualicé el fichero de instrucciones.

Los que quieran acceder al nuevo bittorrent Transmission, sólo deben abrir la IP del disco en su navegador, contra el puerto 9090 (ej: http://192.168.1.101:9090).

Para finalizar, una captura de pantalla del nuevo cliente:

A disfrutar.

Manifiesto en defensa de los derechos fundamentales en internet

Ante la inclusión en el Anteproyecto de Ley de Economía sostenible de modificaciones legislativas que afectan al libre ejercicio de las libertades de expresión, información y el derecho de acceso a la cultura a través de Internet, los periodistas, bloggers, usuarios, profesionales y creadores de internet manifestamos nuestra firme oposición al proyecto, y declaramos que…

  1. Los derechos de autor no pueden situarse por encima de los derechos fundamentales de los ciudadanos, como el derecho a la privacidad, a la seguridad, a la presunción de inocencia, a la tutela judicial efectiva y a la libertad de expresión.
  2. La suspensión de derechos fundamentales es y debe seguir siendo competencia exclusiva del poder judicial. Ni un cierre sin sentencia. Este anteproyecto, en contra de lo establecido en el artículo 20.5 de la Constitución, pone en manos de un órgano no judicial -un organismo dependiente del ministerio de Cultura-, la potestad de impedir a los ciudadanos españoles el acceso a cualquier página web.
  3. La nueva legislación creará inseguridad jurídica en todo el sector tecnológico español, perjudicando uno de los pocos campos de desarrollo y futuro de nuestra economía, entorpeciendo la creación de empresas, introduciendo trabas a la libre competencia y ralentizando su proyección internacional.
  4. La nueva legislación propuesta amenaza a los nuevos creadores y entorpece la creación cultural. Con Internet y los sucesivos avances tecnológicos se ha democratizado extraordinariamente la creación y emisión de contenidos de todo tipo, que ya no provienen prevalentemente de las industrias culturales tradicionales, sino de multitud de fuentes diferentes.
  5. Los autores, como todos los trabajadores, tienen derecho a vivir de su trabajo con nuevas ideas creativas, modelos de negocio y actividades asociadas a sus creaciones. Intentar sostener con cambios legislativos a una industria obsoleta que no sabe adaptarse a este nuevo entorno no es ni justo ni realista. Si su modelo de negocio se basaba en el control de las copias de las obras y en Internet no es posible sin vulnerar derechos fundamentales, deberían buscar otro modelo.
  6. Consideramos que las industrias culturales necesitan para sobrevivir alternativas modernas, eficaces, creíbles y asequibles y que se adecuen a los nuevos usos sociales, en lugar de limitaciones tan desproporcionadas como ineficaces para el fin que dicen perseguir.
  7. Internet debe funcionar de forma libre y sin interferencias políticas auspiciadas por sectores que pretenden perpetuar obsoletos modelos de negocio e imposibilitar que el saber humano siga siendo libre.
  8. Exigimos que el Gobierno garantice por ley la neutralidad de la Red en España, ante cualquier presión que pueda producirse, como marco para el desarrollo de una economía sostenible y realista de cara al futuro.
  9. Proponemos una verdadera reforma del derecho de propiedad intelectual orientada a su fin: devolver a la sociedad el conocimiento, promover el dominio público y limitar los abusos de las entidades gestoras.
  10. En democracia las leyes y sus modificaciones deben aprobarse tras el oportuno debate público y habiendo consultado previamente a todas las partes implicadas. No es de recibo que se realicen cambios legislativos que afectan a derechos fundamentales en una ley no orgánica y que versa sobre otra materia.

NOTA: Este manifiesto fue redactado conjuntamente por periodistas, bloggers e internautas, en una maratoniana sesión durante la tarde-noche de ayer. Si estás de acuerdo, difúndelo por todas las vías que puedas.

Compilacion en masa

En la entrada Emergiendo expliqué como generar un entorno de compilación cruzada basado en Gentoo para poder compilar cosas para nuestro disco duro, pero luego, en FTP-ando, eché todo por tierra al no poner binarios creados por mí. Ahora ya he sido capaz de compilar, así que, para los impacientes, aquí está el paquete con las últimas versiones de CTorrent (3.2.2), BFTP (2.6) y YAOD (0.7.2). Las instrucciones de instalación son las mismas que en el artículo anterior (FTP-ando). Como gran ventaja, algunos fallos de BFTP han desaparecido, y encima la tasa de transferencia ha subido a 3MBytes/seg.

AVISO: a partir de aquí empiezo a tocar en el sistema operativo del disco duro multimedia, lo que significa que estas acciones sólo las deben realizar aquellos que sepan muy bien lo que hacen. Si alguien se carga su disco, será el único responsable.

Pasando ya a la chicha, la razón de que haya tardado tanto es que la cosa no es tan sencilla, por varias razones:

  • Para empezar, el disco duro tiene su propia versión de la uClibc, por lo que la única manera de garantizar que un programa funcione correctamente es compilarlo contra esa misma versión.
  • Por otro lado, en algunas versiones del compilador GCC cambia el fomato binario de las bibliotecas en C++, por lo que también es conveniente utilizar la misma versión de compilador GCC: para garantizar que la interfaz binaria entre la aplicación y las bibliotecas es la misma.
  • Por último, muchos paquetes no se pueden instalar en un sistema mediante compilación cruzada porque su configure hace cosas raras, como comprobar si GCC compila correctamente un programa de prueba… programa que estará en arquitectura MIPS y, por tanto, no correrá en un Intel, abortando el proceso de compilación.

Y si ya la cosa se veía complicada, encima nos encontramos con que Gentoo no tiene la versión de GCC utilizada en nuestro disco duro (la 3.4.4), y que algunas versiones de uClibc (entre ellas la 0.9.28.3, la de nuestro disco duro) no compilan con según qué compiladores o versiones de binutils. El resultado era desalentador.

La primera idea que consideré para resolver el problema fue meter un sistema Gentoo completo en el disco y ejecutar en él las aplicaciones usando chroot. Por desgracia esta solución es muy ineficiente porque necesita mucho espacio en disco y porque las aplicaciones sólo tendrían acceso a los directorios contenidos dentro del chroot, pero nunca a los de fuera.

La segunda idea consistía en intentar generar un conjunto nativo de compilador GCC, binutils y biblioteca uClibc con las versiones correctas a partir de fuentes oficiales. Por desgracia, el proceso es demasiado complejo y tampoco funciona con todas las versiones de GCC, binutils y uClibc que interesaba.

La tercera idea era usar BuildRoot, el entorno de generación de compiladores cruzados de BusyBox. Por desgracia, una vez más, no sólo no tenía las versiones necesarias, sino que tampoco compilaba cualquier combinación.

Por último, la cuarta, que ha sido la que decidí emplear, consiste en compilar estáticamente los programas deseados utilizando un compilador nativo en el propio disco duro multimedia. De esta manera, al no depender de ninguna biblioteca de enlazado dinámico, el programa funcionará en cualquier sistema, ahorrándonos el problema de la incompatibilidad de versiones. Además, al no importar la versión de binutils, GCC ni uClibc, podemos utilizar versiones más modernas, que siempre tendrán mayor seguridad y fiabilidad. Por último, al compilarse en el sistema de manera nativa, no habrá problemas con ficheros configure que hagan cosas «raras». Como inconveniente, necesita más memoria que un programa compilado dinámicamente.

Sin embargo, seguía con el problema de conseguir un toolchain para MIPS que funcionase correctamente, cosa compleja porque en Gentoo hay nueve versiones de GCC, cuatro de binutils y tres de uClibc (sin contar revisiones), y no todas las combinaciones compilan. Además, no bastaba con el toolchain, sino que también necesitaba instalar en nativo Bash, GCC, binutils, uClibc, make y el entorno básico con BusyBox. ¿Por donde empezar? Por desgracia la versión más reciente no compilaba, y no podía probar las 108 combinaciones posibles… O al menos, no a mano, así que hice un pequeño script en python que probase a compilar todas las posibles combinaciones. Lo dejé una noche, y el resultado fue que sólo compilaba con el GCC 3.4.6-R2 y GCC 4.1.2, las Binutils 2.18-R4, 2.19.1-R1 o 2.20, y sólo con uClibc 0.9.30.1-R1. En el resto de casos, o fallaba la generación del toolchain para compilación cruzada, o fallaba la compilación de las utilidades nativas.

Una vez descubiertas las versiones, sólo fue necesario generar un toolchain adecuado para compilación cruzada:

crossdev --target mipsel-unknown-linux-uclibc --without-headers --gcc 4.1.2 --binutils 2.20 --libc 0.9.30.1-r1
emerge-wrapper --init

Luego, compilar e instalar las aplicaciones básicas necesarias para poder compilar (lo he cortado por razones de espacio, pero es una única línea):

emerge-mipsel-unknown-linux-uclibc  =binutils-2.20 =gcc-4.1.2 =uclibc-0.9.30.1-r1 bash make gzip bzip2 
unzip tar gnuconfig m4 sys-apps/texinfo gawk coreutils sed grep shadow procps net-tools iputils 
debianutils cpio attr sys-apps/acl kbd nano less diffutils

Vemos que instalamos las mismas versiones de binutils, gcc y uclibc que las usadas para generar la cadena de compilación cruzada. Instalamos coreutils y demás en lugar de busybox (o system) porque las utilidades de éste son versiones recortadas y dan problemas con algunas compilaciones. También instalamos tar, gnuconfig, m4 y texinfo, los cuales serán necesarios para instalar autoconf, automake y libtool. La razón de no instalar estos últimos directamente es que la instalación de Perl por compilación cruzada no funciona; tendremos que hacerlo luego a mano.

Por último, creamos los directorios /proc, /dev y /sys en /usr/mipsel-unknown-linux-uclibc, y ya podemos comprimir ese directorio utilizando

tar -cpvf buildchain.tar /usr/mipsel-unknown-linux-uclibc

copiarlo en el disco duro, en /tmp/hdd/volumes/HDD1, descomprimirlo, y lanzar un entorno de compilación utilizando este script, que automáticamente montará mediante bind los directorios del sistema y utilizará chroot para cambiar al nuevo entorno. Ahora nos bajamos Perl, lo descomprimimos y lo compilamos con

sh Configure -de
make
make install

Cabe recordar que el procesador de este disco duro es MUY LENTO, por lo que es posible que necesite toda la noche para compilarlo. Por otro lado, podemos tener problemas con las fechas de los archivos, por lo que es fundamental cambiarlas utilizando el comando touch * en cada directorio. Esto se puede hacer más cómodamente con la línea

find -type d -exec touch {}/* ;

que hará un touch * de manera recursiva en cada directorio. Una vez hecho esto, instalamos autoconf, automake y libtool (no olvidarse de touch en cada uno), y ya tendremos nuestro sistema de desarrollo completo con el que podremos compilar cualquier utilidad. Sólo hay que tener en cuenta algunos detalles:

  • El procesador del disco duro no es gran cosa, así que la compilación tarda BASTANTE tiempo
  • Es fundamental añadir la opción -static en las opciones de enlazado. En algunos programas es posible hacerlo añadiendo LDFLAGS=-static justo antes de ./configure (ejemplo: para configurar ctorrent, la línea sería LDFLAGS=-static ./configure); otra opción es lanzar primero ./configure y luego editar el Makefile para añadirlo donde se defina LDFLAGS. Como opción final, se puede compilar normalmente y, cuando termine, copiar y pegar las líneas de enlazado (suele ser la última) y añadir -static a mano antes de ejecutarla.
  • Es muy recomendable eliminar el parámetro -g durante la compilación, pues lo que hace es añadir información de depuración totalmente innecesaria, además de impedir que el compilador pueda aplicar muchas optimizaciones. Para hacer esto no queda más remedio que editar manualmente el fichero Makefile (no olvidar que puede haber varios Makefiles en otros subdirectorios. Hay que editarlos todos). También es bueno utilizar el comando strip en el ejecutable final para eliminar los últimos restos de datos de depuración
  • Algunos programas están preparados para versiones de autoconf o automake anteriores a la que hemos instalado. En ese caso basta con hacer un autoreconf para regenerar los ficheros. Este debe hacerse después de autogen.sh si lo hubiera. Una vez hecho esto ya se puede ejecutar ./configure y make.
  • Es necesario ajustar las fechas de los archivos porque, si no, Make se lía y no sabe qué compilar. Para ello basta con ejecutar el comando touch * en todos y cada uno de los directorios del programa a compilar (la línea find -type d -exec touch {}/* ; lo hará de manera recursiva por nosotros). No recomiendo cambiar la hora del disco duro porque, por alguna razón, las veces que lo hice el sistema se volvió inestable, llegando a colgarse incluso.
  • En algunos programas, libtool «se vuelve loco» y empieza a lanzar copias de sí mismo indiscriminadamente, llegando a ahogar al procesador y colgando el disco duro. Si, cuando va a enlazar el código, un PS nos devuelve una gran cantidad de procesos libtool, hay que matarlos rápidamente y enlazar «a mano» el código.

Para aquellos que no quieran pasar todo el trabajo, pueden bajarse el entorno de compilación completo aquí. Basta con descomprimir el .zip, copiar el .tar en el directorio /tmp/hdd/volumes/HDD1 del disco duro y descomprimirlo mediante

tar -xpvf buildchain_1.0.tar

entrar en el directorio con cd buildchain, montar los sistemas de archivos virtuales (proc, dev y sys) con ./mount.sh y lanzar un chroot con ./launch.sh. Una vez se haya terminado, salir y desmontar los sistemas de archivos virtuales con ./umount.sh.

El koala kármico

Hace unos días ya que salió la nueva Ubuntu 9.10, Karmic Koala, y hay que reconocer que no supone un cambio muy agresivo con respecto a la versión anterior, por lo que podría decir que ni me gusta ni me disgusta.

Bueno, miento; sí hay un detalle que no me gusta nada: los iconos de los botones y del menú de sistema han desaparecido por completo. Al principio pensé que era un bug en PyGTK, porque en DeVeDe no mostraba ya los iconos en los botones de Añadir, Eliminar, Arriba… Sólo lo mostraba en Previsualización porque lo había puesto «a mano», al no haber un botón de stock adecuado. Sin embargo, luego descubrí que, por alguna extraña razón, en el nuevo Gnome 2.28 se han desactivado por defecto dichos iconos. La verdad es que no me gusta la idea, porque creo que combinar un icono con un texto ayuda a hacer las aplicaciones más intuitivas.

Afortunadamente es muy sencillo dejar todo como estaba; basta con abrir un terminal, escribir gconf-editor (seguido de la tecla Return), ir a / -> desktop -> gnome -> interface y activar las dos claves siguientes:

Y listo, volveremos a tener iconos en el menú de sistema y en los botones de las aplicaciones.