Der Newsreader Tin

zum Vergrößern bitte auf das Bild klicken

Inhaltsverzeichnis des Beitrags

Über Tin

Tin basiert auf tass ?, ein Newsreader, der von Rich Skrenta programmiert wurde. Tin wurde am 23 August '91 von Iain J. Lea announced und wird u.a. von Urs Janßen maintained.
Der Name 'Tin' steht für "Tass + Iaian's Newsreader'.
Tin ist ein Newsreader für die Text-Konsole, der weit mehr Funktionen als tass ? hat.
Tin kann News sowohl von einem lokalen Newsserver als auch via NNTP lesen.
Tin ist Open Source Software und voll threadfähig.

Systemvoraussetzungen

Tin läuft unter verschiedenen Betriebssystemen, so unter allen Linux-Varianten als auch unter Mac OS X. Unter Windows ist er mit Hilfe des Environtments Cygwin lauffähig.

Liste der Betriebssysteme, unter denen Tin lauffähig ist:

  • Linux,
  • NetBSD,
  • FreeBSD,
  • kFreeBSD,
  • DragonFlyBSD,
  • OpenBSD,
  • BSDi,
  • SunOS, Solaris,
  • IRIX,
  • ULTRIX,
  • OSF1, Tru64,
  • AIX,
  • HP-UX;
  • SINIX, Reliant,
  • Unicos,
  • UXP/V,
  • SUPER-UX,
  • NEWS-OS,
  • A/UX,
  • NEXTSTEP,
  • Openstep,
  • Rhapsody,
  • Darwin.
  • QNX,
  • LynxOS,
  • Haiku,
  • Gnu Hurd,
  • DG/UX,
  • SEIUX,
  • RISC/os,
  • EP/IX,
  • System V/88,
  • UP-UX/V ,
  • MiNT,
  • Cygwin/Windows

Wo ist Tin erhältlich

Die Homepage von Tin befindet sich unter http://www.tin.org/, dort sind verschiedene Versionen, "stable" und "unstable" als tar-Archiv erhältlich. Allerdings kann Tin oft auch in jeder Linux-Distribution mit Hilfe des jeweiligen Paketmanagers auf einfachste Weise installiert werden. Unter Mac OS X kann man Tin über Fink oder MacPorts beziehen.

Installation von Tin

Installation unter Windows

Da Tin nicht direkt als installierbare Exe-Datei existiert, gibt es für Windows praktisch nur die Möglichkeit der Installation unter Cygwin, einer Linux-ähnlichen Systemumgebung für Windows. Es gibt zwar fertige Packages für Cygwin, jedoch sind das ältere Versionen von Tin.
Wer lieber einen aktuellen Tin unter Cygwin möchte, sollte sich unter Cygwin den tin-Source kompilieren.
Dazu werden einige Abhängigkeiten (Libraries) benötigt.
Siehe dazu weiter bei "Installation unter unioxiden Betriebssystemen".

Installation unter unioxiden Betriebssystemen

Für diverse Linux-Distributionen gibt es fertig gepackte Binaries, die sehr einfach mit dem jeweiligen Paketmanagement installiert werden können. Das (kleine) Problem bei fertigen Paketen liegt jedoch darin, dass oft nicht bestimmte Compilieroptionen verwendet wurden bei Packen der Pakete.
Wer sich lieber einen individuellen Tin mit individuellen Optionen beim Compilerlauf bauen möchte, sollte sich die folgenden Tipps durchlesen.

Der übliche Weg, einen Quelltext in ein Binary zu übersetzen ("compilieren"), geht über ./configure - make - sudo make install.
Im Fall von Tin könnte sicher auch ein "make" verwendet werden, indem man vorher in das Verzeichnis "src" wechselt, aber der elegantere Weg ist "make build".
Was "./configure" angeht, so werden die unten aufgeführten Optionen empfohlen, wenn man möglichst viele Möglichkeiten mit Tin verwenden möchte:

  ./configure --prefix=/usr --sysconfdir=/etc/tin --verbose --disable-echo --enable-prototypes
              --enable-nntp-only --with-screen=ncursesw --with-pcre=/usr/lib --enable-debug
              --enable-ipv6 --enable-mh-mail-handling --enable-break-long-lines --enable-cancel-locks
  make build

  sudo make install

  Anpassung der doc/tin.defaults (siehe 1)

  sudo make install_sysdefs
