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

From: Josselin Poiret <[email-masked]>
Date: Thu, 06 Apr 2023 21:33:29 +0200

Hi Collin,

"Collin J. Doering" <[email-masked]> writes:

> Hi Josselin,
>
> Thanks for your quick reply. It appears that all dynamic libraries referenced by libgtk.so are correctly referenced (and not missing):
> [...]
> 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?
>
> [...]
>
> 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.

The ENOFILE can happen while loading _any_ dependency of the required
lib, and will be propagated back.  Since the file seems to exist in the
development environment as you mentioned, my guess is that some
dependency somewhere seems to be missing somehow.  You could try
manually running the `./configure` script or equivalent that's failing,
with LD_DEBUG=libs set in the environment (or even =all), and seeing if
that error still happens/what the error is precisely.  If it doesn't
happen, this would be even more suspicious.

Best,
-- 
Josselin Poiret