ICQ-Transport (pyicqt) für Jabber-Server auf Debian Etch
Montag, 22. Dezember 2008, 21:14
Abgelegt unter: Computer

Ich hatte die Idee auf meinem Rootserver, der mit Debian Etch 4.0 läuft, einen Jabber-Server aufzusetzen. Es gibt dort verschiedene Möglichkeiten, ich hab mich für den sehr ausgereiften ejabberd entschieden.

Jabber ist ja schön und gut, für die Übergangszeit wollte ich aber gerne noch meine alten ICQ-Kontakte weiter nutzen können. Anstatt einen Multiprotokoll-Chat-Client zu nutzen habe ich mich für die (technisch anspruchsvollere) Lösung entschieden einen sogenannten ICQ-Transport zu verwenden. Also eine Erweiterung des ejabberd-Servers, mit dem der Server auch mit der ICQ-Infrastruktur kommunizieren kann.

Dafür gibt es das unter Debian das fertige Paket pyicqt. Leider ist es nur unter lenny zu finden, bei der Stable Version etch ist es nicht vorhanden. Das Problem hatten auch andere, z.B. im die-welt.net Blog , Zhenech und Lueri.

Das Paket aus lenny ließ sich nicht installieren, da die Abhängigkeiten nicht gestimmt haben.

Depends: python, python-support (>= 0.7.1), lsb-base (>= 3.0-6), python-twisted (>= 2.0.0), python-twisted-web (>= 0.5.0), python-twisted-words (>= 0.1.0), python-crypto, adduser

Das Problem liegt am python-support, Version 0.7.1 ist nicht für etch verfügbar. Nach Anpassen der DEBIAN/control Abhängigkeiten im Paket und Neubauen mit einem netten Skript

#!/bin/bash
 
if [[ -z "$1" ]]; then
  echo "Syntax: $0 debfile"
  exit 1
fi
 
DEBFILE="$1"
TMPDIR=`mktemp -d /tmp/deb.XXXXXXXXXX` || exit 1
OUTPUT=`basename "$DEBFILE" .deb`.modfied.deb
 
if [[ -e "$OUTPUT" ]]; then
  echo "$OUTPUT exists."
  rm -r "$TMPDIR"
  exit 1
fi
 
dpkg-deb -x "$DEBFILE" "$TMPDIR"
dpkg-deb --control "$DEBFILE" "$TMPDIR"/DEBIAN
 
if [[ ! -e "$TMPDIR"/DEBIAN/control ]]; then
  echo DEBIAN/control not found.
 
  rm -r "$TMPDIR"
  exit 1
fi
 
CONTROL="$TMPDIR"/DEBIAN/control
 
MOD=`stat -c "%y" "$CONTROL"`
vi "$CONTROL"
 
if [[ "$MOD" == `stat -c "%y" "$CONTROL"` ]]; then
  echo Not modfied.
else
  echo Building new deb...
  dpkg -b "$TMPDIR" "$OUTPUT"
fi
 
rm -r "$TMPDIR"

mit folgenden Abhängigkeiten:

Depends: python, python-support (>= 0.5.1), lsb-base (>= 3.0-6), python-twisted (>= 2.0.0), python-twisted-web (>= 0.5.0), python-twisted-words (>= 0.1.0), python-crypto, adduser

hatte Erfolg. Es funktioniert einwandfrei mit python-support Version 0.5.1

Das fertige Paket stelle ich hier auch zum Download:

pyicqt_08b-5_all.modfied.deb

Installation mit

dpkg -i pyicqt_08b-5_all.modfied.deb

Das wars.I planned to install a Jabber Server on my rootserver running Debian Etch. Having several options I decided to use ejabberd.

Jabber is fine but I would still like to contact my ICQ friends in the transition time. Despite using a multiprotocol chat client I decided to use a so-called ICQ transport. This is an extension to the ejabberd-servers, which enables it to communicate with the ICQ infrastructure.

Debian provides a pyicqt package, unfortunately only available under lenny not etch.

The lenny package didn’t install because of missing dependencies.

Depends: python, python-support (>= 0.7.1), lsb-base (>= 3.0-6), python-twisted (>= 2.0.0), python-twisted-web (>= 0.5.0), python-twisted-words (>= 0.1.0), python-crypto, adduser

The one to blame was python-support. Only available up to version 0.5.1 on etch. After some tweaking in DEBIAN/control I rebuilt it with this nice script

#!/bin/bash
 
if [[ -z "$1" ]]; then
  echo "Syntax: $0 debfile"
  exit 1
fi
 
DEBFILE="$1"
TMPDIR=`mktemp -d /tmp/deb.XXXXXXXXXX` || exit 1
OUTPUT=`basename "$DEBFILE" .deb`.modfied.deb
 
if [[ -e "$OUTPUT" ]]; then
  echo "$OUTPUT exists."
  rm -r "$TMPDIR"
  exit 1
fi
 
dpkg-deb -x "$DEBFILE" "$TMPDIR"
dpkg-deb --control "$DEBFILE" "$TMPDIR"/DEBIAN
 
if [[ ! -e "$TMPDIR"/DEBIAN/control ]]; then
  echo DEBIAN/control not found.
 
  rm -r "$TMPDIR"
  exit 1
fi
 
CONTROL="$TMPDIR"/DEBIAN/control
 
MOD=`stat -c "%y" "$CONTROL"`
vi "$CONTROL"
 
if [[ "$MOD" == `stat -c "%y" "$CONTROL"` ]]; then
  echo Not modfied.
else
  echo Building new deb...
  dpkg -b "$TMPDIR" "$OUTPUT"
fi
 
rm -r "$TMPDIR"

and the following dependencies:

Depends: python, python-support (>= 0.5.1), lsb-base (>= 3.0-6), python-twisted (>= 2.0.0), python-twisted-web (>= 0.5.0), python-twisted-words (>= 0.1.0), python-crypto, adduser

This made it. python-support 0.7.1 is not needed for proper function.

The modfied package is available for download here:

pyicqt_08b-5_all.modfied.deb

Just install it with

dpkg -i pyicqt_08b-5_all.modfied.deb

Thats it.