summary refs log tree commit diff
path: root/gnu
diff options
context:
space:
mode:
authorPierre Neidhardt <mail@ambrevar.xyz>2019-08-02 17:45:37 +0200
committerPierre Neidhardt <mail@ambrevar.xyz>2019-08-02 17:45:37 +0200
commit000faac0a23542285ab0f2999b84a7001eb3068e (patch)
tree2293056d62fe1e76956cbd8e635db7c011cc8384 /gnu
parent6ba457cc1c0d5b2ea20fa19d0892f7d10de321d6 (diff)
downloadguix-000faac0a23542285ab0f2999b84a7001eb3068e.tar.gz
gnu: sbcl-trivia: Fix .asd loading.
* gnu/packages/lisp.scm (sbcl-trivia): Do it.
Diffstat (limited to 'gnu')
-rw-r--r--gnu/packages/lisp.scm19
1 files changed, 18 insertions, 1 deletions
diff --git a/gnu/packages/lisp.scm b/gnu/packages/lisp.scm
index ae76ef9d83..d2bed231bd 100644
--- a/gnu/packages/lisp.scm
+++ b/gnu/packages/lisp.scm
@@ -6563,7 +6563,24 @@ This system contains the CFFI foreign slot access extension.")))
        ("trivia.cffi" ,sbcl-trivia.cffi)
        ("optima" ,sbcl-optima)))
     (arguments
-     `(#:test-asd-file "trivia.test.asd"))
+     `(#:test-asd-file "trivia.test.asd"
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'create-asd 'remove-component
+           ;; XXX: The original .asd has no components, but our build system
+           ;; creates an entry nonetheless.  We need to remove it for the
+           ;; generated .asd to load properly.  See trivia.trivial for a
+           ;; similar problem.
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let* ((out (assoc-ref outputs "out"))
+                    (asd (string-append out "/lib/" (%lisp-type) "/trivia.asd")))
+               (substitute* asd
+                 (("  :components
+")
+                  ""))
+               (substitute* asd
+                 ((" *\\(\\(:compiled-file \"trivia--system\"\\)\\)")
+                  ""))))))))
     (description "Trivia is a pattern matching compiler that is compatible
 with Optima, another pattern matching library for Common Lisp.  It is meant to
 be faster and more extensible than Optima.")))