diff options
author | Ricardo Wurmus <rekado@elephly.net> | 2020-03-15 14:17:26 +0100 |
---|---|---|
committer | Ricardo Wurmus <rekado@elephly.net> | 2020-03-15 14:17:26 +0100 |
commit | a431a63537c8103b2a58c9a55d90184fb5c90361 (patch) | |
tree | 81df8a0f8c791c1a59dd1bf8b14d9f0eec7684c3 | |
parent | b420e6deb96e0760f12e3d941b76e690c4235e47 (diff) |
gnu: guile-gi: Embed absolute file name of extension library.
* gnu/packages/guile-xyz.scm (guile-gi)[arguments]: Add phase
patch-references-to-extension.
-rw-r--r-- | gnu/packages/guile-xyz.scm | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/gnu/packages/guile-xyz.scm b/gnu/packages/guile-xyz.scm index 9f8173657e..8ada9c50e6 100644 --- a/gnu/packages/guile-xyz.scm +++ b/gnu/packages/guile-xyz.scm @@ -2504,8 +2504,35 @@ list of components. This module takes care of that for you.") (build-system gnu-build-system) (arguments `(#:configure-flags '("--with-gnu-filesystem-hierarchy") + #:modules ((guix build gnu-build-system) + (guix build utils) + (ice-9 popen) + (ice-9 rdelim)) #:phases (modify-phases %standard-phases + (add-after 'unpack 'patch-references-to-extension + (lambda* (#:key outputs #:allow-other-keys) + (let ((effective (read-line + (open-pipe* OPEN_READ + "guile" "-c" + "(display (effective-version))")))) + (substitute* '("module/gi.scm" + "module/gi/oop.scm" + "module/gi/documentation.scm" + "module/gi/types.scm" + "module/gi/repository.scm") + (("\\(load-extension \"libguile-gi\" \"(.*)\"\\)" m arg) + (format #f "~s" + `(load-extension + (format #f "~alibguile-gi" + (if (getenv "GUILE_GI_UNINSTALLED") + "" + ,(format #f "~a/lib/guile/~a/" + (assoc-ref outputs "out") + effective))) + ,arg))))) + (setenv "GUILE_GI_UNINSTALLED" "1") + #t)) (add-before 'check 'start-xorg-server (lambda* (#:key inputs #:allow-other-keys) ;; The init_check test requires a running X server. |