Nachdem ich letztens ein WebD…

(2010-07-27)

Nachdem ich letztens ein WebDAV-plugin für Maemo gehackt habe, wollte ich das nun hochladen. Dazu registriert man sich bei maemo.org und stellt dann einen Request auf Upload-Rechte für das extras-devel-Repository. Nachdem man diese Rechte bekommt lädt man seinen SSH-Public-Key hoch und kann danach Pakete in den Autobuilder laden.

Wer von Debian kommt, würde jetzt sein Paket bauen und signiert hochladen. Allerdings wies der Autobuilder mein signiertes Paket zurück mit der Meldung, dass er meinen public key nicht kenne und somit die Signatur nicht verifizieren könne. Das ist ein bisschen merkwürdig, da mein Key im debian-maintainers-Paket ist, aber gut. Allerdings gibt es auch keine Möglichkeit, einen GPG-Public-Key über das Webinterface hochzuladen. Ein Post auf talk.maemo.org offenbart, dass der GPG-Public-Key anscheinend automatisch hinzugefügt wird, sobald man die Upload-Rechte nach extras-devel bekommt. Das klappt natürlich nicht, wenn man zur Registration eine andere Mailadresse verwendet, als diejenige, mit denen man dann die Pakete veröffentlicht. Die Lösung aus demselben Thread lautet dann: Pakete muss man eigentlich garnicht signieren, die kann man auch einfach so hochladen. Na dann.

Während man die fehlende Authentifizierung durch Signaturen noch verschmerzen kann (immerhin dürfen nur Nutzer mit Upload-Rechten hochladen, was durch SSH-Keys gesichert ist, aber naja…) ist folgendes Problem schon kritischer: Die Version von dpkg-dev im SDK (scratchbox + Xephyr) ist älter als die auf den Autobuildern. Im SDK gibts beim Bauen des Pakets eine Warnung, weil libneon die shlibs-Datei fehlt. Auf dem Autobuilder ist das jedoch ein Fehler. Um das Problem zu lösen, gibt es den Parameter --ignore-missing-info für dh_shlibdeps. Allerdings ist dieser bei der dpkg-dev-Version im SDK nicht verfügbar. Nun könnte man also das Paket entweder auf dem Autobuilder bauen oder im SDK. Ich will aber natürlich beides.

Wie löst man das Problem nun? Mit folgendem hässlichen Hack in debian/rules:

	dh_shlibdeps -- --ignore-missing-info || dh_shlibdeps