summary refs log tree commit diff
diff options
context:
space:
mode:
authorLudovic Courtès <ludovic.courtes@inria.fr>2018-09-11 15:10:46 +0200
committerLudovic Courtès <ludo@gnu.org>2018-09-11 17:46:28 +0200
commit8539eb5c464015cf3b4417d859b275f105991d77 (patch)
tree8913ffa2920be263345cc85414ce0a27e7176446
parent828fa94d7a234383fa479f769f220a7ec501bbdb (diff)
downloadguix-8539eb5c464015cf3b4417d859b275f105991d77.tar.gz
gnu: jupyter-guile-kernel: Add dependencies to the search path.
This allows:

  guix environment --ad-hoc jupyter jupyter-guile-kernel \
    -- jupyter notebook

to work out-of-the-box.

* gnu/packages/guile.scm (jupyter-guile-kernel)[arguments]: In
'install-kernel' phase, add '-L' and '-C' flags to 'kernel.json'.
[propagated-inputs]: Remove.
[inputs]: Add GUILE-JSON and GUILE-SIMPLE-ZMQ.
-rw-r--r--gnu/packages/guile.scm35
1 files changed, 28 insertions, 7 deletions
diff --git a/gnu/packages/guile.scm b/gnu/packages/guile.scm
index 16db4ea5e4..4ee887b749 100644
--- a/gnu/packages/guile.scm
+++ b/gnu/packages/guile.scm
@@ -2130,9 +2130,13 @@ messaging library.")
 
                     (add-after 'install 'install-kernel
                       (lambda* (#:key inputs outputs #:allow-other-keys)
-                        (let* ((out (assoc-ref outputs "out"))
-                               (dir (string-append
-                                     out "/share/jupyter/kernels/guile")))
+                        (let* ((out   (assoc-ref outputs "out"))
+                               (json  (assoc-ref inputs "guile-json"))
+                               (zmq   (assoc-ref inputs "guile-simple-zmq"))
+                               (deps  (list json zmq))
+                               (dir   (string-append
+                                       out "/share/jupyter/kernels/guile"))
+                               (effective (target-guile-effective-version)))
                           ;; Install kernel.
                           (install-file "src/kernel.json" dir)
 
@@ -2146,13 +2150,30 @@ messaging library.")
                              (string-append "\"" (assoc-ref inputs "guile")
                                             "/bin/guile\""))
                             (("-s")
-                             (string-append "--no-auto-compile\", \"-s")))
+                             ;; Add '-L' and '-C' flags so that the kernel
+                             ;; finds its dependencies.
+                             (let ((-L (map (lambda (item)
+                                              (string-append "\"" item
+                                                             "/share/guile/site/"
+                                                             effective "\""))
+                                            deps))
+                                   (-C (map (lambda (item)
+                                              (string-append "\"" item
+                                                             "/lib/guile/"
+                                                             effective
+                                                             "/site-ccache\""))
+                                            deps)))
+                              (string-append "--no-auto-compile\""
+                                             (string-join -L ", \"-L\", "
+                                                          'prefix)
+                                             (string-join -C ", \"-C\", "
+                                                          'prefix)
+                                             ", \"-s"))))
                           #t))))))
       (inputs
        `(("openssl" ,openssl)
-         ("guile" ,guile-2.2)))
-      (propagated-inputs
-       `(("guile-json" ,guile-json)
+         ("guile" ,guile-2.2)
+         ("guile-json" ,guile-json)
          ("guile-simple-zmq" ,guile-simple-zmq)))
       (synopsis "Guile kernel for the Jupyter Notebook")
       (description