Eksperymentalny Klient Gadu-Gadu (C) Copyright 2001-2003 Autorzy (peÅna lista poniżej) LICENCJA Program jest udostÄpniony na zasadach licencji GPL v2, której treÅÄ zaÅÄ czono w pliku src/COPYING. Niektóre pliki mogÄ byÄ objÄte innÄ licencjÄ zgodnÄ z GPL v2. Fakt ten jest odnotowany na poczÄ tku pliku. WyjÄ tkiem od licencji GPL v2 jest możliwoÅÄ kompilacji, konsolidacji i używania programu z bibliotekÄ OpenSSL autorstwa Projektu OpenSSL (The OpenSSL Project) dostÄpnÄ pod adresem http://www.openssl.org/ INSTALACJA RozpakowaÄ poleceniem ,,tar zxvf ekg2-XXX.tar.gz'' (gdzie XXX to wersja programu lub data wykonania snapshotu), wejÅÄ do utworzonego katalogu. JeÅli mamy uprawnienia administratora na danej maszynie, wywoÅujemy ,,./configure'', potem ,,make'' i z prawami roota ,,make install''. JeÅli chcemy zainstalowaÄ program w katalogu domowym, do polecenia configure dodajemy parametry ,,--prefix=$HOME/ekg2 --mandir=$HOME/ekg2/share/man''. Po zainstalowaniu w ten sposób, program gotowy do uruchomienia bÄdzie znajdowaÅ siÄ w katalogu ekg2/bin w katalogu domowym. Proste? Proste. Po pierwszym uruchomieniu EKG2 powie, jak go skonfigurowaÄ. Program korzyst domyÅlnie z pluginu wyjÅciowego ncurses. Interfejs readline w chwili obecnej nie jest gotowy do użycia. Do instalacji konieczne jest zainstalowanie wszelkich narzÄdzi wymaganych do tego: kompilator, preprocesor, linker, pliki nagÅówkowe, biblioteki itd. Jeżeli ./configure pokaże jakieÅ bÅÄdy skontaktuj siÄ ze swoim administratorem. ekg2 powinien dziaÅaÄ na wiÄkszoÅci systemów uniksowych, jak Linux, *BSD, SunOS, IRIX itp. lecz czasami przy dodawaniu nowych funkcji nie sposób sprawdziÄ ich zachowania na wszystkich popularnych systemach. W takim wypadku przydatne sÄ informacje o bÅÄdach z dokÅadnym wskazaniem systemu i architektury. UÅ»YCIE Jest na tyle intuicyjne, że nie powinno sprawiÄ problemów (wszyscy betatesterzy poradzili sobie bez jakiejkolwiek dokumentacji). Interfejs jest wzorowany na irssi. DopeÅnianie tabem jest dostÄpne w wiÄkszoÅci komend. Komendy można wywoÅywaÄ skrótami, o ile sÄ one jednoznaczne. WysyÅanie wiadomoÅci komendÄ ,,msg'', otwarcie okna rozmowy komendÄ ,,query''. Informacje o rozmówcach ,,find'' w oknie rozmowy. Szukanie tÄ samÄ komendÄ , ale z różnymi parametrami. ,,help'' Twoim przyjacielem. JeÅli dana komenda ma różne opcje, pomaga ,,help <komenda>''. By wysÅaÄ kilkulinijkowÄ wiadomoÅÄ w interfejsie ncurses, wciÅnij Ctrl-Enter. W readline zamiast treÅci wpisz ,,\'' (backslash) i zakoÅcz liniÄ z samÄ kropkÄ (szczegóÅy poniżej, w rodziale ,,KLAWIATURA''). Program można skonfigurowaÄ pod wieloma wzglÄdami, a wszystkie możliwe ustawienia, które zmienia siÄ poleceniem ,,set'', sÄ opisane w pliku vars.txt. Pomoc dotyczÄ cÄ poszczególnych ustawieÅ można uzyskaÄ także poprzez polecenie ,,help set <zmienna>''. JeÅli dana komenda przyjmuje ,,--parametr'', można użyÄ również skrótu ,,-p'', gdy nie powoduje to niejednoznacznoÅci. Uwaga! Brana pod uwagÄ jest zwykle pierwsza litera, wiÄc jeÅli wpiszesz ,,list --gone'', ekg potraktuje to jako ,,list --get''. Komendy można wysyÅaÄ także przez potok lub internet. Wymagana jest do tego wtyczka remote control. Åadowanie /plugin +rc ustawienie potoku: /set rc:remote_control pipe:/home/user/named_pipe KLAWIATURA JeÅli nie masz doÅwiadczenia w obsÅugiwaniu programów z emacsowÄ filozofiÄ obsÅugi klawiatury, oto lista obsÅugiwanych klawiszy: Up, Down przeglÄ danie historii poleceÅ Left, Right poruszanie siÄ po aktualnej linii Ctrl-A, Home idź na poczÄ tek linii Ctrl-B pogrubiona czcionka [3] Ctrl-D, Delete usuÅ znak pod kursorem Ctrl-H, Backspace usuÅ znak przed kursorem Ctrl-I, Tab dopeÅnianie Ctrl-K usuwa tekst od kursora do koÅca linii Ctrl-L czyszczenie/odÅwieżanie ekranu Ctrl-M, Enter zatwierdzenie linii Ctrl-Q odblokowanie terminala Ctrl-S zablokowanie terminala Ctrl-T pochyÅa czcionka [3] Ctrl-V pozwala wpisaÄ dowolny znak [2] Ctrl-U usuniÄcie aktualnej linii Ctrl-W, Alt-Backspace usuniÄcie sÅowa przed kursorem Ctrl-Y wklejenie ostatnio usuniÄtego bloku Ctrl-Z przeniesienie programu w tÅo Ctrl-_ podkreÅlona czcionka [3] Alt-B sÅowo do tyÅu Alt-D usuniÄcie sÅowa za kursorem Alt-F sÅowo do przodu Alt-cyfra przeÅÄ czenie do podanego okna F1 pomoc F2 krótka lista dostÄpnych i zajÄtych F12 lub Alt-` przeÅÄ czenie do okna debugowania Lista ta obejmuje klawisze obsÅugiwane przed interfejs readline i ncurses, i nie zawiera kombinacji specyficznych dla tego pierwszego. Interfejs readline obsÅuguje również inne kombinacje klawiszy. DokÅadna lista znajduje siÄ w stronie manuala ,,readline'' w rozdziale ,,DEFAULT KEY BINDINGS''. Dodatkowo: Ctrl-D zamyka rozmowÄ i anuluje wprowadzanie wiadomoÅci wielolinijkowej Interfejs ncurses obsÅuguje kilka dodatkowych kombinacji: Page Up, Page Down przewijanie ekranu Ctrl-F, Ctrl-G j.w. Alt-A przejdź do pierwszego aktywnego okna Alt-N utwórz nowe okno Alt-K zamknij aktualne okno Alt-G ignoruj aktualnego rozmówcÄ Alt-Q do Alt-P przeÅÄ cza do okna 11 do 20 Ctrl-Fn przeÅÄ cza do podanego okna (konsola FreeBSD) Ctrl-Enter przejÅcie do trybu wielolinijkowego Ctrl-P poprzednie okno Ctrl-N kolejne okno F3 wÅÄ cza lub wyÅÄ cza listÄ kontaktów [1] F4 kolejna grupa w liÅcie kontaktów Po wejÅciu do trybu wielolinijkowego poruszamy siÄ za pomocÄ kursorów i zatwierdzamy ponownym wciÅniÄciem Ctrl-Enter. By anulowaÄ, wciskamy Esc i czekamy chwilÄ. JeÅli kombinacja ta nie jest obsÅugiwana przez terminal, można używaÄ Alt-Enter lub wcisnÄ Ä Esc i zaraz po nim Enter. Dodatkowo, okreÅlonym kombinacjom klawiszy można przypisaÄ różne komendy za pomocÄ polecenia ,,bind''. Ze wzglÄdu na niestandardowe zachowanie niektórych typów terminali, mogÄ wystÄ piÄ problemy z kombinacjÄ Alt-Shift-O lub Alt-O przy wÅÄ czonym Caps Locku. [1] Klawisz F3 zmienia wartoÅÄ zmiennej ,,contacts''. JeÅli wartoÅÄ tej zmiennej byÅa równa 0, wciÅniÄcie klawisza zmienia jej wartoÅÄ na 2. JeÅli byÅa równa 1, kolejne wciÅniÄcia F3 bÄdÄ zmieniaÅy wartoÅÄ z 1 na 0 i z 0 na 1. [2] Po wciÅniÄciu Ctrl-V należy wcisnÄ Ä klawisz, który chcemy wkleiÄ. DziÄki temu możliwe jest wpisanie znaków typu Escape, Ctrl-L czy Ctrl-U. [3] W miejscu wciÅniÄcia klawisza pojawi siÄ znak oznaczajÄ cy kod klawisza w negatywie. PLIK KONFIGURACYJNY KolejnoÅÄ Åadowania plików konfiguracyjnych jest nastÄpujÄ ca: 1) /etc/ekg.conf (lub z innego katalogu wskazanego przez opcjÄ --sysconfdir przekazanÄ skryptowi ./configure), 2) ~/.ekg/config lub ~/.ekg/<profil>/config, 3) /etc/ekg-override.conf DziÄki temu administrator może wymusiÄ pewne opcje na klientach użytkowników, jak na przykÅad ,,server'' czy ,,proxy''. Globalne pliki konfiguracyjne można 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 mówi, co znajduje siÄ w którym pliku dokumentacji. Dobra rada numer trzy: zanim zaczniesz narzekaÄ, że czegoÅ nie ma, poszukaj w pliku ChangeLog. Dobra rada numer cztery: jeÅli jesteÅ nowym użytkownikiem, nie pytaj siÄ, czy coÅ da siÄ zrobiÄ, albo że przydaÅoby siÄ. Program jest rozwijany od ponad roku, wielu ludzi korzysta z niego na co dzieÅ, wiÄc wiÄkszoÅÄ ,,bajerów'', o których możesz pomyÅleÄ, na pewno jest już w programie. WYSYÅANIE SMSÃW ekg korzysta z zewnÄtrznego programu do wysyÅania smsów. Nie ma najmniejszego sensu dublowania tej funkcji, skoro i tak wiÄkszoÅÄ ma już zainstalowane odpowiednie skrypty/programy/cokolwiek. Wystarczy podaÄ ÅcieżkÄ 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/ speÅnia podane wymagania. SYNTEZA MOWY ekg potrafi korzystaÄ z zewnÄtrznej aplikacji do syntezy mowy, by odczytywaÄ wszystko, co trafia na ekran. Wystarczy ustawiÄ zmiennÄ ,,speech_app'' na nazwÄ programu czytajÄ cego tekst z stdin. Jej ustawienie spowoduje również zmianÄ wyglÄ du programu, by wyÅwietlane komunikaty staÅy siÄ Åatwiejsze do wymówienia. PrzykÅadowe 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'' można pobraÄ z http://cvs.pld.org.pl/SOURCES/powiedz_0.2.tgz ZNANE PROBLEMY JeÅli nie możesz wpisywaÄ polskich liter w interfejsie readline, dopisz do pliku /etc/inputrc lub ~/.inputrc nastÄpujÄ ce linie: set meta-flag on set convert-meta off set output-meta on ROZPOZNAWANIE PÅCI Krótka wersja: JeÅli ekg źle rozpoznaje pÅeÄ, wpisz imiÄ do listy kontaktów. W wiÄkszoÅci przypadków pomoże. No tak, nie masz pojÄcia, jak to zrobiÄ? ,,list pseudonim -f imiÄ''. PomogÅo? Åwietnie. Nie pomogÅo? Czytaj dalej. DÅuga wersja: JednÄ z najbardziej kontrowersyjnych cech programu jest automatyczne rozpoznawanie pÅci na podstawie ostatniej litery imienia lub gdy jest ono nieznane, pseudonimu. Gdy ostatniÄ literÄ jest ,,a'', ekg uznaje, że dana osoba jest kobietÄ . Na przykÅad, jeÅli Twój znajomy ma pseudonim ,,Kuba'', wpisz do listy kontaktów imiÄ ,,Jakub''. Problemy mogÄ wystÄ piÄ z rzadko spotykanymi imionami typu Barnaba czy Mercedes. W takim wypadku należy do imienia dopisaÄ (chociażby po ukoÅniku lub w nawiasie) literÄ ,,a'' dla kobiet lub innÄ niż ,,a'' dla mÄżczyzn. ZGÅASZANIE BÅÄDÃW JeÅli zauważysz jakiÅ bÅÄ d, sprawdź najnowszÄ wersjÄ. WiÄkszoÅÄ bÅÄdów jest poprawiana w ciÄ gu jednego lub dwóch dni od chwili pojawienia siÄ. Przy zgÅaszaniu bÅÄdu, zaznacz, w której wersji wystÄpuje. Nie pisz o sprawach, które sÄ już wymienione w pliku TODO, bo doskonale wiemy, że coÅ trzeba poprawiÄ. Zaznacz, co to za system, jaka dystrybucja, jaka wersja. JeÅli bÅÄ d jest powtarzalny i zwiÄ zany z sieciÄ , przejdź do okna debug i przyÅlij to, co zostaje tam wyÅwietlone przed samym wystÄ pieniem bÅÄdu (zwykle ~20 linijek wystarczy). Możesz też skorzystaÄ z ukrytego polecenia ,,_debug_dump'', które zapisze ostatnie linie z debug do pliku lub też przed uruchomieniem ekg wpisaÄ nazwÄ pliku, do którego przekierowany bÄdzie debug, do zmiennej systemowej ,,EKG_DEBUG''. JeÅli program powoduje naruszenie ochrony pamiÄci i powstaje plik ,,core'', postÄpuj zgodnie z instrukcjami pokazanymi na ekranie -- uruchom ,,gdb ekg core'', przyÅlij to, co siÄ pojawi. Potem wydaj polecenie ,,bt'' i jego wynik również zaÅÄ cz do listu. JeÅli bÅÄ d może mieÄ coÅ wspólnego z sieciÄ , wyÅlij utworzony plik ,,debug''. JeÅli 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 wyÅlij ostatnie 20 linii. InformacjÄ o bÅÄdzie należy przesyÅaÄ na listÄ ekg2-users (nie trzeba siÄ na niÄ zapisywaÄ, szczegóÅy niżej), ponieważ w ten sposób dostanÄ jÄ (prawie) wszyscy autorzy kodu. Możliwe też, że któryÅ z użytkowników natknÄ Å siÄ na to samo i wie, jak sobie z tym poradziÄ. ŹRÃDÅA Snapshoty kodu sÄ dostÄpne pod adresem http://ekg2.org/download.php JeÅli nie wystÄ pi żadne trzÄsienie ziemi, brak prÄ du ani barykady na drogach, powinny byÄ robione co 24 godziny, wieczorem. Poza snapshotami, co jakiÅ czas bÄdÄ umieszczane na serwerze kolejne wersje klienta. Ze wzglÄdu na organizacjÄ prac nad programem, w praktyce nie bÄdÄ siÄ one różniÄ znacznie od snapshotów. Przed wydaniem każdej wersji wstrzymane bÄdzie dodawanie nowych opcji, by skupiÄ siÄ na usuwaniu bÅÄdów. Poza tym, uÅatwi to pracÄ niektórym osobom zajmujÄ cym siÄ tworzeniem paczek dla dystrybucji -- zamiast uaktualniania ich do nowych snapshotów, bÄdÄ miaÅy możliwoÅÄ pakowania ,,stabilnych'' wersji. CzÄÅÄ kodu jest Åadnie udokumentowana, czÄÅÄ nie. Komentarze czasami sÄ bardzo gÅupie, ale jeÅli siÄ do trzeciej rano siedzi nad dziwnym segfaultem, ciÄżko siÄ pohamowaÄ. JeÅli napiszesz jakiegokolwiek klienta, frontend czy coÅ takiego, daj znaÄ -- odnoÅnik do projektu zostanie umieszczony na stronie ekg. LISTA DYSKUSYJNA Istnieje lista dyskusyjna dla użytkowników ekg o adresie ekg-users@lists.ziew.org. Aby siÄ zapisaÄ, należy wejÅÄ na stronÄ o adresie: http://lists.ziew.org/mailman/listinfo/ekg2-users oraz postÄpowaÄ wedÅug instrukcji tam zawartych. AUTORZY Wymienione osoby miaÅy mniejszy lub wiÄkszy wpÅyw na rozwój biblioteki i klienta. Niektórzy pisali kod, pomagali analizowaÄ protokóÅ, testowali na różnych systemach, inni podsyÅali patche i bugreporty. JeÅli ktoÅ zostaÅ pominiÄty, niech da znaÄ. W każdym razie za to, jak wyglÄ da ekg, odpowiedzialni sÄ (w porzÄ dku alfabetycznym): Marek Antoniak <kfazi@kfazi.polnet.trzepak.pl> Wojciech BojdoÅ <wojboj@htcon.pl> Tomasz ChiliÅski <chilek@chilan.com> Marcin Chojnowski <martii@obgyn.edu.pl> Piotr Domagalski <szalik@szalik.net> MichaÅ DorociÅski <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> StanisÅaw Gurgacz <fig@pd21.tarnobrzeg.sdi.tpnet.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> JarosÅaw 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 MartyÅski <jakub@ceto.pl> PaweÅ Maziarz <drg@go2.pl> Marcin MikuÅa <meecash@meecash.prv.pl> Arkadiusz MiÅkiewicz <misiek@pld.org.pl> Jacek Osiecki <joshua@ceti.pl> Robert Osowiecki <magic.robson@rassun.art.pl> Adam Osuchowski <adwol@polsl.gliwice.pl> Maurycy PawÅowski <maurycy@kocham.cie.gov.pl> Artur Pietruk <arturp@plukwa.net> Jacek PospychaÅa <tri10o@bsod.org> PaweÅ Pruszkowski <arim@botrm.org> Jacek Rembisz <jr178783@zodiac.mimuw.edu.pl> Rafal Roszak <rmrmg@wp.pl> Krzysztof SkÅadzieÅ <coxoc@coxoc.org> RafaÅ Skoczylas <nils@secprog.org> Adrian Smarzewski <adrians@aska.com.pl> Walerian SokoÅowski <ws171913@yahoo.com> Piotr Stolc <socrtp@sedez.iq.pl> Tomasz Torcz <zdzichu@irc.pl> Leszek UrbaÅski <tygrys@moo.pl> Robert J. Woźny <speedy@ziew.org> Krzysztof Wójtowicz <misiolek@misiolki.prv.pl> Piotr Wysocki <wysek@linux.bydg.org> $Id$