gnu: cl-lack: Update to 0.3.0-1.35d3a8e.

* gnu/packages/patches/sbcl-lack-fix-tests.patch: New file.
* gnu/local.mk (dist_patch_DATA): Register it.
* gnu/packages/lisp-xyz.scm (sbcl-lack): Update to 0.3.0-1.35d3a8e.
  [source]: Use patch.
  [native-inputs]: Add sbcl-cl-cookie, sbcl-dexador and sbcl-hunchentoot.
  [inputs]: Add sbcl-alexandria, sbcl-anypool, sbcl-bordeaux-threads,
  sbcl-cl-base64, sbcl-cl-isaac, sbcl-cl-redis, sbcl-dbi and
  sbcl-trivial-rfc-1123.
  [arguments]: Add lack-app-directory, lack-app-file,
  lack-middleware-accesslog, lack-middleware-auth-basic, lack-middleware-csrf,
  lack-middleware-dbpool, lack-middleware-mount, lack-middleware-session,
  lack-session-store-dbi and lack-session-store-redis to 'asd-systems'.
  Enable tests.
  [license]: Switch to expat.

Change-Id: I4285cf208b76d6f461735fff04293833ef163e08
Signed-off-by: Guillaume Le Vaillant <glv@posteo.net>
This commit is contained in:
Konrad Hinsen 2024-09-12 16:06:15 +02:00 committed by Guillaume Le Vaillant
parent d844eecd34
commit f13599b5f7
No known key found for this signature in database
GPG key ID: 6BE8208ADF21FE3F
3 changed files with 282 additions and 18 deletions

View file

@ -2126,6 +2126,7 @@ dist_patch_DATA = \
%D%/packages/patches/sbcl-clml-fix-types.patch \ %D%/packages/patches/sbcl-clml-fix-types.patch \
%D%/packages/patches/sbcl-eazy-gnuplot-skip-path-check.patch \ %D%/packages/patches/sbcl-eazy-gnuplot-skip-path-check.patch \
%D%/packages/patches/sbcl-fast-generic-functions-fix-sbcl-2.4.patch \ %D%/packages/patches/sbcl-fast-generic-functions-fix-sbcl-2.4.patch \
%D%/packages/patches/sbcl-lack-fix-tests.patch \
%D%/packages/patches/sbcl-png-fix-sbcl-compatibility.patch \ %D%/packages/patches/sbcl-png-fix-sbcl-compatibility.patch \
%D%/packages/patches/sbcl-s-sysdeps-bt2.patch \ %D%/packages/patches/sbcl-s-sysdeps-bt2.patch \
%D%/packages/patches/scalapack-gcc-10-compilation.patch \ %D%/packages/patches/scalapack-gcc-10-compilation.patch \

View file

