David Maus

Zotero Standalone ohne Abhängigkeit von GTK+ 3 und DBus

Mit Version 5.0 der Literaturverwaltung Zotero hat es eine für mich einschneidende Veränderung gegeben: Erstmals gibt es Zotero nicht mehr als in Firefox installierbare Erweiterung, sondern nur noch und ausschließlich als alleinstehendes Programm. Der Grund für diese Änderung liegt im Entschluss von Mozilla, das bisher verwendete System für Erweiterungen nicht mehr zu unterstützen.

Soweit, so schlecht. Dummerweise basiert die offizielle Version von Zotero Standalone auf einer Firefox Laufzeitumgebung, die ihrerseits von den Systembibliotheken DBus und GTK+ 3 abhängt, die auf meinen System nicht installiert sind und nicht installiert werden.

Ich muss mir also meine eigene Zotero Standalone bauen, die auf einer ebenfalls selbst gebauten Firefox Laufzeitumgebung basiert. Eine Anleitung im Zotero Wiki beschreibt, wie Zotero Standalone aus den Quellen erstellt wird. Da meine Linux-Distribution im Moment nur eine ältere Version von NodeJS bereitstellt, verwende ich ein stabiles Devuan, dass ich in Form eines QEMU Festplatten-Abbildes als Entwicklungsumgebung nutze.

Zwar liefert das aktuelle Devuan 1.0 auch nur die Version 6 von NodeJS (benötigt wird mindestens Version 8), aber NodeSource bietet die benötigte Version in einem Repository an, dass ich in der Paketverwaltung von Devuan ergänzen kann.

NodeJS aus fremden Repository installieren
root@devuan % wget -qO- https://deb.nodesource.com/gpgkey/nodesource.gpg.key | apt-key add -root@devuan % echo 'deb https://deb.nodesource.com/node_9.x jessie main' > /etc/apt/sources.list.d/nodesource.listroot@devuan % echo 'deb-src https://deb.nodesource.com/node_9.x jessie main' > /etc/apt/sources.list.d/nodesource.listroot@devuan % apt-get install apt-transport-httpsroot@devuan % apt-get updateroot@devuan % apt-get install nodejs

Mit der erforderlichen Version von NodeJS ausgestattet kopiere ich die Firefox Laufzeitumgebung von meinem System auf das Festplatten-Abbild.

Laufzeitumgebung von Firefox auf Festplattenabbild kopieren
dmaus@x220i % sudo qemu-nbd -c /dev/nbd0 virtual/devuan.imgdmaus@x220i % sudo fdisk -l /dev/nbd0dmaus@x220i % sudo mount /dev/nbd0p1 /mnt/dmaus@x220i % sudo cp -ra /usr/lib/firefox /mnt/home/dmausdmaus@x220i % sudo umount /mntdmaus@x220i % sudo qemu-nbd -d /dev/nbd0

Und nun kann es losgehen. Ich folge der Anleitung bis zu dem Schritt, in dem die Firefox Laufzeitumgebung heruntergeladen und vorbereitet wird. Da ich meine eigene Laufzeitumgebung verwenden will, erstelle ich eine Shellscript, das die Laufzeitumgebung aus dem Homeverzeichnis kopiert und dann anpasst.

Laufzeitumgebung kopieren und anpassen
#!/bin/bashset -euo pipefailCALLDIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )". "$CALLDIR/config.sh"## Make various modifications to omni.ja#function modify_omni {… wie fetch_xulrunner.sh … }# Add devtools server from browser omni.jafunction extract_devtools {… wie fetch_xulrunner.sh … }mkdir -p xulrunnercd xulrunnerrm -rf firefox-x86_64cp -ra ~/firefox ./firefox-x86_64cd firefox-x86_64modify_omniextract_devtoolscd ..echo Done

Als letztes entferne ich die Architektur i686 aus dem Script build.sh, da ich nur die 64bit-Variante erstelle.

Fertig! Der letzte Schritt der Anleitung erzeugt ein Verzeichnis mit Zotero Standalone und meiner Laufzeitumgebung. Ich kopiere es vom Festplatten-Abbild in ein lokales Installationsverzeichnis und komme nun auch in den Genuss von Zotero 5.

Zotero Standalone @ x220i