Opensuse Leap 42.1 und 13.2 – aktuelle Versionen des freshplayerplugin-Pakets führen zum Crash von Eclipse mit GTK2

Es gibt Probleme, deren Ursachen sind schwer zu finden und können einen in den Wahnsinn treiben. So zuletzt das Phänomen, dass Eclipse mit GTK2 nach Updates sowohl von Opensuse 13.2 als auch Opensuse Leap 42.1 permanent und zunächst scheinbar erratisch abstürzten.

Interessanterweise tauchen die Probleme mit Eclipse unter GTK3 nicht auf. Allerdings zeigt die Eclipse UI unter GTK3 noch einige unschöne Grafik-Probleme.

Es dauerte eine Weile, bis ich herausfand, dass die Abstürze von Eclipse/GTK2 nur auftraten, wenn ich Content Assist Funktionalitäten benutzte (was ich natürlich sehr regelmäßig tue) und dabei Zusatzinformationen zu Elementen der Vorschlagsliste angezeigt wurden. Typischerweise ist es so, dass diese Zusatzinformationen aus HTML-Vorgaben gerendert werden. Die Java Runtime JVM nutzt hierzu “webkit”-Funktionalitäten (der Umgebung).

Es dauerte noch einige Zeit mehr, bis ich herausfand, dass das Problem auf einer frischen Installation von OS 13.2 oder LEAP 42.1 nicht auftrat – wohl aber nach einer Reihe von Updates der Opensuse-Umgebung. Leider ist es durchaus schwierig, herauszufinden, welches Paket unter hunderten genau der Verursacher der Probleme ist. Dass es mit Web/HTML-Rendering zu tun haben musste, war aber klar.

Durch eine Backtrace-Analyse des JVM-Absturzes kam ich heute einen substanziellen Schritt weiter:

Die erhaltenen Absturz-Informationen der JVM zeigten, dass im Rendervorgang auch eine “freshwrapper”-Bibliothek tangiert wurde – genauer:
“/usr/lib64/browser-plugins/libfreshwrapper-pepperflash.so” aus dem Paket freshplayerplugin.

Das Paket “freshplayerplugin” liefert einen nützlichen Firefox-Wrapper für Chromes/Chromiums “pepper-flash”-Plugin. Letzteres ermöglicht das Abspielen von Flash-Inhalten auch unter Firefox – das ist u.a. nützlich für Live-Streams des einen oder anderen Fernsehsenders, der bislang noch nicht auf vernünftige Formate umgestellt hat.

Ich hatte das Paket “freshplayerplugin” unter Leap 42.1 und OS 13.2 im Zuge von Updates in der aktuellsten Variante “0.3.4-20.1” vom Packman-Repository installiert.

Tatsächlich zeigte sich, dass mit einer Installation der Paketversion “0.3.2” aus den jeweiligen Hauptrepositories von SuSE die Eclipse-Absturz-Probleme unter Opensuse Leap 42.1 verschwanden. Bzgl. OS 13.2 muss ich mich noch kundig machen.

Ich hoffe, diese Info zumindest zu Leap 42.1 hilft auch anderen Betroffenen, die Eclipse mit GTK2 nutzen wollen.

Opensuse Leap 42.1 – nerviger YaST Bug

Auf meinem Mehrschirm-Arbeitsplatz offenbarte sich in den letzten Tagen ein sehr nerviger Bug von YaST:

Startet man YaST (yast2) über das Startmenü, authentifiziert sich danach als root und ruft dann die “Softwareverwaltung auf, so geschieht u.U. und erratisch Folgendes: Das Fenster für die SW-Verwaltung öffnet sich, die Repositories werden eingelesen und das Fenster strong>schließt sich sofort wieder.

Das passiert nicht, wenn man “yast2” als root über ein Terminal startet, u.U. aber auch sehr wohl, wenn man als normaler User in einem Terminalfenster “/usr/bin/xdg-su -c /sbin/yast2” absetzt.

Es hat mich ein Weilchen gekostet herauszufinden, unter welchen Umständen dieser Bug überhaupt auftritt:

Es geschieht nur in Mehrbildschirm-Konfigurationen und immer nur dann, wenn YaST nicht von der Kontroll-Leiste des Hauptschirms gestartet wird. Oder: Wenn das anschließend gestartete YasT-Übersichts-Fenster auf einem anderen als dem Hauptschirm positioniert wird. Dito für den Start über ein Terminalfenster.

