gnu: sbcl-hu.dwim.common: Fix missing description.
[jackhill/guix/guix.git] / gnu / packages / lisp-xyz.scm
index 20aa82b..c4ae02d 100644 (file)
@@ -19,6 +19,7 @@
 ;;; Copyright © 2020 Konrad Hinsen <konrad.hinsen@fastmail.net>
 ;;; Copyright © 2020 Dimakis Dimakakos <me@bendersteed.tech>
 ;;; Copyright © 2020 Oleg Pykhalov <go.wigust@gmail.com>
 ;;; Copyright © 2020 Konrad Hinsen <konrad.hinsen@fastmail.net>
 ;;; Copyright © 2020 Dimakis Dimakakos <me@bendersteed.tech>
 ;;; Copyright © 2020 Oleg Pykhalov <go.wigust@gmail.com>
+;;; Copyright © 2020 Adam Kandur <rndd@tuta.io>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -54,6 +55,8 @@
   #:use-module (gnu packages compression)
   #:use-module (gnu packages databases)
   #:use-module (gnu packages enchant)
   #:use-module (gnu packages compression)
   #:use-module (gnu packages databases)
   #:use-module (gnu packages enchant)
+  #:use-module (gnu packages fonts)
+  #:use-module (gnu packages fontutils)
   #:use-module (gnu packages glib)
   #:use-module (gnu packages gtk)
   #:use-module (gnu packages imagemagick)
   #:use-module (gnu packages glib)
   #:use-module (gnu packages gtk)
   #:use-module (gnu packages imagemagick)
   #:use-module (gnu packages sqlite)
   #:use-module (gnu packages tcl)
   #:use-module (gnu packages tls)
   #: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)
   #:use-module (srfi srfi-19))
 
 (define-public sbcl-alexandria
   #:use-module (gnu packages webkit)
   #:use-module (gnu packages xdisorg)
   #:use-module (ice-9 match)
   #:use-module (srfi srfi-19))
 
 (define-public sbcl-alexandria
-  (let ((commit "5e5c7d83090cc0fbf32c4628362ac3ce2c50dc59"))
-    (package
-      (name "sbcl-alexandria")
-      (version "1.0.1")
-      (source
-       (origin
-         (method git-fetch)
-         (uri (git-reference
-               (url "https://gitlab.common-lisp.net/alexandria/alexandria.git")
-               (commit commit)))
-         (sha256
-          (base32
-           "010w8829dq28jf8ajfzas9nfvpxa5bal04mg299xq6y9spihc2iz"))
-         (file-name (git-file-name name version))))
-      (build-system asdf-build-system/sbcl)
-      (native-inputs
-       `(("rt" ,sbcl-rt)))
-      (synopsis "Collection of portable utilities for Common Lisp")
-      (description
-       "Alexandria is a collection of portable utilities.  It does not contain
+  (package
+   (name "sbcl-alexandria")
+   (version "1.1")
+   (source
+    (origin
+     (method git-fetch)
+     (uri (git-reference
+           (url "https://gitlab.common-lisp.net/alexandria/alexandria.git")
+           (commit (string-append "v" version))))
+     (sha256
+      (base32
+       "1zanb3xa98js0i66iqcmx3gp123p1m2d1fxn8d7bfzyfad5f6xn2"))
+     (file-name (git-file-name name version))))
+   (build-system asdf-build-system/sbcl)
+   (native-inputs
+    `(("rt" ,sbcl-rt)))
+   (synopsis "Collection of portable utilities for Common Lisp")
+   (description
+    "Alexandria is a collection of portable utilities.  It does not contain
 conceptual extensions to Common Lisp.  It is conservative in scope, and
 portable between implementations.")
 conceptual extensions to Common Lisp.  It is conservative in scope, and
 portable between implementations.")
-      (home-page "https://common-lisp.net/project/alexandria/")
-      (license license:public-domain))))
+   (home-page "https://common-lisp.net/project/alexandria/")
+   (license license:public-domain)))
 
 (define-public cl-alexandria
   (sbcl-package->cl-source-package sbcl-alexandria))
 
 (define-public cl-alexandria
   (sbcl-package->cl-source-package sbcl-alexandria))
