# Appendice E - Lamentele degli sviluppatori

Ci sono due argomenti principali che causano sempre grandi dispute e flame sulla mailing list degli mplayer-users. Il numero uno è naturalmente il

## E.1 GCC 2.96

Il retroscena : C'erano/ci sono le serie GCC 2.95. Il migliore era il 2.95.3 . Per favore nota lo stile di numerazione delle versioni. Così è come il team GCC numera i loro compilatori. Quelli della serie 2.95 sono buoni. Non abbiamo mai visto nulla compilato male a causa di errori del 2.95.3.

Le dichiarazioni: Il team GCC dichiarato di non avere nessun collegamento col GCC 2.96 e ha dato una risposta ufficiale riguardante il GCC 2.96. Molti sviluppatori nel mondo hanno cominciato a riscontrare problemi col GCC 2.96, e hanno cominciato a raccomandare altri compilatori. Esempi sono MySQL, avifile e Wine. Altri link interessanti sono Linux kernel news flash about kernel 2.4.17 e Voy Forum. Anche MPlayer ha sofferto di problemi intermittenti che si sono tutti risolti cambiando versione di GCC. Alcuni progetti hanno cominciato a implementare metodi per aggirare alcuni dei problemi del 2.96, ma noi ci siamo rifiutati di correggere i bug di altri, specialmente perchè alcuni di questi metodi implicano un calo delle prestazioni.

Puoi leggere l'altro lato della storia qui. GCC 2.96 non permette i caratteri | (pipe) nei commenti in assembler perchè supporta sia la sintassi Intel che AT&T e il carattere | è un simbolo nella variante Intel. Il problema è che ignora silenziosamente l'intero blocco in assembler. Questo dovrebbe essere stato corretto ora, GCC stampa un avvertimento invece di saltare il blocco.

Il presente: Red Hat dice che il GCC 2.96-85 e superiori sono stati corretti. La situazione è migliorata, ma noi vediamo ancora segnalazioni di problemi sulle nostre mailing list che scompaiono con un diverso compilatore. In ogni caso non importa più. Si spera che il maturante GCC 3.x risolverà la questione per il meglio. Se desideri compilare col 2.96 passa l'opzione `--disable-gcc-checking` a configure. Però devi arrangiarti da solo, non segnalare nessun bug. Se lo farai, sarai solo escluso dalla mailing list perchè abbiamo avuto già abbastanza flame sul GCC 2.96.

Se hai problemi col GCC 2.96, puoi prendere i pacchetti 2.96-85 dal server ftp della RedHat, usa i pacchetti 3.04 offerti per la versione 7.2 e successive. Puoi anche prendere i pacchetti del gcc-3.2-10 (non ufficiali, ma funzionano bene) qui e puoi installarli insieme al gcc-2.96 che già hai. MPlayer lo riconoscerà e userà il 3.2 invece del 2.96. Se non vuoi o non puoi usare i pacchetti binari, ecco come compilare l'ultimo GCC dai sorgenti:

- Vai alla pagina deimirror di GCC e scarica `gcc-core-XXX.tar.gz`, dove `XXX` è il numero di versione. Questo include il completo compilatore C ed è sufficente per MPlayer. Se vuoi anche C++, Java o altre caratteristiche avanzate di GCC il pacchetto `gcc-XXX.tar.gz` potrebbe soddisfare meglio le tue esigenze.
- Estrai l'archivio con
  `tar -xvzf gcc-core-XXX.tar.gz`
- GCC non viene compilato all'interno della directory dei sorgenti come la maggior parte dei programmi, ma necessita una directory esterna. Quindi bisogna crearla con
  `mkdir gcc-build`
- Quindi si può procedere a configurare gcc in questa directory, ma devi usare il configure dei sorgenti:
  `cd gcc-build
  ../gcc-XXX/configure`
- Compila GCC passando questo comando:
  `make bootstrap`
- Ora puoi installare GCC (da root) facendo
  `make install`

## E.2 Distribuzione binaria di MPlayer

MPlayer in precedenza conteneva dei sorgenti del progetto OpenDivX, che non permetteva la ridistribuzione binaria. Questo codice è stato rimosso nella versione 0.90-pre1 e il rimanente file `divx_vbr.c` derivato dai sorgenti di OpenDivX è stato rilasciato sotto licenza GPL dai suoi autori dalla versione 0.90pre9. Ora puoi creare pacchetti binari se vuoi.

Un altro impedimento alla distribuzione binaria erano le ottimizzazioni di compilazione per l'architettura della CPU. MPlayer ora supporta il riconoscimento della CPU a runtime (specifica l'opzione `--enable-runtime-cpudetection` al momento della configurazione). E' disabilitato di default perchè implica un piccolo sacrificio di velocità, ora è possibile creare file binari che possono essere eseguiti su diversi membri della famiglia di CPU della Intel.

## E.3 nVidia

Non ci piacciono i driver binari di nvidia, la loro qualità, instabilità, l'inesistente supporto all'utente, la regolare comparsa di nuovi bug. E la maggior parte degli utenti fa lo stesso. Alcuni esempi si possono trovare sul forum Linux di nVidia. Ultimamente siamo stati contattati da NVidia, e loro hanno detto che questi bug non esistono, l'instabilità è causata da pessimi chip AGP, e che non hanno ricevuto nessuna segnalazione di bug del driver (la linea viola, per esempio). Quindi: se hai problemi con la tua NVidia, aggiorna il driver nvidia e/o compra una nuova scheda madre.

## E.4 Joe Barr

Non risponde alle nostre mail. Il suo editore non risponde alle nostre mail. La rete è piena delle sue false dichiarazioni e accuse (apparentemente non gli piacciono i ragazzi BSD, a causa dei loro diversi punti di vista [su cosa?]).

Ora alcune citazioni di diverse persone circa Joe Barr (solo per farvi sapere perchè non conta assolutamente niente):

"Voi tutti ricorderete il LinuxWorld 2000, quando lui affermò che Linus T disse che 'FreeBSD è solo un aiuto per i programmatori'. Linus non disse NIENTE del genere. Quando furono chieste spiegazioni a Joe, la sua reazione fu quella di chiamare tutti i sostenitori BSD stupidi e tonti."

"E' interessante, ma non è bravo ad evitare, um... le discussioni. Joe Barr era regolarmente presente sul forum Canopus di Zachmann su Compuserve, anni fa. Allora era un sostenitore di OS/2 (anche io ero un fan di OS/2). Era solito passare il limite, insultando la gente, e credo che avesse passato dei brutti quarti d'ora, al tempo. Si è ammorbidito un po' recentemente, giudicando dalle sue colonne. L'umorismo moderatamente subdolo non era suo uso a quei tempi, per niente."