@ -18515,41 +18515,61 @@ extensions developed by technical users.")
;; (sbcl-package->ecl-package sbcl-kons-9)) ;; (sbcl-package->ecl-package sbcl-kons-9))
(define-public sbcl-lack (define-public sbcl-lack
(let ((commit "abff8efeb0c3a848e6bb0022f2b8b7fa3a1bc88b") (let ((commit "35d3a8e03cab9204eec88c7dfe4d5366fc2ea922")
(revision "1")) (revision "1"))
(package (package
(name "sbcl-lack") (name "sbcl-lack")
(version (git-version "0.1.0" revision commit)) (version (git-version "0.3.0" revision commit))
(source (source
(origin (origin
(method git-fetch) (method git-fetch)
(uri (git-reference (uri (git-reference
(url "https://github.com/fukamachi/lack") (url "https://github.com/fukamachi/lack")
(commit commit))) (commit commit)))
(file-name (git-file-name "lack" version)) (file-name (git-file-name "cl-lack" version))
(sha256 (sha256
(base32 "1avh4ygcj9xcx4m17nj0wnxxaisk26w4ljs2bibzxaln24x7pi85")))) (base32 "1yrhhzn8ywdjxwpaxzlnsm2lslhy45r89brn8gh5n08mdyjlp4l2"))
(patches (search-patches "sbcl-lack-fix-tests.patch"))))
(build-system asdf-build-system/sbcl) (build-system asdf-build-system/sbcl)
(native-inputs (native-inputs
(list sbcl-prove)) (list sbcl-cl-cookie
sbcl-dexador
sbcl-hunchentoot
sbcl-prove))
(inputs (inputs
`(("circular-streams" ,sbcl-circular-streams) (list sbcl-alexandria
("http-body" ,sbcl-http-body) sbcl-anypool
("ironclad" ,sbcl-ironclad) sbcl-bordeaux-threads
("local-time" ,sbcl-local-time) sbcl-circular-streams
("quri" ,sbcl-quri) sbcl-cl-base64
("trivial-mimes" ,sbcl-trivial-mimes))) sbcl-cl-isaac
sbcl-cl-redis
sbcl-dbi
sbcl-http-body
sbcl-ironclad
sbcl-local-time
sbcl-quri
sbcl-trivial-mimes
sbcl-trivial-rfc-1123))
(arguments (arguments
'(#:asd-systems '("lack" '(#:asd-systems '("lack"
"lack-app-directory"
"lack-app-file"
"lack-component"
"lack-middleware-accesslog"
"lack-middleware-auth-basic"
"lack-middleware-backtrace"
"lack-middleware-csrf"
"lack-middleware-dbpool"
"lack-middleware-mount"
"lack-middleware-session"
"lack-middleware-static"
"lack-request" "lack-request"
"lack-response" "lack-response"
"lack-component" "lack-session-store-dbi"
"lack-session-store-redis"
"lack-util" "lack-util"
"lack-util-writer-stream" "lack-util-writer-stream")))
"lack-middleware-backtrace"
"lack-middleware-static")
;; XXX: Component :CLACK not found
#:tests? #f))
(home-page "https://github.com/fukamachi/lack") (home-page "https://github.com/fukamachi/lack")
(synopsis "Lack, the core of Clack") (synopsis "Lack, the core of Clack")
(description (description
@ -18557,7 +18577,7 @@ extensions developed by technical users.")
constructed of modular components. It was originally a part of Clack, however constructed of modular components. It was originally a part of Clack, however
it's going to be rewritten as an individual project since Clack v2 with it's going to be rewritten as an individual project since Clack v2 with
performance and simplicity in mind.") performance and simplicity in mind.")
(license license:llgpl)))) (license license:expat))))
(define-public cl-lack (define-public cl-lack
(sbcl-package->cl-source-package sbcl-lack)) (sbcl-package->cl-source-package sbcl-lack))

View file

@ -0,0 +1,243 @@
Remove tests that cannot be run. Some depend on clack, which in turn
depends on lack. Others refer to systems that don't exist
(names starting with "t-").
--- a/lack-component.asd
+++ b/lack-component.asd
@@ -2,7 +2,6 @@
:version "0.2.0"
:author "Eitaro Fukamachi"
:license "MIT"
- :components ((:file "src/component"))
- :in-order-to ((test-op (test-op "t-lack-component"))))
+ :components ((:file "src/component")))
(register-system-packages "lack-component" '(:lack.component))
diff --git a/lack-middleware-accesslog.asd b/lack-middleware-accesslog.asd
index c593988..21a4e70 100644
--- a/lack-middleware-accesslog.asd
+++ b/lack-middleware-accesslog.asd
@@ -6,7 +6,6 @@
"local-time")
:components ((:module "src"
:components
- ((:file "middleware/accesslog"))))
- :in-order-to ((test-op (test-op "t-lack-middleware-accesslog"))))
+ ((:file "middleware/accesslog")))))
(register-system-packages "lack-middleware-accesslog" '(:lack.middleware.accesslog))
diff --git a/lack-middleware-auth-basic.asd b/lack-middleware-auth-basic.asd
index 9206d22..6862f33 100644
--- a/lack-middleware-auth-basic.asd
+++ b/lack-middleware-auth-basic.asd
@@ -6,7 +6,6 @@
"split-sequence")
:components ((:module "src"
:components
- ((:file "middleware/auth/basic"))))
- :in-order-to ((test-op (test-op "t-lack-middleware-auth-basic"))))
+ ((:file "middleware/auth/basic")))))
(register-system-packages "lack-middleware-auth-basic" '(:lack.middleware.auth.basic))
diff --git a/lack-middleware-backtrace.asd b/lack-middleware-backtrace.asd
index 8df7f9f..cf73f81 100644
--- a/lack-middleware-backtrace.asd
+++ b/lack-middleware-backtrace.asd
@@ -3,7 +3,6 @@
:author "Eitaro Fukamachi"
:license "MIT"
:depends-on ("uiop")
- :components ((:file "src/middleware/backtrace"))
- :in-order-to ((test-op (test-op "t-lack-middleware-backtrace"))))
+ :components ((:file "src/middleware/backtrace")))
(register-system-packages "lack-middleware-backtrace" '(:lack.middleware.backtrace))
diff --git a/lack-middleware-csrf.asd b/lack-middleware-csrf.asd
index 105d3bb..fcf46f7 100644
--- a/lack-middleware-csrf.asd
+++ b/lack-middleware-csrf.asd
@@ -6,7 +6,6 @@
"lack-util")
:components ((:module "src"
:components
- ((:file "middleware/csrf"))))
- :in-order-to ((test-op (test-op "t-lack-middleware-csrf"))))
+ ((:file "middleware/csrf")))))
(register-system-packages "lack-middleware-csrf" '(:lack.middleware.csrf))
diff --git a/lack-middleware-session.asd b/lack-middleware-session.asd
index 92b1568..bed4c89 100644
--- a/lack-middleware-session.asd
+++ b/lack-middleware-session.asd
@@ -19,7 +19,6 @@
:pathname "session"
:components
((:file "state")
- (:file "state/cookie"))))))
- :in-order-to ((test-op (test-op "t-lack-middleware-session"))))
+ (:file "state/cookie")))))))
(register-system-packages "lack-middleware-session" '(:lack.middleware.session))
diff --git a/lack-middleware-static.asd b/lack-middleware-static.asd
index a0ce627..107a386 100644
--- a/lack-middleware-static.asd
+++ b/lack-middleware-static.asd
@@ -7,7 +7,6 @@
"alexandria")
:components ((:module "src"
:components
- ((:file "middleware/static"))))
- :in-order-to ((test-op (test-op "t-lack-middleware-static"))))
+ ((:file "middleware/static")))))
(register-system-packages "lack-middleware-static" '(:lack.middleware.static))
diff --git a/lack-request.asd b/lack-request.asd
index 5efa05c..240b421 100644
--- a/lack-request.asd
+++ b/lack-request.asd
@@ -9,7 +9,6 @@
:components ((:module "src"
:components
((:file "request" :depends-on ("media-type"))
- (:file "media-type"))))
- :in-order-to ((test-op (test-op "t-lack-request"))))
+ (:file "media-type")))))
(register-system-packages "lack-request" '(:lack.request))
diff --git a/lack-session-store-dbi.asd b/lack-session-store-dbi.asd
index 00e7d1e..825a96c 100644
--- a/lack-session-store-dbi.asd
+++ b/lack-session-store-dbi.asd
@@ -7,7 +7,6 @@
"marshal"
"trivial-utf-8"
"cl-base64")
- :components ((:file "src/middleware/session/store/dbi"))
- :in-order-to ((test-op (test-op "t-lack-session-store-dbi"))))
+ :components ((:file "src/middleware/session/store/dbi")))
(register-system-packages "lack-session-store-dbi" '(:lack.session.store.dbi))
diff --git a/lack-session-store-redis.asd b/lack-session-store-redis.asd
index 96b0504..57e4046 100644
--- a/lack-session-store-redis.asd
+++ b/lack-session-store-redis.asd
@@ -7,7 +7,6 @@
"marshal"
"cl-base64"
"trivial-utf-8")
- :components ((:file "src/middleware/session/store/redis"))
- :in-order-to ((test-op (test-op "t-lack-session-store-redis"))))
+ :components ((:file "src/middleware/session/store/redis")))
(register-system-packages "lack-session-store-redis" '(:lack.session.store.redis))
diff --git a/lack-util.asd b/lack-util.asd
index 0391a1b..1318c04 100644
--- a/lack-util.asd
+++ b/lack-util.asd
@@ -5,7 +5,6 @@
:depends-on ((:feature (:or :windows :mswindows :win32 :cormanlisp) "ironclad")
(:feature (:not (:or :windows :mswindows :win32 :cormanlisp)) "cl-isaac")
"bordeaux-threads")
- :components ((:file "src/util"))
- :in-order-to ((test-op (test-op "t-lack-util"))))
+ :components ((:file "src/util")))
(register-system-packages "lack-util" '(:lack.util))
diff --git a/lack.asd b/lack.asd
index e213c10..dde71cf 100644
--- a/lack.asd
+++ b/lack.asd
@@ -43,8 +43,6 @@
"lack/middleware/auth/basic"
"lack/session/store/redis"
"lack/session/store/dbi"
- "clack"
- "clack-test"
"hunchentoot"
"dexador"
"cl-cookie"
@@ -60,7 +58,6 @@
:serial t
:components ((:file "builder")
(:file "util")
- (:file "request")
(:file "component")
(:file "media-type")
(:module "middleware"
diff --git a/tests/request.lisp b/tests/request.lisp
deleted file mode 100644
index 3fd26e0..0000000
--- a/tests/request.lisp
+++ /dev/null
@@ -1,71 +0,0 @@
-(defpackage #:lack/tests/request
- (:use #:cl
- #:rove
- #:lack/request
- #:clack.test
- #:flexi-streams)
- (:import-from #:dexador)
- (:import-from #:alexandria
- #:alist-hash-table))
-(in-package #:lack/tests/request)
-
-(defparameter *request*
- (make-request `(:content-type "application/x-www-form-urlencoded; charset=utf-8"
- :content-length 20
- :uri-scheme :http
- :query-string "ediweitz=weitzedi&name=eitaro&q=C%2B%2B"
- :raw-body
- ,(flex:make-flexi-stream
- (flex:make-in-memory-input-stream
- #(110 97 109 101 61 230 183 177 231 148 186 232 139 177 229 164 170 233 131 142))
- :external-format :utf-8)
- :headers ,(alexandria:alist-hash-table
- '(("referer" . "http://github.com/fukamachi/clack")
- ("user-agent" . "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_6; en-US)")
- ("accept" . "text/html")
- ("cookie" . "hoge=1;fuga=semi;colon"))
- :test 'equal))))
-
-(deftest lack-request
- (ok (typep *request* 'request))
-
- (ok (request-env *request*) "request-env")
-
- (ok (equal (request-content-type *request*) "application/x-www-form-urlencoded; charset=utf-8")
- "request-content-type")
-
- (ok (equalp (request-query-parameters *request*)
- '(("ediweitz" . "weitzedi") ("name" . "eitaro") ("q" . "C++")))
- "request-query-parameters")
-
- (ok (equalp (request-body-parameters *request*)
- `(("name" . ,(flex:octets-to-string
- #(230 183 177 231 148 186 232 139 177 229 164 170 233 131 142)
- :external-format :utf-8))))
- "request-body-parameters")
-
- (ok (equalp (request-cookies *request*)
- '(("hoge" . "1") ("fuga" . "semi") ("colon")))
- "request-cookies")
-
- (ok (request-accepts-p *request* "text/html"))
-
- (ng (request-accepts-p *request* "application/json"))
-
- (testing-app "make-request"
- (lambda (env)
- (make-request env)
- `(200 nil (,(third (assoc "file" (request-body-parameters (make-request env)) :test #'string=)))))
- (multiple-value-bind (body status)
- (dex:post (localhost)
- :content
- `(("file" . ,(asdf:system-relative-pathname :lack #P"data/jellyfish.jpg"))))
- (ok (eql status 200))
- (ok (equal body "jellyfish.jpg")))
-
- (multiple-value-bind (body status)
- (dex:post (localhost)
- :content
- `(("file" . ,(asdf:system-relative-pathname :lack #P"data/jellyfish.jpg"))))
- (ok (eql status 200))
- (ok (equal body "jellyfish.jpg")))))