;;; Copyright © 2017, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2018 Benjamin Slade <slade@jnanam.net>
;;; Copyright © 2018 Alex Vong <alexvong1995@gmail.com>
-;;; Copyright © 2018 Pierre Neidhardt <mail@ambrevar.xyz>
+;;; Copyright © 2018, 2020 Pierre Neidhardt <mail@ambrevar.xyz>
;;; Copyright © 2018, 2019 Pierre Langlois <pierre.langlois@gmx.com>
;;; Copyright © 2019, 2020 Katherine Cox-Buday <cox.katherine.e@gmail.com>
;;; Copyright © 2019 Jesse Gildersleve <jessejohngildersleve@protonmail.com>
;;; Copyright © 2019 Brett Gilio <brettg@gnu.org>
;;; Copyright © 2020 Konrad Hinsen <konrad.hinsen@fastmail.net>
;;; Copyright © 2020 Dimakis Dimakakos <me@bendersteed.tech>
+;;; Copyright © 2020 Oleg Pykhalov <go.wigust@gmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
#:use-module (gnu packages c)
#:use-module (gnu packages compression)
#:use-module (gnu packages databases)
+ #:use-module (gnu packages enchant)
#:use-module (gnu packages glib)
#:use-module (gnu packages gtk)
#:use-module (gnu packages imagemagick)
(define-public ecl-clx
(sbcl-package->ecl-package sbcl-clx))
+(define-public sbcl-clx-truetype
+ (let ((commit "c6e10a918d46632324d5863a8ed067a83fc26de8")
+ (revision "1"))
+ (package
+ (name "sbcl-clx-truetype")
+ (version (git-version "0.0.1" revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/l04m33/clx-truetype")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "079hyp92cjkdfn6bhkxsrwnibiqbz4y4af6nl31lzw6nm91j5j37"))
+ (modules '((guix build utils)))
+ (snippet
+ '(begin
+ (substitute* "package.lisp"
+ ((":export") ":export\n :+font-cache-filename+"))
+ #t))))
+ (build-system asdf-build-system/sbcl)
+ (inputs
+ `(("clx" ,sbcl-clx)
+ ("zpb-ttf" ,sbcl-zpb-ttf)
+ ("cl-vectors" ,sbcl-cl-vectors)
+ ("cl-paths-ttf" ,sbcl-cl-paths-ttf)
+ ("cl-fad" ,sbcl-cl-fad)
+ ("cl-store" ,sbcl-cl-store)
+ ("trivial-features" ,sbcl-trivial-features)))
+ (home-page "https://github.com/l04m33/clx-truetype")
+ (synopsis "Antialiased TrueType font rendering using CLX and XRender")
+ (description "CLX-TrueType is pure common lisp solution for
+antialiased TrueType font rendering using CLX and XRender extension.")
+ (license license:expat))))
+
(define-public sbcl-cl-ppcre-unicode
(package (inherit sbcl-cl-ppcre)
(name "sbcl-cl-ppcre-unicode")
(base32
"1wddrnr5kiya5s3gp4cdq6crbfy9fqcz7fr44p81502sj3bvdv39"))))
(build-system asdf-build-system/sbcl)
- (home-page "http://marijnhaverbeke.nl/parse-js/")
+ (home-page "https://marijnhaverbeke.nl/parse-js/")
(synopsis "Parse JavaScript")
(description "Parse-js is a Common Lisp package for parsing
JavaScript (ECMAScript 3). It has basic support for ECMAScript 5.")
(base32
"0sk06ib1bhqv9y39vwnnw44vmbc4b0kvqm37xxmkxd4dwchq82d7"))))
(build-system asdf-build-system/sbcl)
- (home-page "http://www.cliki.net/PARSE-NUMBER")
+ (home-page "https://www.cliki.net/PARSE-NUMBER")
(synopsis "Parse numbers")
(description "@code{parse-number} is a library of functions for parsing
strings into one of the standard Common Lisp number types without using the
(define-public cl-cffi
(sbcl-package->cl-source-package sbcl-cffi))
+(define-public sbcl-cffi-uffi-compat
+ (package
+ (inherit sbcl-cffi-toolchain)
+ (name "sbcl-cffi-uffi-compat")
+ (native-inputs
+ `(,@(package-inputs sbcl-cffi-bootstrap))) ; For fix-paths phase
+ (inputs
+ `(("cffi" ,sbcl-cffi)))
+ (synopsis "UFFI Compatibility Layer for CFFI")))
+
+(define-public cl-cffi-uffi-compat
+ (sbcl-package->cl-source-package sbcl-cffi-uffi-compat))
+
(define-public sbcl-cl-sqlite
(let ((commit "c738e66d4266ef63a1debc4ef4a1b871a068c112"))
(package
options once and then use this definition for parsing and extraction of
command line arguments, as well as printing description of command line
options (you get --help for free). This way you don't need to repeat
-yourself. Also, @command{unix-opts} doesn't depend on anything and allows to
-precisely control behavior of the parser via Common Lisp restarts.")
+yourself. Also, @command{unix-opts} doesn't depend on anything and
+precisely controls the behavior of the parser via Common Lisp restarts.")
(license license:expat)))
(define-public cl-unix-opts
(sbcl-package->cl-source-package sbcl-cl-cffi-gtk))
(define-public sbcl-cl-webkit
- (let ((commit "cd2a9008e0c152e54755e8a7f07b050fe36bab31"))
+ (let ((commit "d97115ca601838dfa60ea7afbb88641d7a526dba"))
(package
(name "sbcl-cl-webkit")
- (version (git-version "2.4" "1" commit))
+ (version (git-version "2.4" "2" commit))
(source
(origin
(method git-fetch)
(uri (git-reference
- (url "https://github.com/jmercouris/cl-webkit")
+ (url "https://github.com/joachifm/cl-webkit")
(commit commit)))
(file-name (git-file-name "cl-webkit" version))
(sha256
(base32
- "0f5lyn9i7xrn3g1bddga377mcbawkbxydijpg389q4n04gqj0vwf"))))
+ "0sdb2l2h5xv5c1m2mfq31i9yl6zjf512fvwwzlvk9nvisyhc4xi3"))))
(build-system asdf-build-system/sbcl)
(inputs
`(("cffi" ,sbcl-cffi)
(("libwebkit2gtk" all)
(string-append
(assoc-ref inputs "webkitgtk") "/lib/" all))))))))
- (home-page "https://github.com/jmercouris/cl-webkit")
+ (home-page "https://github.com/joachifm/cl-webkit")
(synopsis "Binding to WebKitGTK+ for Common Lisp")
(description
"@command{cl-webkit} is a binding to WebKitGTK+ for Common Lisp,
("sbcl-trivial-garbage" ,sbcl-trivial-garbage)
("sbcl-alexandria" ,sbcl-alexandria)
("sbcl-trivial-features" ,sbcl-trivial-features)))
- (home-page "http://common-lisp.net/project/cl-plus-ssl/")
+ (home-page "https://common-lisp.net/project/cl-plus-ssl/")
(synopsis "Common Lisp bindings to OpenSSL")
(description
"This library is a fork of SSL-CMUCL. The original SSL-CMUCL source
("sbcl-fast-io" ,sbcl-fast-io)
("sbcl-proc-parse" ,sbcl-proc-parse)
("sbcl-cl-ppcre" ,sbcl-cl-ppcre)))
- (home-page "http://rudolph-miller.github.io/jonathan/overview.html")
+ (home-page "https://rudolph-miller.github.io/jonathan/overview.html")
(synopsis "JSON encoder and decoder")
(description
"High performance JSON encoder and decoder. Currently support: SBCL,
to be easy to use so that you can quickly start testing. CLUnit
provides a rich set of features aimed at improving your unit testing
experience.")
- (home-page "http://tgutu.github.io/clunit/")
+ (home-page "https://tgutu.github.io/clunit/")
;; MIT License
(license license:expat))))
(sbcl-package->ecl-package sbcl-cl-quickcheck))
(define-public sbcl-burgled-batteries3
- (let ((commit "9c0f6667e1a71ddf77e21793a0bea524710fef6e")
- (revision "1"))
+ (let ((commit "f65f454d13bb6c40e17e9ec62e41eb5069e09760")
+ (revision "2"))
(package
(name "sbcl-burgled-batteries3")
(version (git-version "0.0.0" revision commit))
(file-name (git-file-name name version))
(sha256
(base32
- "0b726kz2xxcg5l930gz035rsdvhxrzmp05iwfwympnb4z4ammicb"))))
+ "1nzn7jawrfajyzwfnzrg2cmn9xxadcqh4szbpg0jggkhdkdzz4wa"))))
(build-system asdf-build-system/sbcl)
(arguments
- '(#:tests? #f
+ `(#:tests? #f
+ #:modules (((guix build python-build-system) #:select (python-version))
+ ,@%asdf-build-system-modules)
+ #:imported-modules ((guix build python-build-system)
+ ,@%asdf-build-system-modules)
#:phases
- (modify-phases %standard-phases
+ (modify-phases (@ (guix build asdf-build-system) %standard-phases)
(add-after 'unpack 'set-*cpython-include-dir*-var
(lambda* (#:key inputs #:allow-other-keys)
- (substitute* "grovel-include-dir.lisp"
- (("\\(defparameter \\*cpython-include-dir\\* \\(detect-python\\)\\)")
- (string-append
- "(defparameter *cpython-include-dir* \""
- (assoc-ref inputs "python")
- "/include/python3.7m"
- "\")")))
- (substitute* "ffi-interface.lisp"
- (("\\*cpython-lib\\*")
- (format #f "'(\"~a/lib/libpython3.so\")"
- (assoc-ref inputs "python"))))
- #t)))))
+ (let ((python (assoc-ref inputs "python")))
+ (setenv "BB_PYTHON3_INCLUDE_DIR"
+ (string-append python "/include/python"
+ (python-version python)
+ "m"))
+ (setenv "BB_PYTHON3_DYLIB"
+ (string-append python "/lib/libpython3.so"))
+ #t))))))
(native-inputs
- `(("python" ,python)
- ("sbcl-cl-fad" ,sbcl-cl-fad)
+ `(("sbcl-cl-fad" ,sbcl-cl-fad)
("sbcl-lift" ,sbcl-lift)
("sbcl-cl-quickcheck" ,sbcl-cl-quickcheck)))
(inputs
- `(("sbcl-cffi" ,sbcl-cffi)
+ `(("python" ,python)
+ ("sbcl-cffi" ,sbcl-cffi)
("sbcl-cffi-grovel" ,sbcl-cffi-grovel)
("sbcl-alexandria" , sbcl-alexandria)
("sbcl-parse-declarations-1.0" ,sbcl-parse-declarations)
"This package provides a shim between Python3 (specifically, the
CPython implementation of Python) and Common Lisp.")
(home-page "https://github.com/snmsts/burgled-batteries3")
- ;; MIT
(license license:expat))))
(define-public cl-burgled-batteries3
#t)))))
(synopsis "CFFI Groveller for IOLib, a Common Lisp I/O library")))
-(define-public sbcl-iolib
+(define sbcl-iolib+syscalls
(package
(inherit sbcl-iolib.asdf)
- (name "sbcl-iolib")
+ (name "sbcl-iolib+syscalls")
(inputs
`(("iolib.asdf" ,sbcl-iolib.asdf)
("iolib.conf" ,sbcl-iolib.conf)
`(("fiveam" ,sbcl-fiveam)))
(arguments
'(#:asd-file "iolib.asd"
- #:asd-system-name "iolib"
+ #:asd-system-name "iolib/syscalls"
#:test-asd-file "iolib.tests.asd"
#:phases
(modify-phases %standard-phases
"")))))))
(synopsis "Common Lisp I/O library")))
-(define-public cl-iolib
- (sbcl-package->cl-source-package sbcl-iolib))
-
(define sbcl-iolib+multiplex
(package
- (inherit sbcl-iolib)
+ (inherit sbcl-iolib+syscalls)
(name "sbcl-iolib+multiplex")
+ (inputs
+ `(("iolib+syscalls" ,sbcl-iolib+syscalls)
+ ,@(package-inputs sbcl-iolib+syscalls)))
(arguments
- (substitute-keyword-arguments (package-arguments sbcl-iolib)
+ (substitute-keyword-arguments (package-arguments sbcl-iolib+syscalls)
((#:asd-system-name _) "iolib/multiplex")))))
-(define sbcl-iolib+syscalls
- (package
- (inherit sbcl-iolib)
- (name "sbcl-iolib+syscalls")
- (arguments
- (substitute-keyword-arguments (package-arguments sbcl-iolib)
- ((#:asd-system-name _) "iolib/syscalls")))))
+
(define sbcl-iolib+streams
(package
- (inherit sbcl-iolib)
+ (inherit sbcl-iolib+syscalls)
(name "sbcl-iolib+streams")
+ (inputs
+ `(("iolib+multiplex" ,sbcl-iolib+multiplex)
+ ,@(package-inputs sbcl-iolib+syscalls)))
(arguments
- (substitute-keyword-arguments (package-arguments sbcl-iolib)
+ (substitute-keyword-arguments (package-arguments sbcl-iolib+syscalls)
((#:asd-system-name _) "iolib/streams")))))
(define sbcl-iolib+sockets
(package
- (inherit sbcl-iolib)
+ (inherit sbcl-iolib+syscalls)
(name "sbcl-iolib+sockets")
+ (inputs
+ `(("iolib+syscalls" ,sbcl-iolib+syscalls)
+ ("iolib+streams" ,sbcl-iolib+streams)
+ ,@(package-inputs sbcl-iolib+syscalls)))
(arguments
- (substitute-keyword-arguments (package-arguments sbcl-iolib)
+ (substitute-keyword-arguments (package-arguments sbcl-iolib+syscalls)
((#:asd-system-name _) "iolib/sockets")))))
+(define-public sbcl-iolib
+ (package
+ (inherit sbcl-iolib+syscalls)
+ (name "sbcl-iolib")
+ (inputs
+ `(("iolib+multiplex" ,sbcl-iolib+multiplex)
+ ("iolib+streams" ,sbcl-iolib+streams)
+ ("iolib+sockets" ,sbcl-iolib+sockets)
+ ,@(package-inputs sbcl-iolib+syscalls)))
+ (arguments
+ (substitute-keyword-arguments (package-arguments sbcl-iolib+syscalls)
+ ((#:asd-system-name _) "iolib")))))
+
+(define-public cl-iolib
+ (sbcl-package->cl-source-package sbcl-iolib))
+
(define-public sbcl-ieee-floats
(let ((commit "566b51a005e81ff618554b9b2f0b795d3b29398d")
(revision "1"))
(native-inputs
`(("fiveam" ,sbcl-fiveam)))
(synopsis "IEEE 754 binary representation for floats in Common Lisp")
- (description "This is a Common Lisp library that allows to convert
+ (description "This is a Common Lisp library that converts
floating point values to IEEE 754 binary representation.")
(license license:bsd-3))))
(sha256
(base32
"0fw2q866yddbf23nk9pxphm9gsasx35vjyss82xzvndnjmzlqfl5"))))
- ;; Inputs must be propagated or else packages depending on this won't have the necessary packages.
+ ;; Inputs must be propagated or else packages depending on this won't
+ ;; have the necessary packages.
(propagated-inputs
`(("alexandria" ,sbcl-alexandria)
("trivial-garbage" ,sbcl-trivial-garbage)
("babel" ,sbcl-babel)
("iolib" ,sbcl-iolib)
- ("iolib+multiplex" ,(@@ (gnu packages lisp-xyz) sbcl-iolib+multiplex))
- ("iolib+syscalls" ,(@@ (gnu packages lisp-xyz) sbcl-iolib+syscalls))
- ("iolib+streams" ,(@@ (gnu packages lisp-xyz) sbcl-iolib+streams))
- ("iolib+sockets" ,(@@ (gnu packages lisp-xyz) sbcl-iolib+sockets))
("ieee-floats" ,sbcl-ieee-floats)
("flexi-streams" ,sbcl-flexi-streams)
("cl-xmlspam" ,sbcl-cl-xmlspam)
("ironclad" ,sbcl-ironclad)))
(synopsis "D-Bus client library for Common Lisp")
- (description "This is a Common Lisp library that allows to publish D-Bus
+ (description "This is a Common Lisp library that publishes D-Bus
objects as well as send and notify other objects connected to a bus.")
(license license:bsd-2))))
(sbcl-package->ecl-package sbcl-metatilities-base))
(define-public sbcl-cl-containers
- (let ((commit "810927e19d933bcf38ffeb7a23ce521efc432d45")
- (revision "1"))
+ (let ((commit "3d1df53c22403121bffb5d553cf7acb1503850e7")
+ (revision "3"))
(package
(name "sbcl-cl-containers")
(version (git-version "0.12.1" revision commit))
(file-name (git-file-name name version))
(sha256
(base32
- "1s9faxw7svhbjpkhfrz2qxgjm3cvyjb8wpyb4m8dx4i5g7vvprkv"))))
+ "18s6jfq11n8nv9k4biz32pm1s7y9zl054ry1gmdbcf39nisy377y"))))
(build-system asdf-build-system/sbcl)
(native-inputs
`(("lift" ,sbcl-lift)))
(sbcl-package->ecl-package sbcl-trivial-macroexpand-all))
(define-public sbcl-serapeum
- (let ((commit "65837f8a0d65b36369ec8d000fff5c29a395b5fe")
- (revision "0"))
+ (let ((commit "64f0c4a161bbbda7c275012ca1415b4293b9e169")
+ (revision "1"))
(package
(name "sbcl-serapeum")
(version (git-version "0.0.0" revision commit))
(file-name (git-file-name name version))
(sha256
(base32
- "0clwf81r2lvk1rbfvk91s9zmbkas9imf57ilqclw12mxaxlfsnbw"))))
+ "0djnj0py8hdjnk5j6shjq2kbmyxqd5sw79cilcfmpfz4dzjdgkx9"))))
(build-system asdf-build-system/sbcl)
(inputs
`(("alexandria" ,sbcl-alexandria)
(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))