summary refs log tree commit diff
diff options
context:
space:
mode:
authorPierre Neidhardt <mail@ambrevar.xyz>2020-09-01 16:52:40 +0200
committerPierre Neidhardt <mail@ambrevar.xyz>2020-09-01 18:26:08 +0200
commitf5ca844fc165547de26060a7a174dbde41f85dde (patch)
treef84bee197ad4a415fa97234956f82d8c7b00d996
parentbc1f552b1a391e9eeed7405cd7ad2ba0252bb3dc (diff)
downloadguix-f5ca844fc165547de26060a7a174dbde41f85dde.tar.gz
gnu: Add caveman.
* gnu/packages/lisp-xyz.scm (cl-caveman, ecl-caveman, sbcl-caveman): New variables.
-rw-r--r--gnu/packages/lisp-xyz.scm68
1 files changed, 68 insertions, 0 deletions
diff --git a/gnu/packages/lisp-xyz.scm b/gnu/packages/lisp-xyz.scm
index 37f48d22f3..6e726847ea 100644
--- a/gnu/packages/lisp-xyz.scm
+++ b/gnu/packages/lisp-xyz.scm
@@ -13910,3 +13910,71 @@ can begin writing unit tests as soon as the project is generated.")
 
 (define-public ecl-cl-project
   (sbcl-package->ecl-package sbcl-cl-project))
+
+(define-public sbcl-caveman
+  (let ((commit "faa5f7e3b364fd7e7096af9a7bb06728b8d80441") ; No release since 2012
+        (revision "1"))
+    (package
+      (name "sbcl-caveman")
+      (version (git-version "2.4.0" revision commit))
+      (home-page "http://8arrow.org/caveman/")
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/fukamachi/caveman/")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32 "0kh0gx05pczk8f7r9qdi4zn1p3d0a2prps27k7jpgvc1dxkl8qhq"))))
+      (build-system asdf-build-system/sbcl)
+      (inputs
+       `(("ningle" ,cl-ningle)
+         ("lack-request" ,sbcl-lack-request)
+         ("lack-response" ,sbcl-lack-response)
+         ("cl-project" ,sbcl-cl-project)
+         ("dbi" ,sbcl-dbi)
+         ("cl-syntax-annot" ,sbcl-cl-syntax-annot)
+         ("myway" ,sbcl-myway)
+         ("quri" ,sbcl-quri)))
+      (native-inputs
+       `(("usocket" ,sbcl-usocket)
+         ("dexador" ,sbcl-dexador)))
+      (arguments
+       `(#:asd-file "caveman2.asd"
+         #:asd-system-name "caveman2"
+         #:phases
+         (modify-phases %standard-phases
+           (add-after 'unpack 'remove-v1
+             (lambda _
+               (delete-file-recursively "v1")
+               (for-each delete-file
+                         '("README.v1.markdown" "caveman.asd" "caveman-test.asd")))))
+         ;; TODO: Tests fail with:
+         ;; writing /gnu/store/j4l1k28yq47qbg074b4yf1b7wnccg8j1-sbcl-caveman-2.4.0-1.faa5f7e/share/common-lisp/sbcl-source/caveman2/v2/t/tmp/myapp573/tests/myapp573.lisp
+         ;; While evaluating the form starting at line 38, column 0
+         ;;   of #P"/tmp/guix-build-sbcl-caveman-2.4.0-1.faa5f7e.drv-0/source/v2/t/caveman.lisp":
+         ;; Unhandled ASDF/FIND-COMPONENT:MISSING-COMPONENT in thread #<SB-THREAD:THREAD "main thread" RUNNING
+         ;;                                                              {10009F8083}>:
+         ;;   Component "myapp573" not found
+         #:tests? #f))
+      (synopsis "Lightweight web application framework in Common Lisp")
+      (description "Caveman is intended to be a collection of common parts for
+web applications.  Caveman2 has three design goals:
+
+@itemize
+@item Be extensible.
+@item Be practical.
+@item Don't force anything.
+@end itemize\n")
+      (license license:llgpl))))
+
+(define-public cl-caveman
+  (package
+    (inherit
+     (sbcl-package->cl-source-package sbcl-caveman))
+    (propagated-inputs
+     `(("ningle" ,cl-ningle)))))
+
+(define-public ecl-caveman
+  (sbcl-package->ecl-package sbcl-caveman))