gnu: Add cl-skippy.
[jackhill/guix/guix.git] / gnu / packages / lisp-xyz.scm
index d0a0065..6003a28 100644 (file)
@@ -3,7 +3,7 @@
 ;;; Copyright © 2015 Taylan Ulrich Bayırlı/Kammer <taylanbayirli@gmail.com>
 ;;; Copyright © 2015 Mark H Weaver <mhw@netris.org>
 ;;; Copyright © 2016 Federico Beffa <beffa@fbengineering.ch>
-;;; Copyright © 2016, 2017 ng0 <ng0@n0.is>
+;;; Copyright © 2016, 2017 Nikita <nikita@n0.is>
 ;;; Copyright © 2016, 2017 Andy Patterson <ajpatter@uwaterloo.ca>
 ;;; Copyright © 2017, 2019, 2020 Ricardo Wurmus <rekado@elephly.net>
 ;;; Copyright © 2017, 2018, 2019 Efraim Flashner <efraim@flashner.co.il>
   #: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.")
-      (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))
@@ -147,7 +146,7 @@ In order to make one or several variables file-local, use the macros
      (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
@@ -173,14 +172,14 @@ interactive development model in mind.")
 (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
-                    (url "https://github.com/sionescu/bordeaux-threads.git")
+                    (url "https://github.com/sionescu/bordeaux-threads")
                     (commit (string-append "v" version))))
               (sha256
-               (base32 "1whpfmyxp2fsw6viqj45fqgsifgr534c575bfh5vaqw5m84b6alp"))
+               (base32 "19i443fz3488v1pbbr9x24y8h8vlyhny9vj6c9jk5prm702awrp6"))
               (file-name
                (git-file-name "bordeaux-threads" version))))
     (inputs `(("alexandria" ,sbcl-alexandria)))
@@ -210,7 +209,7 @@ support.")
          (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"))
@@ -241,7 +240,7 @@ thin compatibility layer for gray streams.")
        (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
@@ -275,7 +274,7 @@ logical continuation of Stefil.  It focuses on interactive debugging.")
      (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
@@ -312,7 +311,7 @@ streams which are similar to string streams.")
      (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
@@ -339,7 +338,7 @@ compatible with ANSI-compliant Common Lisp implementations.")
     (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
@@ -383,7 +382,7 @@ ANSI-compliant Common Lisp implementations.")
      (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
@@ -496,7 +495,7 @@ anti-aliased vectorial paths.")))
        (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
@@ -533,7 +532,7 @@ spatially-extended data.")
        (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
@@ -565,7 +564,7 @@ a sequence (or chain) of such elements.")
        (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
@@ -597,7 +596,7 @@ files.")
        (method git-fetch)
        (uri
         (git-reference
-         (url "https://github.com/sharplispers/clx.git")
+         (url "https://github.com/sharplispers/clx")
          (commit version)))
        (sha256
         (base32
@@ -675,8 +674,9 @@ antialiased TrueType font rendering using CLX and XRender extension.")
 ;; we expose the union of these as `sbcl-slynk'.  The following variable
 ;; describes the base module.
 (define sbcl-slynk-boot0
-  (let ((revision "2")
-        (commit "cbf84c36c4eca8b032e3fd16177a7bc02df3ec4c"))
+  (let ((revision "3")
+        ;; Update together with emacs-sly.
+        (commit "6a2f543cb21f14104c2253af5a1427b884a987ae"))
     (package
       (name "sbcl-slynk-boot0")
       (version (string-append "1.0.0-beta-" revision "." (string-take commit 7)))
@@ -685,10 +685,10 @@ antialiased TrueType font rendering using CLX and XRender extension.")
          (method git-fetch)
          (uri
           (git-reference
-           (url "https://github.com/joaotavora/sly.git")
+           (url "https://github.com/joaotavora/sly")
            (commit commit)))
          (sha256
-          (base32 "13dyhsravn591p7g6is01mp2ynzjnnj7pwgi57r6xqmd4611y9vh"))
+          (base32 "0wbpg9p9yg2hd62l15pvy50fk3hndq5zzyqlyyf04g368s895144"))
          (file-name (string-append "slynk-" version "-checkout"))
          (modules '((guix build utils)
                     (ice-9 ftw)))
@@ -700,9 +700,7 @@ antialiased TrueType font rendering using CLX and XRender extension.")
                (("\\.\\./contrib")
                 "contrib")
                (("\\(defsystem :slynk/util")
-                "(defsystem :slynk/util :depends-on (:slynk)")
-               ((":depends-on \\(:slynk :slynk/util\\)")
-                ":depends-on (:slynk :slynk-util)"))
+                "(defsystem :slynk/util :depends-on (:slynk)"))
              (substitute* "contrib/slynk-trace-dialog.lisp"
                (("\\(slynk::reset-inspector\\)") ; Causes problems on load
                 "nil"))
