~ubuntu-branches/ubuntu/saucy/libgadu/saucy-security

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ą  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  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  glibc i Perl. Jeśli nie
 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.