summary refs log tree commit diff
path: root/gnu/packages/patches/gobject-introspection-girepository.patch
diff options
context:
space:
mode:
authorFederico Beffa <beffa@fbengineering.ch>2015-01-21 13:46:52 +0100
committerFederico Beffa <beffa@fbengineering.ch>2015-01-23 18:33:59 +0100
commit94987ebe136569dfe0180277384d7c04e18ab78c (patch)
tree468770d32ec90c46e8da6ad0692d933febdda910 /gnu/packages/patches/gobject-introspection-girepository.patch
parent58d32305b609eccf54de620398a54457af0af0c5 (diff)
downloadguix-94987ebe136569dfe0180277384d7c04e18ab78c.tar.gz
gnu: gobject-introspection: Add patch.
* gnu/packages/glib.scm (gobject-introspection): Add patch
  gobject-introspection-girepository.patch.
Diffstat (limited to 'gnu/packages/patches/gobject-introspection-girepository.patch')
-rw-r--r--gnu/packages/patches/gobject-introspection-girepository.patch25
1 files changed, 25 insertions, 0 deletions
diff --git a/gnu/packages/patches/gobject-introspection-girepository.patch b/gnu/packages/patches/gobject-introspection-girepository.patch
new file mode 100644
index 0000000000..380617f27f
--- /dev/null
+++ b/gnu/packages/patches/gobject-introspection-girepository.patch
@@ -0,0 +1,25 @@
+--- 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)
+             {