@@ -147,7 +150,7 @@ In order to make one or several variables file-local, use the macros
      (origin
        (method git-fetch)
        (uri (git-reference
      (origin
        (method git-fetch)
        (uri (git-reference
-             (url "https://github.com/sionescu/fiveam.git")
+             (url "https://github.com/sionescu/fiveam")
              (commit (string-append "v" version))))
        (file-name (git-file-name "fiveam" version))
        (sha256
              (commit (string-append "v" version))))
        (file-name (git-file-name "fiveam" version))
        (sha256
@@ -173,14 +176,14 @@ interactive development model in mind.")
 (define-public sbcl-bordeaux-threads
   (package
     (name "sbcl-bordeaux-threads")
 (define-public sbcl-bordeaux-threads
   (package
     (name "sbcl-bordeaux-threads")
-    (version "0.8.7")
+    (version "0.8.8")
     (source (origin
               (method git-fetch)
               (uri (git-reference
     (source (origin
               (method git-fetch)
               (uri (git-reference
-                    (url "https://github.com/sionescu/bordeaux-threads.git")
+                    (url "https://github.com/sionescu/bordeaux-threads")
                     (commit (string-append "v" version))))
               (sha256
                     (commit (string-append "v" version))))
               (sha256
-               (base32 "1whpfmyxp2fsw6viqj45fqgsifgr534c575bfh5vaqw5m84b6alp"))
+               (base32 "19i443fz3488v1pbbr9x24y8h8vlyhny9vj6c9jk5prm702awrp6"))
               (file-name
                (git-file-name "bordeaux-threads" version))))
     (inputs `(("alexandria" ,sbcl-alexandria)))
               (file-name
                (git-file-name "bordeaux-threads" version))))
     (inputs `(("alexandria" ,sbcl-alexandria)))
@@ -210,7 +213,7 @@ support.")
          (method git-fetch)
          (uri
           (git-reference
          (method git-fetch)
          (uri
           (git-reference
-           (url "https://github.com/trivial-gray-streams/trivial-gray-streams.git")
+           (url "https://github.com/trivial-gray-streams/trivial-gray-streams")
            (commit commit)))
          (sha256
           (base32 "0b1pxlccmnagk9cbh4cy8s5k66g3x0gwib5shjwr24xvrji6lp94"))
            (commit commit)))
          (sha256
           (base32 "0b1pxlccmnagk9cbh4cy8s5k66g3x0gwib5shjwr24xvrji6lp94"))
@@ -241,7 +244,7 @@ thin compatibility layer for gray streams.")
        (origin
          (method git-fetch)
          (uri (git-reference
        (origin
          (method git-fetch)
          (uri (git-reference
-               (url "https://github.com/joaotavora/fiasco.git")
+               (url "https://github.com/joaotavora/fiasco")
                (commit commit)))
          (file-name (git-file-name "fiasco" version))
          (sha256
                (commit commit)))
          (file-name (git-file-name "fiasco" version))
          (sha256
@@ -275,7 +278,7 @@ logical continuation of Stefil.  It focuses on interactive debugging.")
      (origin
        (method git-fetch)
        (uri (git-reference
      (origin
        (method git-fetch)
        (uri (git-reference
-             (url "https://github.com/edicl/flexi-streams.git")
+             (url "https://github.com/edicl/flexi-streams")
              (commit (string-append "v" version))))
        (file-name (git-file-name "flexi-streams" version))
        (sha256
              (commit (string-append "v" version))))
        (file-name (git-file-name "flexi-streams" version))
        (sha256
@@ -312,7 +315,7 @@ streams which are similar to string streams.")
      (origin
        (method git-fetch)
        (uri (git-reference
      (origin
        (method git-fetch)
        (uri (git-reference
-             (url "https://github.com/edicl/cl-ppcre.git")
+             (url "https://github.com/edicl/cl-ppcre")
              (commit (string-append "v" version))))
        (file-name (git-file-name "cl-ppcre" version))
        (sha256
              (commit (string-append "v" version))))
        (file-name (git-file-name "cl-ppcre" version))
        (sha256
@@ -339,7 +342,7 @@ compatible with ANSI-compliant Common Lisp implementations.")
     (source (origin
               (method git-fetch)
               (uri (git-reference
     (source (origin
               (method git-fetch)
               (uri (git-reference
-                    (url "https://github.com/edicl/cl-unicode.git")
+                    (url "https://github.com/edicl/cl-unicode")
                     (commit (string-append "v" version))))
               (file-name (git-file-name name version))
               (sha256
                     (commit (string-append "v" version))))
               (file-name (git-file-name name version))
               (sha256
@@ -383,7 +386,7 @@ ANSI-compliant Common Lisp implementations.")
      (origin
        (method git-fetch)
        (uri (git-reference
      (origin
        (method git-fetch)
        (uri (git-reference
-             (url "https://github.com/xach/zpb-ttf.git")
+             (url "https://github.com/xach/zpb-ttf")
              (commit (string-append "release-" version))))
        (file-name (git-file-name name version))
        (sha256
              (commit (string-append "release-" version))))
        (file-name (git-file-name name version))
        (sha256
@@ -496,7 +499,7 @@ anti-aliased vectorial paths.")))
        (origin
          (method git-fetch)
          (uri (git-reference
        (origin
          (method git-fetch)
          (uri (git-reference
-               (url "https://github.com/rpav/spatial-trees.git")
+               (url "https://github.com/rpav/spatial-trees")
                (commit commit)))
          (file-name (git-file-name name version))
          (sha256
                (commit commit)))
          (file-name (git-file-name name version))
          (sha256
@@ -533,7 +536,7 @@ spatially-extended data.")
        (origin
          (method git-fetch)
          (uri (git-reference
        (origin
          (method git-fetch)
          (uri (git-reference
-               (url "https://github.com/robert-strandh/Flexichain.git")
+               (url "https://github.com/robert-strandh/Flexichain")
                (commit commit)))
          (file-name (git-file-name name version))
          (sha256
                (commit commit)))
          (file-name (git-file-name name version))
          (sha256
@@ -565,7 +568,7 @@ a sequence (or chain) of such elements.")
        (origin
          (method git-fetch)
          (uri (git-reference
        (origin
          (method git-fetch)
          (uri (git-reference
-               (url "https://github.com/mbattyani/cl-pdf.git")
+               (url "https://github.com/mbattyani/cl-pdf")
                (commit commit)))
          (file-name (git-file-name name version))
          (sha256
                (commit commit)))
          (file-name (git-file-name name version))
          (sha256
@@ -597,7 +600,7 @@ files.")
        (method git-fetch)
        (uri
         (git-reference
        (method git-fetch)
        (uri
         (git-reference
-         (url "https://github.com/sharplispers/clx.git")
+         (url "https://github.com/sharplispers/clx")
          (commit version)))
        (sha256
         (base32
          (commit version)))
        (sha256
         (base32
@@ -686,7 +689,7 @@ antialiased TrueType font rendering using CLX and XRender extension.")
          (method git-fetch)
          (uri
           (git-reference
          (method git-fetch)
          (uri
           (git-reference
-           (url "https://github.com/joaotavora/sly.git")
+           (url "https://github.com/joaotavora/sly")
            (commit commit)))
          (sha256
           (base32 "0wbpg9p9yg2hd62l15pvy50fk3hndq5zzyqlyyf04g368s895144"))
            (commit commit)))
          (sha256
           (base32 "0wbpg9p9yg2hd62l15pvy50fk3hndq5zzyqlyyf04g368s895144"))
@@ -1044,7 +1047,7 @@ It is similar to the @code{CL:LOOP} macro, with these distinguishing marks:
        (origin
          (method git-fetch)
          (uri (git-reference
        (origin
          (method git-fetch)
          (uri (git-reference
-               (url "https://github.com/mishoo/cl-uglify-js.git")
+               (url "https://github.com/mishoo/cl-uglify-js")
                (commit commit)))
          (file-name (git-file-name name version))
          (sha256
                (commit commit)))
          (file-name (git-file-name name version))
          (sha256
@@ -1165,7 +1168,7 @@ utilities that make it even easier to manipulate text in Common Lisp.  It has
        (origin
          (method git-fetch)
          (uri (git-reference
        (origin
          (method git-fetch)
          (uri (git-reference
-               (url "https://github.com/trivial-features/trivial-features.git")
+               (url "https://github.com/trivial-features/trivial-features")
                (commit commit)))
          (file-name (git-file-name "trivial-features" version))
          (sha256
                (commit commit)))
          (file-name (git-file-name "trivial-features" version))
          (sha256
@@ -1251,7 +1254,7 @@ with a focus on interactive development.")
        (origin
          (method git-fetch)
          (uri (git-reference
        (origin
          (method git-fetch)
          (uri (git-reference
-               (url "https://github.com/cl-babel/babel.git")
+               (url "https://github.com/cl-babel/babel")
                (commit commit)))
          (file-name (git-file-name "babel" version))
          (sha256
                (commit commit)))
          (file-name (git-file-name "babel" version))
          (sha256
@@ -1386,10 +1389,11 @@ several blockable channels.)")
   (sbcl-package->ecl-package sbcl-jpl-queues))
 
 (define-public sbcl-eos
   (sbcl-package->ecl-package sbcl-jpl-queues))
 
 (define-public sbcl-eos
-  (let ((commit "b0faca83781ead9a588661e37bd47f90362ccd94"))
+  (let ((commit "b4413bccc4d142cbe1bf49516c3a0a22c9d99243")
+        (revision "2"))
     (package
       (name "sbcl-eos")
     (package
       (name "sbcl-eos")
-      (version (git-version "0.0.0" "1" commit))
+      (version (git-version "0.0.0" revision commit))
       (source
        (origin
          (method git-fetch)
       (source
        (origin
          (method git-fetch)
@@ -1397,8 +1401,7 @@ several blockable channels.)")
                (url "https://github.com/adlai/Eos")
                (commit commit)))
          (sha256
                (url "https://github.com/adlai/Eos")
                (commit commit)))
          (sha256
-          (base32
-           "1bq8cfg087iyxmxi1mwgx5cfgy3b8ydrf81xljcis8qbgb2vszph"))
+          (base32 "1afllvmlnx97yzz404gycl3pa3kwx427k3hrbf37rpmjlv47knhk"))
          (file-name (git-file-name "eos" version))))
       (build-system asdf-build-system/sbcl)
       (synopsis "Unit Testing for Common Lisp")
          (file-name (git-file-name "eos" version))))
       (build-system asdf-build-system/sbcl)
       (synopsis "Unit Testing for Common Lisp")
@@ -1713,7 +1716,7 @@ also be supported.")
 (define-public sbcl-ironclad
   (package
     (name "sbcl-ironclad")
 (define-public sbcl-ironclad
   (package
     (name "sbcl-ironclad")
-    (version "0.50")
+    (version "0.51")
     (source
      (origin
        (method git-fetch)
     (source
      (origin
        (method git-fetch)
@@ -1721,7 +1724,7 @@ also be supported.")
              (url "https://github.com/sharplispers/ironclad/")
              (commit (string-append "v" version))))
        (sha256
              (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
        (file-name (git-file-name name version))))
     (build-system asdf-build-system/sbcl)
     (native-inputs
@@ -1755,7 +1758,7 @@ streams, support is included for convenient stream wrappers.")
        (origin
          (method git-fetch)
          (uri (git-reference
        (origin
          (method git-fetch)
          (uri (git-reference
-               (url "https://github.com/melisgl/named-readtables.git")
+               (url "https://github.com/melisgl/named-readtables")
                (commit commit)))
          (sha256
           (base32 "01l4831m7k84qvhzyx0qgdl50isr4zmp40qf6dfq2iqcaj8y4h3n"))
                (commit commit)))
          (sha256
           (base32 "01l4831m7k84qvhzyx0qgdl50isr4zmp40qf6dfq2iqcaj8y4h3n"))
@@ -2521,7 +2524,7 @@ non-consing thread safe queues and fibonacci priority queues.")
      (origin
        (method git-fetch)
        (uri (git-reference
      (origin
        (method git-fetch)
        (uri (git-reference
-             (url "https://github.com/cffi/cffi.git")
+             (url "https://github.com/cffi/cffi")
              (commit (string-append "v" version))))
        (file-name (git-file-name "cffi-bootstrap" version))
        (sha256
              (commit (string-append "v" version))))
        (file-name (git-file-name "cffi-bootstrap" version))
        (sha256
@@ -2627,45 +2630,43 @@ package.")
   (sbcl-package->cl-source-package sbcl-cffi-uffi-compat))
 
 (define-public sbcl-cl-sqlite
   (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.")
 relational database engine.")
-      (license license:public-domain))))
+    (license license:public-domain)))
 
 (define-public cl-sqlite
   (sbcl-package->cl-source-package sbcl-cl-sqlite))
 
 (define-public cl-sqlite
   (sbcl-package->cl-source-package sbcl-cl-sqlite))
@@ -2806,7 +2807,7 @@ precisely controls the behavior of the parser via Common Lisp restarts.")
      (origin
        (method git-fetch)
        (uri (git-reference
      (origin
        (method git-fetch)
        (uri (git-reference
-             (url "https://github.com/trivial-garbage/trivial-garbage.git")
+             (url "https://github.com/trivial-garbage/trivial-garbage")
              (commit (string-append "v" version))))
        (file-name (git-file-name "trivial-garbage" version))
        (sha256
              (commit (string-append "v" version))))
        (file-name (git-file-name "trivial-garbage" version))
        (sha256
@@ -3134,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
   (sbcl-package->cl-source-package sbcl-cl-cffi-gtk))
 
 (define-public sbcl-cl-webkit
-  (let ((commit "f93cb9697e8813068795fe4dc39ac950d814102d"))
+  (let ((commit "dccf9d25de4e9a69f716f8ed9578e58963ead967"))
     (package
       (name "sbcl-cl-webkit")
     (package
       (name "sbcl-cl-webkit")
-      (version (git-version "2.4" "3" commit))
+      (version (git-version "2.4" "5" commit))
       (source
        (origin
          (method git-fetch)
       (source
        (origin
          (method git-fetch)
@@ -3147,7 +3148,7 @@ is a library for creating graphical user interfaces.")
          (file-name (git-file-name "cl-webkit" version))
          (sha256
           (base32
          (file-name (git-file-name "cl-webkit" version))
          (sha256
           (base32
-           "1sjcw08kjpd5h83sms7zcq2nymddjygk9hm2rpgzrl524an9ziwc"))))
+           "0cn43ks2mgqkfnalq1p997z6q5pr1sfvz99gvvr5fp7r1acn7v5w"))))
       (build-system asdf-build-system/sbcl)
       (inputs
        `(("cffi" ,sbcl-cffi)
       (build-system asdf-build-system/sbcl)
       (inputs
        `(("cffi" ,sbcl-cffi)
@@ -3471,10 +3472,10 @@ client and server.")
   (sbcl-package->ecl-package sbcl-s-xml-rpc))
 
 (define-public sbcl-trivial-clipboard
   (sbcl-package->ecl-package sbcl-s-xml-rpc))
 
 (define-public sbcl-trivial-clipboard
-  (let ((commit "5af3415d1484e6d69a1b5c178f24680d9fd01796"))
+  (let ((commit "afcd3743b842f5a81fc86dba60f9db59970f49c5"))
     (package
       (name "sbcl-trivial-clipboard")
     (package
       (name "sbcl-trivial-clipboard")
-      (version (git-version "0.0.0.0" "2" commit))
+      (version (git-version "0.0.0.0" "3" commit))
       (source
        (origin
          (method git-fetch)
       (source
        (origin
          (method git-fetch)
@@ -3484,7 +3485,7 @@ client and server.")
          (file-name (git-file-name "trivial-clipboard" version))
          (sha256
           (base32
          (file-name (git-file-name "trivial-clipboard" version))
          (sha256
           (base32
-           "1gb515z5yq6h5548pb1fwhmb0hhq1ssyb78pvxh4alq799xipxs9"))))
+           "1qfbvkzmvkbqpc5s3sx31c5653sy6qlcixafgzd10qpykb843prr"))))
       (build-system asdf-build-system/sbcl)
       (inputs
        `(("xclip" ,xclip)))
       (build-system asdf-build-system/sbcl)
       (inputs
        `(("xclip" ,xclip)))
@@ -3522,7 +3523,7 @@ client and server.")
       (origin
        (method git-fetch)
        (uri (git-reference
       (origin
        (method git-fetch)
        (uri (git-reference
-             (url "https://github.com/gwkkwg/trivial-backtrace.git")
+             (url "https://github.com/gwkkwg/trivial-backtrace")
              (commit commit)))
        (file-name (git-file-name "trivial-backtrace" version))
        (sha256
              (commit commit)))
        (file-name (git-file-name "trivial-backtrace" version))
        (sha256
@@ -3567,7 +3568,7 @@ backtrace portably.")
       (origin
        (method git-fetch)
        (uri (git-reference
       (origin
        (method git-fetch)
        (uri (git-reference
-             (url "https://github.com/jdz/rfc2388.git")
+             (url "https://github.com/jdz/rfc2388")
              (commit commit)))
        (file-name (git-file-name "rfc2388" version))
        (sha256
              (commit commit)))
        (file-name (git-file-name "rfc2388" version))
        (sha256
@@ -3609,6 +3610,12 @@ RFC 1321 by R. Rivest, published April 1992.")
 (define-public cl-md5
   (sbcl-package->cl-source-package sbcl-md5))
 
 (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"))
 (define-public sbcl-cl+ssl
   (let ((commit "701e645081e6533a3f0f0b3ac86389d6f506c4b5")
         (revision "1"))
@@ -3619,7 +3626,7 @@ RFC 1321 by R. Rivest, published April 1992.")
        (origin
          (method git-fetch)
          (uri (git-reference
        (origin
          (method git-fetch)
          (uri (git-reference
-               (url "https://github.com/cl-plus-ssl/cl-plus-ssl.git")
+               (url "https://github.com/cl-plus-ssl/cl-plus-ssl")
                (commit commit)))
          (file-name (git-file-name "cl+ssl" version))
          (sha256
                (commit commit)))
          (file-name (git-file-name "cl+ssl" version))
          (sha256
@@ -3728,7 +3735,7 @@ encoding table that uses only URI-compatible characters.")
      (origin
        (method git-fetch)
        (uri (git-reference
      (origin
        (method git-fetch)
        (uri (git-reference
-              (url "https://github.com/edicl/chunga.git")
+              (url "https://github.com/edicl/chunga")
               (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
               (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
@@ -3757,7 +3764,7 @@ defined in RFC 2616.")
        (origin
          (method git-fetch)
          (uri (git-reference
        (origin
          (method git-fetch)
          (uri (git-reference
-               (url "https://github.com/edicl/cl-who.git")
+               (url "https://github.com/edicl/cl-who")
                (commit commit)))
          (file-name (git-file-name name version))
          (sha256
                (commit commit)))
          (file-name (git-file-name name version))
          (sha256
@@ -3789,7 +3796,7 @@ as good or bad as the next one.")
        (origin
          (method git-fetch)
          (uri (git-reference
        (origin
          (method git-fetch)
          (uri (git-reference
-               (url "https://github.com/froydnj/chipz.git")
+               (url "https://github.com/froydnj/chipz")
                (commit commit)))
          (file-name (git-file-name name version))
          (sha256
                (commit commit)))
          (file-name (git-file-name name version))
          (sha256
@@ -3821,7 +3828,7 @@ the format used by the popular compression tool bzip2.")
      (origin
        (method git-fetch)
        (uri (git-reference
      (origin
        (method git-fetch)
        (uri (git-reference
-             (url "https://github.com/edicl/drakma.git")
+             (url "https://github.com/edicl/drakma")
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
@@ -3861,7 +3868,7 @@ sockets, SSL, continuable uploads, file uploads, cookies, and more.")
      (origin
        (method git-fetch)
        (uri (git-reference
      (origin
        (method git-fetch)
        (uri (git-reference
-             (url "https://github.com/edicl/hunchentoot.git")
+             (url "https://github.com/edicl/hunchentoot")
              (commit (string-append "v" version))))
        (file-name (git-file-name "hunchentoot" version))
        (sha256
              (commit (string-append "v" version))))
        (file-name (git-file-name "hunchentoot" version))
        (sha256
@@ -3901,7 +3908,7 @@ connections (keep-alive), and SSL.")
      (origin
        (method git-fetch)
        (uri (git-reference
      (origin
        (method git-fetch)
        (uri (git-reference
-             (url "https://github.com/m2ym/trivial-types.git")
+             (url "https://github.com/m2ym/trivial-types")
              (commit "ee869f2b7504d8aa9a74403641a5b42b16f47d88")))
        (file-name (git-file-name name version))
        (sha256
              (commit "ee869f2b7504d8aa9a74403641a5b42b16f47d88")))
        (file-name (git-file-name name version))
        (sha256
@@ -3925,7 +3932,7 @@ PROPER-LIST, ASSOCIATION-LIST, PROPERTY-LIST and TUPLE.")
      (origin
        (method git-fetch)
        (uri (git-reference
      (origin
        (method git-fetch)
        (uri (git-reference
-             (url "https://github.com/m2ym/cl-syntax.git")
+             (url "https://github.com/m2ym/cl-syntax")
              (commit "03f0c329bbd55b8622c37161e6278366525e2ccc")))
        (file-name (git-file-name "cl-syntax" version))
        (sha256
              (commit "03f0c329bbd55b8622c37161e6278366525e2ccc")))
        (file-name (git-file-name "cl-syntax" version))
        (sha256
@@ -3955,7 +3962,7 @@ PROPER-LIST, ASSOCIATION-LIST, PROPERTY-LIST and TUPLE.")
        (origin
          (method git-fetch)
          (uri (git-reference
        (origin
          (method git-fetch)
          (uri (git-reference
-               (url "https://github.com/m2ym/cl-annot.git")
+               (url "https://github.com/m2ym/cl-annot")
                (commit commit)))
          (file-name (git-file-name name version))
          (sha256
                (commit commit)))
          (file-name (git-file-name name version))
          (sha256
@@ -4088,7 +4095,7 @@ addition, removal, and random selection.")
        (origin
          (method git-fetch)
          (uri (git-reference
        (origin
          (method git-fetch)
          (uri (git-reference
-               (url "https://github.com/fukamachi/quri.git")
+               (url "https://github.com/fukamachi/quri")
                (commit commit)))
          (file-name (git-file-name name version))
          (sha256
                (commit commit)))
          (file-name (git-file-name name version))
          (sha256
@@ -4124,7 +4131,7 @@ Lisp. It is intended to be a replacement of PURI.")
       (origin
        (method git-fetch)
        (uri (git-reference
       (origin
        (method git-fetch)
        (uri (git-reference
-             (url "https://github.com/fukamachi/myway.git")
+             (url "https://github.com/fukamachi/myway")
              (commit commit)))
        (file-name (git-file-name "myway" version))
        (sha256
              (commit commit)))
        (file-name (git-file-name "myway" version))
        (sha256
@@ -4267,7 +4274,7 @@ Lisp.")
      (origin
        (method git-fetch)
        (uri (git-reference
      (origin
        (method git-fetch)
        (uri (git-reference
-             (url "https://github.com/sionescu/static-vectors.git")
+             (url "https://github.com/sionescu/static-vectors")
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
@@ -4301,7 +4308,7 @@ memory.")
       (origin
        (method git-fetch)
        (uri (git-reference
       (origin
        (method git-fetch)
        (uri (git-reference
-             (url "https://github.com/wlbr/cl-marshal.git")
+             (url "https://github.com/wlbr/cl-marshal")
              (commit commit)))
        (file-name (git-file-name name version))
        (sha256
              (commit commit)))
        (file-name (git-file-name name version))
        (sha256
@@ -4328,7 +4335,7 @@ Only minimal changes required to make your CLOS objects serializable.")
        (origin
          (method git-fetch)
          (uri (git-reference
        (origin
          (method git-fetch)
          (uri (git-reference
-               (url "https://github.com/rpav/CheckL.git")
+               (url "https://github.com/rpav/CheckL")
                (commit commit)))
          (file-name (git-file-name name version))
          (sha256
                (commit commit)))
          (file-name (git-file-name name version))
          (sha256
@@ -4366,7 +4373,7 @@ against the last run.")
       (origin
        (method git-fetch)
        (uri (git-reference
       (origin
        (method git-fetch)
        (uri (git-reference
-             (url "https://github.com/rpav/fast-io.git")
+             (url "https://github.com/rpav/fast-io")
              (commit commit)))
        (file-name (git-file-name name version))
        (sha256
              (commit commit)))
        (file-name (git-file-name name version))
        (sha256
@@ -4405,7 +4412,7 @@ streams (though primarily the former, while wrapping the latter).")
       (origin
        (method git-fetch)
        (uri (git-reference
       (origin
        (method git-fetch)
        (uri (git-reference
-             (url "https://github.com/Rudolph-Miller/jonathan.git")
+             (url "https://github.com/Rudolph-Miller/jonathan")
              (commit commit)))
        (file-name (git-file-name name version))
        (sha256
              (commit commit)))
        (file-name (git-file-name name version))
        (sha256
@@ -4517,7 +4524,7 @@ reset to 0 and you're able to read it again.")
       (origin
        (method git-fetch)
        (uri (git-reference
       (origin
        (method git-fetch)
        (uri (git-reference
-             (url "https://github.com/fukamachi/lack.git")
+             (url "https://github.com/fukamachi/lack")
              (commit commit)))
        (file-name (git-file-name "lack-request" version))
        (sha256
              (commit commit)))
        (file-name (git-file-name "lack-request" version))
        (sha256
@@ -4558,7 +4565,7 @@ performance and simplicity in mind.")
       (origin
        (method git-fetch)
        (uri (git-reference
       (origin
        (method git-fetch)
        (uri (git-reference
-             (url "https://github.com/dlowe-net/local-time.git")
+             (url "https://github.com/dlowe-net/local-time")
              (commit commit)))
        (file-name (git-file-name name version))
        (sha256
              (commit commit)))
        (file-name (git-file-name name version))
        (sha256
@@ -4593,7 +4600,7 @@ Long Painful History of Time\".")
       (origin
        (method git-fetch)
        (uri (git-reference
       (origin
        (method git-fetch)
        (uri (git-reference
-             (url "https://github.com/fukamachi/lack.git")
+             (url "https://github.com/fukamachi/lack")
              (commit commit)))
        (file-name (git-file-name name version))
        (sha256
              (commit commit)))
        (file-name (git-file-name name version))
        (sha256
@@ -4634,7 +4641,7 @@ performance and simplicity in mind.")
       (origin
        (method git-fetch)
        (uri (git-reference
       (origin
        (method git-fetch)
        (uri (git-reference
-             (url "https://github.com/fukamachi/lack.git")
+             (url "https://github.com/fukamachi/lack")
              (commit commit)))
        (file-name (git-file-name "lack-component" version))
        (sha256
              (commit commit)))
        (file-name (git-file-name "lack-component" version))
        (sha256
@@ -4670,7 +4677,7 @@ performance and simplicity in mind.")
       (origin
        (method git-fetch)
        (uri (git-reference
       (origin
        (method git-fetch)
        (uri (git-reference
-             (url "https://github.com/fukamachi/lack.git")
+             (url "https://github.com/fukamachi/lack")
              (commit commit)))
        (file-name (git-file-name "lack-util" version))
        (sha256
              (commit commit)))
        (file-name (git-file-name "lack-util" version))
        (sha256
@@ -4708,7 +4715,7 @@ performance and simplicity in mind.")
       (origin
        (method git-fetch)
        (uri (git-reference
       (origin
        (method git-fetch)
        (uri (git-reference
-             (url "https://github.com/fukamachi/lack.git")
+             (url "https://github.com/fukamachi/lack")
              (commit commit)))
        (file-name (git-file-name "lack-middleware-backtrace" version))
        (sha256
              (commit commit)))
        (file-name (git-file-name "lack-middleware-backtrace" version))
        (sha256
@@ -4744,7 +4751,7 @@ performance and simplicity in mind.")
        (origin
          (method git-fetch)
          (uri (git-reference
        (origin
          (method git-fetch)
          (uri (git-reference
-               (url "https://github.com/Shinmera/trivial-mimes.git")
+               (url "https://github.com/Shinmera/trivial-mimes")
                (commit commit)))
          (file-name (git-file-name name version))
          (sha256
                (commit commit)))
          (file-name (git-file-name name version))
          (sha256
@@ -4791,7 +4798,7 @@ mime-type of a file.")
       (origin
        (method git-fetch)
        (uri (git-reference
       (origin
        (method git-fetch)
        (uri (git-reference
-             (url "https://github.com/fukamachi/lack.git")
+             (url "https://github.com/fukamachi/lack")
              (commit commit)))
        (file-name (git-file-name "lack-middleware-static" version))
        (sha256
              (commit commit)))
        (file-name (git-file-name "lack-middleware-static" version))
        (sha256
@@ -4831,7 +4838,7 @@ performance and simplicity in mind.")
       (origin
        (method git-fetch)
        (uri (git-reference
       (origin
        (method git-fetch)
        (uri (git-reference
-             (url "https://github.com/fukamachi/lack.git")
+             (url "https://github.com/fukamachi/lack")
              (commit commit)))
        (file-name (git-file-name "lack" version))
        (sha256
              (commit commit)))
        (file-name (git-file-name "lack" version))
        (sha256
@@ -4868,7 +4875,7 @@ performance and simplicity in mind.")
        (origin
          (method git-fetch)
          (uri (git-reference
        (origin
          (method git-fetch)
          (uri (git-reference
-               (url "https://github.com/fukamachi/ningle.git")
+               (url "https://github.com/fukamachi/ningle")
                (commit commit)))
          (file-name (git-file-name name version))
          (sha256
                (commit commit)))
          (file-name (git-file-name name version))
          (sha256
@@ -4921,36 +4928,118 @@ performance and simplicity in mind.")
 (define-public cl-ningle
   (sbcl-package->cl-source-package sbcl-ningle))
 
 (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
         (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
        (method git-fetch)
        (uri (git-reference
-             (url "https://github.com/fukamachi/clack.git")
-             (commit commit)))
+             (url "https://github.com/fukamachi/clack")
+             (commit clack-commit)))
        (file-name (git-file-name name version))
        (sha256
         (base32 "1ymzs6qyrwhlj6cgqsnpyn6g5cbp7a3s1vgxwna20y2q7y4iacy0"))))
        (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.")
 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 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"))
 (define-public sbcl-log4cl
   (let ((commit "611e094458504b938d49de904eab141285328c7c")
         (revision "1"))
@@ -5027,7 +5116,7 @@ port within a range.")
        (origin
          (method git-fetch)
          (uri (git-reference
        (origin
          (method git-fetch)
          (uri (git-reference
-               (url "https://github.com/tgutu/clunit.git")
+               (url "https://github.com/tgutu/clunit")
                (commit commit)))
          (file-name (git-file-name name version))
          (sha256
                (commit commit)))
          (file-name (git-file-name name version))
          (sha256
@@ -5060,7 +5149,7 @@ experience.")
        (origin
          (method git-fetch)
          (uri (git-reference
        (origin
          (method git-fetch)
          (uri (git-reference
-               (url "https://github.com/bendudson/py4cl.git")
+               (url "https://github.com/bendudson/py4cl")
                (commit commit)))
          (file-name (git-file-name name version))
          (sha256
                (commit commit)))
          (file-name (git-file-name name version))
          (sha256
@@ -5159,7 +5248,7 @@ high-level way.  This library provides such operators.")
        (origin
          (method git-fetch)
          (uri (git-reference
        (origin
          (method git-fetch)
          (uri (git-reference
-               (url "https://github.com/mcandre/cl-quickcheck.git")
+               (url "https://github.com/mcandre/cl-quickcheck")
                (commit commit)))
          (file-name (git-file-name name version))
          (sha256
                (commit commit)))
          (file-name (git-file-name name version))
          (sha256
@@ -5190,7 +5279,7 @@ high-level way.  This library provides such operators.")
        (origin
          (method git-fetch)
          (uri (git-reference
        (origin
          (method git-fetch)
          (uri (git-reference
-               (url "https://github.com/snmsts/burgled-batteries3.git")
+               (url "https://github.com/snmsts/burgled-batteries3")
                (commit commit)))
          (file-name (git-file-name name version))
          (sha256
                (commit commit)))
          (file-name (git-file-name name version))
          (sha256
@@ -5255,7 +5344,7 @@ CPython implementation of Python) and Common Lisp.")
        (origin
          (method git-fetch)
          (uri (git-reference
        (origin
          (method git-fetch)
          (uri (git-reference
-               (url "https://github.com/gwkkwg/metabang-bind.git")
+               (url "https://github.com/gwkkwg/metabang-bind")
                (commit commit)))
          (file-name (git-file-name name version))
          (sha256
                (commit commit)))
          (file-name (git-file-name name version))
          (sha256
@@ -6551,8 +6640,8 @@ number of other open source projects.
   (sbcl-package->ecl-package sbcl-s-sysdeps))
 
 (define-public sbcl-cl-prevalence
   (sbcl-package->ecl-package sbcl-s-sysdeps))
 
 (define-public sbcl-cl-prevalence
-  (let ((commit "da3ed6c4594b1c2fca90c178c1993973c4bf16c9")
-        (revision "2"))
+  (let ((commit "1e5f030d94237b33d20947a2f6c194abedb10727")
+        (revision "3"))
     (package
       (name "sbcl-cl-prevalence")
       (build-system asdf-build-system/sbcl)
     (package
       (name "sbcl-cl-prevalence")
       (build-system asdf-build-system/sbcl)
@@ -6567,10 +6656,12 @@ number of other open source projects.
          (file-name (git-file-name name version))
          (sha256
           (base32
          (file-name (git-file-name name version))
          (sha256
           (base32
-           "0bq905hv1626dl6b7s0zn4lbdh608g1pxaljl1fda6pwp9hmj95a"))))
+           "13yb8lv2aap5wvqa6hw7ms31xnax58f4m2nxifkssrzkb2w2qf29"))))
       (inputs
        `(("s-sysdeps" ,sbcl-s-sysdeps)
          ("s-xml" ,sbcl-s-xml)))
       (inputs
        `(("s-sysdeps" ,sbcl-s-sysdeps)
          ("s-xml" ,sbcl-s-xml)))
+      (native-inputs
+       `(("fiveam" ,sbcl-fiveam)))
       (synopsis "Implementation of object prevalence for Common Lisp")
       (description "This Common Lisp library implements object prevalence (see
 @url{https://en.wikipedia.org/wiki/System_prevalence}).  It allows
       (synopsis "Implementation of object prevalence for Common Lisp")
       (description "This Common Lisp library implements object prevalence (see
 @url{https://en.wikipedia.org/wiki/System_prevalence}).  It allows
@@ -6632,7 +6723,7 @@ programming style and the efficiency of an iterative programming style.")
        (origin
          (method git-fetch)
          (uri (git-reference
        (origin
          (method git-fetch)
          (uri (git-reference
-               (url "https://github.com/jwiegley/periods.git")
+               (url "https://github.com/jwiegley/periods")
                (commit commit)))
          (file-name (git-file-name name version))
          (sha256
                (commit commit)))
          (file-name (git-file-name name version))
          (sha256
@@ -6685,7 +6776,7 @@ providing functions compatible with the series Common Lisp library.")))
        (origin
          (method git-fetch)
          (uri (git-reference
        (origin
          (method git-fetch)
          (uri (git-reference
-               (url "https://github.com/gwkkwg/metatilities-base.git")
+               (url "https://github.com/gwkkwg/metatilities-base")
                (commit commit)))
          (file-name (git-file-name name version))
          (sha256
                (commit commit)))
          (file-name (git-file-name name version))
          (sha256
@@ -6717,7 +6808,7 @@ which implements a set of utilities.")
        (origin
          (method git-fetch)
          (uri (git-reference
        (origin
          (method git-fetch)
          (uri (git-reference
-               (url "https://github.com/gwkkwg/cl-containers.git")
+               (url "https://github.com/gwkkwg/cl-containers")
                (commit commit)))
          (file-name (git-file-name name version))
          (sha256
                (commit commit)))
          (file-name (git-file-name name version))
          (sha256
@@ -6806,7 +6897,7 @@ on the XPTest package by Craig Brozensky and the JUnit package by Kent Beck.")
        (origin
          (method git-fetch)
          (uri (git-reference
        (origin
          (method git-fetch)
          (uri (git-reference
-               (url "https://github.com/jwiegley/cambl.git")
+               (url "https://github.com/jwiegley/cambl")
                (commit commit)))
          (file-name (git-file-name name version))
          (sha256
                (commit commit)))
          (file-name (git-file-name name version))
          (sha256
@@ -6864,7 +6955,7 @@ purpose of financial calculations."))))
        (origin
          (method git-fetch)
          (uri (git-reference
        (origin
          (method git-fetch)
          (uri (git-reference
-               (url "https://github.com/ledger/cl-ledger.git")
+               (url "https://github.com/ledger/cl-ledger")
                (commit commit)))
          (file-name (git-file-name name version))
          (sha256
                (commit commit)))
          (file-name (git-file-name name version))
          (sha256
@@ -6909,7 +7000,7 @@ system.")
        (origin
          (method git-fetch)
          (uri (git-reference
        (origin
          (method git-fetch)
          (uri (git-reference
-               (url "https://github.com/glv2/bst.git")
+               (url "https://github.com/glv2/bst")
                (commit commit)))
          (file-name (git-file-name name version))
          (sha256
                (commit commit)))
          (file-name (git-file-name name version))
          (sha256
@@ -6940,7 +7031,7 @@ can contain any kind of values.")
      (origin
        (method git-fetch)
        (uri (git-reference
      (origin
        (method git-fetch)
        (uri (git-reference
-             (url "https://github.com/glv2/cl-octet-streams.git")
+             (url "https://github.com/glv2/cl-octet-streams")
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
@@ -6975,7 +7066,7 @@ cl-plumbing libraries.")
        (origin
          (method git-fetch)
          (uri (git-reference
        (origin
          (method git-fetch)
          (uri (git-reference
-               (url "https://github.com/glv2/cl-lzlib.git")
+               (url "https://github.com/glv2/cl-lzlib")
                (commit commit)))
          (file-name (git-file-name name version))
          (sha256
                (commit commit)))
          (file-name (git-file-name name version))
          (sha256
@@ -7020,7 +7111,7 @@ compression/decompression using bindings to the lzlib C library.")
        (origin
          (method git-fetch)
          (uri (git-reference
        (origin
          (method git-fetch)
          (uri (git-reference
-               (url "https://github.com/zkat/chanl.git")
+               (url "https://github.com/zkat/chanl")
                (commit commit)))
          (file-name (git-file-name name version))
          (sha256
                (commit commit)))
          (file-name (git-file-name name version))
          (sha256
@@ -7055,7 +7146,7 @@ threads.")
        (origin
          (method git-fetch)
          (uri (git-reference
        (origin
          (method git-fetch)
          (uri (git-reference
-               (url "https://github.com/skypher/cl-store.git")
+               (url "https://github.com/skypher/cl-store")
                (commit commit)))
          (file-name (git-file-name name version))
          (sha256
                (commit commit)))
          (file-name (git-file-name name version))
          (sha256
@@ -7269,8 +7360,8 @@ implementation specific equivalent.")
   (sbcl-package->ecl-package sbcl-trivial-macroexpand-all))
 
 (define-public sbcl-serapeum
   (sbcl-package->ecl-package sbcl-trivial-macroexpand-all))
 
 (define-public sbcl-serapeum
-  (let ((commit "64f0c4a161bbbda7c275012ca1415b4293b9e169")
-        (revision "1"))
+  (let ((commit "a2ca90cbdcb9f76c2822286110c7abe9ba5b76c2")
+        (revision "2"))
     (package
       (name "sbcl-serapeum")
       (version (git-version "0.0.0" revision commit))
     (package
       (name "sbcl-serapeum")
       (version (git-version "0.0.0" revision commit))
@@ -7284,7 +7375,7 @@ implementation specific equivalent.")
          (file-name (git-file-name name version))
          (sha256
           (base32
          (file-name (git-file-name name version))
          (sha256
           (base32
-           "0djnj0py8hdjnk5j6shjq2kbmyxqd5sw79cilcfmpfz4dzjdgkx9"))))
+           "1lrk2kf7qh5g6f8xvyg8wf89frzb5mw6m1jzgy46jy744f459i8q"))))
       (build-system asdf-build-system/sbcl)
       (inputs
        `(("alexandria" ,sbcl-alexandria)
       (build-system asdf-build-system/sbcl)
       (inputs
        `(("alexandria" ,sbcl-alexandria)
@@ -7364,7 +7455,7 @@ Clojure, as well as several expansions on the idea.")
        (origin
          (method git-fetch)
          (uri (git-reference
        (origin
          (method git-fetch)
          (uri (git-reference
-               (url "https://github.com/glv2/simple-parallel-tasks.git")
+               (url "https://github.com/glv2/simple-parallel-tasks")
                (commit commit)))
          (file-name (git-file-name name version))
          (sha256
                (commit commit)))
          (file-name (git-file-name name version))
          (sha256
@@ -7428,7 +7519,7 @@ binary heap and a Fibonacci heap) as well as an efficient priority queue.")
          (method git-fetch)
          (uri
           (git-reference
          (method git-fetch)
          (uri
           (git-reference
-           (url "https://github.com/eschulte/curry-compose-reader-macros.git")
+           (url "https://github.com/eschulte/curry-compose-reader-macros")
            (commit commit)))
          (file-name (git-file-name name version))
          (sha256
            (commit commit)))
          (file-name (git-file-name name version))
          (sha256
@@ -7459,7 +7550,7 @@ of function partial application and composition.")
      (origin
        (method git-fetch)
        (uri (git-reference
      (origin
        (method git-fetch)
        (uri (git-reference
-             (url "https://github.com/phmarek/yason.git")
+             (url "https://github.com/phmarek/yason")
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
@@ -7536,7 +7627,7 @@ interactive development.")
          (method git-fetch)
          (uri
           (git-reference
          (method git-fetch)
          (uri
           (git-reference
-           (url "https://github.com/eschulte/graph.git")
+           (url "https://github.com/eschulte/graph")
            (commit commit)))
          (file-name (git-file-name name version))
          (sha256
            (commit commit)))
          (file-name (git-file-name name version))
          (sha256
@@ -7639,7 +7730,7 @@ results.")
          (method git-fetch)
          (uri
           (git-reference
          (method git-fetch)
          (uri
           (git-reference
-           (url "https://github.com/Shinmera/documentation-utils.git")
+           (url "https://github.com/Shinmera/documentation-utils")
            (commit commit)))
          (file-name (git-file-name name version))
          (sha256
            (commit commit)))
          (file-name (git-file-name name version))
          (sha256
@@ -7977,7 +8068,7 @@ intending to program in Lisp.")
        (origin
          (method git-fetch)
          (uri (git-reference
        (origin
          (method git-fetch)
          (uri (git-reference
-               (url "https://github.com/edicl/cl-interpol.git")
+               (url "https://github.com/edicl/cl-interpol")
                (commit commit)))
          (file-name (git-file-name name version))
          (sha256
                (commit commit)))
          (file-name (git-file-name name version))
          (sha256
@@ -8017,7 +8108,7 @@ doesn't support them.")
        (origin
          (method git-fetch)
          (uri (git-reference
        (origin
          (method git-fetch)
          (uri (git-reference
-               (url "https://github.com/AccelerationNet/symbol-munger.git")
+               (url "https://github.com/AccelerationNet/symbol-munger")
                (commit commit)))
          (file-name (git-file-name name version))
          (sha256
                (commit commit)))
          (file-name (git-file-name name version))
          (sha256
@@ -8056,7 +8147,7 @@ and camel-case rules.")
        (origin
          (method git-fetch)
          (uri (git-reference
        (origin
          (method git-fetch)
          (uri (git-reference
-               (url "https://github.com/AccelerationNet/lisp-unit2.git")
+               (url "https://github.com/AccelerationNet/lisp-unit2")
                (commit commit)))
          (file-name (git-file-name name version))
          (sha256
                (commit commit)))
          (file-name (git-file-name name version))
          (sha256
@@ -8089,7 +8180,7 @@ by Chris Riesbeck.")
        (origin
          (method git-fetch)
          (uri (git-reference
        (origin
          (method git-fetch)
          (uri (git-reference
-               (url "https://github.com/AccelerationNet/symbol-munger.git")
+               (url "https://github.com/AccelerationNet/symbol-munger")
                (commit commit)))
          (file-name (git-file-name name version))
          (sha256
                (commit commit)))
          (file-name (git-file-name name version))
          (sha256
@@ -8145,7 +8236,7 @@ and camel-case rules.")
        (origin
          (method git-fetch)
          (uri (git-reference
        (origin
          (method git-fetch)
          (uri (git-reference
-               (url "https://github.com/AccelerationNet/cl-csv.git")
+               (url "https://github.com/AccelerationNet/cl-csv")
                (commit commit)))
          (file-name (git-file-name name version))
          (sha256
                (commit commit)))
          (file-name (git-file-name name version))
          (sha256
@@ -8184,7 +8275,7 @@ from/to strings, streams and files.")
        (origin
          (method git-fetch)
          (uri (git-reference
        (origin
          (method git-fetch)
          (uri (git-reference
-               (url "https://github.com/sellout/external-program.git")
+               (url "https://github.com/sellout/external-program")
                (commit commit)))
          (file-name (git-file-name name version))
          (sha256
                (commit commit)))
          (file-name (git-file-name name version))
          (sha256
@@ -8220,7 +8311,7 @@ sacrificing much in the way of power.")
       (origin
        (method git-fetch)
        (uri (git-reference
       (origin
        (method git-fetch)
        (uri (git-reference
-             (url "https://github.com/ghollisjr/cl-ana.git")
+             (url "https://github.com/ghollisjr/cl-ana")
              (commit commit)))
        (file-name (git-file-name name version))
        (sha256
              (commit commit)))
        (file-name (git-file-name name version))
        (sha256
@@ -9301,7 +9392,7 @@ visualization.")
       (source (origin
                 (method git-fetch)
                 (uri (git-reference
       (source (origin
                 (method git-fetch)
                 (uri (git-reference
-                      (url "https://github.com/sharplispers/archive.git")
+                      (url "https://github.com/sharplispers/archive")
                       (commit commit)))
                 (file-name (git-file-name name version))
                 (sha256
                       (commit commit)))
                 (file-name (git-file-name name version))
                 (sha256
@@ -9469,7 +9560,7 @@ transforming Common Lisp code to continuation passing style.")
        (origin
          (method git-fetch)
          (uri (git-reference
        (origin
          (method git-fetch)
          (uri (git-reference
-               (url "https://github.com/takagi/cl-coroutine.git")
+               (url "https://github.com/takagi/cl-coroutine")
                (commit commit)))
          (file-name (git-file-name name version))
          (sha256
                (commit commit)))
          (file-name (git-file-name name version))
          (sha256
@@ -9516,7 +9607,7 @@ continuations of the @code{cl-cont} library.")
        (origin
          (method git-fetch)
          (uri (git-reference
        (origin
          (method git-fetch)
          (uri (git-reference
-               (url "https://github.com/orthecreedence/vom.git")
+               (url "https://github.com/orthecreedence/vom")
                (commit commit)))
          (file-name (git-file-name name version))
          (sha256
                (commit commit)))
          (file-name (git-file-name name version))
          (sha256
@@ -9547,7 +9638,7 @@ has a small codebase that's easy to understand and use.")
        (origin
          (method git-fetch)
          (uri (git-reference
        (origin
          (method git-fetch)
          (uri (git-reference
-               (url "https://github.com/orthecreedence/cl-libuv.git")
+               (url "https://github.com/orthecreedence/cl-libuv")
                (commit commit)))
          (file-name (git-file-name name version))
          (sha256
                (commit commit)))
          (file-name (git-file-name name version))
          (sha256
@@ -9597,7 +9688,7 @@ has a small codebase that's easy to understand and use.")
        (origin
          (method git-fetch)
          (uri (git-reference
        (origin
          (method git-fetch)
          (uri (git-reference
-               (url "https://github.com/orthecreedence/cl-async.git")
+               (url "https://github.com/orthecreedence/cl-async")
                (commit commit)))
          (file-name (git-file-name name version))
          (sha256
                (commit commit)))
          (file-name (git-file-name name version))
          (sha256
@@ -9725,7 +9816,7 @@ Common Lisp.  It uses the libuv library as backend.")
        (origin
          (method git-fetch)
          (uri (git-reference
        (origin
          (method git-fetch)
          (uri (git-reference
-               (url "https://github.com/orthecreedence/blackbird.git")
+               (url "https://github.com/orthecreedence/blackbird")
                (commit commit)))
          (file-name (git-file-name name version))
          (sha256
                (commit commit)))
          (file-name (git-file-name name version))
          (sha256
@@ -9760,7 +9851,7 @@ the successor to the now-deprecated cl-async-future project.")
        (origin
          (method git-fetch)
          (uri (git-reference
        (origin
          (method git-fetch)
          (uri (git-reference
-               (url "https://github.com/orthecreedence/cl-async-future.git")
+               (url "https://github.com/orthecreedence/cl-async-future")
                (commit commit)))
          (file-name (git-file-name name version))
          (sha256
                (commit commit)))
          (file-name (git-file-name name version))
          (sha256
@@ -9795,7 +9886,7 @@ to cl-async.")
        (origin
          (method git-fetch)
          (uri (git-reference
        (origin
          (method git-fetch)
          (uri (git-reference
-               (url "https://github.com/thezerobit/green-threads.git")
+               (url "https://github.com/thezerobit/green-threads")
                (commit commit)))
          (file-name (git-file-name name version))
          (sha256
                (commit commit)))
          (file-name (git-file-name name version))
          (sha256
@@ -9843,7 +9934,7 @@ possible.")
        (origin
          (method git-fetch)
          (uri (git-reference
        (origin
          (method git-fetch)
          (uri (git-reference
-               (url "https://github.com/hargettp/cl-base32.git")
+               (url "https://github.com/hargettp/cl-base32")
                (commit commit)))
          (file-name (git-file-name name version))
          (sha256
                (commit commit)))
          (file-name (git-file-name name version))
          (sha256
@@ -9874,7 +9965,7 @@ defined in RFC4648.")
        (origin
          (method git-fetch)
          (uri (git-reference
        (origin
          (method git-fetch)
          (uri (git-reference
-               (url "https://github.com/glv2/cl-z85.git")
+               (url "https://github.com/glv2/cl-z85")
                (commit commit)))
          (file-name (git-file-name name version))
          (sha256
                (commit commit)))
          (file-name (git-file-name name version))
          (sha256
@@ -9905,7 +9996,7 @@ ZeroMQ.")
      (origin
        (method git-fetch)
        (uri (git-reference
      (origin
        (method git-fetch)
        (uri (git-reference
-             (url "https://github.com/herth/ltk.git")
+             (url "https://github.com/herth/ltk")
              (commit version)))
        (file-name (git-file-name name version))
        (sha256
              (commit version)))
        (file-name (git-file-name name version))
        (sha256
@@ -9991,7 +10082,7 @@ from the one running the Lisp program by using a TCP connection.")))
        (origin
          (method git-fetch)
          (uri (git-reference
        (origin
          (method git-fetch)
          (uri (git-reference
-               (url "https://github.com/djr7C4/cl-lex.git")
+               (url "https://github.com/djr7C4/cl-lex")
                (commit commit)))
          (file-name (git-file-name name version))
          (sha256
                (commit commit)))
          (file-name (git-file-name name version))
          (sha256
@@ -10093,7 +10184,7 @@ the library does not depend on X11).
        (origin
          (method git-fetch)
          (uri (git-reference
        (origin
          (method git-fetch)
          (uri (git-reference
-               (url "https://github.com/sharplispers/cl-jpeg.git")
+               (url "https://github.com/sharplispers/cl-jpeg")
                (commit commit)))
          (file-name (git-file-name name version))
          (sha256
                (commit commit)))
          (file-name (git-file-name name version))
          (sha256
@@ -10173,7 +10264,7 @@ ones.")
      (origin
        (method git-fetch)
        (uri (git-reference
      (origin
        (method git-fetch)
        (uri (git-reference
-             (url "https://github.com/xach/salza2.git")
+             (url "https://github.com/xach/salza2")
              (commit (string-append "release-" version))))
        (file-name (git-file-name name version))
        (sha256
              (commit (string-append "release-" version))))
        (file-name (git-file-name name version))
        (sha256
@@ -10203,7 +10294,7 @@ respectively.")
        (origin
          (method git-fetch)
          (uri (git-reference
        (origin
          (method git-fetch)
          (uri (git-reference
-               (url "https://github.com/Ramarren/png-read.git")
+               (url "https://github.com/Ramarren/png-read")
                (commit commit)))
          (file-name (git-file-name name version))
          (sha256
                (commit commit)))
          (file-name (git-file-name name version))
          (sha256
@@ -10232,7 +10323,7 @@ respectively.")
      (origin
        (method git-fetch)
        (uri (git-reference
      (origin
        (method git-fetch)
        (uri (git-reference
-             (url "https://github.com/xach/zpng.git")
+             (url "https://github.com/xach/zpng")
              (commit (string-append "release-" version))))
        (file-name (git-file-name name version))
        (sha256
              (commit (string-append "release-" version))))
        (file-name (git-file-name name version))
        (sha256
@@ -10259,7 +10350,7 @@ respectively.")
      (origin
        (method git-fetch)
        (uri (git-reference
      (origin
        (method git-fetch)
        (uri (git-reference
-             (url "https://github.com/jnjcc/cl-qrencode.git")
+             (url "https://github.com/jnjcc/cl-qrencode")
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
@@ -10292,7 +10383,7 @@ them as PNG files.")
        (origin
          (method git-fetch)
          (uri (git-reference
        (origin
          (method git-fetch)
          (uri (git-reference
-               (url "https://github.com/hdfgroup/hdf5-cffi.git")
+               (url "https://github.com/hdfgroup/hdf5-cffi")
                (commit commit)))
          (file-name (git-file-name name version))
          (sha256
                (commit commit)))
          (file-name (git-file-name name version))
          (sha256
@@ -10353,7 +10444,7 @@ them as PNG files.")
      (origin
        (method git-fetch)
        (uri (git-reference
      (origin
        (method git-fetch)
        (uri (git-reference
-             (url "https://github.com/lvaruzza/cl-randist.git")
+             (url "https://github.com/lvaruzza/cl-randist")
              (commit "f088a54b540a7adefab7c04094a6103f9edda3d0")))
        (file-name (git-file-name name version))
        (sha256
              (commit "f088a54b540a7adefab7c04094a6103f9edda3d0")))
        (file-name (git-file-name name version))
        (sha256
@@ -10385,7 +10476,7 @@ generation functions from the GSL library.")
      (origin
        (method git-fetch)
        (uri (git-reference
      (origin
        (method git-fetch)
        (uri (git-reference
-             (url "https://github.com/Shinmera/float-features.git")
+             (url "https://github.com/Shinmera/float-features")
              (commit "d3ef60181635b0849aa28cfc238053b7ca4644b0")))
        (file-name (git-file-name name version))
        (sha256
              (commit "d3ef60181635b0849aa28cfc238053b7ca4644b0")))
        (file-name (git-file-name name version))
        (sha256
@@ -10419,7 +10510,7 @@ covered by the Common Lisp standard.")
      (origin
        (method git-fetch)
        (uri (git-reference
      (origin
        (method git-fetch)
        (uri (git-reference
-             (url "https://github.com/AccelerationNet/function-cache.git")
+             (url "https://github.com/AccelerationNet/function-cache")
              (commit "6a5ada401e57da2c8abf046f582029926e61fce8")))
        (file-name (git-file-name name version))
        (sha256
              (commit "6a5ada401e57da2c8abf046f582029926e61fce8")))
        (file-name (git-file-name name version))
        (sha256
@@ -10461,7 +10552,7 @@ caching based on arguments (an expanded form of memoization).")
        (origin
          (method git-fetch)
          (uri (git-reference
        (origin
          (method git-fetch)
          (uri (git-reference
-               (url "https://github.com/guicho271828/type-r.git")
+               (url "https://github.com/guicho271828/type-r")
                (commit commit)))
          (file-name (git-file-name name version))
          (sha256
                (commit commit)))
          (file-name (git-file-name name version))
          (sha256
@@ -10498,7 +10589,7 @@ the elements in compound type specifier, e.g. @code{dimensions} in
        (origin
          (method git-fetch)
          (uri (git-reference
        (origin
          (method git-fetch)
          (uri (git-reference
-               (url "https://github.com/guicho271828/trivialib.type-unify.git")
+               (url "https://github.com/guicho271828/trivialib.type-unify")
                (commit commit)))
          (file-name (git-file-name name version))
          (sha256
                (commit commit)))
          (file-name (git-file-name name version))
          (sha256
@@ -10537,7 +10628,7 @@ correctly.")
        (origin
          (method git-fetch)
          (uri (git-reference
        (origin
          (method git-fetch)
          (uri (git-reference
-               (url "https://github.com/numcl/specialized-function.git")
+               (url "https://github.com/numcl/specialized-function")
                (commit commit)))
          (file-name (git-file-name name version))
          (sha256
                (commit commit)))
          (file-name (git-file-name name version))
          (sha256
@@ -10579,7 +10670,7 @@ code.  The main target of this macro is speed.")
        (origin
          (method git-fetch)
          (uri (git-reference
        (origin
          (method git-fetch)
          (uri (git-reference
-               (url "https://github.com/numcl/constantfold.git")
+               (url "https://github.com/numcl/constantfold")
                (commit commit)))
          (file-name (git-file-name name version))
          (sha256
                (commit commit)))
          (file-name (git-file-name name version))
          (sha256
@@ -10617,7 +10708,7 @@ additional form that is considered as a candidate for a constant.")
        (origin
          (method git-fetch)
          (uri (git-reference
        (origin
          (method git-fetch)
          (uri (git-reference
-               (url "https://github.com/numcl/gtype.git")
+               (url "https://github.com/numcl/gtype")
                (commit commit)))
          (file-name (git-file-name name version))
          (sha256
                (commit commit)))
          (file-name (git-file-name name version))
          (sha256
@@ -10657,7 +10748,7 @@ type correctness in Common Lisp.  It is based on CLtL2 extensions.")
        (origin
          (method git-fetch)
          (uri (git-reference
        (origin
          (method git-fetch)
          (uri (git-reference
-               (url "https://github.com/numcl/numcl.git")
+               (url "https://github.com/numcl/numcl")
                (commit commit)))
          (file-name (git-file-name name version))
          (sha256
                (commit commit)))
          (file-name (git-file-name name version))
          (sha256
@@ -10704,7 +10795,7 @@ and usefulness, not speed.  Track the progress at
        (origin
          (method git-fetch)
          (uri (git-reference
        (origin
          (method git-fetch)
          (uri (git-reference
-               (url "https://github.com/orivej/pzmq.git")
+               (url "https://github.com/orivej/pzmq")
                (commit commit)))
          (file-name (git-file-name name version))
          (sha256
                (commit commit)))
          (file-name (git-file-name name version))
          (sha256
@@ -10751,7 +10842,7 @@ lightweight messaging kernel.")
          (method git-fetch)
          (uri
           (git-reference
          (method git-fetch)
          (uri
           (git-reference
-           (url "https://github.com/Shinmera/clss.git")
+           (url "https://github.com/Shinmera/clss")
            (commit commit)))
          (sha256
           (base32 "0la4dbcda78x29szanylccrsljqrn9d1mhh569sqkyp44ni5fv91"))
            (commit commit)))
          (sha256
           (base32 "0la4dbcda78x29szanylccrsljqrn9d1mhh569sqkyp44ni5fv91"))
@@ -10783,7 +10874,7 @@ selectors.  It makes use of the Plump-DOM and is used by lQuery.")
          (method git-fetch)
          (uri
           (git-reference
          (method git-fetch)
          (uri
           (git-reference
-           (url "https://github.com/Shinmera/lquery.git")
+           (url "https://github.com/Shinmera/lquery")
            (commit commit)))
          (sha256
           (base32 "0520mcpxc2d6fdm8z61arpgd2z38kan7cf06qs373n5r64rakz6w"))
            (commit commit)))
          (sha256
           (base32 "0520mcpxc2d6fdm8z61arpgd2z38kan7cf06qs373n5r64rakz6w"))
@@ -10822,7 +10913,7 @@ approach to templating.")
        (origin
          (method git-fetch)
          (uri (git-reference
        (origin
          (method git-fetch)
          (uri (git-reference
-               (url "https://github.com/hackinghat/cl-mysql.git")
+               (url "https://github.com/hackinghat/cl-mysql")
                (commit commit)))
          (file-name (git-file-name name version))
          (sha256
                (commit commit)))
          (file-name (git-file-name name version))
          (sha256
@@ -10864,7 +10955,7 @@ approach to templating.")
        (origin
          (method git-fetch)
          (uri (git-reference
        (origin
          (method git-fetch)
          (uri (git-reference
-               (url "https://github.com/marijnh/Postmodern.git")
+               (url "https://github.com/marijnh/Postmodern")
                (commit commit)))
          (file-name (git-file-name name version))
          (sha256
                (commit commit)))
          (file-name (git-file-name name version))
          (sha256
@@ -10906,6 +10997,19 @@ a PostgreSQL server over a socket.")))
 (define-public cl-postgres
   (sbcl-package->cl-source-package sbcl-cl-postgres))
 
 (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)
 (define-public sbcl-simple-date-postgres-glue
   (package
     (inherit sbcl-simple-date)
@@ -10976,31 +11080,35 @@ foreign libraries.
   (sbcl-package->cl-source-package sbcl-postmodern))
 
 (define-public sbcl-dbi
   (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.git")
-             (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.")
 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))
 
 (define-public cl-dbi
   (sbcl-package->cl-source-package sbcl-dbi))
@@ -11504,7 +11612,7 @@ accompaniment to the standard ANSI facilities.")
        (origin
          (method git-fetch)
          (uri (git-reference
        (origin
          (method git-fetch)
          (uri (git-reference
-               (url "https://github.com/laynor/clx-xembed.git")
+               (url "https://github.com/laynor/clx-xembed")
                (commit commit)))
          (file-name (git-file-name name version))
          (sha256
                (commit commit)))
          (file-name (git-file-name name version))
          (sha256
@@ -11567,7 +11675,7 @@ Streams in ICDE’05.")
      (origin
        (method git-fetch)
        (uri (git-reference
      (origin
        (method git-fetch)
        (uri (git-reference
-             (url "https://github.com/deadtrickster/prometheus.cl.git")
+             (url "https://github.com/deadtrickster/prometheus.cl")
              (commit "7352b92296996ff383503e19bdd3bcea30409a15")))
        (file-name (git-file-name name version))
        (sha256
              (commit "7352b92296996ff383503e19bdd3bcea30409a15")))
        (file-name (git-file-name name version))
        (sha256
@@ -11679,7 +11787,7 @@ Streams in ICDE’05.")
        (origin
          (method git-fetch)
          (uri (git-reference
        (origin
          (method git-fetch)
          (uri (git-reference
-               (url "https://github.com/dardoria/uuid.git")
+               (url "https://github.com/dardoria/uuid")
                (commit commit)))
          (file-name (git-file-name name version))
          (sha256
                (commit commit)))
          (file-name (git-file-name name version))
          (sha256
@@ -11711,7 +11819,7 @@ Streams in ICDE’05.")
        (origin
          (method git-fetch)
          (uri (git-reference
        (origin
          (method git-fetch)
          (uri (git-reference
-               (url "https://github.com/Shinmera/dissect.git")
+               (url "https://github.com/Shinmera/dissect")
                (commit commit)))
          (file-name (git-file-name name version))
          (sha256
                (commit commit)))
          (file-name (git-file-name name version))
          (sha256
@@ -11745,7 +11853,7 @@ and active restarts.")
      (origin
        (method git-fetch)
        (uri (git-reference
      (origin
        (method git-fetch)
        (uri (git-reference
-             (url "https://github.com/fukamachi/rove.git")
+             (url "https://github.com/fukamachi/rove")
              (commit "f3695db08203bf26f3b861dc22ac0f4257d3ec21")))
        (file-name (git-file-name name version))
        (sha256
              (commit "f3695db08203bf26f3b861dc22ac0f4257d3ec21")))
        (file-name (git-file-name name version))
        (sha256
@@ -11779,7 +11887,7 @@ This is intended to be a successor of Prove.")
        (origin
          (method git-fetch)
          (uri (git-reference
        (origin
          (method git-fetch)
          (uri (git-reference
-               (url "https://github.com/death/exponential-backoff.git")
+               (url "https://github.com/death/exponential-backoff")
                (commit commit)))
          (file-name (git-file-name name version))
          (sha256
                (commit commit)))
          (file-name (git-file-name name version))
          (sha256
@@ -11809,7 +11917,7 @@ learn about each of the parameters.")
        (origin
          (method git-fetch)
          (uri (git-reference
        (origin
          (method git-fetch)
          (uri (git-reference
-               (url "https://github.com/fukamachi/sxql.git")
+               (url "https://github.com/fukamachi/sxql")
                (commit commit)))
          (file-name (git-file-name name version))
          (sha256
                (commit commit)))
          (file-name (git-file-name name version))
          (sha256
@@ -11848,7 +11956,7 @@ learn about each of the parameters.")
        (origin
          (method git-fetch)
          (uri (git-reference
        (origin
          (method git-fetch)
          (uri (git-reference
-               (url "https://github.com/lmj/1am.git")
+               (url "https://github.com/lmj/1am")
                (commit commit)))
          (file-name (git-file-name name version))
          (sha256
                (commit commit)))
          (file-name (git-file-name name version))
          (sha256
@@ -11878,7 +11986,7 @@ learn about each of the parameters.")
        (origin
          (method git-fetch)
          (uri (git-reference
        (origin
          (method git-fetch)
          (uri (git-reference
-               (url "https://github.com/telephil/cl-ascii-table.git")
+               (url "https://github.com/telephil/cl-ascii-table")
                (commit commit)))
          (file-name (git-file-name name version))
          (sha256
                (commit commit)))
          (file-name (git-file-name name version))
          (sha256
@@ -11905,7 +12013,7 @@ tables.")
      (origin
        (method git-fetch)
        (uri (git-reference
      (origin
        (method git-fetch)
        (uri (git-reference
-             (url "https://github.com/SahilKang/cl-rdkafka.git")
+             (url "https://github.com/SahilKang/cl-rdkafka")
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
@@ -12132,7 +12240,7 @@ implementations of those protocols for different purposes.")
        (origin
          (method git-fetch)
          (uri (git-reference
        (origin
          (method git-fetch)
          (uri (git-reference
-               (url "https://github.com/masatoi/cl-libsvm-format.git")
+               (url "https://github.com/masatoi/cl-libsvm-format")
                (commit commit)))
          (file-name (git-file-name name version))
          (sha256
                (commit commit)))
          (file-name (git-file-name name version))
          (sha256
@@ -12167,7 +12275,7 @@ format.")
        (origin
          (method git-fetch)
          (uri (git-reference
        (origin
          (method git-fetch)
          (uri (git-reference
-               (url "https://github.com/masatoi/cl-online-learning.git")
+               (url "https://github.com/masatoi/cl-online-learning")
                (commit commit)))
          (file-name (git-file-name name version))
          (sha256
                (commit commit)))
          (file-name (git-file-name name version))
          (sha256
@@ -12197,8 +12305,8 @@ online linear classification written in Common Lisp.")
   (sbcl-package->ecl-package sbcl-cl-online-learning))
 
 (define-public sbcl-cl-random-forest
   (sbcl-package->ecl-package sbcl-cl-online-learning))
 
 (define-public sbcl-cl-random-forest
-  (let ((commit "85fbdd4596d40e824f70f1b7cf239cf544e49d51")
-        (revision "0"))
+  (let ((commit "fedb36ce99bb6f4d7e3a7dd6d8b058f331308f91")
+        (revision "1"))
     (package
       (name "sbcl-cl-random-forest")
       (version (git-version "0.1" revision commit))
     (package
       (name "sbcl-cl-random-forest")
       (version (git-version "0.1" revision commit))
@@ -12206,12 +12314,12 @@ online linear classification written in Common Lisp.")
        (origin
          (method git-fetch)
          (uri (git-reference
        (origin
          (method git-fetch)
          (uri (git-reference
-               (url "https://github.com/masatoi/cl-random-forest.git")
+               (url "https://github.com/masatoi/cl-random-forest")
                (commit commit)))
          (file-name (git-file-name name version))
          (sha256
           (base32
                (commit commit)))
          (file-name (git-file-name name version))
          (sha256
           (base32
-           "097xv60i1ndz68sg9p4pc7c5gvyp9i1xgw966b4wwfq3x6hbz421"))))
+           "0wqh4dxy5hrvm14jgyfypwhdw35f24rsksid4blz5a6l2z16rlmq"))))
       (build-system asdf-build-system/sbcl)
       (native-inputs
        `(("prove" ,sbcl-prove)
       (build-system asdf-build-system/sbcl)
       (native-inputs
        `(("prove" ,sbcl-prove)
@@ -12237,3 +12345,1779 @@ includes an implementation of Global Refinement of Random Forest.")
 
 (define-public ecl-cl-random-forest
   (sbcl-package->ecl-package sbcl-cl-random-forest))
 
 (define-public ecl-cl-random-forest
   (sbcl-package->ecl-package sbcl-cl-random-forest))
+
+(define-public sbcl-bordeaux-fft
+  (let ((commit "4a1f5600cae59bdabcb32de4ee2d7d73a9450d6e")
+        (revision "0"))
+    (package
+      (name "sbcl-bordeaux-fft")
+      (version (git-version "1.0.1" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/ahefner/bordeaux-fft")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32 "0j584w6kq2k6r8lp2i14f9605rxhp3r15s33xs08iz1pndn6iwqf"))))
+      (build-system asdf-build-system/sbcl)
+      (home-page "http://vintage-digital.com/hefner/software/bordeaux-fft/")
+      (synopsis "Fast Fourier Transform for Common Lisp")
+      (description
+       "The Bordeaux-FFT library provides a reasonably efficient implementation
+of the Fast Fourier Transform and its inverse for complex-valued inputs, in
+portable Common Lisp.")
+      (license license:gpl2+))))
+
+(define-public cl-bordeaux-fft
+  (sbcl-package->cl-source-package sbcl-bordeaux-fft))
+
+(define-public ecl-bordeaux-fft
+  (sbcl-package->ecl-package sbcl-bordeaux-fft))
+
+(define-public sbcl-napa-fft3
+  (let ((commit "f2d9614c7167da327c9ceebefb04ff6eae2d2236")
+        (revision "0"))
+    (package
+      (name "sbcl-napa-fft3")
+      (version (git-version "0.0.1" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/pkhuong/Napa-FFT3")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32 "1hxjf599xgwm28gbryy7q96j9ys6hfszmv0qxpr5698hxnhknscp"))))
+      (build-system asdf-build-system/sbcl)
+      (home-page "https://github.com/pkhuong/Napa-FFT3")
+      (synopsis "Fast Fourier Transform routines in Common Lisp")
+      (description
+       "Napa-FFT3 provides Discrete Fourier Transform (DFT) routines, but also
+buildings blocks to express common operations that involve DFTs: filtering,
+convolutions, etc.")
+      (license license:bsd-3))))
+
+(define-public cl-napa-fft3
+  (sbcl-package->cl-source-package sbcl-napa-fft3))
+
+(define-public sbcl-cl-tga
+  (let ((commit "4dc2f7b8a259b9360862306640a07a23d4afaacc")
+        (revision "0"))
+    (package
+      (name "sbcl-cl-tga")
+      (version (git-version "0.0.0" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/fisxoj/cl-tga")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32 "03k3npmn0xd3fd2m7vwxph82av2xrfb150imqrinlzqmzvz1v1br"))))
+      (build-system asdf-build-system/sbcl)
+      (home-page "https://github.com/fisxoj/cl-tga")
+      (synopsis "TGA file loader for Common Lisp")
+      (description
+       "Cl-tga was written to facilitate loading @emph{.tga} files into OpenGL
+programs.  It's a very simple library, and, at the moment, only supports
+non-RLE encoded forms of the files.")
+      (license license:expat))))
+
+(define-public cl-tga
+  (sbcl-package->cl-source-package sbcl-cl-tga))
+
+(define-public ecl-cl-tga
+  (sbcl-package->ecl-package sbcl-cl-tga))
+
+(define-public sbcl-com.gigamonkeys.binary-data
+  (let ((commit "22e908976d7f3e2318b7168909f911b4a00963ee")
+        (revision "0"))
+    (package
+      (name "sbcl-com.gigamonkeys.binary-data")
+      (version (git-version "0.0.0" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/gigamonkey/monkeylib-binary-data")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32 "072v417vmcnvmyh8ddq9vmwwrizm7zwz9dpzi14qy9nsw8q649zw"))))
+      (build-system asdf-build-system/sbcl)
+      (inputs
+       `(("alexandria" ,sbcl-alexandria)))
+      (home-page "https://github.com/gigamonkey/monkeylib-binary-data")
+      (synopsis "Common Lisp library for reading and writing binary data")
+      (description
+       "This a Common Lisp library for reading and writing binary data.  It is
+based on code from chapter 24 of the book @emph{Practical Common Lisp}.")
+      (license license:bsd-3))))
+
+(define-public cl-com.gigamonkeys.binary-data
+  (sbcl-package->cl-source-package sbcl-com.gigamonkeys.binary-data))
+
+(define-public ecl-com.gigamonkeys.binary-data
+  (sbcl-package->ecl-package sbcl-com.gigamonkeys.binary-data))
+
+(define-public sbcl-deflate
+  (package
+    (name "sbcl-deflate")
+    (version "1.0.3")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/pmai/Deflate")
+             (commit (string-append "release-" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "1jpdjnxh6cw2d8hk70r2sxn92is52s9b855irvwkdd777fdciids"))))
+    (build-system asdf-build-system/sbcl)
+    (home-page "https://github.com/pmai/Deflate")
+    (synopsis "Native deflate decompression for Common Lisp")
+    (description
+     "This library is an implementation of Deflate (RFC 1951) decompression,
+with optional support for ZLIB-style (RFC 1950) and gzip-style (RFC 1952)
+wrappers of deflate streams.  It currently does not handle compression.")
+    (license license:expat)))
+
+(define-public cl-deflate
+  (sbcl-package->cl-source-package sbcl-deflate))
+
+(define-public ecl-deflate
+  (sbcl-package->ecl-package sbcl-deflate))
+
+(define-public sbcl-skippy
+  (let ((commit "e456210202ca702c792292c5060a264d45e47090")
+        (revision "0"))
+    (package
+      (name "sbcl-skippy")
+      (version (git-version "1.3.12" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/xach/skippy")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32 "1sxbn5nh24qpx9w64x8mhp259cxcl1x8p126wk3b91ijjsj7l5vj"))))
+      (build-system asdf-build-system/sbcl)
+      (home-page "https://xach.com/lisp/skippy/")
+      (synopsis "Common Lisp library for GIF images")
+      (description
+       "Skippy is a Common Lisp library to read and write GIF image files.")
+      (license license:bsd-2))))
+
+(define-public cl-skippy
+  (sbcl-package->cl-source-package sbcl-skippy))
+
+(define-public ecl-skippy
+  (sbcl-package->ecl-package sbcl-skippy))
+
+(define-public sbcl-cl-freetype2
+  (let ((commit "96058da730b4812df916c1f4ee18c99b3b15a3de")
+        (revision "0"))
+    (package
+      (name "sbcl-cl-freetype2")
+      (version (git-version "1.1" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/rpav/cl-freetype2")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32 "0f8darhairgxnb5bzqcny7nh7ss3471bdzix5rzcyiwdbr5kymjl"))))
+      (build-system asdf-build-system/sbcl)
+      (native-inputs
+       `(("fiveam" ,sbcl-fiveam)))
+      (inputs
+       `(("alexandria" ,sbcl-alexandria)
+         ("cffi" ,sbcl-cffi)
+         ("cffi-grovel" ,sbcl-cffi-grovel)
+         ("freetype" ,freetype)
+         ("trivial-garbage" ,sbcl-trivial-garbage)))
+      (arguments
+       `(#:phases
+         (modify-phases %standard-phases
+           (add-after 'unpack 'fix-paths
+             (lambda* (#:key inputs #:allow-other-keys)
+               (substitute* "src/ffi/ft2-lib.lisp"
+                 (("\"libfreetype\"")
+                  (string-append "\"" (assoc-ref inputs "freetype")
+                                 "/lib/libfreetype\"")))
+               (substitute* "src/ffi/grovel/grovel-freetype2.lisp"
+                 (("-I/usr/include/freetype")
+                  (string-append "-I" (assoc-ref inputs "freetype")
+                                 "/include/freetype")))
+               #t)))))
+      (home-page "https://github.com/rpav/cl-freetype2")
+      (synopsis "Common Lisp bindings for Freetype 2")
+      (description
+       "This is a general Freetype 2 wrapper for Common Lisp using CFFI.  It's
+geared toward both using Freetype directly by providing a simplified API, as
+well as providing access to the underlying C structures and functions for use
+with other libraries which may also use Freetype.")
+      (license license:bsd-3))))
+
+(define-public cl-freetype2
+  (sbcl-package->cl-source-package sbcl-cl-freetype2))
+
+(define-public ecl-cl-freetype2
+  (sbcl-package->ecl-package sbcl-cl-freetype2))
+
+(define-public sbcl-opticl-core
+  (let ((commit "b7cd13d26df6b824b216fbc360dc27bfadf04999")
+        (revision "0"))
+    (package
+      (name "sbcl-opticl-core")
+      (version (git-version "0.0.0" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/slyrus/opticl-core")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32 "0458bllabcdjghfrqx6aki49c9qmvfmkk8jl75cfpi7q0i12kh95"))))
+      (build-system asdf-build-system/sbcl)
+      (inputs
+       `(("alexandria" ,sbcl-alexandria)))
+      (home-page "https://github.com/slyrus/opticl-core")
+      (synopsis "Core classes and pixel access macros for Opticl")
+      (description
+       "This Common Lisp library contains the core classes and pixel access
+macros for the Opticl image processing library.")
+      (license license:bsd-2))))
+
+(define-public cl-opticl-core
+  (sbcl-package->cl-source-package sbcl-opticl-core))
+
+(define-public ecl-opticl-core
+  (sbcl-package->ecl-package sbcl-opticl-core))
+
+(define-public sbcl-retrospectiff
+  (let ((commit "c2a69d77d5010f8cdd9045b3e36a08a73da5d321")
+        (revision "0"))
+    (package
+      (name "sbcl-retrospectiff")
+      (version (git-version "0.2" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/slyrus/retrospectiff")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32 "0qsn9hpd8j2kp43dk05j8dczz9zppdff5rrclbp45n3ksk9inw8i"))))
+      (build-system asdf-build-system/sbcl)
+      (native-inputs
+       `(("fiveam" ,sbcl-fiveam)))
+      (inputs
+       `(("cl-jpeg" ,sbcl-cl-jpeg)
+         ("com.gigamonkeys.binary-data" ,sbcl-com.gigamonkeys.binary-data)
+         ("deflate" ,sbcl-deflate)
+         ("flexi-streams" ,sbcl-flexi-streams)
+         ("ieee-floats" ,sbcl-ieee-floats)
+         ("opticl-core" ,sbcl-opticl-core)))
+      (home-page "https://github.com/slyrus/retrospectiff")
+      (synopsis "Common Lisp library for TIFF images")
+      (description
+       "Retrospectiff is a common lisp library for reading and writing images
+in the TIFF (Tagged Image File Format) format.")
+      (license license:bsd-2))))
+
+(define-public cl-retrospectif
+  (sbcl-package->cl-source-package sbcl-retrospectiff))
+
+(define-public ecl-retrospectiff
+  (sbcl-package->ecl-package sbcl-retrospectiff))
+
+(define-public sbcl-mmap
+  (let ((commit "ba2e98c67e25f0fb8ff838238561120a23903ce7")
+        (revision "0"))
+    (package
+      (name "sbcl-mmap")
+      (version (git-version "1.0.0" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/Shinmera/mmap")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32 "0qd0xp20i1pcfn12kkapv9pirb6hd4ns7kz4zf1mmjwykpsln96q"))))
+      (build-system asdf-build-system/sbcl)
+      (native-inputs
+       `(("alexandria" ,sbcl-alexandria)
+         ("cffi" ,sbcl-cffi)
+         ("parachute" ,sbcl-parachute)
+         ("trivial-features" ,sbcl-trivial-features)))
+      (inputs
+       `(("cffi" ,sbcl-cffi)
+         ("documentation-utils" ,sbcl-documentation-utils)))
+      (home-page "https://shinmera.github.io/mmap/")
+      (synopsis "File memory mapping for Common Lisp")
+      (description
+       "This is a utility library providing access to the @emph{mmap} family of
+functions in a portable way.  It allows you to directly map a file into the
+address space of your process without having to manually read it into memory
+sequentially.  Typically this is much more efficient for files that are larger
+than a few Kb.")
+      (license license:zlib))))
+
+(define-public cl-mmap
+  (sbcl-package->cl-source-package sbcl-mmap))
+
+(define-public ecl-mmap
+  (sbcl-package->ecl-package sbcl-mmap))
+
+(define-public sbcl-3bz
+  (let ((commit "d6119083b5e0b0a6dd3abc2877936c51f3f3deed")
+        (revision "0"))
+    (package
+      (name "sbcl-3bz")
+      (version (git-version "0.0.0" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/3b/3bz")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32 "0fyxzyf2b6sc0w8d9g4nlva861565z6f3xszj0lw29x526dd9rhj"))))
+      (build-system asdf-build-system/sbcl)
+      (inputs
+       `(("alexandria" ,sbcl-alexandria)
+         ("babel" ,sbcl-babel)
+         ("cffi" ,sbcl-cffi)
+         ("mmap" ,sbcl-mmap)
+         ("nibbles" ,sbcl-nibbles)
+         ("trivial-features" ,sbcl-trivial-features)))
+      (arguments
+       ;; FIXME: Without the following line, the build fails (see issue 41437).
+       `(#:asd-system-name "3bz"))
+      (home-page "https://github.com/3b/3bz")
+      (synopsis "Deflate decompression for Common Lisp")
+      (description
+       "3bz is an implementation of Deflate decompression (RFC 1951) optionally
+with zlib (RFC 1950) or gzip (RFC 1952) wrappers, with support for reading from
+foreign pointers (for use with mmap and similar, etc), and from CL octet
+vectors and streams.")
+      (license license:expat))))
+
+(define-public cl-3bz
+  (sbcl-package->cl-source-package sbcl-3bz))
+
+(define-public ecl-3bz
+  (sbcl-package->ecl-package sbcl-3bz))
+
+(define-public sbcl-zpb-exif
+  (package
+    (name "sbcl-zpb-exif")
+    (version "1.2.4")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/xach/zpb-exif")
+             (commit (string-append "release-" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "15s227jhby55cisz14xafb0p1ws2jmrg2rrbbd00lrb97im84hy6"))))
+    (build-system asdf-build-system/sbcl)
+    (home-page "https://xach.com/lisp/zpb-exif/")
+    (synopsis "EXIF information extractor for Common Lisp")
+    (description
+     "This is a Common Lisp library to extract EXIF information from image
+files.")
+    (license license:bsd-2)))
+
+(define-public cl-zpb-exif
+  (sbcl-package->cl-source-package sbcl-zpb-exif))
+
+(define-public ecl-zpb-exif
+  (sbcl-package->ecl-package sbcl-zpb-exif))
+
+(define-public sbcl-pngload
+  (package
+    (name "sbcl-pngload")
+    (version "2.0.0")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/bufferswap/pngload")
+             (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "1ix8dd0fxlf8xm0bszh1s7sx83hn0vqq8b8c9gkrd5m310w8mpvh"))))
+    (build-system asdf-build-system/sbcl)
+    (inputs
+     `(("3bz" ,sbcl-3bz)
+       ("alexandria" ,sbcl-alexandria)
+       ("cffi" ,sbcl-cffi)
+       ("mmap" ,sbcl-mmap)
+       ("parse-float" ,sbcl-parse-float)
+       ("static-vectors" ,sbcl-static-vectors)
+       ("swap-bytes" ,sbcl-swap-bytes)
+       ("zpb-exif" ,sbcl-zpb-exif)))
+    (arguments
+     ;; Test suite disabled because of a dependency cycle.
+     ;; pngload tests depend on opticl which depends on pngload.
+     '(#:tests? #f))
+    (home-page "https://github.com/bufferswap/pngload")
+    (synopsis "PNG image decoder for Common Lisp")
+    (description
+     "This is a Common Lisp library to load images in the PNG image format,
+both from files on disk, or streams in memory.")
+    (license license:expat)))
+
+(define-public cl-pngload
+  (sbcl-package->cl-source-package sbcl-pngload))
+
+(define-public ecl-pngload
+  (sbcl-package->ecl-package sbcl-pngload))
+
+(define-public sbcl-opticl
+  (let ((commit "e8684416eca2e78e82a7b436d436ef2ea24c019d")
+        (revision "0"))
+    (package
+      (name "sbcl-opticl")
+      (version (git-version "0.0.0" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/slyrus/opticl")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32 "03rirnnhhisjbimlmpi725h1d3x0cfv00r57988am873dyzawmm1"))))
+      (build-system asdf-build-system/sbcl)
+      (native-inputs
+       `(("fiveam" ,sbcl-fiveam)))
+      (inputs
+       `(("alexandria" ,sbcl-alexandria)
+         ("cl-jpeg" ,sbcl-cl-jpeg)
+         ("cl-tga" ,sbcl-cl-tga)
+         ("png-read" ,sbcl-png-read)
+         ("pngload" ,sbcl-pngload)
+         ("retrospectiff" ,sbcl-retrospectiff)
+         ("skippy" ,sbcl-skippy)
+         ("zpng" ,sbcl-zpng)))
+      (home-page "https://github.com/slyrus/opticl")
+      (synopsis "Image processing library for Common Lisp")
+      (description
+       "Opticl is a Common Lisp library for representing, processing, loading,
+and saving 2-dimensional pixel-based images.")
+      (license license:bsd-2))))
+
+(define-public cl-opticl
+  (sbcl-package->cl-source-package sbcl-opticl))
+
+(define-public sbcl-clim-lisp
+  (let ((commit "27b4d7a667c9b3faa74cabcb57706b888314fff7")
+        (revision "0"))
+    (package
+      (name "sbcl-clim-lisp")
+      (version (git-version "0.9.7" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/mcclim/mcclim")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32 "0jijfgkwas6xnpp5wiii6slcx9pgsalngacb8zm29x6pamx2193h"))))
+      (build-system asdf-build-system/sbcl)
+      (inputs
+       `(("alexandria" ,sbcl-alexandria)
+         ("closer-mop" ,sbcl-closer-mop)
+         ("log4cl" ,sbcl-log4cl)
+         ("trivial-gray-streams" ,sbcl-trivial-gray-streams)))
+      (home-page "https://common-lisp.net/project/mcclim/")
+      (synopsis "Common Lisp GUI toolkit")
+      (description
+       "McCLIM is an implementation of the @emph{Common Lisp Interface Manager
+specification}, a toolkit for writing GUIs in Common Lisp.")
+      (license license:lgpl2.1+))))
+
+(define-public sbcl-clim-basic
+  (package
+    (inherit sbcl-clim-lisp)
+    (name "sbcl-clim-basic")
+    (inputs
+     `(("alexandria" ,sbcl-alexandria)
+       ("babel" ,sbcl-babel)
+       ("bordeaux-threads" ,sbcl-bordeaux-threads)
+       ("clim-lisp" ,sbcl-clim-lisp)
+       ("flexichain" ,sbcl-flexichain)
+       ("spatial-trees" ,sbcl-spatial-trees)
+       ("trivial-features" ,sbcl-trivial-features)
+       ("trivial-garbage" ,sbcl-trivial-garbage)))
+    (arguments
+     '(#:asd-file "Core/clim-basic/clim-basic.asd"))))
+
+(define-public sbcl-clim-core
+  (package
+    (inherit sbcl-clim-lisp)
+    (name "sbcl-clim-core")
+    (inputs
+     `(("clim-basic" ,sbcl-clim-basic)))
+    (arguments
+     '(#:asd-file "Core/clim-core/clim-core.asd"))))
+
+(define-public sbcl-esa-mcclim
+  (package
+    (inherit sbcl-clim-lisp)
+    (name "sbcl-esa-mcclim")
+    (inputs
+     `(("alexandria" ,sbcl-alexandria)
+       ("clim-core" ,sbcl-clim-core)))
+    (arguments
+     '(#:asd-file "Libraries/ESA/esa-mcclim.asd"))))
+
+(define-public sbcl-mcclim-fonts
+  (package
+    (inherit sbcl-clim-lisp)
+    (name "sbcl-mcclim-fonts")
+    (inputs
+     `(("clim-basic" ,sbcl-clim-basic)))
+    (arguments
+     '(#:asd-file "Extensions/fonts/mcclim-fonts.asd"))))
+
+(define-public sbcl-automaton
+  (package
+    (inherit sbcl-clim-lisp)
+    (name "sbcl-automaton")
+    (inputs
+     `())
+    (arguments
+     '(#:asd-file "Libraries/Drei/cl-automaton/automaton.asd"))))
+
+(define-public sbcl-persistent
+  (package
+    (inherit sbcl-clim-lisp)
+    (name "sbcl-persistent")
+    (inputs
+     `())
+    (arguments
+     '(#:asd-file "Libraries/Drei/Persistent/persistent.asd"))))
+
+(define-public sbcl-drei-mcclim
+  (package
+    (inherit sbcl-clim-lisp)
+    (name "sbcl-drei-mcclim")
+    (native-inputs
+     `(("fiveam" ,sbcl-fiveam)))
+    (inputs
+     `(("automaton" ,sbcl-automaton)
+       ("clim-core" ,sbcl-clim-core)
+       ("esa-mcclim" ,sbcl-esa-mcclim)
+       ("flexichain" ,sbcl-flexichain)
+       ("mcclim-fonts" ,sbcl-mcclim-fonts)
+       ("persistent" ,sbcl-persistent)
+       ("swank" ,cl-slime-swank)))
+    (arguments
+     '(#:asd-file "Libraries/Drei/drei-mcclim.asd"))))
+
+(define-public sbcl-clim
+  (package
+    (inherit sbcl-clim-lisp)
+    (name "sbcl-clim")
+    (inputs
+     `(("clim-core" ,sbcl-clim-core)
+       ("drei-mcclim" ,sbcl-drei-mcclim)
+       ("swank" ,cl-slime-swank))) ; For drei-mcclim
+    (arguments
+     '(#:asd-file "Core/clim/clim.asd"))))
+
+(define-public sbcl-mcclim-backend-common
+  (package
+    (inherit sbcl-clim-lisp)
+    (name "sbcl-mcclim-backend-common")
+    (native-inputs
+     `(("fiveam" ,sbcl-fiveam)))
+    (inputs
+     `(("clim" ,sbcl-clim)
+       ("swank" ,cl-slime-swank))) ; For drei-mcclim
+    (arguments
+     '(#:asd-file "Backends/common/mcclim-backend-common.asd"))))
+
+(define-public sbcl-mcclim-clx
+  (package
+    (inherit sbcl-clim-lisp)
+    (name "sbcl-mcclim-clx")
+    (inputs
+     `(("alexandria" ,sbcl-alexandria)
+       ("cl-unicode" ,sbcl-cl-unicode)
+       ("clx" ,sbcl-clx)
+       ("mcclim-backend-common" ,sbcl-mcclim-backend-common)
+       ("mcclim-fonts" ,sbcl-mcclim-fonts)
+       ("swank" ,cl-slime-swank))) ; For drei-mcclim
+    (arguments
+     '(#:asd-file "Backends/CLX/mcclim-clx.asd"))))
+
+(define-public sbcl-mcclim-fonts-truetype
+  (package
+    (inherit sbcl-clim-lisp)
+    (name "sbcl-mcclim-fonts-truetype")
+    (inputs
+     `(("alexandria" ,sbcl-alexandria)
+       ("cl-aa" ,sbcl-cl-aa)
+       ("cl-paths-ttf" ,sbcl-cl-paths-ttf)
+       ("cl-vectors" ,sbcl-cl-vectors)
+       ("clim-basic" ,sbcl-clim-basic)
+       ("font-dejavu" ,font-dejavu)
+       ("zpb-ttf" ,sbcl-zpb-ttf)))
+    (arguments
+     '(#:asd-file "Extensions/fonts/mcclim-fonts.asd"
+       #:asd-system-name "mcclim-fonts/truetype"
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'fix-paths
+           (lambda* (#:key inputs #:allow-other-keys)
+             ;; mcclim-truetype uses DejaVu as default font and
+             ;; sets the path at build time.
+             (substitute* "Extensions/fonts/fontconfig.lisp"
+               (("/usr/share/fonts/truetype/dejavu/")
+                (string-append (assoc-ref inputs "font-dejavu")
+                               "/share/fonts/truetype/")))
+             #t)))))))
+
+(define-public sbcl-mcclim-fonts-clx-truetype
+  (package
+    (inherit sbcl-clim-lisp)
+    (name "sbcl-mcclim-fonts-clx-truetype")
+    (inputs
+     `(("mcclim-clx" ,sbcl-mcclim-clx)
+       ("mcclim-fonts-truetype" ,sbcl-mcclim-fonts-truetype)
+       ("swank" ,cl-slime-swank))) ; For drei-mcclim
+    (arguments
+     '(#:asd-file "./Extensions/fonts/mcclim-fonts.asd"
+       #:asd-system-name "mcclim-fonts/clx-truetype"
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'fix-asd-system-names
+           (lambda _
+             (substitute* "Extensions/fonts/mcclim-fonts.asd"
+               ((":depends-on \\(#:mcclim-fonts/truetype")
+                ":depends-on (#:mcclim-fonts-truetype"))
+             #t)))))))
+
+(define-public sbcl-mcclim-clx-truetype
+  (package
+    (inherit sbcl-clim-lisp)
+    (name "sbcl-mcclim-clx-truetype")
+    (inputs
+     `(("mcclim-clx" ,sbcl-mcclim-clx)
+       ("mcclim-fonts-clx-truetype" ,sbcl-mcclim-fonts-clx-truetype)
+       ("swank" ,cl-slime-swank))) ; For drei-mcclim
+    (arguments
+     '(#:asd-file "Backends/CLX/mcclim-clx.asd"
+       #:asd-system-name "mcclim-clx/truetype"
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'fix-asd-system-names
+           (lambda _
+             (substitute* "Backends/CLX/mcclim-clx.asd"
+               (("mcclim-fonts/clx-truetype")
+                "mcclim-fonts-clx-truetype"))
+             #t)))))))
+
+(define-public sbcl-mcclim-fontconfig
+  (package
+    (inherit sbcl-clim-lisp)
+    (name "sbcl-mcclim-fontconfig")
+    (native-inputs
+     `(("pkg-config" ,pkg-config)))
+    (inputs
+     `(("alexandria" ,sbcl-alexandria)
+       ("cffi" ,sbcl-cffi)
+       ("cffi-grovel" ,sbcl-cffi-grovel)
+       ("fontconfig" ,fontconfig)))
+    (arguments
+     '(#:asd-file "Extensions/fontconfig/mcclim-fontconfig.asd"
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'fix-paths
+           (lambda* (#:key inputs #:allow-other-keys)
+             (substitute* "Extensions/fontconfig/src/functions.lisp"
+               (("libfontconfig\\.so")
+                (string-append (assoc-ref inputs "fontconfig")
+                               "/lib/libfontconfig.so")))
+             #t))
+         (add-after 'unpack 'fix-build
+           (lambda _
+             ;; The cffi-grovel system does not get loaded automatically,
+             ;; so we load it explicitly.
+             (substitute* "Extensions/fontconfig/mcclim-fontconfig.asd"
+               (("\\(asdf:defsystem #:mcclim-fontconfig" all)
+                (string-append "(asdf:load-system :cffi-grovel)\n" all)))
+             #t)))))))
+
+(define-public sbcl-mcclim-harfbuzz
+  (package
+    (inherit sbcl-clim-lisp)
+    (name "sbcl-mcclim-harfbuzz")
+    (native-inputs
+     `(("pkg-config" ,pkg-config)))
+    (inputs
+     `(("alexandria" ,sbcl-alexandria)
+       ("cffi" ,sbcl-cffi)
+       ("cffi-grovel" ,sbcl-cffi-grovel)
+       ("freetype" ,freetype)
+       ("harfbuzz" ,harfbuzz)
+       ("trivial-garbage" ,sbcl-trivial-garbage)))
+    (arguments
+     '(#:asd-file "Extensions/harfbuzz/mcclim-harfbuzz.asd"
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'fix-paths
+           (lambda* (#:key inputs #:allow-other-keys)
+             (substitute* "Extensions/harfbuzz/src/functions.lisp"
+               (("libharfbuzz\\.so")
+                (string-append (assoc-ref inputs "harfbuzz")
+                               "/lib/libharfbuzz.so")))
+             #t))
+         (add-after 'unpack 'fix-build
+           (lambda _
+             ;; The cffi-grovel system does not get loaded automatically,
+             ;; so we load it explicitly.
+             (substitute* "Extensions/harfbuzz/mcclim-harfbuzz.asd"
+               (("\\(asdf:defsystem #:mcclim-harfbuzz" all)
+                (string-append "(asdf:load-system :cffi-grovel)\n" all)))
+             #t)))))))
+
+(define-public sbcl-mcclim-fonts-clx-freetype
+  (package
+    (inherit sbcl-clim-lisp)
+    (name "sbcl-mcclim-fonts-clx-freetype")
+    (inputs
+     `(("cl-freetype2" ,sbcl-cl-freetype2)
+       ("mcclim-clx" ,sbcl-mcclim-clx)
+       ("mcclim-fontconfig" ,sbcl-mcclim-fontconfig)
+       ("mcclim-fonts" ,sbcl-mcclim-fonts)
+       ("mcclim-harfbuzz" ,sbcl-mcclim-harfbuzz)
+       ("swank" ,cl-slime-swank))) ; For drei-mcclim
+    (arguments
+     '(#:asd-file "Extensions/fonts/mcclim-fonts.asd"
+       #:asd-system-name "mcclim-fonts/clx-freetype"))))
+
+(define-public sbcl-mcclim-clx-freetype
+  (package
+    (inherit sbcl-clim-lisp)
+    (name "sbcl-mcclim-clx-freetype")
+    (inputs
+     `(("mcclim-clx" ,sbcl-mcclim-clx)
+       ("mcclim-fonts-clx-freetype" ,sbcl-mcclim-fonts-clx-freetype)
+       ("swank" ,cl-slime-swank))) ; For drei-mcclim
+    (arguments
+     '(#:asd-file "Backends/CLX/mcclim-clx.asd"
+       #:asd-system-name "mcclim-clx/freetype"
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'fix-asd-system-names
+           (lambda _
+             (substitute* "Backends/CLX/mcclim-clx.asd"
+               (("mcclim-fonts/clx-freetype")
+                "mcclim-fonts-clx-freetype"))
+             #t)))))))
+
+(define-public sbcl-mcclim-render
+  (package
+    (inherit sbcl-clim-lisp)
+    (name "sbcl-mcclim-render")
+    (inputs
+     `(("alexandria" ,sbcl-alexandria)
+       ("cl-vectors" ,sbcl-cl-vectors)
+       ("clim-basic" ,sbcl-clim-basic)
+       ("mcclim-backend-common" ,sbcl-mcclim-backend-common)
+       ("mcclim-fonts-truetype" ,sbcl-mcclim-fonts-truetype)
+       ("swank" ,cl-slime-swank))) ; For drei-mcclim
+    (arguments
+     '(#:asd-file "Extensions/render/mcclim-render.asd"
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'fix-asd-system-names
+           (lambda _
+             (substitute* "Extensions/render/mcclim-render.asd"
+               (("mcclim-fonts/truetype")
+                "mcclim-fonts-truetype"))
+             #t)))))))
+
+(define-public sbcl-mcclim-clx-fb
+  (package
+    (inherit sbcl-clim-lisp)
+    (name "sbcl-mcclim-clx-fb")
+    (inputs
+     `(("mcclim-backend-common" ,sbcl-mcclim-backend-common)
+       ("mcclim-clx" ,sbcl-mcclim-clx)
+       ("mcclim-render" ,sbcl-mcclim-render)
+       ("swank" ,cl-slime-swank))) ; For drei-mcclim
+    (arguments
+     '(#:asd-file "Backends/CLX-fb/mcclim-clx-fb.asd"))))
+
+(define-public sbcl-mcclim-null
+  (package
+    (inherit sbcl-clim-lisp)
+    (name "sbcl-mcclim-null")
+    (inputs
+     `(("clim" ,sbcl-clim)
+       ("swank" ,cl-slime-swank))) ; For drei-mcclim
+    (arguments
+     '(#:asd-file "Backends/Null/mcclim-null.asd"))))
+
+(define-public sbcl-clim-postscript-font
+  (package
+    (inherit sbcl-clim-lisp)
+    (name "sbcl-clim-postscript-font")
+    (inputs
+     `(("clim-basic" ,sbcl-clim-basic)
+       ("mcclim-backend-common" ,sbcl-mcclim-backend-common)
+       ("swank" ,cl-slime-swank))) ; For drei-mcclim
+    (arguments
+     '(#:asd-file "Backends/PostScript/clim-postscript-font.asd"))))
+
+(define-public sbcl-clim-postscript
+  (package
+    (inherit sbcl-clim-lisp)
+    (name "sbcl-clim-postscript")
+    (native-inputs
+     `(("fiveam" ,sbcl-fiveam)))
+    (inputs
+     `(("clim-basic" ,sbcl-clim-basic)
+       ("clim-postscript-font" ,sbcl-clim-postscript-font)
+       ("swank" ,cl-slime-swank))) ; For drei-mcclim
+    (arguments
+     '(#:asd-file "Backends/PostScript/clim-postscript.asd"
+       ;; Test suite disabled because of a dependency cycle.
+       ;; The tests depend on mcclim/test-util, which depends on mcclim,
+       ;; wich depends on mcclim/extensions, which depends on clim-postscript.
+       #:tests? #f))))
+
+(define-public sbcl-clim-pdf
+  (package
+    (inherit sbcl-clim-lisp)
+    (name "sbcl-clim-pdf")
+    (native-inputs
+     `(("fiveam" ,sbcl-fiveam)))
+    (inputs
+     `(("cl-pdf" ,sbcl-cl-pdf)
+       ("clim-basic" ,sbcl-clim-basic)
+       ("clim-postscript-font" ,sbcl-clim-postscript-font)
+       ("flexi-streams" ,sbcl-flexi-streams)
+       ("swank" ,cl-slime-swank))) ; For drei-mcclim
+    (arguments
+     '(#:asd-file "Backends/PDF/clim-pdf.asd"
+       ;; Test suite disabled because of a dependency cycle.
+       ;; The tests depend on mcclim/test-util, which depends on mcclim,
+       ;; wich depends on mcclim/extensions, which depends on clim-pdf.
+       #:tests? #f))))
+
+(define-public sbcl-mcclim-looks
+  (package
+    (inherit sbcl-clim-lisp)
+    (name "sbcl-mcclim-looks")
+    (inputs
+     `(("clim" ,sbcl-clim)
+       ("mcclim-clx" ,sbcl-mcclim-clx)
+       ("mcclim-clx-fb" ,sbcl-mcclim-clx-fb)
+       ("mcclim-clx-freetype" ,sbcl-mcclim-clx-freetype)
+       ("mcclim-clx-truetype" ,sbcl-mcclim-clx-truetype)
+       ("mcclim-null" ,sbcl-mcclim-null)
+       ("swank" ,cl-slime-swank))) ; For drei-mcclim
+    (arguments
+     '(#:asd-file "mcclim.asd"
+       #:asd-system-name "mcclim/looks"
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'fix-asd-system-names
+           (lambda _
+             (substitute* "mcclim.asd"
+               (("mcclim-clx/truetype")
+                "mcclim-clx-truetype")
+               (("mcclim-clx/freetype")
+                "mcclim-clx-freetype"))
+             #t)))))))
+
+(define-public sbcl-mcclim-franz
+  (package
+    (inherit sbcl-clim-lisp)
+    (name "sbcl-mcclim-franz")
+    (inputs
+     `(("clim" ,sbcl-clim)
+       ("swank" ,cl-slime-swank))) ; For drei-mcclim
+    (arguments
+     '(#:asd-file "Extensions/Franz/mcclim-franz.asd"))))
+
+(define-public sbcl-mcclim-bezier-core
+  (package
+    (inherit sbcl-clim-lisp)
+    (name "sbcl-mcclim-bezier-core")
+    (inputs
+     `(("clim" ,sbcl-clim)
+       ("clim-pdf" ,sbcl-clim-pdf)
+       ("clim-postscript" ,sbcl-clim-postscript)
+       ("mcclim-null" ,sbcl-mcclim-null)
+       ("mcclim-render" ,sbcl-mcclim-render)
+       ("swank" ,cl-slime-swank))) ; For drei-mcclim
+    (arguments
+     '(#:asd-file "Extensions/bezier/mcclim-bezier.asd"
+       #:asd-system-name "mcclim-bezier/core"))))
+
+(define-public sbcl-mcclim-bezier-clx
+  (package
+    (inherit sbcl-clim-lisp)
+    (name "sbcl-mcclim-bezier-clx")
+    (inputs
+     `(("clim" ,sbcl-clim)
+       ("mcclim-bezier/core" ,sbcl-mcclim-bezier-core)
+       ("mcclim-clx" ,sbcl-mcclim-clx)
+       ("swank" ,cl-slime-swank))) ; For drei-mcclim
+    (arguments
+     '(#:asd-file "Extensions/bezier/mcclim-bezier.asd"
+       #:asd-system-name "mcclim-bezier/clx"
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'fix-asd-system-names
+           (lambda _
+             (substitute* "Extensions/bezier/mcclim-bezier.asd"
+               (("mcclim-bezier/core\\)")
+                "mcclim-bezier-core)"))
+             #t)))))))
+
+(define-public sbcl-mcclim-bezier
+  (package
+    (inherit sbcl-clim-lisp)
+    (name "sbcl-mcclim-bezier")
+    (inputs
+     `(("mcclim-bezier/clx" ,sbcl-mcclim-bezier-clx)
+       ("mcclim-bezier/core" ,sbcl-mcclim-bezier-core)
+       ("swank" ,cl-slime-swank))) ; For drei-mcclim
+    (arguments
+     '(#:asd-file "Extensions/bezier/mcclim-bezier.asd"
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'fix-asd-system-names
+           (lambda _
+             (substitute* "Extensions/bezier/mcclim-bezier.asd"
+               (("\\(#:mcclim-bezier/core")
+                "(#:mcclim-bezier-core")
+               (("#:mcclim-bezier/clx\\)\\)")
+                "#:mcclim-bezier-clx))"))
+             #t)))))))
+
+(define-public sbcl-mcclim-bitmaps
+  (package
+    (inherit sbcl-clim-lisp)
+    (name "sbcl-mcclim-bitmaps")
+    (inputs
+     `(("clim-basic" ,sbcl-clim-basic)
+       ("opticl" ,sbcl-opticl)))
+    (arguments
+     '(#:asd-file "Extensions/bitmap-formats/mcclim-bitmaps.asd"))))
+
+(define-public sbcl-conditional-commands
+  (package
+    (inherit sbcl-clim-lisp)
+    (name "sbcl-conditional-commands")
+    (inputs
+     `(("clim-basic" ,sbcl-clim-basic)))
+    (arguments
+     '(#:asd-file "Extensions/conditional-commands/conditional-commands.asd"))))
+
+(define-public sbcl-mcclim-layouts-tab
+  (package
+    (inherit sbcl-clim-lisp)
+    (name "sbcl-mcclim-layouts-tab")
+    (inputs
+     `(("clim" ,sbcl-clim)
+       ("swank" ,cl-slime-swank))) ; For drei-mcclim
+    (arguments
+     '(#:asd-file "Extensions/layouts/mcclim-layouts.asd"
+       #:asd-system-name "mcclim-layouts/tab"))))
+
+(define-public sbcl-mcclim-extensions
+  (package
+    (inherit sbcl-clim-lisp)
+    (name "sbcl-mcclim-extensions")
+    (inputs
+     `(("clim-pdf" ,sbcl-clim-pdf)
+       ("clim-postscript" ,sbcl-clim-postscript)
+       ("conditional-commands" ,sbcl-conditional-commands)
+       ("mcclim-bezier" ,sbcl-mcclim-bezier)
+       ("mcclim-bitmaps" ,sbcl-mcclim-bitmaps)
+       ("mcclim-franz" ,sbcl-mcclim-franz)
+       ("mcclim-layouts-tab" ,sbcl-mcclim-layouts-tab)
+       ("swank" ,cl-slime-swank))) ; For drei-mcclim
+    (arguments
+     '(#:asd-file "mcclim.asd"
+       #:asd-system-name "mcclim/extensions"
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'fix-asd-system-names
+           (lambda _
+             (substitute* "mcclim.asd"
+               (("mcclim-layouts/tab")
+                "mcclim-layouts-tab"))
+             #t)))))))
+
+(define-public sbcl-mcclim
+  (package
+    (inherit sbcl-clim-lisp)
+    (name "sbcl-mcclim")
+    (native-inputs
+     `(("fiveam" ,sbcl-fiveam)))
+    (inputs
+     `(("mcclim-looks" ,sbcl-mcclim-looks)
+       ("mcclim-extensions" ,sbcl-mcclim-extensions)
+       ("swank" ,cl-slime-swank))) ; For drei-mcclim
+    (arguments
+     '(#:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'fix-asd-system-names
+           (lambda _
+             (substitute* "mcclim.asd"
+               ((":depends-on \\(\"mcclim/looks\" \"mcclim/extensions\"\\)")
+                ":depends-on (\"mcclim-looks\" \"mcclim-extensions\")"))
+             #t)))
+       ;; Test suite disabled because of a dependency cycle.
+       ;; The tests depend on mcclim/test-util, which depends on mcclim.
+       #:tests? #f))))
+
+(define-public cl-mcclim
+  (let ((base (sbcl-package->cl-source-package sbcl-clim-lisp)))
+    (package
+      (inherit base)
+      (name "cl-mcclim")
+      (native-inputs
+       `(("fiveam" ,cl-fiveam)
+         ("pkg-config" ,pkg-config)))
+      (inputs
+       `(("alexandria" ,cl-alexandria)
+         ("babel" ,cl-babel)
+         ("bordeaux-threads" ,cl-bordeaux-threads)
+         ("cffi" ,cl-cffi)
+         ("cl-aa" ,cl-aa)
+         ("cl-freetype2" ,cl-freetype2)
+         ("cl-paths-ttf" ,cl-paths-ttf)
+         ("cl-pdf" ,cl-pdf)
+         ("cl-unicode" ,cl-unicode)
+         ("cl-vectors" ,cl-vectors)
+         ("closer-mop" ,cl-closer-mop)
+         ("clx" ,cl-clx)
+         ("flexi-streams" ,cl-flexi-streams)
+         ("flexichain" ,cl-flexichain)
+         ("fontconfig" ,fontconfig)
+         ("freetype" ,freetype)
+         ("harfbuzz" ,harfbuzz)
+         ("log4cl" ,cl-log4cl)
+         ("opticl" ,cl-opticl)
+         ("spatial-trees" ,cl-spatial-trees)
+         ("trivial-features" ,cl-trivial-features)
+         ("trivial-garbage" ,cl-trivial-garbage)
+         ("trivial-gray-streams" ,cl-trivial-gray-streams)
+         ("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"))
+    (package
+      (name "sbcl-cl-inflector")
+      (version (git-version "0.2" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/AccelerationNet/cl-inflector")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32 "1xwwlhik1la4fp984qnx2dqq24v012qv4x0y49sngfpwg7n0ya7y"))))
+      (build-system asdf-build-system/sbcl)
+      (native-inputs
+       `(("lisp-unit2" ,sbcl-lisp-unit2)))
+      (inputs
+       `(("alexandria" ,sbcl-alexandria)
+         ("cl-ppcre" ,sbcl-cl-ppcre)))
+      (home-page "https://github.com/AccelerationNet/cl-inflector")
+      (synopsis "Library to pluralize/singularize English and Portuguese words")
+      (description
+       "This is a common lisp library to easily pluralize and singularize
+English and Portuguese words.  This is a port of the ruby ActiveSupport
+Inflector module.")
+      (license license:expat))))
+
+(define-public cl-inflector
+  (sbcl-package->cl-source-package sbcl-cl-inflector))
+
+(define-public ecl-cl-inflector
+  (sbcl-package->ecl-package sbcl-cl-inflector))
+
+(define-public sbcl-qbase64
+  (package
+    (name "sbcl-qbase64")
+    (version "0.3.0")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/chaitanyagupta/qbase64")
+             (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "1dir0s70ca3hagxv9x15zq4p4ajgl7jrcgqsza2n2y7iqbxh0dwi"))))
+    (build-system asdf-build-system/sbcl)
+    (inputs
+     `(("metabang-bind" ,sbcl-metabang-bind)
+       ("trivial-gray-streams" ,sbcl-trivial-gray-streams)))
+    (native-inputs
+     `(("fiveam" ,sbcl-fiveam)))
+    (home-page "https://github.com/chaitanyagupta/qbase64")
+    (synopsis "Base64 encoder and decoder for Common Lisp")
+    (description "@code{qbase64} provides a fast and flexible base64 encoder
+and decoder for Common Lisp.")
+    (license license:bsd-3)))
+
+(define-public cl-qbase64
+  (sbcl-package->cl-source-package sbcl-qbase64))
+
+(define-public ecl-qbase64
+  (sbcl-package->ecl-package sbcl-qbase64))
+
+(define-public sbcl-hu.dwim.common-lisp
+  (package
+    (name "sbcl-hu.dwim.common-lisp")
+    (version "2015-07-09")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append
+             "http://beta.quicklisp.org/archive/hu.dwim.common-lisp/"
+             version "/hu.dwim.common-lisp-"
+             (string-replace-substring version "-" "")
+             "-darcs.tgz"))
+       (sha256
+        (base32 "13cxrvh55rw080mvfir7s7k735l9rcfh3khxp97qfwd5rz0gadb9"))))
+    (build-system asdf-build-system/sbcl)
+    (native-inputs
+     `(("hu.dwim.asdf" ,sbcl-hu.dwim.asdf)))
+    (home-page "http://dwim.hu/")
+    (synopsis "Redefine some standard Common Lisp names")
+    (description "This library is a redefinition of the standard Common Lisp
+package that includes a number of renames and shadows. ")
+    (license license:public-domain)))
+
+(define-public cl-hu.dwim.common-lisp
+  (sbcl-package->cl-source-package sbcl-hu.dwim.common-lisp))
+
+(define-public ecl-hu.dwim.common-lisp
+  (sbcl-package->ecl-package sbcl-hu.dwim.common-lisp))
+
+(define-public sbcl-hu.dwim.common
+  (package
+    (name "sbcl-hu.dwim.common")
+    (version "2015-07-09")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append
+             "http://beta.quicklisp.org/archive/hu.dwim.common/"
+             version "/hu.dwim.common-"
+             (string-replace-substring version "-" "")
+             "-darcs.tgz"))
+       (sha256
+        (base32 "12l1rr6w9m99w0b5gc6hv58ainjfhbc588kz6vwshn4gqsxyzbhp"))))
+    (build-system asdf-build-system/sbcl)
+    (native-inputs
+     `(("hu.dwim.asdf" ,sbcl-hu.dwim.asdf)))
+    (inputs
+     `(("alexandria" ,sbcl-alexandria)
+       ("anaphora" ,sbcl-anaphora)
+       ("closer-mop" ,sbcl-closer-mop)
+       ("hu.dwim.common-lisp" ,sbcl-hu.dwim.common-lisp)
+       ("iterate" ,sbcl-iterate)
+       ("metabang-bind" ,sbcl-metabang-bind)))
+    (home-page "http://dwim.hu/")
+    (synopsis "Common Lisp library shared by other hu.dwim systems")
+    (description "This package contains a support library for other
+hu.dwim systems.")
+    (license license:public-domain)))
+
+(define-public cl-hu.dwim.common
+  (sbcl-package->cl-source-package sbcl-hu.dwim.common))
+
+(define-public ecl-hu.dwim.common
+  (sbcl-package->ecl-package sbcl-hu.dwim.common))
+
+(define-public sbcl-hu.dwim.defclass-star
+  (package
+    (name "sbcl-hu.dwim.defclass-star")
+    (version "2015-07-09")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append
+             "http://beta.quicklisp.org/archive/hu.dwim.defclass-star/"
+             version "/hu.dwim.defclass-star-"
+             (string-replace-substring version "-" "")
+             "-darcs.tgz"))
+       (sha256
+        (base32 "032982lyp0hm0ssxlyh572whi2hr4j1nqkyqlllaj373v0dbs3vs"))))
+    (build-system asdf-build-system/sbcl)
+    (native-inputs
+     `(;; These 2 inputs are only needed tests which are disabled, see below.
+       ;; ("hu.dwim.common" ,sbcl-hu.dwim.common)
+       ;; Need cl- package for the :hu.dwim.stefil+hu.dwim.def+swank system.
+       ;; ("hu.dwim.stefil" ,cl-hu.dwim.stefil)
+       ("hu.dwim.asdf" ,sbcl-hu.dwim.asdf)))
+    (arguments
+     `(#:test-asd-file "hu.dwim.defclass-star.test.asd"
+       ;; Tests require a circular dependency: hu.dwim.stefil -> hu.dwim.def
+       ;; -> hu.dwim.util -> hu.dwim.defclass-star.
+       #:tests? #f))
+    (home-page "http://dwim.hu/?_x=dfxn&_f=mRIMfonK")
+    (synopsis "Simplify definitions with defclass* and friends in Common Lisp")
+    (description "@code{defclass-star} provides defclass* and defcondition* to
+simplify class and condition declarations.  Features include:
+
+@itemize
+@item Automatically export all or select slots at compile time.
+@item Define the @code{:initarg} and @code{:accesor} automatically.
+@item Specify a name transformer for both the @code{:initarg} and
+@code{:accessor}, etc.
+@item Specify the @code{:initform} as second slot value.
+@end itemize
+
+See
+@url{https://common-lisp.net/project/defclass-star/configuration.lisp.html}
+for an example.")
+    (license license:public-domain)))
+
+(define-public cl-hu.dwim.defclass-star
+  (sbcl-package->cl-source-package sbcl-hu.dwim.defclass-star))
+
+(define-public ecl-hu.dwim.defclass-star
+  (sbcl-package->ecl-package sbcl-hu.dwim.defclass-star))
+
+(define-public sbcl-livesupport
+  (let ((commit "71e6e412df9f3759ad8378fabb203913d82e228a")
+       (revision "1"))
+    (package
+      (name "sbcl-livesupport")
+      (version (git-version "0.0.0" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/cbaggers/livesupport")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32 "1rvnl0mncylbx63608pz5llss7y92j7z3ydambk9mcnjg2mjaapg"))))
+      (build-system asdf-build-system/sbcl)
+      (home-page "https://github.com/cbaggers/livesupport")
+      (synopsis "Some helpers that make livecoding a little easier")
+      (description "This package provides a macro commonly used in livecoding to
+enable continuing when errors are raised.  Simply wrap around a chunk of code
+and it provides a restart called @code{continue} which ignores the error and
+carrys on from the end of the body.")
+      (license license:bsd-2))))
+
+(define-public cl-livesupport
+  (sbcl-package->cl-source-package sbcl-livesupport))
+
+(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))