# Dodatek E - Spory Programistów (org. Developer Cries)

Są taki dwa tematy, które zawsze wywołują wielkie dyskusje i ogniste boje na grupie dyskusyjnej mplayer-users . Tematem numer jeden jest:

## E.1 GCC 2.96

Tło historii: Seria GCC 2.95 jest oficjalnym wydaniem GNU, z czego wersja GCC 2.95.3 ma najmniej błędów z całej serii. Nigdy nie zauważyliśmy problemów kompilacji z GCC 2.95.3. Zaczynając od Red Hat Linux 7.0, Red Hat dołączył do ich dystrybucji silnie połataną wersję GCC z CVS i nazwał ją 2.96. Red Hat dołączył tę wersję do dystrybucji, ponieważ GCC 3.0 nie zostało ukończone na czas, a oni potrzebowali kompilatora dobrze pracującego na wszystkich wspieranych przez nich platformach, włączając IA64 i s390. Dystrybutor Linuksa - Mandrake, kierujący się także przykładem Red Hata zaczął rozprowadzać GCC 2.96 razem z ich serią Linux-Mandrake 8.0.

Oświadczenie: Zespół GCC wypiera się wszelkich powiązań z GCC 2.96 i wydał oficjalną odpowiedź na temat GCC 2.96. Wielu programistów na całym świecie zaczęło mieć problemy z GCC 2.96 i zaczęli rekomendować inne kompilatory. Przykłady to: MySQL, avifile i Wine. Inne interesujące linki to: Linux kernel news flash about kernel 2.4.17 i Voy Forum. MPlayer także ucierpiał z powodu nieregularnych problemów, rozwiązywaliśmy je zmieniając GCC na inną wersję. Kilka projektów zaczyna rozwiązywać problemy z niektórymi wydaniemi 2.96, ale my odmawiamy naprawiania cudzych błędów, zwłaszcza dlatego, że niektóre poprawki mogą spowodować utratę wydajności.

Możesz przeczytac o innej stronie tej historii na tej stonie. GCC 2.96 nie zezwala na znak | (potok) w komentarzach assemblera ponieważ dobrze wspiera Intela w AT&T Syntax, a znak | jest symbolem w jednaj z odmian Intela. problemem jest to, że po cichu ignoruje cały blok a assemblerze. Podobno zostało to już naprawione, GCC wyświetla ostrzeżenie zamiast pomijania bloku.

Obecnie: Red hat twierdzi, że GCC 2.96-85 i kolejne są naprawione. Sytuacja istotnie, poprawiła się, lecz ciągle dostajemy raporty na naszej grupie dyskusyjnej, które znikają z innymi kompilatorami. W każdym wypadkunie ma to już znaczenia. Miejmy nadzieję, że dojrzewający GCC 3.x rozwiąże kwestię na dobre. Jeżeli chcesz kompilować z 2.96 dodaj flagę `--disable-gcc-checking` do configure. Pamiętaj, że robisz to na własną odpowiedzialność i nie raportuj żadnych błędów. Jeżeli to zrobisz, zostaniesz zbanowany z naszej grupy dyskusyjnej, ponieważ mieliśmy więcej niż dosyć zaciekłych wojen o GCC 2.96. prosimy, zostaw sprawę w spokoju.

Jeżeli masz problemy z GCC 2.96, możesz pobrać pakiety 2.96-85 z serwera ftp Red Hata, lub po prostu odwołać się do pakietów 3.0.4 oferowanych w wersjach 7.2 i późniejszych. Możesz również pobrać pakiety gcc-3.2-10 (nieoficjalne, ale działają świetnie) i możesz zainstalować je równolegle z GCC 2.96, które aktualnie masz. MPlayer wykryje go i użyje 3.2-10 zamiast 2.96. Jeżeli nie chcesz lub nie możesz użyć pakietów binarnych, poniżej znajduje się instrukcja, kompilacji najnowszego GCC ze źródeł:

1. Wejdź na stronę GCC z mirrorami i pobierz `gcc-core-XXX.tar.gz` gdzie `XXX` jest numerem wersji. Archiwum zawiera kompletny kompilator C który jest wystarczający dla MPlayera. Jeżeli chcesz również C++, Java lub inne zaawansowane funkcje GCC, `gcc-XXX.tar.gz` może bardziej odpowiadać twoim wymaganiom.
2. Rozpakuj archiwum komendą
   `tar -xvzf gcc-core-XXX.tar.gz`
3. GCC nie buduje się w katalogu ze źródłami tak jak większość programów, ale wymaga stworzenia katalogu na zewnątrz katalogu ze źródłami. A zatem musisz stworzyć ten katalog poprzez
   `mkdir gcc-build`
4. Potem możesz kontynułować konfigurowanie GCC w stworzonym katalogu, ale potrzebujesz configure z katalogu ze źródłami:
   `cd gcc-build
   ../gcc-XXX/configure`
