From b718720d72f1da7655db49ec6ec25b658b0ca27f Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Fri, 10 Feb 2017 19:24:57 -0600 Subject: [PATCH] guile-gdbm-ffi: Write to correct guile output directory and use guild. * gnu/packages/guile.scm (make-guile-gdbm-ffi): New variable. Adapts from the previous guile-gdbm-ffi definition. Also fixes a bug where the guild command was not getting called, and instead was calling the internal guile compile-file procedure. This meant that the package produced was dependent on whatever version of guile was powering Guix at the time. (guile-gdbm-ffi, guile2.2-gdbm-ffi): Use make-guile-gdbm-ffi. --- gnu/packages/guile.scm | 29 +++++++++++++++++++---------- 1 file changed, 19 insertions(+), 10 deletions(-) diff --git a/gnu/packages/guile.scm b/gnu/packages/guile.scm index 3e8ab007b..a02e4887a 100644 --- a/gnu/packages/guile.scm +++ b/gnu/packages/guile.scm @@ -825,9 +825,11 @@ inspired by the SCSH regular expression system.") ;; There are two guile-gdbm packages, one using the FFI and one with ;; direct C bindings, hence the verbose name. -(define-public guile-gdbm-ffi +(define (make-guile-gdbm-ffi guile-2.2?) (package - (name "guile-gdbm-ffi") + (name (if guile-2.2? + "guile2.2-gdbm-ffi" + "guile-gdbm-ffi")) (version "20120209.fa1d5b6") (source (origin (method git-fetch) @@ -844,11 +846,12 @@ inspired by the SCSH regular expression system.") ((guix build utils)) #:builder (begin - (use-modules (guix build utils) - (system base compile)) + (use-modules (guix build utils)) (let* ((out (assoc-ref %outputs "out")) - (module-dir (string-append out "/share/guile/site/2.0")) + (module-dir (string-append out "/share/guile/site/" + ,(if guile-2.2? + "2.2" "2.0"))) (source (assoc-ref %build-inputs "source")) (doc (string-append out "/share/doc")) (guild (string-append (assoc-ref %build-inputs "guile") @@ -856,7 +859,10 @@ inspired by the SCSH regular expression system.") (gdbm.scm-dest (string-append module-dir "/gdbm.scm")) (gdbm.go-dest - (string-append module-dir "/gdbm.go"))) + (string-append module-dir "/gdbm.go")) + (compile-file + (lambda (in-file out-file) + (system* guild "compile" "-o" out-file in-file)))) ;; Make installation directories. (mkdir-p module-dir) (mkdir-p doc) @@ -874,10 +880,10 @@ inspired by the SCSH regular expression system.") (assoc-ref %build-inputs "gdbm")))) ;; compile to the destination - (compile-file gdbm.scm-dest - #:output-file gdbm.go-dest))))) + (compile-file gdbm.scm-dest gdbm.go-dest))))) (inputs - `(("guile" ,guile-2.0))) + `(("guile" ,(if guile-2.2? + guile-next guile-2.0)))) (propagated-inputs `(("gdbm" ,gdbm))) (home-page "https://github.com/ijp/guile-gdbm") @@ -887,8 +893,11 @@ inspired by the SCSH regular expression system.") Guile's foreign function interface.") (license gpl3+))) +(define-public guile-gdbm-ffi + (make-guile-gdbm-ffi #f)) + (define-public guile2.2-gdbm-ffi - (package-for-guile-2.2 guile-gdbm-ffi)) + (make-guile-gdbm-ffi #t)) (define-public guile-sqlite3 (let ((commit "607721fe1174a299e45d457acacf94eefb964071")) -- 2.11.0