gnu: Add Guix-Jupyter.

* gnu/packages/package-management.scm (guix-jupyter): New variable.
This commit is contained in:
Ludovic Courtès 2019-10-10 11:21:00 +02:00
parent 03d28531fd
commit fc1fe722a0
No known key found for this signature in database
GPG Key ID: 090B11993D9AEBB5
1 changed files with 84 additions and 0 deletions

View File

@ -770,6 +770,90 @@ on top of GNU Guix.")
;; and the fonts included in this package are licensed OFL1.1. ;; and the fonts included in this package are licensed OFL1.1.
(license (list license:gpl3+ license:agpl3+ license:silofl1.1)))) (license (list license:gpl3+ license:agpl3+ license:silofl1.1))))
(define-public guix-jupyter
(package
(name "guix-jupyter")
(version "0.1.0")
(home-page "https://gitlab.inria.fr/guix-hpc/guix-kernel")
(source (origin
(method git-fetch)
(uri (git-reference (url home-page)
(commit (string-append "v" version))))
(sha256
(base32
"01z7jjkc7r7lj6637rcgpz40v8xqqyfp6871h94yvcnwm7zy9h1n"))
(file-name (string-append "guix-jupyter-" version "-checkout"))))
(build-system gnu-build-system)
(arguments
`(#:modules ((srfi srfi-26)
(ice-9 match)
(ice-9 popen)
(ice-9 rdelim)
(guix build utils)
(guix build gnu-build-system))
#:phases
(modify-phases %standard-phases
(add-after 'install 'sed-kernel-json
(lambda* (#:key inputs outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(guix (assoc-ref inputs "guix"))
(guile (assoc-ref inputs "guile"))
(json (assoc-ref inputs "guile-json"))
(git (assoc-ref inputs "guile-git"))
(bs (assoc-ref inputs "guile-bytestructures"))
(s-zmq (assoc-ref inputs "guile-simple-zmq"))
(gcrypt (assoc-ref inputs "guile-gcrypt"))
(deps (list out s-zmq guix json git bs gcrypt))
(effective
(read-line
(open-pipe* OPEN_READ
(string-append guile "/bin/guile")
"-c" "(display (effective-version))")))
(path (map (cut string-append "-L\", \"" <>
"/share/guile/site/"
effective)
deps))
(gopath (map (cut string-append "-C\", \"" <>
"/lib/guile/" effective
"/site-ccache")
deps))
(kernel-dir (string-append out "/share/jupyter/kernels/guix/")))
(substitute* (string-append kernel-dir "kernel.json")
(("-s")
(string-join
(list (string-join path "\",\n\t\t\"")
(string-join gopath "\",\n\t\t\"")
"-s")
"\",\n\t\t\""))
(("guix-jupyter-kernel.scm")
(string-append out "/share/guile/site/2.2/"
"guix-jupyter-kernel.scm")))
#t))))))
(native-inputs
`(("autoconf" ,autoconf)
("automake" ,automake)
("pkg-config" ,pkg-config)
;; For testing.
("jupyter" ,(specification->package "jupyter"))
("python-ipython" ,(specification->package "python-ipython"))
("python-ipykernel" ,(specification->package "python-ipykernel"))))
(inputs
`(("guix" ,guix)
("guile" ,guile-2.2)))
(propagated-inputs
`(("guile-json" ,guile-json-3)
("guile-simple-zmq" ,guile-simple-zmq)
("guile-gcrypt" ,guile-gcrypt)))
(synopsis "Guix kernel for Jupyter")
(description
"Guix-Jupyter is a Jupyter kernel. It allows you to annotate notebooks
with information about their software dependencies, such that code is executed
in the right software environment. Guix-Jupyter spawns the actual kernels
such as @code{python-ipykernel} on behalf of the notebook user and runs them
in an isolated environment, in separate namespaces.")
(license license:gpl3+)))
(define-public gcab (define-public gcab
(package (package
(name "gcab") (name "gcab")