Hi Florian, > Thank you for the work, David. I have a question; how do you debug > when Guile crashes to terminal printing “Segmentation fault”`? Thanks. You shouldn't have to do this 'on your own', if you submit a reproducible minimal example that i can use, i'll track and fix the bug ... If it is a distro problem, which is the situation you are facing, you should talk to the distro (involved pkgs maintainers) (additional tips below ...) But i am curious, does make check pass in Guix? > I want to develop a GTK app with G-Golf. I highly recommend you use Adwaita (and Gtk-4 when that applies), not 'just' Gtk-4. > to run it with GNU Guix [1] (not Debian like you do, as far as I > remember), because now the Guix’ hard-working gnome team have added > the needed version of gobject-introspection to Guix. Great - Proper GLib/GObject/GObject-Introspection libs is a pre-requisite ofc, but Guix is known to wrongly set-up things: I think Ricardo Wurmus knows what to do, he did succeed, once, to run the hello-world example in guix a few years ago, but i didn't take note of what he did and can't find neither an email, nor in the logs, how/what needs to be done - I think it has something to do with grafts, iirc ... I hope he will shim-in to let you know ... > $ cd ~/src > $ git clone 'https://git.savannah.gnu.org/git/g-golf.git' I am curious, can't you just run the make danse in guix? ./autogen.sh ./configure [--prefix=...] --with-guile-site # before to run make, you need to uninstall # g-golf (if it is installed ...) make Because i'd be interested to know the output of running make check, in Guix that is ... # it needs Gtk-3.0 make check > To create the app’s basic structure, I run Guile Hall [2]: > ... > Now I run: > $ guix shell > $ ~/src/g-golf/examples/gtk-4/hello-world.scm > It tells me dbus-launch must be running, so I add a d-bus service to > my Guix Home configuration. Never seen such a warning, I guess all other distro run the service by default - i'll ask uptream, but maybe worth adding the service as a g-golf 'start-up' requirement in Guix ... > $ guix shell > $ ~/src/g-golf/examples/gtk-4/hello-world.scm > successfully; a window is shown, though not responsive, with plenty > of errors. in Guix that is ... no other distro reports nor even a single warning/error ... > (hello-world.scm:12627): Gtk-WARNING **: 23:59:50.617: Unable to > acquire the address of the accessibility bus: > GDBus.Error:org.freedesktop.DBus.Error.ServiceUnknown: The name > org.a11y.Bus was not provided by any .service files. If you are > attempting to run GTK without a11y support, GTK_A11Y should be set to > 'none'. You should be able to solve this easily, or apply the suggested GTK_A11Y env setting ... > (hello-world.scm:12627): GLib-GObject-CRITICAL **: 23:59:51.067: > cannot register existing type 'GdkPixbuf' From here, nothing will ever work - You and Guix guru, need to find out why .. -the symptom is that in Guix, for some reason, you are trying to import the Gtk(Gsk/Gdk) lib more then once, in the same memory session, which won't work, as GObject is a dynamic typing system, all those types are being defined at runtime, and none can be defined more then once ... > However, when I now run: > $ ~/src/g-golf/examples/gtk-4/drawing-widget.scm > it crashes, displaying only “Segmentation fault”. Same with > $ ~/src/g-golf/examples/gtk-4/peg-solitaire.scm ... right, as i said, nothing will work - these segfaults because guile/g-golf doesn't stop to (try to) run the app/example because of an upstream lib (Critical)warning ... but in this situation, it is just impossible to run any low level upstream lib function, such as creating a drawing surface ... when Guix can run make check, and the hello-world example, you 'll likely be able to run any other example, if not, we'll dig on appropriate time ... David ps: are you in #guix, #guile, if yes, what's your nick - ping me there so we can chat - hopefully after Ricardo giives his advice to run g-golf in guix ...