ubuntuusers.de

Kompilieren

Archivierte Anleitung

Dieser Artikel wurde archiviert. Das bedeutet, dass er nicht mehr auf Richtigkeit überprüft oder anderweitig gepflegt wird. Der Inhalt wurde für keine aktuell unterstützte Ubuntu-Version getestet. Wenn du Gründe für eine Wiederherstellung siehst, melde dich bitte in der Diskussion zum Artikel. Bis dahin bleibt die Seite für weitere Änderungen gesperrt.


Anmerkung: Falkon archiviert

Falkon/Falkon-Icon.png

Falkon aus den Paketquellen wird, anders als beispielsweise Firefox oder Chrome/Chromium nicht regelmäßig mit (Sicherheits-)Updates versorgt. Die Version auf den Ubuntu-Quellen setzt immer auf die in der jeweiligen Ubuntuversion vorliegende Qt5-WebEngine-Version auf.

Um Falkon unter 20.04 mit einem aktuellen QtWebEngine verwenden zu können, muss der Browser - mit den entsprechenden Qt5-Paketen - aus dem Quellcode erstellt werden. Dabei ist weniger die Version des Browsers als die Aktualität des Qt5-Version für die Sicherheit des Browsers ausschlaggebend. Standardmäßig wird in 20.04 Version Qt5.12.8 🇬🇧 verwendet, die am 8. April 2020 veröffentlicht worden ist. Für Ubuntu 20.04 werden keine neueren Qt-Versionen in die Quellen kommen.

Derzeit (Stand Dezember 2020) sind die aktuellsten benötigten Qt5-Pakete, die über ein PPA zu beziehen sind, für Version Qt5.15.2 🇬🇧, veröffentlicht am 20.November 2020, greifbar.

Hinweis:

Das Verwenden von Teilen aus unterschiedlichen Qt-Versionen kann ggf. zu Problemen mit anderen Qt-Programmen führen (siehe diesen Thread im Forum). Die Verwendung erfolgt auf "eigene Gefahr". Bisher ist es in der Praxis allerdings noch zu keinem Problem mit anderen Programmen gekommen. Falls es dazu kommen sollte, bitte im Diskussionsthread melden.

Sourcecode beziehen

Die aktuelle stabile Version oder die Entwicklerversion kann von der Projektseite ⮷ bezogen werden, dort im Dropdownmenü oben den gewünschten branch auswählen. Den Code als Archiv herunterladen und entpacken[1].

PPA einrichten

Die benötigten Qt5.15-Pakete können aus einem PPA[2] bezogen werden, das speziell für Ubuntu 20.04 eingerichtet wurde.

Adresszeile zum Hinzufügen des PPAs:

  • ppa:beineri/opt-qt-5.15.2-focal

Hinweis!

Zusätzliche Fremdquellen können das System gefährden.


Ein PPA unterstützt nicht zwangsläufig alle Ubuntu-Versionen. Weitere Informationen sind der Wiki/Vorlagen/PPA/ppa.png PPA-Beschreibung des Eigentümers/Teams beineri zu entnehmen.

Der Eigentümer erstellt meist zeitnah zur Veröffentlichung neuer Qt-Releases neue PPAs, daher ist es sinnvoll, auf seiner Seite nach dem neusten Stand/Version Ausschau zu halten. Die Paketnamen verändern sich nicht, sodass mit einem PPA für die neue Qt-Version normalerweise nur die Pakete aktualisiert werden müssen.

Abhängigkeiten installieren

Zunächst die Abhängigkeiten zur Erstellung installieren, z.B. mit

sudo apt-get build-dep falkon 

Neben den üblichen Entwicklerwerkzeugen aus dem Metapaket build-essential werden darüber hinaus folgende Pakete benötigt[3]:

  • qt515webengine (ppa)

  • qt515x11extras (ppa)

  • qt515svg (ppa)

  • libkf5i18n-dev

  • libkf5archive-dev

  • libpyside2-dev

  • libshiboken2-dev

  • cmake

  • clang

  • python3-pyside2.qtwebenginecore

  • python3-pyside2.qtwebenginewidgets

  • python3-pyside2.qtuitools

  • python3-pyside2.qtsql

Befehl zum Installieren der Pakete:

sudo apt-get install qt515webengine qt515x11extras qt515svg libkf5i18n-dev libkf5archive-dev libpyside2-dev libshiboken2-dev cmake clang python3-pyside2.qtwebenginecore python3-pyside2.qtwebenginewidgets python3-pyside2.qtuitools python3-pyside2.qtsql 

