diff options
Diffstat (limited to 'gnu/packages/lisp-xyz.scm')
-rw-r--r-- | gnu/packages/lisp-xyz.scm | 749 |
1 files changed, 665 insertions, 84 deletions
diff --git a/gnu/packages/lisp-xyz.scm b/gnu/packages/lisp-xyz.scm index 904d202a55..f73709515f 100644 --- a/gnu/packages/lisp-xyz.scm +++ b/gnu/packages/lisp-xyz.scm @@ -71,6 +71,7 @@ #:use-module (gnu packages sqlite) #:use-module (gnu packages tcl) #:use-module (gnu packages tls) + #:use-module (gnu packages web) #:use-module (gnu packages webkit) #:use-module (gnu packages xdisorg) #:use-module (ice-9 match) @@ -1715,7 +1716,7 @@ also be supported.") (define-public sbcl-ironclad (package (name "sbcl-ironclad") - (version "0.50") + (version "0.51") (source (origin (method git-fetch) @@ -1723,7 +1724,7 @@ also be supported.") (url "https://github.com/sharplispers/ironclad/") (commit (string-append "v" version)))) (sha256 - (base32 "0k4bib9mbrzalbl9ivkw4a7g4c7bbad1l5jw4pzkifqszy2swkr5")) + (base32 "1zxkzbxsfb83bb87rhp4h75cc1h5f6ziyfa5lvaa30zgix9l2d7v")) (file-name (git-file-name name version)))) (build-system asdf-build-system/sbcl) (native-inputs @@ -2629,45 +2630,43 @@ package.") (sbcl-package->cl-source-package sbcl-cffi-uffi-compat)) (define-public sbcl-cl-sqlite - (let ((commit "c738e66d4266ef63a1debc4ef4a1b871a068c112")) - (package - (name "sbcl-cl-sqlite") - (version (git-version "0.2" "1" commit)) - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/dmitryvk/cl-sqlite") - (commit commit))) - (file-name (git-file-name "cl-sqlite" version)) - (sha256 - (base32 - "1ng45k1hdb84sqjryrfx93g66bsbybmpy301wd0fdybnc5jzr36q")))) - (build-system asdf-build-system/sbcl) - (inputs - `(("iterate" ,sbcl-iterate) - ("cffi" ,sbcl-cffi) - ("sqlite" ,sqlite))) - (native-inputs - `(("fiveam" ,sbcl-fiveam) - ("bordeaux-threads" ,sbcl-bordeaux-threads))) - (arguments - `(#:tests? #f ; Upstream seems to have issues with tests: https://github.com/dmitryvk/cl-sqlite/issues/7 - #:asd-file "sqlite.asd" - #:asd-system-name "sqlite" - #:phases - (modify-phases %standard-phases - (add-after 'unpack 'fix-paths - (lambda* (#:key inputs #:allow-other-keys) - (substitute* "sqlite-ffi.lisp" - (("libsqlite3" all) (string-append - (assoc-ref inputs "sqlite")"/lib/" all)))))))) - (home-page "https://common-lisp.net/project/cl-sqlite/") - (synopsis "Common Lisp binding for SQLite") - (description - "The @command{cl-sqlite} package is an interface to the SQLite embedded + (package + (name "sbcl-cl-sqlite") + (version "0.2.1") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/dmitryvk/cl-sqlite") + (commit version))) + (file-name (git-file-name "cl-sqlite" version)) + (sha256 + (base32 + "08iv7b4m0hh7qx2cvq4f510nrgdld0vicnvmqsh9w0fgrcgmyg4k")))) + (build-system asdf-build-system/sbcl) + (inputs + `(("iterate" ,sbcl-iterate) + ("cffi" ,sbcl-cffi) + ("sqlite" ,sqlite))) + (native-inputs + `(("fiveam" ,sbcl-fiveam) + ("bordeaux-threads" ,sbcl-bordeaux-threads))) + (arguments + `(#:asd-file "sqlite.asd" + #:asd-system-name "sqlite" + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'fix-paths + (lambda* (#:key inputs #:allow-other-keys) + (substitute* "sqlite-ffi.lisp" + (("libsqlite3" all) (string-append + (assoc-ref inputs "sqlite")"/lib/" all)))))))) + (home-page "https://common-lisp.net/project/cl-sqlite/") + (synopsis "Common Lisp binding for SQLite") + (description + "The @command{cl-sqlite} package is an interface to the SQLite embedded relational database engine.") - (license license:public-domain)))) + (license license:public-domain))) (define-public cl-sqlite (sbcl-package->cl-source-package sbcl-cl-sqlite)) @@ -3136,10 +3135,10 @@ is a library for creating graphical user interfaces.") (sbcl-package->cl-source-package sbcl-cl-cffi-gtk)) (define-public sbcl-cl-webkit - (let ((commit "6c905a5550b58a5b7602da5a087d7dafc5337122")) + (let ((commit "dccf9d25de4e9a69f716f8ed9578e58963ead967")) (package (name "sbcl-cl-webkit") - (version (git-version "2.4" "4" commit)) + (version (git-version "2.4" "5" commit)) (source (origin (method git-fetch) @@ -3149,7 +3148,7 @@ is a library for creating graphical user interfaces.") (file-name (git-file-name "cl-webkit" version)) (sha256 (base32 - "0017ijjflqqbgbj5bf7ffkyw5idhxc0ggly2qh5igf3kz886p9rh")))) + "0cn43ks2mgqkfnalq1p997z6q5pr1sfvz99gvvr5fp7r1acn7v5w")))) (build-system asdf-build-system/sbcl) (inputs `(("cffi" ,sbcl-cffi) @@ -3611,6 +3610,12 @@ RFC 1321 by R. Rivest, published April 1992.") (define-public cl-md5 (sbcl-package->cl-source-package sbcl-md5)) +(define-public ecl-md5 + (package + (inherit (sbcl-package->ecl-package sbcl-md5)) + (inputs + `(("flexi-streams" ,ecl-flexi-streams))))) + (define-public sbcl-cl+ssl (let ((commit "701e645081e6533a3f0f0b3ac86389d6f506c4b5") (revision "1")) @@ -4923,36 +4928,118 @@ performance and simplicity in mind.") (define-public cl-ningle (sbcl-package->cl-source-package sbcl-ningle)) -(define-public sbcl-clack - (let ((commit "e3e032843bb1220ab96263c411aa7f2feb4746e0") +(define-public sbcl-cl-fastcgi + (let ((commit "d576d20eeb12f225201074b28934ba395b15781a") (revision "1")) (package - (name "sbcl-clack") - (version (git-version "2.0.0" revision commit)) - (source - (origin + (name "sbcl-cl-fastcgi") + (version (git-version "0.2" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/KDr2/cl-fastcgi/") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "02mvzzyn0k960s38rbxaqqmdkwcfmyhf8dx6ynz8xyxflmp0s5zv")))) + (build-system asdf-build-system/sbcl) + (inputs + `(("usocket" ,sbcl-usocket) + ("cffi" ,sbcl-cffi) + ("fcgi" ,fcgi))) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-after 'unpack 'fix-paths + (lambda* (#:key inputs #:allow-other-keys) + (substitute* "cl-fastcgi.lisp" + (("\"libfcgi.so\"") + (string-append + "\"" + (assoc-ref inputs "fcgi") "/lib/libfcgi.so\"")))))))) + (home-page "https://kdr2.com/project/cl-fastcgi.html") + (synopsis "FastCGI wrapper for Common Lisp") + (description + "CL-FastCGI is a generic version of SB-FastCGI, targeting to run on +mostly Common Lisp implementation.") + ;; TODO: Upstream on specifies "BSD license": + ;; https://github.com/KDr2/cl-fastcgi/issues/4 + (license license:bsd-2)))) + +(define-public cl-fastcgi + (sbcl-package->cl-source-package sbcl-cl-fastcgi)) + +(define-public ecl-cl-fastcgi + (sbcl-package->ecl-package sbcl-cl-fastcgi)) + +(define clack-commit "e3e032843bb1220ab96263c411aa7f2feb4746e0") +(define clack-revision "1") + +(define-public sbcl-clack + (package + (name "sbcl-clack") + (version (git-version "2.0.0" clack-revision clack-commit)) + (source + (origin (method git-fetch) (uri (git-reference (url "https://github.com/fukamachi/clack") - (commit commit))) + (commit clack-commit))) (file-name (git-file-name name version)) (sha256 (base32 "1ymzs6qyrwhlj6cgqsnpyn6g5cbp7a3s1vgxwna20y2q7y4iacy0")))) - (build-system asdf-build-system/sbcl) - (inputs - `(("sbcl-lack" ,sbcl-lack) - ("sbcl-lack-middleware-backtrace" ,sbcl-lack-middleware-backtrace) - ("sbcl-bordeaux-threads" ,sbcl-bordeaux-threads))) - (home-page "https://github.com/fukamachi/clack") - (synopsis "Web Application Environment for Common Lisp") - (description - "Clack is a web application environment for Common Lisp inspired by + (build-system asdf-build-system/sbcl) + (inputs + `(("sbcl-lack" ,sbcl-lack) + ("sbcl-lack-middleware-backtrace" ,sbcl-lack-middleware-backtrace) + ("sbcl-bordeaux-threads" ,sbcl-bordeaux-threads))) + (home-page "https://github.com/fukamachi/clack") + (synopsis "Web Application Environment for Common Lisp") + (description + "Clack is a web application environment for Common Lisp inspired by Python's WSGI and Ruby's Rack.") - (license license:llgpl)))) + (license license:llgpl))) (define-public cl-clack (sbcl-package->cl-source-package sbcl-clack)) +(define-public sbcl-clack-handler-fcgi + (package + (inherit sbcl-clack) + (name "sbcl-clack-handler-fcgi") + (version (git-version "0.3.1" clack-revision clack-commit)) + (inputs + `(("cl-fastcgi" ,sbcl-cl-fastcgi) + ("alexandria" ,sbcl-alexandria) + ("flexi-streams" ,sbcl-flexi-streams) + ("usocket" ,sbcl-usocket) + ("quri" ,sbcl-quri))) + (synopsis "Web Application Environment for Common Lisp (FastCGI handler)"))) + +(define-public cl-clack-handler-fcgi + (sbcl-package->cl-source-package sbcl-clack-handler-fcgi)) + +(define sbcl-clack-socket + (package + (inherit sbcl-clack) + (name "sbcl-clack-socket") + (version (git-version "0.1" clack-revision clack-commit)))) + +(define-public sbcl-clack-handler-hunchentoot + (package + (inherit sbcl-clack) + (name "sbcl-clack-handler-hunchentoot") + (version (git-version "0.4.0" clack-revision clack-commit)) + (inputs + `(("hunchentoot" ,sbcl-hunchentoot) + ("clack-socket" ,sbcl-clack-socket) + ("flexi-streams" ,sbcl-flexi-streams) + ("bordeaux-threads" ,sbcl-bordeaux-threads) + ("split-sequence" ,sbcl-split-sequence) + ("alexandria" ,sbcl-alexandria))) + (synopsis "Web Application Environment for Common Lisp (Hunchentoot handler)"))) + (define-public sbcl-log4cl (let ((commit "611e094458504b938d49de904eab141285328c7c") (revision "1")) @@ -10910,6 +10997,19 @@ a PostgreSQL server over a socket."))) (define-public cl-postgres (sbcl-package->cl-source-package sbcl-cl-postgres)) +(define-public ecl-cl-postgres + (package + (inherit (sbcl-package->ecl-package sbcl-cl-postgres)) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-after 'unpack 'fix-ecl + (lambda _ + (substitute* "cl-postgres.asd" + (("\\) \"usocket\"") " :ecl) \"usocket\"")) + #t))) + #:tests? #f)))) + (define-public sbcl-simple-date-postgres-glue (package (inherit sbcl-simple-date) @@ -10980,31 +11080,35 @@ foreign libraries. (sbcl-package->cl-source-package sbcl-postmodern)) (define-public sbcl-dbi - (package - (name "sbcl-dbi") - (version "0.9.4") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/fukamachi/cl-dbi") - (commit version))) - (file-name (git-file-name name version)) - (sha256 - (base32 "0m1fsravfaizamdak84adh3jxc4j91maqnrb4m08bfbmb04cdqhs")))) - (build-system asdf-build-system/sbcl) - (inputs - `(("bordeaux-threads" ,sbcl-bordeaux-threads) - ("closer-mop" ,sbcl-closer-mop) - ("split-sequence" ,sbcl-split-sequence))) - (arguments - `(#:tests? #f)) ; TODO: Break circular dependency with dbd-* - (synopsis "Database independent interface for Common Lisp") - (description - "@code{dbi} is a Common Lisp library providing a database independent + ;; Master includes a breaking change which other packages depend on since + ;; Quicklisp decided to follow it: + ;; https://github.com/fukamachi/cl-dbi/commit/31c46869722f77fd5292a81b5b101f1347d7fce1 + (let ((commit "31c46869722f77fd5292a81b5b101f1347d7fce1")) + (package + (name "sbcl-dbi") + (version (git-version "0.9.4" "1" commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/fukamachi/cl-dbi") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0r3n4rw12qqxad0cryym2ibm4ddl49gbq4ra227afibsr43nw5k3")))) + (build-system asdf-build-system/sbcl) + (inputs + `(("bordeaux-threads" ,sbcl-bordeaux-threads) + ("closer-mop" ,sbcl-closer-mop) + ("split-sequence" ,sbcl-split-sequence))) + (arguments + `(#:tests? #f)) ; TODO: Break circular dependency with dbd-* + (synopsis "Database independent interface for Common Lisp") + (description + "@code{dbi} is a Common Lisp library providing a database independent interface for MySQL, PostgreSQL and SQLite.") - (home-page "https://github.com/fukamachi/cl-dbi") - (license license:llgpl))) + (home-page "https://github.com/fukamachi/cl-dbi") + (license license:llgpl)))) (define-public cl-dbi (sbcl-package->cl-source-package sbcl-dbi)) @@ -13330,6 +13434,64 @@ specification}, a toolkit for writing GUIs in Common Lisp.") ("swank" ,cl-slime-swank) ("zpb-ttf" ,cl-zpb-ttf)))))) +(define-public sbcl-mcclim-test-util + (package + (inherit sbcl-clim-lisp) + (name "sbcl-mcclim-test-util") + (inputs + `(("fiveam" ,sbcl-fiveam) + ("mcclim" ,sbcl-mcclim) + ("swank" ,cl-slime-swank))) ; For drei-mcclim + (arguments + '(#:asd-file "mcclim.asd" + #:asd-system-name "mcclim/test-util")))) + +(define-public sbcl-mcclim-raster-image + (package + (inherit sbcl-clim-lisp) + (name "sbcl-mcclim-raster-image") + (native-inputs + `(("fiveam" ,sbcl-fiveam) + ("mcclim-test-util" ,sbcl-mcclim-test-util))) + (inputs + `(("clim-basic" ,sbcl-clim-basic) + ("mcclim-backend-common" ,sbcl-mcclim-backend-common) + ("mcclim-render" ,sbcl-mcclim-render) + ("swank" ,cl-slime-swank))) ; For drei-mcclim + (arguments + '(#:asd-file "Backends/RasterImage/mcclim-raster-image.asd" + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'fix-asd-system-names + (lambda _ + (substitute* "Backends/RasterImage/mcclim-raster-image.asd" + (("mcclim/test-util") + "mcclim-test-util")) + #t))))))) + +(define-public sbcl-clim-examples + (package + (inherit sbcl-clim-lisp) + (name "sbcl-clim-examples") + (inputs + `(("alexandria" ,sbcl-alexandria) + ("closer-mop" ,sbcl-closer-mop) + ("mcclim" ,sbcl-mcclim) + ("mcclim-bezier" ,sbcl-mcclim-bezier) + ("mcclim-layouts-tab" ,sbcl-mcclim-layouts-tab) + ("mcclim-raster-image" ,sbcl-mcclim-raster-image) + ("swank" ,cl-slime-swank))) ; For drei-mcclim + (arguments + '(#:asd-file "Examples/clim-examples.asd" + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'fix-asd-system-names + (lambda _ + (substitute* "Examples/clim-examples.asd" + (("mcclim-layouts/tab") + "mcclim-layouts-tab")) + #t))))))) + (define-public sbcl-cl-inflector (let ((commit "f1ab16919ccce3bd82a0042677d9616dde2034fe") (revision "1")) @@ -13539,3 +13701,422 @@ carrys on from the end of the body.") (define-public ecl-livesupport (sbcl-package->ecl-package sbcl-livesupport)) + +(define-public sbcl-envy + (let ((commit "956321b2852d58ba71c6fe621f5c2924178e9f88") + (revision "1")) + (package + (name "sbcl-envy") + (version (git-version "0.1" revision commit)) + (home-page "https://github.com/fukamachi/envy") + (source + (origin + (method git-fetch) + (uri (git-reference + (url home-page) + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "17iwrfxcdinjbb2h6l09qf40s7xkbhrpmnljlwpjy8l8rll8h3vg")))) + (build-system asdf-build-system/sbcl) + ;; (native-inputs ; Only for tests. + ;; `(("prove" ,sbcl-prove) + ;; ("osicat" ,sbcl-osicat))) + (arguments + '(#:phases + (modify-phases %standard-phases + (add-after 'unpack 'fix-tests + (lambda _ + (substitute* "envy-test.asd" + (("cl-test-more") "prove")) + #t))) + ;; Tests fail with + ;; Component ENVY-ASD::ENVY-TEST not found, required by #<SYSTEM "envy"> + ;; like xsubseq. Why? + #:tests? #f)) + (synopsis "Common Lisp configuration switcher inspired by Perl's Config::ENV.") + (description "Envy is a configuration manager for various applications. +Envy uses an environment variable to determine a configuration to use. This +can separate configuration system from an implementation.") + (license license:bsd-2)))) + +(define-public cl-envy + (sbcl-package->cl-source-package sbcl-envy)) + +(define-public ecl-envy + (sbcl-package->ecl-package sbcl-envy)) + +(define sbcl-mito-core + (let ((commit "d3b9e375ef364a65692da2185085a08c969ac88a") + (revision "1")) + (package + (name "sbcl-mito-core") + (version (git-version "0.1" revision commit)) + (home-page "https://github.com/fukamachi/mito") + (source + (origin + (method git-fetch) + (uri (git-reference + (url home-page) + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "08mncgzjnbbsf1a6am3l73iw4lyfvz5ldjg5g84awfaxml4p73mb")))) + (build-system asdf-build-system/sbcl) + (inputs + `(("dbi" ,sbcl-dbi) + ("sxql" ,sbcl-sxql) + ("cl-ppcre" ,sbcl-cl-ppcre) + ("closer-mop" ,sbcl-closer-mop) + ("dissect" ,sbcl-dissect) + ("optima" ,sbcl-optima) + ("cl-reexport" ,sbcl-cl-reexport) + ("local-time" ,sbcl-local-time) + ("uuid" ,sbcl-uuid) + ("alexandria" ,sbcl-alexandria))) + (synopsis "ORM for Common Lisp with migrations and relationships support") + (description "Mito is yet another object relational mapper, and it aims +to be a successor of Integral. + +@itemize +@item Support MySQL, PostgreSQL and SQLite3. +@item Add id (serial/uuid primary key), created_at and updated_at by default +like Ruby's ActiveRecord. +@item Migrations. +@item Database schema versioning. +@end itemize\n") + (license license:llgpl)))) + +(define sbcl-mito-migration + (package + (inherit sbcl-mito-core) + (name "sbcl-mito-migration") + (inputs + `(("mito-core" ,sbcl-mito-core) + ("dbi" ,sbcl-dbi) + ("sxql" ,sbcl-sxql) + ("closer-mop" ,sbcl-closer-mop) + ("cl-reexport" ,sbcl-cl-reexport) + ("uuid" ,sbcl-uuid) + ("alexandria" ,sbcl-alexandria) + ("esrap" ,sbcl-esrap))))) + +(define sbcl-lack-middleware-mito + (package + (inherit sbcl-mito-core) + (name "sbcl-lack-middleware-mito") + (inputs + `(("mito-core" ,sbcl-mito-core) + ("dbi" ,sbcl-dbi))) + (arguments + '(#:phases + (modify-phases %standard-phases + (add-after 'unpack 'fix-build + (lambda _ + (substitute* "lack-middleware-mito.asd" + (("cl-dbi") "dbi")) + #t))))))) + +(define-public sbcl-mito + (package + (inherit sbcl-mito-core) + (name "sbcl-mito") + (inputs + `(("mito-core" ,sbcl-mito-core) + ("mito-migration" ,sbcl-mito-migration) + ("lack-middleware-mito" ,sbcl-lack-middleware-mito) + ("cl-reexport" ,sbcl-cl-reexport))) + (native-inputs + `(("prove" ,sbcl-prove) + ("prove-asdf" ,sbcl-prove-asdf) + ("dbd-mysql" ,sbcl-dbd-mysql) + ("dbd-postgres" ,sbcl-dbd-postgres) + ("dbd-sqlite3" ,sbcl-dbd-sqlite3))) + (arguments + '(#:phases + (modify-phases %standard-phases + (add-after 'unpack 'remove-non-functional-tests + (lambda _ + (substitute* "mito-test.asd" + (("\\(:test-file \"db/mysql\"\\)") "") + (("\\(:test-file \"db/postgres\"\\)") "") + (("\\(:test-file \"dao\"\\)") "") + ;; TODO: migration/sqlite3 should work, re-enable once + ;; upstream has fixed it: + ;; https://github.com/fukamachi/mito/issues/70 + (("\\(:test-file \"migration/sqlite3\"\\)") "") + (("\\(:test-file \"migration/mysql\"\\)") "") + (("\\(:test-file \"migration/postgres\"\\)") "") + (("\\(:test-file \"postgres-types\"\\)") "") + (("\\(:test-file \"mixin\"\\)") "")) + #t))) + ;; TODO: While all enabled tests pass, the phase fails with: + ;; Component MITO-ASD::MITO-TEST not found, required by #<SYSTEM "mito"> + #:tests? #f)))) + +(define-public cl-mito + (sbcl-package->cl-source-package sbcl-mito)) + +(define-public sbcl-kebab + (let ((commit "e7f77644c4e46131e7b8039d191d35fe6211f31b") + (revision "1")) + (package + (name "sbcl-kebab") + (version (git-version "0.1" revision commit)) + (home-page "https://github.com/pocket7878/kebab") + (source + (origin + (method git-fetch) + (uri (git-reference + (url home-page) + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0j5haabnvj0vz0rx9mwyfsb3qzpga9nickbjw8xs6vypkdzlqv1b")))) + (build-system asdf-build-system/sbcl) + (inputs + `(("cl-ppcre" ,sbcl-cl-ppcre) + ("alexandria" ,sbcl-alexandria) + ("cl-interpol" ,sbcl-cl-interpol) + ("split-sequence" ,sbcl-split-sequence))) + (native-inputs + `(("prove-asdf" ,sbcl-prove-asdf) + ("prove" ,sbcl-prove))) + (arguments + ;; Tests passes but the phase fails with + ;; Component KEBAB-ASD::KEBAB-TEST not found, required by #<SYSTEM "kebab">. + `(#:tests? #f)) + (synopsis "Common Lisp case converter") + (description "This Common Lisp library converts strings, symbols and +keywords between any of the following typographical cases: PascalCase, +camelCase, snake_case, kebab-case (lisp-case).") + (license license:llgpl)))) + +(define-public cl-kebab + (sbcl-package->cl-source-package sbcl-kebab)) + +(define-public ecl-kebab + (sbcl-package->ecl-package sbcl-kebab)) + +(define-public sbcl-datafly + (let ((commit "adece27fcbc4b5ea39ad1a105048b6b7166e3b0d") + (revision "1")) + (package + (name "sbcl-datafly") + (version (git-version "0.1" revision commit)) + (home-page "https://github.com/fukamachi/datafly") + (source + (origin + (method git-fetch) + (uri (git-reference + (url home-page) + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "16b78kzmglp2a4nxlxxl7rpf5zaibsgagn0p3c56fsxvx0c4hszv")))) + (build-system asdf-build-system/sbcl) + (inputs + `(("alexandria" ,sbcl-alexandria) + ("iterate" ,sbcl-iterate) + ("optima" ,sbcl-optima) + ("trivial-types" ,sbcl-trivial-types) + ("closer-mop" ,sbcl-closer-mop) + ("cl-syntax-annot" ,sbcl-cl-syntax-annot) + ("sxql" ,sbcl-sxql) + ("dbi" ,sbcl-dbi) + ("babel" ,sbcl-babel) + ("local-time" ,sbcl-local-time) + ("function-cache" ,sbcl-function-cache) + ("jonathan" ,sbcl-jonathan) + ("kebab" ,sbcl-kebab) + ("log4cl" ,sbcl-log4cl))) + (native-inputs + `(("prove-asdf" ,sbcl-prove-asdf) + ("prove" ,sbcl-prove) + ("dbd-sqlite3" ,sbcl-dbd-sqlite3))) + (arguments + ;; TODO: Tests fail with + ;; While evaluating the form starting at line 22, column 0 + ;; of #P"/tmp/guix-build-sbcl-datafly-0.1-1.adece27.drv-0/source/t/datafly.lisp": + ;; Unhandled SQLITE:SQLITE-ERROR in thread #<SB-THREAD:THREAD "main thread" RUNNING + ;; {10009F8083}>: + ;; Error when binding parameter 1 to value NIL. + ;; Code RANGE: column index out of range. + `(#:tests? #f)) + (synopsis "Lightweight database library for Common Lisp") + (description "Datafly is a lightweight database library for Common Lisp.") + (license license:bsd-3)))) + +(define-public cl-datafly + (sbcl-package->cl-source-package sbcl-datafly)) + +(define-public ecl-datafly + (sbcl-package->ecl-package sbcl-datafly)) + +(define-public sbcl-do-urlencode + (let ((commit "199846441dad5dfac5478b8dee4b4e20d107af6a") + (revision "1")) + (package + (name "sbcl-do-urlencode") + (version (git-version "0.0.0" revision commit)) + (home-page "https://github.com/drdo/do-urlencode") + (source + (origin + (method git-fetch) + (uri (git-reference + (url home-page) + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0k2i3d4k9cpci235mwfm0c5a4yqfkijr716bjv7cdlpzx88lazm9")))) + (build-system asdf-build-system/sbcl) + (inputs + `(("alexandria" ,sbcl-alexandria) + ("babel" ,sbcl-babel))) + (synopsis "Percent Encoding (aka URL Encoding) Common Lisp library") + (description "This library provides trivial percent encoding and +decoding functions for URLs.") + (license license:isc)))) + +(define-public cl-do-urlencode + (sbcl-package->cl-source-package sbcl-do-urlencode)) + +(define-public ecl-do-urlencode + (sbcl-package->ecl-package sbcl-do-urlencode)) + +(define-public sbcl-cl-emb + (let ((commit "fd8652174d048d4525a81f38cdf42f4fa519f840") + (revision "1")) + (package + (name "sbcl-cl-emb") + (version (git-version "0.4.3" revision commit)) + (home-page "https://common-lisp.net/project/cl-emb/") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/38a938c2/cl-emb") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1xcm31n7afh5316lwz8iqbjx7kn5lw0l11arg8mhdmkx42aj4gkk")))) + (build-system asdf-build-system/sbcl) + (inputs + `(("cl-ppcre" ,sbcl-cl-ppcre))) + (synopsis "Templating system for Common Lisp") + (description "A mixture of features from eRuby and HTML::Template. You +could name it \"Yet Another LSP\" (LispServer Pages) but it's a bit more than +that and not limited to a certain server or text format.") + (license license:llgpl)))) + +(define-public cl-emb + (sbcl-package->cl-source-package sbcl-cl-emb)) + +(define-public ecl-cl-emb + (sbcl-package->ecl-package sbcl-cl-emb)) + +(define-public sbcl-cl-project + (let ((commit "151107014e534fc4666222d57fec2cc8549c8814") + (revision "1")) + (package + (name "sbcl-cl-project") + (version (git-version "0.3.1" revision commit)) + (home-page "https://github.com/fukamachi/cl-project") + (source + (origin + (method git-fetch) + (uri (git-reference + (url home-page) + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1rmh6s1ncv8s2yrr14ja9wisgg745sq6xibqwb341ikdicxdp26y")))) + (build-system asdf-build-system/sbcl) + (inputs + `(("cl-emb" ,sbcl-cl-emb) + ("cl-ppcre" ,sbcl-cl-ppcre) + ("local-time" ,sbcl-local-time) + ("prove" ,sbcl-prove))) + (arguments + ;; Tests depend on caveman, which in turns depends on cl-project. + '(#:tests? #f)) + (synopsis "Generate a skeleton for modern Common Lisp projects") + (description "This library provides a modern project skeleton generator. +In contract with other generators, CL-Project generates one package per file +and encourages unit testing by generating a system for unit testing, so you +can begin writing unit tests as soon as the project is generated.") + (license license:llgpl)))) + +(define-public cl-project + (sbcl-package->cl-source-package sbcl-cl-project)) + +(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/...-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)) |