* [bug#31449] [PATCH 1/3] gnu: Add guile-simple-zmq.
@ 2018-05-14 9:07 Rouby Pierre-Antoine
2018-05-14 9:10 ` [bug#31449] [PATCH 2/3] gnu: Add jupyter-guile-kernel Rouby Pierre-Antoine
` (2 more replies)
0 siblings, 3 replies; 12+ messages in thread
From: Rouby Pierre-Antoine @ 2018-05-14 9:07 UTC (permalink / raw)
To: 31449; +Cc: Rouby Pierre-Antoine
* gnu/package/guile.scm (guile-simple-zmq): New variable.
---
gnu/packages/guile.scm | 87 ++++++++++++++++++++++++++++++++++++++++++
1 file changed, 87 insertions(+)
diff --git a/gnu/packages/guile.scm b/gnu/packages/guile.scm
index 2af6f875e..9df59ba1d 100644
--- a/gnu/packages/guile.scm
+++ b/gnu/packages/guile.scm
@@ -66,6 +66,8 @@
#:use-module (gnu packages version-control)
#:use-module (gnu packages xdisorg)
#:use-module (gnu packages xorg)
+ #:use-module (gnu packages networking)
+ #:use-module (gnu packages tls)
#:use-module (guix packages)
#:use-module (guix download)
#:use-module (guix git-download)
@@ -2093,4 +2095,89 @@ It has a nice, simple s-expression based syntax.")
"Guile-colorized provides you with a colorized REPL for GNU Guile.")
(license license:gpl3+)))
+(define-public guile-simple-zmq
+ (package
+ (name "guile-simple-zmq")
+ (version "0.0.1")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/jerry40/guile-simple-zmq")
+ (commit "d76657aeb1cd10ef8136edc06bb90999914c7c3c")))
+ (sha256
+ (base32
+ "1w73dy5gpyv33jn34dqlkqpwh9w4y8wm6hgvbpb3wbp6xsa2mk4z"))))
+ (build-system trivial-build-system)
+ (arguments
+ `(#:modules ((guix build utils))
+ #:builder
+ (begin
+ (use-modules (guix build utils)
+ (srfi srfi-26)
+ (ice-9 match)
+ (ice-9 popen)
+ (ice-9 rdelim))
+
+ (let* ((out (assoc-ref %outputs "out"))
+ (guile (assoc-ref %build-inputs "guile"))
+ (effective (read-line
+ (open-pipe* OPEN_READ
+ (string-append guile "/bin/guile")
+ "-c" "(display (effective-version))")))
+ (module-dir (string-append out "/share/guile/site/"
+ effective))
+ (go-dir (string-append out "/lib/guile/"
+ effective "/site-ccache/"))
+ (source (string-append (assoc-ref %build-inputs "source")
+ "/src"))
+ (scm-file "simple-zmq.scm")
+ (guild (string-append (assoc-ref %build-inputs "guile")
+ "/bin/guild"))
+ (zmq (assoc-ref %build-inputs "zeromq"))
+ (deps (list zmq))
+ (path (string-join
+ (map (cut string-append <>
+ "/lib/")
+ deps)
+ ":")))
+ ;; Make installation directories.
+ (mkdir-p module-dir)
+ (mkdir-p go-dir)
+
+ ;; Compile .scm files and install.
+ (chdir source)
+ (setenv "GUILE_AUTO_COMPILE" "0")
+ (for-each (lambda (file)
+ (let* ((dest-file (string-append module-dir "/"
+ file))
+ (go-file (match (string-split file #\.)
+ ((base _)
+ (string-append go-dir "/"
+ base ".go")))))
+ ;; Install source module.
+ (copy-file file dest-file)
+ (substitute* dest-file
+ (("\\(dynamic-link \"libzmq\"\\)")
+ (format #f "(dynamic-link \"~a/lib/libzmq.so\")"
+ (assoc-ref %build-inputs "zeromq"))))
+
+ ;; Install and compile module.
+ (unless (zero? (system* guild "compile"
+ "-L" source
+ "-o" go-file
+ dest-file))
+ (error (format #f "Failed to compile ~s to ~s!"
+ file go-file)))))
+ (list scm-file))
+ #t))))
+ (propagated-inputs
+ `(("guile" ,guile-2.2)
+ ("zeromq" ,zeromq)))
+ (home-page "https://github.com/jerry40/guile-simple-zmq")
+ (synopsis "Guile wrapper over ZeroMQ library")
+ (description
+ "This package is Guile wrapper over ZeroMQ library.")
+ (license license:gpl3+)))
+
;;; guile.scm ends here
--
2.17.0
^ permalink raw reply related [flat|nested] 12+ messages in thread
* [bug#31449] [PATCH 2/3] gnu: Add jupyter-guile-kernel.
2018-05-14 9:07 [bug#31449] [PATCH 1/3] gnu: Add guile-simple-zmq Rouby Pierre-Antoine
@ 2018-05-14 9:10 ` Rouby Pierre-Antoine
2018-05-14 13:06 ` Ludovic Courtès
2018-05-14 9:10 ` [bug#31449] [PATCH 3/3] gnu: jupyter: Add search path Rouby Pierre-Antoine
2018-05-14 12:55 ` [bug#31449] [PATCH 1/3] gnu: Add guile-simple-zmq Ludovic Courtès
2 siblings, 1 reply; 12+ messages in thread
From: Rouby Pierre-Antoine @ 2018-05-14 9:10 UTC (permalink / raw)
To: 31449; +Cc: Rouby Pierre-Antoine
* gnu/package/guile.scm (jupyter-guile-kernel): New variable.
---
gnu/packages/guile.scm | 127 +++++++++++++++++++++++++++++++++++++++++
1 file changed, 127 insertions(+)
diff --git a/gnu/packages/guile.scm b/gnu/packages/guile.scm
index 9df59ba1d..bcd26461c 100644
--- a/gnu/packages/guile.scm
+++ b/gnu/packages/guile.scm
@@ -2180,4 +2180,131 @@ It has a nice, simple s-expression based syntax.")
"This package is Guile wrapper over ZeroMQ library.")
(license license:gpl3+)))
+(define-public jupyter-guile-kernel
+ (package
+ (name "jupyter-guile-kernel")
+ (version "0.0.1")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/jerry40/guile-kernel")
+ (commit "b751d80730f3d64a4b38df1902c3e36672d46b2b")))
+ (sha256
+ (base32
+ "0mah16mjg84l6fc52caqzk5b3m4lfi7f4fki96nbwmrgcxz9hy4g"))))
+ (build-system trivial-build-system)
+ (arguments
+ `(#:modules ((guix build utils))
+ #:builder
+ (begin
+ (use-modules (guix build utils)
+ (srfi srfi-26)
+ (ice-9 match)
+ (ice-9 popen)
+ (ice-9 rdelim))
+
+ (let* ((out (assoc-ref %outputs "out"))
+ (guile (assoc-ref %build-inputs "guile"))
+ (effective (read-line
+ (open-pipe* OPEN_READ
+ (string-append guile "/bin/guile")
+ "-c" "(display (effective-version))")))
+ (module-dir (string-append out "/share/guile/site/"
+ effective))
+ (kernel-dir (string-append out "/share/jupyter/kernels/guile"))
+ (go-dir (string-append out "/lib/guile/"
+ effective
+ "/site-ccache"))
+ (source (string-append (assoc-ref %build-inputs "source")
+ "/src"))
+ (scm-files '("hmac.scm"
+ "tools.scm"
+ "main.scm"))
+ (kernel-file "kernel.json")
+ (guild (string-append (assoc-ref %build-inputs "guile")
+ "/bin/guild"))
+ (zmq (string-append (assoc-ref %build-inputs "zeromq")
+ "/lib"))
+ (g-szmq (assoc-ref %build-inputs "guile-simple-zmq"))
+ (json (assoc-ref %build-inputs "guile-json"))
+ (deps (list g-szmq json))
+ (path (string-join
+ (map (cut string-append <>
+ "/share/guile/site/"
+ effective)
+ deps)
+ ":"))
+ (gopath (string-join
+ (map (cut string-append <>
+ "/lib/guile/" effective
+ "/site-ccache/")
+ deps)
+ ":"))
+ (guile-env (if (not (eq? (getenv "GUILE_LOAD_PATH")
+ #f))
+ (string-append
+ (getenv "GUILE_LOAD_PATH") ":")
+ ""))
+ (guile-go-env (if (not (eq? (getenv "GUILE_LOAD_COMPILED_PATH")
+ #f))
+ (string-append
+ (getenv "GUILE_LOAD_COMPILED_PATH") ":")
+ "")))
+ ;; Make installation directories.
+ (mkdir-p module-dir)
+ (mkdir-p kernel-dir)
+ (mkdir-p go-dir)
+
+ ;; Compile .scm files and install.
+ (chdir source)
+ (setenv "GUILE_AUTO_COMPILE" "0")
+ (setenv "GUILE_LOAD_PATH" (string-append guile-env path))
+ (setenv "GUILE_LOAD_COMPILED_PATH" (string-append guile-go-env
+ gopath))
+
+ (for-each (lambda (file)
+ (let* ((dest-file (string-append module-dir "/"
+ file))
+ (go-file (match (string-split file #\.)
+ ((base _)
+ (string-append go-dir "/"
+ base ".go")))))
+ ;; Install source module.
+ (copy-file file dest-file)
+ ;; Install compiled module.
+ (unless (zero? (system* guild "compile"
+ "-L" source
+ "-o" go-file
+ file))
+ (error (format #f "Failed to compile ~s to ~s!"
+ file go-file)))))
+ scm-files)
+
+ ;; Install kernel
+ (copy-file kernel-file (string-append kernel-dir "/"
+ kernel-file))
+ ;; Sed kernel file
+ (substitute* (string-append kernel-dir "/"
+ kernel-file)
+ (("/home/jerry/.local/share/jupyter/kernels/guile/main.scm")
+ (string-append module-dir "/main.scm")))
+ (substitute* (string-append kernel-dir "/"
+ kernel-file)
+ (("-s")
+ (string-append "--no-auto-compile\", \"-s")))
+ #t))))
+ (propagated-inputs
+ `(("guile" ,guile-2.2)
+ ("zeromq" ,zeromq)
+ ("openssl", openssl)
+ ("guile-json" ,guile-json)
+ ("guile-simple-zmq" ,guile-simple-zmq)))
+ (synopsis "Guile kernel for jupyter")
+ (description
+ "This package is Guile kernel for Jupyter Notebook. This software is
+write for GNU Guile 2.0.")
+ (home-page "https://github.com/jerry40/guile-kernel")
+ (license license:gpl3+)))
+
;;; guile.scm ends here
--
2.17.0
^ permalink raw reply related [flat|nested] 12+ messages in thread
* [bug#31449] [PATCH 3/3] gnu: jupyter: Add search path.
2018-05-14 9:07 [bug#31449] [PATCH 1/3] gnu: Add guile-simple-zmq Rouby Pierre-Antoine
2018-05-14 9:10 ` [bug#31449] [PATCH 2/3] gnu: Add jupyter-guile-kernel Rouby Pierre-Antoine
@ 2018-05-14 9:10 ` Rouby Pierre-Antoine
2018-05-14 13:07 ` Ludovic Courtès
2018-05-17 11:18 ` bug#31449: " Ludovic Courtès
2018-05-14 12:55 ` [bug#31449] [PATCH 1/3] gnu: Add guile-simple-zmq Ludovic Courtès
2 siblings, 2 replies; 12+ messages in thread
From: Rouby Pierre-Antoine @ 2018-05-14 9:10 UTC (permalink / raw)
To: 31449; +Cc: Rouby Pierre-Antoine
* gnu/package/python.scm (jupyter)[native-search-paths]: Add it.
---
gnu/packages/python.scm | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm
index a5d533b1c..c56a5be86 100644
--- a/gnu/packages/python.scm
+++ b/gnu/packages/python.scm
@@ -6805,6 +6805,12 @@ Jupyter kernels such as IJulia and IRKernel.")
("python-jupyter-console" ,python-jupyter-console)
("python-nbconvert" ,python-nbconvert)
("python-notebook" ,python-notebook)))
+
+ (native-search-paths
+ (list (search-path-specification
+ (variable "JUPYTER_PATH")
+ (files '("share/jupyter/")))))
+
(home-page "http://jupyter.org")
(synopsis "Web application for interactive documents")
(description
--
2.17.0
^ permalink raw reply related [flat|nested] 12+ messages in thread
* [bug#31449] [PATCH 1/3] gnu: Add guile-simple-zmq.
2018-05-14 9:07 [bug#31449] [PATCH 1/3] gnu: Add guile-simple-zmq Rouby Pierre-Antoine
2018-05-14 9:10 ` [bug#31449] [PATCH 2/3] gnu: Add jupyter-guile-kernel Rouby Pierre-Antoine
2018-05-14 9:10 ` [bug#31449] [PATCH 3/3] gnu: jupyter: Add search path Rouby Pierre-Antoine
@ 2018-05-14 12:55 ` Ludovic Courtès
2018-05-15 9:22 ` Rouby Pierre-Antoine
2 siblings, 1 reply; 12+ messages in thread
From: Ludovic Courtès @ 2018-05-14 12:55 UTC (permalink / raw)
To: Rouby Pierre-Antoine; +Cc: 31449
Hello!
Rouby Pierre-Antoine <pierre-antoine.rouby@inria.fr> skribis:
> * gnu/package/guile.scm (guile-simple-zmq): New variable.
[...]
> +(define-public guile-simple-zmq
> + (package
> + (name "guile-simple-zmq")
> + (version "0.0.1")
> + (source
> + (origin
> + (method git-fetch)
> + (uri (git-reference
> + (url "https://github.com/jerry40/guile-simple-zmq")
> + (commit "d76657aeb1cd10ef8136edc06bb90999914c7c3c")))
Nitpick: since there’s no release, I think the version number should be
like:
(string-append "0-" (string-take commit 7))
along the lines of what the manual suggests (info "(guix) Version
Numbers").
> + (description
> + "This package is Guile wrapper over ZeroMQ library.")
What about:
"This package provides a Guile programming interface to the ZeroMQ
messaging library."
?
Could you send an updated patch?
Thanks,
Ludo’.
^ permalink raw reply [flat|nested] 12+ messages in thread
* [bug#31449] [PATCH 2/3] gnu: Add jupyter-guile-kernel.
2018-05-14 9:10 ` [bug#31449] [PATCH 2/3] gnu: Add jupyter-guile-kernel Rouby Pierre-Antoine
@ 2018-05-14 13:06 ` Ludovic Courtès
2018-05-15 9:24 ` Rouby Pierre-Antoine
0 siblings, 1 reply; 12+ messages in thread
From: Ludovic Courtès @ 2018-05-14 13:06 UTC (permalink / raw)
To: Rouby Pierre-Antoine; +Cc: 31449
Rouby Pierre-Antoine <pierre-antoine.rouby@inria.fr> skribis:
> * gnu/package/guile.scm (jupyter-guile-kernel): New variable.
[...]
> + (scm-files '("hmac.scm"
> + "tools.scm"
> + "main.scm"))
Maybe (find-files "." "\\.scm$") would work?
> + (guile-env (if (not (eq? (getenv "GUILE_LOAD_PATH")
> + #f))
> + (string-append
> + (getenv "GUILE_LOAD_PATH") ":")
> + ""))
> + (guile-go-env (if (not (eq? (getenv "GUILE_LOAD_COMPILED_PATH")
> + #f))
> + (string-append
> + (getenv "GUILE_LOAD_COMPILED_PATH") ":")
> + "")))
(not (eq? foo #f)) can be simplified to (not foo).
Also (getenv "GUILE_LOAD_PATH") and (getenv "GUILE_LOAD_COMPILED_PATH")
are always true in this case, I think, so perhaps you can remove these
two variables altogether?
> + ;; Sed kernel file
> + (substitute* (string-append kernel-dir "/"
> + kernel-file)
> + (("/home/jerry/.local/share/jupyter/kernels/guile/main.scm")
> + (string-append module-dir "/main.scm")))
Maybe the comment could be, IIUC:
;; Fix hard-coded file name in the kernel.
> + (synopsis "Guile kernel for jupyter")
^
“Guile kernel for the Jupyter Notebook”
> + (description
> + "This package is Guile kernel for Jupyter Notebook. This software is
> +write for GNU Guile 2.0.")
What about:
“This package provides a Guile 2.x kernel for the Jupyter Notebook.
It allows users to interact with the Guile REPL through Jupyter.”
Could you send an updated patch?
Thanks!
Ludo’.
^ permalink raw reply [flat|nested] 12+ messages in thread
* [bug#31449] [PATCH 3/3] gnu: jupyter: Add search path.
2018-05-14 9:10 ` [bug#31449] [PATCH 3/3] gnu: jupyter: Add search path Rouby Pierre-Antoine
@ 2018-05-14 13:07 ` Ludovic Courtès
2018-05-17 11:18 ` bug#31449: " Ludovic Courtès
1 sibling, 0 replies; 12+ messages in thread
From: Ludovic Courtès @ 2018-05-14 13:07 UTC (permalink / raw)
To: Rouby Pierre-Antoine; +Cc: 31449
Rouby Pierre-Antoine <pierre-antoine.rouby@inria.fr> skribis:
> * gnu/package/python.scm (jupyter)[native-search-paths]: Add it.
LGTM, thank you!
^ permalink raw reply [flat|nested] 12+ messages in thread
* [bug#31449] [PATCH 1/3] gnu: Add guile-simple-zmq.
2018-05-14 12:55 ` [bug#31449] [PATCH 1/3] gnu: Add guile-simple-zmq Ludovic Courtès
@ 2018-05-15 9:22 ` Rouby Pierre-Antoine
2018-05-15 9:27 ` Ludovic Courtès
0 siblings, 1 reply; 12+ messages in thread
From: Rouby Pierre-Antoine @ 2018-05-15 9:22 UTC (permalink / raw)
To: ludo; +Cc: 31449, Rouby Pierre-Antoine
* gnu/package/guile.scm (guile-simple-zmq): New variable.
---
gnu/packages/guile.scm | 91 ++++++++++++++++++++++++++++++++++++++++++
1 file changed, 91 insertions(+)
diff --git a/gnu/packages/guile.scm b/gnu/packages/guile.scm
index 2af6f875e..3a0158944 100644
--- a/gnu/packages/guile.scm
+++ b/gnu/packages/guile.scm
@@ -17,6 +17,7 @@
;;; Copyright © 2017 Nils Gillmann <ng0@n0.is>
;;; Copyright © 2017 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2018 Maxim Cournoyer <maxim.cournoyer@gmail.com>
+;;; Copyright © 2018 Pierre-Antoine Rouby <pierre-antoine.rouby@inria.fr>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -66,6 +67,8 @@
#:use-module (gnu packages version-control)
#:use-module (gnu packages xdisorg)
#:use-module (gnu packages xorg)
+ #:use-module (gnu packages networking)
+ #:use-module (gnu packages tls)
#:use-module (guix packages)
#:use-module (guix download)
#:use-module (guix git-download)
@@ -2093,4 +2096,92 @@ It has a nice, simple s-expression based syntax.")
"Guile-colorized provides you with a colorized REPL for GNU Guile.")
(license license:gpl3+)))
+(define-public guile-simple-zmq
+ (let ((commit "d76657aeb1cd10ef8136edc06bb90999914c7c3c")
+ (revision "0"))
+ (package
+ (name "guile-simple-zmq")
+ (version (git-version "0.0.0" revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/jerry40/guile-simple-zmq")
+ (commit commit)))
+ (sha256
+ (base32
+ "1w73dy5gpyv33jn34dqlkqpwh9w4y8wm6hgvbpb3wbp6xsa2mk4z"))))
+ (build-system trivial-build-system)
+ (arguments
+ `(#:modules ((guix build utils))
+ #:builder
+ (begin
+ (use-modules (guix build utils)
+ (srfi srfi-26)
+ (ice-9 match)
+ (ice-9 popen)
+ (ice-9 rdelim))
+
+ (let* ((out (assoc-ref %outputs "out"))
+ (guile (assoc-ref %build-inputs "guile"))
+ (effective (read-line
+ (open-pipe* OPEN_READ
+ (string-append guile "/bin/guile")
+ "-c" "(display (effective-version))")))
+ (module-dir (string-append out "/share/guile/site/"
+ effective))
+ (go-dir (string-append out "/lib/guile/"
+ effective "/site-ccache/"))
+ (source (string-append (assoc-ref %build-inputs "source")
+ "/src"))
+ (scm-file "simple-zmq.scm")
+ (guild (string-append (assoc-ref %build-inputs "guile")
+ "/bin/guild"))
+ (zmq (assoc-ref %build-inputs "zeromq"))
+ (deps (list zmq))
+ (path (string-join
+ (map (cut string-append <>
+ "/lib/")
+ deps)
+ ":")))
+ ;; Make installation directories.
+ (mkdir-p module-dir)
+ (mkdir-p go-dir)
+
+ ;; Compile .scm files and install.
+ (chdir source)
+ (setenv "GUILE_AUTO_COMPILE" "0")
+ (for-each (lambda (file)
+ (let* ((dest-file (string-append module-dir "/"
+ file))
+ (go-file (match (string-split file #\.)
+ ((base _)
+ (string-append go-dir "/"
+ base ".go")))))
+ ;; Install source module.
+ (copy-file file dest-file)
+ (substitute* dest-file
+ (("\\(dynamic-link \"libzmq\"\\)")
+ (format #f "(dynamic-link \"~a/lib/libzmq.so\")"
+ (assoc-ref %build-inputs "zeromq"))))
+
+ ;; Install and compile module.
+ (unless (zero? (system* guild "compile"
+ "-L" source
+ "-o" go-file
+ dest-file))
+ (error (format #f "Failed to compile ~s to ~s!"
+ file go-file)))))
+ (list scm-file))
+ #t))))
+ (propagated-inputs
+ `(("guile" ,guile-2.2)
+ ("zeromq" ,zeromq)))
+ (home-page "https://github.com/jerry40/guile-simple-zmq")
+ (synopsis "Guile wrapper over ZeroMQ library")
+ (description
+ "This package provides a Guile programming interface to the ZeroMQ
+messaging library.")
+ (license license:gpl3+))))
+
;;; guile.scm ends here
--
2.17.0
^ permalink raw reply related [flat|nested] 12+ messages in thread
* [bug#31449] [PATCH 2/3] gnu: Add jupyter-guile-kernel.
2018-05-14 13:06 ` Ludovic Courtès
@ 2018-05-15 9:24 ` Rouby Pierre-Antoine
2018-05-15 11:33 ` Rouby Pierre-Antoine
0 siblings, 1 reply; 12+ messages in thread
From: Rouby Pierre-Antoine @ 2018-05-15 9:24 UTC (permalink / raw)
To: ludo; +Cc: 31449, Rouby Pierre-Antoine
* gnu/package/guile.scm (jupyter-guile-kernel): New variable.
---
gnu/packages/guile.scm | 126 +++++++++++++++++++++++++++++++++++++++++
1 file changed, 126 insertions(+)
diff --git a/gnu/packages/guile.scm b/gnu/packages/guile.scm
index 3a0158944..a6a0ada8c 100644
--- a/gnu/packages/guile.scm
+++ b/gnu/packages/guile.scm
@@ -2184,4 +2184,130 @@ It has a nice, simple s-expression based syntax.")
messaging library.")
(license license:gpl3+))))
+(define-public jupyter-guile-kernel
+ (let ((commit "b751d80730f3d64a4b38df1902c3e36672d46b2b")
+ (revision "0"))
+ (package
+ (name "jupyter-guile-kernel")
+ (version (git-version "0.0.0" revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/jerry40/guile-kernel")
+ (commit commit)))
+ (sha256
+ (base32
+ "0mah16mjg84l6fc52caqzk5b3m4lfi7f4fki96nbwmrgcxz9hy4g"))))
+ (build-system trivial-build-system)
+ (arguments
+ `(#:modules ((guix build utils))
+ #:builder
+ (begin
+ (use-modules (guix build utils)
+ (srfi srfi-26)
+ (ice-9 match)
+ (ice-9 popen)
+ (ice-9 rdelim))
+
+ (let* ((out (assoc-ref %outputs "out"))
+ (guile (assoc-ref %build-inputs "guile"))
+ (effective (read-line
+ (open-pipe* OPEN_READ
+ (string-append guile "/bin/guile")
+ "-c" "(display (effective-version))")))
+ (module-dir (string-append out "/share/guile/site/"
+ effective))
+ (kernel-dir (string-append out "/share/jupyter/kernels/guile"))
+ (go-dir (string-append out "/lib/guile/"
+ effective
+ "/site-ccache"))
+ (source (string-append (assoc-ref %build-inputs "source")
+ "/src"))
+ (scm-files '("hmac.scm"
+ "tools.scm"
+ "main.scm"))
+ (kernel-file "kernel.json")
+ (guild (string-append (assoc-ref %build-inputs "guile")
+ "/bin/guild"))
+ (zmq (string-append (assoc-ref %build-inputs "zeromq")
+ "/lib"))
+ (g-szmq (assoc-ref %build-inputs "guile-simple-zmq"))
+ (json (assoc-ref %build-inputs "guile-json"))
+ (deps (list g-szmq json))
+ (path (string-join
+ (map (cut string-append <>
+ "/share/guile/site/"
+ effective)
+ deps)
+ ":"))
+ (gopath (string-join
+ (map (cut string-append <>
+ "/lib/guile/" effective
+ "/site-ccache/")
+ deps)
+ ":")))
+
+ ;; Make installation directories.
+ (mkdir-p module-dir)
+ (mkdir-p kernel-dir)
+ (mkdir-p go-dir)
+
+ ;; Compile .scm files and install.
+ (chdir source)
+ (setenv "GUILE_AUTO_COMPILE" "0")
+ (setenv "GUILE_LOAD_PATH" path)
+ (setenv "GUILE_LOAD_COMPILED_PATH" gopath)
+
+ (for-each (lambda (file)
+ (let* ((dest-file (string-append module-dir "/"
+ file))
+ (go-file (match (string-split file #\.)
+ ((base _)
+ (string-append go-dir "/"
+ base ".go")))))
+ ;; Install source module.
+ (copy-file file dest-file)
+
+ ;; Install compiled module.
+ (unless (zero? (system* guild "compile"
+ "-L" source
+ "-o" go-file
+ file))
+ (error (format #f "Failed to compile ~s to ~s!"
+ file go-file)))))
+ scm-files)
+
+ ;; Fix executable file name
+ (rename-file (string-append module-dir "/main.scm")
+ (string-append module-dir "/guile-jupyter-kernel.scm"))
+ (rename-file (string-append go-dir "/main.go")
+ (string-append go-dir "/guile-jupyter-kernel.go"))
+
+ ;; Install kernel
+ (copy-file kernel-file (string-append kernel-dir "/"
+ kernel-file))
+ ;; Fix hard-coded file name in the kernel
+ (substitute* (string-append kernel-dir "/"
+ kernel-file)
+ (("/home/jerry/.local/share/jupyter/kernels/guile/main.scm")
+ (string-append module-dir "/guile-jupyter-kernel.scm")))
+ (substitute* (string-append kernel-dir "/"
+ kernel-file)
+ (("-s")
+ (string-append "--no-auto-compile\", \"-s")))
+ #t))))
+ (propagated-inputs
+ `(("guile" ,guile-2.2)
+ ("zeromq" ,zeromq)
+ ("openssl" ,openssl)
+ ("guile-json" ,guile-json)
+ ("guile-simple-zmq" ,guile-simple-zmq)))
+ (synopsis "Guile kernel for the Jupyter Notebook")
+ (description
+ "This package provides a Guile 2.x kernel for the Jupyter Notebook. It
+allows users to interact with the Guile REPL through Jupyter.")
+ (home-page "https://github.com/jerry40/guile-kernel")
+ (license license:gpl3+))))
+
;;; guile.scm ends here
--
2.17.0
^ permalink raw reply related [flat|nested] 12+ messages in thread
* [bug#31449] [PATCH 1/3] gnu: Add guile-simple-zmq.
2018-05-15 9:22 ` Rouby Pierre-Antoine
@ 2018-05-15 9:27 ` Ludovic Courtès
0 siblings, 0 replies; 12+ messages in thread
From: Ludovic Courtès @ 2018-05-15 9:27 UTC (permalink / raw)
To: Rouby Pierre-Antoine; +Cc: 31449
[-- Attachment #1: Type: text/plain, Size: 183 bytes --]
Rouby Pierre-Antoine <pierre-antoine.rouby@inria.fr> skribis:
> * gnu/package/guile.scm (guile-simple-zmq): New variable.
Applied with the changes below, thanks!
Ludo’.
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: Type: text/x-patch, Size: 862 bytes --]
diff --git a/gnu/packages/guile.scm b/gnu/packages/guile.scm
index f473a1cc9..9e24e90c2 100644
--- a/gnu/packages/guile.scm
+++ b/gnu/packages/guile.scm
@@ -69,7 +69,6 @@
#:use-module (gnu packages xdisorg)
#:use-module (gnu packages xorg)
#:use-module (gnu packages networking)
- #:use-module (gnu packages tls)
#:use-module (guix packages)
#:use-module (guix download)
#:use-module (guix git-download)
@@ -2133,7 +2132,8 @@ It has a nice, simple s-expression based syntax.")
(commit commit)))
(sha256
(base32
- "1w73dy5gpyv33jn34dqlkqpwh9w4y8wm6hgvbpb3wbp6xsa2mk4z"))))
+ "1w73dy5gpyv33jn34dqlkqpwh9w4y8wm6hgvbpb3wbp6xsa2mk4z"))
+ (file-name (git-file-name name version))))
(build-system trivial-build-system)
(arguments
`(#:modules ((guix build utils))
^ permalink raw reply related [flat|nested] 12+ messages in thread
* [bug#31449] [PATCH 2/3] gnu: Add jupyter-guile-kernel.
2018-05-15 9:24 ` Rouby Pierre-Antoine
@ 2018-05-15 11:33 ` Rouby Pierre-Antoine
2018-05-17 9:42 ` Ludovic Courtès
0 siblings, 1 reply; 12+ messages in thread
From: Rouby Pierre-Antoine @ 2018-05-15 11:33 UTC (permalink / raw)
To: ludo; +Cc: 31449, Rouby Pierre-Antoine
* gnu/package/guile.scm (jupyter-guile-kernel): New variable.
---
gnu/packages/guile.scm | 121 +++++++++++++++++++++++++++++++++++++++++
1 file changed, 121 insertions(+)
diff --git a/gnu/packages/guile.scm b/gnu/packages/guile.scm
index 3a0158944..b39dcea9e 100644
--- a/gnu/packages/guile.scm
+++ b/gnu/packages/guile.scm
@@ -2184,4 +2184,125 @@ It has a nice, simple s-expression based syntax.")
messaging library.")
(license license:gpl3+))))
+(define-public jupyter-guile-kernel
+ (let ((commit "a5c5f3ea3215b65e770bcb62f71117b0ec4575ed")
+ (revision "0"))
+ (package
+ (name "jupyter-guile-kernel")
+ (version (git-version "0.0.0" revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/jerry40/guile-kernel")
+ (commit commit)))
+ (sha256
+ (base32
+ "0y5jr0f0dyskvsawqbf6n0bpg8jirw4mhqbarf2a6p9lxhqha9s9"))))
+ (build-system trivial-build-system)
+ (arguments
+ `(#:modules ((guix build utils))
+ #:builder
+ (begin
+ (use-modules (guix build utils)
+ (srfi srfi-26)
+ (ice-9 match)
+ (ice-9 popen)
+ (ice-9 rdelim))
+
+ (let* ((out (assoc-ref %outputs "out"))
+ (guile (assoc-ref %build-inputs "guile"))
+ (effective (read-line
+ (open-pipe* OPEN_READ
+ (string-append guile "/bin/guile")
+ "-c" "(display (effective-version))")))
+ (module-dir (string-append out "/share/guile/site/"
+ effective))
+ (kernel-dir (string-append out "/share/jupyter/kernels/guile"))
+ (go-dir (string-append out "/lib/guile/"
+ effective
+ "/site-ccache"))
+ (source (string-append (assoc-ref %build-inputs "source")
+ "/src"))
+ (scm-files '("hmac.scm"
+ "tools.scm"
+ "guile-jupyter-kernel.scm"))
+ (kernel-file "kernel.json")
+ (guild (string-append (assoc-ref %build-inputs "guile")
+ "/bin/guild"))
+ (zmq (string-append (assoc-ref %build-inputs "zeromq")
+ "/lib"))
+ (g-szmq (assoc-ref %build-inputs "guile-simple-zmq"))
+ (json (assoc-ref %build-inputs "guile-json"))
+ (deps (list g-szmq json))
+ (path (string-join
+ (map (cut string-append <>
+ "/share/guile/site/"
+ effective)
+ deps)
+ ":"))
+ (gopath (string-join
+ (map (cut string-append <>
+ "/lib/guile/" effective
+ "/site-ccache/")
+ deps)
+ ":")))
+
+ ;; Make installation directories.
+ (mkdir-p module-dir)
+ (mkdir-p kernel-dir)
+ (mkdir-p go-dir)
+
+ ;; Compile .scm files and install.
+ (chdir source)
+ (setenv "GUILE_AUTO_COMPILE" "0")
+ (setenv "GUILE_LOAD_PATH" path)
+ (setenv "GUILE_LOAD_COMPILED_PATH" gopath)
+
+ (for-each (lambda (file)
+ (let* ((dest-file (string-append module-dir "/"
+ file))
+ (go-file (match (string-split file #\.)
+ ((base _)
+ (string-append go-dir "/"
+ base ".go")))))
+ ;; Install source module.
+ (copy-file file dest-file)
+
+ ;; Install compiled module.
+ (unless (zero? (system* guild "compile"
+ "-L" source
+ "-o" go-file
+ file))
+ (error (format #f "Failed to compile ~s to ~s!"
+ file go-file)))))
+ scm-files)
+
+ ;; Install kernel
+ (copy-file kernel-file (string-append kernel-dir "/"
+ kernel-file))
+ ;; Fix hard-coded file name in the kernel
+ (substitute* (string-append kernel-dir "/"
+ kernel-file)
+ (("/home/jerry/.local/share/jupyter/kernels/guile/guile-jupyter-kernel.scm")
+ (string-append module-dir "/guile-jupyter-kernel.scm")))
+ (substitute* (string-append kernel-dir "/"
+ kernel-file)
+ (("-s")
+ (string-append "--no-auto-compile\", \"-s")))
+ #t))))
+ (inputs
+ `(("zeromq" ,zeromq)))
+ (propagated-inputs
+ `(("guile-json" ,guile-json)
+ ("guile-simple-zmq" ,guile-simple-zmq)
+ ("guile" ,guile-2.2)
+ ("openssl" ,openssl)))
+ (synopsis "Guile kernel for the Jupyter Notebook")
+ (description
+ "This package provides a Guile 2.x kernel for the Jupyter Notebook. It
+allows users to interact with the Guile REPL through Jupyter.")
+ (home-page "https://github.com/jerry40/guile-kernel")
+ (license license:gpl3+))))
+
;;; guile.scm ends here
--
2.17.0
^ permalink raw reply related [flat|nested] 12+ messages in thread
* [bug#31449] [PATCH 2/3] gnu: Add jupyter-guile-kernel.
2018-05-15 11:33 ` Rouby Pierre-Antoine
@ 2018-05-17 9:42 ` Ludovic Courtès
0 siblings, 0 replies; 12+ messages in thread
From: Ludovic Courtès @ 2018-05-17 9:42 UTC (permalink / raw)
To: Rouby Pierre-Antoine; +Cc: 31449
[-- Attachment #1: Type: text/plain, Size: 218 bytes --]
Rouby Pierre-Antoine <pierre-antoine.rouby@inria.fr> skribis:
> * gnu/package/guile.scm (jupyter-guile-kernel): New variable.
Applied with the changes below, to avoid propagated inputs.
Thanks!
Ludo’.
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: Type: text/x-patch, Size: 4197 bytes --]
diff --git a/gnu/packages/guile.scm b/gnu/packages/guile.scm
index a4a0f87c0..84f46d1cc 100644
--- a/gnu/packages/guile.scm
+++ b/gnu/packages/guile.scm
@@ -61,6 +61,7 @@
#:use-module (gnu packages gettext)
#:use-module (gnu packages databases)
#:use-module (gnu packages python)
+ #:use-module (gnu packages tls)
#:use-module (gnu packages gl)
#:use-module (gnu packages sdl)
#:use-module (gnu packages maths)
@@ -2253,8 +2254,6 @@ messaging library.")
(kernel-file "kernel.json")
(guild (string-append (assoc-ref %build-inputs "guile")
"/bin/guild"))
- (zmq (string-append (assoc-ref %build-inputs "zeromq")
- "/lib"))
(g-szmq (assoc-ref %build-inputs "guile-simple-zmq"))
(json (assoc-ref %build-inputs "guile-json"))
(deps (list g-szmq json))
@@ -2270,18 +2269,26 @@ messaging library.")
"/site-ccache/")
deps)
":")))
-
+
;; Make installation directories.
(mkdir-p module-dir)
(mkdir-p kernel-dir)
(mkdir-p go-dir)
+ ;; Make a writable copy of SOURCE.
+ (copy-recursively source ".")
+
+ ;; Record the absolute file name of the 'openssl' command.
+ (substitute* "hmac.scm"
+ (("openssl")
+ (string-append (assoc-ref %build-inputs "openssl")
+ "/bin/openssl")))
+
;; Compile .scm files and install.
- (chdir source)
(setenv "GUILE_AUTO_COMPILE" "0")
(setenv "GUILE_LOAD_PATH" path)
(setenv "GUILE_LOAD_COMPILED_PATH" gopath)
-
+
(for-each (lambda (file)
(let* ((dest-file (string-append module-dir "/"
file))
@@ -2291,7 +2298,7 @@ messaging library.")
base ".go")))))
;; Install source module.
(copy-file file dest-file)
-
+
;; Install compiled module.
(unless (zero? (system* guild "compile"
"-L" source
@@ -2300,7 +2307,7 @@ messaging library.")
(error (format #f "Failed to compile ~s to ~s!"
file go-file)))))
scm-files)
-
+
;; Install kernel
(copy-file kernel-file (string-append kernel-dir "/"
kernel-file))
@@ -2308,19 +2315,20 @@ messaging library.")
(substitute* (string-append kernel-dir "/"
kernel-file)
(("/home/jerry/.local/share/jupyter/kernels/guile/guile-jupyter-kernel.scm")
- (string-append module-dir "/guile-jupyter-kernel.scm")))
- (substitute* (string-append kernel-dir "/"
- kernel-file)
+ (string-append module-dir "/guile-jupyter-kernel.scm"))
+ (("\"guile\"")
+ (string-append "\"" (assoc-ref %build-inputs "guile")
+ "/bin/guile\""))
(("-s")
(string-append "--no-auto-compile\", \"-s")))
+
#t))))
(inputs
- `(("zeromq" ,zeromq)))
+ `(("openssl" ,openssl)
+ ("guile" ,guile-2.2)))
(propagated-inputs
`(("guile-json" ,guile-json)
- ("guile-simple-zmq" ,guile-simple-zmq)
- ("guile" ,guile-2.2)
- ("openssl" ,openssl)))
+ ("guile-simple-zmq" ,guile-simple-zmq)))
(synopsis "Guile kernel for the Jupyter Notebook")
(description
"This package provides a Guile 2.x kernel for the Jupyter Notebook. It
^ permalink raw reply related [flat|nested] 12+ messages in thread
* bug#31449: [PATCH 3/3] gnu: jupyter: Add search path.
2018-05-14 9:10 ` [bug#31449] [PATCH 3/3] gnu: jupyter: Add search path Rouby Pierre-Antoine
2018-05-14 13:07 ` Ludovic Courtès
@ 2018-05-17 11:18 ` Ludovic Courtès
1 sibling, 0 replies; 12+ messages in thread
From: Ludovic Courtès @ 2018-05-17 11:18 UTC (permalink / raw)
To: Rouby Pierre-Antoine; +Cc: 31449-done
Rouby Pierre-Antoine <pierre-antoine.rouby@inria.fr> skribis:
> * gnu/package/python.scm (jupyter)[native-search-paths]: Add it.
Applied as well!
So to run the Jupyter Notebook (web UI), you can do:
guix environment --ad-hoc jupyter jupyter-guile-kernel -- jupyter notebook
And from there, point your browser to http://localhost:8888, select
New -> Guile, and you get a REPL.
Thank you!
Ludo’.
^ permalink raw reply [flat|nested] 12+ messages in thread
end of thread, other threads:[~2018-05-17 11:19 UTC | newest]
Thread overview: 12+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2018-05-14 9:07 [bug#31449] [PATCH 1/3] gnu: Add guile-simple-zmq Rouby Pierre-Antoine
2018-05-14 9:10 ` [bug#31449] [PATCH 2/3] gnu: Add jupyter-guile-kernel Rouby Pierre-Antoine
2018-05-14 13:06 ` Ludovic Courtès
2018-05-15 9:24 ` Rouby Pierre-Antoine
2018-05-15 11:33 ` Rouby Pierre-Antoine
2018-05-17 9:42 ` Ludovic Courtès
2018-05-14 9:10 ` [bug#31449] [PATCH 3/3] gnu: jupyter: Add search path Rouby Pierre-Antoine
2018-05-14 13:07 ` Ludovic Courtès
2018-05-17 11:18 ` bug#31449: " Ludovic Courtès
2018-05-14 12:55 ` [bug#31449] [PATCH 1/3] gnu: Add guile-simple-zmq Ludovic Courtès
2018-05-15 9:22 ` Rouby Pierre-Antoine
2018-05-15 9:27 ` Ludovic Courtès
Code repositories for project(s) associated with this public inbox
https://git.savannah.gnu.org/cgit/guix.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).