Hinweis:

Sollte es bereits beim "configure" zu Fehlermeldungen kommen, so ist dies in den meisten Fällen ein Hinweis auf fehlende Bibliotheken im System. Das Tin-configure sagt an, welche Librarieres fehlen. Diese sollten dann über das Paketmanagement zuerst nachinstalliert werden, und der ganze Vorgang ab "configure" wiederholt werden.

Bei diesen Optionen wird Tin nach /usr/bin installiert und es wird die "wide-Char-Version" von der Library "Curses" verwendet. Ausserdem wird Tin mit der Option "enable-mh-mail-handling" mailfähig. "enable-ipv6" schaltet die Möglichkeit ein, IPv6 mit Tin zu verwenden. "enable-debug" ist wichtig, um bei einer eventuellen Fehlersuche Debug-Texte erstellen zu können. "with-pcre=/usr/lib" setzt ein im System installiertes PCRE voraus, was in fast allen Fällen aktueller sein sollte, als das mit dem Tin-Source mitgelieferte PCRE. "enable-cancel-locks" schaltet die Erstellung von Cancel-Lock-Headern ein (2). Mit Hilfe einer Programmoption kann man zuguterletzt feststellen, mit welchen Optionen Tin compiliert wurde, als Beispiel sei hier eine Snapshotversion gezeigt:

  tin -V
  Version: tin 1.9.6 Ausgabe 20101003 ("Lochruan") Oct 21 2010 00:03:12
  Compiler:
          CC       = "gcc"
          CFLAGS   = "-g -O2 -g -m64 -fmessage-length=0 -D_FORTIFY_SOURCE=2 -fstack-protector
                      -funwind-tables -fasynchronous-unwind-tables -W -Wall -Wbad-function-cast
                      -Wcast-align -Wcast-qual -Wmissing-declarations -Wmissing-prototypes
                      -Wnested-externs -Wpointer-arith -Wshadow -Wstrict-prototypes -Wundef
                      -Wwrite-strings"
          CPP      = "gcc -E"
          CPPFLAGS = "-U_XOPEN_SOURCE -D_XOPEN_SOURCE=500 -DXTSTRINGDEFINES"
  Linker and Libraries:
          LD       = "gcc"
          LDFLAGS  = "-g"
          LIBS     = "-lncursesw    -lidn"
          PCRE     = "7.9 2009-04-11"
  Characteristics:
          +DEBUG +NNTP_ONLY -NO_POSTING -BROKEN_LISTGROUP +XHDR_XREF
          -HAVE_FASCIST_NEWSADMIN +ENABLE_IPV6 -HAVE_COREFILE
          -NO_SHELL_ESCAPE -DISABLE_PRINTING -DONT_HAVE_PIPING -NO_ETIQUETTE
          +HAVE_LONG_FILE_NAMES +APPEND_PID +HAVE_MH_MAIL_HANDLING
          +HAVE_ISPELL +HAVE_METAMAIL +HAVE_SUM
          +HAVE_COLOR -HAVE_PGP -HAVE_PGPK +HAVE_GPG
          +MIME_BREAK_LONG_LINES +MIME_STRICT_CHARSET +CHARSET_CONVERSION
          +MULTIBYTE_ABLE -NO_LOCALE
          +USE_CANLOCK -EVIL_INSIDE -FORGERY -TINC_DNS -ENFORCE_RFC1034
          -REQUIRE_BRACKETS_IN_DOMAIN_LITERAL -FOLLOW_USEFOR_DRAFT
Tin und die Message-ID

Mit den obigen Optionen wird Tin so generiert, dass er selbst keine Message-ID erstellt. Dies ist in jedem Fall die richtige Art und Weise, da die Message-ID (MID) dann vom jeweiligen Newsserver erstellt wird. In diesem Fall kann die MID aber auch von einem lokalen Newsserver (leafnode oder INN) erstellt werden. Falls ein Solcher nicht verwendet wird, erstellt halt der öffentliche Newsserver die MID.
Für fortgeschrittene User besteht aber auch die Möglichkeit, Tin so zu kompilieren, dass dieser selber die MID generiert. In diesem Fall verwendet Tin dann für den FQDN den Hostnamen des Betriebssystems. Ausserdem wird der jeweilige Name des Users im System, der aktuell verwendet wird, vor das "@" eingefügt.
Ein solcher Tin wird dann mit der Option "EVIL_INSIDE" kompiliert. Dies kann wie folgt gemacht werden:
Die Datei './src/Makefile.in' muß wie folgt editiert werden:
Im Abschnitt "# Compiler, linker & parser commands" muß
'FEATURES = # -DEVIL_INSIDE' in
'FEATURES = -DEVIL_INSIDE'
geändert werden.
Danach fortfahren mit dem wie oben beschriebenen Compiliervorgang.
Diese Option sollte nur von erfahrenen Usern verwendet werden, die wissen, wie man dem System einen korrekten FQDN vergibt als Hostnamen.

