;;; Copyright © 2019, 2020 Guillaume Le Vaillant <glv@posteo.net>
;;; Copyright © 2019 Brett Gilio <brettg@gnu.org>
;;; Copyright © 2020 Konrad Hinsen <konrad.hinsen@fastmail.net>
+;;; Copyright © 2020 Dimakis Dimakakos <me@bendersteed.tech>
;;;
;;; This file is part of GNU Guix.
;;;
#:use-module (guix build-system trivial)
#:use-module (gnu packages c)
#:use-module (gnu packages compression)
+ #:use-module (gnu packages databases)
#:use-module (gnu packages glib)
#:use-module (gnu packages gtk)
#:use-module (gnu packages imagemagick)
#:use-module (gnu packages libffi)
#:use-module (gnu packages lisp)
#:use-module (gnu packages maths)
+ #:use-module (gnu packages networking)
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages python)
#:use-module (gnu packages python-xyz)
ANSI CL by David N. Gray. The proposal did not make it into ANSI CL, but most
popular CL implementations implement it. This package provides an extremely
thin compatibility layer for gray streams.")
- (home-page "http://www.cliki.net/trivial-gray-streams")
+ (home-page "https://www.cliki.net/trivial-gray-streams")
(license license:x11))))
(define-public cl-trivial-gray-streams
(build-system asdf-build-system/sbcl)
(native-inputs
`(("fiasco" ,sbcl-fiasco)))
- (home-page "http://www.cliki.net/portable-clx")
+ (home-page "https://www.cliki.net/portable-clx")
(synopsis "X11 client library for Common Lisp")
(description "CLX is an X11 client library for Common Lisp. The code was
originally taken from a CMUCL distribution, was modified somewhat in order to
(base32 "0ccv7dqyrk55xga78i5vzlic7mdwp28in3g1a8fqhlk6626scsq9"))))
(build-system asdf-build-system/sbcl)
(arguments '(#:tests? #f))
- (home-page "http://cliki.net/trivial-features")
+ (home-page "https://cliki.net/trivial-features")
(synopsis "Ensures consistency of @code{*FEATURES*} in Common Lisp")
(description "Trivial-features ensures that @code{*FEATURES*} is
consistent across multiple Common Lisp implementations.")
(sbcl-package->ecl-package sbcl-ptester))
(define-public sbcl-puri
- (package
- (name "sbcl-puri")
- (version "20180228")
- (source
- (origin
- (method url-fetch)
- (uri (string-append "http://beta.quicklisp.org/archive/puri/"
- (date->string (string->date version "~Y~m~d") "~Y-~m-~d")
- "/puri-"
- version
- "-git.tgz"))
- (sha256
- (base32
- "1s4r5adrjy5asry45xbcbklxhdjydvf6n55z897nvyw33bigrnbz"))))
- (build-system asdf-build-system/sbcl)
- ;; REVIEW: Webiste down?
- (native-inputs
- `(("ptester" ,sbcl-ptester)))
- (home-page "http://files.kpe.io/puri/")
- (synopsis "Portable URI Library")
- (description
- "This is portable Universal Resource Identifier library for Common Lisp
-programs. It parses URI according to the RFC 2396 specification")
- (license license:lgpl3+)))
+ (let ((commit "ef5afb9e5286c8e952d4344f019c1a636a717b97")
+ (revision "1"))
+ (package
+ (name "sbcl-puri")
+ (version (git-version "1.5.7" revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "http://git.kpe.io/puri.git")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "1vm25pdl92laj72p5vyd538kf3cjy2655z6bdc99h20ana2p231s"))))
+ (build-system asdf-build-system/sbcl)
+ (native-inputs
+ `(("ptester" ,sbcl-ptester)))
+ (home-page "http://quickdocs.org/puri/")
+ (synopsis "Portable URI Library")
+ (description
+ "This is a portable Universal Resource Identifier library for Common
+Lisp programs. It parses URI according to the RFC 2396 specification.")
+ (license license:llgpl))))
(define-public cl-puri
(sbcl-package->cl-source-package sbcl-puri))
`(("stefil" ,sbcl-hu.dwim.stefil)))
(inputs
`(("sbcl-cl-fad" ,sbcl-cl-fad)))
- (home-page "http://shinmera.github.io/trivial-mimes/")
+ (home-page "https://shinmera.github.io/trivial-mimes/")
(synopsis "Tiny Common Lisp library to detect mime types in files")
(description
"This is a teensy library that provides some functions to determine the
("sbcl-lack-component" ,sbcl-lack-component)
("sbcl-alexandria" ,sbcl-alexandria)
("sbcl-babel" ,sbcl-babel)))
- (home-page "http://8arrow.org/ningle/")
+ (home-page "https://8arrow.org/ningle/")
(synopsis "Super micro framework for Common Lisp")
(description
"Ningle is a lightweight web application framework for Common Lisp.")
(sbcl-package->ecl-package sbcl-py4cl))
(define-public sbcl-parse-declarations
- (package
- (name "sbcl-parse-declarations")
- (version "1.0.0")
- (source
- (origin
- (method url-fetch)
- (uri (string-append
- "http://beta.quicklisp.org/archive/parse-declarations/"
- "2010-10-06/parse-declarations-20101006-darcs.tgz"))
- (sha256
- (base32
- "0r85b0jfacd28kr65kw9c13dx4i6id1dpmby68zjy63mqbnyawrd"))))
- (build-system asdf-build-system/sbcl)
- (arguments
- `(#:asd-file "parse-declarations-1.0.asd"
- #:asd-system-name "parse-declarations-1.0"))
- (home-page "https://common-lisp.net/project/parse-declarations/")
- (synopsis "Parse, filter, and build declarations")
- (description
- "Parse-Declarations is a Common Lisp library to help writing
+ (let ((commit "549aebbfb9403a7fe948654126b9c814f443f4f2")
+ (revision "1"))
+ (package
+ (name "sbcl-parse-declarations")
+ (version (git-version "1.0.0" revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url (string-append
+ "https://gitlab.common-lisp.net/parse-declarations/"
+ "parse-declarations.git"))
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "03g5qks4c59nmxa48pbslxkfh77h8hn8566jddp6m9pl15dzzpxd"))))
+ (build-system asdf-build-system/sbcl)
+ (arguments
+ `(#:asd-file "parse-declarations-1.0.asd"
+ #:asd-system-name "parse-declarations-1.0"))
+ (home-page "https://common-lisp.net/project/parse-declarations/")
+ (synopsis "Parse, filter, and build declarations")
+ (description
+ "Parse-Declarations is a Common Lisp library to help writing
macros which establish bindings. To be semantically correct, such
macros must take user declarations into account, as these may affect
the bindings they establish. Yet the ANSI standard of Common Lisp does
not provide any operators to work with declarations in a convenient,
high-level way. This library provides such operators.")
- ;; MIT License
- (license license:expat)))
+ ;; MIT License
+ (license license:expat))))
(define-public cl-parse-declarations
(sbcl-package->cl-source-package sbcl-parse-declarations))
(sbcl-package->cl-source-package sbcl-optima))
(define-public sbcl-fare-quasiquote
- (package
- (name "sbcl-fare-quasiquote")
- (build-system asdf-build-system/sbcl)
- (version "20171130")
- (home-page "http://common-lisp.net/project/fare-quasiquote")
- (source
- (origin
- (method url-fetch)
- (uri (string-append "http://beta.quicklisp.org/archive/fare-quasiquote/"
- (date->string (string->date version "~Y~m~d") "~Y-~m-~d")
- "/fare-quasiquote-"
- version
- "-git.tgz"))
- (sha256
- (base32
- "00brmh7ndsi0c97nibi8cy10j3l4gmkyrfrr5jr5lzkfb7ngyfqa"))))
- (inputs
- `(("fare-utils" ,sbcl-fare-utils)))
- (arguments
- ;; XXX: Circular dependencies: Tests depend on subsystems, which depend on the main systems.
- `(#:tests? #f
- #:phases
- (modify-phases %standard-phases
- ;; XXX: Require 1.0.0 version of fare-utils, and we package some
- ;; commits after 1.0.0.5, but ASDF fails to read the
- ;; "-REVISION-COMMIT" part generated by Guix.
- (add-after 'unpack 'patch-requirement
- (lambda _
- (substitute* "fare-quasiquote.asd"
- (("\\(:version \"fare-utils\" \"1.0.0\"\\)") "\"fare-utils\"")))))))
- (synopsis "Pattern-matching friendly implementation of quasiquote for Common Lisp")
- (description "The main purpose of this n+2nd reimplementation of
+ (let ((commit "640d39a0451094071b3e093c97667b3947f43639")
+ (revision "1"))
+ (package
+ (name "sbcl-fare-quasiquote")
+ (build-system asdf-build-system/sbcl)
+ (version (git-version "1.0.1" revision commit))
+ (home-page "https://gitlab.common-lisp.net/frideau/fare-quasiquote")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url (string-append "https://gitlab.common-lisp.net/frideau/"
+ "fare-quasiquote.git"))
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "1g6q11l50kgija9f55lzqpcwvaq0ljiw8v1j265hnyg6nahjwjvg"))))
+ (inputs
+ `(("fare-utils" ,sbcl-fare-utils)))
+ (arguments
+ ;; XXX: Circular dependencies: Tests depend on subsystems,
+ ;; which depend on the main systems.
+ `(#:tests? #f
+ #:phases
+ (modify-phases %standard-phases
+ ;; XXX: Require 1.0.0 version of fare-utils, and we package some
+ ;; commits after 1.0.0.5, but ASDF fails to read the
+ ;; "-REVISION-COMMIT" part generated by Guix.
+ (add-after 'unpack 'patch-requirement
+ (lambda _
+ (substitute* "fare-quasiquote.asd"
+ (("\\(:version \"fare-utils\" \"1.0.0\"\\)")
+ "\"fare-utils\"")))))))
+ (synopsis "Pattern-matching friendly implementation of quasiquote")
+ (description "The main purpose of this n+2nd reimplementation of
quasiquote is enable matching of quasiquoted patterns, using Optima or
Trivia.")
- (license license:expat)))
+ (license license:expat))))
(define-public cl-fare-quasiquote
(sbcl-package->cl-source-package sbcl-fare-quasiquote))
(lib (string-append out "/lib/" (%lisp-type))))
(mkdir-p lib)
(install-file "fare-quasiquote-extras.asd" lib)
+ (make-file-writable
+ (string-append lib "/fare-quasiquote-extras.asd"))
#t)))
(add-after 'create-asd-file 'fix-asd-file
(lambda* (#:key outputs #:allow-other-keys)
(description
"This is a standalone promise implementation for Common Lisp. It is
the successor to the now-deprecated cl-async-future project.")
- (home-page "http://orthecreedence.github.io/blackbird/")
+ (home-page "https://orthecreedence.github.io/blackbird/")
(license license:expat))))
(define-public cl-blackbird
(description
"This is futures implementation for Common Lisp. It plugs in nicely
to cl-async.")
- (home-page "http://orthecreedence.github.io/cl-async/future")
+ (home-page "https://orthecreedence.github.io/cl-async/future")
(license license:expat))))
(define-public cl-async-future
(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))