
                     Eksperymentalny Klient Gadu-Gadu

          (C) Copyright 2001-2005 Autorzy (pena lista poniej)

LICENCJA

    Program jest udostpniony na zasadach licencji GPL v2, ktrej tre
    zaczono w pliku src/COPYING. Niektre pliki mog by objte inn
    licencj zgodn z GPL v2. Fakt ten jest odnotowany na pocztku pliku.

    Wyjtkiem od licencji GPL v2 jest moliwo kompilacji, konsolidacji
    i uywania programu z bibliotek OpenSSL autorstwa Projektu OpenSSL
    (The OpenSSL Project) dostpn pod adresem http://www.openssl.org/

    Bibliotek libgadu obsugujca warstw sieciow udostpniono na
    zasadach licencji LGPL v2.1, ktrej tre znajduje si w pliku
    lib/COPYING.

    Program i biblioteka zostay napisane na podstawie informacji
    uzyskanych przez badanie pakietw wysyanych midzy klientem
    a serwerem oraz od osb trzecich. Autorzy nie disasemblowali
    ani nie dekompilowali oryginalnego klienta. Projekt powsta przy
    uyciu darmowych i wolnodostpnych narzdzi.

    Gadu-Gadu jest zastrzeonym znakiem towarowym sms-express Sp. z o.o.

INSTALACJA

    Rozpakowa poleceniem ,,tar zxvf ekg-XXX.tar.gz'' (gdzie XXX to wersja
    programu lub data wykonania snapshotu), wej do utworzonego katalogu.
    Jeli mamy uprawnienia administratora na danej maszynie, wywoujemy
    ,,./configure'', potem ,,make'' i z prawami roota ,,make install''.
    Jeli chcemy zainstalowa program w katalogu domowym, do polecenia
    configure dodajemy parametry ,,--prefix=$HOME/ekg
    --mandir=$HOME/ekg/share/man''. Po zainstalowaniu w ten sposb,
    program gotowy do uruchomienia bdzie znajdowa si w katalogu
    ekg/bin w katalogu domowym. Jeli chcemy mie moliwo uywania
    polece ,,beeps_spk'' i ,,blink_leds'', sucych m.in do
    manipulowania diodami LED na klawiaturze, naley przy uruchomieniu
    uy parametru ,,--enable-ioctld''.

    Proste? Proste. Po pierwszym uruchomieniu ekg powie, jak go
    skonfigurowa.

    Program domylnie korzysta z biblioteki ncurses, wic powinny by
    zainstalowane odpowiednie pakiety zawierajce bibliotek oraz pliki
    nagwkowe. Jeli chcesz uy starego interfejsu, do polecenia
    configure dodaj ,,--disable-ui-ncurses''. Interfejs ten wymaga
    zainstalowania biblioteki readline wraz z plikami nagwkowymi.
    readline zwykle polega te na innych bibliotekach do obsugi
    terminala, jak np. libtermcap czy ncurses. Instalacja obu interfejsw
    naraz nie jest wskazana. Oczywicie niezbdny jest te zestaw narzdzi
    do kompilacji programw napisanych w jzyku C -- kompilator,
    preprocesor, linker, pliki nagwkowe, biblioteki systemowe itd.
    Jeli skrypt ./configure zgosi jakie bdy, skontaktuj si ze swoim
    administratorem.

    ekg powinien dziaa na wikszoci systemw uniksowych, jak Linux,
    *BSD, SunOS, IRIX itp. lecz czasami przy dodawaniu nowych funkcji
    nie sposb sprawdzi ich zachowania na wszystkich popularnych
    systemach. W takim wypadku przydatne s informacje o bdach z
    dokadnym wskazaniem systemu i architektury.

