diff options
Diffstat (limited to 'gnu/packages/guile-xyz.scm')
-rw-r--r-- | gnu/packages/guile-xyz.scm | 371 |
1 files changed, 264 insertions, 107 deletions
diff --git a/gnu/packages/guile-xyz.scm b/gnu/packages/guile-xyz.scm index 8075e8c21a..45cc6b2326 100644 --- a/gnu/packages/guile-xyz.scm +++ b/gnu/packages/guile-xyz.scm @@ -153,7 +153,7 @@ ;; TODO: Add guile-dbi and guile-dbd optional dependencies. (propagated-inputs `(("guile-json" ,guile-json-1) - ("guile-readline" ,guile-readline) + ("guile-readline" ,guile2.2-readline) ("guile-redis" ,guile-redis))) (native-inputs `(("bash" ,bash) ;for the `source' builtin @@ -526,7 +526,9 @@ Unix-style DSV format and RFC 4180 format.") #t)))) (build-system gnu-build-system) (arguments - '(#:phases (modify-phases %standard-phases + '(;; The code uses 'scm_t_uint64' et al., which are deprecated in 3.0. + #:configure-flags '("CFLAGS=-Wno-error=deprecated-declarations") + #:phases (modify-phases %standard-phases (add-after 'install 'mode-guile-objects (lambda* (#:key outputs #:allow-other-keys) ;; .go files are installed to "lib/guile/X.Y/cache". @@ -543,7 +545,7 @@ Unix-style DSV format and RFC 4180 format.") `(("texinfo" ,texinfo) ("pkg-config" ,pkg-config))) (inputs - `(("guile" ,guile-2.2))) + `(("guile" ,guile-3.0))) (synopsis "Lightweight concurrency facility for Guile") (description "Fibers is a Guile library that implements a a lightweight concurrency @@ -559,15 +561,14 @@ is not available for Guile 2.0.") (home-page "https://github.com/wingo/fibers") (license license:lgpl3+))) -(define-public guile3.0-fibers +(define-public guile2.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))))) + (name "guile2.2-fibers") + (inputs `(("guile" ,guile-2.2))))) + +(define-public guile3.0-fibers + (deprecated-package "guile3.0-fibers" guile-fibers)) (define-public guile-syntax-highlight (package @@ -594,7 +595,7 @@ is not available for Guile 2.0.") (native-inputs `(("pkg-config" ,pkg-config))) (inputs - `(("guile" ,guile-2.2))) + `(("guile" ,guile-3.0))) (synopsis "General-purpose syntax highlighter for GNU Guile") (description "Guile-syntax-highlight is a general-purpose syntax highlighting library for GNU Guile. It can parse code written in various @@ -603,11 +604,14 @@ HTML (via SXML) or any other format for rendering.") (home-page "https://dthompson.us/projects/guile-syntax-highlight.html") (license license:lgpl3+))) -(define-public guile3.0-syntax-highlight +(define-public guile2.2-syntax-highlight (package (inherit guile-syntax-highlight) - (name "guile3.0-syntax-highlight") - (inputs `(("guile" ,guile-3.0))))) + (name "guile2.2-syntax-highlight") + (inputs `(("guile" ,guile-2.2))))) + +(define-public guile3.0-syntax-highlight + (deprecated-package "guile3.0-syntax-highlight" guile-syntax-highlight)) (define-public guile-sjson (package @@ -695,18 +699,21 @@ using Guile's foreign function interface.") (base32 "10mv8c63159r3qvwwdvsgnsvdg7nc2ghak85zapwqpv4ywrqp9zc")))) (build-system guile-build-system) (native-inputs - `(("guile" ,guile-2.2))) + `(("guile" ,guile-3.0))) (home-page "https://gitlab.com/NalaGinrut/guile-colorized") (synopsis "Colorized REPL for Guile") (description "Guile-colorized provides you with a colorized REPL for GNU Guile.") (license license:gpl3+))) -(define-public guile3.0-colorized +(define-public guile2.2-colorized (package (inherit guile-colorized) - (name "guile3.0-colorized") - (native-inputs `(("guile" ,guile-next))))) + (name "guile2.2-colorized") + (native-inputs `(("guile" ,guile-2.2))))) + +(define-public guile3.0-colorized + (deprecated-package "guile3.0-colorized" guile-colorized)) (define-public guile-pfds (package @@ -726,6 +733,14 @@ using Guile's foreign function interface.") (arguments '(#:source-directory "src" #:phases (modify-phases %standard-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)) (add-after 'unpack 'move-files-around (lambda _ ;; Move files under a pfds/ directory to reflect the @@ -759,7 +774,7 @@ using Guile's foreign function interface.") (find-files "." "\\.sls$")) #t))))) (native-inputs - `(("guile" ,guile-2.2))) + `(("guile" ,guile-3.0))) (synopsis "Purely functional data structures for Guile") (description "This package provides purely functional data structures written in R6RS @@ -780,23 +795,19 @@ Vicare Scheme and IronScheme. Right now it contains: @end itemize\n") (license license:bsd-3))) -(define-public guile3.0-pfds +(define-public guile2.2-pfds (package (inherit guile-pfds) - (name "guile3.0-pfds") - (native-inputs `(("guile" ,guile-3.0))) + (name "guile2.2-pfds") + (native-inputs `(("guile" ,guile-2.2))) (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)))))))) + (delete 'work-around-guile-bug))))))) + +(define-public guile3.0-pfds + (deprecated-package "guile3.0-pfds" guile-pfds)) (define-public guile-aa-tree (package @@ -850,7 +861,7 @@ convenient nested tree operations.") (assoc-ref inputs "zeromq")))) #t))))) (native-inputs - `(("guile" ,guile-2.2))) + `(("guile" ,guile-3.0))) (inputs `(("zeromq" ,zeromq))) (home-page "https://github.com/jerry40/guile-simple-zmq") @@ -860,11 +871,14 @@ convenient nested tree operations.") messaging library.") (license license:gpl3+)))) -(define-public guile3.0-simple-zmq +(define-public guile2.2-simple-zmq (package (inherit guile-simple-zmq) - (name "guile3.0-simple-zmq") - (native-inputs `(("guile" ,guile-next))))) + (name "guile2.2-simple-zmq") + (native-inputs `(("guile" ,guile-2.2))))) + +(define-public guile3.0-simple-zmq + (deprecated-package "guile3.0-simple-zmq" guile-simple-zmq)) (define-public jupyter-guile-kernel (let ((commit "a7db9245a886e104138474df46c3e88b95cff629") @@ -1058,7 +1072,7 @@ format.") '(#:make-flags '("GUILE_AUTO_COMPILE=0"))) ;to prevent guild warnings (inputs - `(("guile" ,guile-2.2) + `(("guile" ,guile-3.0) ("newt" ,newt))) (native-inputs `(("autoconf" ,autoconf) @@ -1072,13 +1086,16 @@ Scheme by using Guileās foreign function interface.") (home-page "https://gitlab.com/mothacehe/guile-newt") (license license:gpl3+))) -(define-public guile3.0-newt +(define-public guile2.2-newt (package (inherit guile-newt) - (name "guile3.0-newt") + (name "guile2.2-newt") (inputs `(("guile" ,guile-next) ,@(alist-delete "guile" (package-inputs guile-newt)))))) +(define-public guile3.0-newt + (deprecated-package "guile3.0-newt" guile-newt)) + (define-public guile-mastodon (package (name "guile-mastodon") @@ -1127,7 +1144,7 @@ microblogging service.") '(#:make-flags '("GUILE_AUTO_COMPILE=0"))) ;to prevent guild warnings (inputs - `(("guile" ,guile-2.2) + `(("guile" ,guile-3.0) ("parted" ,parted))) (propagated-inputs `(("guile-bytestructures" ,guile-bytestructures))) @@ -1143,14 +1160,17 @@ written in pure Scheme by using Guile's foreign function interface.") (home-page "https://gitlab.com/mothacehe/guile-parted") (license license:gpl3+))) -(define-public guile3.0-parted +(define-public guile2.2-parted (package (inherit guile-parted) - (name "guile3.0-parted") + (name "guile2.2-parted") (inputs `(("guile" ,guile-next) ,@(alist-delete "guile" (package-inputs guile-parted)))) (propagated-inputs - `(("guile-bytestructures" ,guile3.0-bytestructures))))) + `(("guile-bytestructures" ,guile2.2-bytestructures))))) + +(define-public guile3.0-parted + (deprecated-package "guile3.0-parted" guile-parted)) (define-public guile-xosd (package @@ -1337,7 +1357,7 @@ PostgreSQL.") ("automake" ,automake) ("pkg-config" ,pkg-config) ("texinfo" ,texinfo))) - (inputs `(("guile" ,guile-2.2))) + (inputs `(("guile" ,guile-3.0))) (synopsis "Guile application configuration parsing library.") (description @@ -1352,13 +1372,16 @@ above command-line parameters.") "https://gitlab.com/a-sassmannshausen/guile-config") (license license:gpl3+))) -(define-public guile3.0-config +(define-public guile2.2-config (package (inherit guile-config) - (name "guile3.0-config") - (inputs `(("guile" ,guile-next) + (name "guile2.2-config") + (inputs `(("guile" ,guile-2.2) ,@(alist-delete "guile" (package-inputs guile-config)))))) +(define-public guile3.0-config + (deprecated-package "guile3.0-config" guile-config)) + (define-public guile-hall (package (name "guile-hall") @@ -1425,7 +1448,7 @@ above command-line parameters.") ("automake" ,automake) ("pkg-config" ,pkg-config) ("texinfo" ,texinfo))) - (inputs `(("guile" ,guile-2.2))) + (inputs `(("guile" ,guile-3.0))) (propagated-inputs `(("guile-config" ,guile-config))) (synopsis "Guile project tooling") @@ -1437,17 +1460,20 @@ provides tight coupling to Guix.") (home-page "https://gitlab.com/a-sassmannshausen/guile-hall") (license license:gpl3+))) -(define-public guile3.0-hall +(define-public guile2.2-hall (package (inherit guile-hall) - (name "guile3.0-hall") - (inputs `(("guile" ,guile-next) + (name "guile2.2-hall") + (inputs `(("guile" ,guile-2.2) ,@(alist-delete "guile" (package-inputs guile-hall)))) (propagated-inputs - `(("guile-config" ,guile3.0-config) + `(("guile-config" ,guile2.2-config) ,@(alist-delete "guile-config" (package-propagated-inputs guile-hall)))))) +(define-public guile3.0-hall + (deprecated-package "guile3.0-hall" guile-hall)) + (define-public guile-ics (package (name "guile-ics") @@ -1477,7 +1503,7 @@ provides tight coupling to Guix.") ;; Gettext brings 'AC_LIB_LINKFLAGS_FROM_LIBS'. ("gettext" ,gettext-minimal) ("pkg-config" ,pkg-config))) - (inputs `(("guile" ,guile-2.2) ("which" ,which))) + (inputs `(("guile" ,guile-3.0) ("which" ,which))) (propagated-inputs `(("guile-lib" ,guile-lib))) (home-page "https://github.com/artyom-poptsov/guile-ics") (synopsis "Guile parser library for the iCalendar format") @@ -1488,13 +1514,16 @@ pure Scheme. The library can be used to read and write iCalendar data. The library is shipped with documentation in Info format and usage examples.") (license license:gpl3+))) -(define-public guile3.0-ics +(define-public guile2.2-ics (package (inherit guile-ics) - (name "guile3.0-ics") - (inputs `(("guile" ,guile-3.0) + (name "guile2.2-ics") + (inputs `(("guile" ,guile-2.2) ,@(alist-delete "guile" (package-inputs guile-ics)))) - (propagated-inputs `(("guile-lib" ,guile3.0-lib))))) + (propagated-inputs `(("guile-lib" ,guile2.2-lib))))) + +(define-public guile3.0-ics + (deprecated-package "guile3.0-ics" guile-ics)) (define-public guile-wisp (package @@ -1521,6 +1550,12 @@ The library is shipped with documentation in Info format and usage examples.") (guix build emacs-utils)) #:phases (modify-phases %standard-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)) (add-before 'configure 'patch-/usr/bin/env (lambda _ (substitute* "Makefile.in" @@ -1559,7 +1594,7 @@ The library is shipped with documentation in Info format and usage examples.") (assoc-ref emacs:%standard-phases 'make-autoloads))))) (home-page "https://www.draketo.de/english/wisp") (inputs - `(("guile" ,guile-2.2))) + `(("guile" ,guile-3.0))) (native-inputs `(("emacs" ,emacs-minimal) ("python" ,python) @@ -1570,21 +1605,14 @@ whitespace-significant language. It may be easier on the eyes for some users and in some situations.") (license license:gpl3+))) -(define-public guile3.0-wisp +(define-public guile2.2-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)))))))) + (name "guile2.2-wisp") + (inputs `(("guile" ,guile-2.2))))) + +(define-public guile3.0-wisp + (deprecated-package "guile3.0-wisp" guile-wisp)) (define-public guile-sly (package @@ -1924,7 +1952,7 @@ library.") $(libdir)/guile/@GUILE_EFFECTIVE_VERSION@/site-ccache\n")) #t))))) (native-inputs `(("pkg-config" ,pkg-config))) - (inputs `(("guile" ,guile-2.2))) + (inputs `(("guile" ,guile-3.0))) (home-page "https://www.nongnu.org/guile-lib/") (synopsis "Collection of useful Guile Scheme modules") (description @@ -1944,11 +1972,14 @@ for Guile\".") (name "guile2.0-lib") (inputs `(("guile" ,guile-2.0))))) -(define-public guile3.0-lib +(define-public guile2.2-lib (package (inherit guile-lib) - (name "guile3.0-lib") - (inputs `(("guile" ,guile-3.0))))) + (name "guile2.2-lib") + (inputs `(("guile" ,guile-2.2))))) + +(define-public guile3.0-lib + (deprecated-package "guile3.0-lib" guile-lib)) (define-public guile-minikanren (package @@ -1965,7 +1996,7 @@ for Guile\".") "0r50jlpzi940jlmxyy3ddqqwmj5r12gb4bcv0ssini9v8km13xz6")))) (build-system guile-build-system) (native-inputs - `(("guile" ,guile-2.2))) + `(("guile" ,guile-3.0))) (home-page "https://github.com/ijp/minikanren") (synopsis "MiniKanren declarative logic system, packaged for Guile") (description @@ -1986,11 +2017,14 @@ See http://minikanren.org/ for more on miniKanren generally.") (name "guile2.0-minikanren") (native-inputs `(("guile" ,guile-2.0))))) -(define-public guile3.0-minikanren +(define-public guile2.2-minikanren (package (inherit guile-minikanren) - (name "guile3.0-minikanren") - (native-inputs `(("guile" ,guile-next))))) + (name "guile2.2-minikanren") + (native-inputs `(("guile" ,guile-2.2))))) + +(define-public guile3.0-minikanren + (deprecated-package "guile3.0-minikanren" guile-minikanren)) (define-public guile-irregex (package @@ -2023,7 +2057,7 @@ See http://minikanren.org/ for more on miniKanren generally.") #t))) #:source-directory "src")) (native-inputs - `(("guile" ,guile-2.2))) + `(("guile" ,guile-3.0))) (home-page "http://synthcode.com/scheme/irregex") (synopsis "S-expression based regular expressions") (description @@ -2038,11 +2072,14 @@ inspired by the SCSH regular expression system.") (name "guile2.0-irregex") (native-inputs `(("guile" ,guile-2.0))))) -(define-public guile3.0-irregex +(define-public guile2.2-irregex (package (inherit guile-irregex) - (name "guile3.0-irregex") - (native-inputs `(("guile" ,guile-next))))) + (name "guile2.2-irregex") + (native-inputs `(("guile" ,guile-2.2))))) + +(define-public guile3.0-irregex + (deprecated-package "guile3.0-irregex" guile-irregex)) (define-public haunt (package @@ -2108,9 +2145,10 @@ inspired by the SCSH regular expression system.") `(("pkg-config" ,pkg-config) ("texinfo" ,texinfo))) (inputs - `(("guile" ,guile-2.2))) + `(("guile" ,guile-3.0))) (propagated-inputs - `(("guile-reader" ,guile-reader) + ;; XXX: Guile-Reader is currently unavailable for Guile 2.2 so strip it. + `(;;("guile-reader" ,guile-reader) ("guile-commonmark" ,guile-commonmark))) (synopsis "Functional static site generator") (description "Haunt is a static site generator written in Guile @@ -2119,14 +2157,14 @@ interface for reading articles in any format.") (home-page "http://haunt.dthompson.us") (license license:gpl3+))) -(define-public guile3.0-haunt +(define-public guile2.2-haunt (package (inherit haunt) - (name "guile3.0-haunt") - (inputs `(("guile" ,guile-3.0))) + (name "guile2.2-haunt") + (inputs `(("guile" ,guile-2.2))) (propagated-inputs - ;; XXX: Guile-Reader is currently unavailable for Guile 3.0 so strip it. - `(("guile-commonmark" ,guile3.0-commonmark))))) + `(("guile-reader" ,guile-reader) + ("guile-commonmark" ,guile2.2-commonmark))))) (define-public guile2.0-haunt (package @@ -2134,6 +2172,9 @@ interface for reading articles in any format.") (name "guile2.0-haunt") (inputs `(("guile" ,guile-2.0))))) +(define-public guile3.0-haunt + (deprecated-package "guile3.0-haunt" haunt)) + (define-public guile-redis (package (name "guile-redis") @@ -2189,7 +2230,7 @@ key-value cache and store.") #t)))) (build-system gnu-build-system) (inputs - `(("guile" ,guile-2.2))) + `(("guile" ,guile-3.0))) (native-inputs `(("pkg-config" ,pkg-config))) (synopsis "CommonMark parser for Guile") @@ -2202,11 +2243,11 @@ is no support for parsing block and inline level HTML.") (home-page "https://github.com/OrangeShark/guile-commonmark") (license license:lgpl3+))) -(define-public guile3.0-commonmark +(define-public guile2.2-commonmark (package (inherit guile-commonmark) - (name "guile3.0-commonmark") - (inputs `(("guile" ,guile-3.0))))) + (name "guile2.2-commonmark") + (inputs `(("guile" ,guile-2.2))))) (define-public guile2.0-commonmark (package @@ -2214,6 +2255,9 @@ is no support for parsing block and inline level HTML.") (name "guile2.0-commonmark") (inputs `(("guile" ,guile-2.0))))) +(define-public guile3.0-commonmark + (deprecated-package "guile3.0-commonmark" guile-commonmark)) + (define-public mcron (package (name "mcron") @@ -2246,7 +2290,7 @@ is no support for parsing block and inline level HTML.") #t))))) (native-inputs `(("pkg-config" ,pkg-config) ("tzdata" ,tzdata-for-tests))) - (inputs `(("guile" ,guile-2.2.7))) ;fix <https://bugs.gnu.org/37237> + (inputs `(("guile" ,guile-3.0))) (home-page "https://www.gnu.org/software/mcron/") (synopsis "Run jobs at scheduled times") (description @@ -2256,11 +2300,14 @@ Guile, so its configuration can be written in Scheme; the original cron format is also supported.") (license license:gpl3+))) -(define-public guile3.0-mcron +(define-public guile2.2-mcron (package (inherit mcron) - (name "guile3.0-mcron") - (inputs `(("guile" ,guile-3.0))))) + (name "guile2.2-mcron") + (inputs `(("guile" ,guile-2.2))))) + +(define-public guile3.0-mcron + (deprecated-package "guile3.0-mcron" mcron)) (define-public guile-picture-language (let ((commit "91d10c96708d732145006dd2802acc4de08b632e") @@ -2279,7 +2326,7 @@ format is also supported.") "1ydvw9dvssdvlvhh1dr8inyzy2x6m41qgp8hsivca1xysr4gc23a")))) (build-system gnu-build-system) (inputs - `(("guile" ,guile-2.2))) + `(("guile" ,guile-3.0))) (native-inputs `(("autoconf" ,autoconf) ("automake" ,automake) @@ -2293,11 +2340,15 @@ format is also supported.") The picture values can directly be displayed in Geiser.") (license license:lgpl3+)))) -(define-public guile3.0-picture-language +(define-public guile2.2-picture-language (package (inherit guile-picture-language) - (name "guile3.0-picture-language") - (inputs `(("guile" ,guile-3.0))))) + (name "guile2.2-picture-language") + (inputs `(("guile" ,guile-2.2))))) + +(define-public guile3.0-picture-language + (deprecated-package "guile3.0-picture-language" + guile-picture-language)) (define-public guile-studio (package @@ -2621,7 +2672,7 @@ list of components. This module takes care of that for you.") ("gtk+" ,gtk+) ("guile-lib" ,guile-lib) ("webkitgtk" ,webkitgtk))) - (inputs `(("guile" ,guile-2.2))) + (inputs `(("guile" ,guile-3.0))) (home-page "https://github.com/spk121/guile-gi") (synopsis "GObject bindings for Guile") (description @@ -2630,14 +2681,17 @@ libraries, such as GTK+3. Its README comes with the disclaimer: This is pre-alpha code.") (license license:gpl3+))) -(define-public guile3.0-gi +(define-public guile2.2-gi (package (inherit guile-gi) - (name "guile3.0-gi") + (name "guile2.2-gi") (native-inputs - `(("guile" ,guile-3.0) + `(("guile" ,guile-2.2) ,@(package-native-inputs guile-gi))))) +(define-public guile3.0-gi + (deprecated-package "guile3.0-gi" guile-gi)) + (define-public guile-srfi-159 (let ((commit "1bd98abda2ae4ef8f36761a167903e55c6bda7bb") (revision "0")) @@ -3114,7 +3168,7 @@ the style of the Node Package Manager (NPM).") (rename-file "private" "hashing/private") #t))))) (native-inputs - `(("guile" ,guile-2.2))) + `(("guile" ,guile-3.0))) (synopsis "Cryprographic hash functions implemented in Scheme") (description "The @code{(hashing @dots{})} modules implement cryptographic hash @@ -3122,13 +3176,116 @@ 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 +(define-public guile2.2-hashing (package (inherit guile-hashing) - (name "guile3.0-hashing") + (name "guile2.2-hashing") (native-inputs `(("guile" ,guile-next))))) +(define-public guile3.0-hashing + (deprecated-package "guile3.0-hashing" guile-hashing)) + +(define-public guile-packrat + (package + (name "guile-packrat") + (version "0.1.1") + (home-page "https://github.com/weinholt/packrat") + (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 + "1aga17164fkhbgllqc7ni6fk5zl8mkmgkl5zcsy67x7ngpyalbby")))) + (build-system guile-build-system) + (arguments + `(#:implicit-inputs? #f ;needs nothing but Guile + #:compile-flags '("--r6rs" "-Wunbound-variable" "-Warity-mismatch") + #:not-compiled-file-regexp "/extensible\\.scm$" + #:phases (modify-phases %standard-phases + (add-before 'build 'no-srfi-23 + (lambda _ + (substitute* "packrat.sls" + (("\\(srfi :23 error\\)") + (object->string '(only (guile) error)))) + #t))))) + (native-inputs + `(("guile" ,guile-3.0))) + (synopsis "Packrat parser library in R6RS Scheme") + (description + "This is an R6RS Scheme adaptation of the +@uref{https://bford.info/packrat/, packrat parsing}. Packrat parsing is a +memoizing, backtracking, recursive-descent parsing technique that runs in time +and space linear in the size of the input text.") + (license license:expat))) + +(define-public guile-ac-d-bus + (package + (name "guile-ac-d-bus") + (version "1.0.0-alpha.0") + (home-page "https://gitlab.com/weinholt/ac-d-bus/") + (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 + "05cbp7slmzrx4cib2liysk31laknqiycw9ckgn65fylgz6c2y5x9")))) + (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))))) + (native-inputs + `(("guile" ,guile-3.0))) + (propagated-inputs + `(("guile-packrat" ,guile-packrat))) + (synopsis "D-Bus protocol implementation in R6RS Scheme") + (description + "AC/D-Bus is an implementation of the D-Bus wire protocol. D-Bus is an +interprocess communication protocol popular on GNU/Linux systems to +communicate with a variety of services. Originally designed for desktop +environments, it is now used by programs like VLC media player, BlueZ, +NetworkManager, Pulseaudio, systemd (including logind and resolved), Polkit, +gnome-keyring, and many more.") + (license license:expat))) + (define-public guile-webutils (let ((commit "8541904f761066dc9c27b1153e9a838be9a55299") (revision "0")) |