1libgadu 1.12.2 2(C) Copyright 2001-2014 Autorzy (pełna lista w pliku AUTHORS) 3 4libgadu jest biblioteką przeznaczoną do obsługi protokołu komunikatora 5Gadu-Gadu. Przez dłuższy czas była integralną częścią Eksperymentalnego 6Klienta Gadu-Gadu, lecz ze względu na problemy z dystrybucją pakietów 7i wykorzystaniem w innych projektach, została wydzielona. Własnościowy 8protokół został rozszyfrowany metodą inżynierii wstecznej (ang. "reverse 9engineering"), przez co libgadu może nie być w 100% zgodna 10z pierwowzorem. 11 12Biblioteka jest udostępniana na zasadach licencji LGPL w wersji 2.1, 13której treść znajduje się w pliku COPYING. Biblioteka została napisana 14w języku C i jest niezależna od systemu operacyjnego czy środowiska. 15Pracuje pod systemami operacyjnymi zgodnymi z POSIX, również BeOS 16i Win32. Używana jest w aplikacjach konsolowych, jak i graficznych GTK+ i Qt. 17 18Strona projektu znajduje się pod adresem http://libgadu.net/. 19Osoby zainteresowane biblioteką mogą zapisać się na listę dyskusyjną 20libgadu-devel poświęconą rozwojowi biblioteki, programowaniu przy jej 21użyciu oraz protokołowi Gadu-Gadu. Istnieje również lista 22libgadu-commit, na którą są wysyłane informacje o zmianach w kodzie 23źródłowym. Informacje o listach dyskusyjnych można uzyskać na stronach: 24 25 - http://lists.ziew.org/mailman/listinfo/libgadu-devel 26 27 - http://lists.ziew.org/mailman/listinfo/libgadu-commit 28 29Ostrzeżenie: Należy pamiętać, że używanie alternatywnych klientów jest 30niezgodne z regulaminem korzystania z serwisu Gadu-Gadu. 31 32Wymagania 33--------- 34 35Do połączeń szyfrowanych biblioteka wykorzystuje bibliotekę GnuTLS lub 36OpenSSL. Domyślnie OpenSSL nie jest wykorzystywany, nawet jeżeli jest 37zainstalowany w systemie - oprogramowanie zlinkowane z tą biblioteką nie jest 38kompatybilne z GPL, co powoduje problemy z łączeniem z programami na tej 39licencji. Aby mimo wszystko skompilować libgadu z obsługą OpenSSL, należy 40użyć przełącznika --with-openssl. Tak skompilowana wersja będzie tylko 41częściowo binarnie kompatybilna z wersją standardową: brakuje w niej symbolu 42gg_is_gpl_compliant, którego mogą używać aplikacje wymagające takiej 43licencji. Minimalna wymagana wersja biblioteki OpenSSL to 0.9.7, a biblioteki 44GnuTLS 2.10.0. Przy użyciu OpenSSL lub GnuTLS w wersji niższej niż 3.0 nie 45jest sprawdzana lista unieważnionych certyfikatów. 46 47Do przechowywania listy kontaktów na serwerze niezbędna jest biblioteka 48zlib. 49 50Do wygenerowania dokumentacji używany jest Doxygen. Jeśli nie jest 51dostępny, dokumentacja nie jest generowana. 52 53Do niektórych testów automatycznych wymagane są glibc, GnuTLS, libxml2 54i Perl. Jeśli nie są dostępne, niektóre testy nie będą uruchamiane. 55Ponadto jeden z programów do ręcznego testowania biblioteki wymaga 56bibliotek CURL, Expat i OpenSSL. 57 58Kompilator musi obsługiwać 64-bitowe zmienne typu long long. 59 60Podczas kompilacji wykrywana jest wersja biblioteki standardowej, 61ponieważ zachowanie używanych funkcji rodziny printf() zostało 62zmienione w ISO C99. Podczas kompilacji skrośnej nie jest możliwe 63automatyczne określenie wersji biblioteki na systemie docelowym, więc 64niezbędne jest użycie parametru --with- lub --without-c99-vsnprintf. 65Większość współczesnych systemów operacyjnych zawiera bibliotekę 66standardową zgodną ze standardem C99, więc w przypadku wątpliwości 67można użyć --with-c99-vsnprintf. 68 69Do asynchronicznego rozwiązywania nazw biblioteka używa procesów 70lub wątków pthread. Jeśli system udostępnia funkcję gethostbyname_r() 71działającą poprawnie w aplikacjach wielowątkowych (Linux z glibc, 72SunOS), zostanie ona użyta. 73 74