nongnu: Add emacs-eli.

* nongnu/packages/emacs.scm (emacs-eli): New variable.
This commit is contained in:
Pierre Neidhardt 2022-07-03 18:07:07 +02:00
parent f8956ea03e
commit ff272ef6c8
No known key found for this signature in database
GPG key ID: 9BDCF497A4BBCC7F

View file

@ -20,8 +20,11 @@
(define-module (nongnu packages emacs)
#:use-module (guix packages)
#:use-module (guix build-system emacs)
#:use-module (guix build-system copy)
#:use-module (guix download)
#:use-module (nonguix licenses))
#:use-module (guix git-download)
#:use-module (nonguix licenses)
#:use-module (nongnu packages lisp))
(define-public clhs
(package
@ -70,3 +73,61 @@ browsing. An Emacs package is provided for easy access. Load it with:
@end lisp
")
(license (nonfree "http://quickdocs.org/clhs/"))))
(define-public emacs-eli
;; 10.1 HEAD has a fix for Emacs 28.1, as opposed to the latest "express" tag.
(let ((commit "8f9a8b9eb1aa518774c54d51e4f38ba534356415"))
(package
(name "emacs-eli")
(version (git-version "acl10.1express_Feb2022update2022-02-11" "1" commit))
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/franzinc/eli/")
(commit commit)))
(file-name (git-file-name "emacs-eli" version))
(sha256
(base32
"0w1hdkr9x3byf1l6dbcbnd4x8110wvps3527ivyj1bmdk1hyqnzb"))))
;; The `emacs-build-system' fails here, probably because ELI is meant to
;; be load with (load "fi-site-init.el") and not with `require'. See
;; https://franz.com/emacs/.
(build-system copy-build-system)
(inputs (list allegro-cl))
(arguments
`(#:install-plan
`(("." ,,(string-append "share/emacs/site-lisp/eli-" version)
;; Remove useless Windows or build files.
#:exclude ("emacsdir.pl" "nsis" "Makefile" "local.mak")))
#:phases
(modify-phases %standard-phases
(add-after 'unpack 'patch-paths
(lambda* (#:key inputs #:allow-other-keys)
(let ((allegro-cl (assoc-ref inputs "allegro-cl")))
;; FIXME: Can't get `emacs-substitute-variables' to work here, why?
(substitute* "fi-vars.el"
(("defvar fi:common-lisp-image-name \"alisp\"")
(string-append "defvar fi:common-lisp-image-name \""
allegro-cl "/bin/alisp\""))
(("defvar fi:common-lisp-image-file nil")
(string-append "defvar fi:common-lisp-image-file \""
allegro-cl "/share/allegro-cl/alisp.dxl\""))
(("defvar fi:common-lisp-directory nil")
(string-append "defvar fi:common-lisp-directory \""
allegro-cl "/share/allegro-cl\"")))))))))
(home-page "https://franz.com/emacs/")
(synopsis "Allegro Common Lisp Emacs interface")
(description
"An integral part of the Allegro CL programming environment is the interface
between Emacs and Allegro CL, hereafter referred to as the Emacs-Lisp
interface. This interface allows the editing and running of Common Lisp
programs, and contains enhancements that allow a tight coupling between Emacs
and Lisp, very similar to those which used to be available only on Lisp
machines.
To load it, call @code{(load \"fi-site-init.el\")} from Emacs.
Then you can start Allegro CL by entering @code{M-x fi:common-lisp}.")
;; While this may be a free license, this Emacs package is only useful
;; with the non-free Allegro CL.
(license (nonfree "https://raw.githubusercontent.com/franzinc/eli/acl10.1express_Feb2022update2022-02-11/LICENSE")))))