diff options
-rw-r--r-- | gnu/packages/lisp-xyz.scm | 83 |
1 files changed, 29 insertions, 54 deletions
diff --git a/gnu/packages/lisp-xyz.scm b/gnu/packages/lisp-xyz.scm index e7b603f59d..692142e4a8 100644 --- a/gnu/packages/lisp-xyz.scm +++ b/gnu/packages/lisp-xyz.scm @@ -3610,76 +3610,51 @@ writing code that contains string literals that contain code themselves.") (sbcl-package->ecl-package sbcl-pythonic-string-reader)) (define-public sbcl-slime-swank - (package - (name "sbcl-slime-swank") - (version "2.28") - (source - (origin - (file-name (git-file-name "cl-slime-swank" version)) - (method git-fetch) - (uri (git-reference - (url "https://github.com/slime/slime/") - (commit (string-append "v" version)))) - (sha256 - (base32 "1acmm4w1mv1qzpnkgc4wyiilbx8l0dk16sx8wv815ri5ks289rll")) - (modules '((guix build utils))) + (let ((commit "0cc2e736112a0bc2a048ef6efd11dd67e3fbf7ad") + (revision "0")) + (package + (name "sbcl-slime-swank") + (version (git-version "2.28" revision commit)) + (source + (origin + (file-name (git-file-name "cl-slime-swank" version)) + (method git-fetch) + (uri (git-reference + (url "https://github.com/slime/slime/") + (commit commit))) + (sha256 + (base32 "0iq9r4007rrnabj290y79i926x2m4j20j6b0x701pkywz926sn02")) + (modules '((guix build utils))) (snippet ;; The doc folder drags `gawk' into the closure. Doc is already ;; provided by emacs-slime. `(begin (delete-file-recursively "doc") #t)))) - (build-system asdf-build-system/sbcl) - (arguments - '(#:asd-systems '("swank") - #:phases - (modify-phases %standard-phases - (add-after 'unpack 'set-fasl-directory - (lambda* (#:key outputs #:allow-other-keys) - (let* ((out (assoc-ref outputs "out")) - (lib-dir (string-append out "/lib/common-lisp/" - (%lisp-type) - "/slime-swank/"))) - ;; Use the ASDF registry instead of Swank's default that places - ;; the .fasl files in ~/.slime. - (substitute* "swank.asd" - (("\\(load \\(asdf::component-pathname f\\)\\)" all) - (string-append - all "\n" - "(setf (symbol-value" - "(read-from-string \"swank-loader::*fasl-directory*\"))" - "\"" lib-dir "\")"))) + (build-system asdf-build-system/sbcl) + (arguments + '(#:asd-systems '("swank" "swank/exts") + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'set-fasl-directory + (lambda* (#:key outputs #:allow-other-keys) (substitute* "swank-loader.lisp" (("\\(probe-file fasl\\)" all) ;; Do not try to delete Guix store files. (string-append all "\n" " (not (equal (subseq (pathname-directory fasl) 1 3)" - " '(\"gnu\" \"store\"))) ; XXX: GUIX PATCH"))))))))) - (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 + " '(\"gnu\" \"store\"))) ; XXX: GUIX PATCH")))))))) + (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 (list license:gpl2+ license:public-domain)))) + (license (list license:gpl2+ license:public-domain))))) (define-public cl-slime-swank - (let ((pkg (sbcl-package->cl-source-package sbcl-slime-swank))) - (package - (inherit pkg) - (arguments - (substitute-keyword-arguments (package-arguments pkg) - ((#:phases phases) - `(modify-phases ,phases - (add-after 'install 'revert-asd-patch - ;; We do not want to include the Guix patch in the cl- package - ;; since it would include the sbcl- package in the closure. - (lambda* (#:key outputs #:allow-other-keys) - (let* ((out (assoc-ref outputs "out")) - (source-path (string-append out "/share/common-lisp/source/"))) - (substitute* (string-append source-path "/cl-slime-swank/swank.asd") - ((".*fasl-directory.*") "")))))))))))) + (sbcl-package->cl-source-package sbcl-slime-swank)) (define-public ecl-slime-swank (sbcl-package->ecl-package sbcl-slime-swank)) |