Subject: Cambalache: GTK 4 projects don't work
From: Luis Felipe <[email-masked]>
To: Luis Felipe via Bug reports for GNU Guix <[email-masked]>
Date: Tue, 27 Sep 2022 13:22:34 +0000
List-Id: <debbugs-submit.debbugs.gnu.org>

Hi, this is using Cambalache 0.10.3 on Guix System (guix 77e768a).

The problem seems limited to GTK 4 projects. GTK 3 worked for me.

STEPS TO REPRODUCE

1. Launch Cambalache
2. Create a new GTK 4 project

2.1. Click "Create a new project" button
2.3. Add project name (e.g. test)
2.4. Choose location
2.5. Select Gtk 4 as Toolkit target
2.6. Add UI file name (e.g. window.ui)
2.7. Click "Create" button

EXPECTED RESULT

☑ The workspace is loaded  

☑ Clicking Toplevel → GtkApplicationWindow add a new app window to the workspace  

UNEXPECTED RESULT

☒ The workspace loads with an error:

~~~
Workspace process error
Stopping auto restart
~~~

☒ I can't add any GUI component to the workspace. Clicking Toplevel → GtkApplicationWindow adds the window to the project tree but not to the workspace  

ADDITIONAL INFORMATION

Starting Cambalache from a terminal and following the steps to reproduce I can see the following error:

~~~
LANG=C cambalache

