Auf meinem aktuellen Karmic-System wollte ich gern majordomo installieren. Primär eigentlich nur, um das Kommando approve absetzen zu können, mit dem ich bouncende Mails aus den von mir betreuten Mailinglisten bestätigen kann. Leider habe ich bisher kein Debian-Paket für mein Ubuntu finden können, vermutlich hat das mit Sicherheitsproblemen dieser etwas älteren Software zu tun.
Beim aktuellen OpenSuSe wird majordomo immer noch mit ausgeliefert. Daher war die Idee naheliegend das RPM-Paket mittels alien in ein Debian-Paket zu verwandeln und dann zu installieren. Leider war das nicht ganz so einfach. Das Ubuntu-Alien kommt teilweise mit aktuellen RPM-Paketen nicht zurecht, da die Art der Komprimierung verändert wurde. Das Problem scheint aber schon älter zu sein, es hat sich anscheinend aber noch niemand ernsthaft darum gekümmert. Es gibt Fehlermeldungen der Art:
Unpacking of 'majordomo-1.94.5-457.1.i586.rpm' failed at /usr/share/perl5/Alien/Package/Rpm.pm line 155.
In dem Artikel http://forum.ubuntuusers.de/topic/kivio-2-0-installieren/#post-2054853 habe ich dann eine Lösung gefunden. Dort ist ein kleiner Patch zu finden, der das Problem in der Zeile 155 angeht.
sub unpack { my $this=shift; $this->SUPER::unpack(@_); my $workdir=$this->unpacked_tree; my $rpmunpack="rpm2cpio ".$this->filename." | lzma -d | "; $this->do($rpmunpack."(cd $workdir; cpio --extract --make-directories --no-absolute-filenames --preserve-modification-time) 2>&1") or (($rpmunpack="rpm2cpio ".$this->filename." | ") and $this->do($rpmunpack."(cd $workdir; cpio --extract --make-directories --no-absolute-filenames --preserve-modification-time) 2>&1")) or die "Unpacking of '".$this->filename."' failed"; # cpio does not necessarily store all parent directories in an # archive, and so some directories, if it has to make them and has # no permission info, will come out with some random permissions. # Find those directories and make them mode 755, which is more # reasonable. my %seenfiles; open (RPMLIST, $rpmunpack."cpio -it --quiet |") or die "File list of '".$this->filename."' failed";
Ich habe einfach die entsprechenden vorhandenen Zeilen auskommentiert und diese Zeilen hineinkopiert. Nach der Änderung konnte ich mein Majordomo-Paket erfolgreich konvertieren mittels:
sudo alien --scripts majordomo-1.94.5-457.1.i586.rpm
Herzlichen Dank an den Autor hakunamatata.