In the long path of packaging Next browsing, I found myself packaging the mgl-pax dependency. http://quickdocs.org/mgl-pax/ This package depends on SWANK which is packaged in emacs-slime. emacs-slime contains two pieces of code: - SLIME (the Emacs package) - SWANK: the Common Lisp backend. https://github.com/slime/slime Since the emacs-slime package uses the emacs build system, I think it might not expose SWANK properly, so I packaged SWANK separately using the ASDF build system: --8<---------------cut here---------------start------------->8--- (define-public sbcl-slime-swank (package (name "sbcl-slime-swank") (version "2.22") (source (origin (file-name (string-append name "-" version ".tar.gz")) (method url-fetch) (uri (string-append "https://github.com/slime/slime/archive/v" version ".tar.gz")) (sha256 (base32 "07vaib1n4zyh5yy30gdpq0bc5cv6w84piml5b3mfc9ibjhaykkms")))) (build-system asdf-build-system/sbcl) (arguments `(#:asd-file "swank.asd" #:asd-system-name "swank")) (home-page "https://github.com/slime/slime") (synopsis "Common Lisp Swank server") (description "This is only useful if you want to start a Swank server in a Lisp processes that doesn't run under Emacs. Lisp processes created by @command{M-x slime} automatically start the server.") (license license:gpl2+))) --8<---------------cut here---------------end--------------->8--- So far so good. I've declared the mgl-pax package as follows: --8<---------------cut here---------------start------------->8--- (define-public sbcl-mgl-pax (let ((commit "818448418d6b9de74620f606f5b23033c6082769")) (package (name "sbcl-mgl-pax") (version (git-version "0.0.0" "1" commit)) (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/melisgl/mgl-pax") (commit commit))) (sha256 (base32 "1p97zfkh130bdxqqxwaw2j9psv58751wakx7czbfpq410lg7dd7i")) (file-name (string-append "mgl-pax" version "-checkout")))) (build-system asdf-build-system/sbcl) (inputs `(("3bmd" ,sbcl-3bmd) ("3bmd-ext-code-blocks" ,sbcl-3bmd-ext-code-blocks) ("babel" ,sbcl-babel) ("cl-fad" ,sbcl-cl-fad) ("ironclad" ,sbcl-ironclad) ("named-readtables" ,sbcl-named-readtables) ("pythonic-string-reader" ,sbcl-pythonic-string-reader) ("swank" ,sbcl-slime-swank))) (synopsis "Exploratory programming environment and documentation generator") (description "PAX provides an extremely poor man's Explorable Programming environment. Narrative primarily lives in so called sections that mix markdown docstrings with references to functions, variables, etc, all of which should probably have their own docstrings. The primary focus is on making code easily explorable by using SLIME's @command{M-.} (@command{slime-edit-definition}). See how to enable some fanciness in Emacs Integration. Generating documentation from sections and all the referenced items in Markdown or HTML format is also implemented. With the simplistic tools provided, one may accomplish similar effects as with Literate Programming, but documentation is generated from code, not vice versa and there is no support for chunking yet. Code is first, code must look pretty, documentation is code.") (home-page "http://quotenil.com/") (license license:bsd-3)))) --8<---------------cut here---------------end--------------->8--- It finds SWANK but later in the build process it spits out the following error: --8<---------------cut here---------------start------------->8--- ; compiling file "/gnu/store/2mxm532160zrg4wkww8g24d2bdwfrii4-sbcl-mgl-pax-0.0.0-1.8184484/share/common-lisp/sbcl-source/mgl-pax/src/pax.lisp" (written 23 AUG 2018 04:15:29 PM): ; compiling (IN-PACKAGE :MGL-PAX) ; compiling (IN-READTABLE PYTHONIC-STRING-SYNTAX) ; compiling (DEFSECTION @MGL-PAX-MANUAL ...) ; compiling (DEFSECTION @MGL-PAX-LINKS ...) ; compiling (DEFSECTION @MGL-PAX-BACKGROUND ...) ; compiling (DEFSECTION @MGL-PAX-TUTORIAL ...) ; compiling (DEFSECTION @MGL-PAX-EMACS-INTEGRATION ...); ; caught ERROR: ; READ error during COMPILE-FILE: ; ; Package SWANK-BACKEND does not exist. ; ; Line: 331, Column: -1, File-Position: 12600 ; ; Stream: # ; compilation aborted after 0:00:00.022 Unhandled UIOP/LISP-BUILD:COMPILE-FILE-ERROR in thread #: COMPILE-FILE-ERROR while compiling # Backtrace for: # 0: (SB-DEBUG::DEBUGGER-DISABLED-HOOK # # :QUIT T) 1: (SB-DEBUG::RUN-HOOK *INVOKE-DEBUGGER-HOOK* #) 2: (INVOKE-DEBUGGER #) 3: (ERROR UIOP/LISP-BUILD:COMPILE-FILE-ERROR :CONTEXT-FORMAT "~/asdf-action::format-action/" :CONTEXT-ARGUMENTS ((# . #))) 4: (UIOP/LISP-BUILD:CHECK-LISP-COMPILE-RESULTS NIL T T "~/asdf-action::format-action/" ((# . #))) 5: ((SB-PCL::EMF ASDF/ACTION:PERFORM) # # # #) 6: ((LAMBDA NIL :IN ASDF/ACTION:CALL-WHILE-VISITING-ACTION)) 7: ((:METHOD ASDF/ACTION:PERFORM-WITH-RESTARTS :AROUND (T T)) # #) [fast-method] 8: ((:METHOD ASDF/PLAN:PERFORM-PLAN (T)) #) [fast-method] 9: ((FLET SB-C::WITH-IT :IN SB-C::%WITH-COMPILATION-UNIT)) 10: ((:METHOD ASDF/PLAN:PERFORM-PLAN :AROUND (T)) #) [fast-method] 11: ((:METHOD ASDF/OPERATE:OPERATE (ASDF/OPERATION:OPERATION ASDF/COMPONENT:COMPONENT)) # # :PLAN-CLASS NIL :PLAN-OPTIONS NIL) [fast-method] 12: ((SB-PCL::EMF ASDF/OPERATE:OPERATE) # # # #) 13: ((LAMBDA NIL :IN ASDF/OPERATE:OPERATE)) 14: ((:METHOD ASDF/OPERATE:OPERATE :AROUND (T T)) # #) [fast-method] 15: ((SB-PCL::EMF ASDF/OPERATE:OPERATE) # # ASDF/BUNDLE:COMPILE-BUNDLE-OP "mgl-pax") 16: ((LAMBDA NIL :IN ASDF/OPERATE:OPERATE)) 17: ((:METHOD ASDF/OPERATE:OPERATE :AROUND (T T)) ASDF/BUNDLE:COMPILE-BUNDLE-OP "mgl-pax") [fast-method] 18: (ASDF/SESSION:CALL-WITH-ASDF-SESSION # :OVERRIDE T :KEY NIL :OVERRIDE-CACHE T :OVERRIDE-FORCING NIL) 19: ((LAMBDA NIL :IN ASDF/OPERATE:OPERATE)) 20: (ASDF/SESSION:CALL-WITH-ASDF-SESSION # :OVERRIDE NIL :KEY NIL :OVERRIDE-CACHE NIL :OVERRIDE-FORCING NIL) 21: ((:METHOD ASDF/OPERATE:OPERATE :AROUND (T T)) ASDF/BUNDLE:COMPILE-BUNDLE-OP "mgl-pax") [fast-method] 22: (SB-INT:SIMPLE-EVAL-IN-LEXENV (ASDF/OPERATE:OPERATE (QUOTE ASDF/BUNDLE:COMPILE-BUNDLE-OP) "mgl-pax") #) 23: (EVAL (ASDF/OPERATE:OPERATE (QUOTE ASDF/BUNDLE:COMPILE-BUNDLE-OP) "mgl-pax")) 24: (SB-IMPL::PROCESS-EVAL/LOAD-OPTIONS ((:EVAL . "(require :asdf)") (:EVAL . "(let ((*package* (find-package :asdf))) (load \"/gnu/store/2mxm532160zrg4wkww8g24d2bdwfrii4-sbcl-mgl-pax-0.0.0-1.8184484/share/common-lisp/sbcl-source/mgl-pax/mgl-pax.asd\"))") (:EVAL . "(asdf:operate (quote asdf:compile-bundle-op) \"mgl-pax\")") (:QUIT))) 25: (SB-IMPL::TOPLEVEL-INIT) 26: ((FLET SB-UNIX::BODY :IN SAVE-LISP-AND-DIE)) 27: ((FLET "WITHOUT-INTERRUPTS-BODY-27" :IN SAVE-LISP-AND-DIE)) 28: ((LABELS SB-IMPL::RESTART-LISP :IN SAVE-LISP-AND-DIE)) unhandled condition in --disable-debugger mode, quitting ; ; compilation unit aborted ; caught 2 fatal ERROR conditions ; caught 1 ERROR condition ; printed 1 note Backtrace: 7 (primitive-load "/gnu/store/ichxngbrfqv6ysa4hpnjk2lvxrg…") In ice-9/eval.scm: 191:35 6 (_ _) In ice-9/boot-9.scm: 152:2 5 (with-fluid* _ _ _) 152:2 4 (with-fluid* _ _ _) In srfi/srfi-1.scm: 640:9 3 (for-each # …) In /gnu/store/ig46c9fafvfv0czlpgh7l4w1xmwzsvaj-module-import/guix/build/gnu-build-system.scm: 799:31 2 (_ _) In /gnu/store/ig46c9fafvfv0czlpgh7l4w1xmwzsvaj-module-import/guix/build/asdf-build-system.scm: 124:4 1 (build #:outputs _ #:inputs _ #:asd-file _ # _) In unknown file: 0 (scm-error misc-error #f "~A ~S ~S" ("lisp-eval-pro…" …) …) ERROR: In procedure scm-error: lisp-eval-program failed! "/gnu/store/rdvy6q3nskb0r01rwjrxj3935d850r2d-sbcl-1.4.4/bin/sbcl" ((require :asdf) (let ((*package* (find-package :asdf))) (load "/gnu/store/2mxm532160zrg4wkww8g24d2bdwfrii4-sbcl-mgl-pax-0.0.0-1.8184484/share/common-lisp/sbcl-source/mgl-pax/mgl-pax.asd")) (asdf:operate (quote asdf:compile-bundle-op) "mgl-pax")) --8<---------------cut here---------------end--------------->8--- I have no clue what this SWANK-BACKEND is. I can find SWANK/BACKEND in the source however. Maybe my misunderstanding of Common Lisp... Any clue? -- Pierre Neidhardt https://ambrevar.xyz/