** (process:18718): WARNING **: 08:08:13.250: Failed to load shared library '/gnu/store/zhax2b3av3cr8nfhhl5fjacj4ayn1xcb-gtk-4.8.0/lib/libgtk-4.so.1' referenced by the typelib: libgtk-4.so.1: cannot open shared object file: No such file or directory
Traceback (most recent call last):
  File "/gnu/store/r69vjhbz1vjjaij5wp3nvwvc4czk0pj9-cambalache-0.10.3/lib/python3.9/site-packages/cambalache/priv/merengue/merengue", line 47, in <module>
    from merengue import MrgApplication
  File "/gnu/store/r69vjhbz1vjjaij5wp3nvwvc4czk0pj9-cambalache-0.10.3/lib/python3.9/site-packages/cambalache/priv/merengue/__init__.py", line 43, in <module>
    from .mrg_application import MrgApplication
  File "/gnu/store/r69vjhbz1vjjaij5wp3nvwvc4czk0pj9-cambalache-0.10.3/lib/python3.9/site-packages/cambalache/priv/merengue/mrg_application.py", line 30, in <module>
    from gi.repository import GLib, GObject, Gio, Gdk, Gtk
  File "<frozen importlib._bootstrap>", line 1007, in _find_and_load
  File "<frozen importlib._bootstrap>", line 986, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 664, in _load_unlocked
  File "<frozen importlib._bootstrap>", line 627, in _load_backward_compatible
  File "/gnu/store/b07y8a2axslnz97pjdg7lp73xwk1gf8w-python-pygobject-3.40.1/lib/python3.9/site-packages/gi/importer.py", line 145, in load_module
    dynamic_module = load_overrides(introspection_module)
  File "/gnu/store/b07y8a2axslnz97pjdg7lp73xwk1gf8w-python-pygobject-3.40.1/lib/python3.9/site-packages/gi/overrides/__init__.py", line 118, in load_overrides
    override_mod = importlib.import_module(override_package_name)
  File "/gnu/store/qar3sks5fwzm91bl3d3ngyrvxs7ipj5z-python-3.9.9/lib/python3.9/importlib/__init__.py", line 127, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "/gnu/store/b07y8a2axslnz97pjdg7lp73xwk1gf8w-python-pygobject-3.40.1/lib/python3.9/site-packages/gi/overrides/Gtk.py", line 111, in <module>
    class Widget(Gtk.Widget):
  File "/gnu/store/b07y8a2axslnz97pjdg7lp73xwk1gf8w-python-pygobject-3.40.1/lib/python3.9/site-packages/gi/module.py", line 168, in __getattr__
    interfaces = tuple(interface for interface in get_interfaces_for_object(info)
  File "/gnu/store/b07y8a2axslnz97pjdg7lp73xwk1gf8w-python-pygobject-3.40.1/lib/python3.9/site-packages/gi/module.py", line 94, in get_interfaces_for_object
    interfaces.append(getattr(module, name))
  File "/gnu/store/b07y8a2axslnz97pjdg7lp73xwk1gf8w-python-pygobject-3.40.1/lib/python3.9/site-packages/gi/overrides/__init__.py", line 32, in __getattr__
    return getattr(self._introspection_module, name)
  File "/gnu/store/b07y8a2axslnz97pjdg7lp73xwk1gf8w-python-pygobject-3.40.1/lib/python3.9/site-packages/gi/module.py", line 207, in __getattr__
    wrapper = metaclass(name, bases, dict_)
  File "/gnu/store/b07y8a2axslnz97pjdg7lp73xwk1gf8w-python-pygobject-3.40.1/lib/python3.9/site-packages/gi/types.py", line 247, in __init__
    register_interface_info(cls.__info__.get_g_type())
TypeError: must be an interface
WARNING:cambalache.cmb_view Error stoping /gnu/store/r69vjhbz1vjjaij5wp3nvwvc4czk0pj9-cambalache-0.10.3/lib/python3.9/site-packages/cambalache/priv/merengue/merengue [Errno 3] No such process

** (process:18729): WARNING **: 08:08:13.405: Failed to load shared library '/gnu/store/zhax2b3av3cr8nfhhl5fjacj4ayn1xcb-gtk-4.8.0/lib/libgtk-4.so.1' referenced by the typelib: libgtk-4.so.1: cannot open shared object file: No such file or directory
Traceback (most recent call last):
  File "/gnu/store/r69vjhbz1vjjaij5wp3nvwvc4czk0pj9-cambalache-0.10.3/lib/python3.9/site-packages/cambalache/priv/merengue/merengue", line 47, in <module>
    from merengue import MrgApplication
  File "/gnu/store/r69vjhbz1vjjaij5wp3nvwvc4czk0pj9-cambalache-0.10.3/lib/python3.9/site-packages/cambalache/priv/merengue/__init__.py", line 43, in <module>
    from .mrg_application import MrgApplication
  File "/gnu/store/r69vjhbz1vjjaij5wp3nvwvc4czk0pj9-cambalache-0.10.3/lib/python3.9/site-packages/cambalache/priv/merengue/mrg_application.py", line 30, in <module>
    from gi.repository import GLib, GObject, Gio, Gdk, Gtk
  File "<frozen importlib._bootstrap>", line 1007, in _find_and_load
  File "<frozen importlib._bootstrap>", line 986, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 664, in _load_unlocked
  File "<frozen importlib._bootstrap>", line 627, in _load_backward_compatible
  File "/gnu/store/b07y8a2axslnz97pjdg7lp73xwk1gf8w-python-pygobject-3.40.1/lib/python3.9/site-packages/gi/importer.py", line 145, in load_module
    dynamic_module = load_overrides(introspection_module)
  File "/gnu/store/b07y8a2axslnz97pjdg7lp73xwk1gf8w-python-pygobject-3.40.1/lib/python3.9/site-packages/gi/overrides/__init__.py", line 118, in load_overrides
    override_mod = importlib.import_module(override_package_name)
  File "/gnu/store/qar3sks5fwzm91bl3d3ngyrvxs7ipj5z-python-3.9.9/lib/python3.9/importlib/__init__.py", line 127, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "/gnu/store/b07y8a2axslnz97pjdg7lp73xwk1gf8w-python-pygobject-3.40.1/lib/python3.9/site-packages/gi/overrides/Gtk.py", line 111, in <module>
    class Widget(Gtk.Widget):
  File "/gnu/store/b07y8a2axslnz97pjdg7lp73xwk1gf8w-python-pygobject-3.40.1/lib/python3.9/site-packages/gi/module.py", line 168, in __getattr__
    interfaces = tuple(interface for interface in get_interfaces_for_object(info)
  File "/gnu/store/b07y8a2axslnz97pjdg7lp73xwk1gf8w-python-pygobject-3.40.1/lib/python3.9/site-packages/gi/module.py", line 94, in get_interfaces_for_object
    interfaces.append(getattr(module, name))
  File "/gnu/store/b07y8a2axslnz97pjdg7lp73xwk1gf8w-python-pygobject-3.40.1/lib/python3.9/site-packages/gi/overrides/__init__.py", line 32, in __getattr__
    return getattr(self._introspection_module, name)
  File "/gnu/store/b07y8a2axslnz97pjdg7lp73xwk1gf8w-python-pygobject-3.40.1/lib/python3.9/site-packages/gi/module.py", line 207, in __getattr__
    wrapper = metaclass(name, bases, dict_)
  File "/gnu/store/b07y8a2axslnz97pjdg7lp73xwk1gf8w-python-pygobject-3.40.1/lib/python3.9/site-packages/gi/types.py", line 247, in __init__
    register_interface_info(cls.__info__.get_g_type())
TypeError: must be an interface
WARNING:cambalache.cmb_view Error stoping /gnu/store/r69vjhbz1vjjaij5wp3nvwvc4czk0pj9-cambalache-0.10.3/lib/python3.9/site-packages/cambalache/priv/merengue/merengue [Errno 3] No such process
~~~

---
Luis Felipe López Acevedo
https://luis-felipe.gitlab.io/