Skip to content

yapfaq 0.9.1 (Bugfix-Release)

Ich habe heute die Version 0.9.1 von yapfaq released, die einen Fehler der bisherigen Version 0.9 behebt:

  • Im Test-Modus (-t) wurde teilweise fälschlich eine leere Headerzeile "X-Supersedes:" hinzugefügt.

Die aktuelle Version steht jeweils auf meiner Downloadseite zur Verfügung.

yapfaq 0.9 released

Ich habe heute die bereits seit Juni im Prinzip fertige neue Version 0.9 von yapfaq released, die im Vergleich zur bisherigen Version 0.8.2 nur wenige Änderungen aufweist:

Packaging geändert

Neue Versionen von yapfaq können jetzt einfach durch Kopieren des Tarballs über die vorherige Version installiert werden, ohne die Konfiguration zu überschreiben; Beispiel-Konfigurationsdateien sind entsprechend umbenannt.

Kleine Änderungen an den Headern der erzeugten Postings

Das Standard-Format für die Message-ID hat sich geändert; nunmehr wird das internationale Datumsformat verwendet.

Wenn im Subject:-Header ein Platzhalter für die letzte Änderung der FAQ vorgesehen ist, wird dieser ersatzlos entfernt, falls das Änderungsdatum nicht extrahiert werden kann, bleibt also nicht mehr einfach stehen.

Und schließlich werden Test-Postings jetzt als solche gekennzeichnet, sie enthalten keinen Supersedes:-Header mehr, sondern nur noch eine entschärfte Version, und ihre Message-ID enthält nunmehr zwingend einen Timestamp, um mehrfache Tests - am selben Tag - zu ermöglichen.

Die Dokumentation wurde entsprechend aktualisiert.

Die aktuelle Version steht jeweils auf meiner Downloadseite zur Verfügung.

yapfaq 0.8 released

Soeben habe ich eine neue Version 0.8.1 von yapfaq released, die im Vergleich zur bisherigen Version 0.7 nur noch vergleichsweise kleine Änderungen aufweist:

PGP-/GPG-Support entfernt

Die Unterstützung für das Signieren von Postings ist ersatzlos entfallen. Es bestehen ausreichende Möglichkeiten, dies extern zu lösen, bspw. über tinews.pl; daher gibt es keinen Anlaß, den dort enthaltenen Code in yapfaq zu duplizieren. Seit der letzten Version ist der Aufruf - bspw. - von tinews.pl direkt aus yapfaq heraus möglich.

Konfiguration

Die in der Konfigurationsdatei yapfaq.cfg mögliche Definition des Schemas für die Erzeugung der Message-ID kann jetzt auch einen Platzhalter für einen Unix-Timestamp enthalten.

Außerdem kann die in der letzten Version hinzugefügte Möglichkeit, zum Posten ein externes Programm zu verwenden, nunmehr auch in der Konfigurationsdatei .yapfaqrc definiert werden, nicht nur über den Kommandozeilenparameter "-s".

Kleinere Änderungen und Fehlerbehebung

In der Konfigurationsdatei yapfaq.cfg wurden optionale Einstellungen als solche gekennzeichnet und auskommentiert, außerdem die Optionen mit einheitlichen Erläuterungen als Kommentar versehen.

Die Dokumentation wurde um bisher fehlende Optionen und die Erläuterung der voranstehenden ergänzt. Außerdem enthält sie jetzt Links zum Git-Repository und zum Bugtracker.

Die aktuelle Version steht jeweils auf meiner Downloadseite zur Verfügung.

Update: Nachdem Version 0.8 nicht lauffähig war, ist dieser Fehler in Version 0.8.1 behoben.

FAQ-Autoposter nun via yapfaq

Bereits seit etlichen Jahren poste ich nicht nur meine eigenen FAQs automatisiert ins Usenet, sondern biete das auch für andere Interessenten an. In letzter Zeit wurden die noch gepflegten und zu postenden FAQs immer weniger; die verbliebenen habe ich jetzt von auto-faq auf das 0.7er-Release von yapfaq umgestellt.