UYCIE

    Jest na tyle intuicyjne, e nie powinno sprawi problemw (wszyscy
    betatesterzy poradzili sobie bez jakiejkolwiek dokumentacji).
    Interfejs jest wzorowany na irssi. Dopenianie tabem jest dostpne w
    wikszoci komend. Komendy mona wywoywa skrtami, o ile s one
    jednoznaczne. Wysyanie wiadomoci komend ,,msg'', otwarcie okna
    rozmowy komend ,,query''. Informacje o rozmwcach ,,find'' w oknie
    rozmowy. Szukanie t sam komend, ale z rnymi parametrami. ,,help''
    Twoim przyjacielem. Jeli dana komenda ma rne opcje, pomaga
    ,,help <komenda>''. By wysa kilkulinijkow wiadomo w interfejsie
    ncurses, wcinij Ctrl-Enter. W readline zamiast treci wpisz ,,\''
    (backslash) i zakocz lini z sam kropk (szczegy poniej, w rozdziale
    ,,KLAWIATURA'').

    Program mona skonfigurowa pod wieloma wzgldami, a wszystkie moliwe
    ustawienia, ktre zmienia si poleceniem ,,set'', s opisane w pliku
    vars.txt. Pomoc dotyczc poszczeglnych ustawie mona uzyska take
    poprzez polecenie ,,help set <zmienna>''.

    Jeli dana komenda przyjmuje ,,--parametr'', mona uy rwnie
    skrtu ,,-p'', gdy nie powoduje to niejednoznacznoci. Uwaga!
    Brana pod uwag jest zwykle pierwsza litera, wic jeli chcesz 
    skrci ,,list --gone'' do ,,list -g'', ekg potraktuje to jako 
    ,,list --get''.

    Komendy mona wysya take przez potok. By go uaktywni, naley
    uruchomi ekg z parametrem ,,-c'' i ciek potoku. Ze wzgldu na
    specyfik potokw, wyniki polece wysyane bd na terminal, na ktrym
    jest uruchomione ekg (tak jak normalnie). Pisa do potoku mona tak
    jak do normalnego pliku (choby poleceniem echo).

    Jeli w linii polece shella podasz po nazwie programu i parametrach
    zaczynajcych si od mylnika co jeszcze, to zostanie to zinterpretowane
    jako komenda wsadowa. ekg poczy si z serwerem, wykona tylko t komend
    i od razu wyjdzie. Jeli na serwerze czekaj na Ciebie jakie wiadomoci,
    to serwer je przyle zaraz po poczeniu i w trybie wsadowym ekg wypisze
    je na terminal. Jeli zamierzasz przekierowa wyjcie do /dev/null i nie
    masz wczonego logowania, wiadomoci zgin bezpowrotnie.

