+
+(define-public sbcl-cl-async-util
+ (package
+ (inherit sbcl-cl-async-base)
+ (name "sbcl-cl-async-util")
+ (inputs
+ `(("bordeaux-threads" ,sbcl-bordeaux-threads)
+ ("cffi" ,sbcl-cffi)
+ ("cl-async-base" ,sbcl-cl-async-base)
+ ("cl-libuv" ,sbcl-cl-libuv)
+ ("cl-ppcre" ,sbcl-cl-ppcre)
+ ("fast-io" ,sbcl-fast-io)
+ ("vom" ,sbcl-vom)))
+ (synopsis "Internal utilities for cl-async")))
+
+(define-public cl-async-util
+ (sbcl-package->cl-source-package sbcl-cl-async-util))
+
+(define-public ecl-cl-async-util
+ (sbcl-package->ecl-package sbcl-cl-async-util))
+
+(define-public sbcl-cl-async
+ (package
+ (inherit sbcl-cl-async-base)
+ (name "sbcl-cl-async")
+ (inputs
+ `(("babel" ,sbcl-babel)
+ ("cffi" ,sbcl-cffi)
+ ("cl-async-base" ,sbcl-cl-async-base)
+ ("cl-async-util" ,sbcl-cl-async-util)
+ ("cl-libuv" ,sbcl-cl-libuv)
+ ("cl-ppcre" ,sbcl-cl-ppcre)
+ ("static-vectors" ,sbcl-static-vectors)
+ ("trivial-features" ,sbcl-trivial-features)
+ ("trivial-gray-streams" ,sbcl-trivial-gray-streams)))
+ (synopsis "Asynchronous operations for Common Lisp")))
+
+(define-public cl-async
+ (sbcl-package->cl-source-package sbcl-cl-async))
+
+(define-public ecl-cl-async
+ (sbcl-package->ecl-package sbcl-cl-async))
+
+(define-public sbcl-cl-async-repl
+ (package
+ (inherit sbcl-cl-async-base)
+ (name "sbcl-cl-async-repl")
+ (inputs
+ `(("bordeaux-threads" ,sbcl-bordeaux-threads)
+ ("cl-async" ,sbcl-cl-async)))
+ (arguments
+ (substitute-keyword-arguments (package-arguments sbcl-cl-async-base)
+ ((#:asd-file _ "") "cl-async-repl.asd")))
+ (synopsis "REPL integration for cl-async")))
+
+(define-public cl-async-repl
+ (sbcl-package->cl-source-package sbcl-cl-async-repl))
+
+(define-public ecl-cl-async-repl
+ (sbcl-package->ecl-package sbcl-cl-async-repl))
+
+(define-public sbcl-cl-async-ssl
+ (package
+ (inherit sbcl-cl-async-base)
+ (name "sbcl-cl-async-ssl")
+ (inputs
+ `(("cffi" ,sbcl-cffi)
+ ("cl-async" ,sbcl-cl-async)
+ ("openssl" ,openssl)
+ ("vom" ,sbcl-vom)))
+ (arguments
+ (substitute-keyword-arguments (package-arguments sbcl-cl-async-base)
+ ((#:asd-file _ "") "cl-async-ssl.asd")
+ ((#:phases phases '%standard-phases)
+ `(modify-phases ,phases
+ (add-after 'unpack 'fix-paths
+ (lambda* (#:key inputs #:allow-other-keys)
+ (substitute* "src/ssl/package.lisp"
+ (("libcrypto\\.so")
+ (string-append (assoc-ref inputs "openssl")
+ "/lib/libcrypto.so"))
+ (("libssl\\.so")
+ (string-append (assoc-ref inputs "openssl")
+ "/lib/libssl.so")))
+ #t))))))
+ (synopsis "SSL wrapper around cl-async socket implementation")))
+
+(define-public cl-async-ssl
+ (sbcl-package->cl-source-package sbcl-cl-async-ssl))
+
+(define-public ecl-cl-async-ssl
+ (sbcl-package->ecl-package sbcl-cl-async-ssl))
+
+(define-public sbcl-blackbird
+ (let ((commit "d361f81c1411dec07f6c2dcb11c78f7aea9aaca8")
+ (revision "1"))
+ (package
+ (name "sbcl-blackbird")
+ (version (git-version "0.5.2" revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/orthecreedence/blackbird.git")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "0xfds5yaya64arzr7w1x38karyz11swzbhxx1afldpradj9dh19c"))))
+ (build-system asdf-build-system/sbcl)
+ (inputs
+ `(("vom" ,sbcl-vom)))
+ (native-inputs
+ `(("cl-async" ,sbcl-cl-async)
+ ("fiveam" ,sbcl-fiveam)))
+ (synopsis "Promise implementation for Common Lisp")
+ (description
+ "This is a standalone promise implementation for Common Lisp. It is
+the successor to the now-deprecated cl-async-future project.")
+ (home-page "https://orthecreedence.github.io/blackbird/")
+ (license license:expat))))
+
+(define-public cl-blackbird
+ (sbcl-package->cl-source-package sbcl-blackbird))
+
+(define-public ecl-blackbird
+ (sbcl-package->ecl-package sbcl-blackbird))
+
+(define-public sbcl-cl-async-future
+ (let ((commit "ee36c22a69a9516407458d2ed8b475f1fc473959")
+ (revision "1"))
+ (package
+ (name "sbcl-cl-async-future")
+ (version (git-version "0.4.4.1" revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/orthecreedence/cl-async-future.git")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "0z0sc7qlzzxk99f4l26zp6rai9kv0kj0f599sxai5s44p17zbbvh"))))
+ (build-system asdf-build-system/sbcl)
+ (inputs
+ `(("blackbird" ,sbcl-blackbird)))
+ (native-inputs
+ `(("cl-async" ,sbcl-cl-async)
+ ("eos" ,sbcl-eos)))
+ (synopsis "Futures implementation for Common Lisp")
+ (description
+ "This is futures implementation for Common Lisp. It plugs in nicely
+to cl-async.")
+ (home-page "https://orthecreedence.github.io/cl-async/future")
+ (license license:expat))))
+
+(define-public cl-async-future
+ (sbcl-package->cl-source-package sbcl-cl-async-future))
+
+(define-public ecl-cl-async-future
+ (sbcl-package->ecl-package sbcl-cl-async-future))
+
+(define-public sbcl-green-threads
+ (let ((commit "fff5ebecb441a37e5c511773716aafd84a3c5840")
+ (revision "1"))
+ (package
+ (name "sbcl-green-threads")
+ (version (git-version "0.3" revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/thezerobit/green-threads.git")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "1czw7nr0dwfps76h8hjvglk1wdh53yqbfbvv30whwbgqx33iippz"))))
+ (build-system asdf-build-system/sbcl)
+ (inputs
+ `(("cl-async-future" ,sbcl-cl-async-future)
+ ("cl-cont" ,sbcl-cl-cont)))
+ (native-inputs
+ `(("prove" ,sbcl-prove)))
+ (arguments
+ `(;; TODO: Fix the tests. They fail with:
+ ;; "The function BLACKBIRD::PROMISE-VALUES is undefined"
+ #:tests? #f
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'fix-tests
+ (lambda _
+ (substitute* "green-threads-test.asd"
+ (("cl-test-more")
+ "prove"))
+ #t)))))
+ (synopsis "Cooperative multitasking library for Common Lisp")
+ (description
+ "This library allows for cooperative multitasking with help of cl-cont
+for continuations. It tries to mimic the API of bordeaux-threads as much as
+possible.")
+ (home-page "https://github.com/thezerobit/green-threads")
+ (license license:bsd-3))))
+
+(define-public cl-green-threads
+ (sbcl-package->cl-source-package sbcl-green-threads))
+
+(define-public ecl-green-threads
+ (sbcl-package->ecl-package sbcl-green-threads))
+
+(define-public sbcl-cl-base32
+ (let ((commit "8cdee06fab397f7b0a19583b57e7f0c98405be85")
+ (revision "1"))
+ (package
+ (name "sbcl-cl-base32")
+ (version (git-version "0.1" revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/hargettp/cl-base32.git")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "17jrng8jb05d64ggyd11hp308c2fl5drvf9g175blgrkkl8l4mf8"))))
+ (build-system asdf-build-system/sbcl)
+ (native-inputs
+ `(("lisp-unit" ,sbcl-lisp-unit)))
+ (synopsis "Common Lisp library for base32 encoding and decoding")
+ (description
+ "This package provides functions for base32 encoding and decoding as
+defined in RFC4648.")
+ (home-page "https://github.com/hargettp/cl-base32")
+ (license license:expat))))
+
+(define-public cl-base32
+ (sbcl-package->cl-source-package sbcl-cl-base32))
+
+(define-public ecl-cl-base32
+ (sbcl-package->ecl-package sbcl-cl-base32))
+
+(define-public sbcl-cl-z85
+ (let ((commit "85b3951a9cfa2603acb6aee15567684f9a108098")
+ (revision "1"))
+ (package
+ (name "sbcl-cl-z85")
+ (version (git-version "1.0" revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/glv2/cl-z85.git")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "0r27pidjaxbm7k1rr90nnajwl5xm2kp65g1fv0fva17lzy45z1mp"))))
+ (build-system asdf-build-system/sbcl)
+ (native-inputs
+ `(("cl-octet-streams" ,sbcl-cl-octet-streams)
+ ("fiveam" ,sbcl-fiveam)))
+ (synopsis "Common Lisp library for Z85 encoding and decoding")
+ (description
+ "This package provides functions to encode or decode byte vectors or
+byte streams using the Z85 format, which is a base-85 encoding used by
+ZeroMQ.")
+ (home-page "https://github.com/glv2/cl-z85")
+ (license license:gpl3+))))
+
+(define-public cl-z85
+ (sbcl-package->cl-source-package sbcl-cl-z85))
+
+(define-public ecl-cl-z85
+ (sbcl-package->ecl-package sbcl-cl-z85))
+
+(define-public sbcl-ltk
+ (package
+ (name "sbcl-ltk")
+ (version "0.992")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/herth/ltk.git")
+ (commit version)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "13l2q4mskzilya9xh5wy2xvy30lwn104bd8wrq6ifds56r82iy3x"))))
+ (build-system asdf-build-system/sbcl)
+ (inputs
+ `(("imagemagick" ,imagemagick)
+ ("tk" ,tk)))
+ (arguments
+ `(#:asd-file "ltk/ltk.asd"
+ #:tests? #f
+ #:phases (modify-phases %standard-phases
+ (add-after 'unpack 'fix-paths
+ (lambda* (#:key inputs #:allow-other-keys)
+ (substitute* "ltk/ltk.lisp"
+ (("#-freebsd \"wish\"")
+ (string-append "#-freebsd \""
+ (assoc-ref inputs "tk")
+ "/bin/wish\""))
+ (("do-execute \"convert\"")
+ (string-append "do-execute \""
+ (assoc-ref inputs "imagemagick")
+ "/bin/convert\"")))
+ #t)))))
+ (synopsis "Common Lisp bindings for the Tk GUI toolkit")
+ (description
+ "LTK is a Common Lisp binding for the Tk graphics toolkit. It is written
+in pure Common Lisp and does not require any Tk knowledge for its usage.")
+ (home-page "http://www.peter-herth.de/ltk/")
+ (license license:llgpl)))
+
+(define-public cl-ltk
+ (sbcl-package->cl-source-package sbcl-ltk))
+
+(define-public ecl-ltk
+ (sbcl-package->ecl-package sbcl-ltk))
+
+(define-public sbcl-ltk-mw
+ (package
+ (inherit sbcl-ltk)
+ (name "sbcl-ltk-mw")
+ (inputs
+ `(("ltk" ,sbcl-ltk)))
+ (arguments
+ (substitute-keyword-arguments (package-arguments sbcl-ltk)
+ ((#:asd-file _) "ltk/ltk-mw.asd")
+ ((#:phases _) '%standard-phases)))
+ (synopsis "Extra widgets for LTK")
+ (description
+ "This is a collection of higher-level widgets built on top of LTK.")))
+
+(define-public cl-ltk-mw
+ (sbcl-package->cl-source-package sbcl-ltk-mw))
+
+(define-public ecl-ltk-mw
+ (sbcl-package->ecl-package sbcl-ltk-mw))
+
+(define-public sbcl-ltk-remote
+ (package
+ (inherit sbcl-ltk)
+ (name "sbcl-ltk-remote")
+ (inputs
+ `(("ltk" ,sbcl-ltk)))
+ (arguments
+ (substitute-keyword-arguments (package-arguments sbcl-ltk)
+ ((#:asd-file _) "ltk/ltk-remote.asd")
+ ((#:phases _) '%standard-phases)))
+ (synopsis "Remote GUI support for LTK")
+ (description
+ "This LTK extension allows the GUI to be displayed on a computer different
+from the one running the Lisp program by using a TCP connection.")))
+
+(define-public cl-ltk-remote
+ (sbcl-package->cl-source-package sbcl-ltk-remote))
+
+(define-public sbcl-cl-lex
+ (let ((commit "f2dbbe25ef553005fb402d9a6203180c3fa1093b")
+ (revision "1"))
+ (package
+ (name "sbcl-cl-lex")
+ (version (git-version "1.1.3" revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/djr7C4/cl-lex.git")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "1kg50f76bfpfxcv4dfivq1n9a0xlsra2ajb0vd68lxwgbidgyc2y"))))
+ (build-system asdf-build-system/sbcl)
+ (inputs
+ `(("cl-ppcre" ,sbcl-cl-ppcre)))
+ (synopsis "Common Lisp macros for generating lexical analyzers")
+ (description
+ "This is a Common Lisp library providing a set of macros for generating
+lexical analyzers automatically. The lexers generated using @code{cl-lex} can
+be used with @code{cl-yacc}.")
+ (home-page "https://github.com/djr7C4/cl-lex")
+ (license license:gpl3))))
+
+(define-public cl-lex
+ (sbcl-package->cl-source-package sbcl-cl-lex))
+
+(define-public ecl-cl-lex
+ (sbcl-package->ecl-package sbcl-cl-lex))
+
+(define-public sbcl-clunit2
+ (let ((commit "5e28343734eb9b7aee39306a614af92c1062d50b")
+ (revision "1"))
+ (package
+ (name "sbcl-clunit2")
+ (version (git-version "0.2.4" revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://notabug.org/cage/clunit2.git")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "1ngiapfki6nm8a555mzhb5p7ch79i3w665za5bmb5j7q34fy80vw"))))
+ (build-system asdf-build-system/sbcl)
+ (synopsis "Unit testing framework for Common Lisp")
+ (description
+ "CLUnit is a Common Lisp unit testing framework. It is designed to be
+easy to use so that you can quickly start testing.")
+ (home-page "https://notabug.org/cage/clunit2")
+ (license license:expat))))
+
+(define-public cl-clunit2
+ (sbcl-package->cl-source-package sbcl-clunit2))
+
+(define-public ecl-clunit2
+ (sbcl-package->ecl-package sbcl-clunit2))
+
+(define-public sbcl-cl-colors2
+ (let ((commit "795aedee593b095fecde574bd999b520dd03ed24")
+ (revision "1"))
+ (package
+ (name "sbcl-cl-colors2")
+ (version (git-version "0.2.1" revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://notabug.org/cage/cl-colors2.git")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "0hlyf4h5chkjdp9armla5w4kw5acikk159sym7y8c4jbjp9x47ih"))))
+ (build-system asdf-build-system/sbcl)
+ (native-inputs
+ `(("clunit2" ,sbcl-clunit2)))
+ (inputs
+ `(("alexandria" ,sbcl-alexandria)
+ ("cl-ppcre" ,sbcl-cl-ppcre)))
+ (synopsis "Color library for Common Lisp")
+ (description
+ "This is a very simple color library for Common Lisp, providing:
+
+@itemize
+@item Types for representing colors in HSV and RGB spaces.
+@item Simple conversion functions between the above types (and also
+hexadecimal representation for RGB).
+@item Some predefined colors (currently X11 color names -- of course
+the library does not depend on X11).
+@end itemize\n")
+ (home-page "https://notabug.org/cage/cl-colors2")
+ (license license:boost1.0))))
+
+(define-public cl-colors2
+ (sbcl-package->cl-source-package sbcl-cl-colors2))
+
+(define-public ecl-cl-colors2
+ (sbcl-package->ecl-package sbcl-cl-colors2))
+
+(define-public sbcl-cl-jpeg
+ (let ((commit "ec557038128df6895fbfb743bfe8faf8ec2534af")
+ (revision "1"))
+ (package
+ (name "sbcl-cl-jpeg")
+ (version (git-version "2.8" revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/sharplispers/cl-jpeg.git")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "1bkkiqz8fqldlj1wbmrccjsvxcwj98h6s4b6gslr3cg2wmdv5xmy"))))
+ (build-system asdf-build-system/sbcl)
+ (synopsis "JPEG image library for Common Lisp")
+ (description
+ "This is a baseline JPEG codec written in Common Lisp. It can be used
+for reading and writing JPEG image files.")
+ (home-page "https://github.com/sharplispers/cl-jpeg")
+ (license license:bsd-3))))
+
+(define-public cl-jpeg
+ (sbcl-package->cl-source-package sbcl-cl-jpeg))
+
+(define-public ecl-cl-jpeg
+ (sbcl-package->ecl-package sbcl-cl-jpeg))
+
+(define-public sbcl-nodgui
+ (let ((commit "bc59ed9b787dfc9e68ae3bd7f7e8507c5c619212")
+ (revision "1"))
+ (package
+ (name "sbcl-nodgui")
+ (version (git-version "0.0.5" revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://notabug.org/cage/nodgui.git")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "0xx0dk54d882i598ydnwmy7mnfk0b7vib3ddsgpqxhjck1rwq8l8"))))
+ (build-system asdf-build-system/sbcl)
+ (inputs
+ `(("alexandria" ,sbcl-alexandria)
+ ("bordeaux-threads" ,sbcl-bordeaux-threads)
+ ("cl-colors2" ,sbcl-cl-colors2)
+ ("cl-jpeg" ,sbcl-cl-jpeg)
+ ("cl-lex" ,sbcl-cl-lex)
+ ("cl-ppcre-unicode" ,sbcl-cl-ppcre-unicode)
+ ("cl-unicode" ,sbcl-cl-unicode)
+ ("cl-yacc" ,sbcl-cl-yacc)
+ ("clunit2" ,sbcl-clunit2)
+ ("named-readtables" ,sbcl-named-readtables)
+ ("parse-number" ,sbcl-parse-number)
+ ("tk" ,tk)))
+ (arguments
+ `(#:phases (modify-phases %standard-phases
+ (add-after 'unpack 'fix-paths
+ (lambda* (#:key inputs #:allow-other-keys)
+ (substitute* "src/wish-communication.lisp"
+ (("#-freebsd \"wish\"")
+ (string-append "#-freebsd \""
+ (assoc-ref inputs "tk")
+ "/bin/wish\"")))
+ #t)))))
+ (synopsis "Common Lisp bindings for the Tk GUI toolkit")
+ (description
+ "Nodgui (@emph{No Drama GUI}) is a Common Lisp binding for the Tk GUI
+toolkit. It also provides a few additional widgets more than the standard Tk
+ones.")
+ (home-page "https://www.autistici.org/interzona/nodgui.html")
+ (license license:llgpl))))
+
+(define-public cl-nodgui
+ (sbcl-package->cl-source-package sbcl-nodgui))
+
+(define-public ecl-nodgui
+ (sbcl-package->ecl-package sbcl-nodgui))
+
+(define-public sbcl-salza2
+ (package
+ (name "sbcl-salza2")
+ (version "2.0.9")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/xach/salza2.git")
+ (commit (string-append "release-" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "0p38rj4gq7j5k807php7hrz7l2zyyfshv8i9yms7i8lkgg3433ki"))))
+ (build-system asdf-build-system/sbcl)
+ (synopsis "Common Lisp library for zlib, deflate and gzip compression")
+ (description
+ "Salza2 is a Common Lisp library for creating compressed data in the zlib,
+deflate, or gzip data formats, described in RFC 1950, RFC 1951, and RFC 1952,
+respectively.")
+ (home-page "https://www.xach.com/lisp/salza2/")
+ (license license:bsd-2)))
+
+(define-public cl-salza2
+ (sbcl-package->cl-source-package sbcl-salza2))
+
+(define-public ecl-salza2
+ (sbcl-package->ecl-package sbcl-salza2))
+
+(define-public sbcl-png-read
+ (let ((commit "ec29f38a689972b9f1373f13bbbcd6b05deada88")
+ (revision "1"))
+ (package
+ (name "sbcl-png-read")
+ (version (git-version "0.3.1" revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/Ramarren/png-read.git")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "0vyczbcwskrygrf1hgrsnk0jil8skmvf1kiaalw5jps4fjrfdkw0"))))
+ (build-system asdf-build-system/sbcl)
+ (inputs
+ `(("babel" ,sbcl-babel)
+ ("chipz" ,sbcl-chipz)
+ ("iterate" ,sbcl-iterate)))
+ (synopsis "PNG decoder for Common Lisp")
+ (description "This is a Common Lisp library for reading PNG images.")
+ (home-page "https://github.com/Ramarren/png-read")
+ (license license:bsd-3))))
+
+(define-public cl-png-read
+ (sbcl-package->cl-source-package sbcl-png-read))
+
+(define-public ecl-png-read
+ (sbcl-package->ecl-package sbcl-png-read))
+
+(define-public sbcl-zpng
+ (package
+ (name "sbcl-zpng")
+ (version "1.2.2")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/xach/zpng.git")
+ (commit (string-append "release-" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "0b3ag3jhl3z7kdls3ahdsdxsfhhw5qrizk769984f4wkxhb69rcm"))))
+ (build-system asdf-build-system/sbcl)
+ (inputs
+ `(("salza2" ,sbcl-salza2)))
+ (synopsis "PNG encoder for Common Lisp")
+ (description "This is a Common Lisp library for creating PNG images.")
+ (home-page "https://www.xach.com/lisp/zpng/")
+ (license license:bsd-2)))
+
+(define-public cl-zpng
+ (sbcl-package->cl-source-package sbcl-zpng))
+
+(define-public ecl-zpng
+ (sbcl-package->ecl-package sbcl-zpng))
+
+(define-public sbcl-cl-qrencode
+ (package
+ (name "sbcl-cl-qrencode")
+ (version "0.1.2")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/jnjcc/cl-qrencode.git")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "1l5k131dchbf6cj8a8xqa731790p01p3qa1kdy2wa9dawy3ymkxr"))))
+ (build-system asdf-build-system/sbcl)
+ (native-inputs
+ `(("lisp-unit" ,sbcl-lisp-unit)))
+ (inputs
+ `(("zpng" ,sbcl-zpng)))
+ (synopsis "QR code encoder for Common Lisp")
+ (description
+ "This Common Lisp library provides function to make QR codes and to save
+them as PNG files.")
+ (home-page "https://github.com/jnjcc/cl-qrencode")
+ (license license:gpl2+)))
+
+(define-public cl-qrencode
+ (sbcl-package->cl-source-package sbcl-cl-qrencode))
+
+(define-public ecl-cl-qrencode
+ (sbcl-package->ecl-package sbcl-cl-qrencode))
+
+(define-public sbcl-hdf5-cffi
+ (let ((commit "5b5c88f191e470e4fe96b462334e3ce0806eed5c")
+ (revision "1"))
+ (package
+ (name "sbcl-hdf5-cffi")
+ (version (git-version "1.8.18" revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/hdfgroup/hdf5-cffi.git")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "0vda3075423xz83qky998lpac5b04dwfv7bwgh9jq8cs5v0zrxjf"))))
+ (build-system asdf-build-system/sbcl)
+ (synopsis "Common Lisp bindings for the HDF5 library")
+ (description
+ "@code{hdf5-cffi} is a CFFI wrapper for the HDF5 library.")
+ (home-page "https://github.com/hdfgroup/hdf5-cffi")
+ (license (license:non-copyleft
+ (string-append "https://github.com/HDFGroup/hdf5-cffi/raw/"
+ commit
+ "/LICENSE")))
+ (inputs
+ `(("cffi" ,sbcl-cffi)
+ ("cffi-grovel" ,sbcl-cffi-grovel)
+ ("hdf5" ,hdf5-1.10)))
+ (native-inputs
+ `(("fiveam" ,sbcl-fiveam)))
+ (arguments
+ `(#:asd-system-name "hdf5-cffi"
+ #:asd-file "hdf5-cffi.asd"
+ #:test-asd-file "hdf5-cffi.test.asd"
+ ;; Tests depend on hdf5-cffi.examples.asd in addition to hdf5-cffi.asd,
+ ;; I don't know if there is a way to tell asdf-build-system to load
+ ;; an additional system first, so tests are disabled.
+ #:tests? #f
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'fix-paths
+ (lambda* (#:key inputs #:allow-other-keys)
+ (substitute* "src/library.lisp"
+ (("libhdf5.so")
+ (string-append
+ (assoc-ref inputs "hdf5")
+ "/lib/libhdf5.so")))))
+ (add-after 'unpack 'fix-dependencies
+ (lambda* (#:key inputs #:allow-other-keys)
+ (substitute* "hdf5-cffi.asd"
+ ((":depends-on \\(:cffi\\)")
+ ":depends-on (:cffi :cffi-grovel)"))
+ (substitute* "hdf5-cffi.test.asd"
+ ((":depends-on \\(:cffi :hdf5-cffi")
+ ":depends-on (:cffi :cffi-grovel :hdf5-cffi"))))))))))
+
+(define-public cl-hdf5-cffi
+ (sbcl-package->cl-source-package sbcl-hdf5-cffi))
+
+(define-public ecl-hdf5-cffi
+ (sbcl-package->ecl-package sbcl-hdf5-cffi))
+
+(define-public sbcl-cl-randist
+ (package
+ (name "sbcl-cl-randist")
+ (version "0.4.2")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/lvaruzza/cl-randist.git")
+ (commit "f088a54b540a7adefab7c04094a6103f9edda3d0")))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "0l8hyd6nbxb7f50vyxz3rbbm7kgr1fnadc40jywy4xj5vi5kpj5g"))))
+ (build-system asdf-build-system/sbcl)
+ (synopsis "Random distributions for Common Lisp")
+ (description
+ "Manual translation from C to Common Lisp of some random number
+generation functions from the GSL library.")
+ (home-page "https://github.com/lvaruzza/cl-randist")
+ (license license:bsd-2)
+ (arguments
+ `(#:asd-system-name "cl-randist"
+ #:asd-file "cl-randist.asd"
+ #:tests? #f))))
+
+(define-public cl-randist
+ (sbcl-package->cl-source-package sbcl-cl-randist))
+
+(define-public ecl-cl-randist
+ (sbcl-package->ecl-package sbcl-cl-randist))
+
+(define-public sbcl-float-features
+ (package
+ (name "sbcl-float-features")
+ (version "1.0.0")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/Shinmera/float-features.git")
+ (commit "d3ef60181635b0849aa28cfc238053b7ca4644b0")))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "0yj419k7n59x6rh3grwr6frgwwyria2il6f7wxpfazm8cskv4lzr"))))
+ (build-system asdf-build-system/sbcl)
+ (synopsis "Common Lisp IEEE float portability library")
+ (description
+ "Portability library for IEEE float features that are not
+covered by the Common Lisp standard.")
+ (home-page "https://github.com/Shinmera/float-features")
+ (license license:zlib)
+ (inputs
+ `(("documentation-utils" ,sbcl-documentation-utils)))
+ (arguments
+ `(#:asd-system-name "float-features"
+ #:asd-file "float-features.asd"
+ #:tests? #f))))
+
+(define-public cl-float-features
+ (sbcl-package->cl-source-package sbcl-float-features))
+
+(define-public ecl-float-features
+ (sbcl-package->ecl-package sbcl-float-features))
+
+(define-public sbcl-function-cache
+ (package
+ (name "sbcl-function-cache")
+ (version "1.0.3")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/AccelerationNet/function-cache.git")
+ (commit "6a5ada401e57da2c8abf046f582029926e61fce8")))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "000vmd3f5rx5hs9nvphfric0gkzaadns31c6mxaslpv0k7pkrmc6"))))
+ (build-system asdf-build-system/sbcl)
+ (synopsis "Function caching / memoization library for Common Lisp")
+ (description
+ "A common lisp library that provides extensible function result
+caching based on arguments (an expanded form of memoization).")
+ (home-page "https://github.com/AccelerationNet/function-cache")
+ (license
+ (license:non-copyleft
+ "https://github.com/AccelerationNet/function-cache/blob/master/README.md"))
+ (inputs
+ `(("alexandria" ,sbcl-alexandria)
+ ("cl-interpol" ,sbcl-cl-interpol)
+ ("iterate" ,sbcl-iterate)
+ ("symbol-munger" ,sbcl-symbol-munger)
+ ("closer-mop" ,sbcl-closer-mop)))
+ (arguments
+ `(#:asd-system-name "function-cache"
+ #:asd-file "function-cache.asd"
+ #:tests? #f))))
+
+(define-public cl-function-cache
+ (sbcl-package->cl-source-package sbcl-function-cache))
+
+(define-public ecl-function-cache
+ (sbcl-package->ecl-package sbcl-function-cache))
+
+(define-public sbcl-type-r
+ (let ((commit "83c89e38f2f7a7b16f1012777ecaf878cfa6a267")
+ (revision "1"))
+ (package
+ (name "sbcl-type-r")
+ (version (git-version "0.0.0" revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/guicho271828/type-r.git")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "1arsxc2539rg8vbrdirz4xxj1b06mc6g6rqndz7a02g127qvk2sm"))))
+ (build-system asdf-build-system/sbcl)
+ (synopsis "Parser interface for Common Lisp built-in compound types")
+ (description
+ "Collections of accessor functions and patterns to access
+the elements in compound type specifier, e.g. @code{dimensions} in
+@code{(array element-type dimensions)}")
+ (home-page "https://github.com/guicho271828/type-r")
+ (license license:lgpl3+)
+ (inputs
+ `(("trivia" ,sbcl-trivia)
+ ("alexandria" ,sbcl-alexandria)))
+ (native-inputs
+ `(("fiveam" ,sbcl-fiveam)))
+ (arguments
+ `(#:asd-system-name "type-r"
+ #:asd-file "type-r.asd"
+ #:test-asd-file "type-r.test.asd")))))
+
+(define-public cl-type-r
+ (sbcl-package->cl-source-package sbcl-type-r))
+
+(define-public sbcl-trivialib-type-unify
+ (let ((commit "62492ebf04db567dcf435ae84c50b7b8202ecf99")
+ (revision "1"))
+ (package
+ (name "sbcl-trivialib-type-unify")
+ (version (git-version "0.1" revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/guicho271828/trivialib.type-unify.git")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "1bkyfzbwv75p50zp8n1n9rh2r29pw3vgz91gmn2gzzkyq3khj1vh"))))
+ (build-system asdf-build-system/sbcl)
+ (synopsis "Common Lisp type unification")
+ (description
+ "Unifies a parametrized type specifier against an actual type specifier.
+Importantly, it handles complicated array-subtypes and number-related types
+correctly.")
+ (home-page "https://github.com/guicho271828/trivialib.type-unify")
+ (license license:lgpl3+)
+ (inputs
+ `(("alexandria" ,sbcl-alexandria)
+ ("trivia" ,sbcl-trivia)
+ ("introspect-environment" ,sbcl-introspect-environment)
+ ("type-r" ,sbcl-type-r)))
+ (native-inputs
+ `(("fiveam" ,sbcl-fiveam)))
+ (arguments
+ `(#:asd-system-name "trivialib.type-unify"
+ #:asd-file "trivialib.type-unify.asd"
+ #:test-asd-file "trivialib.type-unify.test.asd")))))
+
+(define-public cl-trivialib-type-unify
+ (sbcl-package->cl-source-package sbcl-trivialib-type-unify))
+
+(define-public sbcl-specialized-function
+ (let ((commit "b96b6afaf8358bf91cc0703e62a5a4ee20d2b7bc")
+ (revision "1"))
+ (package
+ (name "sbcl-specialized-function")
+ (version (git-version "0.0.0" revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/numcl/specialized-function.git")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "12j45ff0n26578vmfbhb9mfbdchw4wy023k0m2ppgl9s0z4bhjaj"))))
+ (build-system asdf-build-system/sbcl)
+ (synopsis "Julia-like dispatch for Common Lisp")
+ (description
+ "This library is part of NUMCL. It provides a macro
+@code{SPECIALIZED} that performs a Julia-like dispatch on the arguments,
+lazily compiling a type-specific version of the function from the same
+code. The main target of this macro is speed.")
+ (home-page "https://github.com/numcl/specialized-function")
+ (license license:lgpl3+)
+ (inputs
+ `(("trivia" ,sbcl-trivia)
+ ("alexandria" ,sbcl-alexandria)
+ ("iterate" ,sbcl-iterate)
+ ("lisp-namespace" ,sbcl-lisp-namespace)
+ ("type-r" ,sbcl-type-r)
+ ("trivial-cltl2" ,sbcl-trivial-cltl2)))
+ (native-inputs
+ `(("fiveam" ,sbcl-fiveam)))
+ (arguments
+ `(#:asd-system-name "specialized-function"
+ #:asd-file "specialized-function.asd"
+ #:test-asd-file "specialized-function.test.asd")))))
+
+(define-public cl-specialized-function
+ (sbcl-package->cl-source-package sbcl-specialized-function))
+
+(define-public sbcl-constantfold
+ (let ((commit "0ff1d97a3fbcb89264f6a2af6ce62b73e7b421f4")
+ (revision "1"))
+ (package
+ (name "sbcl-constantfold")
+ (version (git-version "0.1" revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/numcl/constantfold.git")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "153h0569z6bff1qbad0bdssplwwny75l7ilqwcfqfdvzsxf9jh06"))))
+ (build-system asdf-build-system/sbcl)
+ (synopsis "Support library for numcl")
+ (description
+ "Support library for numcl. Registers a function as an
+additional form that is considered as a candidate for a constant.")
+ (home-page "https://github.com/numcl/constantfold")
+ (license license:lgpl3+)
+ (inputs
+ `(("trivia" ,sbcl-trivia)
+ ("alexandria" ,sbcl-alexandria)
+ ("iterate" ,sbcl-iterate)
+ ("lisp-namespace" ,sbcl-lisp-namespace)))
+ (native-inputs
+ `(("fiveam" ,sbcl-fiveam)))
+ (arguments
+ `(#:asd-system-name "constantfold"
+ #:asd-file "constantfold.asd"
+ #:test-asd-file "constantfold.test.asd")))))
+
+(define-public cl-constantfold
+ (sbcl-package->cl-source-package sbcl-constantfold))
+
+(define-public sbcl-gtype
+ (let ((commit "42275e3606242ae91e9c8dfa30c18ced50a35b66")
+ (revision "1"))
+ (package
+ (name "sbcl-gtype")
+ (version (git-version "0.1" revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/numcl/gtype.git")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "1f56dba998v945jcxhha391557n6md1ql25b7icfwwfivhmlaa9b"))))
+ (build-system asdf-build-system/sbcl)
+ (synopsis "C++/Julia-like parametric types in Common Lisp")
+ (description
+ "Support library for numcl that provides Julia-like runtime parametric
+type correctness in Common Lisp. It is based on CLtL2 extensions.")
+ (home-page "https://github.com/numcl/gtype")
+ (license license:lgpl3+)
+ (inputs
+ `(("trivialib.type-unify" ,sbcl-trivialib-type-unify)
+ ("trivial-cltl2" ,sbcl-trivial-cltl2)
+ ("trivia" ,sbcl-trivia)
+ ("alexandria" ,sbcl-alexandria)
+ ("iterate" ,sbcl-iterate)
+ ("type-r" ,sbcl-type-r)))
+ (native-inputs
+ `(("fiveam" ,sbcl-fiveam)))
+ (arguments
+ `(#:asd-system-name "gtype"
+ #:asd-file "gtype.asd"
+ #:test-asd-file "gtype.test.asd")))))
+
+(define-public cl-gtype
+ (sbcl-package->cl-source-package sbcl-gtype))
+
+(define-public sbcl-numcl
+ (let ((commit "1cf7dfa59f763a24a501092870e9c5ee745d0c17")
+ (revision "1"))
+ (package
+ (name "sbcl-numcl")
+ (version (git-version "0.1.0" revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/numcl/numcl.git")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "0i3jby9hf4ii7blivgyza80g0vmjfhk8537i5i7kqqk0i5sdnym2"))))
+ (build-system asdf-build-system/sbcl)
+ (synopsis "Numpy clone in Common Lisp")
+ (description
+ "This is a Numpy clone in Common Lisp. At the moment the
+library is written in pure Common Lisp, focusing more on correctness
+and usefulness, not speed. Track the progress at
+@url{https://github.com/numcl/numcl/projects/1}.")
+ (home-page "https://github.com/numcl/numcl")
+ (license license:lgpl3+)
+ (inputs
+ `(("trivia" ,sbcl-trivia)
+ ("alexandria" ,sbcl-alexandria)
+ ("iterate" ,sbcl-iterate)
+ ("lisp-namespace" ,sbcl-lisp-namespace)
+ ("type-r" ,sbcl-type-r)
+ ("constantfold" ,sbcl-constantfold)
+ ("cl-randist" ,sbcl-cl-randist)
+ ("float-features" ,sbcl-float-features)
+ ("function-cache" ,sbcl-function-cache)
+ ("specialized-function" ,sbcl-specialized-function)
+ ("gtype" ,sbcl-gtype)))
+ (native-inputs
+ `(("fiveam" ,sbcl-fiveam)))
+ (arguments
+ `(#:asd-system-name "numcl"
+ #:asd-file "numcl.asd"
+ #:test-asd-file "numcl.test.asd")))))
+
+(define-public cl-numcl
+ (sbcl-package->cl-source-package sbcl-numcl))
+
+(define-public sbcl-pzmq
+ (let ((commit "7c7390eedc469d033c72dc497984d1536ee75826")
+ (revision "1"))
+ (package
+ (name "sbcl-pzmq")
+ (version (git-version "0.0.0" revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/orivej/pzmq.git")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "0gmwzf7h90wa7v4wnk49g0hv2mdalljpwhyigxcb967wzv8lqci9"))))
+ (build-system asdf-build-system/sbcl)
+ (native-inputs
+ `(("bordeaux-threads" ,sbcl-bordeaux-threads)
+ ("fiveam" ,sbcl-fiveam)
+ ("let-plus" ,sbcl-let-plus)))
+ (inputs
+ `(("cffi" ,sbcl-cffi)
+ ("cffi-grovel" ,sbcl-cffi-grovel)
+ ("zeromq" ,zeromq)))
+ (arguments
+ `(#:phases (modify-phases %standard-phases
+ (add-after 'unpack 'fix-paths
+ (lambda* (#:key inputs #:allow-other-keys)
+ (substitute* "c-api.lisp"
+ (("\"libzmq")
+ (string-append "\""
+ (assoc-ref inputs "zeromq")
+ "/lib/libzmq")))
+ #t)))))
+ (synopsis "Common Lisp bindings for the ZeroMQ library")
+ (description "This Common Lisp library provides bindings for the ZeroMQ
+lightweight messaging kernel.")
+ (home-page "https://github.com/orivej/pzmq")
+ (license license:unlicense))))
+
+(define-public cl-pzmq
+ (sbcl-package->cl-source-package sbcl-pzmq))
+
+(define-public ecl-pzmq
+ (sbcl-package->ecl-package sbcl-pzmq))
+
+(define-public sbcl-clss
+ (let ((revision "1")
+ (commit "2a8e8615ab55870d4ca01928f3ed3bbeb4e75c8d"))
+ (package
+ (name "sbcl-clss")
+ (version (git-version "0.3.1" revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri
+ (git-reference
+ (url "https://github.com/Shinmera/clss.git")
+ (commit commit)))
+ (sha256
+ (base32 "0la4dbcda78x29szanylccrsljqrn9d1mhh569sqkyp44ni5fv91"))
+ (file-name (git-file-name name version))))
+ (inputs
+ `(("array-utils" ,sbcl-array-utils)
+ ("plump" ,sbcl-plump)))
+ (build-system asdf-build-system/sbcl)
+ (synopsis "DOM tree searching engine based on CSS selectors")
+ (description "CLSS is a DOM traversal engine based on CSS
+selectors. It makes use of the Plump-DOM and is used by lQuery.")
+ (home-page "https://github.com/Shinmera/clss")
+ (license license:zlib))))
+
+(define-public cl-clss
+ (sbcl-package->cl-source-package sbcl-clss))
+
+(define-public ecl-clss
+ (sbcl-package->ecl-package sbcl-clss))
+
+(define-public sbcl-lquery
+ (let ((revision "1")
+ (commit "8048111c6b83956daa632e7a3ffbd8c9c203bd8d"))
+ (package
+ (name "sbcl-lquery")
+ (version (git-version "3.2.1" revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri
+ (git-reference
+ (url "https://github.com/Shinmera/lquery.git")
+ (commit commit)))
+ (sha256
+ (base32 "0520mcpxc2d6fdm8z61arpgd2z38kan7cf06qs373n5r64rakz6w"))
+ (file-name (git-file-name name version))))
+ (native-inputs
+ `(("fiveam" ,sbcl-fiveam)))
+ (inputs
+ `(("array-utils" ,sbcl-array-utils)
+ ("form-fiddle" ,sbcl-form-fiddle)
+ ("plump" ,sbcl-plump)
+ ("clss" ,sbcl-clss)))
+ (build-system asdf-build-system/sbcl)
+ (synopsis "Library to allow jQuery-like HTML/DOM manipulation")
+ (description "@code{lQuery} is a DOM manipulation library written in
+Common Lisp, inspired by and based on the jQuery syntax and
+functions. It uses Plump and CLSS as DOM and selector engines. The
+main idea behind lQuery is to provide a simple interface for crawling
+and modifying HTML sites, as well as to allow for an alternative
+approach to templating.")
+ (home-page "https://github.com/Shinmera/lquery")
+ (license license:zlib))))
+
+(define-public cl-lquery
+ (sbcl-package->cl-source-package sbcl-lquery))
+
+(define-public ecl-lquery
+ (sbcl-package->ecl-package sbcl-lquery))
+
+(define-public sbcl-cl-mysql
+ (let ((commit "ab56c279c1815aec6ca0bfe85164ff7e85cfb6f9")
+ (revision "1"))
+ (package
+ (name "sbcl-cl-mysql")
+ (version (git-version "0.1" revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/hackinghat/cl-mysql.git")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "0dg5ynx2ww94d0qfwrdrm7plkn43h64hs4iiq9mj2s1s4ixnp3lr"))))
+ (build-system asdf-build-system/sbcl)
+ (native-inputs
+ `(("stefil" ,sbcl-stefil)))
+ (inputs
+ `(("cffi" ,sbcl-cffi)
+ ("mariadb-lib" ,mariadb "lib")))
+ (arguments
+ `(#:tests? #f ; TODO: Tests require a running server
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'fix-paths
+ (lambda* (#:key inputs #:allow-other-keys)
+ (substitute* "system.lisp"
+ (("libmysqlclient_r" all)
+ (string-append (assoc-ref inputs "mariadb-lib")
+ "/lib/"
+ all)))
+ #t)))))
+ (synopsis "Common Lisp wrapper for MySQL")
+ (description
+ "@code{cl-mysql} is a Common Lisp implementation of a MySQL wrapper.")
+ (home-page "http://www.hackinghat.com/index.php/cl-mysql")
+ (license license:expat))))
+
+(define-public cl-mysql
+ (sbcl-package->cl-source-package sbcl-cl-mysql))
+
+(define-public sbcl-simple-date
+ (let ((commit "74469b25bbda990ec9b77e0d0eccdba0cd7e721a")
+ (revision "1"))
+ (package
+ (name "sbcl-simple-date")
+ (version (git-version "1.19" revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/marijnh/Postmodern.git")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "0im7ymnyxjhn2w74jfg76k5gpr0gl33n31akx33hl28722ljd0hd"))))
+ (build-system asdf-build-system/sbcl)
+ (native-inputs
+ `(("fiveam" ,sbcl-fiveam)))
+ (synopsis "Basic date and time objects for Common Lisp")
+ (description
+ "@code{simple-date} is a very basic implementation of date and time
+objects, used to support storing and retrieving time-related SQL types.")
+ (home-page "https://marijnhaverbeke.nl/postmodern/")
+ (license license:zlib))))
+
+(define-public cl-simple-date
+ (sbcl-package->cl-source-package sbcl-simple-date))
+
+(define-public ecl-simple-date
+ (sbcl-package->ecl-package sbcl-simple-date))
+
+(define-public sbcl-cl-postgres
+ (package
+ (inherit sbcl-simple-date)
+ (name "sbcl-cl-postgres")
+ (native-inputs
+ `(("fiveam" ,sbcl-fiveam)
+ ("simple-date" ,sbcl-simple-date)))
+ (inputs
+ `(("md5" ,sbcl-md5)
+ ("split-sequence" ,sbcl-split-sequence)
+ ("usocket" ,sbcl-usocket)))
+ (arguments
+ `(#:tests? #f)) ; TODO: Break simple-date/postgres-glue circular dependency
+ (synopsis "Common Lisp interface for PostgreSQL")
+ (description
+ "@code{cl-postgres} is a low-level library used for interfacing with
+a PostgreSQL server over a socket.")))
+
+(define-public cl-postgres
+ (sbcl-package->cl-source-package sbcl-cl-postgres))
+
+(define-public sbcl-simple-date-postgres-glue
+ (package
+ (inherit sbcl-simple-date)
+ (name "sbcl-simple-date-postgres-glue")
+ (inputs
+ `(("cl-postgres" ,sbcl-cl-postgres)
+ ("simple-date" ,sbcl-simple-date)))
+ (arguments
+ `(#:asd-file "simple-date.asd"
+ #:asd-system-name "simple-date/postgres-glue"))))
+
+(define-public cl-simple-date-postgres-glue
+ (sbcl-package->cl-source-package sbcl-simple-date-postgres-glue))
+
+(define-public sbcl-s-sql
+ (package
+ (inherit sbcl-simple-date)
+ (name "sbcl-s-sql")
+ (inputs
+ `(("alexandria" ,sbcl-alexandria)
+ ("cl-postgres" ,sbcl-cl-postgres)))
+ (arguments
+ `(#:tests? #f)) ; TODO: Break postmodern circular dependency
+ (synopsis "Lispy DSL for SQL")
+ (description
+ "@code{s-sql} is a Common Lisp library that can be used to compile
+s-expressions to strings of SQL code, escaping any Lisp values inside, and
+doing as much as possible of the work at compile time.")))
+
+(define-public cl-s-sql
+ (sbcl-package->cl-source-package sbcl-s-sql))
+
+(define-public sbcl-postmodern
+ (package
+ (inherit sbcl-simple-date)
+ (name "sbcl-postmodern")
+ (native-inputs
+ `(("fiveam" ,sbcl-fiveam)
+ ("simple-date" ,sbcl-simple-date)
+ ("simple-date-postgres-glue" ,sbcl-simple-date-postgres-glue)))
+ (inputs
+ `(("alexandria" ,sbcl-alexandria)
+ ("bordeaux-threads" ,sbcl-bordeaux-threads)
+ ("cl-postgres" ,sbcl-cl-postgres)
+ ("closer-mop" ,sbcl-closer-mop)
+ ("global-vars" ,sbcl-global-vars)
+ ("s-sql" ,sbcl-s-sql)
+ ("split-sequence" ,sbcl-split-sequence)))
+ (arguments
+ ;; TODO: Fix missing dependency errors for simple-date/postgres-glue,
+ ;; cl-postgres/tests and s-sql/tests.
+ `(#:tests? #f))
+ (synopsis "Common Lisp library for interacting with PostgreSQL")
+ (description
+ "@code{postmodern} is a Common Lisp library for interacting with
+PostgreSQL databases. It provides the following features:
+
+@itemize
+@item Efficient communication with the database server without need for
+foreign libraries.
+@item Support for UTF-8 on Unicode-aware Lisp implementations.
+@item A syntax for mixing SQL and Lisp code.
+@item Convenient support for prepared statements and stored procedures.
+@item A metaclass for simple database-access objects.
+@end itemize\n")))
+
+(define-public cl-postmodern
+ (sbcl-package->cl-source-package sbcl-postmodern))
+
+(define-public sbcl-dbi
+ (package
+ (name "sbcl-dbi")
+ (version "0.9.4")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/fukamachi/cl-dbi.git")
+ (commit version)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "0m1fsravfaizamdak84adh3jxc4j91maqnrb4m08bfbmb04cdqhs"))))
+ (build-system asdf-build-system/sbcl)
+ (inputs
+ `(("bordeaux-threads" ,sbcl-bordeaux-threads)
+ ("closer-mop" ,sbcl-closer-mop)
+ ("split-sequence" ,sbcl-split-sequence)))
+ (arguments
+ `(#:tests? #f)) ; TODO: Break circular dependency with dbd-*
+ (synopsis "Database independent interface for Common Lisp")
+ (description
+ "@code{dbi} is a Common Lisp library providing a database independent
+interface for MySQL, PostgreSQL and SQLite.")
+ (home-page "https://github.com/fukamachi/cl-dbi")
+ (license license:llgpl)))
+
+(define-public cl-dbi
+ (sbcl-package->cl-source-package sbcl-dbi))
+
+(define-public sbcl-dbd-mysql
+ (package
+ (inherit sbcl-dbi)
+ (name "sbcl-dbd-mysql")
+ (inputs
+ `(("cl-mysql" ,sbcl-cl-mysql)
+ ("dbi" ,sbcl-dbi)))
+ (synopsis "Database driver for MySQL")))
+
+(define-public cl-dbd-mysql
+ (sbcl-package->cl-source-package sbcl-dbd-mysql))
+
+(define-public sbcl-dbd-postgres
+ (package
+ (inherit sbcl-dbi)
+ (name "sbcl-dbd-postgres")
+ (inputs
+ `(("cl-postgres" ,sbcl-cl-postgres)
+ ("dbi" ,sbcl-dbi)
+ ("trivial-garbage" ,sbcl-trivial-garbage)))
+ (synopsis "Database driver for PostgreSQL")))
+
+(define-public cl-dbd-postgres
+ (sbcl-package->cl-source-package sbcl-dbd-postgres))
+
+(define-public sbcl-dbd-sqlite3
+ (package
+ (inherit sbcl-dbi)
+ (name "sbcl-dbd-sqlite3")
+ (inputs
+ `(("cl-sqlite" ,sbcl-cl-sqlite)
+ ("dbi" ,sbcl-dbi)
+ ("trivial-garbage" ,sbcl-trivial-garbage)))
+ (synopsis "Database driver for SQLite3")))
+
+(define-public cl-dbd-sqlite3
+ (sbcl-package->cl-source-package sbcl-dbd-sqlite3))
+
+(define-public sbcl-uffi
+ (package
+ (name "sbcl-uffi")
+ (version "2.1.2")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "http://git.kpe.io/uffi.git")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "1hqszvz0a3wk4s9faa83sc3vjxcb5rxmjclyr17yzwg55z733kry"))))
+ (build-system asdf-build-system/sbcl)
+ (arguments
+ `(#:tests? #f ; TODO: Fix use of deprecated ASDF functions
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'fix-permissions
+ (lambda _
+ (make-file-writable "doc/html.tar.gz")
+ #t)))))
+ (synopsis "Universal foreign function library for Common Lisp")
+ (description
+ "UFFI provides a universal foreign function interface (FFI)
+ for Common Lisp.")
+ (home-page "http://quickdocs.org/uffi/")
+ (license license:llgpl)))
+
+(define-public cl-uffi
+ (package
+ (inherit (sbcl-package->cl-source-package sbcl-uffi))
+ (arguments
+ `(#:phases
+ ;; 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 "doc/html.tar.gz")
+ #t)))))))
+
+(define-public sbcl-clsql
+ (package
+ (name "sbcl-clsql")
+ (version "6.7.0")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "http://git.kpe.io/clsql.git")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "1v1k3s5bsy3lgd9gk459bzpb1r0kdjda25s29samxw4gsgf1fqvp"))
+ (snippet
+ '(begin
+ ;; Remove precompiled libraries.
+ (delete-file "db-mysql/clsql_mysql.dll")
+ (delete-file "uffi/clsql_uffi.dll")
+ (delete-file "uffi/clsql_uffi.lib")
+ #t))))
+ (build-system asdf-build-system/sbcl)
+ (native-inputs
+ `(("cffi-uffi-compat" ,sbcl-cffi-uffi-compat)
+ ("rt" ,sbcl-rt)
+ ("uffi" ,sbcl-uffi)))
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'fix-permissions
+ (lambda _
+ (make-file-writable "doc/html.tar.gz")
+ #t))
+ (add-after 'unpack 'fix-tests
+ (lambda _
+ (substitute* "clsql.asd"
+ (("clsql-tests :force t")
+ "clsql-tests"))
+ #t)))))
+ (synopsis "Common Lisp SQL Interface library")
+ (description
+ "@code{clsql} is a Common Lisp interface to SQL RDBMS based on the
+Xanalys CommonSQL interface for Lispworks. It provides low-level database
+interfaces as well as a functional and an object oriented interface.")
+ (home-page "http://clsql.kpe.io/")
+ (license license:llgpl)))
+
+(define-public cl-clsql
+ (package
+ (inherit (sbcl-package->cl-source-package sbcl-clsql))
+ (native-inputs
+ `(("rt" ,cl-rt)))
+ (inputs
+ `(("mysql" ,mysql)
+ ("postgresql" ,postgresql)
+ ("sqlite" ,sqlite)
+ ("zlib" ,zlib)))
+ (propagated-inputs
+ `(("cl-postgres" ,cl-postgres)
+ ("cffi-uffi-compat" ,cl-cffi-uffi-compat)
+ ("md5" ,cl-md5)
+ ("uffi" ,cl-uffi)))
+ (arguments
+ `(#:phases
+ ;; 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 "doc/html.tar.gz")
+ #t)))))))
+
+(define-public sbcl-clsql-uffi
+ (package
+ (inherit sbcl-clsql)
+ (name "sbcl-clsql-uffi")
+ (inputs
+ `(("cffi-uffi-compat" ,sbcl-cffi-uffi-compat)
+ ("clsql" ,sbcl-clsql)
+ ("uffi" ,sbcl-uffi)))
+ (synopsis "UFFI helper functions for Common Lisp SQL interface library")))
+
+(define-public sbcl-clsql-sqlite3
+ (package
+ (inherit sbcl-clsql)
+ (name "sbcl-clsql-sqlite3")
+ (inputs
+ `(("clsql" ,sbcl-clsql)
+ ("clsql-uffi" ,sbcl-clsql-uffi)
+ ("sqlite" ,sqlite)))
+ (arguments
+ (substitute-keyword-arguments (package-arguments sbcl-clsql)
+ ((#:phases phases '%standard-phases)
+ `(modify-phases ,phases
+ (add-after 'unpack 'fix-paths
+ (lambda* (#:key inputs #:allow-other-keys)
+ (substitute* "db-sqlite3/sqlite3-loader.lisp"
+ (("libsqlite3")
+ (string-append (assoc-ref inputs "sqlite")
+ "/lib/libsqlite3")))
+ #t))))))
+ (synopsis "SQLite3 driver for Common Lisp SQL interface library")))
+
+(define-public sbcl-clsql-postgresql
+ (package
+ (inherit sbcl-clsql)
+ (name "sbcl-clsql-postgresql")
+ (inputs
+ `(("clsql" ,sbcl-clsql)
+ ("clsql-uffi" ,sbcl-clsql-uffi)
+ ("postgresql" ,postgresql)))
+ (arguments
+ (substitute-keyword-arguments (package-arguments sbcl-clsql)
+ ((#:phases phases '%standard-phases)
+ `(modify-phases ,phases
+ (add-after 'unpack 'fix-paths
+ (lambda* (#:key inputs #:allow-other-keys)
+ (substitute* "db-postgresql/postgresql-loader.lisp"
+ (("libpq")
+ (string-append (assoc-ref inputs "postgresql")
+ "/lib/libpq")))
+ #t))))))
+ (synopsis "PostgreSQL driver for Common Lisp SQL interface library")))
+
+(define-public sbcl-clsql-postgresql-socket3
+ (package
+ (inherit sbcl-clsql)
+ (name "sbcl-clsql-postgresql-socket3")
+ (inputs
+ `(("cl-postgres" ,sbcl-cl-postgres)
+ ("clsql" ,sbcl-clsql)
+ ("md5" ,sbcl-md5)))
+ (arguments
+ (substitute-keyword-arguments (package-arguments sbcl-clsql)
+ ((#:phases phases '%standard-phases)
+ `(modify-phases ,phases
+ (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 "/clsql-postgresql-socket3.asd")))
+ (substitute* asd
+ (("CLSQL-POSTGRESQL-SOCKET-SYSTEM::")
+ "")))
+ #t))))))
+ (synopsis "PostgreSQL driver for Common Lisp SQL interface library")))
+
+(define-public sbcl-clsql-mysql
+ (package
+ (inherit sbcl-clsql)
+ (name "sbcl-clsql-mysql")
+ (inputs
+ `(("mysql" ,mysql)
+ ("sbcl-clsql" ,sbcl-clsql)
+ ("sbcl-clsql-uffi" ,sbcl-clsql-uffi)
+ ("zlib" ,zlib)))
+ (arguments
+ (substitute-keyword-arguments (package-arguments sbcl-clsql)
+ ((#:phases phases '%standard-phases)
+ `(modify-phases ,phases
+ (add-after 'unpack 'fix-paths
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ (let ((lib (string-append "#p\""
+ (assoc-ref outputs "out")
+ "/lib/\"")))
+ (substitute* "clsql-mysql.asd"
+ (("#p\"/usr/lib/clsql/clsql_mysql\\.so\"")
+ lib))
+ (substitute* "db-mysql/mysql-loader.lisp"
+ (("libmysqlclient" all)
+ (string-append (assoc-ref inputs "mysql") "/lib/" all))
+ (("clsql-mysql-system::\\*library-file-dir\\*")
+ lib)))
+ #t))
+ (add-before 'build 'build-helper-library
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ (let* ((mysql (assoc-ref inputs "mysql"))
+ (inc-dir (string-append mysql "/include/mysql"))
+ (lib-dir (string-append mysql "/lib"))
+ (shared-lib-dir (string-append (assoc-ref outputs "out")
+ "/lib"))
+ (shared-lib (string-append shared-lib-dir
+ "/clsql_mysql.so")))
+ (mkdir-p shared-lib-dir)
+ (invoke "gcc" "-fPIC" "-shared"
+ "-I" inc-dir
+ "db-mysql/clsql_mysql.c"
+ "-Wl,-soname=clsql_mysql"
+ "-L" lib-dir "-lmysqlclient" "-lz"
+ "-o" shared-lib)
+ #t)))))))
+ (synopsis "MySQL driver for Common Lisp SQL interface library")))
+
+(define-public sbcl-sycamore
+ (let ((commit "fd2820fec165ad514493426dea209728f64e6d18"))
+ (package
+ (name "sbcl-sycamore")
+ (version "0.0.20120604")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/ndantam/sycamore/")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "00bv1aj89q5vldmq92zp2364jq312zjq2mbd3iyz1s2b4widzhl7"))))
+ (build-system asdf-build-system/sbcl)
+ (arguments
+ `(#:asd-file "src/sycamore.asd"))
+ (inputs
+ `(("alexandria" ,sbcl-alexandria)
+ ("cl-ppcre" ,sbcl-cl-ppcre)))
+ (synopsis "Purely functional data structure library in Common Lisp")
+ (description
+ "Sycamore is a fast, purely functional data structure library in Common Lisp.
+If features:
+
+@itemize
+@item Fast, purely functional weight-balanced binary trees.
+@item Leaf nodes are simple-vectors, greatly reducing tree height.
+@item Interfaces for tree Sets and Maps (dictionaries).
+@item Ropes.
+@item Purely functional pairing heaps.
+@item Purely functional amortized queue.
+@end itemize\n")
+ (home-page "http://ndantam.github.io/sycamore/")
+ (license license:bsd-3))))
+
+(define-public cl-sycamore
+ (sbcl-package->cl-source-package sbcl-sycamore))
+
+(define-public sbcl-trivial-package-local-nicknames
+ (package
+ (name "sbcl-trivial-package-local-nicknames")
+ (version "0.2")
+ (home-page "https://github.com/phoe/trivial-package-local-nicknames")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url home-page)
+ (commit "16b7ad4c2b120f50da65154191f468ea5598460e")))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "18qc27xkjzdcqrilpk3pm7djldwq5rm3ggd5h9cr8hqcd54i2fqg"))))
+ (build-system asdf-build-system/sbcl)
+ (synopsis "Common Lisp compatibility library for package local nicknames")
+ (description
+ "This library is a portable compatibility layer around package local nicknames (PLN).
+This was done so there is a portability library for the PLN API not included
+in DEFPACKAGE.")
+ (license license:unlicense)))
+
+(define-public cl-trivial-package-local-nicknames
+ (sbcl-package->cl-source-package sbcl-trivial-package-local-nicknames))
+
+(define-public sbcl-enchant
+ (let ((commit "6af162a7bf10541cbcfcfa6513894900329713fa"))
+ (package
+ (name "sbcl-enchant")
+ (version (git-version "0.0.0" "1" commit))
+ (home-page "https://github.com/tlikonen/cl-enchant")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url home-page)
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "19yh5ihirzi1d8xqy1cjqipzd6ly3245cfxa5s9xx496rryz0s01"))))
+ (build-system asdf-build-system/sbcl)
+ (inputs
+ `(("enchant" ,enchant)
+ ("cffi" ,sbcl-cffi)))
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'fix-paths
+ (lambda* (#:key inputs #:allow-other-keys)
+ (substitute* "load-enchant.lisp"
+ (("libenchant")
+ (string-append
+ (assoc-ref inputs "enchant") "/lib/libenchant-2"))))))))
+ (synopsis "Common Lisp interface for the Enchant spell-checker library")
+ (description
+ "Enchant is a Common Lisp interface for the Enchant spell-checker
+library. The Enchant library is a generic spell-checker library which uses
+other spell-checkers transparently as back-end. The library supports the
+multiple checkers, including Aspell and Hunspell.")
+ (license license:public-domain))))
+
+(define-public cl-enchant
+ (sbcl-package->cl-source-package sbcl-enchant))
+
+(define-public sbcl-cl-change-case
+ (let ((commit "5ceff2a5f8bd845b6cb510c6364176b27a238fd3"))
+ (package
+ (name "sbcl-cl-change-case")
+ (version (git-version "0.1.0" "1" commit))
+ (home-page "https://github.com/rudolfochrist/cl-change-case")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url home-page)
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "1afyglglk9z3yg8gylcl301bl2r8vq3sllyznzj9s5xi5gs6qyf2"))))
+ (build-system asdf-build-system/sbcl)
+ (inputs
+ `(("cl-ppcre" ,sbcl-cl-ppcre)
+ ("cl-ppcre-unicode" ,sbcl-cl-ppcre-unicode)))
+ (native-inputs
+ `(("fiveam" ,sbcl-fiveam)))
+ (arguments
+ '(;; FIXME: Test pass but phase fails with 'Component
+ ;; "cl-change-case-test" not found, required by'.
+ #:tests? #f
+ #:test-asd-file "cl-change-case-test.asd"))
+ (synopsis "Convert Common Lisp strings between camelCase, PascalCase and more")
+ (description
+ "@code{cl-change-case} is library to convert strings between camelCase,
+PascalCase, snake_case, param-case, CONSTANT_CASE and more.")
+ (license license:llgpl))))
+
+(define-public cl-change-case
+ (sbcl-package->cl-source-package sbcl-cl-change-case))
+
+(define-public sbcl-moptilities
+ (let ((commit "a436f16b357c96b82397ec018ea469574c10dd41"))
+ (package
+ (name "sbcl-moptilities")
+ (version (git-version "0.3.13" "1" commit))
+ (home-page "https://github.com/gwkkwg/moptilities/")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url home-page)
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "1q12bqjbj47lx98yim1kfnnhgfhkl80102fkgp9pdqxg0fp6g5fc"))))
+ (build-system asdf-build-system/sbcl)
+ (inputs
+ `(("closer-mop" ,sbcl-closer-mop)))
+ (native-inputs
+ `(("lift" ,sbcl-lift)))
+ (synopsis "Compatibility layer for Common Lisp MOP implementation differences")
+ (description
+ "MOP utilities provide a common interface between Lisps and make the
+MOP easier to use.")
+ (license license:expat))))
+
+(define-public cl-moptilities
+ (sbcl-package->cl-source-package sbcl-moptilities))
+
+(define-public sbcl-osicat
+ (let ((commit "de0c18a367eedc857e1902a7319828af072a0d97"))
+ (package
+ (name "sbcl-osicat")
+ (version (git-version "0.7.0" "1" commit))
+ (home-page "http://www.common-lisp.net/project/osicat/")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/osicat/osicat")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "15viw5pi5sa7qq9b4n2rr3dj2jkqr180rh9z1lh8w3rgl42i2adc"))))
+ (build-system asdf-build-system/sbcl)
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ ;; The cleanup phase moves files around but we need to keep the
+ ;; directory structure for the grovel-generated library.
+ (replace 'cleanup
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out"))
+ (lib (string-append out "/lib/sbcl/")))
+ (delete-file-recursively (string-append lib "src"))
+ (delete-file-recursively (string-append lib "tests"))
+ (for-each delete-file
+ (filter (lambda (file)
+ (not (member (basename file) '("libosicat.so"))))
+ (find-files (string-append lib "posix") ".*"))))
+ #t)))))
+ (inputs
+ `(("alexandria" ,sbcl-alexandria)
+ ("cffi" ,sbcl-cffi)
+ ("trivial-features" ,sbcl-trivial-features)))
+ (native-inputs
+ `(("cffi-grovel" ,sbcl-cffi-grovel)
+ ("rt" ,sbcl-rt)))
+ (synopsis "Operating system interface for Common Lisp")
+ (description
+ "Osicat is a lightweight operating system interface for Common Lisp on
+Unix-platforms. It is not a POSIX-style API, but rather a simple lispy
+accompaniment to the standard ANSI facilities.")
+ (license license:expat))))
+
+(define-public cl-osicat
+ (sbcl-package->cl-source-package sbcl-osicat))