Sehr angenehm daran ist unter anderem, daß ich jetzt nicht mehr für jede zu postende FAQ einen eigenen Crontab-Eintrag brauche, sondern nur noch einen (täglichen) für alle FAQs, der dann die jeweils anstehenden Postings - und nur diese - auslöst. Die dadurch minimal kleinere Flexibilität - es lassen sich bestimmte Wochentage nur noch indirekt (durch das Datum des ersten Postings) festlegen und bestimmte Sonderwünsche (zweimal pro Monat, am 14. und 28., o.ä.) nicht mehr umsetzen - nehme ich gerne für den verminderten Aufwand in Kauf.

Soweit die FAQs einen Last-Modified:-Pseudo-Header haben, erspare ich mir überdies bei Änderungen des FAQ-Textes auch die (sonst ggf. zusätzlich anfallende) Änderung des Subject:-Headers in der Konfiguration (und das spricht sehr dafür, den FAQs, die noch keinen solchen Header haben, ggf. einen zu verpassen oder durch den Maintainer verpassen zu lassen).

Wenn also noch jemand FAQs zu posten hat: jetzt wieder gerne jederzeit her damit! :-)

yapfaq 0.7 released

Gestern habe ich eine neue Version 0.7 von yapfaq released. Im Vergleich zur Version 0.6.2 ergeben sich folgende wesentlichen Änderungen und Neuerungen:

Konfiguration über .rc-Datei

Es sind keine Einstellungen in yapfaq.pl selbst mehr erforderlich; alle Konfigurationsparameter - zu nutzender Newsserver, Benutzername und Paßwort für diesen, etc. pp. - können jetzt in der Datei .yapfaqrc eingestellt und geändert werden.

Außerdem kann über den neuen Kommandozeilenparamter "-c" eine andere .rc-Datei übergeben werden; auf diese Weise lassen sich bspw. durch Angabe unterschiedlicher .cfg-Dateien in verschiedenen .rc-Dateien auch verschiedene FAQ-Sammlungen durch yapfaq bearbeiten.

Posten über externes Programm

Statt die FAQs durch yapfaq selbst posten zu lassen können diese nunmehr auch per Pipe an ein externes Programm weitergegeben werden, das durch den neuen Kommandozeilenparamter "-s" definiert wird, bspw. inews aus dem INN-Paket oder den mächtigeren Ersatz tinews.pl, den man von ftp.tin.org herunterladen kann. Selbstverständlich kann dieses externe Programm auch cat, mail o.ä. sein - je nachdem, was man erreichen möchte.

Kleinere Änderungen und Fehlerbehebung

Der Kommandozeilenparamter "-h" gibt jetzt nicht mehr nur Version und Kommandozeilenparameter aus, sondern stattdessen die komplette man-Page; Version und Copyright erhält man über den neuen Kommandozeilenparamter "-V" ausgegeben.

Die Statusinformationen - letztes Posting der FAQ und dessen Message-ID - werden jetzt nur noch nach erfolgreichem Posten (bzw. wenn das mit "-s" aufgerufene Programm den Exitcode "0" zurückgibt) gespeichert.

Ein Anmeldeversuch am Newsserver erfolgt nur noch, wenn ein Benutzername gesetzt ist.

Und schließlich ist die Angabe des Formats für die Message-ID jetzt optional; für den Default wird der Hostname des Systems als FQDN herangezogen. Bei ungültigen Angaben für Expires und Message-ID-Format wird jetzt korrekt der Default eingesetzt; außerdem finden beim Laden der Konfigurationsdatei (standardmäßig yapfaq.cfg) nunmehr weitere Überprüfungen statt.

Die aktuelle Version steht jeweils auf meiner Downloadseite zur Verfügung.

yapfaq 0.6.2 released

Wie am Wochenende schon angekündigt, habe ich yapfaq in den letzten Tagen etwas weiterbearbeitet. Version 0.6 (bzw., aufgrund einiger kleiner Fehler im ersten Release, Version 0.6.2) enthält neben einigen kleineren Änderungen vor allem folgende Erweiterungen:

Variabler Expires:-Header

Die bisherige Version hat einen Expires:-Header von drei Monaten gesetzt; dieser Wert ist nunmehr konfigurierbar.

Kommandozeilen-Parameter

