freetype

Mariusz Mazur mariusz w isn.pl
Wto, 9 Kwi 2002, 20:52:23 CEST


On Tuesday 09 April 2002 20:25, Mariusz Mazur wrote:
> Potrzebna mi osoba która decydowała w jakich katalogach mają siedzieć
> headersy do freetype i freetype1. Moje pytanie brzmi: czym się ta osoba
> kierowała rozmieszczając te pliki w obrębie /usr/include?

Informacja wstępna:
freetype1-devel (wersja starsza) trzyma nagłówki w /usr/include/freetype
freetype-devel (wersja nowsza) trzyma nagłówki w
                                          /usr/include/freetype2/freetype

Dobra. Wytłumaczę o co mi chodzi. Otóż podczas moich bojów z mozillą 0.9.9 
wpadłem na to, że mozilla się ślicznie buduje bez pakietów freetype1-devel, 
ale z nimi już się wykrzacza. Błędy wskazywały jasno na to, że includowane 
były pliki z obu wersji freetype'a. Naszukawszy się chwile narzędzia do 
parsowania plików *.c i robienia drzewka includeów (zna ktoś coś takiego?) 
wziąłem się na sposób i użyłem do tego celu strace'a. Rzeczywiście okazało 
się, że są używane nagłówki z obu wersji biblioteki. Pytanie: dlaczego?
Nie musiałem długo szukać by znaleźć odpowiedź.

bash-2.05# pwd
/usr/include/freetype2
bash-2.05# grep freetype/ -r .|head
./freetype/config/ftconfig.h:  /* The build directory is usually 
`freetype/builds/<system>', and        */
./freetype/config/ftconfig.h:  /* This ANSI version should stay in 
`include/freetype/config'.           */
./freetype/config/ftconfig.h:  /* `freetype/builds/<system>' directory, and 
edit it to port the engine. */
./freetype/config/ftheader.h:#define FT_CONFIG_CONFIG_H  
<freetype/config/ftconfig.h>
./freetype/config/ftheader.h:#define FT_CONFIG_OPTIONS_H  
<freetype/config/ftoption.h>
./freetype/config/ftheader.h:#define FT_CONFIG_MODULES_H  
<freetype/config/ftmodule.h>
./freetype/config/ftheader.h:#define FT_FREETYPE_H  <freetype/freetype.h>
./freetype/config/ftheader.h:#define FT_ERRORS_H  <freetype/fterrors.h>
./freetype/config/ftheader.h:#define FT_MODULE_ERRORS_H  <freetype/ftmoderr.h>
./freetype/config/ftheader.h:#define FT_SYSTEM_H  <freetype/ftsystem.h>

Dla mnie jest jasne, że autorzy freetype'a nakazali ludziom używania notacji 
w stylu #include FT_FREETYPE_H zamiast bezpośredniego odwoływania się do tych 
plików. I tu się rodzi problem. Każdy normalny program podczas kompilacji 
szuka swoich nagłówków w /usr/include. A co się stanie jeśli includujemy plik 
<freetype/freetype.h>? Ano includujemy plik /usr/include/freetype/freetype.h 
należący do freetype1 i tym samym nic się nie kompiluje.

Teraz wyjścia są dwa: albo zmienimy miejsce w którym znajduje się freetype1 
(/usr/include/freetype) psując przy okazji dużo rzeczy (i tutaj chciałbym się 
dowiedzieć, czy ktoś ma jakieś informacje o tym jakie położenie tych plików 
sugerują sami autorzy), albo w powyższych #defineach pozamieniam 
<freetype/jakiśplik.h> na <freetype2/freetype/jakiśplik.h>. *Teoretycznie* 
nie powinno to niczego popsuć bo z założenia i tak wszystkie programy podczas 
kompilacji przeszukują /usr/include i powinny trafić na odpowiednie pliki. No 
ale niby z założenia mamy mieć PLD 1.0 i nie chcę ryzykować popsucia 
czegokolwiek. No, a poza tym jest to dosyć duża zmiana o której zpewnością 
chcieli by wiedzieć sami autorzy.

Komentarze/sugestie/whatever?


-- 
Każdy człowiek, który naprawdę żyje, nie ma charakteru, nie może go mieć.
Charakter jest zawsze martwy, otacza cię zgniła struktura przeniesiona z 
przeszłości. Jeżeli działasz zgodnie z charakterem wtedy nie działasz w ogóle
- jedynie mechanicznie reagujesz.                 { Osho }



Więcej informacji o liście dyskusyjnej pld-devel-pl