nongnu: clhs: Polish clhs.

* nongnu/packages/emacs.scm(clhs)[arguments]<phases>:

In replace-loader phase, Use format to generate sexp from list structure.
Add autoload cookie for entry function.

In install-doc phase, place HyperSpec under
<output>/share/HyperSpec-7-0. Don't emit files outside the FHS structure.

[source]: Use HTTPS.

[description]: Wrap line at column 80.
This commit is contained in:
Zhu Zihao 2020-10-04 11:13:51 +08:00 committed by Pierre Neidhardt
parent 2c46dfd5ec
commit 3783cf2b51
No known key found for this signature in database
GPG key ID: 9BDCF497A4BBCC7F

View file

@ -1,5 +1,6 @@
;;; GNU Guix --- Functional package management for GNU ;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2019 Pierre Neidhardt <mail@ambrevar.xyz> ;;; Copyright © 2019 Pierre Neidhardt <mail@ambrevar.xyz>
;;; Copyright © 2020 Zhu Zihao <all_but_last@163.com>
;;; ;;;
;;; This file is not part of GNU Guix. ;;; This file is not part of GNU Guix.
;;; ;;;
@ -29,7 +30,7 @@
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (string-append "http://beta.quicklisp.org/archive/clhs/2015-04-07/clhs-" (uri (string-append "https://beta.quicklisp.org/archive/clhs/2015-04-07/clhs-"
version version
".tgz")) ".tgz"))
(sha256 (sha256
@ -42,27 +43,25 @@
(add-after 'unpack 'replace-loader (add-after 'unpack 'replace-loader
(lambda* (#:key inputs outputs #:allow-other-keys) (lambda* (#:key inputs outputs #:allow-other-keys)
(delete-file "clhs-use-local.el") (delete-file "clhs-use-local.el")
(with-output-to-file "clhs.el" (let* ((out (assoc-ref outputs "out"))
(lambda () (hyperspec-dir (string-append out "/share/HyperSpec-7-0/")))
(display (with-output-to-file "clhs.el"
(string-append (lambda ()
"(defun clhs-setup () (format #t ";;;###autoload~%~s~%~%~s"
(setq common-lisp-hyperspec-root `(defun clhs-setup ()
\"file://" (setq common-lisp-hyperspec-root ,hyperspec-dir))
(string-append (assoc-ref outputs "out") `(provide 'clhs)))))))
"/HyperSpec-7-0/HyperSpec/")
"\"))\n"
"(provide 'clhs)"))))))
(add-after 'install 'install-doc (add-after 'install 'install-doc
(lambda* (#:key inputs outputs #:allow-other-keys) (lambda* (#:key inputs outputs #:allow-other-keys)
(copy-recursively "HyperSpec-7-0" (let* ((out (assoc-ref outputs "out"))
(string-append (assoc-ref outputs "out") (hyperspec-dir (string-append out "/share/HyperSpec-7-0/")))
"/HyperSpec-7-0"))))))) (mkdir-p hyperspec-dir)
(copy-recursively "HyperSpec-7-0/HyperSpec" hyperspec-dir)))))))
(home-page "http://quickdocs.org/clhs/") (home-page "http://quickdocs.org/clhs/")
(synopsis "Offline Common Lisp HyperSpec") (synopsis "Offline Common Lisp HyperSpec")
(description (description
"This package bundles the full Common Lisp HyperSpec ready for offline browsing. "This package bundles the full Common Lisp HyperSpec ready for offline
An Emacs package is provided for easy access. Load it with: browsing. An Emacs package is provided for easy access. Load it with:
@lisp @lisp
(require 'clhs) (require 'clhs)