@@ -728,7 +726,7 @@ antialiased TrueType font rendering using CLX and XRender extension.")
       (synopsis "Common Lisp IDE for Emacs")
       (description "SLY is a fork of SLIME, an IDE backend for Common Lisp.
 It also features a completely redesigned REPL based on Emacs's own
-full-featured comint.el, live code annotations, and a consistent interactive
+full-featured @code{comint-mode}, live code annotations, and a consistent interactive
 button interface.  Everything can be copied to the REPL.  One can create
 multiple inspectors with independent history.")
       (home-page "https://github.com/joaotavora/sly")
@@ -1045,7 +1043,7 @@ It is similar to the @code{CL:LOOP} macro, with these distinguishing marks:
        (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
@@ -1166,7 +1164,7 @@ utilities that make it even easier to manipulate text in Common Lisp.  It has
        (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
@@ -1252,7 +1250,7 @@ with a focus on interactive development.")
        (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
@@ -1714,7 +1712,7 @@ also be supported.")
 (define-public sbcl-ironclad
   (package
     (name "sbcl-ironclad")
-    (version "0.49")
+    (version "0.50")
     (source
      (origin
        (method git-fetch)
@@ -1722,7 +1720,7 @@ also be supported.")
              (url "https://github.com/sharplispers/ironclad/")
              (commit (string-append "v" version))))
        (sha256
-        (base32 "0kbzqg2aasrhjwy3nrzy2ddy809n1j045w4qkyc3r2syqd203d4q"))
+        (base32 "0k4bib9mbrzalbl9ivkw4a7g4c7bbad1l5jw4pzkifqszy2swkr5"))
        (file-name (git-file-name name version))))
     (build-system asdf-build-system/sbcl)
     (native-inputs
@@ -1730,8 +1728,7 @@ also be supported.")
      `(("rt" ,sbcl-rt)))
     (inputs
      `(("bordeaux-threads" ,sbcl-bordeaux-threads)
-       ("flexi-streams" ,sbcl-flexi-streams)
-       ("trivial-garbage" ,sbcl-trivial-garbage)))
+       ("flexi-streams" ,sbcl-flexi-streams)))
     (synopsis "Cryptographic toolkit written in Common Lisp")
     (description
      "Ironclad is a cryptography library written entirely in Common Lisp.
@@ -1757,7 +1754,7 @@ streams, support is included for convenient stream wrappers.")
        (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"))
@@ -2523,7 +2520,7 @@ non-consing thread safe queues and fibonacci priority queues.")
      (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
@@ -2808,7 +2805,7 @@ precisely controls the behavior of the parser via Common Lisp restarts.")
      (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
@@ -2876,7 +2873,41 @@ Lisp implementations.")
       (inputs
        `(("iterate" ,sbcl-iterate)
          ("cffi" ,sbcl-cffi)
-         ("trivial-features" ,sbcl-trivial-features)))
+         ("trivial-features" ,sbcl-trivial-features)
+         ("glib" ,glib)
+         ("cairo" ,cairo)
+         ("pango" ,pango)
+         ("gdk-pixbuf" ,gdk-pixbuf)
+         ("gtk" ,gtk+)))
+      (arguments
+       `(#:phases
+         (modify-phases %standard-phases
+           (add-after 'unpack 'fix-paths
+             (lambda* (#:key inputs #:allow-other-keys)
+               (substitute* "glib/glib.init.lisp"
+                 (("libglib|libgthread" all)
+                  (string-append (assoc-ref inputs "glib") "/lib/" all)))
+               (substitute* "gobject/gobject.init.lisp"
+                 (("libgobject" all)
+                  (string-append (assoc-ref inputs "glib") "/lib/" all)))
+               (substitute* "gio/gio.init.lisp"
+                 (("libgio" all)
+                  (string-append (assoc-ref inputs "glib") "/lib/" all)))
+               (substitute* "cairo/cairo.init.lisp"
+                 (("libcairo" all)
+                  (string-append (assoc-ref inputs "cairo") "/lib/" all)))
+               (substitute* "pango/pango.init.lisp"
+                 (("libpango" all)
+                  (string-append (assoc-ref inputs "pango") "/lib/" all)))
+               (substitute* "gdk-pixbuf/gdk-pixbuf.init.lisp"
+                 (("libgdk_pixbuf" all)
+                  (string-append (assoc-ref inputs "gdk-pixbuf") "/lib/" all)))
+               (substitute* "gdk/gdk.init.lisp"
+                 (("libgdk" all)
+                  (string-append (assoc-ref inputs "gtk") "/lib/" all)))
+               (substitute* "gdk/gdk.package.lisp"
+                 (("libgtk" all)
+                  (string-append (assoc-ref inputs "gtk") "/lib/" all))))))))
       (home-page "https://github.com/Ferada/cl-cffi-gtk/")
       (synopsis "Common Lisp binding for GTK+3")
       (description
@@ -2889,192 +2920,155 @@ is a library for creating graphical user interfaces.")
     (inherit sbcl-cl-cffi-gtk-boot0)
     (name "sbcl-cl-cffi-gtk-glib")
     (inputs
-     `(("glib" ,glib)
-       ("bordeaux-threads" ,sbcl-bordeaux-threads)
+     `(("bordeaux-threads" ,sbcl-bordeaux-threads)
        ,@(package-inputs sbcl-cl-cffi-gtk-boot0)))
     (arguments
-     `(#:asd-file "glib/cl-cffi-gtk-glib.asd"
-       #:phases
-       (modify-phases %standard-phases
-         (add-after 'unpack 'fix-paths
-           (lambda* (#:key inputs #:allow-other-keys)
-             (substitute* "glib/glib.init.lisp"
-               (("libglib|libgthread" all)
-                (string-append (assoc-ref inputs "glib") "/lib/" all))))))))))
+     (substitute-keyword-arguments (package-arguments sbcl-cl-cffi-gtk-boot0)
+       ((#:asd-file _ "") "glib/cl-cffi-gtk-glib.asd")))))
 
 (define-public sbcl-cl-cffi-gtk-gobject
   (package
     (inherit sbcl-cl-cffi-gtk-boot0)
     (name "sbcl-cl-cffi-gtk-gobject")
     (inputs
-     `(("glib" ,glib)
-       ("cl-cffi-gtk-glib" ,sbcl-cl-cffi-gtk-glib)
+     `(("cl-cffi-gtk-glib" ,sbcl-cl-cffi-gtk-glib)
        ("trivial-garbage" ,sbcl-trivial-garbage)
        ("bordeaux-threads" ,sbcl-bordeaux-threads)
        ("closer-mop" ,sbcl-closer-mop)
        ,@(package-inputs sbcl-cl-cffi-gtk-boot0)))
     (arguments
-     `(#:asd-file "gobject/cl-cffi-gtk-gobject.asd"
-       #:phases
-       (modify-phases %standard-phases
-         (add-after 'unpack 'fix-paths
-           (lambda* (#:key inputs #:allow-other-keys)
-             (substitute* "gobject/gobject.init.lisp"
-               (("libgobject" all) (string-append
-                                    (assoc-ref inputs "glib") "/lib/" all)))))
-         (add-after 'install 'link-source
-           ;; Since source is particularly heavy (16MiB+), let's reuse it
-           ;; across the different components of cl-ffi-gtk.
-           (lambda* (#:key inputs outputs #:allow-other-keys)
-             (let ((glib-source (string-append (assoc-ref inputs "cl-cffi-gtk-glib")
-                                               "/share/common-lisp/sbcl-source/"
-                                               "cl-cffi-gtk-glib"))
-                   (out-source (string-append (assoc-ref outputs "out")
-                                              "/share/common-lisp/sbcl-source/"
-                                              "cl-cffi-gtk-gobject")))
-               (delete-file-recursively out-source)
-               (symlink glib-source out-source)
-               #t))))))))
+     (substitute-keyword-arguments (package-arguments sbcl-cl-cffi-gtk-boot0)
+       ((#:asd-file _ "") "gobject/cl-cffi-gtk-gobject.asd")
+       ((#:phases phases)
+        `(modify-phases ,phases
+           (add-after 'install 'link-source
+             ;; Since source is particularly heavy (16MiB+), let's reuse it
+             ;; across the different components of cl-ffi-gtk.
+             (lambda* (#:key inputs outputs #:allow-other-keys)
+               (let ((glib-source (string-append (assoc-ref inputs "cl-cffi-gtk-glib")
+                                                 "/share/common-lisp/sbcl-source/"
+                                                 "cl-cffi-gtk-glib"))
+                     (out-source (string-append (assoc-ref outputs "out")
+                                                "/share/common-lisp/sbcl-source/"
+                                                "cl-cffi-gtk-gobject")))
+                 (delete-file-recursively out-source)
+                 (symlink glib-source out-source)
+                 #t)))))))))
 
 (define-public sbcl-cl-cffi-gtk-gio
   (package
     (inherit sbcl-cl-cffi-gtk-boot0)
     (name "sbcl-cl-cffi-gtk-gio")
     (inputs
-     `(("glib" ,glib)
-       ("cl-cffi-gtk-glib" ,sbcl-cl-cffi-gtk-glib)
+     `(("cl-cffi-gtk-glib" ,sbcl-cl-cffi-gtk-glib)
        ("cl-cffi-gtk-gobject" ,sbcl-cl-cffi-gtk-gobject)
        ,@(package-inputs sbcl-cl-cffi-gtk-boot0)))
     (arguments
-     `(#:asd-file "gio/cl-cffi-gtk-gio.asd"
-       #:phases
-       (modify-phases %standard-phases
-         (add-after 'unpack 'fix-paths
-           (lambda* (#:key inputs #:allow-other-keys)
-             (substitute* "gio/gio.init.lisp"
-               (("libgio" all)
-                (string-append
-                 (assoc-ref inputs "glib") "/lib/" all)))))
-         (add-after 'install 'link-source
-           ;; Since source is particularly heavy (16MiB+), let's reuse it
-           ;; across the different components of cl-ffi-gtk.
-           (lambda* (#:key inputs outputs #:allow-other-keys)
-             (let ((glib-source (string-append (assoc-ref inputs "cl-cffi-gtk-glib")
-                                               "/share/common-lisp/sbcl-source/"
-                                               "cl-cffi-gtk-glib"))
-                   (out-source (string-append (assoc-ref outputs "out")
-                                              "/share/common-lisp/sbcl-source/"
-                                              "cl-cffi-gtk-gio")))
-               (delete-file-recursively out-source)
-               (symlink glib-source out-source)
-               #t))))))))
+     (substitute-keyword-arguments (package-arguments sbcl-cl-cffi-gtk-boot0)
+       ((#:asd-file _ "") "gio/cl-cffi-gtk-gio.asd")
+       ((#:phases phases)
+        `(modify-phases ,phases
+           (add-after 'install 'link-source
+             ;; Since source is particularly heavy (16MiB+), let's reuse it
+             ;; across the different components of cl-ffi-gtk.
+             (lambda* (#:key inputs outputs #:allow-other-keys)
+               (let ((glib-source (string-append (assoc-ref inputs "cl-cffi-gtk-glib")
+                                                 "/share/common-lisp/sbcl-source/"
+                                                 "cl-cffi-gtk-glib"))
+                     (out-source (string-append (assoc-ref outputs "out")
+                                                "/share/common-lisp/sbcl-source/"
+                                                "cl-cffi-gtk-gio")))
+                 (delete-file-recursively out-source)
+                 (symlink glib-source out-source)
+                 #t)))))))))
 
 (define-public sbcl-cl-cffi-gtk-cairo
   (package
     (inherit sbcl-cl-cffi-gtk-boot0)
     (name "sbcl-cl-cffi-gtk-cairo")
     (inputs
-     `(("cairo" ,cairo)
-       ("cl-cffi-gtk-glib" ,sbcl-cl-cffi-gtk-glib)
+     `(("cl-cffi-gtk-glib" ,sbcl-cl-cffi-gtk-glib)
        ,@(package-inputs sbcl-cl-cffi-gtk-boot0)))
     (arguments
-     `(#:asd-file "cairo/cl-cffi-gtk-cairo.asd"
-       #:phases
-       (modify-phases %standard-phases
-         (add-after 'unpack 'fix-paths
-           (lambda* (#:key inputs #:allow-other-keys)
-             (substitute* "cairo/cairo.init.lisp"
-               (("libcairo" all)
-                (string-append
-                 (assoc-ref inputs "cairo") "/lib/" all)))))
-         (add-after 'install 'link-source
-           ;; Since source is particularly heavy (16MiB+), let's reuse it
-           ;; across the different components of cl-ffi-gtk.
-           (lambda* (#:key inputs outputs #:allow-other-keys)
-             (let ((glib-source (string-append (assoc-ref inputs "cl-cffi-gtk-glib")
-                                               "/share/common-lisp/sbcl-source/"
-                                               "cl-cffi-gtk-glib"))
-                   (out-source (string-append (assoc-ref outputs "out")
-                                              "/share/common-lisp/sbcl-source/"
-                                              "cl-cffi-gtk-cairo")))
-               (delete-file-recursively out-source)
-               (symlink glib-source out-source)
-               #t))))))))
+     (substitute-keyword-arguments (package-arguments sbcl-cl-cffi-gtk-boot0)
+       ((#:asd-file _ "") "cairo/cl-cffi-gtk-cairo.asd")
+       ((#:phases phases)
+        `(modify-phases ,phases
+           (add-after 'install 'link-source
+             ;; Since source is particularly heavy (16MiB+), let's reuse it
+             ;; across the different components of cl-ffi-gtk.
+             (lambda* (#:key inputs outputs #:allow-other-keys)
+               (let ((glib-source (string-append (assoc-ref inputs "cl-cffi-gtk-glib")
+                                                 "/share/common-lisp/sbcl-source/"
+                                                 "cl-cffi-gtk-glib"))
+                     (out-source (string-append (assoc-ref outputs "out")
+                                                "/share/common-lisp/sbcl-source/"
+                                                "cl-cffi-gtk-cairo")))
+                 (delete-file-recursively out-source)
+                 (symlink glib-source out-source)
+                 #t)))))))))
 
 (define-public sbcl-cl-cffi-gtk-pango
   (package
     (inherit sbcl-cl-cffi-gtk-boot0)
     (name "sbcl-cl-cffi-gtk-pango")
     (inputs
-     `(("pango" ,pango)
-       ("cl-cffi-gtk-glib" ,sbcl-cl-cffi-gtk-glib)
+     `(("cl-cffi-gtk-glib" ,sbcl-cl-cffi-gtk-glib)
        ("cl-cffi-gtk-gobject" ,sbcl-cl-cffi-gtk-gobject)
        ("cl-cffi-gtk-cairo" ,sbcl-cl-cffi-gtk-cairo)
        ,@(package-inputs sbcl-cl-cffi-gtk-boot0)))
     (arguments
-     `(#:asd-file "pango/cl-cffi-gtk-pango.asd"
-       #:phases
-       (modify-phases %standard-phases
-         (add-after 'unpack 'fix-paths
-           (lambda* (#:key inputs #:allow-other-keys)
-             (substitute* "pango/pango.init.lisp"
-               (("libpango" all)
-                (string-append
-                 (assoc-ref inputs "pango") "/lib/" all)))))
-         (add-after 'install 'link-source
-           ;; Since source is particularly heavy (16MiB+), let's reuse it
-           ;; across the different components of cl-ffi-gtk.
-           (lambda* (#:key inputs outputs #:allow-other-keys)
-             (let ((glib-source (string-append (assoc-ref inputs "cl-cffi-gtk-glib")
-                                               "/share/common-lisp/sbcl-source/"
-                                               "cl-cffi-gtk-glib"))
-                   (out-source (string-append (assoc-ref outputs "out")
-                                              "/share/common-lisp/sbcl-source/"
-                                              "cl-cffi-gtk-pango")))
-               (delete-file-recursively out-source)
-               (symlink glib-source out-source)
-               #t))))))))
+     (substitute-keyword-arguments (package-arguments sbcl-cl-cffi-gtk-boot0)
+       ((#:asd-file _ "") "pango/cl-cffi-gtk-pango.asd")
+       ((#:phases phases)
+        `(modify-phases ,phases
+           (add-after 'install 'link-source
+             ;; Since source is particularly heavy (16MiB+), let's reuse it
+             ;; across the different components of cl-ffi-gtk.
+             (lambda* (#:key inputs outputs #:allow-other-keys)
+               (let ((glib-source (string-append (assoc-ref inputs "cl-cffi-gtk-glib")
+                                                 "/share/common-lisp/sbcl-source/"
+                                                 "cl-cffi-gtk-glib"))
+                     (out-source (string-append (assoc-ref outputs "out")
+                                                "/share/common-lisp/sbcl-source/"
+                                                "cl-cffi-gtk-pango")))
+                 (delete-file-recursively out-source)
+                 (symlink glib-source out-source)
+                 #t)))))))))
 
 (define-public sbcl-cl-cffi-gtk-gdk-pixbuf
   (package
     (inherit sbcl-cl-cffi-gtk-boot0)
     (name "sbcl-cl-cffi-gtk-gdk-pixbuf")
     (inputs
-     `(("gdk-pixbuf" ,gdk-pixbuf)
-       ("cl-cffi-gtk-gobject" ,sbcl-cl-cffi-gtk-gobject)
+     `(("cl-cffi-gtk-gobject" ,sbcl-cl-cffi-gtk-gobject)
        ("cl-cffi-gtk-glib" ,sbcl-cl-cffi-gtk-glib)
        ,@(package-inputs sbcl-cl-cffi-gtk-boot0)))
     (arguments
-     `(#:asd-file "gdk-pixbuf/cl-cffi-gtk-gdk-pixbuf.asd"
-       #:phases
-       (modify-phases %standard-phases
-         (add-after 'unpack 'fix-paths
-           (lambda* (#:key inputs #:allow-other-keys)
-             (substitute* "gdk-pixbuf/gdk-pixbuf.init.lisp"
-               (("libgdk_pixbuf" all)
-                (string-append
-                 (assoc-ref inputs "gdk-pixbuf") "/lib/" all)))))
-         (add-after 'install 'link-source
-           ;; Since source is particularly heavy (16MiB+), let's reuse it
-           ;; across the different components of cl-ffi-gtk.
-           (lambda* (#:key inputs outputs #:allow-other-keys)
-             (let ((glib-source (string-append (assoc-ref inputs "cl-cffi-gtk-glib")
-                                               "/share/common-lisp/sbcl-source/"
-                                               "cl-cffi-gtk-glib"))
-                   (out-source (string-append (assoc-ref outputs "out")
-                                              "/share/common-lisp/sbcl-source/"
-                                              "cl-cffi-gtk-gdk-pixbuf")))
-               (delete-file-recursively out-source)
-               (symlink glib-source out-source)
-               #t))))))))
+     (substitute-keyword-arguments (package-arguments sbcl-cl-cffi-gtk-boot0)
+       ((#:asd-file _ "") "gdk-pixbuf/cl-cffi-gtk-gdk-pixbuf.asd")
+       ((#:phases phases)
+        `(modify-phases ,phases
+           (add-after 'install 'link-source
+             ;; Since source is particularly heavy (16MiB+), let's reuse it
+             ;; across the different components of cl-ffi-gtk.
+             (lambda* (#:key inputs outputs #:allow-other-keys)
+               (let ((glib-source (string-append (assoc-ref inputs "cl-cffi-gtk-glib")
+                                                 "/share/common-lisp/sbcl-source/"
+                                                 "cl-cffi-gtk-glib"))
+                     (out-source (string-append (assoc-ref outputs "out")
+                                                "/share/common-lisp/sbcl-source/"
+                                                "cl-cffi-gtk-gdk-pixbuf")))
+                 (delete-file-recursively out-source)
+                 (symlink glib-source out-source)
+                 #t)))))))))
 
 (define-public sbcl-cl-cffi-gtk-gdk
   (package
     (inherit sbcl-cl-cffi-gtk-boot0)
     (name "sbcl-cl-cffi-gtk-gdk")
     (inputs
-     `(("gtk" ,gtk+)
-       ("cl-cffi-gtk-glib" ,sbcl-cl-cffi-gtk-glib)
+     `(("cl-cffi-gtk-glib" ,sbcl-cl-cffi-gtk-glib)
        ("cl-cffi-gtk-gobject" ,sbcl-cl-cffi-gtk-gobject)
        ("cl-cffi-gtk-gio" ,sbcl-cl-cffi-gtk-gio)
        ("cl-cffi-gtk-gdk-pixbuf" ,sbcl-cl-cffi-gtk-gdk-pixbuf)
@@ -3082,32 +3076,23 @@ is a library for creating graphical user interfaces.")
        ("cl-cffi-gtk-pango" ,sbcl-cl-cffi-gtk-pango)
        ,@(package-inputs sbcl-cl-cffi-gtk-boot0)))
     (arguments
-     `(#:asd-file "gdk/cl-cffi-gtk-gdk.asd"
-       #:phases
-       (modify-phases %standard-phases
-         (add-after 'unpack 'fix-paths
-           (lambda* (#:key inputs #:allow-other-keys)
-             (substitute* "gdk/gdk.init.lisp"
-               (("libgdk" all)
-                (string-append
-                 (assoc-ref inputs "gtk") "/lib/" all)))
-             (substitute* "gdk/gdk.package.lisp"
-               (("libgtk" all)
-                (string-append
-                 (assoc-ref inputs "gtk") "/lib/" all)))))
-         (add-after 'install 'link-source
-           ;; Since source is particularly heavy (16MiB+), let's reuse it
-           ;; across the different components of cl-ffi-gtk.
-           (lambda* (#:key inputs outputs #:allow-other-keys)
-             (let ((glib-source (string-append (assoc-ref inputs "cl-cffi-gtk-glib")
-                                               "/share/common-lisp/sbcl-source/"
-                                               "cl-cffi-gtk-glib"))
-                   (out-source (string-append (assoc-ref outputs "out")
-                                              "/share/common-lisp/sbcl-source/"
-                                              "cl-cffi-gtk-gdk")))
-               (delete-file-recursively out-source)
-               (symlink glib-source out-source)
-               #t))))))))
+     (substitute-keyword-arguments (package-arguments sbcl-cl-cffi-gtk-boot0)
+       ((#:asd-file _ "") "gdk/cl-cffi-gtk-gdk.asd")
+       ((#:phases phases)
+        `(modify-phases ,phases
+           (add-after 'install 'link-source
+             ;; Since source is particularly heavy (16MiB+), let's reuse it
+             ;; across the different components of cl-ffi-gtk.
+             (lambda* (#:key inputs outputs #:allow-other-keys)
+               (let ((glib-source (string-append (assoc-ref inputs "cl-cffi-gtk-glib")
+                                                 "/share/common-lisp/sbcl-source/"
+                                                 "cl-cffi-gtk-glib"))
+                     (out-source (string-append (assoc-ref outputs "out")
+                                                "/share/common-lisp/sbcl-source/"
+                                                "cl-cffi-gtk-gdk")))
+                 (delete-file-recursively out-source)
+                 (symlink glib-source out-source)
+                 #t)))))))))
 
 (define-public sbcl-cl-cffi-gtk
   (package
@@ -3122,35 +3107,36 @@ is a library for creating graphical user interfaces.")
     (native-inputs
      `(("fiveam" ,sbcl-fiveam)))
     (arguments
-     `(#:asd-file "gtk/cl-cffi-gtk.asd"
-       #:test-asd-file "test/cl-cffi-gtk-test.asd"
+     (substitute-keyword-arguments (package-arguments sbcl-cl-cffi-gtk-boot0)
+       ((#:asd-file _ "") "gtk/cl-cffi-gtk.asd")
+       ((#:test-asd-file _ "") "test/cl-cffi-gtk-test.asd")
        ;; TODO: Tests fail with memory fault.
        ;; See https://github.com/Ferada/cl-cffi-gtk/issues/24.
-       #:tests? #f
-       #:phases
-       (modify-phases %standard-phases
-         (add-after 'install 'link-source
-           ;; Since source is particularly heavy (16MiB+), let's reuse it
-           ;; across the different components of cl-ffi-gtk.
-           (lambda* (#:key inputs outputs #:allow-other-keys)
-             (let ((glib-source (string-append (assoc-ref inputs "cl-cffi-gtk-glib")
-                                               "/share/common-lisp/sbcl-source/"
-                                               "cl-cffi-gtk-glib"))
-                   (out-source (string-append (assoc-ref outputs "out")
-                                              "/share/common-lisp/sbcl-source/"
-                                              "cl-cffi-gtk")))
-               (delete-file-recursively out-source)
-               (symlink glib-source out-source)
-               #t))))))))
+       ((#:tests? _ #f) #f)
+       ((#:phases phases)
+        `(modify-phases ,phases
+           (add-after 'install 'link-source
+             ;; Since source is particularly heavy (16MiB+), let's reuse it
+             ;; across the different components of cl-ffi-gtk.
+             (lambda* (#:key inputs outputs #:allow-other-keys)
+               (let ((glib-source (string-append (assoc-ref inputs "cl-cffi-gtk-glib")
+                                                 "/share/common-lisp/sbcl-source/"
+                                                 "cl-cffi-gtk-glib"))
+                     (out-source (string-append (assoc-ref outputs "out")
+                                                "/share/common-lisp/sbcl-source/"
+                                                "cl-cffi-gtk")))
+                 (delete-file-recursively out-source)
+                 (symlink glib-source out-source)
+                 #t)))))))))
 
 (define-public cl-cffi-gtk
   (sbcl-package->cl-source-package sbcl-cl-cffi-gtk))
 
 (define-public sbcl-cl-webkit
-  (let ((commit "f93cb9697e8813068795fe4dc39ac950d814102d"))
+  (let ((commit "6c905a5550b58a5b7602da5a087d7dafc5337122"))
     (package
       (name "sbcl-cl-webkit")
-      (version (git-version "2.4" "3" commit))
+      (version (git-version "2.4" "4" commit))
       (source
        (origin
          (method git-fetch)
@@ -3160,7 +3146,7 @@ is a library for creating graphical user interfaces.")
          (file-name (git-file-name "cl-webkit" version))
          (sha256
           (base32
-           "1sjcw08kjpd5h83sms7zcq2nymddjygk9hm2rpgzrl524an9ziwc"))))
+           "0017ijjflqqbgbj5bf7ffkyw5idhxc0ggly2qh5igf3kz886p9rh"))))
       (build-system asdf-build-system/sbcl)
       (inputs
        `(("cffi" ,sbcl-cffi)
@@ -3208,6 +3194,17 @@ WebKit browsing engine.")
      `(("alexandria" ,sbcl-alexandria)
        ("bordeaux-threads" ,sbcl-bordeaux-threads)
        ("trivial-garbage" ,sbcl-trivial-garbage)))
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'fix-dependency
+           ;; lparallel loads a SBCL specific system in its asd file. This is
+           ;; not carried over into the fasl which is generated. In order for
+           ;; it to be carried over, it needs to be listed as a dependency.
+           (lambda _
+             (substitute* "lparallel.asd"
+               ((":depends-on \\(:alexandria" all)
+                (string-append all " #+sbcl :sb-cltl2"))))))))
     (home-page "https://lparallel.org/")
     (synopsis "Parallelism for Common Lisp")
     (description
@@ -3524,7 +3521,7 @@ client and server.")
       (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
@@ -3569,7 +3566,7 @@ backtrace portably.")
       (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
@@ -3592,11 +3589,13 @@ process form data posted with HTTP POST method using enctype
     (version "2.0.4")
     (source
      (origin
-       (method url-fetch)
-       (uri (string-append
-             "https://github.com/pmai/md5/archive/release-" version ".tar.gz"))
+       (method git-fetch)
+       (uri (git-reference
+              (url "https://github.com/pmai/md5")
+              (commit (string-append "release-" version))))
+       (file-name (git-file-name "md5" version))
        (sha256
-        (base32 "19yl9n0pjdz5gw4qi711lka97xcd9f81ylg434hk7jwn9f2s6w11"))))
+        (base32 "1waqxzm7vlc22n92hv8r27anlvvjkkh9slhrky1ww7mdx4mmxwb8"))))
     (build-system asdf-build-system/sbcl)
     (home-page "https://github.com/pmai/md5")
     (synopsis
@@ -3619,7 +3618,7 @@ RFC 1321 by R. Rivest, published April 1992.")
        (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
@@ -3728,7 +3727,7 @@ encoding table that uses only URI-compatible characters.")
      (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
@@ -3757,7 +3756,7 @@ defined in RFC 2616.")
        (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
@@ -3789,7 +3788,7 @@ as good or bad as the next one.")
        (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
@@ -3821,7 +3820,7 @@ the format used by the popular compression tool bzip2.")
      (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
@@ -3861,7 +3860,7 @@ sockets, SSL, continuable uploads, file uploads, cookies, and more.")
      (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
@@ -3901,7 +3900,7 @@ connections (keep-alive), and SSL.")
      (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
@@ -3925,7 +3924,7 @@ PROPER-LIST, ASSOCIATION-LIST, PROPERTY-LIST and TUPLE.")
      (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
@@ -3955,7 +3954,7 @@ PROPER-LIST, ASSOCIATION-LIST, PROPERTY-LIST and TUPLE.")
        (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
@@ -4088,7 +4087,7 @@ addition, removal, and random selection.")
        (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
@@ -4124,7 +4123,7 @@ Lisp. It is intended to be a replacement of PURI.")
       (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
@@ -4267,7 +4266,7 @@ Lisp.")
      (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
@@ -4301,7 +4300,7 @@ memory.")
       (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
@@ -4328,7 +4327,7 @@ Only minimal changes required to make your CLOS objects serializable.")
        (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
@@ -4366,7 +4365,7 @@ against the last run.")
       (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
@@ -4405,7 +4404,7 @@ streams (though primarily the former, while wrapping the latter).")
       (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
@@ -4517,7 +4516,7 @@ reset to 0 and you're able to read it again.")
       (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
@@ -4558,7 +4557,7 @@ performance and simplicity in mind.")
       (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
@@ -4593,7 +4592,7 @@ Long Painful History of Time\".")
       (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
@@ -4634,7 +4633,7 @@ performance and simplicity in mind.")
       (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
@@ -4670,7 +4669,7 @@ performance and simplicity in mind.")
       (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
@@ -4708,7 +4707,7 @@ performance and simplicity in mind.")
       (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
@@ -4744,7 +4743,7 @@ performance and simplicity in mind.")
        (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
@@ -4791,7 +4790,7 @@ mime-type of a file.")
       (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
@@ -4831,7 +4830,7 @@ performance and simplicity in mind.")
       (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
@@ -4868,7 +4867,7 @@ performance and simplicity in mind.")
        (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
@@ -4931,7 +4930,7 @@ performance and simplicity in mind.")
       (origin
        (method git-fetch)
        (uri (git-reference
-             (url "https://github.com/fukamachi/clack.git")
+             (url "https://github.com/fukamachi/clack")
              (commit commit)))
        (file-name (git-file-name name version))
        (sha256
@@ -5027,7 +5026,7 @@ port within a range.")
        (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
@@ -5060,7 +5059,7 @@ experience.")
        (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
@@ -5159,7 +5158,7 @@ high-level way.  This library provides such operators.")
        (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
@@ -5190,7 +5189,7 @@ high-level way.  This library provides such operators.")
        (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
@@ -5255,7 +5254,7 @@ CPython implementation of Python) and Common Lisp.")
        (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
@@ -5568,7 +5567,13 @@ and @code{kqueue(2)}), a pathname library and file-system utilities.")
        ((#:asd-system-name _) "iolib")))))
 
 (define-public cl-iolib
-  (sbcl-package->cl-source-package sbcl-iolib))
+  (let ((parent (sbcl-package->cl-source-package sbcl-iolib)))
+    (package
+      (inherit parent)
+      (propagated-inputs
+       ;; Need header to compile.
+       `(("libfixposix" ,libfixposix)
+         ,@(package-propagated-inputs parent))))))
 
 (define-public sbcl-ieee-floats
   (let ((commit "566b51a005e81ff618554b9b2f0b795d3b29398d")
@@ -5713,22 +5718,7 @@ offered, one SAX-like, the other similar to StAX.")
              (install-file "catalog.dtd"
                            (string-append
                             (assoc-ref outputs "out")
-                            "/lib/" (%lisp-type)))))
-         (add-after 'create-asd 'remove-component
-           ;; XXX: The original .asd has no components, but our build system
-           ;; creates an entry nonetheless.  We need to remove it for the
-           ;; generated .asd to load properly.  See trivia.trivial for a
-           ;; similar problem.
-           (lambda* (#:key outputs #:allow-other-keys)
-             (let* ((out (assoc-ref outputs "out"))
-                    (asd (string-append out "/lib/sbcl/cxml.asd")))
-               (substitute* asd
-                 (("  :components
-")
-                  ""))
-               (substitute* asd
-                 ((" *\\(\\(:compiled-file \"cxml--system\"\\)\\)")
-                  ""))))))))))
+                            "/lib/" (%lisp-type))))))))))
 
 (define-public cl-cxml
   (sbcl-package->cl-source-package sbcl-cxml))
@@ -5867,8 +5857,8 @@ neat APIs and connection-pooling.  It is meant to supersede Drakma.")
        ;; asdf-build-system/source has its own phases and does not inherit
        ;; from asdf-build-system/sbcl phases.
        (modify-phases %standard-phases/source
-         (add-after 'unpack 'fix-permissions
-           (lambda _ (make-file-writable "t/data/test.gz") #t)))))))
+         ;; Already done in SBCL package.
+         (delete 'reset-gzip-timestamps))))))
 
 (define-public ecl-dexador
   (sbcl-package->ecl-package sbcl-dexador))
@@ -6130,7 +6120,6 @@ This package uses fare-quasiquote with named-readtable.")))
 (define-public cl-fare-quasiquote-readtable
   (sbcl-package->cl-source-package sbcl-fare-quasiquote-readtable))
 
-;; TODO: Add support for component-less system in asdf-build-system/sbcl.
 (define-public sbcl-fare-quasiquote-extras
   (package
     (inherit sbcl-fare-quasiquote)
@@ -6150,22 +6139,7 @@ This package uses fare-quasiquote with named-readtable.")))
                (install-file "fare-quasiquote-extras.asd" lib)
                (make-file-writable
                 (string-append lib "/fare-quasiquote-extras.asd"))
-               #t)))
-         (add-after 'create-asd-file 'fix-asd-file
-           (lambda* (#:key outputs #:allow-other-keys)
-             (let* ((out (assoc-ref outputs "out"))
-                    (lib (string-append out "/lib/" (%lisp-type)))
-                    (asd (string-append lib "/fare-quasiquote-extras.asd")))
-               (substitute* asd
-                 ((":class")
-                  "")
-                 (("asdf/bundle:prebuilt-system")
-                  "")
-                 ((":components")
-                  "")
-                 (("\\(\\(:compiled-file \"fare-quasiquote-extras--system\"\\)\\)")
-                  "")))
-             #t)))))
+               #t))))))
     (description "This library combines @code{fare-quasiquote-readtable} and
 @code{fare-quasiquote-optima}.")))
 
@@ -6241,32 +6215,6 @@ with extensible optimizer interface.")))
     (name "sbcl-trivia.trivial")
     (inputs
      `(("trivia.level2" ,sbcl-trivia.level2)))
-    (arguments
-     `(#:phases
-       (modify-phases %standard-phases
-         (replace 'create-asd-file
-           (lambda* (#:key outputs inputs #:allow-other-keys)
-             (let* ((out (assoc-ref outputs "out"))
-                    (lib (string-append out "/lib/" (%lisp-type)))
-                    (level2 (assoc-ref inputs "trivia.level2")))
-               (mkdir-p lib)
-               (install-file "trivia.trivial.asd" lib)
-               ;; XXX: This .asd does not have any component and the build
-               ;; system fails to work in this case.  We should update the
-               ;; build system to handle component-less .asd.
-               ;; TODO: How do we append to file in Guile?  It seems that
-               ;; (open-file ... "a") gets a "Permission denied".
-               (substitute* (string-append lib "/trivia.trivial.asd")
-                 (("\"\\)")
-                  (string-append "\")
-
-(progn (asdf/source-registry:ensure-source-registry)
-       (setf (gethash
-               \"trivia.level2\"
-               asdf/source-registry:*source-registry*)
-             #p\""
-                                 level2
-                                 "/share/common-lisp/sbcl-bundle-systems/trivia.level2.asd\"))")))))))))
     (description "Trivia is a pattern matching compiler that is compatible
 with Optima, another pattern matching library for Common Lisp.  It is meant to
 be faster and more extensible than Optima.
@@ -6344,24 +6292,7 @@ This system contains the CFFI foreign slot access extension.")))
        ("trivia.cffi" ,sbcl-trivia.cffi)
        ("optima" ,sbcl-optima)))
     (arguments
-     `(#:test-asd-file "trivia.test.asd"
-       #:phases
-       (modify-phases %standard-phases
-         (add-after 'create-asd 'remove-component
-           ;; XXX: The original .asd has no components, but our build system
-           ;; creates an entry nonetheless.  We need to remove it for the
-           ;; generated .asd to load properly.  See trivia.trivial for a
-           ;; similar problem.
-           (lambda* (#:key outputs #:allow-other-keys)
-             (let* ((out (assoc-ref outputs "out"))
-                    (asd (string-append out "/lib/" (%lisp-type) "/trivia.asd")))
-               (substitute* asd
-                 (("  :components
-")
-                  ""))
-               (substitute* asd
-                 ((" *\\(\\(:compiled-file \"trivia--system\"\\)\\)")
-                  ""))))))))
+     `(#:test-asd-file "trivia.test.asd"))
     (description "Trivia is a pattern matching compiler that is compatible
 with Optima, another pattern matching library for Common Lisp.  It is meant to
 be faster and more extensible than Optima.")))
@@ -6619,8 +6550,8 @@ number of other open source projects.
   (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)
@@ -6635,10 +6566,12 @@ number of other open source projects.
          (file-name (git-file-name name version))
          (sha256
           (base32
-           "0bq905hv1626dl6b7s0zn4lbdh608g1pxaljl1fda6pwp9hmj95a"))))
+           "13yb8lv2aap5wvqa6hw7ms31xnax58f4m2nxifkssrzkb2w2qf29"))))
       (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
@@ -6700,7 +6633,7 @@ programming style and the efficiency of an iterative programming style.")
        (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
@@ -6753,7 +6686,7 @@ providing functions compatible with the series Common Lisp library.")))
        (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
@@ -6785,7 +6718,7 @@ which implements a set of utilities.")
        (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
@@ -6874,7 +6807,7 @@ on the XPTest package by Craig Brozensky and the JUnit package by Kent Beck.")
        (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
@@ -6932,7 +6865,7 @@ purpose of financial calculations."))))
        (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
@@ -6977,7 +6910,7 @@ system.")
        (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
@@ -7008,7 +6941,7 @@ can contain any kind of values.")
      (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
@@ -7043,7 +6976,7 @@ cl-plumbing libraries.")
        (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
@@ -7088,7 +7021,7 @@ compression/decompression using bindings to the lzlib C library.")
        (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
@@ -7123,7 +7056,7 @@ threads.")
        (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
@@ -7337,8 +7270,8 @@ implementation specific equivalent.")
   (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))
@@ -7352,7 +7285,7 @@ implementation specific equivalent.")
          (file-name (git-file-name name version))
          (sha256
           (base32
-           "0djnj0py8hdjnk5j6shjq2kbmyxqd5sw79cilcfmpfz4dzjdgkx9"))))
+           "1lrk2kf7qh5g6f8xvyg8wf89frzb5mw6m1jzgy46jy744f459i8q"))))
       (build-system asdf-build-system/sbcl)
       (inputs
        `(("alexandria" ,sbcl-alexandria)
@@ -7432,7 +7365,7 @@ Clojure, as well as several expansions on the idea.")
        (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
@@ -7496,7 +7429,7 @@ binary heap and a Fibonacci heap) as well as an efficient priority queue.")
          (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
@@ -7527,7 +7460,7 @@ of function partial application and composition.")
      (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
@@ -7604,7 +7537,7 @@ interactive development.")
          (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
@@ -7707,7 +7640,7 @@ results.")
          (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
@@ -8045,7 +7978,7 @@ intending to program in Lisp.")
        (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
@@ -8085,7 +8018,7 @@ doesn't support them.")
        (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
@@ -8124,7 +8057,7 @@ and camel-case rules.")
        (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
@@ -8157,7 +8090,7 @@ by Chris Riesbeck.")
        (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
@@ -8213,7 +8146,7 @@ and camel-case rules.")
        (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
@@ -8252,7 +8185,7 @@ from/to strings, streams and files.")
        (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
@@ -8288,7 +8221,7 @@ sacrificing much in the way of power.")
       (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
@@ -9369,7 +9302,7 @@ visualization.")
       (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
@@ -9537,7 +9470,7 @@ transforming Common Lisp code to continuation passing style.")
        (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
@@ -9584,7 +9517,7 @@ continuations of the @code{cl-cont} library.")
        (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
@@ -9615,7 +9548,7 @@ has a small codebase that's easy to understand and use.")
        (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
@@ -9665,7 +9598,7 @@ has a small codebase that's easy to understand and use.")
        (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
@@ -9793,7 +9726,7 @@ Common Lisp.  It uses the libuv library as backend.")
        (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
@@ -9828,7 +9761,7 @@ the successor to the now-deprecated cl-async-future project.")
        (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
@@ -9863,7 +9796,7 @@ to cl-async.")
        (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
@@ -9911,7 +9844,7 @@ possible.")
        (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
@@ -9942,7 +9875,7 @@ defined in RFC4648.")
        (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
@@ -9973,7 +9906,7 @@ ZeroMQ.")
      (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
@@ -10059,7 +9992,7 @@ from the one running the Lisp program by using a TCP connection.")))
        (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
@@ -10161,7 +10094,7 @@ the library does not depend on X11).
        (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
@@ -10241,7 +10174,7 @@ ones.")
      (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
@@ -10271,7 +10204,7 @@ respectively.")
        (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
@@ -10300,7 +10233,7 @@ respectively.")
      (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
@@ -10327,7 +10260,7 @@ respectively.")
      (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
@@ -10360,7 +10293,7 @@ them as PNG files.")
        (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
@@ -10421,7 +10354,7 @@ them as PNG files.")
      (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
@@ -10453,7 +10386,7 @@ generation functions from the GSL library.")
      (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
@@ -10487,7 +10420,7 @@ covered by the Common Lisp standard.")
      (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
@@ -10529,7 +10462,7 @@ caching based on arguments (an expanded form of memoization).")
        (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
@@ -10566,7 +10499,7 @@ the elements in compound type specifier, e.g. @code{dimensions} in
        (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
@@ -10605,7 +10538,7 @@ correctly.")
        (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
@@ -10647,7 +10580,7 @@ code.  The main target of this macro is speed.")
        (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
@@ -10685,7 +10618,7 @@ additional form that is considered as a candidate for a constant.")
        (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
@@ -10725,7 +10658,7 @@ type correctness in Common Lisp.  It is based on CLtL2 extensions.")
        (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
@@ -10772,7 +10705,7 @@ and usefulness, not speed.  Track the progress at
        (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
@@ -10819,7 +10752,7 @@ lightweight messaging kernel.")
          (method git-fetch)
          (uri
           (git-reference
-           (url "https://github.com/Shinmera/clss.git")
+           (url "https://github.com/Shinmera/clss")
            (commit commit)))
          (sha256
           (base32 "0la4dbcda78x29szanylccrsljqrn9d1mhh569sqkyp44ni5fv91"))
@@ -10851,7 +10784,7 @@ selectors.  It makes use of the Plump-DOM and is used by lQuery.")
          (method git-fetch)
          (uri
           (git-reference
-           (url "https://github.com/Shinmera/lquery.git")
+           (url "https://github.com/Shinmera/lquery")
            (commit commit)))
          (sha256
           (base32 "0520mcpxc2d6fdm8z61arpgd2z38kan7cf06qs373n5r64rakz6w"))
@@ -10890,7 +10823,7 @@ approach to templating.")
        (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
@@ -10932,7 +10865,7 @@ approach to templating.")
        (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
@@ -11051,7 +10984,7 @@ foreign libraries.
      (origin
        (method git-fetch)
        (uri (git-reference
-             (url "https://github.com/fukamachi/cl-dbi.git")
+             (url "https://github.com/fukamachi/cl-dbi")
              (commit version)))
        (file-name (git-file-name name version))
        (sha256
@@ -11560,3 +11493,922 @@ accompaniment to the standard ANSI facilities.")
 
 (define-public cl-osicat
   (sbcl-package->cl-source-package sbcl-osicat))
+
+(define-public sbcl-clx-xembed
+  (let ((commit "a5c4b844d31ee68ffa58c933cc1cdddde6990743")
+        (revision "1"))
+    (package
+      (name "sbcl-clx-xembed")
+      (version (git-version "0.1" revision commit))
+      (home-page "https://github.com/laynor/clx-xembed")
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/laynor/clx-xembed")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32 "1abx4v36ycmfjdwpjk4hh8058ya8whwia7ds9vd96q2qsrs57f12"))))
+      (build-system asdf-build-system/sbcl)
+      (arguments
+       `(#:asd-system-name "xembed"))
+      (inputs
+       `(("sbcl-clx" ,sbcl-clx)))
+      (synopsis "CL(x) xembed protocol implementation ")
+      (description "CL(x) xembed protocol implementation")
+      ;; MIT License
+      (license license:expat))))
+
+(define-public cl-clx-xembed
+  (sbcl-package->cl-source-package sbcl-clx-xembed))
+
+(define-public ecl-clx-xembed
+  (sbcl-package->ecl-package sbcl-clx-xembed))
+
+(define-public sbcl-quantile-estimator
+  (package
+    (name "sbcl-quantile-estimator")
+    (version "0.0.1")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/deadtrickster/quantile-estimator.cl")
+             (commit "84d0ea405d793f5e808c68c4ddaf25417b0ff8e5")))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32
+         "0rlswkf0siaabsvvch3dgxmg45fw5w8pd9b7ri2w7a298aya52z9"))))
+    (build-system asdf-build-system/sbcl)
+    (arguments
+     '(#:asd-system-name "quantile-estimator"))
+    (inputs
+     `(("alexandria" ,sbcl-alexandria)))
+    (home-page "https://github.com/deadtrickster/quantile-estimator.cl")
+    (synopsis
+     "Effective computation of biased quantiles over data streams")
+    (description
+     "Common Lisp implementation of Graham Cormode and S.
+Muthukrishnan's Effective Computation of Biased Quantiles over Data
+Streams in ICDE’05.")
+    (license license:expat)))
+
+(define-public cl-quantile-estimator
+  (sbcl-package->cl-source-package sbcl-quantile-estimator))
+
+(define-public ecl-quantile-estimator
+  (sbcl-package->ecl-package sbcl-quantile-estimator))
+
+(define-public sbcl-prometheus
+  (package
+    (name "sbcl-prometheus")
+    (version "0.4.1")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/deadtrickster/prometheus.cl")
+             (commit "7352b92296996ff383503e19bdd3bcea30409a15")))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32
+         "0fzczls2kfgdx18pja4lqxjrz72i583185d8nq0pb3s331hhzh0z"))))
+    (build-system asdf-build-system/sbcl)
+    (inputs
+     `(("alexandria" ,sbcl-alexandria)
+       ("bordeaux-threads" ,sbcl-bordeaux-threads)
+       ("cl-ppcre" ,sbcl-cl-ppcre)
+       ("local-time" ,sbcl-local-time)
+       ("quantile-estimator" ,sbcl-quantile-estimator)))
+    (home-page "https://github.com/deadtrickster/prometheus.cl")
+    (synopsis "Prometheus.io Common Lisp client")
+    (description "Prometheus.io Common Lisp client.")
+    (license license:expat)))
+
+(define-public cl-prometheus
+  (sbcl-package->cl-source-package sbcl-prometheus))
+
+(define-public ecl-prometheus
+  (sbcl-package->ecl-package sbcl-prometheus))
+
+(define-public sbcl-prometheus.collectors.sbcl
+  (package
+    (inherit sbcl-prometheus)
+    (name "sbcl-prometheus.collectors.sbcl")
+    (inputs `(("prometheus" ,sbcl-prometheus)))
+    (synopsis "Prometheus collector for SBCL metrics")
+    (description "Prometheus collector for SBCL metrics.")))
+
+(define-public cl-prometheus.collectors.sbcl
+  (sbcl-package->cl-source-package sbcl-prometheus.collectors.sbcl))
+
+(define-public sbcl-prometheus.collectors.process
+  (package
+    (inherit sbcl-prometheus)
+    (name "sbcl-prometheus.collectors.process")
+    (inputs
+     `(("cffi" ,sbcl-cffi)
+       ("cffi-grovel" ,sbcl-cffi-grovel)
+       ("cl-fad" ,sbcl-cl-fad)
+       ("prometheus" ,sbcl-prometheus)
+       ("split-sequence" ,sbcl-split-sequence)))
+    (synopsis "Prometheus collector for process metrics")
+    (description "Prometheus collector for process metrics.")))
+
+(define-public cl-prometheus.collectors.process
+  (sbcl-package->cl-source-package sbcl-prometheus.collectors.process))
+
+(define-public ecl-prometheus.collectors.process
+  (sbcl-package->ecl-package sbcl-prometheus.collectors.process))
+
+(define-public sbcl-prometheus.formats.text
+  (package
+    (inherit sbcl-prometheus)
+    (name "sbcl-prometheus.formats.text")
+    (inputs
+     `(("alexandria" ,sbcl-alexandria)
+       ("prometheus" ,sbcl-prometheus)))
+    (synopsis "Prometheus client text format")
+    (description "Prometheus client text format.")))
+
+(define-public cl-prometheus.formats.text
+  (sbcl-package->cl-source-package sbcl-prometheus.formats.text))
+
+(define-public ecl-prometheus.formats.text
+  (sbcl-package->ecl-package sbcl-prometheus.formats.text))
+
+(define-public sbcl-prometheus.exposers.hunchentoot
+  (package
+    (inherit sbcl-prometheus)
+    (name "sbcl-prometheus.exposers.hunchentoot")
+    (inputs
+     `(("hunchentoot" ,sbcl-hunchentoot)
+       ("prometheus" ,sbcl-prometheus)
+       ("prometheus.formats.text" ,sbcl-prometheus.formats.text)
+       ("salza2" ,sbcl-salza2)
+       ("trivial-utf-8" ,sbcl-trivial-utf-8)))
+    (synopsis "Prometheus collector for Hunchentoot metrics")
+    (description "Prometheus collector for Hunchentoot metrics")))
+
+(define-public cl-prometheus.exposers.hunchentoot
+  (sbcl-package->cl-source-package sbcl-prometheus.exposers.hunchentoot))
+
+(define-public sbcl-prometheus.pushgateway
+  (package
+    (inherit sbcl-prometheus)
+    (name "sbcl-prometheus.pushgateway")
+    (inputs
+     `(("drakma" ,sbcl-drakma)
+       ("prometheus" ,sbcl-prometheus)
+       ("prometheus.formats.text" ,sbcl-prometheus.formats.text)))
+    (synopsis "Prometheus Pushgateway client")
+    (description "Prometheus Pushgateway client.")))
+
+(define-public cl-prometheus.pushgateway
+  (sbcl-package->cl-source-package sbcl-prometheus.pushgateway))
+
+(define-public ecl-prometheus.pushgateway
+  (sbcl-package->ecl-package sbcl-prometheus.pushgateway))
+
+(define-public sbcl-uuid
+  (let ((commit "e7d6680c3138385c0708f7aaf0c96622eeb140e8"))
+    (package
+      (name "sbcl-uuid")
+      (version (git-version "2012.12.26" "1" commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/dardoria/uuid")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32
+           "0jnyp2kibcf5cwi60l6grjrj8wws9chasjvsw7xzwyym2lyid46f"))))
+      (build-system asdf-build-system/sbcl)
+      (inputs
+       `(("ironclad" ,sbcl-ironclad)
+         ("trivial-utf-8" ,sbcl-trivial-utf-8)))
+      (home-page "https://github.com/dardoria/uuid")
+      (synopsis
+       "Common Lisp implementation of UUIDs according to RFC4122")
+      (description
+       "Common Lisp implementation of UUIDs according to RFC4122.")
+      (license license:llgpl))))
+
+(define-public cl-uuid
+  (sbcl-package->cl-source-package sbcl-uuid))
+
+(define-public ecl-uuid
+  (sbcl-package->ecl-package sbcl-uuid))
+
+(define-public sbcl-dissect
+  (let ((commit "cffd38479f0e64e805f167bbdb240b783ecc8d45"))
+    (package
+      (name "sbcl-dissect")
+      (version (git-version "1.0.0" "1" commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/Shinmera/dissect")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32
+           "0rmsjkgjl90gl6ssvgd60hb0d5diyhsiyypvw9hbc0ripvbmk5r5"))))
+      (build-system asdf-build-system/sbcl)
+      (inputs
+       `(("cl-ppcre" ,sbcl-cl-ppcre)))
+      (home-page "https://shinmera.github.io/dissect/")
+      (synopsis
+       "Introspection library for the call stack and restarts")
+      (description
+       "Dissect is a small Common Lisp library for introspecting the call stack
+and active restarts.")
+      (license license:zlib))))
+
+(define-public cl-dissect
+  (sbcl-package->cl-source-package sbcl-dissect))
+
+(define-public ecl-dissect
+  (sbcl-package->ecl-package sbcl-dissect))
+
+;; TODO: Uses ASDF's package-inferred-system which is not supported by
+;; asdf-build-system/sbcl as of 2020-05-21. We should fix
+;; asdf-build-system/sbcl.
+(define-public sbcl-rove
+  (package
+    (name "sbcl-rove")
+    (version "0.9.6")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/fukamachi/rove")
+             (commit "f3695db08203bf26f3b861dc22ac0f4257d3ec21")))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32
+         "07ala4l2fncxf540fzxj3h5mhi9i4wqllhj0rqk8m2ljl5zbz89q"))))
+    (build-system asdf-build-system/sbcl)
+    (inputs
+     `(("bordeaux-threads" ,sbcl-bordeaux-threads)
+       ("dissect" ,sbcl-dissect)
+       ("trivial-gray-streams" ,sbcl-trivial-gray-streams)))
+    (home-page "https://github.com/fukamachi/rove")
+    (synopsis
+     "Yet another common lisp testing library")
+    (description
+     "Rove is a unit testing framework for Common Lisp applications.
+This is intended to be a successor of Prove.")
+    (license license:bsd-3)))
+
+(define-public cl-rove
+  (sbcl-package->cl-source-package sbcl-rove))
+
+(define-public ecl-rove
+  (sbcl-package->ecl-package sbcl-rove))
+
+(define-public sbcl-exponential-backoff
+  (let ((commit "8d9e8444d8b3184a524c12ce3449f91613ab714f"))
+    (package
+      (name "sbcl-exponential-backoff")
+      (version (git-version "0" "1" commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/death/exponential-backoff")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32
+           "1389hm9hxv85s0125ja4js1bvh8ay4dsy9q1gaynjv27ynik6gmv"))))
+      (build-system asdf-build-system/sbcl)
+      (home-page "https://github.com/death/exponential-backoff")
+      (synopsis "Exponential backoff algorithm in Common Lisp")
+      (description
+       "An implementation of the exponential backoff algorithm in Common Lisp.
+Inspired by the implementation found in Chromium.  Read the header file to
+learn about each of the parameters.")
+      (license license:expat))))
+
+(define-public cl-exponential-backoff
+  (sbcl-package->cl-source-package sbcl-exponential-backoff))
+
+(define-public ecl-exponential-backoff
+  (sbcl-package->ecl-package sbcl-exponential-backoff))
+
+(define-public sbcl-sxql
+  (let ((commit "5aa8b739492c5829e8623432b5d46482263990e8"))
+    (package
+      (name "sbcl-sxql")
+      (version (git-version "0.1.0" "1" commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/fukamachi/sxql")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32
+           "0k25p6w2ld9cn8q8s20lda6yjfyp4q89219sviayfgixnj27avnj"))))
+      (build-system asdf-build-system/sbcl)
+      (arguments
+       `(#:test-asd-file "sxql-test.asd"))
+      (inputs
+       `(("alexandria" ,sbcl-alexandria)
+         ("cl-syntax-annot" ,sbcl-cl-syntax-annot)
+         ("iterate" ,sbcl-iterate)
+         ("optima" ,sbcl-optima)
+         ("split-sequence" ,sbcl-split-sequence)
+         ("trivial-types" ,sbcl-trivial-types)))
+      (native-inputs
+       `(("prove" ,sbcl-prove)
+         ("prove-asdf" ,sbcl-prove-asdf)))
+      (home-page "https://github.com/fukamachi/sxql")
+      (synopsis "SQL generator for Common Lisp")
+      (description "SQL generator for Common Lisp.")
+      (license license:bsd-3))))
+
+(define-public cl-sxql
+  (sbcl-package->cl-source-package sbcl-sxql))
+
+(define-public ecl-sxql
+  (sbcl-package->ecl-package sbcl-sxql))
+
+(define-public sbcl-1am
+  (let ((commit "8b1da94eca4613fd8a20bdf63f0e609e379b0ba5"))
+    (package
+      (name "sbcl-1am")
+      (version (git-version "0.0" "1" commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/lmj/1am")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32
+           "05ss4nz1jb9kb796295482b62w5cj29msfj8zis33sp2rw2vmv2g"))))
+      (build-system asdf-build-system/sbcl)
+      (arguments
+       `(#:asd-system-name "1am"))
+      (home-page "https://github.com/lmj/1am")
+      (synopsis "Minimal testing framework for Common Lisp")
+      (description "A minimal testing framework for Common Lisp.")
+      (license license:expat))))
+
+(define-public cl-1am
+  (sbcl-package->cl-source-package sbcl-1am))
+
+(define-public ecl-1am
+  (sbcl-package->ecl-package sbcl-1am))
+
+(define-public sbcl-cl-ascii-table
+  (let ((commit "d9f5e774a56fad1b416e4dadb8f8a5b0e84094e2")
+        (revision "1"))
+    (package
+      (name "sbcl-cl-ascii-table")
+      (version (git-version "0.0.0" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/telephil/cl-ascii-table")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32 "125fdif9sgl7k0ngjhxv0wjas2q27d075025hvj2rx1b1x948z4s"))))
+      (build-system asdf-build-system/sbcl)
+      (synopsis "Library to make ascii-art tables")
+      (description
+       "This is a Common Lisp library to present tabular data in ascii-art
+tables.")
+      (home-page "https://github.com/telephil/cl-ascii-table")
+      (license license:expat))))
+
+(define-public cl-ascii-table
+  (sbcl-package->cl-source-package sbcl-cl-ascii-table))
+
+(define-public ecl-cl-ascii-table
+  (sbcl-package->ecl-package sbcl-cl-ascii-table))
+
+(define-public sbcl-cl-rdkafka
+  (package
+    (name "sbcl-cl-rdkafka")
+    (version "1.0.2")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/SahilKang/cl-rdkafka")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32
+         "1qcgfd4h7syilzmrmd4z2vknbvawda3q3ykw7xm8n381syry4g82"))))
+    (build-system asdf-build-system/sbcl)
+    (arguments
+     `(#:tests? #f ; Attempts to connect to locally running Kafka
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'fix-paths
+           (lambda* (#:key inputs #:allow-other-keys)
+             (substitute* "src/low-level/librdkafka-bindings.lisp"
+               (("librdkafka" all)
+                (string-append (assoc-ref inputs "librdkafka") "/lib/"
+                               all)))))
+         (add-before 'cleanup 'move-bundle
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let* ((out (assoc-ref outputs "out"))
+                    (actual (string-append out "/lib/sbcl/src/cl-rdkafka.fasl"))
+                    (expected (string-append
+                               out "/lib/sbcl/cl-rdkafka--system.fasl")))
+               (copy-file actual expected)
+               #t))))))
+    (inputs
+     `(("bordeaux-threads" ,sbcl-bordeaux-threads)
+       ("cffi" ,sbcl-cffi)
+       ("cffi-grovel" ,sbcl-cffi-grovel)
+       ("librdkafka" ,librdkafka)
+       ("lparallel" ,sbcl-lparallel)
+       ("trivial-garbage" ,sbcl-trivial-garbage)))
+    (home-page "https://github.com/SahilKang/cl-rdkafka")
+    (synopsis "Common Lisp client library for Apache Kafka")
+    (description "A Common Lisp client library for Apache Kafka.")
+    (license license:gpl3)))
+
+(define-public cl-rdkafka
+  (sbcl-package->cl-source-package sbcl-cl-rdkafka))
+
+(define-public sbcl-acclimation
+  (let ((commit "4d51150902568fcd59335f4cc4cfa022df6116a5"))
+    (package
+      (name "sbcl-acclimation")
+      (version (git-version "0.0.0" "1" commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/robert-strandh/Acclimation")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32
+           "1aw7rarjl8ai57h0jxnp9hr3dka7qrs55mmbl1p6rhd6xj8mp9wq"))))
+      (build-system asdf-build-system/sbcl)
+      (home-page "https://github.com/robert-strandh/Acclimation")
+      (synopsis "Internationalization library for Common Lisp")
+      (description "This project is meant to provide tools for
+internationalizing Common Lisp programs.
+
+One important aspect of internationalization is of course the language used in
+error messages, documentation strings, etc.  But with this project we provide
+tools for all other aspects of internationalization as well, including dates,
+weight, temperature, names of physical quantitites, etc.")
+      (license license:bsd-2))))
+
+(define-public cl-acclimation
+  (sbcl-package->cl-source-package sbcl-acclimation))
+
+(define-public sbcl-clump-2-3-tree
+  (let ((commit "1ea4dbac1cb86713acff9ae58727dd187d21048a"))
+    (package
+      (name "sbcl-clump-2-3-tree")
+      (version (git-version "0.0.0" "1" commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/robert-strandh/Clump")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32
+           "1639msyagsswj85gc0wd90jgh8588j3qg5q70by9s2brf2q6w4lh"))))
+      (arguments
+       '(#:asd-file "2-3-tree/clump-2-3-tree.asd"
+         #:asd-system-name "clump-2-3-tree"))
+      (inputs
+       `(("acclimation" ,sbcl-acclimation)))
+      (build-system asdf-build-system/sbcl)
+      (home-page "https://github.com/robert-strandh/Clump")
+      (synopsis "Implementation of 2-3 trees for Common Lisp")
+      (description "The purpose of this library is to provide a collection of
+implementations of trees.
+
+In contrast to existing libraries such as cl-containers, it does not impose a
+particular use for the trees.  Instead, it aims for a stratified design,
+allowing client code to choose between different levels of abstraction.
+
+As a consequence of this policy, low-level interfaces are provided where
+the concrete representation is exposed, but also high level interfaces
+where the trees can be used as search trees or as trees that represent
+sequences of objects.")
+      (license license:bsd-2))))
+
+(define-public sbcl-clump-binary-tree
+  (package
+    (inherit sbcl-clump-2-3-tree)
+    (name "sbcl-clump-binary-tree")
+    (arguments
+     '(#:asd-file "Binary-tree/clump-binary-tree.asd"
+       #:asd-system-name "clump-binary-tree"))
+    (synopsis "Implementation of binary trees for Common Lisp")))
+
+(define-public sbcl-clump
+  (package
+    (inherit sbcl-clump-2-3-tree)
+    (name "sbcl-clump")
+    (arguments
+     '(#:asd-file "clump.asd"
+       #:asd-system-name "clump"))
+    (inputs
+     `(("clump-2-3-tree" ,sbcl-clump-2-3-tree)
+       ("clump-binary-tree" ,sbcl-clump-binary-tree)))
+    (synopsis "Collection of tree implementations for Common Lisp")))
+
+(define-public cl-clump
+  (sbcl-package->cl-source-package sbcl-clump))
+
+(define-public sbcl-cluffer-base
+  (let ((commit "4aad29c276a58a593064e79972ee4d77cae0af4a"))
+    (package
+      (name "sbcl-cluffer-base")
+      (version (git-version "0.0.0" "1" commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/robert-strandh/cluffer")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32
+           "1bcg13g7qb3dr8z50aihdjqa6miz5ivlc9wsj2csgv1km1mak2kj"))))
+      (arguments
+       '(#:asd-file "Base/cluffer-base.asd"
+         #:asd-system-name "cluffer-base"))
+      (inputs
+       `(("acclimation" ,sbcl-acclimation)))
+      (build-system asdf-build-system/sbcl)
+      (home-page "https://github.com/robert-strandh/cluffer")
+      (synopsis "Common Lisp library providing a protocol for text-editor buffers")
+      (description "Cluffer is a library for representing the buffer of a text
+editor.  As such, it defines a set of CLOS protocols for client code to
+interact with the buffer contents in various ways, and it supplies different
+implementations of those protocols for different purposes.")
+      (license license:bsd-2))))
+
+(define-public sbcl-cluffer-standard-line
+  (package
+    (inherit sbcl-cluffer-base)
+    (name "sbcl-cluffer-standard-line")
+    (arguments
+     '(#:asd-file "Standard-line/cluffer-standard-line.asd"
+       #:asd-system-name "cluffer-standard-line"))
+    (inputs
+     `(("cluffer-base" ,sbcl-cluffer-base)))))
+
+(define-public sbcl-cluffer-standard-buffer
+  (package
+    (inherit sbcl-cluffer-base)
+    (name "sbcl-cluffer-standard-buffer")
+    (arguments
+     '(#:asd-file "Standard-buffer/cluffer-standard-buffer.asd"
+       #:asd-system-name "cluffer-standard-buffer"))
+    (inputs
+     `(("cluffer-base" ,sbcl-cluffer-base)
+       ("clump" ,sbcl-clump)))))
+
+(define-public sbcl-cluffer-simple-line
+  (package
+    (inherit sbcl-cluffer-base)
+    (name "sbcl-cluffer-simple-line")
+    (arguments
+     '(#:asd-file "Simple-line/cluffer-simple-line.asd"
+       #:asd-system-name "cluffer-simple-line"))
+    (inputs
+     `(("cluffer-base" ,sbcl-cluffer-base)))))
+
+(define-public sbcl-cluffer-simple-buffer
+  (package
+    (inherit sbcl-cluffer-base)
+    (name "sbcl-cluffer-simple-buffer")
+    (arguments
+     '(#:asd-file "Simple-buffer/cluffer-simple-buffer.asd"
+       #:asd-system-name "cluffer-simple-buffer"))
+    (inputs
+     `(("cluffer-base" ,sbcl-cluffer-base)))))
+
+(define-public sbcl-cluffer
+  (package
+    (inherit sbcl-cluffer-base)
+    (name "sbcl-cluffer")
+    (arguments
+     '(#:asd-file "cluffer.asd"
+       #:asd-system-name "cluffer"))
+    (inputs
+     `(("cluffer-base" ,sbcl-cluffer-base)
+       ("cluffer-standard-line" ,sbcl-cluffer-standard-line)
+       ("cluffer-standard-buffer" ,sbcl-cluffer-standard-buffer)
+       ("cluffer-simple-line" ,sbcl-cluffer-simple-line)
+       ("cluffer-simple-buffer" ,sbcl-cluffer-simple-buffer)))))
+
+(define-public cl-cluffer
+  (sbcl-package->cl-source-package sbcl-cluffer))
+
+(define-public sbcl-cl-libsvm-format
+  (let ((commit "3300f84fd8d9f5beafc114f543f9d83417c742fb")
+        (revision "0"))
+    (package
+      (name "sbcl-cl-libsvm-format")
+      (version (git-version "0.1.0" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/masatoi/cl-libsvm-format")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32
+           "0284aj84xszhkhlivaigf9qj855fxad3mzmv3zfr0qzb5k0nzwrg"))))
+      (build-system asdf-build-system/sbcl)
+      (native-inputs
+       `(("prove" ,sbcl-prove)
+         ("prove-asdf" ,sbcl-prove-asdf)))
+      (inputs
+       `(("alexandria" ,sbcl-alexandria)))
+      (synopsis "LibSVM data format reader for Common Lisp")
+      (description
+       "This Common Lisp library provides a fast reader for data in LibSVM
+format.")
+      (home-page "https://github.com/masatoi/cl-libsvm-format")
+      (license license:expat))))
+
+(define-public cl-libsvm-format
+  (sbcl-package->cl-source-package sbcl-cl-libsvm-format))
+
+(define-public ecl-cl-libsvm-format
+  (sbcl-package->ecl-package sbcl-cl-libsvm-format))
+
+(define-public sbcl-cl-online-learning
+  (let ((commit "fc7a34f4f161cd1c7dd747d2ed8f698947781423")
+        (revision "0"))
+    (package
+      (name "sbcl-cl-online-learning")
+      (version (git-version "0.5" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/masatoi/cl-online-learning")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32
+           "14x95rlg80ay5hv645ki57pqvy12v28hz4k1w0f6bsfi2rmpxchq"))))
+      (build-system asdf-build-system/sbcl)
+      (native-inputs
+       `(("prove" ,sbcl-prove)
+         ("prove-asdf" ,sbcl-prove-asdf)))
+      (inputs
+       `(("cl-libsvm-format" ,sbcl-cl-libsvm-format)
+         ("cl-store" ,sbcl-cl-store)))
+      (arguments
+       `(;; FIXME: Tests pass but then the check phase crashes
+         #:tests? #f))
+      (synopsis "Online Machine Learning for Common Lisp")
+      (description
+       "This library contains a collection of machine learning algorithms for
+online linear classification written in Common Lisp.")
+      (home-page "https://github.com/masatoi/cl-online-learning")
+      (license license:expat))))
+
+(define-public cl-online-learning
+  (sbcl-package->cl-source-package sbcl-cl-online-learning))
+
+(define-public ecl-cl-online-learning
+  (sbcl-package->ecl-package sbcl-cl-online-learning))
+
+(define-public sbcl-cl-random-forest
+  (let ((commit "fedb36ce99bb6f4d7e3a7dd6d8b058f331308f91")
+        (revision "1"))
+    (package
+      (name "sbcl-cl-random-forest")
+      (version (git-version "0.1" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/masatoi/cl-random-forest")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32
+           "0wqh4dxy5hrvm14jgyfypwhdw35f24rsksid4blz5a6l2z16rlmq"))))
+      (build-system asdf-build-system/sbcl)
+      (native-inputs
+       `(("prove" ,sbcl-prove)
+         ("prove-asdf" ,sbcl-prove-asdf)
+         ("trivial-garbage" ,sbcl-trivial-garbage)))
+      (inputs
+       `(("alexandria" ,sbcl-alexandria)
+         ("cl-libsvm-format" ,sbcl-cl-libsvm-format)
+         ("cl-online-learning" ,sbcl-cl-online-learning)
+         ("lparallel" ,sbcl-lparallel)))
+      (arguments
+       `(#:tests? #f)) ; The tests download data from the Internet
+      (synopsis "Random Forest and Global Refinement for Common Lisp")
+      (description
+       "CL-random-forest is an implementation of Random Forest for multiclass
+classification and univariate regression written in Common Lisp.  It also
+includes an implementation of Global Refinement of Random Forest.")
+      (home-page "https://github.com/masatoi/cl-random-forest")
+      (license license:expat))))
+
+(define-public cl-random-forest
+  (sbcl-package->cl-source-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))