phillipberndt/fakexrandr

fakexrandr-manage crashes 'WARNING **: Failed to load shared library 'libgdk-3.so.0' referenced by the typelib /lib64/libgdk-3.so.0: undefined symbol: XRRGetMonitors'

ChrisCheney opened this issue · 1 comments

fakexrandr-manage fails to run on Fedora 27 with the following error:

** (process:1208): WARNING **: Failed to load shared library 'libgdk-3.so.0' referenced by the typelib: /lib64/libgdk-3.so.0: undefined symbol: XRRGetMonitors
Traceback (most recent call last):
  File "/usr/bin/fakexrandr-manage", line 37, in <module>
    from gi.repository import Gtk, Gdk
  File "/usr/lib64/python2.7/site-packages/gi/importer.py", line 145, in load_module
    importlib.import_module('gi.repository.' + dep.split("-")[0])
  File "/usr/lib64/python2.7/importlib/__init__.py", line 37, in import_module
    __import__(name)
  File "/usr/lib64/python2.7/site-packages/gi/importer.py", line 146, in load_module
    dynamic_module = load_overrides(introspection_module)
  File "/usr/lib64/python2.7/site-packages/gi/overrides/__init__.py", line 125, in load_overrides
    override_mod = importlib.import_module(override_package_name)
  File "/usr/lib64/python2.7/importlib/__init__.py", line 37, in import_module
    __import__(name)
  File "/usr/lib64/python2.7/site-packages/gi/overrides/Gdk.py", line 81, in <module>
    Color = override(Color)
  File "/usr/lib64/python2.7/site-packages/gi/overrides/__init__.py", line 202, in override
    assert g_type != TYPE_NONE
AssertionError

Looks like either your libgdk-3.0 isn't liked against libxrandr, which would be a bug in your GTK package or upstream GTK (check using ldd /lib64/libgdk-3.so.0 | grep Xrandr) or you are using an outdated version of the fakexrandr library that doesn't contain the XRRGetMonitors call yet. Fakexrandr builds the wrapper around xrandr automatically based on the Xrandr.h header file, so it always contains any new APIs automatically, including XRRGetMonitors - so simply rebuilding it could give you a working version.