Obwohl keine offizielle Version für Linux existiert, war die Installation der AusweisApp2 aus den Quellen des Herstellers - etwas unerwartet - kinderleicht. Es handelt sich um open source Software (EUPL) und ist C++. Dankenswerterweise ist das Programm so gut vorkonfiguriert, dass es sich nahezu alles beim Kompilieren selbst besorgt.
Edit: Motivation -- Man kann sich auf dem Steuerportal elster.de mit dem Neuen Personalausweis anmelden. Auch wenn man die gar nicht so schlechte Software ElsterFormular nicht unter Linux laufen lassen kann, steht damit eine Alternative zur Verfügung.
Meine nachfolgende Anleitung ist für openSUSE Leap 15, lässt sich aber bis auf Punkt 3 (Devel-Pakete) einfach auf andere Systeme übertragen.
Die jeweils letzte veröffentlichte Version findet sich im Repo des Herstellers der AusweisApp2. Dort die aktuellste Version herunterladen, im Mai 2019 z.B. AusweisApp2-1.16.2.tar.gz.
Wer meiner Anleitung folgt, muss das Archiv noch nicht entpacken, sondern nur in einem durch einen normalen User beschreibbaren Verzeichnis ablegen.
Das fertige Programm soll im Ordner /opt/AusweisApp2 liegen. Da der normale User dort keine Schreibrechte hat, als root das Verzeichnis anlegen und Jedermann Schreibrechte geben.
# su
# mkdir /opt/AusweisApp2
# chmod o+w /opt/AusweisApp2
Nach erfolgreicher Installation werden die Verzeichnisrechte wieder entsprechend zurückgesetzt.
# chmod o-w /opt/AusweisApp2
# chown root -R /opt/AusweisApp2/*
Das Komplieren auf einem relativ frischen openSUSE Leap 15 erforderte nachfolgende Pakete. Ich würde empfehlen sich die zusätzlich zur Installation empfohlenen Pakete zu speichern, um am Ende wieder alles aufräumen zu können. Bei mir sah das so aus, ich hatte jedoch CMake bereits installiert:
# zypper in Mesa-devel libX11-devel libxkbcommon-devel xcb-util-wm-devel xcb-util-image-devel\
xcb-util-keysyms-devel pcsc-lite-devel fontconfig-devel freetype-devel
Das Aufräumen aller zuvor installierten Devel-Pakete ging sodann mittels:
zypper rm damageproto-devel fixesproto-devel kbproto-devel libdrm-devel libgbm-devel libglvnd-devel libOSMesa8\
libOSMesa-devel libpcscspy0 libwayland-egl-devel libX11-devel libXau-devel libxcb-damage0 libxcb-devel\
libxcb-dpms0 libxcb-ewmh2 libxcb-record0 libxcb-screensaver0 libxcb-xf86dri0 libxcb-xinput0 libxcb-xtest0\
libxcb-xvmc0 libXdamage-devel libXext-devel libXfixes-devel libxkbcommon-devel libXxf86vm-devel Mesa-devel\
Mesa-dri-devel Mesa-libEGL-devel Mesa-libglapi-devel Mesa-libGL-devel Mesa-libGLESv1_CM1\
Mesa-libGLESv1_CM-devel Mesa-libGLESv2-2 Mesa-libGLESv2-devel pcsc-lite-devel pthread-stubs-devel\
wayland-devel xcb-util-image-devel xcb-util-keysyms-devel xcb-util-wm-devel xextproto-devel\
xf86vidmodeproto-devel xproto-devel Mesa-libGL-devel fontconfig-devel freetype2-devel freetype-devel\
libbz2-devel libexpat-devel libttf2
Ich habe ein kleines Skript namens compile-aa2.sh geschrieben, das neben die heruntergeladene Datei gelegt werden kann und das alle erforderlichen Schritte nachvollzieht. Ggf. muss die Datei mittels chmod +x compile-aa2.sh auführbar gemacht werden. Ich erkläre im Anschluss, was das Skript tut.
#!/bin/bash
TARGET=/opt/AusweisApp2
AA2FILE=`ls AusweisApp2*tar.gz | tail -n 1`
AA2PATH=`tar -tf $AA2FILE | head -1 | cut -f1 -d"/"`
mkdir aa2.tmp
cd aa2.tmp
echo "========== Build libs =========="
cmake -E tar xf ../$AA2FILE
cmake $AA2PATH/libs/ -DCMAKE_BUILD_TYPE=release -DDESTINATION_DIR=$TARGET
make
echo "========== Build App =========="
mkdir app
cd app
cmake ../$AA2PATH/ -DCMAKE_BUILD_TYPE=release -DCMAKE_PREFIX_PATH=$TARGET
make
cp ../$AA2PATH/resources/images/npa.svg $TARGET/
echo "========== Clean $TARGET =========="
LASTDIR=`pwd`
cd $TARGET
rm -rf include bin doc mkspecs translations phrasebooks ssl qml
cd lib
rm -rf pkgconfig cmake *.a *.la *.prl
rm -rf libQt5Designer* libQt5Help* libQt5Nfc* libQt5Sensors* libQt5Sql* libQt5Test* libQt5Multimedia* \
libQt5CLucene* libQt5Bluetooth*
strip *.so
cd $LASTDIR
cd src
strip AusweisApp2
mv AusweisApp2 AusweisApp2.desktop AusweisApp2.rcc config.json translations $TARGET/
cd ../../..
rm -r aa2.tmp
exit 0
Obiges Skript geht folgendermaßen vor:
Die Datei /optAusweisApp2.desktop muss bearbeitet werden, die korrekten Zeilen sind (Rest unverändert):
Exec=/opt/AusweisApp2/AusweisApp2
Icon=/opt/AusweisApp2/npa.svg
Die App kann im Hauptmenü verankert werden:
xdg-desktop-menu install --novendor /opt/AusweisApp2/AusweisApp2.desktop
Nicht vergessen, am Ende den Ziel-Ordner zu sichern und die Devel-Pakete wieder zu deinstallieren (siehe oben, 3. und 4.).
Fazit: Sauberer geht es nicht.