5. Skompiluj GCC wydając komendę w stworzonym katalogu:
   `make bootstrap`
6. Teraz możesz zainstalować GCC (jako root) podając
   `make install`

## E.2 Dystrybutowanie binariów

Wcześniej MPlayer zawierał kod z projektu OpenDivX, co nie pozwalało na dystrybucję binariów. Ten kod został usunięty w wersji 0.90-pre1 a pozostały plik `divx_vbr.c` pochodzący z kodu OpenDivX został przeniesiony na licencję GPL prze jego autorów, kiedy pojawiła się wersja 0.90-pre9. Jest teraz mile widziane, byś tworzył pakiety binarne, jakich potrzebujesz.

Inną przeszkodą w dystrybutowaniu binariów była optymalizacja dla architektur CPU. MPlayer wspiera teraz detekcję CPU w czasie rzeczywistym (wyszczególnij opcję `--enable-runtime-cpudetection` podczas konfiguracji). Jest ona domyślnie wyłączona, ponieważ wymaga małych wyrzeczeń prędkości, ale teraz jest możliwe tworzenie binariów dla różnych członków rodziny procesorów Intel.

## E.3 nVidia

W rzeczywistości nie lubimy nVidii ponieważ dostarcza tylko binarne sterowniki (dla XFree86), które są często z błędami. Mamy wiele raportów na grupie mplayer-users dotyczących problemów z tymi zamknięto-źródłowymi sterownikami, ich kiepskiej jakości, niestabilności i kiepskiego wsparcia dla użykownika i eksperta. Kilka przykładów można znaleść na nVidia Linux Forum. Wiele z tych problemów/kwestii pojawia się wielokrotnie. Skontaktowaliśmy się ostatnio z nVidią, oni twierdzą że błędy nie występują, niestabilność spowodowana jest złymi chipami AGP i że nie odbierali żadnych raportów o błędach w sterownikach (takich jak różowa linia). Więcej jeżeli masz problem z twoją kartą z nVidia, doradza się update sterowników nVidii i/lub kupno nowej płyty głównej lub poproszenie nVidii o dostarczenie sterowników o otwartym kodzie. We wszystkich przypadkach, jeżeli używasz binarnych sterowników nVidii i doświadczasz ukrytych problemów ze sterownikami, prosimy, bądź świadomy tego, że otrzymasz bardzo małą pomoc z nasze strony, ponieważ nie możemy wiele pomóc w tej sprawie.

## E.4 Joe Barr

Joe Barr zyskał niesławę pisząc mniej niż przychylną recenzję MPlayera. Założył, że MPlayer jest trudny do zainstalowania, ale potem napisał, że nie bardzo lubi czytać dokumentację. Wywnioskował również, że programiści są nieprzyjaźni i że dokumentacja jest niekompletna i obelżywa. Sam osądź. Oparł się o negatywną wzmiankę o MPlayerze w jego 10 Linuksowych przewidywaniach na 2002 Kontynuując, w recenzji xine dalej wywołuje kontrowersję. Ironicznie, na końcu tego artykułu, cytuje swój wywiad z Günter Bartsch, głównym autorem xine, który doskonale streszcza całą sytuacje:

> Jednak, on także powiedział, że był "zaskoczony" moją kolumną o MPlayerze i pomyślał że to było nieuczciwie, przypomina mi, że jest to wolny projekt oprogramowania. "Jeżeli ci się nie podoba,"powiedział Bartsch, "nie musisz tego używać."

Nie odpowiada na nasze e-maile. Jego wydawca nie odpowiada na nasze e-maile. Oto kilka cytatów od różnych ludzi na temat Joe Barr, więc możesz wyrobić sobie o nim opinię:

Marc Rassbach ma coś do powiedzenia na temat tego faceta.

> Wszyscy pamiętacie LinuxWorld 2000, kiedy on twierdził, że Linus T. powiedział, że FreeBSD, to garstka developerów. Linus nie powiedział NICZEGO w tym rodzaju. Kiedy wypomniano to Joe'mu, jego reakcją było wyzwanie ludzi utrzymujących BSD od dupków i głupków.

Cytat od Roberta Munro na grupie dyskusyjnej mplayer-users :

> On jest interesujący, ale kiepsko mu wychodzi unikanie ... kontrowersyjności. Joe Barr był regularnym uczestnikiem forum Willa Zachmanna w Compuserve, kilka lat temu. Był zwolennikiem OS/2 (ja również byłem zwolennikiem OS/2).

> Często przekraczał wszelkie granice, rozwścieczając ludzi i podejrzewam, że to były ciężkie czasy dla niego. Trochę złagodniał ostatnio, będąc ocenionym przez własny dział redakcyjny. Stonowany, subtelny humor nie był jednak jego stylem w tamtych wczesnych dniach, w zupełności.

> P>