Home > IT, Linux > imapfilter selber kompilieren

imapfilter selber kompilieren

Vor einiger Zeit habe ich in einem Artikel erklärt, wie ich meine E-Mails automatisch vorsortiere.
Nach einer Betriebssystem Aktualisierung funktionierte das Mail sortieren mit imapfilter nicht mehr.

Durch ein Paket Update des Betriebssystems wurden anscheinend einige Bibliotheken aktualisiert, welche vom Programm imapfilter verwendet wurden.

Das Ausgeben der Programmschritte förderte folgende Fehlermeldung zutage.

imapfilter: timeout period expired while waiting to read data

Nach einer kurzen Google Rechere fand ich einen Launchpad Bugreport mit Link zur Ursache des Problems.

Folgender Diff-Auszug zeigt die kleine Änderung, welche das Benützen des Programms verunmöglichte.

} else

return -1;

- return response_authenticate(ssn, t, NULL);

+ return response_generic(ssn, t);

}

#endif /* NO_CRAMMD5 */

Da für Ubuntu 10.04 kein aktualisiertes Paket angeboten wird und von imapfilter bereits eine neuere Version vorliegt, habe ich mich entschieden das Programm selbst zu kompilieren.

Die aktuellste Version von imapfilter ist auf github zu finden und kann direkt aus dem Repository gecloned und kompiliert werden.

Mit dem Befehl

git clone https://github.com/lefcha/imapfilter.git

wird das ganze Repository auf den Rechner geladen.

Hat man git nicht installiert oder möchte es nicht verwenden ist es möglich die aktuellen Dateien als .zip von der github Seite zu laden und zu entpacken.

Um imapfilter unter Ubuntu Server 10.04 zu kompilieren müssen folgende Bibliotheken zuerst installiert werden, da ein Kompilieren sonst unmöglich ist.

liblua5.1-0-dev
libssl-dev
libpcre3-dev

Laut README wechselt man nun ins zuvor heruntergeladene Verzeichnis imapfilter und führt den Befehl make aus.
Dies funktioniert unter der gegebenen Ubuntu Version aber nicht richtig, da die lua Bibliotheken an einer andern Stelle zu finden sind als gewöhnlich.
Mit einer kleinen Modifikation gelingt das Kompilieren dann trotzdem, man muss lediglich folgenden Befehl ausführen:

make INCDIRS=-I/usr/include/lua5.1 LIBLUA=-llua5.1

Das Programm sollte nun kompilieren und kann anschliessend mit sudo make install ins Verzeichnis /usr/local/bin/ installiert werden.

Nun funktioniert das E-Mail sortieren wieder fehlerfrei. Allerdings muss beachtet werden das zukünftige Sicherheitsaktualisierungen von imapfilter nicht wie üblich über den Paketmanager eingespielt werden können, sondern durch das Kompilieren des neuen Source Codes installiert werden müssen.

  1. 1. November 2012, 07:44 | #1

    Hi,

    Du kannst ein DEB Package aus dem SourceCode erstellen.
    Man braucht dazu nur das Paket “Checkinstall”

    1. checkinstall installierne
    2. das Binary nach Deinen Vorgaben erstellen
    3. im entpackten “imapfilter” Ordner den Befehl “checkinstall –install=no” ausführen
    4. bei bedarf imapfilter mit dpkg -i installieren
    5. checken ob imapfilter installiert ist dpkg -l “Paketname”

  1. Bisher keine Trackbacks