Konfiguration von Tin

Wenn Tin erfolgreich durch Kompilation oder Paketmanagement installiert worden ist, kann er danach leicht konfiguriert werden. Zunächst muss eine Systemvariable NNTPSERVER definiert werden. Je nach Shell wird dies durch

  • [~/.bashrc] export NNTPSERVER=Newsserver.Provider.tld

oder

  • [Mac OS X:~/.bash_profile] NNTPSERVER=Newsserver.Provider.tld; export NNTPSERVER

oder

  • [Mac OS X:~/.cshrc] setenv NNTPSERVER Newsserver.Provider.tld

bewerkstelligt.

(Soll zusätzlich der Newsserver leafnode verwendet werden, muss "Newsserver.Provider.tld" durch "localhost" ersetzt werden.)

Danach kann Tin gestartet werden (je nach Bauweise des Binaries mit dem Befehl "rtin" oder "tin -r" oder aber beim Lesen vom local Spool mit "tin")

Tin legt automatisch beim ersten Start die Datei "~/.tin/tinrc" an.

Nun sollte weiter konfiguriert werden, in dem mit Shift-M ins Konfigurationsmenü gesprungen wird. Dort gibt es dann 145 Punkte, die einzeln abgearbeitet werden sollten. Der wichtigste Konfigurationspunkt ist dabei "Mailadresse (und Name)" (deutsche Version). Hier gibt man sein From ein in der Form "E-Mail-Adresse (Vorname Name)".

Die Zahlen vor den einzelnen Punkten weichen von Tin-Version zu Tin-Version sowie von Deutscher Sprache zu Englischer Sprache ab; daher werden im Folgenden sowohl die deutsche als auch die jeweilige englische Version aufgeführt.

    86 Mailadresse (und Name): E-Mail-Adresse (Vorname Name)
    90 Mail address (and fullname)

Des Weiteren wichtig ist die Angabe, welcher externe Editor für das Verfassen der Postings verwendet werden soll. Hier kann entweder jed oder vim z.B. verwendet werden. Es handelt sich um "130 Aufruf Ihres Editors". Wer gerne vim verwendet, der sollte diesen wie folgt dort angeben: "vim -c 'set tw=72' +%N %F":

   130 Aufruf Ihres Editors: vim -c 'set tw=72' +%N %F
   133 Invocation of your editor

Dies weist vim an, nach 72 Zeichen automatisch zu umbrechen und zwar schon während der Eingabe eines Postings. Eine (feste) Signatur kann als einfacher Text in die Datei "~/.Signature" angegeben werden. Dafür muss Punkt "88. Erzeuge Signatur aus Pfad/Kommando :" mit "/home/[Account]/.Signature" definiert werden:

    88 Erzeuge Signatur aus Pfad/Kommando : /home/[Account]/.Signature
    92 Create signature from path/command

Wichtig wäre dann noch die korrekte Definition des Zeichensatzes.

    98 MM_NETWORK_CHARSET                 : ISO-8859-1
   102 MM_NETWORK_CHARSET

    99 MIME-Kodierung in Newsartikeln     : 8bit
   103 MIME encoding in news messages

wären die Standard-Angaben dazu.

Natürlich kann die Einleitungszeile jeweils getrennt für Follow-Ups, Crossposten und Mailantworten eingestellt werden. Als Beispiel seien hierzu genannt:

    93 Einleitungszeile beim Antworten    : Am %D meinte %N:
    97 Quote line when following up

    94 Einleitungszeile beim Crossposten  : In %G schrieb %N:
    98 Quote line when cross-posting

    95 Einleitungszeile bei Mailantwort   : In article %M you wrote:
    99 Quote line when mailing

