diff options
author | Mark H Weaver <mhw@netris.org> | 2015-01-25 21:15:13 -0500 |
---|---|---|
committer | Mark H Weaver <mhw@netris.org> | 2015-01-25 21:15:13 -0500 |
commit | 5ade90ba6976a5ce8715de07344985c70c0eda8b (patch) | |
tree | 7d42618d87ebd8888223e2aa1d0cd5375b3a7712 /gnu/packages/patches | |
parent | 06aac933e1cc97781db0d28eb86b5d984099a30e (diff) | |
parent | 94987ebe136569dfe0180277384d7c04e18ab78c (diff) | |
download | guix-5ade90ba6976a5ce8715de07344985c70c0eda8b.tar guix-5ade90ba6976a5ce8715de07344985c70c0eda8b.tar.gz |
Merge branch 'wip-gobject-introspection'
Diffstat (limited to 'gnu/packages/patches')
-rw-r--r-- | gnu/packages/patches/gobject-introspection-absolute-shlib-path.patch | 30 | ||||
-rw-r--r-- | gnu/packages/patches/gobject-introspection-girepository.patch | 25 |
2 files changed, 55 insertions, 0 deletions
diff --git a/gnu/packages/patches/gobject-introspection-absolute-shlib-path.patch b/gnu/packages/patches/gobject-introspection-absolute-shlib-path.patch new file mode 100644 index 0000000000..d00cc5a420 --- /dev/null +++ b/gnu/packages/patches/gobject-introspection-absolute-shlib-path.patch @@ -0,0 +1,30 @@ +# Names of libraries included in typelib files are opened by dlopen. Here we +# add the full path. +# +# This patch was provided by Luca Bruno <lucabru@src.gnome.org> for +# 'gobject-introspection' 1.40.0 in Nix. +--- ./giscanner/utils.py.orig 2014-08-14 22:05:05.055334080 +0200 ++++ ./giscanner/utils.py 2014-08-14 22:05:24.687497334 +0200 +@@ -110,17 +110,11 @@ + if dlname is None: + return None + +- # Darwin uses absolute paths where possible; since the libtool files never +- # contain absolute paths, use the libdir field +- if platform.system() == 'Darwin': +- dlbasename = os.path.basename(dlname) +- libdir = _extract_libdir_field(la_file) +- if libdir is None: +- return dlbasename +- return libdir + '/' + dlbasename +- # From the comments in extract_libtool(), older libtools had +- # a path rather than the raw dlname +- return os.path.basename(dlname) ++ dlbasename = os.path.basename(dlname) ++ libdir = _extract_libdir_field(la_file) ++ if libdir is None: ++ return dlbasename ++ return libdir + '/' + dlbasename + + + def extract_libtool(la_file): 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) + { |