Workaround:
Das grafische YaST unter Leap 42.1 z.Z. immer über das Startmenü des Hauptbildschirms starten. Das sich öffnende YaST2-Übersichtsfenster anschließend auf den Hauptschirm verschieben, falls es nicht dort geöffnet worden sein sollte. Erst dann die Softwareverwaltung aufrufen.

Na, es wird wohl noch eine Weile dauern, bis Leap mit KDE 5 so stabil sein wird wie Opensuse 13.2! es ist bei weitem nicht so schlimm wie bei der Einführung von KDE 4.0 oder systemd. Aber bei dem einen oder anderen Erlebnis der letzten Tage werden bei mir jedenfalls finstere Erinnerungen wach ….

Opensuse Leap 42.1- grafischer Login als root

Opensuse setzt wie andere Distributionen aus Sicherheitsgründen darauf, dass “root” möglichst nicht unter dem X-Window-System arbeiten soll. Das ist natürlich sehr vernünftig – blockiert aber ggf. Anfänger bei der notwendigen Durchführung elementarer Aufgaben.

Hinzu kommen manchmal banale Dinge – wie etwa aktuelle KDE Fehler. So erscheinen z.Z. im aktuellen KDE 5 Desktop von Leap 42.1 diverse GTK-Applikationen, die man als User root von einem Terminalfenster aus startet, mit deutlich kleineren Standardfonts als der Fontgröße, die die man für die eigene User-Oberfläche (und QT-Anwendungen) aber auch für GTK-Styles und GTK-Anwendungen eingestellt hat.

Das gilt für YaST, die “systemsettings5” aber z.B. auch für das VMware User-Interface. Startet man YaST2 als normaler User etwa über

/usr/bin/xdg-su -c /sbin/yast2

so werden die Fonts in der erwarteten, voreingestellten Größe dargestellt. Loggt man sich dagegen als root auf einem Terminalfenster ein und startet dort am Prompt “yast2 &”, so erscheinen die Fonts wesentlich kleiner (und pixeliger). Die fehlerhafte Anzeige passiert auch, wenn man als User root die (root-eigenen) Fonts und GTK-Stile über die “Systemeinstellungen” bereits geändert hat. Das alles war beim KDE 4.14 unter Opensuse 13.2 nicht der Fall.

Manche werden sagen: Na und? Antwort und Gegenfrage: Schon mal an einem hochauflösenden 4K-Schirm gearbeitet? Da werden zu kleine Font-Darstellungen in der Praxis total nervig.

Nicht jeder Anfänger beherrscht alternativ die Klaviatur von Systemkommandos am “bash”-Prompt. Zudem muss man die Namen und Pfade diverser ausführbarer Programme ggf. kennen oder ermitteln können, um die überhaupt aufrufen zu können. Und wenn dann noch eine fehlerhafte Darstellung kommt …

Also ich habe im Umfeld des noch fehlerbehafteten KDE5 einiges Verständnis dafür, wenn jemand als root mal temporär unter der X-Window-Oberfläche arbeiten will.

Wie kann man sich als root unter Leap 42.1 Zugang zur grafischen Oberfläche verschaffen? Man wird schnell feststellen, dass der neue Breeze-Anmeldebildschirm einen Login als root (in seiner Standardeinstellung) nicht zulässt. Es gibt dann 3 Möglichkeiten:

Möglichkeit 1 – die harte Tour über startx:
Aus der grafischen Oberfläche ausloggen => Wechsel zur Konsole mit “Ctrl-Alt-F1” => als root einloggen => “init 3” absetzen (ggf. nochmal Ctrl-Alt-F1, falls man nicht wieder am Prompt landet) => “startx”

Möglichkeit 2 – Andere Einstellung des Breeze Anmelde-Bildschirms:
Startmenü => Einstellungen => Systemeinstellungen => “Starten und Beenden” => Anmeldebildschirm (SDDM) => Erweitert => Feld “Minimale UID auf den Wert “0” (ohne Anführungszeichen) setzen.

Möglichkeit 3 – Wahl eines anderen geeigneten Designs des Anmeldebildschirms:
So lässt etwa “Maldives” ein Login als root zu.

Dennoch gilt natürlich: Als User root so viele Aufgaben wie möglich direkt in einem Terminal und auf der Kommandozeile erledigen.