# Lloriqueos de desarrolladores

## GCC 2.96

### El escenario:

La serie 2.95 de GCC es una liberación oficial de GNU y la verseión 2.95.3 de GCC es la serie más libre de errores que existe. Nunca se han tenido problemas de compilación derivados de gcc-2.95.3. Comenzando con Red Hat Linux 7.0, Red Hat fue incluida una versión de CVS fuertemente parcheada de GCC en sus distribuciones y fue denominada 2.96. Red Hat incluyó esta versión en su distribución porque GCC 3.0 no estaba finalizada en ese momento, y necesitaban un compilador que funcionase bien en todas las plataformas soportadas, incluyendo IA64 y s390. El distribuidor de Linux Mandrake también siguió el ejemplo de Red Hat y comenzó a llevar GCC 2.96 en su serie Linux-Mandrake 8.0.

### Los hechos:

El equipo GCC renuncian cualquier vinculación con GCC 2.96 y publican una respuesta oficial sobre GCC 2.96. Algunos desarrolladores alrededor del mundo comienzan a tener problemas con GCC 2.96, y empiezan a recomendar otros compiladores. Ejemplos son MySQL, y avifile. Otros enlaces interesantes son noticias instantáneas acerca del kernel de Linux 2.4.17 y Voy Forum. MPlayer también sufre problemas intermitentes que son resueltos cambiando entre diferentes versiones de GCC. Varios proyectos empiezan a implementar variaciones de algunos aspectos de 2.96, pero se niegan a arreglar problemas de otras personas, especialmente porque algunos arreglos pueden implicar pérdidas de rendimiento.

GCC 2.96 no permite caracteres `|` (tuberías) en comentarios en ensamblador porque esto lo hace Intel igual que la sintaxis de AT&T y el caracter `|` es un símbolo en la variante Intel. El problema es que silenciosamente ignora el bloque de ensamblador por completo. Esto es supuestamente corregible ahora, GCC imprime un mensaje de advertencia en lugar de saltarse el bloque.

### El presente:

Red Hat dice que GCC 2.96-85 y superior están arreglados. La situación ha sido mejorada, pero se siguen viendo informes de problemas en nuestras listas de correo que desaparecen con un compilador diferente. En cualquier caso esto no tiene más importancia. Alegremente, un maduro GCC 3.x ha resuelto bien los problemas. Si desea compilar con 2.96 puede indicar el parámetro `--disable-gcc-checking` a `configure`. Recuerde que que es elección suya y no informe de problemas. Si lo hace será expulsado de nuestras listas de correo porque ha sido avisao de manera más que suficiente de las guerras con GCC 2.96. Por favor, déjenos contarle el resto.

Si tiene problemas con GCC 2.96, puede obtener los paquetes 2.96-85 del servidor ftp de Red Hat, o vaya directamente a por los paquetes gcc-3.2.3-11 (no oficiales, pero funcionan bien) y puede instalarlos junto con gcc-2.96 si ya lo tiene. MPlayer detectará y usará 3.2 en lugar de 2.96. Si no desea o no puede usar los paquetes binarios, aquí tiene cómo compilar GCC 3 desde el código fuente:

1. Vaya a la web de sitios espejo de GCC y descargue `gcc-core-XXX.tar.gz` donde XXX es el número de versión. Esto incluye el compilador C completo y es suficiente para MPlayer. Si también quiere C++, Java, o algunas de las otras características avanzadas de GCC, `gcc-XXX.tar.gz` suplirá mejor sus necesidades.

2. Extraiga el fichero con

       tar -xvzf gcc-core-XXX.tar.gz

3. GCC no es construido dentro del directorio del código fuente como la mayoría de los programas, sino que necesita un directorio fuera donde compilarse. Por eso necesita crear ese directorio via

       mkdir gcc-build

4. Entonces puede proceder a configurar gcc en el directorio build, pero puede que necesite configurar desde el directorio de fuentes:

       cd gcc-build
       ../gcc-3.XXX/configure

5. Compile GCC usando esta orden en el directorio build:

       make bootstrap