KLAWIATURA

    Jeli nie masz dowiadczenia w obsugiwaniu programw z emacsow
    filozofi obsugi klawiatury, oto lista obsugiwanych klawiszy:

	Up, Down		przegldanie historii polece
	Left, Right		poruszanie si po aktualnej linii
        Ctrl-A, Home		id na pocztek linii
	Ctrl-B			pogrubiona czcionka [3]
        Ctrl-D, Delete		usu znak pod kursorem
        Ctrl-H, Backspace	usu znak przed kursorem
        Ctrl-I, Tab		dopenianie
	Ctrl-K			usuwa tekst od kursora do koca linii
        Ctrl-L			czyszczenie/odwieanie ekranu
        Ctrl-M, Enter		zatwierdzenie linii
        Ctrl-Q			odblokowanie terminala
	Ctrl-R			kolor tekstu [3]
        Ctrl-S			zablokowanie terminala
	Ctrl-T			pochya czcionka [3]
	Ctrl-V			pozwala wpisa dowolny znak [2]
        Ctrl-U			usunicie aktualnej linii
        Ctrl-W, Alt-Backspace	usunicie sowa przed kursorem
        Ctrl-Y			wklejenie ostatnio usunitego bloku
        Ctrl-Z			przeniesienie programu w to
	Ctrl-_			podkrelona czcionka [3]
	Alt-B			sowo do tyu
	Alt-D			usunicie sowa za kursorem
	Alt-F			sowo do przodu
	Alt-cyfra		przeczenie do podanego okna
	F1			pomoc
	F2			krtka lista dostpnych i zajtych
	F12 lub Alt-`		przeczenie do okna debugowania

    Lista ta obejmuje klawisze obsugiwane przed interfejs readline
    i ncurses, i nie zawiera kombinacji specyficznych dla tego pierwszego.

    Interfejs readline obsuguje rwnie inne kombinacje klawiszy. Dokadna
    lista znajduje si w stronie manuala ,,readline'' w rozdziale ,,DEFAULT
    KEY BINDINGS''. Dodatkowo:

        Ctrl-D			zamyka rozmow i anuluje wprowadzanie
	                        wiadomoci wielolinijkowej

    Interfejs ncurses obsuguje kilka dodatkowych kombinacji:

	Page Up, Page Down	przewijanie ekranu
	Ctrl-F, Ctrl-G		j.w.
	Alt-A			przejd do pierwszego aktywnego okna
	Alt-S			przejd do najstarszego aktywnego okna 
				(okna, ktre najduej jest aktywne)
	Alt-N			utwrz nowe okno
	Alt-K			zamknij aktualne okno
	Alt-G			ignoruj aktualnego rozmwc
	Alt-Q do Alt-P		przecza do okna 11 do 20
	Alt-Z			przewijanie listy kontaktw w gr
	Alt-X			przewijanie listy kontaktw w d
	Ctrl-Fn			przecza do podanego okna (konsola FreeBSD)
	Ctrl-Enter		przejcie do trybu wielolinijkowego
	Ctrl-P			poprzednie okno
	Ctrl-N			kolejne okno
	F3			wcza lub wycza list kontaktw [1]
	F4			kolejna grupa w licie kontaktw
	F11			wybr informacji w pasku statusu

    Po wejciu do trybu wielolinijkowego poruszamy si za pomoc kursorw
    i zatwierdzamy ponownym wciniciem Ctrl-Enter. By anulowa, wciskamy
    Esc i czekamy chwil. Jeli kombinacja ta nie jest obsugiwana przez
    terminal, mona uywa Alt-Enter lub wcisn Esc i zaraz po nim Enter.

    Dodatkowo, okrelonym kombinacjom klawiszy mona przypisa rne
    komendy za pomoc polecenia ,,bind''.

    Ze wzgldu na niestandardowe zachowanie niektrych typw terminali,
    mog wystpi problemy z kombinacj Alt-Shift-O lub Alt-O przy
    wczonym Caps Locku.

    [1] Klawisz F3 zmienia warto zmiennej ,,contacts''. Jeli warto tej
        zmiennej bya rwna 0, wcinicie klawisza zmienia jej warto na 2.
	Jeli bya rwna 1, kolejne wcinicia F3 bd zmieniay warto
	z 1 na 0 i z 0 na 1.

    [2] Po wciniciu Ctrl-V naley wcisn klawisz, ktry chcemy wklei.
        Dziki temu moliwe jest wpisanie znakw typu Escape, Ctrl-L czy
	Ctrl-U.

    [3] W miejscu wcinicia klawisza pojawi si znak oznaczajcy kod
        klawisza w negatywie. By zmieni kolor tekstu, naley po Ctrl-R
	wpisa numer koloru od 0 do 15.

PLIK KONFIGURACYJNY

    Kolejno adowania plikw konfiguracyjnych jest nastpujca:
    1) /etc/ekg.conf (lub z innego katalogu wskazanego przez opcj
       --sysconfdir przekazan skryptowi ./configure),
    2) ~/.gg/config lub ~/.gg/<profil>/config,
    3) /etc/ekg-override.conf

    Dziki temu administrator moe wymusi pewne opcje na klientach
    uytkownikw, jak na przykad ,,server'' czy ,,proxy''. Globalne
    pliki konfiguracyjne mona ignorowa przez uruchomienie klienta
    z opcj ,,-N''.

GDZIE SZUKA POMOCY

    Dobra rada numer jeden: zanim zaczniesz narzeka, e czego nie ma,
    przeczytaj plik TODO.

    Dobra rada numer dwa: plik ULOTKA mwi, co znajduje si w ktrym pliku
    dokumentacji.

    Dobra rada numer trzy: zanim zaczniesz narzeka, e czego nie ma,
    poszukaj w pliku ChangeLog.

    Dobra rada numer cztery: jeli jeste nowym uytkownikiem, nie pytaj
    si, czy co da si zrobi, albo e przydaoby si. Program jest
    rozwijany od kilku lat, wielu ludzi korzysta z niego na co dzie,
    wic wikszo ,,bajerw'', o ktrych moesz pomyle, na pewno jest
    ju w programie.

WYSYANIE SMSW

    ekg korzysta z zewntrznego programu do wysyania smsw. Nie ma
    najmniejszego sensu dublowania tej funkcji, skoro i tak wikszo
    ma ju zainstalowane odpowiednie skrypty/programy/cokolwiek.
    Wystarczy poda ciek do takiego programu w zmiennej
    ,,sms_send_app''. Powinien przyjmowa numer telefonu za pierwszy
    parametr i wiadomo za drugi. Ten ze strony http://ceti.pl/~miki/
    spenia podane wymagania.

SYNTEZA MOWY

    ekg potrafi korzysta z zewntrznej aplikacji do syntezy mowy, by
    odczytywa wszystko, co trafia na ekran. Wystarczy ustawi zmienn
    ,,speech_app'' na nazw programu czytajcego tekst z stdin. Jej
    ustawienie spowoduje rwnie zmian wygldu programu, by wywietlane
    komunikaty stay si atwiejsze do wymwienia. Przykadowe ustawienia,
    gdy korzystamy z programu ,,powiedz'', to:

	set speech_app powiedz
	set make_window 0
	set display_sent 0
	set display_ack 3

    Program ,,powiedz'' mona pobra z
    http://cvs.pld.org.pl/SOURCES/powiedz_0.2.tgz

ZNANE PROBLEMY

    Jeli nie moesz wpisywa polskich liter w interfejsie readline,
    dopisz do pliku /etc/inputrc lub ~/.inputrc nastpujce linie:

	set meta-flag on
	set convert-meta off
	set output-meta on

ROZPOZNAWANIE PCI

    Krtka wersja: Jeli ekg le rozpoznaje pe, wpisz imi do listy
    kontaktw. W wikszoci przypadkw pomoe. No tak, nie masz pojcia,
    jak to zrobi? ,,list pseudonim -f imi''. Pomogo? wietnie. Nie
    pomogo? Czytaj dalej.

    Duga wersja: Jedn z najbardziej kontrowersyjnych cech programu jest
    automatyczne rozpoznawanie pci na podstawie ostatniej litery imienia
    lub gdy jest ono nieznane, pseudonimu. Gdy ostatni liter jest ,,a'',
    ekg uznaje, e dana osoba jest kobiet. Na przykad, jeli Twj znajomy
    ma pseudonim ,,Kuba'', wpisz do listy kontaktw imi ,,Jakub''.
    Problemy mog wystpi z rzadko spotykanymi imionami typu Barnaba
    czy Mercedes. W takim wypadku naley do imienia dopisa (chociaby
    po ukoniku lub w nawiasie) liter ,,a'' dla kobiet lub inn ni
    ,,a'' dla mczyzn.

ZGASZANIE BDW

    Jeli zauwaysz jaki bd, sprawd najnowsz wersj. Wikszo
    bdw jest poprawiana w cigu jednego lub dwch dni od chwili
    pojawienia si. Przy zgaszaniu bdu zaznacz, w ktrej wersji
    wystpuje.

    Nie pisz o sprawach, ktre s ju wymienione w pliku TODO, bo doskonale
    wiemy, e co trzeba poprawi.

    Zaznacz, co to za system, jaka dystrybucja, jaka wersja.

    Jeli bd jest powtarzalny i zwizany z sieci, przejd do okna debug
    i przylij to, co zostaje tam wywietlone przed samym wystpieniem
    bdu (zwykle ~20 linijek wystarczy). Moesz te skorzysta z ukrytego
    polecenia ,,_debug_dump'', ktre zapisze ostatnie linie z debug do
    pliku lub te przed uruchomieniem ekg wpisa nazw pliku, do ktrego
    przekierowany bdzie debug, do zmiennej systemowej ,,EKG_DEBUG''.

    Jeli program powoduje naruszenie ochrony pamici i powstaje plik
    ,,core'', postpuj zgodnie z instrukcjami pokazanymi na ekranie --
    uruchom ,,gdb ekg core'', przylij to, co si pojawi. Potem wydaj
    polecenie ,,bt'' i jego wynik rwnie zacz do listu. Jeli bd
    moe mie co wsplnego z sieci, wylij utworzony plik ,,debug''.

    Jeli program si zawiesi, nie reaguje na nic i zajmuje 100% czasu
    procesora, w innym oknie terminala wydaj polecenie ,,strace -p <pid>'',
    gdzie <pid> to numer procesu ekg (uzyskasz go poleceniem ,,ps x'')
    i wylij ostatnie 20 linii.

    Informacj o bdzie naley przesya na list ekg-users (nie trzeba
    si na ni zapisywa, szczegy niej), poniewa w ten sposb dostan
    j (prawie) wszyscy autorzy kodu. Moliwe te, e ktry z uytkownikw
    natkn si na to samo i wie, jak sobie z tym poradzi.

RDA

    Snapshoty kodu s dostpne pod adresem http://ekg.chmurka.net/
    Jeli nie wystpi adne trzsienie ziemi, brak prdu ani barykady na
    drogach, powinny by robione co 24 godziny, wieczorem.

    Poza snapshotami, co jaki czas bd umieszczane na serwerze kolejne
    wersje klienta. Ze wzgldu na organizacj prac nad programem, w praktyce
    nie bd si one rni znacznie od snapshotw. Przed wydaniem kadej
    wersji wstrzymane bdzie dodawanie nowych opcji, by skupi si na
    usuwaniu bdw. Poza tym, uatwi to prac niektrym osobom zajmujcym
    si tworzeniem paczek dla dystrybucji -- zamiast uaktualniania ich do
    nowych snapshotw, bd miay moliwo pakowania ,,stabilnych'' wersji.

    Cz kodu jest adnie udokumentowana, cz nie. Komentarze czasami
    s bardzo gupie, ale jeli si do trzeciej rano siedzi nad dziwnym
    segfaultem, ciko si pohamowa. Jeli napiszesz jakiegokolwiek
    klienta, frontend czy co takiego, daj zna -- odnonik do projektu
    zostanie umieszczony na stronie ekg.

LISTA DYSKUSYJNA

    Istnieje lista dyskusyjna dla uytkownikw ekg o adresie 
    ekg-users@lists.ziew.org. Aby si zapisa, naley wej na 
    stron o adresie:

	http://lists.ziew.org/mailman/listinfo/ekg-users

    oraz postpowa wedug instrukcji tam zawartych.

AUTORZY

    Wymienione osoby miay mniejszy lub wikszy wpyw na rozwj biblioteki
    i klienta. Niektrzy pisali kod, pomagali analizowa protok, testowali
    na rnych systemach, inni podsyali patche i bugreporty. Jeli kto
    zosta pominity, niech da zna. W kadym razie za to, jak wyglda ekg,
    odpowiedzialni s (w porzdku alfabetycznym):

	Marek Antoniak <kfazi@kfazi.polnet.trzepak.pl>
	Wojciech Bojdo <wojboj@htcon.pl>
	Kamil Brzeziski <carnil@fordon.pl>
	Tomasz Chiliski <chilek@chilan.com>
	Marcin Chojnowski <martii@obgyn.edu.pl>
	Piotr Domagalski <szalik@szalik.net>
	Micha Dorociski <zwierzak@venus.ci.uw.edu.pl>
	Tomasz Dudzisz <eileen@ds1.agh.edu.pl>
	Piotr Figiel <feeg@psychodelic.org>
	Rafa Florek <raf@regionet.regionet.pl>
	Artur Gawryszczak <gawrysz@camk.edu.pl>
	Stanisaw Gurgacz <sgurgacz@o2.pl>
	Darek Jackowski <ascent@home.pl>
	Rafa Janiczek <jojo@dexter.zst.bytom.pl>
	Dawid Jarosz <dawjar@poczta.onet.pl>
	Tomasz Jarzynka <tomee@cpi.pl>
	Kuba Jermak <kooba@irc.pl>
	Jarosaw Kamper <jack@jack.eu.org>
	Asia Kaniewska <kj_asia@wp.pl>
	Wojtek Kaniewski <wojtekka@irc.pl>
	Maciej Korze <maciekk@linux.sky.pl>
	Pawe Kot <pkot@linuxnews.pl>
	Marek Kozina <klith@irc.pl>
	Adam Kruszewski <phantom@linux.bydg.org>
	Piotr Kupisiewicz <deli@rzepaknet.us>
	Adam Ludwikowski <adam.ludwikowski@wp.pl>
	Jakub Martyski <jakub@ceto.pl>
	Pawe Maziarz <drg@go2.pl>
	Marcin Mikua <meecash@meecash.prv.pl>
	Arkadiusz Mikiewicz <arekm@pld-linux.org>
	Jacek Osiecki <joshua@ceti.pl>
	Robert Osowiecki <magic.robson@rassun.art.pl>
	Adam Osuchowski <adwol@polsl.gliwice.pl>
	Marcin Owsiany <porridge@debian.org>
	Maurycy Pawowski <maurycy@kocham.cie.gov.pl>
	Artur Pietruk <arturp@plukwa.net>
	Jacek Pospychaa <tri10o@bsod.org>
	Pawe Pruszkowski <arim@botrm.org>
	Jacek Rembisz <jr178783@zodiac.mimuw.edu.pl>
	Rafal Roszak <rmrmg@wp.pl>
	Krzysztof Skadzie <coxoc@coxoc.org>
	Rafa Skoczylas <nils@secprog.org>
	Adrian Smarzewski <adrians@aska.com.pl>
	Walerian Sokoowski <ws171913@yahoo.com>
	Piotr Stolc <socrtp@sedez.iq.pl>
	Tomasz Torcz <zdzichu@irc.pl>
	Leszek Urbaski <tygrys@moo.pl>
	Robert J. Wony <speedy@ziew.org>
	Krzysztof Wjtowicz <misiolek@misiolki.prv.pl>
	Adam Wysocki <gophi@ekg.chmurka.net>
	Piotr Wysocki <wysek@linux.bydg.org>

$Id: README,v 1.123.2.1 2006/08/24 18:57:51 porridge Exp $
