Skip to content
Snippets Groups Projects
Commit 94987ebe authored by Federico Beffa's avatar Federico Beffa
Browse files

gnu: gobject-introspection: Add patch.

* gnu/packages/glib.scm (gobject-introspection): Add patch
  gobject-introspection-girepository.patch.
parent 58d32305
No related branches found
No related tags found
No related merge requests found
......@@ -213,6 +213,8 @@ (define gobject-introspection
(base32 "1xwm7wmr9r9wp6xljb3bckx3a4siybavaq39w46ly7gpskxfv8iv"))
(patches (list
(search-patch "gobject-introspection-cc.patch")
(search-patch
"gobject-introspection-girepository.patch")
(search-patch
"gobject-introspection-absolute-shlib-path.patch")))))
(build-system gnu-build-system)
......
--- 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)
{
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment