gnu: facter: Update to 4.0.33.
[jackhill/guix/guix.git] / gnu / packages / lisp-xyz.scm
index 7ba414f..b8216b0 100644 (file)
@@ -19,6 +19,7 @@
 ;;; Copyright © 2020 Konrad Hinsen <konrad.hinsen@fastmail.net>
 ;;; Copyright © 2020 Dimakis Dimakakos <me@bendersteed.tech>
 ;;; Copyright © 2020 Oleg Pykhalov <go.wigust@gmail.com>
+;;; Copyright © 2020 Adam Kandur <rndd@tuta.io>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -54,6 +55,7 @@
   #:use-module (gnu packages compression)
   #:use-module (gnu packages databases)
   #:use-module (gnu packages enchant)
+  #:use-module (gnu packages fonts)
   #:use-module (gnu packages fontutils)
   #:use-module (gnu packages glib)
   #:use-module (gnu packages gtk)
@@ -1386,10 +1388,11 @@ several blockable channels.)")
   (sbcl-package->ecl-package sbcl-jpl-queues))
 
 (define-public sbcl-eos
-  (let ((commit "b0faca83781ead9a588661e37bd47f90362ccd94"))
+  (let ((commit "b4413bccc4d142cbe1bf49516c3a0a22c9d99243")
+        (revision "2"))
     (package
       (name "sbcl-eos")
-      (version (git-version "0.0.0" "1" commit))
+      (version (git-version "0.0.0" revision commit))
       (source
        (origin
          (method git-fetch)
@@ -1397,8 +1400,7 @@ several blockable channels.)")
                (url "https://github.com/adlai/Eos")
                (commit commit)))
          (sha256
-          (base32
-           "1bq8cfg087iyxmxi1mwgx5cfgy3b8ydrf81xljcis8qbgb2vszph"))
+          (base32 "1afllvmlnx97yzz404gycl3pa3kwx427k3hrbf37rpmjlv47knhk"))
          (file-name (git-file-name "eos" version))))
       (build-system asdf-build-system/sbcl)
       (synopsis "Unit Testing for Common Lisp")
@@ -12875,13 +12877,22 @@ specification}, a toolkit for writing GUIs in Common Lisp.")
        ("cl-paths-ttf" ,sbcl-cl-paths-ttf)
        ("cl-vectors" ,sbcl-cl-vectors)
        ("clim-basic" ,sbcl-clim-basic)
