Snap von AusweisApp2 unter Fedora 30

Heute hatte mich Andreas angeschrieben, weil unter Fedora 30 die AusweisApp2 keinen Treiber für den Kartenleser finden konnte. Das ist immer ein Anzeichen dafür, dass irgendetwas mit dem PCSC-Daemon nicht stimmt.

Das Problem lässt sich zum Glück relativ einfach auf zwei Arten lösen. Die einfache Variante deaktiviert SELinux bzw. setzt es auf den reinen Logging-Modus, die zweite setzt die korrekten Policies für SELinux.

SELinux deaktivieren

Diese Variante wird nicht unbedingt empfohlen. Es ist aber die einfachere und schnellere Lösung. Man muss dazu nur die Datei „/etc/sysconfig/selinux“ öffnen und den Parameter „SELINUX“ auf „permissive“ setzen. Nach einem Neustart funktioniert der Card-Daemon wie gewollt.

Policy für SELinux anlegen

Für diese Methode ist es notwendig, dass das Snap von AusweisApp2 installiert ist. Die beiden folgenden Befehle müssen als „root“ ausgeführt werden:

ausearch -c 'snap' | audit2allow -M snap.ausweisapp2-ce
semodule -i snap.ausweisapp2-ce.pp

Danach muss man den Rechner neu starten.

Kurztipp: Alte Snap-Revisionen deinstallieren

Snap hat die Eigenschaft, dass es standardmäßig drei Revisionen eines Pakets vorhält. Der Vorteil ist, dass man dadurch sehr schnell auf eine ältere Version eines Programms zurückwechseln kann, falls eine neue Version Probleme machen sollte. Der Nachteil ist, dass jede Revision Plattenplatz benötigt. Die Deinstallation ist kein großer Aufwand, bei vielen Snaps ist es aber relativ viel Tipparbeit. Deshalb hier mal ein Einzeiler, welcher alle alten Revisionen in einem Rutsch deinstalliert:

snap list --all | grep deaktiviert | awk '{system("sudo snap remove " $1 " --revision " $3)}'

Wer eine andere Systemsprache als Deutsch benutzt, muss den Begriff „deaktiviert“ entsprechend anpassen.

Warum ich Pakete für den Snap-Store bereitstelle

Neben der AusweisApp2 habe ich mit PyMOL eine weitere Anwendung für den Snap-Store paketiert.

Was ist PyMOL?

PyMOL ist ein 3D-Viewer und Editor für Proteine und im Bereich der Protoemik eine Standardanwendung. Nahezu alle Bilder, welche die Struktur von Proteinen zeigen, wurden mit Hilfe von PyMOL erstellt. Ein Beispiel sieht man hier:

PDB 1ABI: Thrombin (Grüne und rote Oberflächen) mit Hirudin („Stick“-Darstellung) gerendert mit PyMOL (Eigene Arbeit).

Ein Problem der Software ist, dass sie in zwei Versionen vertrieben wird:

Eine kommerzielle Version mit Support und eine freie Version (MIT-Lizenz). Letztere enthält etwas weniger Features (z.B. kein Antialiasing in der OpenGL-Darstellung), für die meisten Benutzer ist diese aber vollkommen ausreichend. Die freie Version dürfte von den meisten Benutzern verwendet werden, da die günstigste Lizenz der kommerziellen Version $99 pro Jahr kostet.

Die kommerzielle Version wird mit einer kompletten Python-3.7-Umgebung ausgeliefert (Conda), die freie Version ist in vielen Distributionen verfügbar. Leider liefern gerade die LTS-Distributionen nur die Version 1.8 oder noch ältere Versionen aus. Als Anwender hat man also nur die Möglichkeit die kommerzielle Version einzusetzen oder das Programm aus dem Quellcode selbst zu bauen.

PyMOL selbst ist eine Mischung aus Python -und C++-Code. Die Oberfläche ist dabei in Python (PyQT, früher Tcl/Tk) realisiert, der grundlegende Code in C++. Die Anzahl der Abhängigkeiten ist zwar relativ klein, aber in dem Umfeld wo das Programm üblicherweise eingesetzt wird, finden sich nur sehr wenige versierte Linux-Benutzer, welche einfach so mal ein Programm kompilieren können. Vor allem, weil PyMOL ein externes Python-Modul und eine externe C++-Headerdatei benötigt, welche jeweils händisch installiert werden müssen.

„Warum ich Pakete für den Snap-Store bereitstelle“ weiterlesen