6. Ahora puede instalar GCC (como root) escribiendo

       make install

## Distribución binaria

MPlayer previamente contenía código fuente del proyecto OpenDivX, que no permitía su distribución binaria. Este código ha sido eliminado en la versión 0.90-pre1 y el archivo que queda `divx_vbr.c` que ha derivado del código de OpenDivX ha sido puesto bajo licencia GPL por sus autores como la versión 0.90pre9. Ahora es bienvenido a crear paquetes binarios como usted quiera ajustarlo.

Otro impedimento para la distribución binaria es por optimizaciones en tiempo de compilación para la arquitectura de la CPU. MPlayer ahora soporta detección de CPU en tiempo de ejecución (pase `--enable-runtime-cpudetection` a `configure`). Está desactivado por defecto porque implica un pequeño sacrificio de velocidad, pero ahora es posible crear binarios que corran en diferentes miembros de la familia de CPU's compatibles con Intel.

## nVidia

Nos desagrada el hecho de que nVidia solo provea controladores binarios (para usar con XFree86), que tienen muchos fallos. Tenemos muchos informes en mplayer-users acerca de problemas relacionados con estos controladores de código-cerrado y de su pobre calidad, inestabilidad y pobre soporte a usuarios y expertos. Muchos de estos problemas/informes aparecen repetidamente. Hemos contactado con nVideia, y nos dicen que esos errores no existen, que la inestabilidad es causada por circuitos AGP malos, y que ellos no reciben informes de fallos en sus controladores (como la línea púrpura). De modo que si tiene un problema con su tarjeta nVidia, actualice su controlador nVidia y/o compre una placa base nueva o pregunte a nVidia por unos controladores de código-abierto. En cualquier caso, si está usando los controladores binarios de nVidia y experimenta problemas relacionados con eso, por favor sepa que por nuestra parte recibirá muy poca ayuda porque tenemos muy poca información a respecto.

## Joe Barr

Joe Barr se hizo infame en diciembre de 2001 por escribir un más que desfavorable artículo sobre MPlayer llamado MPlayer: El proyecto del infierno. Él encuentra MPlayer dificil de instalar, y concluye que los desarrolladores son poco amistosos y la documentación está incompleta y es insultante. Juzgue usted mismo sobre ese asunto. También menciona a Arpi de manera negativa en su 10 predicciones sobre Linux para 2002. En un reportaje sobre xine llamado Un reproductor de medios para el resto de nosotros con lo que siguió aumentando la controversia. Irónicamente al final del artículo cita su intercambio con Günter Bartsch, el autor original de xine, que resume perfectamente la situación por completo:

> Sin embargo, también ha dicho que se "sorprendió" por mi columna acerca de MPlayer y piensa que es injusto, recordandome que esto es un proyecto de software libre. "Si no te gusta hazlo tú," dice Bartsch, "eres libre de no usarlo".

Casi dos años después en octubre de 2003 escribe otro artículo llamado MPlayer revisitado. En este llega a las siguientes conclusiónes:

> Me gustaría decir que han hecho mejoras en gran cantidad de características, en rendimiento, y en documentación. Sigue si ser el más facil de instalar en el mundo, especialmente para novatos, pero es un poco mejor de los que he usado.

y

> Pero lo más importante, no he notado ningún cambio reciente en los comentarios acerca del abuso de usuario. Creo que tengo derecho a algún crédito por ello, incluso si lo digo por mi mismo. Arpi y el resto del equipo del proyecto deben sentirse libres también de ese modo, porque tienen una sección especial sobre mí para recordarme dentro del paquete de documentación. Como decía al principio, algunas cosas no han cambiado del todo.

No podemos resumir nuestros sentimientos sobre Joe Barr mejor: "Sigue sin ser el mejor artículo de investigación o el más justo del mundo, pero es un poco mejor de los que he usado." Con suerte la próxima vez conseguiremos que sus espectativas sean otras. Sin embargo, el crédito de madurez solo lo obtenemos con la edad, y quizá comience otra vez a aburrirnos y amenazarnos.