GNU bug report logs -
#45316
[PATCH]: Re-introduce Emacs packages specific installation prefix.
Previous Next
Full log
Message #17 received at 45316 <at> debbugs.gnu.org (full text, mbox):
Also enable byte compilation for most Elisp files.
* gnu/packages/cedille.scm (cedille)[arguments]: Add the cedille-mode and
se-mode to the #:include files list, which allows to...
[phases]{copy-cedille-mode}: ...remove this phase.
{extend-load-path}: New phase.
{build}: Restore phase.
{disable-byte-compilation-on-problematic-files}: New phase.
---
gnu/packages/cedille.scm | 50 ++++++++++++++++++++++++----------------
1 file changed, 30 insertions(+), 20 deletions(-)
diff --git a/gnu/packages/cedille.scm b/gnu/packages/cedille.scm
index d3dd576323..05eb42e9b2 100644
--- a/gnu/packages/cedille.scm
+++ b/gnu/packages/cedille.scm
@@ -1,5 +1,6 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2019 John Soo <jsoo1 <at> asu.edu>
+;;; Copyright © 2020 Maxim Cournoyer <maxim.cournoyer <at> gmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -49,37 +50,46 @@
("ghc-happy" ,ghc-happy)))
(build-system emacs-build-system)
(arguments
- `(#:phases
+ `(#:include (cons* "^cedille-mode/" "^se-mode/" %default-include)
+ #:phases
(modify-phases %standard-phases
(add-after 'unpack 'patch-cedille-paths
(lambda* (#:key outputs #:allow-other-keys)
(let ((out (assoc-ref outputs "out")))
(substitute* "cedille-mode.el"
- (("/usr/share/emacs/site-lisp/cedille-mode")
- (string-append
- out "/share/emacs/site-lisp/cedille")))
+ ;; As suggested at the top of cedille-mode.el
+ ((".*defmacro cedille-platform-case.*" all)
+ (string-append (format #f "(defconst cedille-path ~s)~%~%"
+ (outputs->elpa-install-dir outputs))
+ all)))
(substitute* "cedille-mode/cedille-mode-info.el"
(("\\(concat cedille-path-el \"cedille-info-main.info\"\\)")
(string-append
"\"" out "/share/info/cedille-info-main.info.gz\"")))
#t)))
- (add-after 'patch-cedille-paths 'copy-cedille-mode
+ (add-before 'build 'extend-load-path
(lambda* (#:key outputs #:allow-other-keys)
- (let* ((out (assoc-ref outputs "out"))
- (lisp
- (string-append
- out "/share/emacs/site-lisp/cedille/")))
- (mkdir-p (string-append lisp "cedille-mode"))
- (copy-recursively
- "cedille-mode"
- (string-append lisp "cedille-mode"))
- (mkdir-p (string-append lisp "se-mode"))
- (copy-recursively
- "se-mode"
- (string-append lisp "se-mode"))
- #t)))
- ;; FIXME: Byte compilation fails
- (delete 'build)
+ (let ((install-dir (outputs->elpa-install-dir outputs)))
+ (setenv "EMACSLOADPATH"
+ (string-join
+ (cons (getenv "EMACSLOADPATH")
+ (map (lambda (f)
+ (string-append install-dir "/" f))
+ '("cedille-mode" "se-mode")))
+ ":")))
+ #t))
+ (add-after 'unpack 'disable-byte-compilation-on-problematic-files
+ ;; Some files fail byte compilation (see:
+ ;; https://github.com/cedille/cedille/issues/160).
+ (lambda _
+ (let ((problematic-files '("cedille-mode.el"
+ "cedille-mode/cedille-mode-library.el"
+ "se-mode/se-hole.el")))
+ (for-each (lambda (f)
+ (make-file-writable f)
+ (emacs-batch-disable-compilation f))
+ problematic-files))
+ #t))
(replace 'check
(lambda _
(with-directory-excursion "cedille-tests"
--
2.29.2
This bug report was last modified 4 years and 15 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.