[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
02/02: gnu: gobject-introspection: Add patch.
From: |
Federico Beffa |
Subject: |
02/02: gnu: gobject-introspection: Add patch. |
Date: |
Fri, 23 Jan 2015 17:36:12 +0000 |
beffa pushed a commit to branch wip-gobject-introspection
in repository guix.
commit 94987ebe136569dfe0180277384d7c04e18ab78c
Author: Federico Beffa <address@hidden>
Date: Wed Jan 21 13:46:52 2015 +0100
gnu: gobject-introspection: Add patch.
* gnu/packages/glib.scm (gobject-introspection): Add patch
gobject-introspection-girepository.patch.
---
gnu/packages/glib.scm | 2 +
.../gobject-introspection-girepository.patch | 25 ++++++++++++++++++++
2 files changed, 27 insertions(+), 0 deletions(-)
diff --git a/gnu/packages/glib.scm b/gnu/packages/glib.scm
index 8294c4d..39fc736 100644
--- a/gnu/packages/glib.scm
+++ b/gnu/packages/glib.scm
@@ -213,6 +213,8 @@ dynamic loading, and an object system.")
(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)
diff --git a/gnu/packages/patches/gobject-introspection-girepository.patch
b/gnu/packages/patches/gobject-introspection-girepository.patch
new file mode 100644
index 0000000..380617f
--- /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)
+ {