diff options
author | Federico Beffa <beffa@fbengineering.ch> | 2015-01-21 13:46:52 +0100 |
---|---|---|
committer | Federico Beffa <beffa@fbengineering.ch> | 2015-01-23 18:33:59 +0100 |
commit | 94987ebe136569dfe0180277384d7c04e18ab78c (patch) | |
tree | 468770d32ec90c46e8da6ad0692d933febdda910 | |
parent | 58d32305b609eccf54de620398a54457af0af0c5 (diff) | |
download | patches-94987ebe136569dfe0180277384d7c04e18ab78c.tar patches-94987ebe136569dfe0180277384d7c04e18ab78c.tar.gz |
gnu: gobject-introspection: Add patch.
* gnu/packages/glib.scm (gobject-introspection): Add patch
gobject-introspection-girepository.patch.
-rw-r--r-- | gnu/packages/glib.scm | 2 | ||||
-rw-r--r-- | gnu/packages/patches/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 8294c4d436..39fc736b02 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 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) + { |