26 lines
1.1 KiB
Diff
26 lines
1.1 KiB
Diff
|
--- a/girepository/gitypelib.c.orig
|
||
|
+++ b/girepository/gitypelib.c
|
||
|
@@ -2296,7 +2296,22 @@ _g_typelib_do_dlopen (GITypelib *typelib)
|
||
|
{
|
||
|
GModule *module;
|
||
|
|
||
|
+ /* 'gobject-introspection' doesn't store the path of shared
|
||
|
+ libraries into '.typelib' and '.gir' files. Shared
|
||
|
+ libraries are searched for in the dynamic linker search
|
||
|
+ path. In Guix we patch 'gobject-introspection' such that
|
||
|
+ it stores the absolute path of shared libraries in
|
||
|
+ '.typelib' and '.gir' files. Here, in order to minimize
|
||
|
+ side effects, we make sure that if the library is not
|
||
|
+ found at the indicated path location, we try with just
|
||
|
+ the basename and the system dynamic library
|
||
|
+ infrastructure, as per default behaviour of the
|
||
|
+ library. */
|
||
|
module = load_one_shared_library (shlibs[i]);
|
||
|
+ if (module == NULL && g_path_is_absolute (shlibs[i]))
|
||
|
+ {
|
||
|
+ module = load_one_shared_library (g_basename(shlibs[i]));
|
||
|
+ }
|
||
|
|
||
|
if (module == NULL)
|
||
|
{
|