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

From: "Collin J. Doering" <[email-masked]>
Date: Wed, 05 Apr 2023 12:59:08 -0400

Hi Josselin,

Thanks for your quick reply. It appears that all dynamic libraries referenced by libgtk.so are correctly referenced (and not missing):

--8<---------------cut here---------------start------------->8---
$ ldd /gnu/store/91ar3zh59n19rdn00png5r9hxp3k0y13-gtk-4.8.1/lib/libgtk-4.so.1
linux-vdso.so.1 (0x00007fff6435f000)
libwayland-client.so.0 => /gnu/store/91ar3zh59n19rdn00png5r9hxp3k0y13-gtk-4.8.1/lib/libwayland-client.so.0 (0x00007f0058b89000)
libwayland-egl.so.1 => /gnu/store/91ar3zh59n19rdn00png5r9hxp3k0y13-gtk-4.8.1/lib/libwayland-egl.so.1 (0x00007f0058b84000)
libgmodule-2.0.so.0 => /gnu/store/96srhmpmxa20wmsck95g3iq4hb3lz4a0-glib-2.70.2/lib/libgmodule-2.0.so.0 (0x00007f0058b7d000)
libglib-2.0.so.0 => /gnu/store/96srhmpmxa20wmsck95g3iq4hb3lz4a0-glib-2.70.2/lib/libglib-2.0.so.0 (0x00007f00580cc000)
libgobject-2.0.so.0 => /gnu/store/96srhmpmxa20wmsck95g3iq4hb3lz4a0-glib-2.70.2/lib/libgobject-2.0.so.0 (0x00007f0058b23000)
libgio-2.0.so.0 => /gnu/store/96srhmpmxa20wmsck95g3iq4hb3lz4a0-glib-2.70.2/lib/libgio-2.0.so.0 (0x00007f0057ee6000)
libpangocairo-1.0.so.0 => /gnu/store/6zfdna9yh2y35dps8h17w4sp6ggvnmwi-pango-next-1.50.4/lib/libpangocairo-1.0.so.0 (0x00007f0058b10000)
libpango-1.0.so.0 => /gnu/store/6zfdna9yh2y35dps8h17w4sp6ggvnmwi-pango-next-1.50.4/lib/libpango-1.0.so.0 (0x00007f0058aa9000)
libharfbuzz.so.0 => /gnu/store/f6ibajh7x233cvr30c2p314l2absk36h-harfbuzz-2.8.2/lib/libharfbuzz.so.0 (0x00007f0057dfb000)
libcairo.so.2 => /gnu/store/6gq2n65ixpn6drd5wai2h7g5wjm6bp2b-cairo-1.16.0/lib/libcairo.so.2 (0x00007f0057cda000)
libfribidi.so.0 => /gnu/store/v5x6f3dml69pmn4pfkl51j6y03v6rlsg-fribidi-1.0.9/lib/libfribidi.so.0 (0x00007f0058a8b000)
libcairo-gobject.so.2 => /gnu/store/6gq2n65ixpn6drd5wai2h7g5wjm6bp2b-cairo-1.16.0/lib/libcairo-gobject.so.2 (0x00007f0058a7d000)
libfontconfig.so.1 => /gnu/store/3r5sl1l02kjxzw3gicjpjz4kw6v4rgs9-fontconfig-minimal-2.13.94/lib/libfontconfig.so.1 (0x00007f0057c8f000)
libgdk_pixbuf-2.0.so.0 => /gnu/store/xgiz9rvzvfhwx655lb6jpjx1whc4kjg8-gdk-pixbuf-2.42.4/lib/libgdk_pixbuf-2.0.so.0 (0x00007f0057c69000)
libepoxy.so.0 => /gnu/store/kxa5gvaydh012g4ar7xcvj4fq9wqlsmd-libepoxy-1.5.10/lib/libepoxy.so.0 (0x00007f0057b33000)
libm.so.6 => /gnu/store/5h2w4qi9hk1qzzgi1w83220ydslinr4s-glibc-2.33/lib/libm.so.6 (0x00007f00579f2000)
libgraphene-1.0.so.0 => /gnu/store/98f762si3nl2qmchqf8ni22zw32cimg5-graphene-1.10.6/lib/libgraphene-1.0.so.0 (0x00007f00579d4000)
libXi.so.6 => /gnu/store/3s0xcy15rkh08y8cd50skbs5b4js8zb5-libxi-1.7.10/lib/libXi.so.6 (0x00007f0058a68000)
libX11.so.6 => /gnu/store/fa43ijbrb96x08621qigxxiphp503lsi-libx11-1.7.3.1/lib/libX11.so.6 (0x00007f0057893000)
libpangoft2-1.0.so.0 => /gnu/store/6zfdna9yh2y35dps8h17w4sp6ggvnmwi-pango-next-1.50.4/lib/libpangoft2-1.0.so.0 (0x00007f0057879000)
libcloudproviders.so.0 => /gnu/store/h1dsawqf4s4q7ypxs6ijs7d5022m7x0v-libcloudproviders-0.3.1/lib/libcloudproviders.so.0 (0x00007f0057862000)
libtracker-sparql-3.0.so.0 => /gnu/store/c5zz7lhl1qnzd9a493a418z8wrg2ibwq-tracker-3.4.2/lib/libtracker-sparql-3.0.so.0 (0x00007f0057795000)
libpng16.so.16 => /gnu/store/p7iq81hxxyk9zy7a9dngbf16zm8d4klx-libpng-1.6.37/lib/libpng16.so.16 (0x00007f005775f000)
libtiff.so.5 => /gnu/store/343iqv9hvbvzp2in0hs03dvygccrcapl-libtiff-4.3.0/lib/libtiff.so.5 (0x00007f00576dd000)
libjpeg.so.62 => /gnu/store/g5hf1zhqlcyx9vw3q1xa52bgddaqsfm5-libjpeg-turbo-2.0.5/lib/libjpeg.so.62 (0x00007f0057646000)
librt.so.1 => /gnu/store/5h2w4qi9hk1qzzgi1w83220ydslinr4s-glibc-2.33/lib/librt.so.1 (0x00007f005763c000)
libxkbcommon.so.0 => /gnu/store/5sdcrp4591sb2m3h6903vhpdb6zy1cnm-libxkbcommon-1.3.0/lib/libxkbcommon.so.0 (0x00007f00575f6000)
libXext.so.6 => /gnu/store/4fhg8f8c6q647v7pysbng3j30frg0hcl-libxext-1.3.4/lib/libXext.so.6 (0x00007f00575e0000)
libXcursor.so.1 => /gnu/store/mx0bsijgajia8b0s7zfsc135ichy111d-libxcursor-1.2.0/lib/libXcursor.so.1 (0x00007f00575d4000)
libXdamage.so.1 => /gnu/store/i4yh9pwl39qvl9nf8q48gmjgq3wxi36b-libxdamage-1.1.5/lib/libXdamage.so.1 (0x00007f00575cf000)
libXfixes.so.3 => /gnu/store/7rwz6yjir4ysnhskcw5k8azksjwqd6pa-libxfixes-6.0.0/lib/libXfixes.so.3 (0x00007f00575c6000)
libXrandr.so.2 => /gnu/store/25k894kwhf4ljw1nl9rz6rm0c9sz5qaz-libxrandr-1.5.2/lib/libXrandr.so.2 (0x00007f00575b9000)
libXinerama.so.1 => /gnu/store/6h8skg2n4gpbi0bwfmw6qyh03phic6dm-libxinerama-1.1.4/lib/libXinerama.so.1 (0x00007f00575b4000)
libcairo-script-interpreter.so.2 => /gnu/store/6gq2n65ixpn6drd5wai2h7g5wjm6bp2b-cairo-1.16.0/lib/libcairo-script-interpreter.so.2 (0x00007f005758b000)
libpthread.so.0 => /gnu/store/5h2w4qi9hk1qzzgi1w83220ydslinr4s-glibc-2.33/lib/libpthread.so.0 (0x00007f005756b000)
libc.so.6 => /gnu/store/5h2w4qi9hk1qzzgi1w83220ydslinr4s-glibc-2.33/lib/libc.so.6 (0x00007f00573a9000)
libffi.so.7 => /gnu/store/wgqhlc12qvlwiklam7hz2r311fdcqfim-libffi-3.3/lib/libffi.so.7 (0x00007f005739c000)
libdl.so.2 => /gnu/store/5h2w4qi9hk1qzzgi1w83220ydslinr4s-glibc-2.33/lib/libdl.so.2 (0x00007f0057397000)
libpcre.so.1 => /gnu/store/di5bqb45hi5lvp2q08hlxqjdcl9phjb1-pcre-8.45/lib/libpcre.so.1 (0x00007f005731d000)
libz.so.1 => /gnu/store/8qv5kb2fgm4c3bf70zcg9l6hkf3qzpw9-zlib-1.2.11/lib/libz.so.1 (0x00007f0057300000)
libmount.so.1 => /gnu/store/5583c2za2jsn9g6az79rnksgvigwnsk7-util-linux-2.37.2-lib/lib/libmount.so.1 (0x00007f00572a3000)
libresolv.so.2 => /gnu/store/5h2w4qi9hk1qzzgi1w83220ydslinr4s-glibc-2.33/lib/libresolv.so.2 (0x00007f005728a000)
libthai.so.0 => /gnu/store/2zlx5p93icsrqvc0w3lzgkc6dd3wd4jl-libthai-0.1.28/lib/libthai.so.0 (0x00007f005727c000)
libfreetype.so.6 => /gnu/store/ak70pk2hjks17cx7zjdmdmzpcpiy9gpi-freetype-2.10.4/lib/libfreetype.so.6 (0x00007f00571cc000)
libgraphite2.so.3 => /gnu/store/z6d288h1g876vypda400nhh224yz49im-graphite2-1.3.13/lib/libgraphite2.so.3 (0x00007f00571a9000)
libgcc_s.so.1 => /gnu/store/094bbaq6glba86h1d4cj16xhdi6fk2jl-gcc-10.3.0-lib/lib/libgcc_s.so.1 (0x00007f005718f000)
libpixman-1.so.0 => /gnu/store/j8x167zaka2h6pxk7wiq5zkg67hzf8a2-pixman-0.40.0/lib/libpixman-1.so.0 (0x00007f00570e5000)
libxcb-shm.so.0 => /gnu/store/v8raqm2shh9azkl71107p53j55hir306-libxcb-1.14/lib/libxcb-shm.so.0 (0x00007f00570e0000)
libxcb.so.1 => /gnu/store/v8raqm2shh9azkl71107p53j55hir306-libxcb-1.14/lib/libxcb.so.1 (0x00007f00570b7000)
libxcb-render.so.0 => /gnu/store/v8raqm2shh9azkl71107p53j55hir306-libxcb-1.14/lib/libxcb-render.so.0 (0x00007f00570a7000)
libXrender.so.1 => /gnu/store/jh778dla5w316bsfc63q8fnhn87j81lw-libxrender-0.9.10/lib/libXrender.so.1 (0x00007f0057098000)
libbz2.so.1.0 => /gnu/store/s3hl12jxz9ybs7nsy7kq7ybzz7qnzmsg-bzip2-1.0.8/lib/libbz2.so.1.0 (0x00007f0057085000)
libexpat.so.1 => /gnu/store/iwcw80p8lkqsqbvchjvypvl06qlbjc3d-expat-2.4.1/lib/libexpat.so.1 (0x00007f0057054000)
/gnu/store/ayc9r7162rphy4zjw8ch01pmyh214h82-glibc-2.33/lib/ld-linux-x86-64.so.2 (0x00007f0058ba0000)
libXau.so.6 => /gnu/store/9k6slxs8ynz46h85bcy3zk2mx0nn8rpf-libxau-1.0.9/lib/libXau.so.6 (0x00007f005704d000)
libXdmcp.so.6 => /gnu/store/dfzp4rhkzqqagx3djn2kcnaflz1m8446-libxdmcp-1.1.3/lib/libXdmcp.so.6 (0x00007f0057045000)
libbsd.so.0 => /gnu/store/7b5qsjh2cbhwnqbdicvl81496k7b0g0j-libbsd-0.10.0/lib/libbsd.so.0 (0x00007f005702c000)
libicuuc.so.69 => /gnu/store/bjycxjjkp1da53ijsa4hfdrz9mcgg55h-icu4c-69.1/lib/libicuuc.so.69 (0x00007f0056e3b000)
libicui18n.so.69 => /gnu/store/bjycxjjkp1da53ijsa4hfdrz9mcgg55h-icu4c-69.1/lib/libicui18n.so.69 (0x00007f0056a00000)
libjson-glib-1.0.so.0 => /gnu/store/vp510k7i9lqan4d61nddlhhgdigbcx14-json-glib-1.6.2/lib/libjson-glib-1.0.so.0 (0x00007f0056e0c000)
libxml2.so.2 => /gnu/store/g3y6ifhm0751vgsxv90yipfw6mk189kj-libxml2-2.9.12/lib/libxml2.so.2 (0x00007f0056892000)
libsqlite3.so.0 => /gnu/store/xmzx5mzv4863yw9kmr2ykndgp37p8if0-sqlite-3.36.0/lib/libsqlite3.so.0 (0x00007f0056757000)
liblzma.so.5 => /gnu/store/c8isj4jq6knv0icfgr43di6q3nvdzkx7-xz-5.2.5/lib/liblzma.so.5 (0x00007f0056de3000)
libblkid.so.1 => /gnu/store/5583c2za2jsn9g6az79rnksgvigwnsk7-util-linux-2.37.2-lib/lib/libblkid.so.1 (0x00007f0056d8e000)
libdatrie.so.1 => /gnu/store/qlz21x91bs9n3f8nangfsk6g5rfqxvaz-libdatrie-0.2.13/lib/libdatrie.so.1 (0x00007f0056d84000)
libicudata.so.69 => /gnu/store/bjycxjjkp1da53ijsa4hfdrz9mcgg55h-icu4c-69.1/lib/libicudata.so.69 (0x00007f0054a00000)
libstdc++.so.6 => /gnu/store/094bbaq6glba86h1d4cj16xhdi6fk2jl-gcc-10.3.0-lib/lib/libstdc++.so.6 (0x00007f0056582000)
--8<---------------cut here---------------end--------------->8---

You'll noticed linux-vdso.so.1 doesn't reference a file but afaik this is expected as its a virtual library provided by the kernel.

> 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.

This doesn't appear to be the case. Did I miss something?

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

Yes, but that makes the error all the more confusing; the original error says that it can't find "/gnu/store/91ar3zh59n19rdn00png5r9hxp3k0y13-gtk-4.8.1/lib/libgtk-4.so.1", however this is the ungrafted gtk package, so it SHOULD (afaik) exist throughout the build. Further, when I enter a simulated build environment, the file does indeed exist.

Thanks again for you ongoing help and support!

On 05 Apr 2023 at 10:11, Josselin Poiret <[email-masked]> wrote:

> [[PGP Signed Part:Undecided]]
> 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,

-- 
Collin J. Doering

http://rekahsoft.ca
http://blog.rekahsoft.ca
http://git.rekahsoft.ca