;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2012-2022 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2014, 2015, 2018 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2015, 2017 Christine Lemmer-Webber <cwebber@dustycloud.org>
;;; Copyright © 2016 Alex Sassmannshausen <alex@pompo.co>
-;;; Copyright © 2016, 2017, 2018, 2019, 2020, 2021 Ricardo Wurmus <rekado@elephly.net>
+;;; Copyright © 2016, 2017, 2018, 2019, 2020, 2021, 2022 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2016 Erik Edrosa <erik.edrosa@gmail.com>
;;; Copyright © 2016, 2019, 2020, 2021 Eraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2016, 2017, 2021 Alex Kost <alezost@gmail.com>
;;; Copyright © 2017 Theodoros Foradis <theodoros@foradis.org>
;;; Copyright © 2017 Nikita <nikita@n0.is>
;;; Copyright © 2017, 2018, 2021 Tobias Geerinckx-Rice <me@tobias.gr>
-;;; Copyright © 2018, 2021 Maxim Cournoyer <maxim.cournoyer@gmail.com>
-;;; Copyright © 2018, 2019, 2020, 2021 Arun Isaac <arunisaac@systemreboot.net>
+;;; Copyright © 2018, 2021, 2022 Maxim Cournoyer <maxim.cournoyer@gmail.com>
+;;; Copyright © 2018, 2019, 2020, 2021, 2022 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 © 2021 Leo Le Bouter <lle-bout@zaclys.net>
;;; Copyright © 2021 Zelphir Kaltstahl <zelphirkaltstahl@posteo.de>
;;; Copyright © 2021 Oleg Pykhalov <go.wigust@gmail.com>
-;;; Copyright © 2021 Artyom V. Poptsov <poptsov.artyom@gmail.com>
+;;; Copyright © 2021, 2022 Artyom V. Poptsov <poptsov.artyom@gmail.com>
+;;; Copyright © 2022 Maxime Devos <maximedevos@telenet.be>
+;;; Copyright © 2022 Zhu Zihao <all_but_last@163.com>
;;;
;;; This file is part of GNU Guix.
;;;
#:use-module (gnu packages nss)
#:use-module (gnu packages package-management)
#:use-module (gnu packages password-utils)
+ #:use-module (gnu packages pcre)
#:use-module (gnu packages perl)
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages python)
#:use-module (gnu packages xorg)
#:use-module (guix packages)
#:use-module (guix download)
+ #:use-module (guix gexp)
#:use-module (guix git-download)
#:use-module (guix hg-download)
#:use-module (guix build-system cmake)
#:use-module (guix utils)
#:use-module ((guix build utils) #:select (alist-replace))
#:use-module (ice-9 match)
- #:use-module ((srfi srfi-1) #:select (alist-delete)))
+ #:use-module ((srfi srfi-1) #:select (alist-delete))
+ #:use-module (srfi srfi-26))
(define-public artanis
(package
(name "artanis")
- (version "0.5")
+ (version "0.5.1")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnu/artanis/artanis-"
version ".tar.gz"))
(sha256
(base32
- "1vk1kp2xhz35xa5n27cxlq9c88wk6qm7fqaac8rb0pb6k9pvsv7v"))
+ "1zfg49s7wp37px7k22qcr06rxfwyn3gv1c3jmma346xw0m8jr63w"))
(modules '((guix build utils)))
(snippet
'(begin
(delete-file-recursively "artanis/third-party/redis")
(substitute* '("artanis/artanis.scm"
"artanis/lpc.scm"
- "artanis/oht.scm")
+ "artanis/oht.scm"
+ "artanis/tpl/parser.scm")
(("(#:use-module \\()artanis third-party (json\\))" _
use-module json)
(string-append use-module json)))
(propagated-inputs
(list guile-json-3 guile-readline guile-redis))
(native-inputs
- `(("bash" ,bash) ;for the `source' builtin
- ("pkgconfig" ,pkg-config)
- ("util-linux" ,util-linux))) ;for the `script' command
+ (list bash-minimal ;for the `source' builtin
+ pkg-config
+ util-linux)) ;for the `script' command
(arguments
`(#:modules (((guix build guile-build-system)
#:select (target-guile-effective-version))
(define-public guile-dsv
(package
(name "guile-dsv")
- (version "0.5.0")
+ (version "0.5.1")
(source (origin
(method git-fetch)
(uri (git-reference
(file-name (string-append name "-" version "-checkout"))
(sha256
(base32
- "0s9zan08ala7432pn44z3vmb3sc19rf18zfr9mskydnam5xn6qlw"))))
+ "10wssilin4qphdmmqmms20bp3cy007kh22l1g45wfka0minmhkgs"))))
(build-system gnu-build-system)
(native-inputs
(list autoconf automake pkg-config texinfo))
(inputs (list guile-2.2))
(propagated-inputs `(("guile-lib" ,guile2.2-lib)))))
+(define-public guile-fibers-1.1
+ ;; Pick one commit above 1.1.0, which fixes a bug that's critical for the
+ ;; Shepherd: <https://github.com/wingo/fibers/pull/57>.
+ (let ((commit "c25dcb9cc4b5b977474ffe555b40ce2f1d0d1edc")
+ (revision "0"))
+ (package
+ (name "guile-fibers")
+ (version (git-version "1.1.0" revision commit))
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/wingo/fibers")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "1jwr0y5x8mv8fm4df2vc3ll38fwwbkrm2iwfsfxa8l783a1a6143"))
+ (patches
+ (search-patches "guile-fibers-wait-for-io-readiness.patch"))))
+ (build-system gnu-build-system)
+ (arguments
+ '(#:phases (modify-phases %standard-phases
+ (add-after 'unpack 'support-cross-compilation
+ (lambda* (#:key target #:allow-other-keys)
+ ;; Support cross-compilation. These issues are fixed in
+ ;; Fibers commit c4756b9c336374546a41ac90a4431fcc8f7e98ee
+ ;; and this phase can be removed for 1.1.1.
+ (when target
+ (substitute* "build-aux/guile.am"
+ (("\\$\\(AM_V_GEN\\)" all)
+ (string-append all " FIBERS_CROSS_COMPILING=yes "))
+ (("compile")
+ (string-append "compile --target=" target
+ " -L $(abs_top_srcdir)")))
+ (substitute* "fibers/epoll.scm"
+ (("\\(dynamic-call")
+ "(unless (getenv \"FIBERS_CROSS_COMPILING\") (dynamic-call")
+ (("\\(dynamic-link.*" all)
+ (string-append all ")\n"))
+ (("#,(%sizeof|%offsetof)" _ prefix)
+ prefix)))))
+ (add-after 'install 'mode-guile-objects
+ (lambda* (#:key outputs #:allow-other-keys)
+ ;; .go files are installed to "lib/guile/X.Y/cache".
+ ;; This phase moves them to "…/site-ccache".
+ (let* ((out (assoc-ref outputs "out"))
+ (lib (string-append out "/lib/guile"))
+ (old (car (find-files lib "^ccache$"
+ #:directories? #t)))
+ (new (string-append (dirname old)
+ "/site-ccache")))
+ (rename-file old new)
+ #t))))))
+ (native-inputs
+ (list texinfo pkg-config autoconf automake libtool
+ guile-3.0 ;for 'guild compile
+ ;; Gettext brings 'AC_LIB_LINKFLAGS_FROM_LIBS'
+ gettext-minimal))
+ (inputs
+ (list guile-3.0)) ;for libguile-3.0.so
+ (supported-systems
+ ;; This version requires 'epoll' and is thus limited to Linux-based
+ ;; systems, but this may change soon:
+ ;; <https://github.com/wingo/fibers/pull/53>.
+ (filter (cut string-suffix? "-linux" <>) %supported-systems))
+ (synopsis "Lightweight concurrency facility for Guile")
+ (description
+ "Fibers is a Guile library that implements a a lightweight concurrency
+facility, inspired by systems like Concurrent ML, Go, and Erlang. A fiber is
+like a \"goroutine\" from the Go language: a lightweight thread-like
+abstraction. Systems built with Fibers can scale up to millions of concurrent
+fibers, tens of thousands of concurrent socket connections, and many parallel
+cores. The Fibers library also provides Concurrent ML-like channels for
+communication between fibers.
+
+Note that Fibers makes use of some Guile 2.1/2.2-specific features and
+is not available for Guile 2.0.")
+ (home-page "https://github.com/wingo/fibers")
+ (properties '((upstream-name . "fibers")))
+ (license license:lgpl3+))))
+
(define-public guile-fibers
(package
- (name "guile-fibers")
+ (inherit guile-fibers-1.1)
(version "1.0.0")
(source (origin
(method url-fetch)
(patches
;; fixes a resource leak that causes crashes in the tests
(search-patches "guile-fibers-destroy-peer-schedulers.patch"))))
- (build-system gnu-build-system)
(arguments
'(;; The code uses 'scm_t_uint64' et al., which are deprecated in 3.0.
#:configure-flags '("CFLAGS=-Wno-error=deprecated-declarations")
(new (string-append (dirname old)
"/site-ccache")))
(rename-file old new)
- #t))))))
- (native-inputs
- (list texinfo pkg-config))
- (inputs
- (list guile-3.0))
- (synopsis "Lightweight concurrency facility for Guile")
- (description
- "Fibers is a Guile library that implements a a lightweight concurrency
-facility, inspired by systems like Concurrent ML, Go, and Erlang. A fiber is
-like a \"goroutine\" from the Go language: a lightweight thread-like
-abstraction. Systems built with Fibers can scale up to millions of concurrent
-fibers, tens of thousands of concurrent socket connections, and many parallel
-cores. The Fibers library also provides Concurrent ML-like channels for
-communication between fibers.
-
-Note that Fibers makes use of some Guile 2.1/2.2-specific features and
-is not available for Guile 2.0.")
- (home-page "https://github.com/wingo/fibers")
- (license license:lgpl3+)))
+ #t))))))))
-(define-public guile2.0-fibers
+(define-public guile2.2-fibers
(package
- (inherit guile-fibers)
+ (inherit guile-fibers-1.1)
(name "guile2.2-fibers")
- (inputs (list guile-2.2))))
+ (inputs
+ (modify-inputs (package-inputs guile-fibers-1.1)
+ (replace "guile" guile-2.2)))
+ (native-inputs
+ (modify-inputs (package-native-inputs guile-fibers-1.1)
+ (replace "guile" guile-2.2)))))
(define-public guile-filesystem
(package
(define-public guile-sjson
(package
(name "guile-sjson")
- (version "0.2.1")
+ (version "0.2.2")
(source (origin
(method url-fetch)
(uri (string-append "https://dustycloud.org/misc/sjson-" version
".tar.gz"))
(sha256
(base32
- "1mzmapln79vv10qxaggz9qwcdbag3jnrj19xx8bgkmxss8h03sv3"))
+ "08sr16fg5cqvik3wblav6k4b6djc5ydhgfvxa49bc5bh1irqvrcn"))
(modules '((guix build utils)))
(snippet
'(begin
(inputs (list guile-2.2))))
(define-public guile-squee
- (let ((commit "c1497a216e881cfde39d6aa7c73d0bf6b497c89b")
- (revision "2"))
+ (let ((commit "a151fd006fa819945ca1d4749b173854269b9f70")
+ (revision "3"))
(package
(name "guile-squee")
(version (string-append "0-" revision "." (string-take commit 7)))
(file-name (git-file-name name version))
(sha256
(base32
- "1alskrplnyl1n5wb39drn72cwplp47a8cpdd1n9cdnw3jhk5p12p"))))
+ "1jps14z8653ah2kr367iayzyi3ql2s55l77xrafz7gk3mzcvgrrg"))))
(build-system guile-build-system)
(arguments
'(#:phases
(("dynamic-link \"libpq\"")
(string-append
"dynamic-link \""
- (assoc-ref inputs "postgresql") "/lib/libpq.so"
- "\"")))
- #t)))))
+ (search-input-file inputs "/lib/libpq.so")
+ "\""))))))))
(inputs
(list postgresql))
(native-inputs
'(#:make-flags
'("GUILE_AUTO_COMPILE=0"))) ;to prevent guild warnings
(inputs
- (list guile-3.0 parted))
+ ;; XXX: Use Parted 3.4 to work around issues when using 3.5 in the Guix
+ ;; System installer: <https://issues.guix.gnu.org/55549>.
+ (list guile-3.0 parted-3.4))
(propagated-inputs
(list guile-bytestructures))
(native-inputs
(define-public guile-ics
(package
(name "guile-ics")
- (version "0.2.0")
+ (version "0.2.1")
(source (origin
(method git-fetch)
(uri (git-reference
(file-name (string-append name "-" version "-checkout"))
(sha256
(base32
- "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))))
+ "11wv6qk8xd4sd8s97mnw383p098ffivk0na4jii76r5wbmg1wd7q"))
+ (modules '((guix build utils)))))
(build-system gnu-build-system)
- ;; XXX: Tests expect 'test-runner-current' to not return #f after
- ;; 'test-end', which is no longer the case in Guile 3.0.7.
- (arguments '(#:tests? #f))
(native-inputs
- `(("autoconf" ,autoconf)
- ("automake" ,automake)
- ("texinfo" ,texinfo)
- ;; Gettext brings 'AC_LIB_LINKFLAGS_FROM_LIBS'.
- ("gettext" ,gettext-minimal)
- ("pkg-config" ,pkg-config)))
+ (list autoconf
+ automake
+ texinfo
+ ;; Gettext brings 'AC_LIB_LINKFLAGS_FROM_LIBS'.
+ gettext-minimal
+ help2man
+ pkg-config))
(inputs (list guile-3.0 which))
(propagated-inputs (list guile-lib))
(home-page "https://github.com/artyom-poptsov/guile-ics")
(define-public guile-wisp
(package
(name "guile-wisp")
- (version "1.0.6")
+ (version "1.0.7")
(source (origin
(method hg-fetch)
(uri (hg-reference
(file-name (git-file-name name version))
(sha256
(base32
- "0df0vch2p6qymz3f96clrkl2gphjk6x7fbya236yzxc07hkz2j3g"))))
+ "0fxngiy8dmryh3gx4g1q7nnamc4dpszjh130g6d0pmi12ycxd2y9"))))
(build-system gnu-build-system)
(arguments
`(#:modules ((guix build gnu-build-system)
(define-public guile-udev
(package
(name "guile-udev")
- (version "0.2.0")
+ (version "0.2.3")
(source (origin
(method git-fetch)
(uri (git-reference
(file-name (git-file-name name version))
(sha256
(base32
- "037md1sg7bgsa4478hz1dbsivsxzdnl5acadlrsh4ds2yxbsb5jp"))))
+ "0xvh4wscxmiqm8lnmfyh5cjzn89kv2wslkfvqvcjhinzpnpbg91x"))))
(build-system gnu-build-system)
(native-inputs
(list autoconf
(home-page "https://dthompson.us/projects/sly.html")
(license license:gpl3+)))
-(define-public g-golf
- (let ((commit "ef830107b9765bd6a2da848d0cbe45e11374c0b5")
- (revision "839"))
+(define-public guile-g-golf
+ (let ((commit "1824633d37da3794f349d6829e9dac2cf89adaa8")
+ (revision "1010"))
(package
- (name "g-golf")
+ (name "guile-g-golf")
(version (git-version "0.1.0" revision commit))
(source
(origin
(commit commit)))
(file-name (git-file-name name version))
(sha256
- (base32 "0r472hvmf447kqvkahp1wy4irb5gy8y793hm8r9rc511smdx66cw"))))
+ (base32 "0ncpqv6pbsx9fjmdzvzbjljnhqgw9pynqy9vr9aq35nb7rzrhfdf"))))
(build-system gnu-build-system)
- (native-inputs
- `(("autoconf" ,autoconf)
- ("automake" ,automake)
- ("texinfo" ,texinfo)
- ("gettext" ,gettext-minimal)
- ("libtool" ,libtool)
- ("pkg-config" ,pkg-config)
- ("xorg-server" ,xorg-server)))
+ (arguments
+ (list
+ #:configure-flags
+ #~(list "--with-guile-site=no")
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'unpack 'fix-guile-site-directory
+ (lambda _
+ (substitute* "configure.ac"
+ (("SITEDIR=.*$")
+ "SITEDIR=\"$datadir/guile/site/$GUILE_EFFECTIVE_VERSION\";\n")
+ (("SITECCACHEDIR=\"\\$libdir/g-golf/")
+ "SITECCACHEDIR=\"$libdir/"))))
+ (add-before 'configure 'tests-work-arounds
+ (lambda* (#:key inputs #:allow-other-keys)
+ ;; In build environment, There is no /dev/tty
+ (substitute* "test-suite/tests/gobject.scm"
+ (("/dev/tty") "/dev/null"))))
+ (add-before 'configure 'substitute-libs
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ (define (get lib)
+ (search-input-file inputs (string-append "lib/" lib ".so")))
+
+ (let* ((libgi (get "libgirepository-1.0"))
+ (libglib (get "libglib-2.0"))
+ (libgobject (get "libgobject-2.0"))
+ (libg-golf (string-append #$output "/lib/libg-golf")))
+ (substitute* "g-golf/init.scm"
+ (("libgirepository-1.0") libgi)
+ (("libglib-2.0") libglib)
+ (("libgobject-2.0") libgobject)
+ (("\\(dynamic-link \"libg-golf\"\\)")
+ (format #f "~s"
+ `(catch #t
+ (lambda ()
+ (dynamic-link "libg-golf"))
+ (lambda _
+ (dynamic-link ,libg-golf))))))
+ (setenv "GUILE_AUTO_COMPILE" "0")
+ #t)))
+ (add-before 'check 'start-xorg-server
+ (lambda* (#:key inputs #:allow-other-keys)
+ ;; The test suite requires a running X server.
+ (system "Xvfb :1 &")
+ (setenv "DISPLAY" ":1")
+ #t)))))
(inputs
- `(("guile" ,guile-2.2)
- ("guile-lib" ,guile2.2-lib)
- ("clutter" ,clutter)
- ("gtk" ,gtk+)
- ("glib" ,glib)))
+ (list guile-3.0 guile-lib glib))
+ (native-inputs
+ (list autoconf
+ automake
+ texinfo
+ gettext-minimal
+ libtool
+ pkg-config
+ ;; required for tests
+ gtk+
+ clutter
+ xorg-server-for-tests))
(propagated-inputs
(list gobject-introspection))
- (arguments
- `(#:phases
- (modify-phases %standard-phases
- (add-before 'configure 'tests-work-arounds
- (lambda* (#:key inputs #:allow-other-keys)
- ;; In build environment, There is no /dev/tty
- (substitute*
- "test-suite/tests/gobject.scm"
- (("/dev/tty") "/dev/null"))))
- (add-before 'configure 'substitute-libs
- (lambda* (#:key inputs outputs #:allow-other-keys)
- (let* ((get (lambda (key lib)
- (string-append (assoc-ref inputs key) "/lib/" lib)))
- (libgi (get "gobject-introspection" "libgirepository-1.0"))
- (libglib (get "glib" "libglib-2.0"))
- (libgobject (get "glib" "libgobject-2.0"))
- (libgdk (get "gtk" "libgdk-3")))
- (substitute* "configure"
- (("SITEDIR=\"\\$datadir/g-golf\"")
- "SITEDIR=\"$datadir/guile/site/$GUILE_EFFECTIVE_VERSION\"")
- (("SITECCACHEDIR=\"\\$libdir/g-golf/")
- "SITECCACHEDIR=\"$libdir/"))
- (substitute* "g-golf/init.scm"
- (("libgirepository-1.0") libgi)
- (("libglib-2.0") libglib)
- (("libgdk-3") libgdk)
- (("libgobject-2.0") libgobject)
- (("\\(dynamic-link \"libg-golf\"\\)")
- (format #f "~s"
- `(dynamic-link
- (format #f "~alibg-golf"
- (if (getenv "GUILE_GGOLF_UNINSTALLED")
- ""
- ,(format #f "~a/lib/"
- (assoc-ref outputs "out"))))))))
- (setenv "GUILE_AUTO_COMPILE" "0")
- (setenv "GUILE_GGOLF_UNINSTALLED" "1")
- #t)))
- (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)))))
(home-page "https://www.gnu.org/software/g-golf/")
(synopsis "Guile bindings for GObject Introspection")
(description
object-oriented programming system, GOOPS.")
(license license:lgpl3+))))
+(define-public g-golf
+ (deprecated-package "g-golf" guile-g-golf))
+
+(define-public guile2.2-g-golf
+ (package
+ (inherit guile-g-golf)
+ (name "guile2.2-g-golf")
+ (inputs
+ (modify-inputs (package-inputs guile-g-golf)
+ (replace "guile" guile-2.2)
+ (replace "guile-lib" guile2.2-lib)))))
+
(define-public g-wrap
(package
(name "g-wrap")
(define-public haunt
(package
(name "haunt")
- (version "0.2.5")
+ (version "0.2.6")
(source (origin
(method url-fetch)
(uri (string-append "https://files.dthompson.us/haunt/haunt-"
version ".tar.gz"))
(sha256
(base32
- "1gy45l6m91b3wpdbpd9bpisp00zl8610zs0a2nwmbjlpd2cbf90k"))))
+ "1nwhwngx0gl2892vrvrzrxy5w6a5l08j1w0522kdh9a3v11qpwmw"))))
(build-system gnu-build-system)
(arguments
`(#:modules ((ice-9 match) (ice-9 ftw)
(define-public guile-redis
(package
(name "guile-redis")
- (version "2.1.1")
+ (version "2.2.0")
(home-page "https://github.com/aconchillo/guile-redis")
(source (origin
(method git-fetch)
(file-name (git-file-name name version))
(sha256
(base32
- "0pvk4yadgx64wk81cpisdc7zqhk6ww58xi5fs5fs6s28wb6l5bfj"))))
+ "0cb31vj88f3hj93v1lzxcqjyz7ym2gmpk31gv5i2dqv721frnlyj"))))
(build-system gnu-build-system)
(arguments
'(#:make-flags '("GUILE_AUTO_COMPILE=0")))
API.")
(license license:expat))))
+(define-public guile-srfi-189
+ (let ((commit "659e3cd0fc2bfca9085424eda8cad804ead2a9ea")
+ (revision "1"))
+ (package
+ (name "guile-srfi-189")
+ ;; 'final' is the name of the latest git tag.
+ (version (git-version "final" revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/scheme-requests-for-implementation/srfi-189")
+ (commit commit)))
+ (sha256
+ (base32
+ "0iqv4sjwbp4k87r9l9abzbs5yjcljm69m91kb1ypb03b0rx7napy"))
+ (modules '((guix build utils)))
+ (snippet
+ '(begin
+ (delete-file "test-syntax.scm")
+ (delete-file "test.scm")))
+ (file-name (git-file-name name version))))
+ (build-system guile-build-system)
+ (arguments
+ '(#:not-compiled-file-regexp "srfi/189\\.scm$")) ; it's INCLUDE'd
+ (native-inputs
+ (list guile-3.0))
+ (propagated-inputs
+ (list guile-srfi-145))
+ (home-page "https://srfi.schemers.org/srfi-189/")
+ (synopsis "Scheme SRFI implementation of Maybe and Either")
+ (description
+ "This SRFI defines two disjoint immutable container types known as
+Maybe and Either, both of which can contain objects collectively known
+as their payload. A Maybe object is either a Just object or the unique
+object Nothing (which has no payload); an Either object is either a Right
+object or a Left object. Maybe represents the concept of optional values;
+Either represents the concept of values which are either correct (Right)
+or errors (Left).")
+ (license license:expat))))
+
(define-public emacsy
(package
(name "emacsy")
guile-lib
guile-readline
freeglut
- webkitgtk))
+ webkitgtk-with-libsoup2))
(propagated-inputs
`(("glib-networking" ,glib-networking)
("gssettings-desktop-schemas" ,gsettings-desktop-schemas)))
(modify-phases %standard-phases
(add-before 'configure 'setenv
(lambda _
- (setenv "GUILE_AUTO_COMPILE" "0")
- #t))
+ (setenv "GUILE_AUTO_COMPILE" "0")))
(add-after 'install 'wrap-binaries
(lambda* (#:key inputs outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(map (cut wrap-program <>
`("GUILE_LOAD_PATH" ":" prefix ,scm-path)
`("GUILE_LOAD_COMPILED_PATH" ":" prefix ,go-path))
- progs)
- #t))))))
+ progs)))))))
(home-page "https://savannah.nongnu.org/projects/emacsy")
(synopsis "Embeddable GNU Emacs-like library using Guile")
(description
("guile-readline" ,guile2.2-readline)
("guile-gcrypt" ,guile2.2-gcrypt)
("gnutls" ,gnutls)
- ("g-golf" ,g-golf)
+ ("g-golf" ,guile2.2-g-golf)
("shroud" ,shroud)
("emacsy" ,emacsy-minimal)
;; Gtk
(srfi srfi-26))
#:phases
(modify-phases %standard-phases
+ (add-after 'unpack 'fix-webkitgtk
+ (lambda _
+ ;; Adapt to the version we have in Guix.
+ (substitute* "configure.ac"
+ (("webkit2gtk-4\\.0") "webkit2gtk-4.1")
+ (("webkit2gtk-web-extension-4\\.0")
+ "webkit2gtk-web-extension-4.1"))
+
+ (substitute* "typelib/Makefile.am"
+ (("WebKit2-4\\.0") "WebKit2-4.1"))))
(add-before 'check 'start-xorg-server
(lambda* (#:key inputs #:allow-other-keys)
;; The test suite requires a running X server.
(file-name (git-file-name name version))
(sha256
(base32
- "0rl809qimhgz6b0rixakb42r2l4g53jr09a2g0s1hxgab0blz0kb"))))
+ "0rl809qimhgz6b0rixakb42r2l4g53jr09a2g0s1hxgab0blz0kb"))
+ (patches (search-patches "guile-ac-d-bus-fix-tests.patch"))))
(build-system guile-build-system)
(arguments
- `(#:implicit-inputs? #f ;needs nothing but Guile
- #:compile-flags '("--r6rs" "-Wunbound-variable" "-Warity-mismatch")
- #:phases (modify-phases %standard-phases
- (add-before 'build 'adjust-for-guile
- (lambda _
- ;; Adjust source file names for Guile.
- (define (guile-sls->sls file)
- (string-append (string-drop-right
- file (string-length ".guile.sls"))
- ".sls"))
-
- ;; Remove files targeting other implementations:
- ;; *.mosh.sls, etc.
- (for-each delete-file
- (find-files
- "compat"
- (lambda (file stat)
- (not (string-contains file ".guile.")))))
-
- ;; Rename *.guile.sls to *.sls so the ".guile" bit does
- ;; not appear in .go file names.
- (for-each (lambda (file)
- (rename-file file (guile-sls->sls file)))
- (find-files "compat" "\\.guile\\.sls"))
-
- ;; Move directories under d-bus/ to match module names.
- (mkdir "d-bus")
- (for-each (lambda (directory)
- (rename-file directory
- (string-append "d-bus/"
- directory)))
- '("compat" "protocol"))
-
- #t)))))
+ (list
+ #:implicit-inputs? #f ;needs nothing but Guile
+ #:compile-flags #~(list "--r6rs" "-Wunbound-variable" "-Warity-mismatch")
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-before 'build 'adjust-for-guile
+ (lambda _
+ ;; Adjust source file names for Guile.
+ (define (guile-sls->sls file)
+ (string-append (string-drop-right
+ file (string-length ".guile.sls"))
+ ".sls"))
+
+ ;; Remove files targeting other implementations: *.mosh.sls,
+ ;; etc.
+ (for-each delete-file
+ (find-files
+ "compat"
+ (lambda (file stat)
+ (not (string-contains file ".guile.")))))
+
+ ;; Rename *.guile.sls to *.sls so the ".guile" bit does not
+ ;; appear in .go file names.
+ (for-each (lambda (file)
+ (rename-file file (guile-sls->sls file)))
+ (find-files "compat" "\\.guile\\.sls"))
+
+ ;; Move directories under d-bus/ to match module names.
+ (mkdir "d-bus")
+ (for-each (lambda (directory)
+ (rename-file directory
+ (string-append "d-bus/"
+ directory)))
+ '("compat" "protocol"))))
+ (add-after 'build 'build-doc
+ (lambda _
+ (with-directory-excursion "docs"
+ (invoke "makeinfo" "ac-d-bus"))))
+ (add-after 'build-doc 'check
+ (lambda* (#:key (tests? #t) #:allow-other-keys)
+ (when tests?
+ ;; There is no locale for the ö character, which crashes
+ ;; substitute*; reset the conversion strategy to workaround it.
+ (with-fluids ((%default-port-conversion-strategy 'substitute))
+ (substitute* (find-files "tests")
+ (("#!/usr/bin/env scheme-script")
+ (string-append "#!" (which "guile")))))
+ (invoke "./run-tests.sh"))))
+ (add-after 'install 'install-doc
+ (lambda _
+ (install-file "docs/ac-d-bus.info"
+ (string-append #$output "/share/info")))))))
(native-inputs
- (list guile-3.0))
+ (list bash-minimal guile-3.0 texinfo))
(propagated-inputs
(list guile-packrat))
(synopsis "D-Bus protocol implementation in R6RS Scheme")
(define-public guile-drmaa
(package
(name "guile-drmaa")
- (version "0.1.0")
+ (version "0.1.1")
(source
(origin
(method git-fetch)
(file-name (git-file-name name version))
(sha256
(base32
- "1m2x62n3x5hi5vnsvv2zgqhgpzrfq7r5095fzzjd1aaybi9i9igg"))))
+ "1pail39f3iwllcdma4pk4sxsaypplgb5zjyvjwqf5hdv8s3y211x"))))
(build-system gnu-build-system)
(native-inputs
(list autoconf automake pkg-config texinfo sed))
of numbers. Scheme is great at expressing your coding thoughts. This project
is an attempt to combine both into something useful.")
(license license:asl2.0))))
+
+(define-public guile-kolam
+ (package
+ (name "guile-kolam")
+ (version "0.1.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "https://kolam.systemreboot.net/releases/kolam-"
+ version ".tar.lz"))
+ (sha256
+ (base32
+ "083r3n3wvzysa9jhlwjj1xppdm6ja56rkizr6hvj4q1806v8n6mn"))))
+ (build-system gnu-build-system)
+ (arguments
+ '(#:make-flags '("GUILE_AUTO_COMPILE=0"))) ; to prevent guild warnings
+ (native-inputs
+ (list guile-3.0 lzip))
+ (propagated-inputs
+ (list guile-json-4))
+ (home-page "https://kolam.systemreboot.net")
+ (synopsis "GraphQL implementation for Scheme")
+ (description "@code{guile-kolam} is a GraphQL implementation for Scheme. kolam
+features a parser to parse and serialize GraphQL documents, a type system to
+create GraphQL schemas, an execution engine to execute GraphQL queries, and a
+HTTP handler to implement a HTTP GraphQL endpoint.")
+ (license license:agpl3+)))
+
+(define-public lokke
+ (let ((commit "92d36370dc6d218ff3bf315e56ebef93808c1b79")
+ (revision "1"))
+ (package
+ (name "lokke")
+ (version (git-version "0.0.0" revision commit))
+ (home-page "https://github.com/lokke-org/lokke")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference (url home-page) (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "1c913md4dcfb0x4n26wbx9wdw453wxg3c5rn49k3f6j8zjqv63yv"))))
+ (build-system gnu-build-system)
+ (arguments
+ '(#:phases
+ (modify-phases %standard-phases
+ (add-before 'bootstrap 'pre-bootstrap
+ (lambda _
+ (for-each patch-shebang
+ '("setup" "gen-makefile"
+ "dev/gen-module-paths"
+ "dev/refresh"))
+ (invoke "./setup")))
+ (add-before 'build 'set-home
+ (lambda _
+ (setenv "HOME" (getcwd)))))))
+ (native-inputs
+ (list autoconf
+ automake
+ libtool
+ gnu-gettext
+ pkg-config
+
+ ;; Use Guile >= 3.0.8 to work around
+ ;; <https://bugs.gnu.org/49305>.
+ guile-3.0-latest))
+ (inputs
+ (list pcre2))
+ (synopsis "Clojure implementation in Guile")
+ (description
+ "Lokke intends to provide a full dialect of Clojure for Guile. It also
+consists of a set of Guile modules providing some of Clojure's functionality
+in two different guises.")
+ ;; Dual license: LGPLv2.1+ or EPLv1.0+ at the user's option.
+ (license (list license:lgpl2.1+ license:epl1.0)))))