Konfiguracja czytnika tin z polskimi znakami
Copyright (C) 2005-2008 Adam Wysocki <gophi at chmurka.net>
- Wstęp
- Co będzie potrzebne
- Skąd ściągnąć
- Przed kompilacją
- Kompilacja
- Konfiguracja
- Testujemy
- Nano i kolory
- GPG
- Automatyczne generowanie taxów (pl.listserv.chomor-l)
- Changelog
- Copyright i autor
1. Wstęp
Tin jest wygodnym, tekstowym czytnikiem news dla systemów uniksowych (Linux,
BSD i inne), ale często problemy sprawia jego prawidłowa konfiguracja. Nękany bezsennymi
nocami postanowiłem przepisać to mini-howto. Jego poprzednia wersja, napisana pod wpływem
kolejnego maila z serii „jak to skonfigurować”, cieszyła się pewnym
powodzeniem i paru osobom pomogła, więc może teraz będzie jeszcze lepiej :) Wszystkie
uwagi, skargi, wnioski i piwo są mile widziane pod adresem na dole tego dokumentu.
2. Co będzie potrzebne
Z potrzebniejszych rzeczy: Podstawowe umiejętności związane z systemam uniksowymi (nie
musisz nazywać się Linus Torvalds ani zjadać plików .c na śniadanie, ale umiejętność
edycji plików, wydawania poleceń i rozumienia podstawowych błędów będzie bardzo wskazana),
działający kompilator (gcc razem z nagłówkami biblioteki standardowej i binutils), make,
bison, biblioteka ncurses razem z nagłówkami (libncurses i libncurses-dev), jakieś narzędzie
do ściągania plików (wget), edytor tekstu (wybór jest kwestią gustu i przyzwyczajeń, ale
jeżeli jeszcze nie masz swojego ulubionego, to polecam GNU nano),
dostęp do serwera news i odrobina cierpliwości. Jeśli twój system nie radzi
sobie z polskimi znakami, oczywiście powinieneś go nauczyć - polecam
Polską Stronę Ogonkową.
3. Skąd ściągnąć
Samego tina możesz ściągnąć z www.tin.org. Chciałbym
napisać, że warto używać mirrorów w Polsce (obecnie Sunsite ICM
i CI TASK), bo jest do nich szybszy
dostęp, ale nie napiszę, bo z tego co widzę te mirorry mają niekompletne i nieaktualne
repozytorium tina (jeśli ta sytuacja się zmieni, powiadom mnie o tym a zaktualizuję tę
informację). Dostępne są dwie wersje tina: stabilna
i niestabilna. Jak to
zwykle bywa, stabilna zawiera dobrze przetestowaną funkcjonalność i jest bardzo mało
prawdopodobne, że stabilny tin wyłoży się podczas pracy, natomiast niestabilna jest dla
tych, którzy lubią eksperymentować oraz potrafią zaraportować (albo poprawić) błędy w
tinie. Wersja niestabilna zawiera więcej opcji i jest generalnie nowsza - kosztem
stabilności właśnie (chociaż mi się wyłożyła może ze trzy razy w ciągu dwóch lat
używania). Wybór należy do ciebie.
Jeśli używasz Debiana, możesz wpisać polecenie
apt-get install gcc libc6-dev make bison wget nano libncurses5 libncurses5-dev
i zapomnieć o sprawie :) Jeśli nie, a twój system wspiera pakiety albo porty, zajrzyj
do jego dokumentacji, w jaki sposób zainstalować potrzebne pakiety. Jeśli wszystko inne
zawiedzie, poniżej masz linki do źródeł konkretnych pakietów GNU.
Uff... No i sam tin, linki podane powyżej, ale dla przypomnienia:
4. Przed kompilacją
Domyślnie tin jest kompilowany bez symboli debugowania i stripuje swoją binarkę po
instalacji. Jeśli nie wiesz, co właśnie zostało napisane to nie musisz niczego
zmieniać - stripnięta binarka jest szybsza i mniejsza kosztem braku szczegółowych
informacji na temat ewentualnego wyłożenia się. Jeśli mimo wszystko chcesz skompilować
tina z symbolami debugowania i nie stripować binarki przy instalacji, wyedytuj plik
src/Makefile.in dopisując do CFLAGS opcję -g (to spowoduje generowanie symboli
debugowania dla gdb) i usuwając -s z opcji INSTALL (to spowoduje, że binarka nie
będzie stripowana podczas instalacji). Dla leniwych poniżej gotowy patch (jeśli
twoja przeglądarka zamienia taby na spacje, pamiętaj o zamienieniu z powrotem).
--- src/Makefile.in
+++ src/Makefile.in
@@ -60 +60 @@
-CFLAGS = @CFLAGS@
+CFLAGS = @CFLAGS@ -g
@@ -385 +385 @@
- @$(INSTALL) -s $(BINDIR)/$(EXE) $(DESTDIR)$(INS_BINARY_DIR)/$(EXE)
+ @$(INSTALL) $(BINDIR)/$(EXE) $(DESTDIR)$(INS_BINARY_DIR)/$(EXE)
5. Kompilacja
Program kompiluje się w miarę standardowo - najpierw ./configure, potem make build
a na końcu make install. To jednak za mało. Żeby tin prawidłowo widział polskie znaki,
trzeba odpowiednio skonfigurować kompilację. Warto zacząć od takich opcji (wersja
łatwa do wklejenia):
./configure \
--prefix=/usr/local \
--with-editor=/usr/bin/nano \
--enable-nntp-only \
--with-ncurses \
--with-domain-name=nie.umiem.zmieniac.domyslnych.opcji \
--disable-mime-strict-charset \
--with-mime-default-charset=ISO-8859-2 \
--with-nntp-default-server=news.chmurka.net \
--disable-nls \
--disable-locale
Oczywiście powinieneś dostosować powyższe opcje do własnych potrzeb - szczególnie
prefiks (jeśli nie robisz kompilacji dla całego serwera, a jedynie dla swojego konta,
ustaw --prefix=$HOME), edytor (u mnie jest to /usr/bin/nano, u ciebie może być inny)
i domenę (twoja domena, u mnie chmurka.net, jeśli nie wiesz co wpisać to wpisz np.
localdomain.invalid). Jeśli configure się powiedzie to potem powinno pójść gładko -
make build, make install (w zależności od ustawionego prefiksu może wymagać uprawnień
roota) i czysty, świeży tin znajdzie się tam, gdzie mu kazałeś :)
6. Konfiguracja
Po pierwszym uruchomieniu tin utworzy katalog .tin w twoim katalogu domowym. Znajdziesz
tam lokalne pliki konfiguracyjne - z ciekawszych tinrc (główny plik konfiguracyjny),
headers (nagłówki dodawane do postów) i attributes (tam można ustawić różne atrybuty
dla poszczególnych hierarchii news, np. fakt, że w pl i alt.pl domyślnym kodowaniem
jest ISO-8859-2). Poświęć chwilę na przejrzenie i wyedytowanie tinrc - naprawdę
warto.
Poniżej konfiguracja .tin/attributes sprawiająca, że polskie znaki w postach bez
zadeklarowanego zestawu znaków (wszyscy szerookim uśmiechem pozdrawiamy domyślną
konfigurację programu Outlook Express :)) są widziane jako ISO-8859-2.
scope=pl.*,alt.pl.*
mm_network_charset=ISO-8859-2
undeclared_charset=ISO-8859-2
7. Testujemy
Nadeszła czas na najśmieszniejszą część - testowanie tina :) Jeśli nie zdefiniowałeś
zmiennej środowiskowej NNTPSERVER ani nie podałeś przy uruchamianiu opcji -g, to tin
po uruchomieniu będzie się łączył z serwerem news podanym przy konfigurowaniu kompilacji
(dla ciekawskich - jeśli będzie zdefiniowana zmienna NNTPSERVER i podana opcja -g, to tin
skorzysta z opcji -g). Jest 6:10, za chwilę powinienem iść do pracy i z autora tekstów
zmienić się w autora kodu, więc na razie oszczędzę dłuższego tekstu na temat testowania
tina (tym bardziej że musiałbym zahaczyć o podstawy jego używania, a to dużo pisania),
więc dodam tylko, że w przypadku braku innych możliwości możesz testować tina na grupie
chmurka.test na mojej wirtualnej chmurce - news.chmurka.net.
8. Nano i kolory
Jeśli twoim ulubionym edytorem jest vi albo vim, to nawet nie trać czasu na czytanie
tego punktu - i tak cię nie przekonam :) Jeśli natomiast używasz pico, pomyśl nad
przejściem na nano i dopisaniem do nanorc moich definicji kolorów.
Bez zagłębiania się w szczegóły - kawałek nanorc sprawiający, że kolory w nano wywołanym
z poziomu tina będą takie, jak w tinie:
## Gophi - tin
syntax "tin" "^/home/gophi/\.article\..*"
color brightred start="^From: " end="^$"
color blue start="^-- $" end="^$"
color brightyellow "^Spinacz biurowy, .*!$"
color green "^>.*"
color yellow "^>.*>.*"
color blue "^>.*>.*>.*"
Jeśli nie będzie działało (a domyślnie NIE będzie działało), zmień katalog w linii
syntax na ten, w którym tin umieszcza artykuły do edycji przez nano. U mnie to jest
/home/gophi/.article.pid (gdzie pid jest identyfikatorem procesu pine), u ciebie
na pewno będzie inny. Jeśli masz inną wrotkę (lead-in, czyli tekst wprowadzający
do artykułów), wyedytuj (lub w ogóle usuń) linię zawierającą kolor brightyellow.
Właściwie dla pełnej zgodności z kolorystyką tina nie powinno jej być, ale jest,
bo ładniej wygląda :)
9. GPG
GPG do współpracy z tinem wymaga małego wrappera. Napisałem go dawno temu, potem
okazało się, że jest niekompletny i czegoś nie obsługuje (nie pamiętam czego,
chyba podpisywania wiadomości forwardowanych jako maile do większej niż jedna
ilości osób) a potem w ogóle zrezygnowałem z GPG, ale jeśli ci się przyda, to
proszę bardzo: echo $* | sed s/--local-user\ gophi@studio.tpi.pl// | xargs
/usr/local/bin/gpg. Jeśli masz lepszy to wyślij, wrzucę zamiast tego.
10. Automatyczne generowanie taxów (pl.listserv.chomor-l)
W skrócie - pisząc na pl.listserv.chomor-l do każdego posta trzeba dołączać dowcip.
Są serwisy oferujące po każdym przeładowaniu strony inny losowy dowcip (chociażby
www.dowcipy.pl albo
dowcipy.onet.pl), a integracja ich z tinem jest
bardzo prosta. Ściągamy mój szumnie, dumnie nazwany zestaw plików auto-taxi
(http://www.chmurka.net/tax/, wszystkie pliki
oprócz dowcip.php i dowcip.phps), kompilujemy poleceniem make, modyfikujemy skrypty .sh
tak, żeby odpowiadały naszej konfiguracji (katalogi będą się różniły) i modyfikujemy
.tin/attributes, dopisując do niego (znowu - pamiętając o podmianie katalogów):
scope=pl.listserv.chomor-l
sigfile=!~/public_html/tax/chomor.sh
Potem jeszcze trzeba wyłączyć sigdashes w .tin/tinrc (sigdashes=OFF) tak, żeby nie
wrzucać taksów jako sygnaturki (bo to nie sygnaturka), dopisać sigdashes (dwie kreski
i spację) na początku ~/.signature i to tyle, powinno działać :)
11. Changelog
Nie mam pełnego bo najzwyczajniej w świecie nie prowadziłem :) W kolejności od najnowszych
zmian:
- 2010-06-19 v2.4 - Aktualizacja maila.
- 2008-09-08 v2.3 - Aktualizacja linków.
- 2006-02-21 v2.2 - Poprawienie literówki w przykładach kolorowania składni w nano (thx jarus).
- 2006-02-21 v2.1 - Dopisanie automatycznego generowania taxów.
- 2006-02-07 v2.0 - Przepisanie od początku, stworzenie dokumentu html.
- 2006-02-06 v1.6 - Dopisanie schematu kolorów do nano.
- 2005-08-xx v1.5 - Kilka poprawek.
- ...
- 2005-05-03 v1.0 - Wersja pierwsza, dziewicza, w pliku txt.
Najnowszą wersję zawsze znajdziesz pod adresem
http://www.chmurka.net/t/tin/.
12. Copyright i autor
Mini-howto w czynie społecznym popełnił Adam Wysocki <gophi at chmurka.net>.
Autor nie ponosi żadnej odpowiedzialności za nieprawidłowe wykorzystanie informacji
zawartych w tym dokumencie ani żadne szkody, które mogą wyniknąć na skutek czytania
lub stosowania zawartych tutaj informacji. Dokument można rozpowszechniać na zasadach
określonych w licencji Creative Commons 2.5 Attribution (cc-2.5-by).
Jeśli znalazłeś w tym dokumencie jakiś skandaliczny, wynikający z oczywistej, beznadziejnej
ignorancji błąd, masz ochotę postawić mi pizzę, wysłać piwo albo nagle poczułeś nieodpartą
chęć napisania mi potoku komplementów, możesz zaspokoić swój głód artystycznej ekspresji
wysyłając maila na adres powyżej. Więcej informacji na temat kontaktu ze mną znajdziesz
tutaj.