yapfaq nimmt jetzt einige Kommandozeilen-Parameter entgegen. So können mittels "-v" Informationen über den Programmablauf ausgegeben werden; mit dem Parameter "-f" kann die Abarbeitung auf die genannte FAQ beschränkt werden, yapfaq arbeitet dann also nicht alle FAQs ab. Außerdem kann mit "-p" das Posten aller - oder einer - FAQ(s) erzwungen werden, auch wenn diese eigentlich noch nicht fällig ist; am sinnvollsten ist das im Zusammenhang mit "-f". Die Parameter "-d" und "-t" ermöglichen Tests: "-d" führt zu einem reinen Simulationslauf, bei dem nichts gepostet wird, so daß bspw. getestet werden kann, welche FAQs zum Posten anstehen würden. "-t" ermöglicht es, die FAQ nicht in die eigentlich vorgesehene(n) Gruppe(n) zu posten, sondern stattdessen in eine Testgruppe oder auf die Konsole auszugeben, um zu prüfen, wie ein Posting aussehen würde.

Die aktuelle Version steht jeweils auf meiner Downloadseite zur Verfügung.

yapfaq - yet another postfaq

Es gibt eine ganze Reihe von Lösungen, um FAQs automatisiert und regelmäßig ins Usenet zu posten:

Zum einen kann man dafür auto-faq von Ian Kluft und Paul W. Schleck nutzen, ein Perl-Script, das ich seit Ende der Neunziger für das automatische Posten diverser FAQs verwende. Es besteht aus einer Konfigurationsdatei, in der für jede FAQ definiert wird, wie sie nach wo gepostet wird. Die einzelnen FAQs sind als Textdateien abgelegt, über die Konfigurationsdatei werden die einzelnen Header und Pseudo-Header festgelegt; Message-IDs, Expires:- und Supersedes:-Header werden automatisch erzeugt. Gepostet werden die FAQs, deren Namen bei Aufruf des Scripts übergeben werden; das läßt sich via cron automatisieren, wobei für jede FAQ ein eigener crontab-Eintrag benötigt wird. auto-faq bietet einen ganzen Haufen an Optionen, hat aber den Nachteil, zum Posten zwingend inews - aus dem INN-Paket - oder vergleichbare Tools zu verwenden; außerdem bietet es eine Unzahl von Funktionen, namentlich auch zum Posten vielteiliger FAQs, die aber - jedenfalls für mich - keine Relevanz hatten. Und auto-faq wurde 1992 entwickelt und hat seit 1999, also seit über 10 Jahren, keine Änderung mehr erfahren …

Eine Alternative dazu stellt postfaq von Russ Allbery dar, gleichfalls in Perl implementiert. postfaq verfolgt ein anderes Konzept: hinterlegt in einer Textdatei wird hier nicht nur der Body der FAQs, sondern das komplette Posting einschließlich aller Headerzeilen. Konsequenterweise wird eine gesonderte Konfigurationsdatei nicht benötigt. Auch postfaq erzeugt die notwendigen Headerzeilen und postet die beim Aufruf angegebenen FAQs, was via cron automatisiert werden kann; es benötigt dazu aber keine externen Programme wie inews o.ä. Es wird aktiv gepflegt (letzte Änderung 2008).

Und eine weitere Möglichkeit ist yapfaq ("yet another postfaq"), ein Script von Marc Brockschmidt, das ich vor etlichen Jahren bereits einmal angetestet hatte, jetzt aber nirgendwo mehr wiedergefunden habe. Marc war aber dankenswerterweise so nett, mir die aktuelle Version (letzte Änderung: Februar 2003) zu überlassen; ich plane, yapfaq noch ein wenig für meine Zwecke zu bearbeiten und weiter zu entwickeln, as time permits. Einstweilen steht yapfaq über ein Git-Repository zur Verfügung.

yapfaq arbeitet grundsätzlich vergleichbar zu auto-faq: in einer zentralen Konfigurationsdatei wird definiert, welche FAQs in welchen Abständen wohin gepostet werden sollen. Die einzelnen FAQs sind als Textdateien abgelegt, wobei die Header durch das Script beim Posten gesetzt und ergänzt werden. Im Unterschied zu auto-faq postet yapfaq aber nicht nur eine bestimme FAQ, sondern alle FAQs, die "dran" sind, die also zuletzt vor - mindestens - dem definierten Zeitraum gepostet wurden. Es ist also nicht notwendig, für jede FAQ einen eigenen crontab-Eintrag zu definieren; vielmehr kann man yapfaq einfach täglich aufrufen, und jede FAQ wird dann gepostet, soweit sie "fällig" ist.