Subject: Re: bug#46333: sbcl-common-lisp-jupyter does not install kernel.json

From: Sharlatan Hellseher <[email-masked]>
Date: Wed, 19 May 2021 22:23:14 +0000

Hi,

I've checked the r-irkernel and it's coping existing kernelspec ,
which is not useful in this case.

As Guillaume mentioned we could tweak it before installation phase by
using cl-jupyter:install, so here is my draft:

--8<---------------cut here---------------start------------->8---
    (arguments
     `(#:phases
       (modify-phases %standard-phases
         (add-before 'install 'generate-kernelspec
           (lambda* (#:key outputs #:allow-other-keys)
             (let* ((out (assoc-ref outputs "out"))
                    (kernelspec (string-append out
"/share/cl-jupyter/kernelspec")))
               (mkdir-p kernelspec)
               (invoke "sbcl"
                       "--eval" "\"(require :asdf)\""
                       "--eval" "\"(require :common-lisp-jupyter)\""
                       "--eval"
                       (string-append
                        "\"(cl-jupyter:install"
                        ":bin-path" (string-append
                                     (assoc-ref %build-inputs "sbcl")
"/bin/sbcl")
                        ":prefix" out ")\"")
                       "--eval" "\"(exit)\""))
             #t))
         (add-after 'install 'install-kernelspec
           (lambda* (#:key outputs #:allow-other-keys)
             (let ((out (assoc-ref outputs "out"))
                   (kernelspec (string-append out
"/share/cl-jupyter/kernelspec")))
               (invoke "jupyter" "kernelspec" "install"
                       "--name" "cl-jupyter"
                       "--prefix" out
                       kernelspec)
               #t))))))
--8<---------------cut here---------------end--------------->8---

But there could be a potential blocking issue with :prefix key

https://github.com/yitzchak/common-lisp-jupyter/issues/78

On Tue, 18 May 2021 at 16:58, Guillaume Le Vaillant <[email-masked]> wrote:
>
> Hi Jack,
>
> I guess it will be easier to just add a phase writing the "kernel.json"
> file in the right place. In this build phase, to know if the package is
> being built for SBCL or ECL, the '(%lisp-type)' function that will
> return "sbcl" or "ecl" can be used. There's an example in the
> sbcl-trivial-backtrace package.

--

… наш разум - превосходная объяснительная машина которая способна
найти смысл почти в чем угодно, истолковать любой феномен, но
совершенно не в состоянии принять мысль о непредсказуемости.