Dieses Konfigurationsmenü kann dann mit der Taste "Q" wieder verlassen werden. Tin legt dabei automatisch einen Ordner ".tin" im Home-Verzeichnis an. Dort sind dann verschiedene Konfigurationsdateien enthalten, wie z.B. die tinrc, in der alle Angaben enthalten sind, die man vorher im Menü gemacht hat. tinrc kann natürlich mit einem Texteditor auch manuell bearbeitet werden, nur darf Tin dann nicht laufen.

Entfernen des Sender-Headers

Falls Tin nicht mit der Vorgabe "make install_sysdefs" (als root) installiert wurde, was unter Umständen bei Installationen via fertiger Pakete vorkommen könnte, fehlt in /etc/tin die Datei "tin.defaults".
In der Datei kann man einige systemweite Einstellungen von tin vornehmen (im Gegensatz zur tinrc, in der Einstellungen fuer den jeweiligen Benutzer gemacht werden). U.a. kann man hier das Erstellen des Sender-Headers unterbinden.

Ein solcher Sender-Header setzt sich wie folgt zusammen:

  Sender: Vorname Zuname <vorname@hostname des Systems>

Da dies jedoch nahezu immer eine falsche Mailadresse darstellt, je nach verwendeten Hostnamen des System, bietet es sich an, diesen Sender-Header wie folgt zu elliminieren:

Dazu benötigst du die Datei "tin.defaults" [1]. Falls "tin.defaults" nicht nach /etc/tin installiert wurde und auch nicht mit folgenden Kommandos auf dem System vorzufinden ist, ...

  locate tin.defaults

noch mit

  whereis tin.defaults

...mußt du einmal den Tin-Quelltext von der Tin-Homepage herunterladen und aus diesem im Unterverzeichnis doc die Datei "tin.defaults" extrahieren.

Diese muß nun wie folgt geändert/editiert werden:

  # disable_sender - post without Sender: even if tin normally would add it
  #
  # use this only if you cannot generate a valid Sender:, eg. if you do not
  # have a registered FQDN for your system
  #
  # disable_sender has no effect if inews_prog is not set to --internal.
  #
  #disable_sender=OFF

Hier muß die Raute vor "disable_sender=OFF" entfernt werden sowie aus dem "OFF" ein "ON" gemacht werden.

Anschliessend muß diese Datei tin.defaults mit root-Rechten nach /etc/tin kopiert werden. Falls das Unterverzeichnis tin dort nicht existiert, muß es mit root-Rechten angelegt werden.

Generieren des Cancel-Lock-Headers

Ein Cancel-Lock ist notwendig, um Fremdcancel zu verhindern.

Wenn Tin so gebaut wurde, dass beim Aufruf von Tin mit der Option "-V" "+USE_CANLOCK" u.a. erscheint, (also mit einem Plus-Zeichen, nicht mit einem Minus-Zeichen), ist Tin in der Lage, einen Cancel-Lock-Header jedem Posting beizufügen.
Dazu ist jedoch folgende Einstellung notwendig: im Home-Verzeichnis des OS muß eine Datei ".cancelsecret" erstellt werden. Dies kann wie folgt gemacht werden:

  echo "Geheimeswort\n" > ~/.cancelsecret
  sudo chmod 600 ~/.cancelsecret   

Für "Geheimeswort" sollte ein eigenes Wort oder Zeichenfolge verwendet werden, und die Datei ".cancelsecret" sollte dann nicht mehr geändert werden. Die Datei "~/.cancelsecret" darf lediglich Schreib- und Leserechte für den jeweiligen User des OS haben, alle anderen User sollten für Beides gesperrt sein, daher die Dateirechte "600".

Tin wird aus diesem Wort dann per Verschlüsselung den Cancel-Lock-Header erstellen, der in etwa so aussehen kann:

  Cancel-Lock: sha1:P0IUY8kwJy0IuYRqgkg/u8c8Gqo=

Ist innerhalb von Tin die Cancel-Lock-Funktion aktiviert, so dass Tin diesen Header setzt, wird der Newsserver, sofern dieser ebenfalls so konfiguriert wurde, einen solchen Header zu setzen, seinen Cancel-Lock in der von Tin bereits erzeugten Headerzeile hinter den Cancel-Lock von Tin mit Abtrennung durch ein Leerzeichen hinzufügen. Dies sieht dann in etwa so aus:

  Cancel-Lock: sha1:e1XTb05kFkD2bftwX7FIBNtOYwY= sha1:cfPQMo97Jpb5rqrOTBppzbBhHGk=

