;;; Copyright © 2016 Alex Sassmannshausen <alex@pompo.co>
;;; Copyright © 2016, 2017, 2018, 2019 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2016 Erik Edrosa <erik.edrosa@gmail.com>
-;;; Copyright © 2016 Eraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2016, 2019 Eraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2016, 2017 Alex Kost <alezost@gmail.com>
;;; Copyright © 2016, 2017 Adonay "adfeno" Felipe Nogueira <https://libreplanet.org/wiki/User:Adfeno> <adfeno@openmailbox.org>
;;; Copyright © 2016 Amirouche <amirouche@hypermove.net>
-;;; Copyright © 2016 Jan Nieuwenhuizen <janneke@gnu.org>
+;;; Copyright © 2016, 2019 Jan Nieuwenhuizen <janneke@gnu.org>
;;; Copyright © 2017 Andy Wingo <wingo@igalia.com>
;;; Copyright © 2017 David Thompson <davet@gnu.org>
-;;; Copyright © 2017, 2018 Mathieu Othacehe <m.othacehe@gmail.com>
+;;; Copyright © 2017, 2018, 2019 Mathieu Othacehe <m.othacehe@gmail.com>
;;; Copyright © 2017 Theodoros Foradis <theodoros@foradis.org>
;;; Copyright © 2017 ng0 <ng0@n0.is>
;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr>
;;; 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 Timothy Sample <samplet@ngyro.com>
;;;
;;; This file is part of GNU Guix.
;;;
(define-module (gnu packages guile-xyz)
#:use-module ((guix licenses) #:prefix license:)
#:use-module (gnu packages)
+ #:use-module (gnu packages algebra)
#:use-module (gnu packages aspell)
#:use-module (gnu packages autotools)
#:use-module (gnu packages base)
#:use-module (gnu packages compression)
#:use-module (gnu packages databases)
#:use-module (gnu packages disk)
- #:use-module (gnu packages ed)
#:use-module (gnu packages emacs)
#:use-module (gnu packages emacs-xyz)
#:use-module (gnu packages gawk)
#:use-module (gnu packages gettext)
#:use-module (gnu packages gl)
+ #:use-module (gnu packages glib)
#:use-module (gnu packages gnome)
+ #:use-module (gnu packages gnupg)
#:use-module (gnu packages gperf)
+ #:use-module (gnu packages gtk)
#:use-module (gnu packages guile)
#:use-module (gnu packages hurd)
#:use-module (gnu packages image)
+ #:use-module (gnu packages imagemagick)
#:use-module (gnu packages libffi)
#:use-module (gnu packages libunistring)
#:use-module (gnu packages linux)
#:use-module (gnu packages multiprecision)
#: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 sdl)
#:use-module (gnu packages slang)
#:use-module (gnu packages sqlite)
+ #:use-module (gnu packages tex)
#:use-module (gnu packages texinfo)
#:use-module (gnu packages tls)
#:use-module (gnu packages version-control)
+ #:use-module (gnu packages webkit)
#:use-module (gnu packages xdisorg)
#:use-module (gnu packages xorg)
#:use-module (guix packages)
#:use-module (guix download)
#:use-module (guix git-download)
+ #:use-module (guix hg-download)
#:use-module (guix build-system gnu)
#:use-module (guix build-system guile)
#:use-module (guix utils)
#: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)
- ("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
(uri (git-reference
(url "https://github.com/jerry40/guile-kernel")
(commit commit)))
+ (file-name (git-file-name name version))
(sha256
(base32
"0aj04853bqm47ivfcmrgpb7w3wkis847kc7qrwsa5zcn9h38qh2f"))))
(inputs
`(("openssl" ,openssl)
("guile" ,guile-2.2)
- ("guile-json" ,guile-json)
+ ("guile-json" ,guile-json-1)
("guile-simple-zmq" ,guile-simple-zmq)))
(synopsis "Guile kernel for the Jupyter Notebook")
(description
(define-public guile-email
(package
(name "guile-email")
- (version "0.1.0")
+ (version "0.2.2")
(source
(origin
(method url-fetch)
(uri (string-append
- "https://git.systemreboot.net/guile-email/snapshot/guile-email-"
- version ".tar.xz"))
+ "https://guile-email.systemreboot.net/releases/guile-email-"
+ version ".tar.lz"))
(sha256
(base32
- "0p2v8q2kkz8m6vf2rsjvz3dj1mvnx7dxakjf72dwkndbgk3rp79f"))))
+ "1rc8r0fgvflnyq5ckl7ii8sghpsgpkzxa8vskjr1ak2kyar6m35k"))))
(build-system gnu-build-system)
(native-inputs
`(("pkg-config" ,pkg-config)
- ("autoconf" ,autoconf)
- ("automake" ,automake)))
+ ("lzip" ,lzip)))
(inputs
`(("guile" ,guile-2.2)))
- (home-page "https://git.systemreboot.net/guile-email")
+ (arguments
+ '(#:make-flags '("GUILE_AUTO_COMPILE=0"))) ; to prevent guild warnings
+ (home-page "https://guile-email.systemreboot.net")
(synopsis "Guile email parser")
- (description "This package provides an email parser written in pure
-Guile.")
+ (description "guile-email is a collection of email utilities implemented
+in pure guile. It supports parsing MIME (Multipurpose Internet Mail
+Extensions) compliant email messages and reading emails from the mbox
+format.")
(license license:agpl3+)))
(define-public guile-debbugs-next
- (let ((commit "75a331d561c8b6f8efcf16216dab961c17759efe")
- (revision "1"))
+ (let ((commit "fb0ae064037a38a0d526e08b4ad24c52e205edb9")
+ (revision "2"))
(package (inherit guile-debbugs)
(name "guile-debbugs")
(version (git-version "0.0.3" revision commit))
(file-name (git-file-name name version))
(sha256
(base32
- "0br3mgbw41bpc9x57jlghl0i8dz9nl63r4wzs5l47aqszf84870y"))))
+ "195sacx2xc1mzzfljj62nfpi8mxn0rc6dabxckizjksnhb5irfwy"))))
(build-system gnu-build-system)
(native-inputs
`(("pkg-config" ,pkg-config)
(inputs
`(("guile" ,guile-2.2)
("gnutls" ,gnutls)
- ("guile-json" ,guile-json)))
+ ("guile-json" ,guile-json-1)))
(home-page "https://framagit.org/prouby/guile-mastodon")
(synopsis "Guile Mastodon REST API module")
(description "This package provides Guile modules to access the
(define-public guile-parted
(package
(name "guile-parted")
- (version "0.0.1")
+ (version "0.0.2")
(source (origin
(method git-fetch)
(uri (git-reference
(file-name (git-file-name name version))
(sha256
(base32
- "1q7425gpjlwi2wvhzq7kw046yyx7v6j6jyzkd1cr861iz34mjwiq"))))
+ "01qmv6xnbbq3wih0dl9bscvca2d7zx7bjiqf35y6dkaqsp8nvdxf"))))
(build-system gnu-build-system)
(arguments
'(#:make-flags
(define-public guile-wisp
(package
(name "guile-wisp")
- (version "0.9.9.1")
+ (version "1.0.2")
(source (origin
(method url-fetch)
(uri (string-append "https://bitbucket.org/ArneBab/"
version ".tar.gz"))
(sha256
(base32
- "1ii14qz1lx7ffhb8i9q7dgaiwbif8g2q182skx17j11skp65c8r3"))))
+ "03pz7pj9jyallynhflp5s7qax8dj1fs8la434wrfgz7g1kgjnvf6"))))
(build-system gnu-build-system)
(arguments
`(#:modules ((guix build gnu-build-system)
(add-before 'configure 'patch-/usr/bin/env
(lambda _
(substitute* "Makefile.in"
- (("/usr/bin/env bash") (which "bash"))
- (("\\$\\(GUILE_EFFECTIVE_VERSION\\)/site")
- "site/$(GUILE_EFFECTIVE_VERSION)")) ;use the right order
+ (("/usr/bin/env bash") (which "bash")))
#t))
;; auto compilation breaks, but if we set HOME to /tmp,
;; that works ok
(assoc-ref emacs:%standard-phases 'build))
(add-after 'compile-emacs-files 'make-autoloads
(assoc-ref emacs:%standard-phases 'make-autoloads)))))
- (home-page "https://draketo.de/english/wisp")
+ (home-page "https://www.draketo.de/english/wisp")
(inputs
`(("guile" ,guile-2.2)))
(native-inputs
(home-page "https://www.nongnu.org/guile-reader/")
(license license:gpl3+)))
-(define-public guile2.2-reader
- (deprecated-package "guile2.2-reader" guile-reader))
-
(define-public guile-ncurses
(package
(name "guile-ncurses")
- (version "2.2")
+ (version "3.0")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnu/guile-ncurses/guile-ncurses-"
version ".tar.gz"))
(sha256
(base32
- "1wvggbr4xv8idh1hzd8caj4xfp4pln78a7w1wqzd4zgzwmnzxr2f"))))
+ "038xbffalhymg26lvmzgf7ljilxz2f2zmqg5r5nfzbipfbprwjhf"))))
(build-system gnu-build-system)
(inputs `(("ncurses" ,ncurses)
("guile" ,guile-2.2)))
(name "guile2.0-lib")
(inputs `(("guile" ,guile-2.0)))))
-(define-public guile2.2-lib
- (deprecated-package "guile2.2-lib" guile-lib))
-
(define-public guile-minikanren
(package
(name "guile-minikanren")
(name "guile2.0-minikanren")
(native-inputs `(("guile" ,guile-2.0)))))
-(define-public guile2.2-minikanren
- (deprecated-package "guile2.2-minikanren" guile-minikanren))
+(define-public guile3.0-minikanren
+ (package
+ (inherit guile-minikanren)
+ (name "guile3.0-minikanren")
+ (native-inputs `(("guile" ,guile-next)))))
(define-public guile-irregex
(package
(name "guile2.0-irregex")
(native-inputs `(("guile" ,guile-2.0)))))
-(define-public guile2.2-irregex
- (deprecated-package "guile2.2-irregex" guile-irregex))
+(define-public guile3.0-irregex
+ (package
+ (inherit guile-irregex)
+ (name "guile3.0-irregex")
+ (native-inputs `(("guile" ,guile-next)))))
(define-public haunt
(package
(name "guile2.0-haunt")
(inputs `(("guile" ,guile-2.0)))))
-(define-public guile2.2-haunt
- (deprecated-package "guile2.2-haunt" haunt))
-
(define-public guile-redis
(package
(name "guile-redis")
(version "1.3.0")
(home-page "https://github.com/aconchillo/guile-redis")
(source (origin
- (method url-fetch)
- (uri (string-append home-page "/archive/" version ".tar.gz"))
+ (method git-fetch)
+ (uri (git-reference
+ (url home-page)
+ (commit version)))
+ (file-name (git-file-name name version))
(sha256
(base32
- "1li70a2716my9q9zfq0qn2x5d1cir9k2vx0jm9glm464yaf1vj39"))))
+ "14izs8daxh7pb7vwpxi5g427qa31137jkaxrb1cy5rpjkwchy723"))))
(build-system gnu-build-system)
(native-inputs
`(("autoconf" ,autoconf)
,@(alist-delete "guile"
(package-native-inputs guile-redis))))))
-(define-public guile2.2-redis
- (deprecated-package "guile2.2-redis" guile-redis))
-
(define-public guile-commonmark
(package
(name "guile-commonmark")
(name "guile2.0-commonmark")
(inputs `(("guile" ,guile-2.0)))))
-(define-public guile2.2-commonmark
- (deprecated-package "guile2.2-commonmark" guile-commonmark))
-
(define-public mcron
(package
(name "mcron")
- (version "1.1.1")
+ (version "1.1.3")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnu/mcron/mcron-"
version ".tar.gz"))
(sha256
(base32
- "1i9mcp6r6my61zfiydsm3n6my41mwvl7dfala4q29qx0zn1ynlm4"))))
+ "00kv7fgllzjpis0g1m9csycp4f6l11774m09dqy255cvmim2g743"))))
(build-system gnu-build-system)
(arguments
'(#:phases (modify-phases %standard-phases
- (add-before 'check 'set-timezone
- (lambda* (#:key inputs #:allow-other-keys)
- ;; 'tests/job-specifier.scm' expects to be running in
- ;; UTC-2 or something.
- ;; FIXME: This issue is being investigated upstream, for
- ;; now we'll just skip the tests (see below):
- ;; <https://lists.gnu.org/archive/html/bug-mcron/2018-04/msg00005.html>.
- (let ((tzdata (assoc-ref inputs "tzdata")))
- (setenv "TZDIR"
- (string-append tzdata
- "/share/zoneinfo"))
- (setenv "TZ" "UTC-2")
- #t)))
+ (add-after 'unpack 'fix-finding-guile
+ (lambda _
+ (substitute* "configure"
+ (("2\\.0") "2.2 2.0"))
+ #t))
(add-before 'check 'adjust-tests
(lambda _
(substitute* "tests/job-specifier.scm"
#t)))))
(native-inputs `(("pkg-config" ,pkg-config)
("tzdata" ,tzdata-for-tests)))
- (inputs `(("ed" ,ed) ("which" ,which) ("guile" ,guile-2.2)))
+ (inputs `(("guile" ,guile-2.2)))
(home-page "https://www.gnu.org/software/mcron/")
(synopsis "Run jobs at scheduled times")
(description
(deprecated-package "mcron2" mcron))
(define-public guile-picture-language
- (let ((commit "1ea8b78a8bceb4f7e5eaeb3e76987072267f99bb")
- (revision "2"))
+ (let ((commit "91d10c96708d732145006dd2802acc4de08b632e")
+ (revision "1"))
(package
(name "guile-picture-language")
- (version (git-version "0" revision commit))
+ (version (git-version "0.0.1" revision commit))
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://git.elephly.net/software/guile-picture-language.git")
(commit commit)))
+ (file-name (git-file-name name version))
(sha256
(base32
- "1rvq6q2zq21x7dx0qq1hn568wglsl4bkd8gacbarcx1fs0rrxcqw"))))
- (build-system guile-build-system)
+ "1ydvw9dvssdvlvhh1dr8inyzy2x6m41qgp8hsivca1xysr4gc23a"))))
+ (build-system gnu-build-system)
(inputs
`(("guile" ,guile-2.2)))
+ (native-inputs
+ `(("autoconf" ,autoconf)
+ ("automake" ,automake)
+ ("imagemagick" ,imagemagick)
+ ("pkg-config" ,pkg-config)
+ ("texinfo" ,texinfo)))
(home-page "https://git.elephly.net/software/guile-picture-language.git")
(synopsis "Picture language for Guile")
(description
(license license:lgpl3+))))
(define-public guile-studio
- (let ((commit "e2da64f014942a73996286c4abe3c3b1f8bd220c")
- (revision "1"))
- (package
- (name "guile-studio")
- (version (git-version "0" revision commit))
- (source (origin
- (method git-fetch)
- (uri (git-reference
- (url "https://git.elephly.net/software/guile-studio.git")
- (commit commit)))
- (sha256
- (base32
- "10v3kw41bzd8c2a6vxgrwbvl216d0k8f5s9h6pm8hahpd03jl7lm"))))
- (build-system gnu-build-system)
- (arguments
- `(#:tests? #f ; there are none
- #:phases
- (modify-phases %standard-phases
- (delete 'configure)
- (replace 'build
- (lambda* (#:key source inputs outputs #:allow-other-keys)
- (let* ((out (assoc-ref outputs "out"))
- (bin (string-append out "/bin/"))
- (share (string-append out "/share/")))
- (mkdir-p share)
- (mkdir-p bin)
- (apply invoke "guile" "-s" "guile-studio-configure.scm"
- out
- (assoc-ref inputs "emacs")
- (assoc-ref inputs "guile-picture-language")
- (string-append (assoc-ref inputs "adwaita-icon-theme")
- "/share/icons/Adwaita/")
- (map cdr inputs))
- #t)))
- (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)))
- (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")
(file-name (git-file-name name version))
(sha256
(base32
- "0z5nf377wh8yj6n3sx2ddn4bdx1qrqnw899dlqjhg0q69qzil522"))))
+ "0z5nf377wh8yj6n3sx2ddn4bdx1qrqnw899dlqjhg0q69qzil522"))
+ (modules '((guix build utils)))
+ (snippet
+ '(begin
+ ;; Install .go files in the right place.
+ (substitute* "Makefile.am"
+ (("/ccache") "/site-ccache"))
+ #t))))
(build-system gnu-build-system)
(arguments
`(#:phases
("libtool" ,libtool)
("pkg-config" ,pkg-config)))
(home-page "https://gitlab.com/tampe/guile-persist")
- (synopsis "Persistance programming framework for Guile")
+ (synopsis "Persistence programming framework for Guile")
(description
"This is a serialization library for serializing objects like classes
and objects, closures and structs. This currently does not support
(license license:lgpl2.0+))))
(define-public python-on-guile
- (let ((commit "0cb7c2b2fff4338ca6153473f3f5c409a818f293")
- (revision "1"))
+ (let ((commit "00a51a23247f1edc4ae8eda72b30df5cd7d0015f")
+ (revision "3"))
(package
(name "python-on-guile")
(version (git-version "0.1.0" revision commit))
(source (origin
(method git-fetch)
(uri (git-reference
- (url "https://gitlab.com/python-on-guile/python-on-guile.git")
+ (url "https://git.elephly.net/software/python-on-guile.git")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32
- "0kpz08rrp5mwcf5ksc4flgrw992syham9x49dn9wq9w31bpcpnby"))))
+ "03rpnqr08rqr3gay128g564rwk8w4jbj28ss6b46z1d4vjs4nk68"))))
(build-system gnu-build-system)
(arguments
`(#:parallel-build? #f ; not supported
- #:make-flags
- '("GUILE_AUTO_COMPILE=0") ; to prevent guild errors
+ #:make-flags '("GUILE_AUTO_COMPILE=0") ;to prevent guild warnings
+
#:phases
(modify-phases %standard-phases
(add-after 'unpack 'chdir
(lambda _ (chdir "modules") #t))
- (add-after 'chdir 'use-canonical-directory-for-go-files
- (lambda _
- (substitute* "Makefile.am"
- (("/ccache") "/site-ccache"))
- #t)))))
+ (add-after 'install 'wrap
+ (lambda* (#:key outputs #:allow-other-keys)
+ ;; Wrap the 'python' executable so it can find its
+ ;; dependencies.
+ (let ((out (assoc-ref outputs "out")))
+ (wrap-program (string-append out "/bin/python")
+ `("GUILE_LOAD_PATH" ":" prefix
+ (,(getenv "GUILE_LOAD_PATH")))
+ `("GUILE_LOAD_COMPILED_PATH" ":" prefix
+ (,(getenv "GUILE_LOAD_COMPILED_PATH"))))
+ #t))))))
(inputs
`(("guile" ,guile-2.2)))
(propagated-inputs
(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
Inevitably, you have to break the string up into chunks and operate on that
list of components. This module takes care of that for you.")
(license license:lgpl3+)))
+
+(define-public guile-gi
+ (package
+ (name "guile-gi")
+ (version "0.2.1")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "http://lonelycactus.com/tarball/guile_gi-"
+ version ".tar.gz"))
+ (sha256
+ (base32
+ "1ah5bmkzplsmkrk7v9vlxlqch7i91qv4cq2d2nar9xshbpcrj484"))))
+ (build-system gnu-build-system)
+ (arguments
+ `(#:configure-flags '("--with-gnu-filesystem-hierarchy")
+ #:phases
+ (modify-phases %standard-phases
+ (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)
+ ("xorg-server" ,xorg-server)))
+ (propagated-inputs
+ `(("glib" ,glib)
+ ("gobject-introspection" ,gobject-introspection)
+ ("gssettings-desktop-schemas" ,gsettings-desktop-schemas)
+ ("gtk+" ,gtk+)
+ ("guile-lib" ,guile-lib)
+ ("webkitgtk" ,webkitgtk)))
+ (inputs `(("guile" ,guile-2.2)))
+ (home-page "https://github.com/spk121/guile-gi")
+ (synopsis "GObject bindings for Guile")
+ (description
+ "Guile-GI is a library for Guile that allows using GObject-based
+libraries, such as GTK+3. Its README comes with the disclaimer: This is
+pre-alpha code.")
+ (license license:gpl3+)))
+
+(define-public guile-srfi-159
+ (let ((commit "1bd98abda2ae4ef8f36761a167903e55c6bda7bb")
+ (revision "0"))
+ (package
+ (name "guile-srfi-159")
+ (version (git-version "0" revision commit))
+ (home-page "https://bitbucket.org/bjoli/guile-srfi-159")
+ (source (origin
+ (method hg-fetch)
+ (uri (hg-reference (changeset commit)
+ (url home-page)))
+ (sha256
+ (base32
+ "1zw6cmcy7xdbfiz3nz9arqnn7l2daidaps6ixkcrc9b6k51fdv3p"))
+ (file-name (git-file-name name version))))
+ (build-system guile-build-system)
+ (arguments
+ ;; The *-impl.scm files are actually included from module files; they
+ ;; should not be compiled separately, but they must be installed.
+ '(#:not-compiled-file-regexp "-impl\\.scm$"))
+ (inputs
+ `(("guile" ,guile-2.2)))
+ (synopsis "Formatting combinators for Guile")
+ (description
+ "The @code{(srfi-159)} module and its sub-modules implement the
+formatting combinators specified by
+@uref{https://srfi.schemers.org/srfi-159/srfi-159.html, SRFI-159}. These are
+more expressive and flexible than the traditional @code{format} procedure.")
+ (license license:bsd-3))))
+
+(define-public emacsy
+ (package
+ (name "emacsy")
+ (version "0.4.1")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://download.savannah.nongnu.org/releases/"
+ name "/" name "-" version ".tar.gz"))
+ (sha256
+ (base32
+ "1cpb85dl1nibd34c2x2h7vfmjpkgh353p5b1w20v6cs6gmvgg4np"))))
+ (build-system gnu-build-system)
+ (native-inputs
+ `(("autoconf" ,autoconf)
+ ("automake" ,automake)
+ ("bzip2" ,bzip2)
+ ("guile" ,guile-2.2)
+ ("gettext" ,gnu-gettext)
+ ("libtool" ,libtool)
+ ("perl" ,perl)
+ ("pkg-config" ,pkg-config)
+ ("texinfo" ,texinfo)
+ ("texlive" ,(texlive-union (list texlive-generic-epsf)))))
+ (inputs
+ `(("dbus-glib" ,dbus-glib)
+ ("guile" ,guile-2.2)
+ ("guile-lib" ,guile-lib)
+ ("guile-readline" ,guile-readline)
+ ("freeglut" ,freeglut)
+ ("webkitgtk" ,webkitgtk)))
+ (propagated-inputs
+ `(("glib-networking" ,glib-networking)
+ ("gssettings-desktop-schemas" ,gsettings-desktop-schemas)))
+ (arguments
+ `(#:modules ((guix build gnu-build-system)
+ (guix build utils)
+ (ice-9 popen)
+ (ice-9 rdelim)
+ (ice-9 regex)
+ (ice-9 ftw)
+ (srfi srfi-26))
+ #:phases
+ (modify-phases %standard-phases
+ (add-before 'configure 'setenv
+ (lambda _
+ (setenv "GUILE_AUTO_COMPILE" "0")
+ #t))
+ (add-after 'install 'wrap-binaries
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out"))
+ (effective (read-line
+ (open-pipe* OPEN_READ
+ "guile" "-c"
+ "(display (effective-version))")))
+ (deps (map (cut assoc-ref inputs <>)
+ '("guile-lib" "guile-readline")))
+ (scm-path (map (cut string-append <> "/share/guile/site/"
+ effective) `(,out ,@deps)))
+ (go-path (map (cut string-append <> "/lib/guile/" effective
+ "/site-ccache/") `(,out ,@deps)))
+ (examples (filter (cut string-match "emacsy" <>)
+ (scandir (string-append out "/bin/"))))
+ (progs (map (cut string-append out "/bin/" <>)
+ examples)))
+ (map (cut wrap-program <>
+ `("GUILE_LOAD_PATH" ":" prefix ,scm-path)
+ `("GUILE_LOAD_COMPILED_PATH" ":" prefix ,go-path))
+ progs)
+ #t))))))
+ (home-page "https://savannah.nongnu.org/projects/emacsy")
+ (synopsis "Embeddable GNU Emacs-like library using Guile")
+ (description
+ "Emacsy is an embeddable Emacs-like library that uses GNU Guile
+as extension language. Emacsy can give a C program an Emacsy feel with
+keymaps, minibuffer, recordable macros, history, tab completion, major
+and minor modes, etc., and can also be used as a pure Guile library. It
+comes with a simple counter example using FreeGLUT and browser examples
+in C using Gtk+-3 and WebKitGtk.")
+ (license license:gpl3+)))
+
+(define-public emacsy-minimal
+ (let ((commit "f3bf0dbd803d7805b6ae8303253507ad13922293"))
+ (package
+ (inherit emacsy)
+ (name "emacsy-minimal")
+ (version (git-version "v0.4.1" "19" commit))
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://git.savannah.gnu.org/git/emacsy.git")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "0ivy28km1p7nlrf63xx3hvrpxf5ld5amk1wcan3k7sqv1kq9mqdb"))))
+ (build-system gnu-build-system)
+ (inputs
+ `(("guile" ,guile-2.2)
+ ("guile-lib" ,guile-lib)
+ ("guile-readline" ,guile-readline)))
+ (propagated-inputs '())
+ (arguments
+ `(#:configure-flags '("--without-examples")
+ #:phases
+ (modify-phases %standard-phases
+ (add-before 'configure 'setenv
+ (lambda _
+ (setenv "GUILE_AUTO_COMPILE" "0")
+ #t))))))))
+
+(define-public guile-jpeg
+ (let ((commit "6a1673578b297c2c1b28e44a76bd5c49e76a5046")
+ (revision "0"))
+ (package
+ (name "guile-jpeg")
+ (version (git-version "0.0" revision commit))
+ (home-page "https://gitlab.com/wingo/guile-jpeg")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference (url home-page)
+ (commit commit)))
+ (sha256
+ (base32
+ "05z9m408w3h6aqb5k3r3qa7khir0k10rxwvsrzhkcq1hr5vbmr4m"))
+ (file-name (git-file-name name version))
+ (modules '((guix build utils)))
+ (snippet
+ '(begin
+ ;; Install .go files in the right place.
+ (substitute* "Makefile.am"
+ (("/ccache") "/site-ccache"))
+ #t))))
+ (build-system gnu-build-system)
+ (native-inputs
+ `(("autoconf" ,autoconf)
+ ("automake" ,automake)
+ ("pkg-config" ,pkg-config)
+ ("guile" ,guile-2.2)))
+ (synopsis "JPEG file parsing library for Guile")
+ (description
+ "Guile-JPEG is a Scheme library to parse JPEG image files and to
+perform geometrical transforms on JPEG images.")
+ (license license:gpl3+))))
+
+(define-public nomad
+ (package
+ (name "nomad")
+ (version "0.1.2-alpha")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://git.savannah.gnu.org/git/nomad.git")
+ (commit version)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "1dnkr1hmvfkwgxd75dcf93pg39yfgawvdpzdhv991yhghv0qxc9h"))))
+ (build-system gnu-build-system)
+ (native-inputs
+ `(("autoconf" ,autoconf)
+ ("automake" ,automake)
+ ("bash" ,bash)
+ ("pkg-config" ,pkg-config)
+ ("libtool" ,libtool)
+ ("guile" ,guile-2.2)
+ ("glib:bin" ,glib "bin")
+ ("texinfo" ,texinfo)
+ ("perl" ,perl)))
+ (inputs
+ `(("guile" ,guile-2.2)
+ ("guile-lib" ,guile-lib)
+ ("guile-gcrypt" ,guile-gcrypt)
+ ("guile-readline" ,guile-readline)
+ ("gnutls" ,gnutls)
+ ("shroud" ,shroud)
+ ("emacsy" ,emacsy-minimal)
+ ("glib" ,glib)
+ ("dbus-glib" ,dbus-glib)
+ ("gtk+" ,gtk+)
+ ("gtksourceview" ,gtksourceview)
+ ("webkitgtk" ,webkitgtk)
+ ("xorg-server" ,xorg-server)))
+ (propagated-inputs
+ `(("glib" ,glib)
+ ("glib-networking" ,glib-networking)
+ ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)))
+ (arguments
+ `(#:modules ((guix build gnu-build-system)
+ (guix build utils)
+ (ice-9 popen)
+ (ice-9 rdelim)
+ (srfi srfi-26))
+ #:phases
+ (modify-phases %standard-phases
+ (add-before 'check 'start-xorg-server
+ (lambda* (#:key inputs #:allow-other-keys)
+ ;; The test suite requires a running X server.
+ (system (format #f "~a/bin/Xvfb :1 &"
+ (assoc-ref inputs "xorg-server")))
+ (setenv "DISPLAY" ":1")
+ #t))
+ (add-after 'install 'wrap-binaries
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out"))
+ (gio-deps (map (cut assoc-ref inputs <>) '("glib-networking"
+ "glib")))
+ (gio-mod-path (map (cut string-append <> "/lib/gio/modules")
+ gio-deps))
+ (effective (read-line (open-pipe*
+ OPEN_READ
+ "guile" "-c"
+ "(display (effective-version))")))
+ (deps (map (cut assoc-ref inputs <>)
+ '("emacsy" "guile-lib" "guile-readline"
+ "shroud")))
+ (scm-path (map (cut string-append <>
+ "/share/guile/site/" effective)
+ `(,out ,@deps)))
+ (go-path (map (cut string-append <>
+ "/lib/guile/" effective "/site-ccache")
+ `(,out ,@deps)))
+ (progs (map (cut string-append out "/bin/" <>)
+ '("nomad"))))
+ (map (cut wrap-program <>
+ `("GIO_EXTRA_MODULES" ":" prefix ,gio-mod-path)
+ `("GUILE_LOAD_PATH" ":" prefix ,scm-path)
+ `("GUILE_LOAD_COMPILED_PATH" ":"
+ prefix ,go-path))
+ progs)
+ #t))))))
+ (home-page "https://savannah.nongnu.org/projects/nomad/")
+ (synopsis "Extensible Web Browser in Guile Scheme")
+ (description "Nomad is an Emacs-like Web Browser built using Webkitgtk and
+Emacsy. It has a small C layer and most browser features are fully
+programmable in Guile. It has hooks, keymaps, and self documentation
+features.")
+ (license license:gpl3+)))
+
+(define-public guile-cv
+ (package
+ (name "guile-cv")
+ (version "0.2.1")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "mirror://gnu/guile-cv/guile-cv-"
+ version ".tar.gz"))
+ (sha256
+ (base32
+ "0qdf0s2h1xj5lbhnc1pfw69i3zg08pqy2y6869b92ydfis8r82j9"))))
+ (build-system gnu-build-system)
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'prepare-build
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ (substitute* "configure"
+ (("SITEDIR=\"\\$datadir/guile-cv\"")
+ "SITEDIR=\"$datadir/guile/site/$GUILE_EFFECTIVE_VERSION\"")
+ (("SITECCACHEDIR=\"\\$libdir/guile-cv/")
+ "SITECCACHEDIR=\"$libdir/"))
+ (substitute* "cv/init.scm"
+ (("\\(dynamic-link \"libvigra_c\"\\)")
+ (string-append "(dynamic-link \""
+ (assoc-ref inputs "vigra-c")
+ "/lib/libvigra_c\")"))
+ (("\\(dynamic-link \"libguile-cv\"\\)")
+ (format #f "~s"
+ `(dynamic-link
+ (format #f "~alibguile-cv"
+ (if (getenv "GUILE_CV_UNINSTALLED")
+ ""
+ ,(format #f "~a/lib/"
+ (assoc-ref outputs "out"))))))))
+ (setenv "GUILE_CV_UNINSTALLED" "1")
+ ;; Only needed to satisfy the configure script.
+ (setenv "LD_LIBRARY_PATH"
+ (string-append (assoc-ref inputs "vigra-c") "/lib"))
+ #t)))))
+ (inputs
+ `(("vigra" ,vigra)
+ ("vigra-c" ,vigra-c)
+ ("guile" ,guile-2.2)))
+ (native-inputs
+ `(("texlive" ,(texlive-union (list texlive-booktabs
+ texlive-lm
+ texlive-siunitx
+ texlive-standalone
+ texlive-xcolor
+ texlive-fonts-iwona)))
+ ("pkg-config" ,pkg-config)))
+ (propagated-inputs
+ `(("guile-lib" ,guile-lib)))
+ (home-page "https://www.gnu.org/software/guile-cv/")
+ (synopsis "Computer vision library for Guile")
+ (description "Guile-CV is a Computer Vision functional programming library
+for the Guile Scheme language. It is based on Vigra (Vision with Generic
+Algorithms), a C++ image processing and analysis library. Guile-CV contains
+bindings to Vigra C (a C wrapper to most of the Vigra functionality) and is
+enriched with pure Guile Scheme algorithms, all accessible through a nice,
+clean and easy to use high level API.")
+ (license license:gpl3+)))
+
+(define-public guile-ffi-fftw
+ (let ((commit "294ad9e7491dcb40026d2fec9be2af05263be1c0")
+ (revision "2"))
+ (package
+ (name "guile-ffi-fftw")
+ (version (git-version "0" revision commit))
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/lloda/guile-ffi-fftw.git")
+ (commit commit)))
+ (file-name (git-file-name "guile-ffi-fftw" version))
+ (sha256
+ (base32
+ "08j40a5p6a8pgvhffmzb5rfdnrav2mksy3gfjkdqy93jfj1z5afg"))))
+ (build-system guile-build-system)
+ (arguments
+ `(#:source-directory "mod"
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'prepare-build
+ (lambda* (#:key inputs #:allow-other-keys)
+ (substitute* "mod/ffi/fftw.scm"
+ (("\\(getenv \"GUILE_FFI_FFTW_LIBFFTW3_PATH\"\\)")
+ (format #f "\"~a/lib\"" (assoc-ref inputs "fftw"))))
+ #t))
+ (add-after 'build 'check
+ (lambda _
+ (invoke "guile" "-L" "mod"
+ "-s" "test/test-ffi-fftw.scm"))))))
+ (inputs
+ `(("fftw" ,fftw)
+ ("guile" ,guile-2.2)))
+ (home-page "https://github.com/lloda/guile-ffi-fftw/")
+ (synopsis "Access FFTW through Guile's FFI")
+ (description "This is a minimal set of Guile FFI bindings for the FFTW
+library's ‘guru interface’. It provides two functions: @code{fftw-dft! rank
+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.")
+ (license license:lgpl3+))))
+
+(define-public srfi-64-driver
+ (package
+ (name "srfi-64-driver")
+ (version "0.1")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "https://files.ngyro.com/srfi-64-driver/"
+ "srfi-64-driver-" version ".tar.gz"))
+ (sha256
+ (base32
+ "188b6mb7sjjg0a8zldikinglf40ky8mg8rwh5768gjmch6gkk3ph"))))
+ (build-system gnu-build-system)
+ (arguments
+ `(#:tests? #f
+ #:phases
+ (modify-phases %standard-phases
+ (delete 'build))))
+ (native-inputs
+ `(("pkg-config" ,pkg-config)))
+ (inputs
+ `(("guile" ,guile-2.2)))
+ (home-page "https://ngyro.com/software/srfi-64-driver.html")
+ (synopsis "Automake test driver for SRFI 64 test suites")
+ (description "This package provides an Automake test driver that can
+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.0")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "https://files.ngyro.com/guile-semver/"
+ "guile-semver-" version ".tar.gz"))
+ (sha256
+ (base32
+ "06b66rj7nyhr6i3dpkwvfw1xb10w2pngrsw2hxfxkznwsbh9byfz"))))
+ (build-system gnu-build-system)
+ (native-inputs
+ `(("pkg-config" ,pkg-config)
+ ("srfi-64-driver" ,srfi-64-driver)))
+ (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+)))