Subject: Re: bug#57379: GUI toolkit for Guile 3.0?

From: David Pirotte <[email-masked]>
Date: Sun, 28 Aug 2022 19:42:26 -0300

Hello Lee,

> Thank you greatly, David. I cleaned up my guix environment and
> reinstalled G-Golf, and now the hello world script runs but hangs
> after these errors:

> (g-golf-hello-world.scm:494347): GLib-GObject-WARNING **:
> 12:37:46.818: cannot register existing type 'GdkPixbuf'

This is a guix problem, reported a few years ago already by one of my
first g-golf user, the author of the nomad package. I have no idea why,
nor what it takes to fix this in guix, but this error is the symptom
that you (guix, not you nor g-golf) is trying to load the Gdk typelib
more then once, which is 'unauthorized', by (GNOME) design.

Until what causes this error is fixed, absolutely nothing can work.

I am on Debian, where all examples work [1]

> (g-golf-hello-world.scm:494347): GLib-GObject-CRITICAL **:
> 12:37:46.818: g_type_add_interface_static: assertion
> 'G_TYPE_IS_INSTANTIATABLE (instance_type)' failed

This is the symptom that you are running a g-golf version that was
built from the devel branch - where as this is generally ok, I am also
very cautious to what I push even on the devel branch, I am in a process
of re-designing re-writing the way users may register new classes, that
inherit from GInterface. I also am re-designing re-writing how users
interact with VFunc. For these reasons, I recommend the guix team
to stick to the latest commit of the master branch for now.

The hello-world example has worked 'fine', on Debian, for many years,
you don't need the latest commit to run it :) - though in January
2021, I updated it (as well as other examples) to use Gtk-4.0.

	I see Ricardo also answered and tried, I'll also comment his
	message(s) ...

David

[1]    in addition to what you need to install g-golf, to run the
examples, you also need to install gir1.2-gtk-4.0:amd64 (or 
gir1.2-gtk-4.0:xxxx  for another architecture, which content is listed
below, fwiw:

dpkg -L gir1.2-gtk-4.0:amd64
/.
/usr
/usr/lib
/usr/lib/x86_64-linux-gnu
/usr/lib/x86_64-linux-gnu/girepository-1.0
/usr/lib/x86_64-linux-gnu/girepository-1.0/Gdk-4.0.typelib
/usr/lib/x86_64-linux-gnu/girepository-1.0/GdkWayland-4.0.typelib
/usr/lib/x86_64-linux-gnu/girepository-1.0/GdkX11-4.0.typelib
/usr/lib/x86_64-linux-gnu/girepository-1.0/Gsk-4.0.typelib
/usr/lib/x86_64-linux-gnu/girepository-1.0/Gtk-4.0.typelib
/usr/share
/usr/share/doc
/usr/share/doc/gir1.2-gtk-4.0
/usr/share/doc/gir1.2-gtk-4.0/changelog.Debian.gz
/usr/share/doc/gir1.2-gtk-4.0/copyright