Subject: bug#64836: pygobject GTK modules lookup fails following CUPS graft

From: Maxim Cournoyer <[email-masked]>
Date: Mon, 24 Jul 2023 13:30:20 -0400

Hi,

I'm still quite puzzled by this, but I'm relatively confident that
commit 2986ba899f5ee374008c501e26fb653147ed7891 ("gnu: cups: Replace
with 2.4.6 [fixes CVE-2023-34241].") caused the following wxPython /
pygobject script to fail:

--8<---------------cut here---------------start------------->8---
$ guix time-machine --commit=2986ba899f5ee374008c501e26fb653147ed7891 \
  -- shell --rebuild-cache --pure python python-pygobject python-wxpython gtk+ \
  -- ./hang-repro.py
--8<---------------cut here---------------end--------------->8---

Where hang-repro.py contains:

The output produced is:

--8<---------------cut here---------------start------------->8---
/gnu/store/88r0c82k32zq8nmx5abn1fxvf7wxyw0j-profile/lib/python3.10/site-packages/gi/module.py:163: Warning: cannot register existing type 'GtkWidget'
  g_type = info.get_g_type()
/gnu/store/88r0c82k32zq8nmx5abn1fxvf7wxyw0j-profile/lib/python3.10/site-packages/gi/module.py:163: Warning: cannot add class private field to invalid type '<invalid>'
  g_type = info.get_g_type()
/gnu/store/88r0c82k32zq8nmx5abn1fxvf7wxyw0j-profile/lib/python3.10/site-packages/gi/module.py:163: Warning: cannot add private field to invalid (non-instantiatable) type '<invalid>'
  g_type = info.get_g_type()
/gnu/store/88r0c82k32zq8nmx5abn1fxvf7wxyw0j-profile/lib/python3.10/site-packages/gi/module.py:163: Warning: g_type_add_interface_static: assertion 'G_TYPE_IS_INSTANTIATABLE (instance_type)' failed
  g_type = info.get_g_type()
/gnu/store/88r0c82k32zq8nmx5abn1fxvf7wxyw0j-profile/lib/python3.10/site-packages/gi/module.py:163: Warning: cannot register existing type 'GtkBuildable'
  g_type = info.get_g_type()
/gnu/store/88r0c82k32zq8nmx5abn1fxvf7wxyw0j-profile/lib/python3.10/site-packages/gi/module.py:163: Warning: g_type_interface_add_prerequisite: assertion 'G_TYPE_IS_INTERFACE (interface_type)' failed
  g_type = info.get_g_type()
/gnu/store/88r0c82k32zq8nmx5abn1fxvf7wxyw0j-profile/lib/python3.10/site-packages/gi/module.py:163: Warning: g_once_init_leave: assertion 'result != 0' failed
  g_type = info.get_g_type()
--8<---------------cut here---------------end--------------->8---

and execution hangs (!)

The parent commit doesn't exhibit the problem:

--8<---------------cut here---------------start------------->8---
$ guix time-machine --commit=88d107b2b9bf72a628065a1475ecce7b49852c35 \
  -- shell --rebuild-cache --pure python python-pygobject python-wxpython gtk+ \
  -- ./hang-repro.py
$ echo $?
0
--8<---------------cut here---------------end--------------->8---

I've run the above using Guix at commit 21b718f, but since I'm using
time-machine, it shouldn't matter.

I've very puzzled as to why grafting CUPS could create such a problem
:-).  Help wanted!

-- 
Thanks,
Maxim