Wenn beim Canceln der Key zu einem der Beiden passt, wird der Cancel ausgeführt, sonst eben nicht. Dies ist jedoch leider nur der "Idealfall".
Denn es gibt sehr unterschiedlich konfigurierte Newsserver:
solche, die sich, wie oben beschrieben, daran halten, Cancel nur anhand der durch einen Cancel-Lock vorgegebenen Möglichkeiten auszuführen sowie Newsserver, die Cancels ausführen ohne Cancel-Lock/Cancel-Key zu beachten bzw. Server, die Cancels nie ausführen (völlig egal, ob der Cancel einen passenden Cancel-Key hat oder nicht).

Posten mit Tin

Beim ersten start zeigt Tin die Gruppen an, die laut .newsrc abonniert sind. Gibt es noch keine .newsrc, so legt Tin eine leere .newsrc an. Es werden dann keine Newsgroups angezeigt.
Findet rtin keine .newsrc an, macht er ein "LIST SUBSCRIPTIONS" und betrachtet die zurückgelieferten Gruppen als abonniert.
(Tin ist ein Onlinereader. Beim Start wird eine Datei mit den auf dem Server verfügbaren Gruppen in ~/.tin/name.dessserver/newsgroups angelegt.)
Nach Neustart stehen nur noch die abonnierten Gruppen in der Liste. Man sucht sich dann mittels Cursortasten eine Gruppe aus, drückt Return und kann entweder die Nachrichten der Gruppe lesen oder ein Posting absetzen. Zum Posten drückt man die Taste "w" (write), dann muss man ein Subject eingeben, nach Return öffnet sich das Verfassen-Fenster mit vim. In den Editiermodus von vim gelangt man mit "i", dann kann man seinen Text eingeben. Mit der "ESC"-Taste verlässt man den Editiermodus und kann das Posting zum Absenden vorbereiten. Dazu zweimal "Shift-Z" drücken. Das eigentliche Absenden übernimmt dann wieder Tin, indem man die Taste "p" (für Posten) drückt. Zum Verlassen von Tin drückt man "q" (ggf. mehrmals).

Verwendung von Newsservern via Kommandozeilenoption

Möchte man einen anderen Newsserver als den in der Variablen NNTPSERVER definierten mit Tin verwenden, ruft man Tin wie folgt auf:

  tin -g Newsserver.Provider.tld

Ist der Newsserver kennwortgeschützt, fragt Tin Username und Kennwort nacheinander ab und danach sollte man sich erst alle Gruppen mit "y" anzeigen lassen und jene, die man nicht abonnieren möchte, mit "u" wieder abbestellen.

Vorteile von Tin

  • sehr schneller Reader mit guter Übersicht durch verschiedene Farben von Quote, Menüs und Links,
  • Zeigt in grafikfähigen Terminals (xterm) auch X-Faces an,
  • Kann filtern,
  • Suchfunktion nach Autor oder Text,
  • Eigene Header können definiert werden wie z.B. X-Face (in der Datei ~/.tin/headers),
  • Verwendung mehrerer verschiedener Newsserver möglich.

Nachteile von Tin

  • Unter Windows nur bedingt nutzbar,
  • keine grafische GUI, was jedoch viele als wieder als Vorteil schätzen,
  • relativ unkomfortables Crossposten (Gruppen müssen manuell ausgesucht werden).
Weiterführende Links
  1. Die Homepage von Tin
  2. ausführliche Liste der Betriebssysteme, unter denen Tin läuft
  3. ausführlicher Artikel in der englischen Wikipedia
  4. Kleine Übersicht über Installation und Verwendung
  5. Verwendung von Tin und Vim
  6. Tin - Ein einfacher Newsreader
  7. Von der Kompilation über Installation zur Konfiguration
  8. Tin konkret
  9. Konfiguration von Tin 1.8.3

» Zu Tin gibt es auch eine passende deutsch-sprachige Newsgroup:

Autor: Uwe Premer - 13.03.2008

ABC-Wiki-Team » Kompendium » Newsreader » tin


Kategorie(n):
Bewerte diesen Artikel

2 stars Bewertung 2.0/5 aus 2 Bewertungen


Facebook Besuche uns bei Facebook, um unsere Artikel zu kommentieren