+       ("font-dejavu" ,font-dejavu)
        ("zpb-ttf" ,sbcl-zpb-ttf)))
     (arguments
-     '(#:asd-file "./Extensions/fonts/mcclim-fonts.asd"
+     '(#:asd-file "Extensions/fonts/mcclim-fonts.asd"
        #:asd-system-name "mcclim-fonts/truetype"
-       ;; Tests want access to user's fonts, which are not available in
-       ;; build container.
-       #:tests? #f))))
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'fix-paths
+           (lambda* (#:key inputs #:allow-other-keys)
+             ;; mcclim-truetype uses DejaVu as default font and
+             ;; sets the path at build time.
+             (substitute* "Extensions/fonts/fontconfig.lisp"
+               (("/usr/share/fonts/truetype/dejavu/")
+                (string-append (assoc-ref inputs "font-dejavu")
+                               "/share/fonts/truetype/")))
+             #t)))))))
 
 (define-public sbcl-mcclim-fonts-clx-truetype
   (package
@@ -12922,3 +12933,579 @@ specification}, a toolkit for writing GUIs in Common Lisp.")
                (("mcclim-fonts/clx-truetype")
                 "mcclim-fonts-clx-truetype"))
              #t)))))))
+
+(define-public sbcl-mcclim-fontconfig
+  (package
+    (inherit sbcl-clim-lisp)
+    (name "sbcl-mcclim-fontconfig")
+    (native-inputs
+     `(("pkg-config" ,pkg-config)))
+    (inputs
+     `(("alexandria" ,sbcl-alexandria)
+       ("cffi" ,sbcl-cffi)
+       ("cffi-grovel" ,sbcl-cffi-grovel)
+       ("fontconfig" ,fontconfig)))
+    (arguments
+     '(#:asd-file "Extensions/fontconfig/mcclim-fontconfig.asd"
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'fix-paths
+           (lambda* (#:key inputs #:allow-other-keys)
+             (substitute* "Extensions/fontconfig/src/functions.lisp"
+               (("libfontconfig\\.so")
+                (string-append (assoc-ref inputs "fontconfig")
+                               "/lib/libfontconfig.so")))
+             #t))
+         (add-after 'unpack 'fix-build
+           (lambda _
+             ;; The cffi-grovel system does not get loaded automatically,
+             ;; so we load it explicitly.
+             (substitute* "Extensions/fontconfig/mcclim-fontconfig.asd"
+               (("\\(asdf:defsystem #:mcclim-fontconfig" all)
+                (string-append "(asdf:load-system :cffi-grovel)\n" all)))
+             #t)))))))
+
+(define-public sbcl-mcclim-harfbuzz
+  (package
+    (inherit sbcl-clim-lisp)
+    (name "sbcl-mcclim-harfbuzz")
+    (native-inputs
+     `(("pkg-config" ,pkg-config)))
+    (inputs
+     `(("alexandria" ,sbcl-alexandria)
+       ("cffi" ,sbcl-cffi)
+       ("cffi-grovel" ,sbcl-cffi-grovel)
+       ("freetype" ,freetype)
+       ("harfbuzz" ,harfbuzz)
+       ("trivial-garbage" ,sbcl-trivial-garbage)))
+    (arguments
+     '(#:asd-file "Extensions/harfbuzz/mcclim-harfbuzz.asd"
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'fix-paths
+           (lambda* (#:key inputs #:allow-other-keys)
+             (substitute* "Extensions/harfbuzz/src/functions.lisp"
+               (("libharfbuzz\\.so")
+                (string-append (assoc-ref inputs "harfbuzz")
+                               "/lib/libharfbuzz.so")))
+             #t))
+         (add-after 'unpack 'fix-build
+           (lambda _
+             ;; The cffi-grovel system does not get loaded automatically,
+             ;; so we load it explicitly.
+             (substitute* "Extensions/harfbuzz/mcclim-harfbuzz.asd"
+               (("\\(asdf:defsystem #:mcclim-harfbuzz" all)
+                (string-append "(asdf:load-system :cffi-grovel)\n" all)))
+             #t)))))))
+
+(define-public sbcl-mcclim-fonts-clx-freetype
+  (package
+    (inherit sbcl-clim-lisp)
+    (name "sbcl-mcclim-fonts-clx-freetype")
+    (inputs
+     `(("cl-freetype2" ,sbcl-cl-freetype2)
+       ("mcclim-clx" ,sbcl-mcclim-clx)
+       ("mcclim-fontconfig" ,sbcl-mcclim-fontconfig)
+       ("mcclim-fonts" ,sbcl-mcclim-fonts)
+       ("mcclim-harfbuzz" ,sbcl-mcclim-harfbuzz)
+       ("swank" ,cl-slime-swank))) ; For drei-mcclim
+    (arguments
+     '(#:asd-file "Extensions/fonts/mcclim-fonts.asd"
+       #:asd-system-name "mcclim-fonts/clx-freetype"))))
+
+(define-public sbcl-mcclim-clx-freetype
+  (package
+    (inherit sbcl-clim-lisp)
+    (name "sbcl-mcclim-clx-freetype")
+    (inputs
+     `(("mcclim-clx" ,sbcl-mcclim-clx)
+       ("mcclim-fonts-clx-freetype" ,sbcl-mcclim-fonts-clx-freetype)
+       ("swank" ,cl-slime-swank))) ; For drei-mcclim
+    (arguments
+     '(#:asd-file "Backends/CLX/mcclim-clx.asd"
+       #:asd-system-name "mcclim-clx/freetype"
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'fix-asd-system-names
+           (lambda _
+             (substitute* "Backends/CLX/mcclim-clx.asd"
+               (("mcclim-fonts/clx-freetype")
+                "mcclim-fonts-clx-freetype"))
+             #t)))))))
+
+(define-public sbcl-mcclim-render
+  (package
+    (inherit sbcl-clim-lisp)
+    (name "sbcl-mcclim-render")
+    (inputs
+     `(("alexandria" ,sbcl-alexandria)
+       ("cl-vectors" ,sbcl-cl-vectors)
+       ("clim-basic" ,sbcl-clim-basic)
+       ("mcclim-backend-common" ,sbcl-mcclim-backend-common)
+       ("mcclim-fonts-truetype" ,sbcl-mcclim-fonts-truetype)
+       ("swank" ,cl-slime-swank))) ; For drei-mcclim
+    (arguments
+     '(#:asd-file "Extensions/render/mcclim-render.asd"
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'fix-asd-system-names
+           (lambda _
+             (substitute* "Extensions/render/mcclim-render.asd"
+               (("mcclim-fonts/truetype")
+                "mcclim-fonts-truetype"))
+             #t)))))))
+
+(define-public sbcl-mcclim-clx-fb
+  (package
+    (inherit sbcl-clim-lisp)
+    (name "sbcl-mcclim-clx-fb")
+    (inputs
+     `(("mcclim-backend-common" ,sbcl-mcclim-backend-common)
+       ("mcclim-clx" ,sbcl-mcclim-clx)
+       ("mcclim-render" ,sbcl-mcclim-render)
+       ("swank" ,cl-slime-swank))) ; For drei-mcclim
+    (arguments
+     '(#:asd-file "Backends/CLX-fb/mcclim-clx-fb.asd"))))
+
+(define-public sbcl-mcclim-null
+  (package
+    (inherit sbcl-clim-lisp)
+    (name "sbcl-mcclim-null")
+    (inputs
+     `(("clim" ,sbcl-clim)
+       ("swank" ,cl-slime-swank))) ; For drei-mcclim
+    (arguments
+     '(#:asd-file "Backends/Null/mcclim-null.asd"))))
+
+(define-public sbcl-clim-postscript-font
+  (package
+    (inherit sbcl-clim-lisp)
+    (name "sbcl-clim-postscript-font")
+    (inputs
+     `(("clim-basic" ,sbcl-clim-basic)
+       ("mcclim-backend-common" ,sbcl-mcclim-backend-common)
+       ("swank" ,cl-slime-swank))) ; For drei-mcclim
+    (arguments
+     '(#:asd-file "Backends/PostScript/clim-postscript-font.asd"))))
+
+(define-public sbcl-clim-postscript
+  (package
+    (inherit sbcl-clim-lisp)
+    (name "sbcl-clim-postscript")
+    (native-inputs
+     `(("fiveam" ,sbcl-fiveam)))
+    (inputs
+     `(("clim-basic" ,sbcl-clim-basic)
+       ("clim-postscript-font" ,sbcl-clim-postscript-font)
+       ("swank" ,cl-slime-swank))) ; For drei-mcclim
+    (arguments
+     '(#:asd-file "Backends/PostScript/clim-postscript.asd"
+       ;; Test suite disabled because of a dependency cycle.
+       ;; The tests depend on mcclim/test-util, which depends on mcclim,
+       ;; wich depends on mcclim/extensions, which depends on clim-postscript.
+       #:tests? #f))))
+
+(define-public sbcl-clim-pdf
+  (package
+    (inherit sbcl-clim-lisp)
+    (name "sbcl-clim-pdf")
+    (native-inputs
+     `(("fiveam" ,sbcl-fiveam)))
+    (inputs
+     `(("cl-pdf" ,sbcl-cl-pdf)
+       ("clim-basic" ,sbcl-clim-basic)
+       ("clim-postscript-font" ,sbcl-clim-postscript-font)
+       ("flexi-streams" ,sbcl-flexi-streams)
+       ("swank" ,cl-slime-swank))) ; For drei-mcclim
+    (arguments
+     '(#:asd-file "Backends/PDF/clim-pdf.asd"
+       ;; Test suite disabled because of a dependency cycle.
+       ;; The tests depend on mcclim/test-util, which depends on mcclim,
+       ;; wich depends on mcclim/extensions, which depends on clim-pdf.
+       #:tests? #f))))
+
+(define-public sbcl-mcclim-looks
+  (package
+    (inherit sbcl-clim-lisp)
+    (name "sbcl-mcclim-looks")
+    (inputs
+     `(("clim" ,sbcl-clim)
+       ("mcclim-clx" ,sbcl-mcclim-clx)
+       ("mcclim-clx-fb" ,sbcl-mcclim-clx-fb)
+       ("mcclim-clx-freetype" ,sbcl-mcclim-clx-freetype)
+       ("mcclim-clx-truetype" ,sbcl-mcclim-clx-truetype)
+       ("mcclim-null" ,sbcl-mcclim-null)
+       ("swank" ,cl-slime-swank))) ; For drei-mcclim
+    (arguments
+     '(#:asd-file "mcclim.asd"
+       #:asd-system-name "mcclim/looks"
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'fix-asd-system-names
+           (lambda _
+             (substitute* "mcclim.asd"
+               (("mcclim-clx/truetype")
+                "mcclim-clx-truetype")
+               (("mcclim-clx/freetype")
+                "mcclim-clx-freetype"))
+             #t)))))))
+
+(define-public sbcl-mcclim-franz
+  (package
+    (inherit sbcl-clim-lisp)
+    (name "sbcl-mcclim-franz")
+    (inputs
+     `(("clim" ,sbcl-clim)
+       ("swank" ,cl-slime-swank))) ; For drei-mcclim
+    (arguments
+     '(#:asd-file "Extensions/Franz/mcclim-franz.asd"))))
+
+(define-public sbcl-mcclim-bezier-core
+  (package
+    (inherit sbcl-clim-lisp)
+    (name "sbcl-mcclim-bezier-core")
+    (inputs
+     `(("clim" ,sbcl-clim)
+       ("clim-pdf" ,sbcl-clim-pdf)
+       ("clim-postscript" ,sbcl-clim-postscript)
+       ("mcclim-null" ,sbcl-mcclim-null)
+       ("mcclim-render" ,sbcl-mcclim-render)
+       ("swank" ,cl-slime-swank))) ; For drei-mcclim
+    (arguments
+     '(#:asd-file "Extensions/bezier/mcclim-bezier.asd"
+       #:asd-system-name "mcclim-bezier/core"))))
+
+(define-public sbcl-mcclim-bezier-clx
+  (package
+    (inherit sbcl-clim-lisp)
+    (name "sbcl-mcclim-bezier-clx")
+    (inputs
+     `(("clim" ,sbcl-clim)
+       ("mcclim-bezier/core" ,sbcl-mcclim-bezier-core)
+       ("mcclim-clx" ,sbcl-mcclim-clx)
+       ("swank" ,cl-slime-swank))) ; For drei-mcclim
+    (arguments
+     '(#:asd-file "Extensions/bezier/mcclim-bezier.asd"
+       #:asd-system-name "mcclim-bezier/clx"
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'fix-asd-system-names
+           (lambda _
+             (substitute* "Extensions/bezier/mcclim-bezier.asd"
+               (("mcclim-bezier/core\\)")
+                "mcclim-bezier-core)"))
+             #t)))))))
+
+(define-public sbcl-mcclim-bezier
+  (package
+    (inherit sbcl-clim-lisp)
+    (name "sbcl-mcclim-bezier")
+    (inputs
+     `(("mcclim-bezier/clx" ,sbcl-mcclim-bezier-clx)
+       ("mcclim-bezier/core" ,sbcl-mcclim-bezier-core)
+       ("swank" ,cl-slime-swank))) ; For drei-mcclim
+    (arguments
+     '(#:asd-file "Extensions/bezier/mcclim-bezier.asd"
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'fix-asd-system-names
+           (lambda _
+             (substitute* "Extensions/bezier/mcclim-bezier.asd"
+               (("\\(#:mcclim-bezier/core")
+                "(#:mcclim-bezier-core")
+               (("#:mcclim-bezier/clx\\)\\)")
+                "#:mcclim-bezier-clx))"))
+             #t)))))))
+
+(define-public sbcl-mcclim-bitmaps
+  (package
+    (inherit sbcl-clim-lisp)
+    (name "sbcl-mcclim-bitmaps")
+    (inputs
+     `(("clim-basic" ,sbcl-clim-basic)
+       ("opticl" ,sbcl-opticl)))
+    (arguments
+     '(#:asd-file "Extensions/bitmap-formats/mcclim-bitmaps.asd"))))
+
+(define-public sbcl-conditional-commands
+  (package
+    (inherit sbcl-clim-lisp)
+    (name "sbcl-conditional-commands")
+    (inputs
+     `(("clim-basic" ,sbcl-clim-basic)))
+    (arguments
+     '(#:asd-file "Extensions/conditional-commands/conditional-commands.asd"))))
+
+(define-public sbcl-mcclim-layouts-tab
+  (package
+    (inherit sbcl-clim-lisp)
+    (name "sbcl-mcclim-layouts-tab")
+    (inputs
+     `(("clim" ,sbcl-clim)
+       ("swank" ,cl-slime-swank))) ; For drei-mcclim
+    (arguments
+     '(#:asd-file "Extensions/layouts/mcclim-layouts.asd"
+       #:asd-system-name "mcclim-layouts/tab"))))
+
+(define-public sbcl-mcclim-extensions
+  (package
+    (inherit sbcl-clim-lisp)
+    (name "sbcl-mcclim-extensions")
+    (inputs
+     `(("clim-pdf" ,sbcl-clim-pdf)
+       ("clim-postscript" ,sbcl-clim-postscript)
+       ("conditional-commands" ,sbcl-conditional-commands)
+       ("mcclim-bezier" ,sbcl-mcclim-bezier)
+       ("mcclim-bitmaps" ,sbcl-mcclim-bitmaps)
+       ("mcclim-franz" ,sbcl-mcclim-franz)
+       ("mcclim-layouts-tab" ,sbcl-mcclim-layouts-tab)
+       ("swank" ,cl-slime-swank))) ; For drei-mcclim
+    (arguments
+     '(#:asd-file "mcclim.asd"
+       #:asd-system-name "mcclim/extensions"
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'fix-asd-system-names
+           (lambda _
+             (substitute* "mcclim.asd"
+               (("mcclim-layouts/tab")
+                "mcclim-layouts-tab"))
+             #t)))))))
+
+(define-public sbcl-mcclim
+  (package
+    (inherit sbcl-clim-lisp)
+    (name "sbcl-mcclim")
+    (native-inputs
+     `(("fiveam" ,sbcl-fiveam)))
+    (inputs
+     `(("mcclim-looks" ,sbcl-mcclim-looks)
+       ("mcclim-extensions" ,sbcl-mcclim-extensions)
+       ("swank" ,cl-slime-swank))) ; For drei-mcclim
+    (arguments
+     '(#:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'fix-asd-system-names
+           (lambda _
+             (substitute* "mcclim.asd"
+               ((":depends-on \\(\"mcclim/looks\" \"mcclim/extensions\"\\)")
+                ":depends-on (\"mcclim-looks\" \"mcclim-extensions\")"))
+             #t)))
+       ;; Test suite disabled because of a dependency cycle.
+       ;; The tests depend on mcclim/test-util, which depends on mcclim.
+       #:tests? #f))))
+
+(define-public cl-mcclim
+  (let ((base (sbcl-package->cl-source-package sbcl-clim-lisp)))
+    (package
+      (inherit base)
+      (name "cl-mcclim")
+      (native-inputs
+       `(("fiveam" ,cl-fiveam)
+         ("pkg-config" ,pkg-config)))
+      (inputs
+       `(("alexandria" ,cl-alexandria)
+         ("babel" ,cl-babel)
+         ("bordeaux-threads" ,cl-bordeaux-threads)
+         ("cffi" ,cl-cffi)
+         ("cl-aa" ,cl-aa)
+         ("cl-freetype2" ,cl-freetype2)
+         ("cl-paths-ttf" ,cl-paths-ttf)
+         ("cl-pdf" ,cl-pdf)
+         ("cl-unicode" ,cl-unicode)
+         ("cl-vectors" ,cl-vectors)
+         ("closer-mop" ,cl-closer-mop)
+         ("clx" ,cl-clx)
+         ("flexi-streams" ,cl-flexi-streams)
+         ("flexichain" ,cl-flexichain)
+         ("fontconfig" ,fontconfig)
+         ("freetype" ,freetype)
+         ("harfbuzz" ,harfbuzz)
+         ("log4cl" ,cl-log4cl)
+         ("opticl" ,cl-opticl)
+         ("spatial-trees" ,cl-spatial-trees)
+         ("trivial-features" ,cl-trivial-features)
+         ("trivial-garbage" ,cl-trivial-garbage)
+         ("trivial-gray-streams" ,cl-trivial-gray-streams)
+         ("swank" ,cl-slime-swank)
+         ("zpb-ttf" ,cl-zpb-ttf))))))
+
+(define-public sbcl-cl-inflector
+  (let ((commit "f1ab16919ccce3bd82a0042677d9616dde2034fe")
+        (revision "1"))
+    (package
+      (name "sbcl-cl-inflector")
+      (version (git-version "0.2" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/AccelerationNet/cl-inflector")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32 "1xwwlhik1la4fp984qnx2dqq24v012qv4x0y49sngfpwg7n0ya7y"))))
+      (build-system asdf-build-system/sbcl)
+      (native-inputs
+       `(("lisp-unit2" ,sbcl-lisp-unit2)))
+      (inputs
+       `(("alexandria" ,sbcl-alexandria)
+         ("cl-ppcre" ,sbcl-cl-ppcre)))
+      (home-page "https://github.com/AccelerationNet/cl-inflector")
+      (synopsis "Library to pluralize/singularize English and Portuguese words")
+      (description
+       "This is a common lisp library to easily pluralize and singularize
+English and Portuguese words.  This is a port of the ruby ActiveSupport
+Inflector module.")
+      (license license:expat))))
+
+(define-public cl-inflector
+  (sbcl-package->cl-source-package sbcl-cl-inflector))
+
+(define-public ecl-cl-inflector
+  (sbcl-package->ecl-package sbcl-cl-inflector))
+
+(define-public sbcl-qbase64
+  (package
+    (name "sbcl-qbase64")
+    (version "0.3.0")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/chaitanyagupta/qbase64")
+             (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "1dir0s70ca3hagxv9x15zq4p4ajgl7jrcgqsza2n2y7iqbxh0dwi"))))
+    (build-system asdf-build-system/sbcl)
+    (inputs
+     `(("metabang-bind" ,sbcl-metabang-bind)
+       ("trivial-gray-streams" ,sbcl-trivial-gray-streams)))
+    (native-inputs
+     `(("fiveam" ,sbcl-fiveam)))
+    (home-page "https://github.com/chaitanyagupta/qbase64")
+    (synopsis "Base64 encoder and decoder for Common Lisp")
+    (description "@code{qbase64} provides a fast and flexible base64 encoder
+and decoder for Common Lisp.")
+    (license license:bsd-3)))
+
+(define-public cl-qbase64
+  (sbcl-package->cl-source-package sbcl-qbase64))
+
+(define-public ecl-qbase64
+  (sbcl-package->ecl-package sbcl-qbase64))
+
+(define-public sbcl-hu.dwim.common-lisp
+  (package
+    (name "sbcl-hu.dwim.common-lisp")
+    (version "2015-07-09")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append
+             "http://beta.quicklisp.org/archive/hu.dwim.common-lisp/"
+             version "/hu.dwim.common-lisp-"
+             (string-replace-substring version "-" "")
+             "-darcs.tgz"))
+       (sha256
+        (base32 "13cxrvh55rw080mvfir7s7k735l9rcfh3khxp97qfwd5rz0gadb9"))))
+    (build-system asdf-build-system/sbcl)
+    (native-inputs
+     `(("hu.dwim.asdf" ,sbcl-hu.dwim.asdf)))
+    (home-page "http://dwim.hu/")
+    (synopsis "Redefine some standard Common Lisp names")
+    (description "This library is a redefinition of the standard Common Lisp
+package that includes a number of renames and shadows. ")
+    (license license:public-domain)))
+
+(define-public cl-hu.dwim.common-lisp
+  (sbcl-package->cl-source-package sbcl-hu.dwim.common-lisp))
+
+(define-public ecl-hu.dwim.common-lisp
+  (sbcl-package->ecl-package sbcl-hu.dwim.common-lisp))
+
+(define-public sbcl-hu.dwim.common
+  (package
+    (name "sbcl-hu.dwim.common")
+    (version "2015-07-09")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append
+             "http://beta.quicklisp.org/archive/hu.dwim.common/"
+             version "/hu.dwim.common-"
+             (string-replace-substring version "-" "")
+             "-darcs.tgz"))
+       (sha256
+        (base32 "12l1rr6w9m99w0b5gc6hv58ainjfhbc588kz6vwshn4gqsxyzbhp"))))
+    (build-system asdf-build-system/sbcl)
+    (native-inputs
+     `(("hu.dwim.asdf" ,sbcl-hu.dwim.asdf)))
+    (inputs
+     `(("alexandria" ,sbcl-alexandria)
+       ("anaphora" ,sbcl-anaphora)
+       ("closer-mop" ,sbcl-closer-mop)
+       ("hu.dwim.common-lisp" ,sbcl-hu.dwim.common-lisp)
+       ("iterate" ,sbcl-iterate)
+       ("metabang-bind" ,sbcl-metabang-bind)))
+    (home-page "http://dwim.hu/")
+    (synopsis "Common Lisp library shared by other hu.dwim systems")
+    (description "")
+    (license license:public-domain)))
+
+(define-public cl-hu.dwim.common
+  (sbcl-package->cl-source-package sbcl-hu.dwim.common))
+
+(define-public ecl-hu.dwim.common
+  (sbcl-package->ecl-package sbcl-hu.dwim.common))
+
+(define-public sbcl-hu.dwim.defclass-star
+  (package
+    (name "sbcl-hu.dwim.defclass-star")
+    (version "2015-07-09")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append
+             "http://beta.quicklisp.org/archive/hu.dwim.defclass-star/"
+             version "/hu.dwim.defclass-star-"
+             (string-replace-substring version "-" "")
+             "-darcs.tgz"))
+       (sha256
+        (base32 "032982lyp0hm0ssxlyh572whi2hr4j1nqkyqlllaj373v0dbs3vs"))))
+    (build-system asdf-build-system/sbcl)
+    (native-inputs
+     `(;; These 2 inputs are only needed tests which are disabled, see below.
+       ;; ("hu.dwim.common" ,sbcl-hu.dwim.common)
+       ;; Need cl- package for the :hu.dwim.stefil+hu.dwim.def+swank system.
+       ;; ("hu.dwim.stefil" ,cl-hu.dwim.stefil)
+       ("hu.dwim.asdf" ,sbcl-hu.dwim.asdf)))
+    (arguments
+     `(#:test-asd-file "hu.dwim.defclass-star.test.asd"
+       ;; Tests require a circular dependency: hu.dwim.stefil -> hu.dwim.def
+       ;; -> hu.dwim.util -> hu.dwim.defclass-star.
+       #:tests? #f))
+    (home-page "http://dwim.hu/?_x=dfxn&_f=mRIMfonK")
+    (synopsis "Simplify definitions with defclass* and friends in Common Lisp")
+    (description "@code{defclass-star} provides defclass* and defcondition* to
+simplify class and condition declarations.  Features include:
+
+@itemize
+@item Automatically export all or select slots at compile time.
+@item Define the @code{:initarg} and @code{:accesor} automatically.
+@item Specify a name transformer for both the @code{:initarg} and
+@code{:accessor}, etc.
+@item Specify the @code{:initform} as second slot value.
+@end itemize
+
+See
+@url{https://common-lisp.net/project/defclass-star/configuration.lisp.html}
+for an example.")
+    (license license:public-domain)))
+
+(define-public cl-hu.dwim.defclass-star
+  (sbcl-package->cl-source-package sbcl-hu.dwim.defclass-star))
+
+(define-public ecl-hu.dwim.defclass-star
+  (sbcl-package->ecl-package sbcl-hu.dwim.defclass-star))