Skip to content

FLOSS'n'net - Aktivitäten im 4. Quartal 2019

Im letzten Quartal des vergangenen Jahres hatte ich sehr wenig Zeit; daher bin ich auch nur ganz zu Anfang, im Oktober, dazu gekommen, etwas rund um FLOSS und das Netz zu tun, und zwar wie zuvor auch vor allem an Serendipity.

Serendipity (s9y)

Das Blogsystem Serendipity werkelt auch hinter diesem Blog.

s9y-Kern

  • Ich habe die Ursache eines lange bekannten Problems gefunden, nämlich der “Verstümmelung” automatisch erzeugter E-Mails durch unpassende Zeilenumbrüche mitten im Text. Erschwert wurde das Debugging dadurch, dass dieses Problem nicht überall auftrat und in meinen Testinstallationen nicht reproduzierbar war. Es stellte sich heraus, dass das Verhalten MTA-spezifisch war, d.h. nur auftrat, wenn qmail als Mailserver Verwendung fand. Ursächlich ist das Verhalten der imap_8bit()-Funktion von PHP, auf die s9y - soweit vorhanden - zurückgreift, um den Mailinhalt als quoted-printable zu kodieren. Dabei müssen Zeilenumbrüche eingefügt werden, wofür imap_8bit() die Zeichenfolge \r\n verwendet, also “carriage return” und “line feed”; diese Markierung des Zeilenendes ist unter Windows üblich, wohingegen unter Unix üblicherweise nur \n verwendet wird, und ist auch für die Mailübertragung per SMTP vorgeschrieben. Üblicherweise wird Mail auf einem Unix-Server von PHP aber nicht direkt per SMTP übertragen, sondern an einen Mailserver übergeben, so dass \r\n als Zeilenumbruch nicht zwingend ist. Den meisten Mailservern (so Postfix und Exim) ist das egal; qmail aber beharrt darauf, dass bei ihm eingelieferte Mails als Zeilenende nur mit \n markiert sein dürfen und ersetzt jedes \n für die SMTP-Übertragung durch \r\n. Wurde die Mail bereits mit \r\n eingeliefert, macht qmail dementsprechend daraus \r\r\n, und genau das ist die Quelle der “überzähligen” Zeilenumbrüche (nach der Dekodierung von quoted-printable). An qmail wird sich nichts ändern - wenn jemand das Programm überhaupt noch pflegt -, denn der Autor hält sein Vorgehen für richtig. Ich habe mich daher entschlossen, die Mailerzeugung durch s9y zu ändern; das mag zu Problemen (fehlenden Zeilenumbrüchen) führen, wenn die Mail aus PHP direkt per SMTP übermittelt wird, aber das kommt eigentlich nur unter Windows-Servern vor, und es gibt mit Sicherheit mehr Unix-Server, die qmail verwenden, als Windows-Server, auf denen s9y läuft. In jedem Fall kann man das Problem durch Setzen von serendipity['forceBase64']=true in serendipity_config_local.inc.php umgehen; dann nämlich wird base64 kodiert, und dabei tritt das Problem nicht auf.
    Fix mangling of auto-generated mails.
  • s9y kommt nicht damit klar, wenn die maximale Anzahl der auf der Titelseite oder im Feed anzuzeigenden Beiträge kleiner als “1” ist (und das muss es auch nicht können); daher wird “1” als Mindestwert erzwungen.
    Force positive values for fetchLimits.

  • Auf der Jagd nach potentiell nicht initialisierten Konstanten habe ich einen weiteren Einzelfall behoben, der sonst Fehlermeldungen im Logfile produziert.
    Assume uninitialized constant PLUGIN_LINK_SPARTACUS.

Releases

  • Kurz nach den oben genannten Änderungen habe ich diese und die gesammelten Fehlerbehebungen der anderen Entwickler und Mitwirkenden aus dem aktuellen Entwicklungszweig in den 2.3-Zweig übernommen und sie als Version 2.3.2 releast (und das Release angekündigt).

Mehr Zeit war dann leider nicht mehr …

Vorherige Aktivitäten-Übersicht: III/2019

Trackbacks

Netz - Rettung - Recht am : FLOSS'n'net - Aktivitäten im 1. Quartal 2020

Vorschau anzeigen
Das neue Jahr hat im Prinzip begonnen, wie das alte geendet hat: viel zu tun, wenig Zeit, insbesondere für “freie Software und das Netz”. Aber wie ich am Anfang des letzten Quartalq etwas Zeit für Serendipity gefunden hatte, so ging es mir nun

Kommentare

Ansicht der Kommentare: Linear | Verschachtelt

Noch keine Kommentare

Kommentar schreiben

HTML-Tags werden in ihre Entities umgewandelt.
Markdown-Formatierung erlaubt
Standard-Text Smilies wie :-) und ;-) werden zu Bildern konvertiert.
BBCode-Formatierung erlaubt
Gravatar, Identicon/Ycon Autoren-Bilder werden unterstützt.
Formular-Optionen