You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
xed 3.8.9 hangs at startup when GTK4 is installed: Python plugins load Gtk-4.0 typelib into a GTK3 process #757
On my system where both GTK3 and GTK4 are installed, xed hangs at startup and never shows a window. The process does not crash and produces no core dump.
It seems xed's bundled Python plugins import gi.repository.Gtk, Gdk and GtkSource without calling gi.require_version() for those namespaces. PyGObject then resolves each one to the highest available typelib — Gtk-4.0, Gdk-4.0 — and libgtk-4.so.1 is dlopen()ed into a process that already has libgtk-3.so.0 loaded.
Both libraries register GObject types under the same names. The second registration fails:
g_boxed_type_register_static() returns 0, so g_once_init_leave_pointer() aborts on its assertion before releasing the one-time initialization lock. Every subsequent g_once_init_enter() on that address blocks forever, which is the hang.
Steps to reproduce
Install GTK4 alongside GTK3. GTK4 does not need to be used by anything — its presence alone provides Gtk-4.0.typelib.
Build/install xed with the libpeas Python 3 loader enabled.
Run xed from a terminal.
Expected behaviour
xed starts normally.
Actual behaviour
The three GLib assertion warnings above are printed, then the process hangs indefinitely. No window appears.
<string>:1: PyGIWarning: Gtk was imported without specifying a version first. Use gi.require_version('Gtk', '4.0') before import to ensure that the right version gets loaded.
4.0
$ python3 -c "from gi.repository import Gtk; print(Gtk._version)"
<string>:1: PyGIWarning: Gtk was imported without specifying a version first. Use gi.require_version('Gtk', '4.0') before import to ensure that the right version gets loaded.
4.0
I have also tested libpeas-1.38.1, xed works fine.
Activity
leigh123linux commentedon Sep 12, 2026
The issue doesn't reproduce.
https://src.fedoraproject.org/rpms/libpeas1/c/247a876ce08dc8cc7f56111ffd7fc8a9acefd4a8?branch=rawhide
Maybe gentoo has broken libpeas or PyGObject
slawern commentedon Sep 12, 2026
Would you mind running this one-liner on your box? It takes libpeas and xed out of the picture entirely — it's just PyGObject resolving the namespace:
Here I get:
Thanks for taking a look.
leigh123linux commentedon Sep 12, 2026
I get the same output
I have also tested libpeas-1.38.1, xed works fine.
leigh123linux commentedon Sep 12, 2026
Maybe this is failing for some reason
13f55ff