;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2014, 2015, 2018 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2015, 2017 Christopher Allan Webber <cwebber@dustycloud.org>
;;; Copyright © 2016 Alex Sassmannshausen <alex@pompo.co>
-;;; Copyright © 2016, 2017, 2018, 2019 Ricardo Wurmus <rekado@elephly.net>
+;;; Copyright © 2016, 2017, 2018, 2019, 2020 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2016 Erik Edrosa <erik.edrosa@gmail.com>
;;; Copyright © 2016, 2019 Eraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2016, 2017 Alex Kost <alezost@gmail.com>
;;; Copyright © 2017 ng0 <ng0@n0.is>
;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2018 Maxim Cournoyer <maxim.cournoyer@gmail.com>
-;;; Copyright © 2018, 2019 Arun Isaac <arunisaac@systemreboot.net>
+;;; Copyright © 2018, 2019, 2020 Arun Isaac <arunisaac@systemreboot.net>
;;; Copyright © 2018 Pierre-Antoine Rouby <pierre-antoine.rouby@inria.fr>
;;; Copyright © 2018 Eric Bavier <bavier@member.fsf.org>
;;; Copyright © 2019 swedebugia <swedebugia@riseup.net>
-;;; Copyright © 2019 Amar Singh <nly@disroot.org>
+;;; Copyright © 2019, 2020 Amar Singh <nly@disroot.org>
;;; Copyright © 2019 Timothy Sample <samplet@ngyro.com>
;;;
;;; This file is part of GNU Guix.
#:use-module (gnu packages ncurses)
#:use-module (gnu packages networking)
#:use-module (gnu packages noweb)
+ #:use-module (gnu packages nss)
#:use-module (gnu packages password-utils)
#:use-module (gnu packages perl)
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages python)
#:use-module (gnu packages readline)
#:use-module (gnu packages sdl)
+ #:use-module (gnu packages search)
#:use-module (gnu packages slang)
#:use-module (gnu packages sqlite)
+ #:use-module (gnu packages swig)
#:use-module (gnu packages tex)
#:use-module (gnu packages texinfo)
#:use-module (gnu packages tls)
#:use-module ((srfi srfi-1) #:select (alist-delete)))
(define-public artanis
- (let ((release "0.3.1")
- (revision 0))
- (package
- (name "artanis")
- (version (if (zero? revision)
- release
- (string-append release "-"
- (number->string revision))))
- (source (origin
- (method url-fetch)
- (uri (string-append "mirror://gnu/artanis/artanis-"
- release ".tar.gz"))
- (file-name (string-append name "-" version ".tar.gz"))
- (sha256
- (base32
- "0hqr5m3mb558bdhkc2sadmd9cbrhp3y525wx7cwirgy6i0zmay68"))
- (modules '((guix build utils)))
- (snippet
- '(begin
- ;; Unbundle guile-redis and guile-json
- (delete-file-recursively "artanis/third-party/json.scm")
- (delete-file-recursively "artanis/third-party/json")
- (delete-file-recursively "artanis/third-party/redis.scm")
- (delete-file-recursively "artanis/third-party/redis")
- (substitute* '("artanis/artanis.scm"
- "artanis/lpc.scm"
- "artanis/oht.scm")
- (("(#:use-module \\()artanis third-party (json\\))" _
- use-module json)
- (string-append use-module json)))
- (substitute* '("artanis/lpc.scm"
- "artanis/session.scm")
- (("(#:use-module \\()artanis third-party (redis\\))" _
- use-module redis)
- (string-append use-module redis)))
- (substitute* "artanis/oht.scm"
- (("([[:punct:][:space:]]+)(->json-string)([[:punct:][:space:]]+)"
- _ pre json-string post)
- (string-append pre
- "scm" json-string
- post)))
- (substitute* "artanis/artanis.scm"
- (("[[:punct:][:space:]]+->json-string[[:punct:][:space:]]+")
- ""))
- #t))))
- (build-system gnu-build-system)
- ;; FIXME the bundled csv contains one more exported procedure
- ;; (sxml->csv-string) than guile-csv. The author is maintainer of both
- ;; projects.
- ;; TODO: Add guile-dbi and guile-dbd optional dependencies.
- (inputs `(("guile" ,guile-2.2)
- ("guile-json" ,guile-json-1)
- ("guile-redis" ,guile-redis)))
- (native-inputs `(("bash" ,bash) ;for the `source' builtin
- ("pkgconfig" ,pkg-config)
- ("util-linux" ,util-linux))) ;for the `script' command
- (arguments
- '(#:make-flags
- ;; TODO: The documentation must be built with the `docs' target.
- (let* ((out (assoc-ref %outputs "out"))
- (scm (string-append out "/share/guile/site/2.2"))
- (go (string-append out "/lib/guile/2.2/site-ccache")))
- ;; Don't use (%site-dir) for site paths.
- (list (string-append "MOD_PATH=" scm)
- (string-append "MOD_COMPILED_PATH=" go)))
- #:test-target "test"
- #:phases
- (modify-phases %standard-phases
- (add-after 'unpack 'patch-site-dir
- (lambda* (#:key outputs #:allow-other-keys)
- (substitute* "artanis/commands/help.scm"
- (("\\(%site-dir\\)")
- (string-append "\""
- (assoc-ref outputs "out")
- "/share/guile/site/2.2\"")))))
- (add-before 'install 'substitute-root-dir
- (lambda* (#:key outputs #:allow-other-keys)
- (let ((out (assoc-ref outputs "out")))
- (substitute* "Makefile" ;ignore the execution of bash.bashrc
- ((" /etc/bash.bashrc") " /dev/null"))
- (substitute* "Makefile" ;set the root of config files to OUT
- ((" /etc") (string-append " " out "/etc")))
- (mkdir-p (string-append out "/bin")) ;for the `art' executable
- #t)))
- (add-after 'install 'wrap-art
- (lambda* (#:key inputs outputs #:allow-other-keys)
- (let* ((out (assoc-ref outputs "out"))
- (bin (string-append out "/bin"))
- (scm (string-append out "/share/guile/site/2.2"))
- (go (string-append out "/lib/guile/2.2/site-ccache")))
- (wrap-program (string-append bin "/art")
- `("GUILE_LOAD_PATH" ":" prefix
- (,scm ,(getenv "GUILE_LOAD_PATH")))
- `("GUILE_LOAD_COMPILED_PATH" ":" prefix
- (,go ,(getenv "GUILE_LOAD_COMPILED_PATH"))))
- #t))))))
- (synopsis "Web application framework written in Guile")
- (description "GNU Artanis is a web application framework written in Guile
+ (package
+ (name "artanis")
+ (version "0.4.1")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "mirror://gnu/artanis/artanis-"
+ version ".tar.gz"))
+ (sha256
+ (base32
+ "0nnmdfx5xwcc3kck64var7msz7g3qk817d7bv9l159nkmic0v9w4"))
+ (modules '((guix build utils)))
+ (snippet
+ '(begin
+ ;; Unbundle guile-redis and guile-json
+ (delete-file-recursively "artanis/third-party/json.scm")
+ (delete-file-recursively "artanis/third-party/json")
+ (delete-file-recursively "artanis/third-party/redis.scm")
+ (delete-file-recursively "artanis/third-party/redis")
+ (substitute* '("artanis/artanis.scm"
+ "artanis/lpc.scm"
+ "artanis/oht.scm")
+ (("(#:use-module \\()artanis third-party (json\\))" _
+ use-module json)
+ (string-append use-module json)))
+ (substitute* '("artanis/lpc.scm"
+ "artanis/session.scm")
+ (("(#:use-module \\()artanis third-party (redis\\))" _
+ use-module redis)
+ (string-append use-module redis)))
+ (substitute* "artanis/oht.scm"
+ (("([[:punct:][:space:]]+)(->json-string)([[:punct:][:space:]]+)"
+ _ pre json-string post)
+ (string-append pre
+ "scm" json-string
+ post)))
+ (substitute* "artanis/artanis.scm"
+ (("[[:punct:][:space:]]+->json-string[[:punct:][:space:]]+")
+ ""))
+ #t))))
+ (build-system gnu-build-system)
+ (inputs
+ `(("guile" ,guile-2.2)
+ ("nss" ,nss)))
+ ;; FIXME the bundled csv contains one more exported procedure
+ ;; (sxml->csv-string) than guile-csv. The author is maintainer of both
+ ;; projects.
+ ;; TODO: Add guile-dbi and guile-dbd optional dependencies.
+ (propagated-inputs
+ `(("guile-json" ,guile-json-1)
+ ("guile-readline" ,guile-readline)
+ ("guile-redis" ,guile-redis)))
+ (native-inputs
+ `(("bash" ,bash) ;for the `source' builtin
+ ("pkgconfig" ,pkg-config)
+ ("util-linux" ,util-linux))) ;for the `script' command
+ (arguments
+ '(#:make-flags
+ ;; TODO: The documentation must be built with the `docs' target.
+ (let* ((out (assoc-ref %outputs "out"))
+ (scm (string-append out "/share/guile/site/2.2"))
+ (go (string-append out "/lib/guile/2.2/site-ccache")))
+ ;; Don't use (%site-dir) for site paths.
+ (list (string-append "MOD_PATH=" scm)
+ (string-append "MOD_COMPILED_PATH=" go)))
+ #:test-target "test"
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'patch-site-dir
+ (lambda* (#:key outputs #:allow-other-keys)
+ (substitute* "artanis/commands/help.scm"
+ (("\\(%site-dir\\)")
+ (string-append "\""
+ (assoc-ref outputs "out")
+ "/share/guile/site/2.2\"")))))
+ (add-after 'unpack 'patch-reference-to-libnss
+ (lambda* (#:key inputs #:allow-other-keys)
+ (substitute* "artanis/security/nss.scm"
+ (("ffi-binding \"libnss3\"")
+ (string-append
+ "ffi-binding \""
+ (assoc-ref inputs "nss") "/lib/nss/libnss3.so"
+ "\"")))
+ #t))
+ (add-before 'install 'substitute-root-dir
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let ((out (assoc-ref outputs "out")))
+ (substitute* "Makefile" ;ignore the execution of bash.bashrc
+ ((" /etc/bash.bashrc") " /dev/null"))
+ (substitute* "Makefile" ;set the root of config files to OUT
+ ((" /etc") (string-append " " out "/etc")))
+ (mkdir-p (string-append out "/bin")) ;for the `art' executable
+ #t)))
+ (add-after 'install 'wrap-art
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out"))
+ (bin (string-append out "/bin"))
+ (scm (string-append out "/share/guile/site/2.2"))
+ (go (string-append out "/lib/guile/2.2/site-ccache")))
+ (wrap-program (string-append bin "/art")
+ `("GUILE_LOAD_PATH" ":" prefix
+ (,scm ,(getenv "GUILE_LOAD_PATH")))
+ `("GUILE_LOAD_COMPILED_PATH" ":" prefix
+ (,go ,(getenv "GUILE_LOAD_COMPILED_PATH"))))
+ #t))))))
+ (synopsis "Web application framework written in Guile")
+ (description "GNU Artanis is a web application framework written in Guile
Scheme. A web application framework (WAF) is a software framework that is
designed to support the development of dynamic websites, web applications, web
services and web resources. The framework aims to alleviate the overhead
provides several tools for web development: database access, templating
frameworks, session management, URL-remapping for RESTful, page caching, and
more.")
- (home-page "https://www.gnu.org/software/artanis/")
- (license (list license:gpl3+ license:lgpl3+))))) ;dual license
+ (home-page "https://www.gnu.org/software/artanis/")
+ (license (list license:gpl3+ license:lgpl3+)))) ;dual license
;; There has not been any release yet.
(define-public guildhall
(define-public guile-daemon
(package
(name "guile-daemon")
- (version "0.1.2")
+ (version "0.1.3")
(source (origin
(method url-fetch)
(uri (string-append "https://github.com/alezost/" name
"/" name "-" version ".tar.gz"))
(sha256
(base32
- "0hh6gq6b6phpxm0b1dkxyzj3f4sxdf7dji63609lzypa5v1ad2gv"))))
+ "08gaqrgjlly9k5si72vvpbr4xhq5v52l5ma5y6a7spid5dd057cy"))))
(build-system gnu-build-system)
(native-inputs
`(("pkg-config" ,pkg-config)))
version ".tar.gz"))
(sha256
(base32
- "0vjkg72ghgdgphzbjz9ig8al8271rq8974viknb2r1rg4lz92ld0"))))
+ "0vjkg72ghgdgphzbjz9ig8al8271rq8974viknb2r1rg4lz92ld0"))
+ (modules '((guix build utils)))
+ (snippet
+ '(begin
+ ;; Allow builds with Guile 3.0.
+ (substitute* "configure"
+ (("search=\"2\\.2\"")
+ "search=\"3.0 2.2\""))
+
+ ;; Explicitly include system headers rather than relying on
+ ;; <libguile.h> to do it for us.
+ (substitute* "epoll.c"
+ (("#include.*libguile\\.h.*$" all)
+ (string-append "#include <unistd.h>\n"
+ "#include <string.h>\n"
+ all "\n")))
+
+ ;; Import (ice-9 threads) for 'current-processor-count'.
+ (substitute* "tests/channels.scm"
+ (("#:use-module \\(fibers\\)")
+ (string-append "#:use-module (fibers)\n"
+ "#:use-module (ice-9 threads)\n")))
+ #t))))
(build-system gnu-build-system)
(arguments
'(#:phases (modify-phases %standard-phases
(home-page "https://github.com/wingo/fibers")
(license license:lgpl3+)))
+(define-public guile3.0-fibers
+ (package
+ (inherit guile-fibers)
+ (name "guile3.0-fibers")
+ (arguments
+ ;; The code uses 'scm_t_uint64' et al., which are deprecated in 3.0.
+ `(#:configure-flags '("CFLAGS=-Wno-error=deprecated-declarations")
+ ,@(package-arguments guile-fibers)))
+ (inputs `(("guile" ,guile-3.0)))))
+
(define-public guile-syntax-highlight
(package
(name "guile-syntax-highlight")
version ".tar.gz"))
(sha256
(base32
- "1p771kq15x83483m23bhah1sz6vkalg3drm7x279f4j1cxligkzi"))))
+ "1p771kq15x83483m23bhah1sz6vkalg3drm7x279f4j1cxligkzi"))
+ (modules '((guix build utils)))
+ (snippet
+ '(begin
+ ;; Allow builds with Guile 3.0.
+ (substitute* "configure"
+ (("2\\.2 2\\.0")
+ "3.0 2.2 2.0"))
+ #t))))
(build-system gnu-build-system)
(native-inputs
`(("pkg-config" ,pkg-config)))
(home-page "http://dthompson.us/projects/guile-syntax-highlight.html")
(license license:lgpl3+)))
+(define-public guile3.0-syntax-highlight
+ (package
+ (inherit guile-syntax-highlight)
+ (name "guile3.0-syntax-highlight")
+ (inputs `(("guile" ,guile-3.0)))))
+
(define-public guile-sjson
(package
(name "guile-sjson")
using Guile's foreign function interface.")
(license license:lgpl3+))))
+(define-public guile3.0-squee
+ (package
+ (inherit guile-squee)
+ (name "guile3.0-squee")
+ (native-inputs `(("guile" ,guile-next)
+ ,@(alist-delete "guile"
+ (package-native-inputs guile-squee))))))
+
(define-public guile-colorized
(package
(name "guile-colorized")
"Guile-colorized provides you with a colorized REPL for GNU Guile.")
(license license:gpl3+)))
+(define-public guile3.0-colorized
+ (package
+ (inherit guile-colorized)
+ (name "guile3.0-colorized")
+ (native-inputs `(("guile" ,guile-next)))))
+
(define-public guile-pfds
(package
(name "guile-pfds")
@end itemize\n")
(license license:bsd-3)))
+(define-public guile3.0-pfds
+ (package
+ (inherit guile-pfds)
+ (name "guile3.0-pfds")
+ (native-inputs `(("guile" ,guile-3.0)))
+ (arguments
+ (substitute-keyword-arguments (package-arguments guile-pfds)
+ ((#:phases phases)
+ `(modify-phases ,phases
+ (add-after 'unpack 'work-around-guile-bug
+ (lambda _
+ ;; See bug #39210.
+ (substitute* '("fingertrees.sls"
+ "queues/private/condition.sls"
+ "deques/private/condition.sls")
+ (("&assertion") "&violation"))
+ #t))))))))
+
(define-public guile-aa-tree
(package
(name "guile-aa-tree")
messaging library.")
(license license:gpl3+))))
+(define-public guile3.0-simple-zmq
+ (package
+ (inherit guile-simple-zmq)
+ (name "guile3.0-simple-zmq")
+ (native-inputs `(("guile" ,guile-next)))))
+
(define-public jupyter-guile-kernel
(let ((commit "a7db9245a886e104138474df46c3e88b95cff629")
(revision "1"))
(define-public guile-debbugs
(package
(name "guile-debbugs")
- (version "0.0.2")
+ (version "0.0.3")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnu/guile-debbugs/guile-debbugs-"
version ".tar.gz"))
(sha256
(base32
- "16l8910p57im6s3j93xhdaqvgfy6ms5n97177mrch3y961z5hy0i"))
- (modules '((guix build utils)))
- (snippet
- '(substitute* "Makefile.in"
- (("^godir = (.*)/ccache" _ prefix)
- (string-append "godir = " prefix "/site-ccache"))))))
+ "1cc63nw3xdfjrfk8c58r6d5lidmfq5cpqcy32yd5xp81yccprvn9"))))
(build-system gnu-build-system)
+ (propagated-inputs
+ `(("guile-email" ,guile-email)))
(native-inputs
`(("guile" ,guile-2.2)
("pkg-config" ,pkg-config)))
(define-public guile-email
(package
(name "guile-email")
- (version "0.2.1")
+ (version "0.2.2")
(source
(origin
(method url-fetch)
version ".tar.lz"))
(sha256
(base32
- "1ph3pb69hr3d8mj05fmbpf5rc67dlm8qnb35cc7cxz8ingvl7kv3"))))
+ "1rc8r0fgvflnyq5ckl7ii8sghpsgpkzxa8vskjr1ak2kyar6m35k"))))
(build-system gnu-build-system)
(native-inputs
`(("pkg-config" ,pkg-config)
format.")
(license license:agpl3+)))
-(define-public guile-debbugs-next
- (let ((commit "fb0ae064037a38a0d526e08b4ad24c52e205edb9")
- (revision "2"))
- (package (inherit guile-debbugs)
- (name "guile-debbugs")
- (version (git-version "0.0.3" revision commit))
- (source (origin
- (method git-fetch)
- (uri (git-reference
- (url "https://git.savannah.gnu.org/git/guile-debbugs.git")
- (commit commit)))
- (file-name (git-file-name name version))
- (sha256
- (base32
- "195sacx2xc1mzzfljj62nfpi8mxn0rc6dabxckizjksnhb5irfwy"))))
- (build-system gnu-build-system)
- (native-inputs
- `(("pkg-config" ,pkg-config)
- ("autoconf" ,autoconf)
- ("automake" ,automake)
- ("texinfo" ,texinfo)))
- (inputs
- `(("guile" ,guile-2.2)
- ("guile-email" ,guile-email))))))
+(define-public guile3.0-email
+ (package
+ (inherit guile-email)
+ (name "guile3.0-email")
+ (inputs `(("guile" ,guile-next)
+ ,@(alist-delete "guile" (package-inputs guile-email))))))
(define-public guile-newt
(package
(file-name (git-file-name name version))
(sha256
(base32
- "1w7qy4dw1f4bx622l6hw8mv49sf1ha8kch8j4nganyk8fj0wn695"))))
+ "1w7qy4dw1f4bx622l6hw8mv49sf1ha8kch8j4nganyk8fj0wn695"))
+ (modules '((guix build utils)))
+ (snippet
+ '(begin
+ ;; Allow builds with Guile 3.0.
+ (substitute* "configure.ac"
+ (("^GUILE_PKG.*")
+ "GUILE_PKG([3.0 2.2 2.0])\n"))
+
+ ;; Remove "guile.m4" since it contains an obsolete version
+ ;; of 'GUILE_PKG' that doesn't work with development
+ ;; versions such as 2.9.
+ (delete-file "m4/guile.m4")
+ #t))))
(build-system gnu-build-system)
(arguments
'(#:make-flags
(home-page "https://gitlab.com/mothacehe/guile-newt")
(license license:gpl3+)))
+(define-public guile3.0-newt
+ (package
+ (inherit guile-newt)
+ (name "guile3.0-newt")
+ (inputs `(("guile" ,guile-next)
+ ,@(alist-delete "guile" (package-inputs guile-newt))))))
+
(define-public guile-mastodon
(package
(name "guile-mastodon")
(file-name (git-file-name name version))
(sha256
(base32
- "01qmv6xnbbq3wih0dl9bscvca2d7zx7bjiqf35y6dkaqsp8nvdxf"))))
+ "01qmv6xnbbq3wih0dl9bscvca2d7zx7bjiqf35y6dkaqsp8nvdxf"))
+ (modules '((guix build utils)))
+ (snippet
+ '(begin
+ ;; Allow builds with Guile 3.0.
+ (substitute* "configure.ac"
+ (("^GUILE_PKG.*")
+ "GUILE_PKG([3.0 2.2 2.0])\n"))
+
+ ;; Remove "guile.m4" since it contains an obsolete version
+ ;; of 'GUILE_PKG' that doesn't work with development
+ ;; versions such as 2.9.
+ (delete-file "m4/guile.m4")
+ #t))))
(build-system gnu-build-system)
(arguments
'(#:make-flags
(home-page "https://gitlab.com/mothacehe/guile-parted")
(license license:gpl3+)))
+(define-public guile3.0-parted
+ (package
+ (inherit guile-parted)
+ (name "guile3.0-parted")
+ (inputs `(("guile" ,guile-next)
+ ,@(alist-delete "guile" (package-inputs guile-parted))))
+ (propagated-inputs
+ `(("guile-bytestructures" ,guile3.0-bytestructures)))))
+
(define-public guile-xosd
(package
(name "guile-xosd")
(define-public guile-config
(package
(name "guile-config")
- (version "0.3")
+ (version "0.3.1")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://gitlab.com/a-sassmannshausen/guile-config")
- (commit "ce12de3f438c6b2b59c43ee21bcd58251835fdf3")))
- (file-name "guile-config-0.3-checkout")
- (sha256 (base32 "02zbpin0r9m2vxmr7mv68v3xdn247dcck56kbzjn0gj4c2rhih85"))))
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256 (base32
+ "0gglsqwpw77gvrqcny8irpqfl7qdf2v8n9ggwrswanxalj4vcbvf"))))
(build-system gnu-build-system)
(native-inputs
`(("autoconf" ,autoconf)
"https://gitlab.com/a-sassmannshausen/guile-config")
(license license:gpl3+)))
+(define-public guile3.0-config
+ (package
+ (inherit guile-config)
+ (name "guile3.0-config")
+ (inputs `(("guile" ,guile-next)
+ ,@(alist-delete "guile" (package-inputs guile-config))))))
+
(define-public guile-hall
(package
(name "guile-hall")
- (version "0.2")
+ (version "0.2.1")
(source
(origin
(method git-fetch)
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256 (base32
- "1bkbqgj24xh5b65sw2m98iggpi67b72szx1dsiq3cpzlcxplmgaz"))))
+ "0dwx5iyg0dmdf64wq0b4w306bapr86jwnw35npgbjq4cqm8qbzqn"))))
(build-system gnu-build-system)
(arguments
`(#:modules
(home-page "https://gitlab.com/a-sassmannshausen/guile-hall")
(license license:gpl3+)))
+(define-public guile3.0-hall
+ (package
+ (inherit guile-hall)
+ (name "guile3.0-hall")
+ (inputs `(("guile" ,guile-next)
+ ,@(alist-delete "guile" (package-inputs guile-hall))))
+ (propagated-inputs
+ `(("guile-config" ,guile3.0-config)
+ ,@(alist-delete "guile-config"
+ (package-propagated-inputs guile-hall))))))
+
(define-public guile-ics
(package
(name "guile-ics")
(file-name (string-append name "-" version "-checkout"))
(sha256
(base32
- "0qjjvadr7gibdq9jvwkmlkb4afsw9n2shfj9phpiadinxk3p4m2g"))))
+ "0qjjvadr7gibdq9jvwkmlkb4afsw9n2shfj9phpiadinxk3p4m2g"))
+ (modules '((guix build utils)))
+ (snippet
+ '(begin
+ ;; Allow builds with Guile 3.0.
+ (substitute* "configure.ac"
+ (("^GUILE_PKG.*")
+ "GUILE_PKG([3.0 2.2 2.0])\n"))
+ #t))))
(build-system gnu-build-system)
(native-inputs
`(("autoconf" ,autoconf-wrapper)
The library is shipped with documentation in Info format and usage examples.")
(license license:gpl3+)))
+(define-public guile3.0-ics
+ (package
+ (inherit guile-ics)
+ (name "guile3.0-ics")
+ (inputs `(("guile" ,guile-3.0)
+ ,@(alist-delete "guile" (package-inputs guile-ics))))
+ (propagated-inputs `(("guile-lib" ,guile3.0-lib)))))
+
(define-public guile-wisp
(package
(name "guile-wisp")
users and in some situations.")
(license license:gpl3+)))
+(define-public guile3.0-wisp
+ (package
+ (inherit guile-wisp)
+ (name "guile3.0-wisp")
+ (inputs `(("guile" ,guile-3.0)))
+ (arguments
+ (substitute-keyword-arguments (package-arguments guile-wisp)
+ ((#:phases phases)
+ `(modify-phases ,phases
+ (add-after 'unpack 'support-guile-3.0
+ (lambda _
+ (substitute* "configure"
+ (("_guile_versions_to_search=\"2.2")
+ "_guile_versions_to_search=\"3.0 2.2"))
+ #t))))))))
+
(define-public guile-sly
(package
(name "guile-sly")
version ".tar.gz"))
(sha256
(base32
- "0aizxdif5dpch9cvs8zz5g8ds5s4xhfnwza2il5ji7fv2h7ks7bd"))))
+ "0aizxdif5dpch9cvs8zz5g8ds5s4xhfnwza2il5ji7fv2h7ks7bd"))
+ (modules '((guix build utils)))
+ (snippet
+ '(begin
+ ;; Work around miscompilation on Guile 3.0.0 at -O2:
+ ;; <https://bugs.gnu.org/39251>.
+ (substitute* "src/md5.scm"
+ (("\\(define f-ash ash\\)")
+ "(define f-ash (@ (guile) ash))\n")
+ (("\\(define f-add \\+\\)")
+ "(define f-add (@ (guile) +))\n"))
+ #t))))
(build-system gnu-build-system)
(arguments
'(#:make-flags
(name "guile2.0-lib")
(inputs `(("guile" ,guile-2.0)))))
+(define-public guile3.0-lib
+ (package
+ (inherit guile-lib)
+ (name "guile3.0-lib")
+ (inputs `(("guile" ,guile-3.0)))))
+
(define-public guile-minikanren
(package
(name "guile-minikanren")
version ".tar.gz"))
(sha256
(base32
- "056z4znikk83nr5mr0x2ac3iinqbywa2bvb37mhr566a1q50isfc"))))
+ "056z4znikk83nr5mr0x2ac3iinqbywa2bvb37mhr566a1q50isfc"))
+ (modules '((guix build utils)))
+ (snippet
+ '(begin
+ ;; Allow builds with Guile 3.0.
+ (substitute* "configure"
+ (("2\\.2 2\\.0")
+ "3.0 2.2 2.0"))
+ #t))))
(build-system gnu-build-system)
(arguments
`(#:modules ((ice-9 match) (ice-9 ftw)
(bin (string-append out "/bin"))
(site (string-append
out "/share/guile/site"))
- (deps (list (assoc-ref inputs "guile-reader")
- (assoc-ref inputs "guile-commonmark"))))
+ (guile-reader (assoc-ref inputs "guile-reader"))
+ (deps `(,@(if guile-reader
+ (list guile-reader)
+ '())
+ ,(assoc-ref inputs "guile-commonmark"))))
(match (scandir site)
(("." ".." version)
(let ((modules (string-append site "/" version))
(home-page "http://haunt.dthompson.us")
(license license:gpl3+)))
+(define-public guile3.0-haunt
+ (package
+ (inherit haunt)
+ (name "guile3.0-haunt")
+ (inputs `(("guile" ,guile-3.0)))
+ (propagated-inputs
+ ;; XXX: Guile-Reader is currently unavailable for Guile 3.0 so strip it.
+ `(("guile-commonmark" ,guile3.0-commonmark)))))
+
(define-public guile2.0-haunt
(package
(inherit haunt)
"/" name "-" version ".tar.gz"))
(sha256
(base32
- "17lrsdisa3kckh24q114vfmzdc4wkqa6ccwl4hdlrng5wpn1iman"))))
+ "17lrsdisa3kckh24q114vfmzdc4wkqa6ccwl4hdlrng5wpn1iman"))
+ (modules '((guix build utils)))
+ (snippet
+ '(begin
+ ;; Allow builds with Guile 3.0.
+ (substitute* "configure"
+ (("2\\.2 2\\.0")
+ "3.0 2.2 2.0"))
+ #t))))
(build-system gnu-build-system)
(inputs
`(("guile" ,guile-2.2)))
(home-page "https://github.com/OrangeShark/guile-commonmark")
(license license:lgpl3+)))
+(define-public guile3.0-commonmark
+ (package
+ (inherit guile-commonmark)
+ (name "guile3.0-commonmark")
+ (inputs `(("guile" ,guile-3.0)))))
+
(define-public guile2.0-commonmark
(package
(inherit guile-commonmark)
(add-after 'unpack 'fix-finding-guile
(lambda _
(substitute* "configure"
- (("2\\.0") "2.2 2.0"))
+ (("2\\.0") "3.0 2.2 2.0"))
#t))
(add-before 'check 'adjust-tests
(lambda _
format is also supported.")
(license license:gpl3+)))
+(define-public guile3.0-mcron
+ (package
+ (inherit mcron)
+ (name "guile3.0-mcron")
+ (inputs `(("guile" ,guile-3.0)))))
+
(define-public mcron2
;; This was mthl's mcron development branch, and it became mcron 1.1.
(deprecated-package "mcron2" mcron))
The picture values can directly be displayed in Geiser.")
(license license:lgpl3+))))
+(define-public guile3.0-picture-language
+ (package
+ (inherit guile-picture-language)
+ (name "guile3.0-picture-language")
+ (inputs `(("guile" ,guile-3.0)))))
+
(define-public guile-studio
- (let ((commit "98fbbbd08de396cd8a0e45f2a4badf1c733a5772")
- (revision "3"))
- (package
- (name "guile-studio")
- (version (git-version "0.0.1" revision commit))
- (source (origin
- (method git-fetch)
- (uri (git-reference
- (url "https://git.elephly.net/software/guile-studio.git")
- (commit commit)))
- (file-name (git-file-name name version))
- (sha256
- (base32
- "0rxl5gv2mavycwkl33lcwyb3z71j2f4zyzk60k7vl3hzszpr08iq"))))
- (build-system gnu-build-system)
- (arguments
- `(#:tests? #f ; there are none
- #:make-flags
- (list (string-append "ICONS_DIR="
- (assoc-ref %build-inputs "adwaita-icon-theme")
- "/share/icons/Adwaita/")
- (string-append "PICT_DIR="
- (assoc-ref %build-inputs "guile-picture-language"))
- (string-append "EMACS_DIR="
- (assoc-ref %build-inputs "emacs"))
- (string-append "GUILE_DIR="
- (assoc-ref %build-inputs "guile"))
- (string-join (cons "INPUTS=" (map cdr %build-inputs)))
- (string-append "PREFIX=" (assoc-ref %outputs "out")))
- #:phases
- (modify-phases %standard-phases
- (delete 'configure)
- (delete 'install))))
- (inputs
- `(("guile" ,guile-2.2)
- ("guile-picture-language" ,guile-picture-language)
- ("emacs" ,emacs)
- ("emacs-geiser" ,emacs-geiser)
- ("emacs-company" ,emacs-company)
- ("emacs-flycheck" ,emacs-flycheck)
- ("emacs-smart-mode-line" ,emacs-smart-mode-line)
- ("emacs-paren-face" ,emacs-paren-face)
- ("adwaita-icon-theme" ,adwaita-icon-theme)))
- (native-inputs
- `(("texinfo" ,texinfo)))
- (home-page "https://gnu.org/software/guile")
- (synopsis "IDE for Guile")
- (description
- "This is Emacs with a few settings that make working with Guile easier
+ (package
+ (name "guile-studio")
+ (version "0.0.2")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://git.elephly.net/software/guile-studio.git")
+ (commit version)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "10ls4ra148hd9ra7sin4kh9vv0am5pwk48p7dsjhrlg2l1hsh4hi"))))
+ (build-system gnu-build-system)
+ (arguments
+ `(#:modules
+ ((ice-9 match)
+ (srfi srfi-1)
+ ,@%gnu-build-system-modules)
+ #:tests? #f ; there are none
+ #:make-flags
+ (list (string-append "ICONS_DIR="
+ (assoc-ref %build-inputs "adwaita-icon-theme")
+ "/share/icons/Adwaita/")
+ (string-append "PICT_DIR="
+ (assoc-ref %build-inputs "guile-picture-language"))
+ (string-append "EMACS_DIR="
+ (assoc-ref %build-inputs "emacs"))
+ (string-append "GUILE_DIR="
+ (assoc-ref %build-inputs "guile"))
+ (string-join (cons "INPUTS="
+ (filter-map
+ (lambda (input)
+ (match input
+ ((label . pkg)
+ (and (string-prefix? "emacs" label) pkg))))
+ %build-inputs)))
+ (string-append "PREFIX=" (assoc-ref %outputs "out")))
+ #:phases
+ (modify-phases %standard-phases
+ (delete 'configure)
+ (delete 'install))))
+ (inputs
+ `(("guile" ,guile-2.2)
+ ("guile-picture-language" ,guile-picture-language)
+ ("emacs" ,emacs)
+ ("emacs-geiser" ,emacs-geiser)
+ ("emacs-company" ,emacs-company)
+ ("emacs-flycheck" ,emacs-flycheck)
+ ("emacs-smart-mode-line" ,emacs-smart-mode-line)
+ ("emacs-paren-face" ,emacs-paren-face)
+ ("adwaita-icon-theme" ,adwaita-icon-theme)))
+ (native-inputs
+ `(("texinfo" ,texinfo)))
+ (home-page "https://gnu.org/software/guile")
+ (synopsis "IDE for Guile")
+ (description
+ "This is Emacs with a few settings that make working with Guile easier
for people new to Emacs. Features include: CUA mode, Geiser, tool bar icons
to evaluate Guile buffers, support for Guile's very own picture language, code
completion, a simple mode line, etc.")
- (license license:gpl3+))))
+ (license license:gpl3+)))
(define-public guile-stis-parser
(let ((commit "6e85d37ffc333b722f4413a6c648263701eb75bd")
(define-public guile-file-names
(package
(name "guile-file-names")
- (version "0.2")
+ (version "0.3")
(source (origin
(method url-fetch)
(uri (string-append "http://brandon.invergo.net/software/download/"
version ".tar.gz"))
(sha256
(base32
- "1kwx5hanl40960w2nhyga7ry4l6c3c57zdrihk4yajj87vn3pmi8"))))
+ "01chizdxkhw6aqv629vxka9f5x3534ij7r0jqndawsg2vxm1r9sz"))))
(build-system gnu-build-system)
(arguments
`(#:phases
(define-public guile-gi
(package
(name "guile-gi")
- (version "0.2.0")
+ (version "0.2.2")
(source (origin
(method url-fetch)
(uri (string-append "http://lonelycactus.com/tarball/guile_gi-"
version ".tar.gz"))
(sha256
(base32
- "1n4pbrmbrjkrx826a4m31ag5c35rgkj1sirqh4qalk7gg67cfb41"))))
+ "1v82kz8mz7wgq6w5llaz8a2wwdnl8vk2667dpjwjxscl0qyxsy6y"))))
(build-system gnu-build-system)
(arguments
- `(#:configure-flags '("--with-gnu-filesystem-hierarchy")))
+ `(#:configure-flags '("--with-gnu-filesystem-hierarchy")
+ #:modules ((guix build gnu-build-system)
+ (guix build utils)
+ (ice-9 popen)
+ (ice-9 rdelim))
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'patch-references-to-extension
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let ((effective (read-line
+ (open-pipe* OPEN_READ
+ "guile" "-c"
+ "(display (effective-version))"))))
+ (substitute* '("module/gi.scm"
+ "module/gi/oop.scm"
+ "module/gi/documentation.scm"
+ "module/gi/types.scm"
+ "module/gi/repository.scm")
+ (("\\(load-extension \"libguile-gi\" \"(.*)\"\\)" m arg)
+ (format #f "~s"
+ `(load-extension
+ (format #f "~alibguile-gi"
+ (if (getenv "GUILE_GI_UNINSTALLED")
+ ""
+ ,(format #f "~a/lib/guile/~a/"
+ (assoc-ref outputs "out")
+ effective)))
+ ,arg)))))
+ (setenv "GUILE_GI_UNINSTALLED" "1")
+ #t))
+ (add-before 'check 'start-xorg-server
+ (lambda* (#:key inputs #:allow-other-keys)
+ ;; The init_check test requires a running X server.
+ (system (format #f "~a/bin/Xvfb :1 &"
+ (assoc-ref inputs "xorg-server")))
+ (setenv "DISPLAY" ":1")
+ #t)))))
(native-inputs
`(("gettext" ,gnu-gettext)
("glib:bin" ,glib "bin") ; for glib-compile-resources
("libtool" ,libtool)
- ("pkg-config" ,pkg-config)))
+ ("pkg-config" ,pkg-config)
+ ("xorg-server" ,xorg-server)))
(propagated-inputs
`(("glib" ,glib)
("gobject-introspection" ,gobject-introspection)
pre-alpha code.")
(license license:gpl3+)))
+(define-public guile3.0-gi
+ (package
+ (inherit guile-gi)
+ (name "guile3.0-gi")
+ (native-inputs
+ `(("guile" ,guile-3.0)
+ ,@(package-native-inputs guile-gi)))))
+
(define-public guile-srfi-159
(let ((commit "1bd98abda2ae4ef8f36761a167903e55c6bda7bb")
(revision "0"))
(define-public nomad
(package
(name "nomad")
- (version "0.1.1-alpha")
+ (version "0.1.2-alpha")
(source (origin
(method git-fetch)
(uri (git-reference
(file-name (git-file-name name version))
(sha256
(base32
- "0abz07hl5dh802ciy71xzkvkhyryypq1i94wna40a2wndbd73f7z"))))
+ "1dnkr1hmvfkwgxd75dcf93pg39yfgawvdpzdhv991yhghv0qxc9h"))))
(build-system gnu-build-system)
(native-inputs
`(("autoconf" ,autoconf)
("pkg-config" ,pkg-config)
("libtool" ,libtool)
("guile" ,guile-2.2)
- ("glib:bin" ,glib "bin")))
+ ("glib:bin" ,glib "bin")
+ ("texinfo" ,texinfo)
+ ("perl" ,perl)))
(inputs
`(("guile" ,guile-2.2)
("guile-lib" ,guile-lib)
(license license:gpl3+)))
(define-public guile-ffi-fftw
- (let ((commit "95d7ffb55860f3163c5283ecec1ef43bc3d174dd")
- (revision "1"))
+ (let ((commit "294ad9e7491dcb40026d2fec9be2af05263be1c0")
+ (revision "2"))
(package
(name "guile-ffi-fftw")
(version (git-version "0" revision commit))
(file-name (git-file-name "guile-ffi-fftw" version))
(sha256
(base32
- "0v9vk9cr4x9gn36lihi9gfkxyiqak0i598v5li6qw8bg95004p49"))))
+ "08j40a5p6a8pgvhffmzb5rfdnrav2mksy3gfjkdqy93jfj1z5afg"))))
(build-system guile-build-system)
(arguments
`(#:source-directory "mod"
sign in out} and @code{fftw-dft rank sign in}. These bindings being minimal,
there is no support for computing & reusing plans, or split r/i transforms, or
anything other than straight complex DFTs.")
- ;; TODO: This might actually be LGPLv3+
- ;; See https://github.com/lloda/guile-ffi-fftw/issues/1
- (license license:gpl3+))))
+ (license license:lgpl3+))))
(define-public srfi-64-driver
(package
run SRFI 64 test suites. It gives Automake insight into the individual
tests being run, resulting clearer and more specific output.")
(license license:gpl3+)))
+
+(define-public guile-semver
+ (package
+ (name "guile-semver")
+ (version "0.1.1")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "https://files.ngyro.com/guile-semver/"
+ "guile-semver-" version ".tar.gz"))
+ (sha256
+ (base32
+ "109p4n39ln44cxvwdccf9kgb96qx54makvd2ir521ssz6wchjyag"))))
+ (build-system gnu-build-system)
+ (native-inputs
+ `(("pkg-config" ,pkg-config)))
+ (inputs
+ `(("guile" ,guile-2.2)))
+ (home-page "https://ngyro.com/software/guile-semver.html")
+ (synopsis "Semantic Versioning (SemVer) for Guile")
+ (description "This Guile library provides tools for reading,
+comparing, and writing Semantic Versions. It also includes ranges in
+the style of the Node Package Manager (NPM).")
+ (license license:gpl3+)))
+
+(define-public guile-hashing
+ (package
+ (name "guile-hashing")
+ (version "1.2.0")
+ (home-page "https://github.com/weinholt/hashing")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url home-page)
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "1362d3lmpv7slmv1zmr9wy8panq9sjr9787gc2hagd646mpsfpkl"))))
+ (build-system guile-build-system)
+ (arguments
+ `(#:modules ((guix build guile-build-system)
+ (guix build utils)
+ (srfi srfi-26)
+ (ice-9 ftw))
+ #:implicit-inputs? #f ;needs nothing but Guile
+ #:phases (modify-phases %standard-phases
+ (add-before 'build 'move-sls-files
+ (lambda _
+ ;; Move the source under hashing/ in order to match
+ ;; module names, and rename .sls files to .scm.
+ (define (target file)
+ (string-append "hashing/" file))
+
+ (define (sls->scm sls)
+ (string-append (string-drop-right sls 4)
+ ".scm"))
+
+ (mkdir "hashing")
+ (for-each (lambda (file)
+ (rename-file file (sls->scm file)))
+ (find-files "." "\\.sls$"))
+ (for-each (lambda (file)
+ (rename-file file (target file)))
+ (scandir "." (cut string-suffix? ".scm" <>)))
+ (rename-file "private" "hashing/private")
+ #t)))))
+ (native-inputs
+ `(("guile" ,guile-2.2)))
+ (synopsis "Cryprographic hash functions implemented in Scheme")
+ (description
+ "The @code{(hashing @dots{})} modules implement cryptographic hash
+functions in pure R6RS Scheme: CRC, HMAC, MD5, SHA-1, and SHA-2 (SHA-256,
+SHA-512).")
+ (license license:expat)))
+
+(define-public guile3.0-hashing
+ (package
+ (inherit guile-hashing)
+ (name "guile3.0-hashing")
+ (native-inputs
+ `(("guile" ,guile-next)))))
+
+(define-public guile-webutils
+ (let ((commit "8541904f761066dc9c27b1153e9a838be9a55299")
+ (revision "0"))
+ (package
+ (name "guile-webutils")
+ (version (git-version "0.1" revision commit))
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://notabug.org/cwebber/guile-webutils.git")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "1s9n3hbxd7lfpdi0x8wr0cfvlsf6g62ird9gbspxdrp5p05rbi64"))))
+ (build-system gnu-build-system)
+ (native-inputs
+ `(("autoconf" ,autoconf)
+ ("automake" ,automake)
+ ("pkg-config" ,pkg-config)
+ ("texinfo" ,texinfo)))
+ (inputs
+ `(("guile" ,guile-2.2)))
+ (propagated-inputs
+ `(("guile-irregex" ,guile-irregex)
+ ("guile-gcrypt" ,guile-gcrypt)))
+ (home-page "https://notabug.org/cwebber/guile-webutils")
+ (synopsis "Web application authoring utilities for Guile")
+ (description
+ "This package provides tooling to write web applications in Guile, such
+as signed sessions, multipart message support, etc.")
+ (license license:gpl3+))))
+
+(define-public guile-lens
+ (let ((commit "14b15d07255f9d3f55d40a3b750d13c9ee3a154f")
+ (revision "0"))
+ (package
+ (name "guile-lens")
+ (version (git-version "0.1" revision commit))
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://gitlab.com/a-sassmannshausen/guile-lens.git")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "0w8jzqyla56yrgj7acsgd4nspyir6zgp3vgxid4xmwhg9wmf1ida"))))
+ (build-system gnu-build-system)
+ (arguments
+ '(#:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'run-hall
+ (lambda _
+ (setenv "HOME" "/tmp") ; for ~/.hall
+ (invoke "hall" "dist" "-x"))))))
+ (native-inputs
+ `(("autoconf" ,autoconf)
+ ("automake" ,automake)
+ ("guile" ,guile-2.2)
+ ("guile-hall" ,guile-hall)
+ ("pkg-config" ,pkg-config)
+ ("texinfo" ,texinfo)))
+ (home-page "https://gitlab.com/a-sassmannshausen/guile-lens.git")
+ (synopsis "Composable lenses for data structures in Guile")
+ (description
+ "Guile-Lens is a library implementing lenses in Guile. The library is
+currently a re-implementation of the lentes library for Clojure. Lenses
+provide composable procedures, which can be used to focus, apply functions
+over, or update a value in arbitrary data structures.")
+ (license license:gpl3+))))
+
+(define-public guile-xapian
+ (let ((commit "ede26b808188eb4d14c6b4181c933dfc09c0a22e")
+ (revision "0"))
+ (package
+ (name "guile-xapian")
+ (version (git-version "0" revision commit))
+ (home-page "https://git.systemreboot.net/guile-xapian")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference (url home-page)
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "07a9fmqi3pm6mbbpzi01mjwrqwnljs2rnc3603sq49dz4lf663gb"))))
+ (build-system gnu-build-system)
+ (arguments
+ '(#:make-flags '("GUILE_AUTO_COMPILE=0"))) ; to prevent guild warnings
+ (inputs
+ `(("guile" ,guile-2.2)
+ ("xapian" ,xapian)
+ ("zlib" ,zlib)))
+ (native-inputs
+ `(("autoconf" ,autoconf)
+ ("autoconf-archive" ,autoconf-archive)
+ ("automake" ,automake)
+ ("libtool" ,libtool)
+ ("pkg-config" ,pkg-config)
+ ("swig" ,swig)))
+ (synopsis "Guile bindings for Xapian")
+ (description "@code{guile-xapian} provides Guile bindings for Xapian, a
+search engine library. Xapian is a highly adaptable toolkit which allows
+developers to easily add advanced indexing and search facilities to their own
+applications. It has built-in support for several families of weighting
+models and also supports a rich set of boolean query operators.")
+ (license license:gpl2+))))
+
+(define-public guile3.0-xapian
+ (package
+ (inherit guile-xapian)
+ (name "guile3.0-xapian")
+ (inputs
+ `(("guile" ,guile-next)
+ ,@(alist-delete "guile" (package-inputs guile-xapian))))))
+
+(define-public guile-torrent
+ (package
+ (name "guile-torrent")
+ (version "0.1.3")
+ (source (origin (method git-fetch)
+ (uri (git-reference
+ (url
+ "https://github.com/o-nly/torrent.git")
+ (commit version)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "1yiagi55ncq1x7s9n7salzywjm4l96y3n7y3s47a9anvz87mrmim"))))
+ (build-system gnu-build-system)
+ (native-inputs
+ `(("autoconf" ,autoconf)
+ ("automake" ,automake)
+ ("guile" ,guile-2.2)
+ ("texinfo" ,texinfo)
+ ("perl" ,perl)
+ ("pkg-config" ,pkg-config)))
+ (propagated-inputs
+ `(("guile-gcrypt" ,guile-gcrypt)))
+ (home-page "https://github.com/o-nly/torrent")
+ (synopsis "Torrent library for GNU Guile")
+ (description "This package provides facilities for working with
+@code{.torrent} or metainfo files. Implements a bencode reader and writer
+according to Bitorrent BEP003.")
+ (license license:gpl3+)))
+
+(define-public guile-irc
+ (let ((commit "375d3bde9c6ae7ccc9d7cc65817966b6fda8f26a")
+ (revision "0"))
+ (package
+ (name "guile-irc")
+ (version (git-version "0.3.0" revision commit))
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/rekado/guile-irc.git")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "113lcckcywrz9060w1c3fnvr8d7crdsjgsv4h47hgmr1slgadl4y"))))
+ (build-system gnu-build-system)
+ (arguments
+ `(#:configure-flags '("--enable-gnutls=yes")))
+ (native-inputs
+ `(("autoconf" ,autoconf)
+ ("automake" ,automake)
+ ("texinfo" ,texinfo)))
+ (inputs
+ `(("gnutls" ,gnutls)
+ ("guile" ,guile-2.2)))
+ (home-page "https://github.com/rekado/guile-irc")
+ (synopsis "IRC library for Guile")
+ (description "This package provides a Guile library for @dfn{Internet
+Relay Chat} (IRC).")
+ ;; Some file headers incorrectly say LGPLv2+.
+ (license license:lgpl2.1+))))