1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
|
libgadu 1.10.1
(C) Copyright 2001-2011 Autorzy (pełna lista w pliku AUTHORS)
libgadu jest biblioteką przeznaczoną do obsługi protokołu komunikatora
Gadu-Gadu. Przez dłuższy czas była integralną częścią Eksperymentalnego
Klienta Gadu-Gadu, lecz ze względu na problemy z dystrybucją pakietów
i wykorzystaniem w innych projektach, została wydzielona. Własnościowy
protokół został rozszyfrowany metodą inżynierii wstecznej (ang. "reverse
engineering"), przez co libgadu może nie być w 100% zgodna
z pierwowzorem.
Biblioteka jest udostępniana na zasadach licencji LGPL w wersji 2.1,
której treść znajduje się w pliku COPYING. Biblioteka została napisana
w języku C i jest niezależna od systemu operacyjnego czy środowiska.
Pracuje pod systemami operacyjnymi zgodnymi z POSIX, również BeOS
i Win32, choć ten ostatni nie jest wspierany ze względu na istnienie
oficjalnego klienta Gadu-Gadu. Używana jest w aplikacjach konsolowych,
jak i graficznych GTK+ i Qt.
Strona projektu znajduje się pod adresem http://toxygen.net/libgadu/.
Osoby zainteresowane biblioteką mogą zapisać się na listę dyskusyjną
libgadu-devel poświęconą rozwojowi biblioteki, programowaniu przy jej
użyciu oraz protokołowi Gadu-Gadu. Istnieje również lista
libgadu-commit, na którą są wysyłane informacje o zmianach w kodzie
źródłowym.
Ostrzeżenie: Należy pamiętać, że używanie alternatywnych klientów jest
niezgodne z regulaminem korzystania z serwisu Gadu-Gadu.
Wymagania
---------
Do połączeń szyfrowanych biblioteka wykorzystuje bibliotekę GnuTLS lub
OpenSSL. Jeśli obie są zainstalowane w systemie, pierwszeństwo ma ta
pierwsza, ponieważ użycie OpenSSL może powodować problemy z łączeniem
z programami na licencji GPL.
Do poprawnej obsługi połączeń bezpośrednich starszych wersji protokołu
niezbędny jest kompilator obsługujący 64-bitowy typ long long.
Do wygenerowania dokumentacji używany jest Doxygen. Jeśli nie jest
dostępny, dokumentacja nie jest generowana.
Do niektórych testów automatycznych wymagane są glibc i Perl. Jeśli nie
są dostępne, niektóre testy nie będą uruchamiane.
Podczas kompilacji wykrywana jest wersja biblioteki standardowej,
ponieważ zachowanie używanych funkcji rodziny printf() zostało
zmienione w ISO C99. Podczas kompilacji skrośnej nie jest możliwe
automatyczne określenie wersji biblioteki na systemie docelowym, więc
niezbędne jest użycie parametru --with- lub --without-c99-vsnprintf.
Większość współczesnych systemów operacyjnych zawiera bibliotekę
standardową zgodną ze standardem C99, więc w przypadku wątpliwości
można użyć --with-c99-vsnprintf.
Do asynchronicznego rozwiązywania nazw biblioteka używa procesów
lub wątków pthread. Jeśli system udostępnia wariant funkcji
gethostbyname() działający poprawnie w aplikacjach wielowątkowych
(Linux z glibc, SunOS), zostanie on użyty.
|