* gnu/packages/guile-xyz.scm (guile-yamlpp) [arguments] <phases>: Add 'set-extension-file-name and move 'check after 'install.
Change-Id: I49a7199b4e0fe4053822374bae59c6e1d0b7ead0 --- gnu/packages/guile-xyz.scm | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/gnu/packages/guile-xyz.scm b/gnu/packages/guile-xyz.scm index f0277f430ec..cabc3101320 100644 --- a/gnu/packages/guile-xyz.scm +++ b/gnu/packages/guile-xyz.scm @@ -2020,6 +2020,23 @@ (define-public guile-yamlpp (sha256 (base32 "0ik69y0vddg0myp0zdbkmklma0qkkrqzwlqwkij1zirklz6hl1ss")))) (build-system gnu-build-system) + (arguments + `(#:phases + ,#~(modify-phases %standard-phases + ;; In order to let Guile find the compiled library when used with + ;; Guix' `with-extension', hardcode the final path to the library. + ;; See <https://issues.guix.gnu.org/74532>. + (add-after 'unpack 'set-extension-file-name + (lambda* (#:key outputs #:allow-other-keys) + (substitute* "scm/yamlpp.scm" + (("\\(load-extension \"libguile-yamlpp\"(.*)\\)" _ init) + (format #f "(load-extension \"~a/lib/guile/3.0/libguile-yamlpp\"~a)" + (assoc-ref outputs "out") init))))) + ;; Move 'check after installation, so that the foreign library is + ;; present where we expect it (as we hardcode its path above). + (delete 'check) + (add-after 'install 'check + (assoc-ref %standard-phases 'check))))) (native-inputs (list autoconf automake libtool pkg-config)) (inputs (list guile-3.0 yaml-cpp)) (native-search-paths -- 2.49.0