Subject: Re: bug#62672: Unexpected interaction between gobject-introspection and grafts

From: Josselin Poiret <[email-masked]>
Date: Wed, 05 Apr 2023 10:11:54 +0200

Hi Collin,

"Collin J. Doering" via Bug reports for GNU Guix <[email-masked]>
writes:

> Hi team Guix!
>
> I was working on packaging taffybar (https://github.com/taffybar/taffybar), which depends on haskell-gi (https://github.com/haskell-gi/haskell-gi) - haskell bindings for goject-introspection capable libraries. While packaging gi-gdk, I hit this error:
>
> --8<---------------cut here---------------start------------->8---
> ** (process:23): WARNING **: 00:09:56.407: Failed to load shared library '/gnu/store/91ar3zh59n19rdn00png5r9hxp3k0y13-gtk-4.8.1/lib/libgtk-4.so.1' referenced by the typelib: libgtk-4.so.1: cannot open shared object file: No such file or directory
> Could not resolve symbol "gdk_device_pad_get_type" in namespace "Gdk-4.0"
> CallStack (from HasCallStack):
>   error, called at lib/Data/GI/CodeGen/LibGIRepository.hs:202:16 in haskell-gi-0.26.4-HCp1omjln8S5hdZ8Oexk5N:Data.GI.CodeGen.LibGIRepository
> error: in phase 'configure': uncaught exception:
> --8<---------------cut here---------------end--------------->8---

These errors can also be caused by dependent libraries not being found,
or linker errors, etc.  I would suggest to run `ldd` on the .so itself
(from glibc), and see what the output is.

Grafts are applied after all packages have been built, so it is normal
that the build environment would see and use the ungrafted gtk.

Best,
-- 
Josselin Poiret