On Tue, Jan 20, 2015 at 6:52 PM, Federico Beffa <be...@ieee.org> wrote: > Please find attached a patch for libpeas. > > This package, up to now, is the only one experiencing some > side-effects from the gobject-introspection patch that we adopted from > nix and which installs the full path name of shared libraries in > .typelib and .gir files.
I find the above side-effect disturbing. For this reason I would like to propose an additional patch to 'gobject-introspection'. When 'gobject-introspection' consults a .typelib file (due to the patch we introduced earlier) it will find a reference to a shared library which includes the absolute path. With the new patch, if the library is not found at the absolute path, then it discards the path and tries to look for the library using the OS dynamic library loading infrastructure (which is the normal behavior of 'gobject-introspection'). With this change 'libpeas' (and all its dependencies) passes all tests. Regards, Fede
From 58d32305b609eccf54de620398a54457af0af0c5 Mon Sep 17 00:00:00 2001 From: Federico Beffa <be...@fbengineering.ch> Date: Tue, 20 Jan 2015 18:43:55 +0100 Subject: [PATCH 1/2] gnu: libpeas: Update to 1.12.1, add 'pre-build phase. * gnu/packages/gnome.scm (libpeas): Update to version 1.12.1 and add 'pre-build phase. --- gnu/packages/gnome.scm | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index acc964e..0f33880 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -3,6 +3,7 @@ ;;; Copyright © 2014 Ludovic Courtès <l...@gnu.org> ;;; Copyright © 2014 Ian Denhardt <i...@zenhack.net> ;;; Copyright © 2014 Eric Bavier <bav...@member.fsf.org> +;;; Copyright © 2014, 2015 Federico Beffa <be...@fbengineering.ch> ;;; ;;; This file is part of GNU Guix. ;;; @@ -427,7 +428,7 @@ some form of information without getting in the user's way.") (define-public libpeas (package (name "libpeas") - (version "1.9.0") + (version "1.12.1") (source (origin (method url-fetch) @@ -436,7 +437,7 @@ some form of information without getting in the user's way.") name "-" version ".tar.xz")) (sha256 (base32 - "13fzyzv6c0cfdj83z1s16lv8k997wpnzyzr0wfwcfkcmvz64g1q0")))) + "1mjjjjwphc83bjznmbsm7x0jg7ql261nys6qnl7mi0nkr4qvw476")))) (build-system gnu-build-system) (inputs `(("atk" ,atk) @@ -449,6 +450,13 @@ some form of information without getting in the user's way.") ("glib:bin" ,glib "bin") ("gobject-introspection" ,gobject-introspection) ("intltool" ,intltool))) + (arguments + `(#:phases + (alist-cons-before + 'build 'pre-build + (lambda* _ + (setenv "CC" "gcc")) + %standard-phases))) (home-page "https://wiki.gnome.org/Libpeas") (synopsis "GObject plugin system") (description @@ -457,7 +465,6 @@ every application the chance to assume its own extensibility. It also has a set of features including, but not limited to: multiple extension points; on demand (lazy) programming language support for C, Python and JS; simplicity of the API") - (license license:lgpl2.0+))) (define-public gtkglext -- 1.8.4
From b90d70f312e9c298232d76f29099002f359f4468 Mon Sep 17 00:00:00 2001 From: Federico Beffa <be...@fbengineering.ch> Date: Wed, 21 Jan 2015 13:46:52 +0100 Subject: [PATCH 2/2] gnu: gobject-introspection: Add patch. * gnu/packages/glib.scm (gobject-introspection): Add patch gobject-introspection-girepository.patch. --- gnu/packages/glib.scm | 2 ++ .../patches/gobject-introspection-girepository.patch | 17 +++++++++++++++++ 2 files changed, 19 insertions(+) create mode 100644 gnu/packages/patches/gobject-introspection-girepository.patch 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..5f1905f --- /dev/null +++ b/gnu/packages/patches/gobject-introspection-girepository.patch @@ -0,0 +1,17 @@ +--- gobject-introspection-1.42.0/girepository/gitypelib.c.orig 2015-01-20 20:37:43.706684642 +0100 ++++ gobject-introspection-1.42.0/girepository/gitypelib.c 2015-01-21 09:19:40.927751124 +0100 +@@ -2296,7 +2296,14 @@ + { + GModule *module; + ++ /* We expect an absolute directory name. If the library is ++ not found, try with just the basename and the system ++ dynamic library infrastructure. */ + 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) + { -- 1.8.4