Oder mit apturl installieren, Link: apt://qt515webengine,qt515x11extras,qt515svg,libkf5i18n-dev,libkf5archive-dev,libpyside2-dev,libshiboken2-dev,cmake,clang,python3-pyside2.qtwebenginecore,python3-pyside2.qtwebenginewidgets,python3-pyside2.qtuitools,python3-pyside2.qtsql

Code kompilieren

Um die für die Kompilierung[4] nötigen nach /opt installierten Pakete verwenden zu können, muss die Umgebungsvariable angepasst werden. Um Komplikationen mit anderen Qt5-Programmen zu vermeiden, wird PATH sinnvollerweise nur temporär für Erstellung im Terminal[5] mit dem Befehl

PATH="/opt/qt515/:$PATH" 

so erweitert, dass für die Kompilierung zuerst dort nach den nötigen Bibliotheken etc. gesucht wird.

Im Download-Ordner des Falkon-Codes ein build-Verzeichnis anlegen und dorthin wechseln

mkdir build && cd build 

Dort mit

cmake ..
make 

den Code übersetzen. Die Kompilierung kann einige Zeit in Anspruch nehmen; im Terminal werden zudem etliche Warnungen ausgegeben, der Prozess sollte aber ohne Abbruch durchlaufen. Ein einfaches Paket kann dann mit[6]

sudo checkinstall 

erstellt und installiert werden. Dabei falkon als Namen angeben und eine höhere Versionsnummer als die der in den Quellen vorliegenden Version verwenden.

Falls Falkon ersten Aufruf nicht startet, und im Terminal eine Fehlermeldung über eine fehlende .so-Datei ausgibt, hilft es,

sudo ldconfig 

auszuführen.

Unterschiede in der GUI zum Paket in den Quellen

Die verwendete Qt- und Falkon-Version lässt sich im Browser unter "Help → About Falkon" überprüfen. Unter Ubuntu GNOME ist die Oberfläche in englisch, auch eine Kompilierung unter Verwendung des qt515translations-Paketes liefert keine Änderung; eine Umstellung im Browser ist leider nicht vorgesehen.

Einige der mitinstallierten Extensions (z.B. middleclickloader) funktionieren momentan nicht; ggf. ein Problem im Zusammenspiel zwischen denn in /opt/ installierten Qt-Anwendungen und Bibliotheken, und über die Quellen installierten Qt-Paketen.

Die PyPlugin-Schnittstelle funktioniert leider nicht; im Terminal erscheint eine Meldung

Falkon: Python plugin support initialized
Traceback (most recent call last):
  File "/usr/lib/x86_64-linux-gnu/plugins/falkon/runaction/runaction.py", line 28, in init
    plugins = Falkon.MainApplication.instance().plugins()
AttributeError: 'PySide2.QtCore.QCoreApplication' object has no attribute 'plugins'

Der Fehler wird schon für QT-Version 5.13 beschrieben (siehe diesen Bugreport 🇬🇧) - eine Lösung ist leider nicht aufgeführt. Das tritt auch schon unter qt 5.12.8 auf; ein dagegen gebauter Falkon hat ebenfalls keine PyPlugin-Unterstützung.

PyPlugins in portabler Version nutzbar

Es ist allerdings möglich, Falkon im build-Verzeichnis als "portable" Version zu starten. Dazu in dem /PFAD/ZUM/QUELLCODE/build/bin wechseln und dort da Programm mit

./falkon -o 

aufrufen. So ist die PyPlugin-Unterstützung gegeben; zusätzlich installierte Plugins müssten dazu in den Ordner .../build/bin/plugins/ entpackt werden. Es fehlen dann allerdings die Icons für die Schaltflächen, die zwar vorhanden, aber nicht sichtbar sind. Wenn man mit der Maus über die obere Leiste fährt, werden aber Tool-Tips angezeigt, die die Funktion der darunterliegenden Tasten kurz beschreiben.

Deinstallation

Das Paket selbst kann über die Paketverwaltung entfernt werden. Das Sourcecode-Archiv kann nach erfolgreichem Erstellen gelöscht werden. Nach der Deinstallation kann auch das Verzeichnis mit dem Quellcode gelöscht werden; weitere Dateien befinden sich in ~/.config/falkon und ~/.cache/falkon.

Nicht mehr benötigte Pakete, die zur Erstellung nötig waren, aber ansonsten nicht notwendig sind, lassen sich mit

sudo apt-get autoremove 

entfernen

Diese Revision wurde am 3. September 2022 09:13 von karzer erstellt.
Die folgenden Schlagworte wurden dem Artikel zugewiesen: Internet, Qt, Browser