;;; Copyright © 2017 David Thompson <davet@gnu.org>
;;; Copyright © 2017, 2018, 2019, 2020 Mathieu Othacehe <m.othacehe@gmail.com>
;;; Copyright © 2017 Theodoros Foradis <theodoros@foradis.org>
-;;; Copyright © 2017 ng0 <ng0@n0.is>
+;;; Copyright © 2017 Nikita <nikita@n0.is>
;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2018 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;; Copyright © 2018, 2019, 2020 Arun Isaac <arunisaac@systemreboot.net>
;;; Copyright © 2019 Timothy Sample <samplet@ngyro.com>
;;; Copyright © 2019, 2020 Martin Becze <mjbecze@riseup.net>
;;; Copyright © 2020 Evan Straw <evan.straw99@gmail.com>
+;;; Copyright © 2020 Jack Hill <jackhill@jackhill.us>
+;;; Copyright © 2020 Julien Lepiler <julien@lepiller.eu>
+;;; Copyright © 2020 Marius Bakke <marius@gnu.org>
+;;; Copyright © 2020 Masaya Tojo <masaya@tojo.tokyo>
+;;; Copyright © 2020 Jesse Gibbons <jgibbons2357@gmail.com>
+;;; Copyright © 2020 Mike Rosset <mike.rosset@gmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
#:use-module (gnu packages gnome)
#:use-module (gnu packages gnupg)
#:use-module (gnu packages gperf)
+ #:use-module (gnu packages gstreamer)
#:use-module (gnu packages gtk)
#:use-module (gnu packages guile)
#:use-module (gnu packages hurd)
#:use-module (guix download)
#:use-module (guix git-download)
#:use-module (guix hg-download)
+ #:use-module (guix build-system glib-or-gtk)
#:use-module (guix build-system gnu)
#:use-module (guix build-system guile)
#:use-module (guix utils)
;; projects.
;; TODO: Add guile-dbi and guile-dbd optional dependencies.
(propagated-inputs
- `(("guile-json" ,guile-json-1)
+ `(("guile-json" ,guile-json-1) ; This ia already using guile-2.2.
("guile-readline" ,guile2.2-readline)
- ("guile-redis" ,guile-redis)))
+ ("guile-redis" ,guile2.2-redis)))
(native-inputs
`(("bash" ,bash) ;for the `source' builtin
("pkgconfig" ,pkg-config)
(source (origin
(method git-fetch)
(uri (git-reference
- (url "https://github.com/ijp/guildhall.git")
+ (url "https://github.com/ijp/guildhall")
(commit commit)))
(file-name (string-append name "-" version "-checkout"))
(sha256
(define-public guile-dsv
(package
(name "guile-dsv")
- (version "0.2.1")
+ (version "0.3.0")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/artyom-poptsov/guile-dsv")
- (commit "bdc5267d007478abc20ea96d7c459b7dd9560b3d")))
+ (commit "6c867915dc4198eacc548a4834ef0e1aef852795")))
(file-name (string-append name "-" version "-checkout"))
(sha256
(base32
- "1irw6mz8998nwyhzrw9g94jcz60b9zljgqfmipaz1ybn8579qjx0"))))
+ "1mxbbcsmbjfnh4yydqz44ihbkdnzdwz38xanaam128arlb7hwr8n"))))
(build-system gnu-build-system)
(native-inputs
`(("autoconf" ,autoconf)
("automake" ,automake)
("pkg-config" ,pkg-config)
("texinfo" ,texinfo)))
- (inputs `(("guile" ,guile-2.2)))
+ (inputs `(("guile" ,guile-3.0)))
(propagated-inputs `(("guile-lib" ,guile-lib)))
(arguments
- '(#:phases (modify-phases %standard-phases
+ `(#:modules (((guix build guile-build-system)
+ #:select (target-guile-effective-version))
+ ,@%gnu-build-system-modules)
+ #:imported-modules ((guix build guile-build-system)
+ ,@%gnu-build-system-modules)
+ #:phases (modify-phases %standard-phases
+ ;; Support Guile 3.0 in configure from upstream commit
+ ;; 4c724577ccf19bb88580f72f2f6b166a0447ce3f
+ (add-before 'bootstrap 'configure-support-guile3.0
+ (lambda _
+ (substitute* "configure.ac"
+ (("GUILE_PKG.*")
+ "GUILE_PKG([3.0 2.0 2.2])"))
+ #t))
(add-before 'configure 'set-guilesitedir
(lambda _
(substitute* "Makefile.in"
(("^guilesitedir =.*$")
"guilesitedir = \
$(datadir)/guile/site/$(GUILE_EFFECTIVE_VERSION)\n"))
+ #t))
+ (add-after 'install 'wrap-program
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out"))
+ (bin (string-append out "/bin"))
+ (guile-lib (assoc-ref inputs "guile-lib"))
+ (version (target-guile-effective-version))
+ (scm (string-append "/share/guile/site/"
+ version))
+ (go (string-append "/lib/guile/"
+ version "/site-ccache")))
+ (wrap-program (string-append bin "/dsv")
+ `("GUILE_LOAD_PATH" prefix
+ (,(string-append out scm)
+ ,(string-append guile-lib scm)))
+ `("GUILE_LOAD_COMPILED_PATH" prefix
+ (,(string-append out go)
+ ,(string-append guile-lib go)))))
#t)))))
(home-page "https://github.com/artyom-poptsov/guile-dsv")
(synopsis "DSV module for Guile")
Unix-style DSV format and RFC 4180 format.")
(license license:gpl3+)))
+(define-public guile2.2-dsv
+ (package
+ (inherit guile-dsv)
+ (name "guile2.2-dsv")
+ (inputs `(("guile" ,guile-2.2)))
+ (propagated-inputs `(("guile-lib" ,guile2.2-lib)))))
+
(define-public guile-fibers
(package
(name "guile-fibers")
(("#:use-module \\(fibers\\)")
(string-append "#:use-module (fibers)\n"
"#:use-module (ice-9 threads)\n")))
- #t))))
+ #t))
+ (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.
(build-system guile-build-system)
(arguments
'(#:source-directory "src"
+ #:compile-flags '("--r6rs" "-Wunbound-variable" "-Warity-mismatch")
#: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
(mkdir-p "src/pfds")
(for-each (lambda (file)
(rename-file file
- (string-append "src/pfds/"
- file)))
+ (string-append "src/pfds/" file)))
'("bbtrees.sls"
"deques"
"deques.sls"
"queues.sls"
"sequences.sls"
"sets.sls"))
-
- ;; In Guile <= 2.2.4, there's no way to tell 'guild
- ;; compile' to accept the ".sls" extension. So...
- (for-each (lambda (file)
- (rename-file file
- (string-append
- (string-drop-right file 4)
- ".scm")))
- (find-files "." "\\.sls$"))
#t)))))
(native-inputs
`(("guile" ,guile-3.0)))
@end itemize\n")
(license license:bsd-3)))
+(define-public guile-prometheus
+ (let ((commit "cbc6e1b03512443a03d66414c426adb8470b5f2b")
+ (revision "0"))
+ (package
+ (name "guile-prometheus")
+ (version (git-version "0" revision commit))
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://git.cbaines.net/git/guile/prometheus")
+ (commit commit)))
+ (sha256
+ (base32
+ "1k1qg4ia87w2ipnf8cpikdc67lxi5bmahkhgk2x0i9ibdyvqb7np"))
+ (file-name (string-append name "-" version "-checkout"))))
+ (build-system gnu-build-system)
+ (native-inputs
+ `(("pkg-config" ,pkg-config)
+ ("autoconf" ,autoconf)
+ ("automake" ,automake)))
+ (inputs
+ `(("guile" ,guile-3.0)))
+ (home-page "https://git.cbaines.net/guile/prometheus")
+ (synopsis "Prometheus client library for Guile")
+ (description
+ "This Guile library provides instrumentation code intended to be used
+with the Prometheus time series service. Counter, gauge and histogram metric
+types are supported.")
+ (license license:gpl3+))))
+
(define-public guile2.2-pfds
(package
(inherit guile-pfds)
(substitute-keyword-arguments (package-arguments guile-pfds)
((#:phases phases)
`(modify-phases ,phases
- (delete 'work-around-guile-bug)))))))
+ (delete 'work-around-guile-bug)
+ (add-after 'move-files-around 'sls->scm
+ (lambda _
+ ;; In Guile <= 2.2.4, there's no way to tell 'guild
+ ;; compile' to accept the ".sls" extension. So...
+ (for-each (lambda (file)
+ (rename-file file
+ (string-append
+ (string-drop-right file 4)
+ ".scm")))
+ (find-files "." "\\.sls$"))
+ #t))))))))
(define-public guile3.0-pfds
(deprecated-package "guile3.0-pfds" guile-pfds))
(deprecated-package "guile3.0-simple-zmq" guile-simple-zmq))
(define-public jupyter-guile-kernel
- (let ((commit "a7db9245a886e104138474df46c3e88b95cff629")
- (revision "1"))
+ (let ((commit "f25fb90b95529b17a006a807bd04e6aee12ea304")
+ (revision "2"))
(package
(name "jupyter-guile-kernel")
(version (git-version "0.0.0" revision commit))
(file-name (git-file-name name version))
(sha256
(base32
- "0aj04853bqm47ivfcmrgpb7w3wkis847kc7qrwsa5zcn9h38qh2f"))))
+ "0zr1fasdb2yv9kn21yll993y9higqss4jnfs030ndhjb93raa9sr"))))
(build-system guile-build-system)
(arguments
'(#:phases (modify-phases %standard-phases
;; Fix hard-coded file name in the kernel.
(substitute* (string-append dir "/kernel.json")
- (("/home/.*/guile-jupyter-kernel.scm")
+ (("/usr/local/.*/guile-jupyter-kernel.scm")
(string-append out "/share/guile/site/"
(target-guile-effective-version)
"/guile-jupyter-kernel.scm"))
effective
"/site-ccache\""))
deps)))
- (string-append "--no-auto-compile\""
- (string-join -L ", \"-L\", "
- 'prefix)
- (string-join -C ", \"-C\", "
- 'prefix)
- ", \"-s"))))
+ (string-append "--no-auto-compile\""
+ (string-join -L ", \"-L\", "
+ 'prefix)
+ (string-join -C ", \"-C\", "
+ 'prefix)
+ ", \"-s"))))
#t))))))
(inputs
`(("openssl" ,openssl)
- ("guile" ,guile-2.2)
- ("guile-json" ,guile-json-1)
+ ("guile" ,guile-3.0)
+ ("guile-json" ,guile-json-3)
("guile-simple-zmq" ,guile-simple-zmq)))
(synopsis "Guile kernel for the Jupyter Notebook")
(description
(propagated-inputs
`(("guile-email" ,guile-email)))
(native-inputs
- `(("guile" ,guile-2.2)
+ `(("guile" ,guile-3.0)
("pkg-config" ,pkg-config)))
(home-page "https://savannah.gnu.org/projects/guile-debbugs/")
(synopsis "Guile interface to the Debbugs bug tracking service")
(origin
(method git-fetch)
(uri (git-reference
- (url "https://github.com/opencog/guile-dbi.git")
+ (url "https://github.com/opencog/guile-dbi")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(define-public guile-config
(package
(name "guile-config")
- (version "0.3.1")
+ (version "0.4.2")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://gitlab.com/a-sassmannshausen/guile-config")
- (commit (string-append "v" version))))
+ (commit version)))
(file-name (git-file-name name version))
(sha256 (base32
- "0gglsqwpw77gvrqcny8irpqfl7qdf2v8n9ggwrswanxalj4vcbvf"))))
+ "09028ylbddjdp3d67zdjz3pnsjqz6zs2bfck5rr3dfaa0qjap40n"))))
(build-system gnu-build-system)
(native-inputs
`(("autoconf" ,autoconf)
(define-public guile-hall
(package
(name "guile-hall")
- (version "0.2.1")
+ (version "0.3.1")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://gitlab.com/a-sassmannshausen/guile-hall")
- (commit (string-append "v" version))))
- (file-name (git-file-name name version))
- (sha256 (base32
- "0dwx5iyg0dmdf64wq0b4w306bapr86jwnw35npgbjq4cqm8qbzqn"))))
+ (commit version)))
+ (file-name "guile-hall-0.3.1-checkout")
+ (sha256
+ (base32 "1s24nigdra6rvclvy15l2aw00c3aq9vv8qwxylzs60darbl36206"))))
(build-system gnu-build-system)
(arguments
`(#:modules
(define-public guile-wisp
(package
(name "guile-wisp")
- (version "1.0.2")
+ (version "1.0.3")
(source (origin
- (method url-fetch)
- (uri (string-append "https://bitbucket.org/ArneBab/"
- "wisp/downloads/wisp-"
- version ".tar.gz"))
+ (method hg-fetch)
+ (uri (hg-reference
+ (url "https://hg.sr.ht/~arnebab/wisp")
+ (changeset (string-append "v" version))))
+ (file-name (git-file-name name version))
(sha256
(base32
- "03pz7pj9jyallynhflp5s7qax8dj1fs8la434wrfgz7g1kgjnvf6"))))
+ "10g97jz3ahpb5mg933ajsc3pa9jxlg14f42yf01qwx0dwq1b06d5"))))
(build-system gnu-build-system)
(arguments
`(#:modules ((guix build gnu-build-system)
(guix build emacs-utils))
#:phases
(modify-phases %standard-phases
- (add-after 'unpack 'support-guile-3.0
+ (replace 'bootstrap
(lambda _
- (substitute* "configure"
- (("_guile_versions_to_search=\"2.2")
- "_guile_versions_to_search=\"3.0 2.2"))
+ (invoke "autoreconf" "-vif")
#t))
(add-before 'configure 'patch-/usr/bin/env
(lambda _
(inputs
`(("guile" ,guile-3.0)))
(native-inputs
- `(("emacs" ,emacs-minimal)
+ `(("autoconf" ,autoconf)
+ ("automake" ,automake)
+ ("emacs" ,emacs-minimal)
("python" ,python)
("pkg-config" ,pkg-config)))
(synopsis "Whitespace to lisp syntax for Guile")
(license license:gpl3+)))
(define-public g-golf
- (let ((commit "4a4edf25e4877df9182c77843bdd98ab59e13ef7"))
+ (let ((commit "84e894eb7945c3bcdf7f8d5135c1be3efa524c92")
+ (revision "822"))
(package
(name "g-golf")
- (version (git-version "1" "683" commit))
- (source (origin
- (method git-fetch)
- (uri (git-reference
- (url "https://git.savannah.gnu.org/git/g-golf.git")
- (commit commit)))
- (file-name (git-file-name name version))
- (sha256
- (base32
- "09p0gf71wbmlm9kri693a8fvr9hl3hhlmlidyadwjdh7853xg0h8"))))
+ (version (git-version "0.1.0" revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://git.savannah.gnu.org/git/g-golf.git")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "1pkcij65zy2lkip5yrfzj85nq17pp9mrf0d4sk6hpjqr4kd0bxd5"))))
(build-system gnu-build-system)
(native-inputs
`(("autoconf" ,autoconf)
("texinfo" ,texinfo)
("gettext" ,gettext-minimal)
("libtool" ,libtool)
- ("pkg-config" ,pkg-config)))
+ ("pkg-config" ,pkg-config)
+ ("xorg-server" ,xorg-server)))
(inputs
`(("guile" ,guile-2.2)
- ("guile-lib" ,guile-lib)
+ ("guile-lib" ,guile2.2-lib)
("clutter" ,clutter)
("gtk" ,gtk+)
("glib" ,glib)))
(assoc-ref outputs "out"))))))))
(setenv "GUILE_AUTO_COMPILE" "0")
(setenv "GUILE_GGOLF_UNINSTALLED" "1")
- #t))))))
+ #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
(source (origin
(method git-fetch)
(uri (git-reference
- (url "https://github.com/fisherdj/miniAdapton.git")
+ (url "https://github.com/fisherdj/miniAdapton")
(commit commit)))
(file-name (string-append name "-" version "-checkout"))
(sha256
(define-public guile-reader
(package
(name "guile-reader")
- (version "0.6.2")
+ (version "0.6.3")
(source (origin
(method url-fetch)
(uri (string-append "mirror://savannah/guile-reader/guile-reader-"
version ".tar.gz"))
(sha256
(base32
- "0592s2s8ampqmqwilc4fvcild6rb9gy79di6vxv5kcdmv23abkgx"))))
+ "1fyjckmygkhq22lq8nqc86yl5zzbqd7a944dnz5c1f6vx92b9hiq"))))
(build-system gnu-build-system)
(native-inputs `(("pkgconfig" ,pkg-config)
- ("gperf" ,gperf-3.0)))
- (inputs `(("guile" ,guile-2.2)))
+ ("gperf" ,gperf)))
+ (inputs `(("guile" ,guile-3.0)))
(synopsis "Framework for building readers for GNU Guile")
(description
"Guile-Reader is a simple framework for building readers for GNU Guile.
(home-page "https://www.nongnu.org/guile-reader/")
(license license:gpl3+)))
+(define-public guile2.2-reader
+ (package
+ (inherit guile-reader)
+ (name "guile2.2-reader")
+ (inputs `(("guile" ,guile-2.2)))))
+
(define-public guile-ncurses
(package
(name "guile-ncurses")
(source (origin
(method git-fetch)
(uri (git-reference
- (url "https://github.com/ijp/minikanren.git")
+ (url "https://github.com/ijp/minikanren")
(commit "e844d85512f8c055d3f96143ee506007389a25e3")))
(file-name (string-append name "-" version "-checkout"))
(sha256
(inputs
`(("guile" ,guile-3.0)))
(propagated-inputs
- ;; XXX: Guile-Reader is currently unavailable for Guile 2.2 so strip it.
- `(;;("guile-reader" ,guile-reader)
+ `(("guile-reader" ,guile-reader)
("guile-commonmark" ,guile-commonmark)))
(synopsis "Functional static site generator")
(description "Haunt is a static site generator written in Guile
(name "guile2.2-haunt")
(inputs `(("guile" ,guile-2.2)))
(propagated-inputs
- `(("guile-reader" ,guile-reader)
+ `(("guile-reader" ,guile2.2-reader)
("guile-commonmark" ,guile2.2-commonmark)))))
(define-public guile2.0-haunt
`(("autoconf" ,autoconf)
("automake" ,automake)
("pkg-config" ,pkg-config)
- ("guile" ,guile-2.2)))
+ ("guile" ,guile-3.0)))
(synopsis "Redis client library for Guile")
(description "Guile-redis provides a Scheme interface to the Redis
key-value cache and store.")
(license license:lgpl3+)))
+(define-public guile2.2-redis
+ (package
+ (inherit guile-redis)
+ (name "guile2.2-redis")
+ (native-inputs `(("guile" ,guile-2.2)
+ ,@(alist-delete "guile"
+ (package-native-inputs guile-redis))))))
+
(define-public guile2.0-redis
(package
(inherit guile-redis)
(define-public mcron
(package
(name "mcron")
- (version "1.1.4")
+ (version "1.2.0")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnu/mcron/mcron-"
version ".tar.gz"))
(sha256
(base32
- "1521w3h33bhdlg6qc66sq4dwv3qsx8r8x6srq4ca6kaahy6dszw8"))))
+ "1midrn15d5kqy4zd2029bj1db6gnfhxg8mcgfy4bkp5p9nl4v4rd"))))
(build-system gnu-build-system)
(arguments
'(#:phases (modify-phases %standard-phases
(string-append "(test-skip 4)\n" all)))
#t)))))
(native-inputs `(("pkg-config" ,pkg-config)
- ("tzdata" ,tzdata-for-tests)))
+ ("tzdata" ,tzdata-for-tests)
+ ("guile-native" ;for 'guild compile'
+ ,@(assoc-ref (package-inputs this-package) "guile"))))
(inputs `(("guile" ,guile-3.0)))
(home-page "https://www.gnu.org/software/mcron/")
(synopsis "Run jobs at scheduled times")
guile-picture-language))
(define-public guile-studio
- (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+)))
-
-(define-public guile-stis-parser
- (let ((commit "6e85d37ffc333b722f4413a6c648263701eb75bd")
+ (let ((commit "5c05b03e8a5c450f7358ceec7ea602f29c49d54e")
(revision "1"))
(package
- (name "guile-stis-parser")
- (version (git-version "0" revision commit))
+ (name "guile-studio")
+ (version (git-version "0.0.3" revision commit))
(source (origin
(method git-fetch)
(uri (git-reference
- (url "https://gitlab.com/tampe/stis-parser")
+ (url "https://git.elephly.net/software/guile-studio.git")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32
- "0v4hvq7rlpbra1ni73lf8k6sdmjlflr50yi3p1f24g85h77pc7c0"))))
+ "11wyf6x7mhyhimv0cd57pl39zgav9hc9ljqi3g2g35b264hylpnx"))))
(build-system gnu-build-system)
(arguments
- `(#:parallel-build? #f ; not supported
+ `(#: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
- (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 'chdir 'delete-broken-symlink
- (lambda _
- (delete-file "parser/stis-parser/lang/.#calc.scm")
- #t)))))
+ (delete 'configure)
+ (delete 'install))))
(inputs
- `(("guile" ,guile-2.2)))
+ `(("guile" ,guile-3.0)
+ ("guile-picture-language" ,guile-picture-language)
+ ("emacs" ,emacs)
+ ("emacs-geiser" ,emacs-geiser)
+ ("emacs-company" ,emacs-company)
+ ("emacs-flycheck" ,emacs-flycheck)
+ ("emacs-flycheck-guile" ,emacs-flycheck-guile)
+ ("emacs-smart-mode-line" ,emacs-smart-mode-line)
+ ("emacs-paren-face" ,emacs-paren-face)
+ ("adwaita-icon-theme" ,adwaita-icon-theme)))
(native-inputs
- `(("autoconf" ,autoconf)
- ("automake" ,automake)
- ("pkg-config" ,pkg-config)))
- (home-page "https://gitlab.com/tampe/stis-parser")
- (synopsis "Parser combinator framework")
+ `(("texinfo" ,texinfo)))
+ (home-page "https://gnu.org/software/guile")
+ (synopsis "IDE for Guile")
(description
- "This package provides a functional parser combinator library that
+ "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+))))
+
+(define-public guile-stis-parser
+ (package
+ (name "guile-stis-parser")
+ (version "1.2.4.1")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://gitlab.com/tampe/stis-parser")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "1fvxdfvc80zqhwzq5x3kxyr6j8p4b51yx85fx1gr3d4gy2ddpx5w"))))
+ (build-system gnu-build-system)
+ (arguments
+ `(#:parallel-build? #f ; not supported
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'chdir
+ (lambda _ (chdir "modules") #t))
+ (add-after 'chdir 'delete-broken-symlink
+ (lambda _
+ (delete-file "parser/stis-parser/lang/.#calc.scm")
+ #t)))))
+ (inputs
+ `(("guile" ,guile-3.0)))
+ (native-inputs
+ `(("autoconf" ,autoconf)
+ ("automake" ,automake)
+ ("pkg-config" ,pkg-config)))
+ (home-page "https://gitlab.com/tampe/stis-parser")
+ (synopsis "Parser combinator framework")
+ (description
+ "This package provides a functional parser combinator library that
supports backtracking and a small logical framework. The idea is to build up
chunks that are memoized and there is no clear scanner/parser separation,
chunks can be expressions as well as simple tokens.")
- (license license:lgpl2.0+))))
+ (license license:lgpl2.0+)))
(define-public guile-persist
- (let ((commit "b14927b0368af51c024560aee5f55724aee35233")
- (revision "1"))
- (package
- (name "guile-persist")
- (version (git-version "0" revision commit))
- (source (origin
- (method git-fetch)
- (uri (git-reference
- (url "https://gitlab.com/tampe/guile-persist")
- (commit commit)))
- (file-name (git-file-name name version))
- (sha256
- (base32
- "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
- (modify-phases %standard-phases
- (add-after 'unpack 'patch-prefix
- (lambda* (#:key inputs outputs #:allow-other-keys)
- (substitute* "src/Makefile.am"
- (("/usr/local/lib/guile")
- (string-append (assoc-ref outputs "out") "/lib/guile"))
- (("/usr/local/include/guile")
- (string-append (assoc-ref inputs "guile") "/include/guile"))
- (("-L/usr/local/lib")
- (string-append "-L" (assoc-ref inputs "guile") "/lib"))
- ;; Use canonical directory for go files.
- (("/ccache") "/site-ccache"))
- #t))
- (add-after 'unpack 'patch-library-reference
- (lambda* (#:key outputs #:allow-other-keys)
- (let ((out (assoc-ref outputs "out")))
- (substitute* "persist/persistance.scm"
- (("\"libguile-persist\"")
- (format #f "\"~a/lib/guile/2.2/extensions/libguile-persist\"" out)))
- #t))))))
- (inputs
- `(("guile" ,guile-2.2)))
- (native-inputs
- `(("autoconf" ,autoconf)
- ("automake" ,automake)
- ("libtool" ,libtool)
- ("pkg-config" ,pkg-config)))
- (home-page "https://gitlab.com/tampe/guile-persist")
- (synopsis "Persistence programming framework for Guile")
- (description
- "This is a serialization library for serializing objects like classes
+ (package
+ (name "guile-persist")
+ (version "1.2.3")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://gitlab.com/tampe/guile-persist")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "19f8hqcax4v40858kx2j8fy1cvzc2djj99r0n17dy1xxmwa097qi"))))
+ (build-system gnu-build-system)
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'patch-prefix
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ (substitute* "src/Makefile.am"
+ (("/usr/local/lib/guile")
+ (string-append (assoc-ref outputs "out") "/lib/guile"))
+ (("/usr/local/include/guile")
+ (string-append (assoc-ref inputs "guile") "/include/guile"))
+ (("-L/usr/local/lib")
+ (string-append "-L" (assoc-ref inputs "guile") "/lib")))
+ #t))
+ (add-after 'unpack 'patch-library-reference
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let ((out (assoc-ref outputs "out")))
+ (substitute* "persist/persistance.scm"
+ (("\"libguile-persist\"")
+ (format #f "\"~a/lib/guile/3.0/extensions/libguile-persist\"" out)))
+ #t))))))
+ (inputs
+ `(("guile" ,guile-3.0)))
+ (native-inputs
+ `(("autoconf" ,autoconf)
+ ("automake" ,automake)
+ ("libtool" ,libtool)
+ ("pkg-config" ,pkg-config)))
+ (home-page "https://gitlab.com/tampe/guile-persist")
+ (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
serializing continuations or delimited continuations.")
- (license license:lgpl2.0+))))
+ (license license:lgpl2.0+)))
(define-public python-on-guile
- (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://git.elephly.net/software/python-on-guile.git")
- (commit commit)))
- (file-name (git-file-name name version))
- (sha256
- (base32
- "03rpnqr08rqr3gay128g564rwk8w4jbj28ss6b46z1d4vjs4nk68"))))
- (build-system gnu-build-system)
- (arguments
- `(#:parallel-build? #f ; not supported
- #: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 '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
- `(("guile-persist" ,guile-persist)
- ("guile-readline" ,guile-readline)
- ("guile-stis-parser" ,guile-stis-parser)))
- (native-inputs
- `(("autoconf" ,autoconf)
- ("automake" ,automake)
- ("libtool" ,libtool)
- ("pkg-config" ,pkg-config)))
- (home-page "https://gitlab.com/python-on-guile/python-on-guile/")
- (synopsis "Python implementation in Guile")
- (description
- "This package allows you to compile a Guile Python file to any target
+ (package
+ (name "python-on-guile")
+ (version "1.2.3.5")
+ (home-page "https://gitlab.com/python-on-guile/python-on-guile")
+ (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
+ "05xrvcj6a4gzq1ybyin270qz8wamgc7w2skyi9iy6hkpgdhxy8vf"))))
+ (build-system gnu-build-system)
+ (arguments
+ `(#:parallel-build? #f ;not supported
+ #: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 'augment-GUILE_LOAD_PATH
+ (lambda _
+ ;; TODO: It would be better to patch the Makefile.
+ (setenv "GUILE_LOAD_PATH"
+ (string-append ".:"
+ (getenv "GUILE_LOAD_PATH")))
+ #t))
+ (add-after 'install 'wrap
+ (lambda* (#:key outputs #:allow-other-keys)
+ ;; Wrap the 'python' executable so it can find its
+ ;; dependencies and own modules.
+ (let* ((out (assoc-ref outputs "out"))
+ (guile-version ,(version-major+minor
+ (package-version guile-3.0)))
+ (scm (string-append out "/share/guile/site/"
+ guile-version))
+ (ccache (string-append out "/lib/guile/" guile-version
+ "/site-ccache"))
+ (load-path (string-join
+ (cons scm
+ ;; XXX: cdr because we augment it above.
+ (cdr (string-split
+ (getenv "GUILE_LOAD_PATH") #\:)))
+ ":"))
+ (compiled-path (string-append
+ ccache ":"
+ (getenv "GUILE_LOAD_COMPILED_PATH"))))
+ (wrap-program (string-append out "/bin/python")
+ `("GUILE_LOAD_PATH" ":" prefix
+ (,load-path))
+ `("GUILE_LOAD_COMPILED_PATH" ":" prefix
+ (,compiled-path)))
+ #t))))))
+ (inputs
+ `(("guile" ,guile-3.0)
+ ("guile-persist" ,guile-persist)
+ ("guile-readline" ,guile-readline)
+ ("guile-stis-parser" ,guile-stis-parser)))
+ (native-inputs
+ `(("autoconf" ,autoconf)
+ ("automake" ,automake)
+ ("libtool" ,libtool)
+ ("pkg-config" ,pkg-config)))
+ (synopsis "Python implementation in Guile")
+ (description
+ "This package allows you to compile a Guile Python file to any target
from @code{tree-il}.")
- (license license:lgpl2.0+))))
+ (license license:lgpl2.0+)))
(define-public guile-file-names
(package
(sha256
(base32
"05xbwrk50h4f9fh8la8fk2wsxbnm0jcyb9phnpkkjq4sqkhkxlbj"))))
- (build-system gnu-build-system)
+ (build-system glib-or-gtk-build-system)
(arguments
`(#:configure-flags '("--with-gnu-filesystem-hierarchy")
- #:modules ((guix build gnu-build-system)
+ #:modules ((guix build glib-or-gtk-build-system)
(guix build utils)
(ice-9 popen)
(ice-9 rdelim))
(format #f "~alibguile-gi"
(if (getenv "GUILE_GI_UNINSTALLED")
""
- ,(format #f "~a/lib/guile/~a/"
+ ,(format #f "~a/lib/guile/~a/extensions/"
(assoc-ref outputs "out")
effective)))
,arg)))))
(package
(inherit guile-gi)
(name "guile2.2-gi")
- (native-inputs
+ (inputs
`(("guile" ,guile-2.2)
- ,@(package-native-inputs guile-gi)))))
+ ,@(alist-delete "guile" (package-inputs guile-gi))))))
(define-public guile3.0-gi
(deprecated-package "guile3.0-gi" guile-gi))
+(define-public guile-srfi-89
+ (package
+ (name "guile-srfi-89")
+ (version "0.0.1")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://gitlab.com/mjbecze/guile-srfi-89.git")
+ (commit version)))
+ (sha256
+ (base32
+ "1981c0rrzxqx3md9jx8ir7j3m2mzg9m72b33p5jvw36zirbzpl20"))
+ (file-name (git-file-name name version))))
+ (build-system guile-build-system)
+ (native-inputs
+ `(("guile" ,guile-3.0)))
+ (home-page "https://gitlab.com/mjbecze/guile-srfi-89")
+ (synopsis "Hygienic implementation of SRFI-89 for Guile")
+ (description
+ "This package provides SRFI-89 optional positional and named
+parameters, which define* and lambda* special forms")
+ (license license:gpl3+)))
+
+(define-public guile-srfi-145
+ (package
+ (name "guile-srfi-145")
+ (version "0.0.1")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://gitlab.com/mjbecze/guile-srfi-145.git")
+ (commit version)))
+ (sha256
+ (base32
+ "1gssa8cmcp8640fil9z8dpil8v5l279wlalqjcx3fls5jwv13q1b"))
+ (file-name (git-file-name name version))))
+ (build-system guile-build-system)
+ (native-inputs
+ `(("guile" ,guile-3.0)))
+ (home-page "https://gitlab.com/mjbecze/guile-srfi-145")
+ (synopsis "SRFI-145 port for Guile")
+ (description
+ "This package provides SRFI-145. This provides the means to
+denote the invalidity of certain code paths in a Scheme program.")
+ (license license:gpl3+)))
+
+(define-public guile-srfi-158
+ (package
+ (name "guile-srfi-158")
+ (version "0.0.1")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://gitlab.com/mjbecze/guile-srfi-158.git")
+ (commit version)))
+ (sha256
+ (base32
+ "0b8hlv1bldbcwkcxi9y8mm6xp5gbgpg7b15bwqxv70iynl9d9a7c"))
+ (file-name (git-file-name name version))))
+ (build-system gnu-build-system)
+ (native-inputs
+ `(("autoconf" ,autoconf)
+ ("automake" ,automake)
+ ("pkg-config" ,pkg-config)))
+ (inputs
+ `(("guile" ,guile-3.0)))
+ (home-page "https://gitlab.com/samplet/guile-srfi-158")
+ (synopsis "SRFI 158 (Generators and Accumulators) for Guile")
+ (description "This package provides an implementation of SRFI 158
+for Guile. SRFI 158 defines utility procedures that create,
+transform, and consume generators. It also defines procedures that
+return accumulators. It is implemented by wrapping the sample
+implementation in a thin Guile compatibility layer.")
+ (license license:gpl3+)))
+
(define-public guile-srfi-159
(let ((commit "1bd98abda2ae4ef8f36761a167903e55c6bda7bb")
(revision "0"))
more expressive and flexible than the traditional @code{format} procedure.")
(license license:bsd-3))))
+(define-public guile-srfi-180
+ (let ((commit "9188bf9724c6d320ef804579d222e855b007b193")
+ (revision "0"))
+ (package
+ (name "guile-srfi-180")
+ (version (git-version "0" revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/scheme-requests-for-implementation/srfi-180.git")
+ (commit commit)))
+ (sha256
+ (base32
+ "08lf70rsak8mwfij55xc37pg9zg7c87fizmhz7ln46skzj68sl3y"))
+ (modules '((guix build utils)))
+ (snippet
+ '(begin
+ (delete-file-recursively "srfi/files")
+ (delete-file "srfi/run-r7rs-checks.guile.scm")
+ (delete-file "srfi/run-r7rs-checks.scm")
+ (delete-file "srfi/check.scm")
+ #t))
+ (file-name (git-file-name name version))))
+ (build-system guile-build-system)
+ (arguments
+ '(#:not-compiled-file-regexp "body\\.scm$"))
+ (native-inputs
+ `(("guile" ,guile-3.0)))
+ (propagated-inputs
+ `(("guile-srfi-145" ,guile-srfi-145)))
+ (home-page "https://srfi.schemers.org/srfi-180/")
+ (synopsis "JSON parser and printer for Guile")
+ (description
+ "This library implements a JavaScript Object Notation (JSON) parser and printer.
+It also supports parsing JSON objects that may be bigger than memory with a streaming
+API.")
+ (license license:expat))))
+
(define-public emacsy
(package
(name "emacsy")
(license license:gpl3+)))
(define-public emacsy-minimal
- (let ((commit "d459ca1d3d09e7624e662bc4cfc3596850796fc6"))
+ (let ((commit "v0.4.1-31-g415d96f"))
(package
(inherit emacsy)
(name "emacsy-minimal")
- (version (git-version "v0.4.1" "28" 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
- "1ps15w8cxj9kc18gmvys9jv9xa1qqa7m43ismv34l3cmhddrn0sr"))))
+ (version (string-drop commit 1))
+ (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 "1cs1i1hxwrv0a512j54yrvfh743nci1chx6qjgp4jyzq98ncvxgg"))))
(build-system gnu-build-system)
(inputs
`(("guile" ,guile-2.2)
- ("guile-lib" ,guile-lib)
- ("guile-readline" ,guile-readline)))
+ ("guile-lib" ,guile2.2-lib)
+ ("guile-readline" ,guile2.2-readline)))
(propagated-inputs '())
(arguments
`(#:configure-flags '("--without-examples")
#:phases
(modify-phases %standard-phases
- (add-before 'configure 'setenv
- (lambda _
- (setenv "GUILE_AUTO_COMPILE" "0")
- #t))))))))
+ (add-before 'configure 'setenv
+ (lambda _
+ (setenv "GUILE_AUTO_COMPILE" "0")
+ #t))))))))
(define-public guile-jpeg
(let ((commit "6a1673578b297c2c1b28e44a76bd5c49e76a5046")
(define-public nomad
(package
(name "nomad")
- (version "0.1.2-alpha")
+ (version "0.2.0-alpha-100-g6a565d3")
(source (origin
(method git-fetch)
(uri (git-reference
- (url "https://git.savannah.gnu.org/git/nomad.git")
+ (url "https://git.savannah.gnu.org/git/nomad.git/")
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32
- "1dnkr1hmvfkwgxd75dcf93pg39yfgawvdpzdhv991yhghv0qxc9h"))))
+ "0anmprm63a88kii251rl296v1g4iq62r6n4nssx5jbc0hzkknanz"))))
(build-system gnu-build-system)
(native-inputs
`(("autoconf" ,autoconf)
("guile" ,guile-2.2)
("glib:bin" ,glib "bin")
("texinfo" ,texinfo)
+ ("gettext" ,gnu-gettext)
("perl" ,perl)))
(inputs
- `(("guile" ,guile-2.2)
- ("guile-lib" ,guile-lib)
- ("guile-gcrypt" ,guile-gcrypt)
- ("guile-readline" ,guile-readline)
+ `(;; Guile
+ ("guile" ,guile-2.2)
+ ("guile-lib" ,guile2.2-lib)
+ ("guile-readline" ,guile2.2-readline)
+ ("guile-gcrypt" ,guile2.2-gcrypt)
("gnutls" ,gnutls)
+ ("g-golf" ,g-golf)
("shroud" ,shroud)
("emacsy" ,emacsy-minimal)
+ ;; Gtk
("glib" ,glib)
("dbus-glib" ,dbus-glib)
+ ("glib-networking" ,glib-networking)
("gtk+" ,gtk+)
- ("gtksourceview" ,gtksourceview)
+ ("gtk+:bin" ,gtk+ "bin")
("webkitgtk" ,webkitgtk)
+ ("gtksourceview" ,gtksourceview)
+ ("vte" ,vte)
+ ;; Gstreamer
+ ("gstreamer" ,gstreamer)
+ ("gst-plugins-base" ,gst-plugins-base)
+ ("gst-plugins-good" ,gst-plugins-good)
+ ("gst-plugins-bad" ,gst-plugins-bad)
+ ("gst-plugins-ugly" ,gst-plugins-ugly)
+ ;; Util
("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)
#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)
+ (let* ((out (assoc-ref outputs "out"))
+ (effective (read-line (open-pipe*
+ OPEN_READ
+ "guile" "-c"
+ "(display (effective-version))")))
+ (gst-plugins (map (lambda (i)
+ (string-append (assoc-ref inputs i)
+ "/lib/gstreamer-1.0"))
+ `("gstreamer"
+ "gst-plugins-base"
+ "gst-plugins-good"
+ "gst-plugins-bad"
+ "gst-plugins-ugly")))
+ (out-append (lambda (. args)
+ (apply string-append out args)))
+ (gi-path (out-append "/lib/girepository-1.0"))
+ (load-path (out-append "/share/guile/site/" effective))
+ (comp-path (out-append "/lib/guile/"
+ effective "/site-ccache"))
+ (ext-path (out-append "/libexec/nomad")))
+ (wrap-program (string-append out "/bin/nomad")
+ `("GUILE_LOAD_PATH" ":" prefix
+ (,load-path
+ ,(getenv "GUILE_LOAD_PATH")))
+ `("GUILE_LOAD_COMPILED_PATH" ":" prefix
+ (,comp-path
+ ,(getenv "GUILE_LOAD_COMPILED_PATH")))
+ `("GI_TYPELIB_PATH" ":" prefix
+ (,gi-path ,(getenv "GI_TYPELIB_PATH")))
+ `("GIO_EXTRA_MODULES" ":" prefix
+ (,(getenv "GIO_EXTRA_MODULES")))
+ `("GST_PLUGIN_SYSTEM_PATH" ":" prefix ,gst-plugins)
+ `("NOMAD_WEB_EXTENSION_DIR" ":" prefix (,ext-path)))
#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.")
+ (description "Nomad is a Emacs-like web browser that consists of a modular
+feature-set, fully programmable in Guile Scheme.")
(license license:gpl3+)))
(define-public guile-cv
(source (origin
(method git-fetch)
(uri (git-reference
- (url "https://github.com/lloda/guile-ffi-fftw.git")
+ (url "https://github.com/lloda/guile-ffi-fftw")
(commit commit)))
(file-name (git-file-name "guile-ffi-fftw" version))
(sha256
(file-name (git-file-name name version))
(sha256
(base32
- "1s9n3hbxd7lfpdi0x8wr0cfvlsf6g62ird9gbspxdrp5p05rbi64"))))
+ "1s9n3hbxd7lfpdi0x8wr0cfvlsf6g62ird9gbspxdrp5p05rbi64"))
+ (modules '((guix build utils)))
+ (snippet
+ '(begin
+ ;; Allow builds with Guile 3.0.
+ (substitute* "configure.ac"
+ (("2\\.2 2\\.0")
+ "3.0 2.2 2.0"))
+ #t))))
(build-system gnu-build-system)
(native-inputs
`(("autoconf" ,autoconf)
("pkg-config" ,pkg-config)
("texinfo" ,texinfo)))
(inputs
- `(("guile" ,guile-2.2)))
+ `(("guile" ,guile-3.0)))
(propagated-inputs
`(("guile-irregex" ,guile-irregex)
("guile-gcrypt" ,guile-gcrypt)))
as signed sessions, multipart message support, etc.")
(license license:gpl3+))))
+(define-public guile2.2-webutils
+ (package
+ (inherit guile-webutils)
+ (name "guile2.2-webutils")
+ (inputs
+ `(("guile" ,guile-2.2)))
+ (propagated-inputs
+ `(("guile-irregex" ,guile2.2-irregex)
+ ("guile-gcrypt" ,guile2.2-gcrypt)))))
+
(define-public guile-lens
(let ((commit "14b15d07255f9d3f55d40a3b750d13c9ee3a154f")
(revision "0"))
(native-inputs
`(("autoconf" ,autoconf)
("automake" ,automake)
- ("guile" ,guile-2.2)
+ ("guile" ,guile-3.0)
("guile-hall" ,guile-hall)
("pkg-config" ,pkg-config)
("texinfo" ,texinfo)))
over, or update a value in arbitrary data structures.")
(license license:gpl3+))))
+(define-public guile2.2-lens
+ (package
+ (inherit guile-lens)
+ (name "guile2.2-lens")
+ (native-inputs
+ `(("guile" ,guile-2.2)
+ ,@(alist-delete "guile" (package-native-inputs guile-lens))))))
+
(define-public guile-xapian
(package
(name "guile-xapian")
(source (origin
(method git-fetch)
(uri (git-reference
- (url "https://github.com/rekado/guile-irc.git")
+ (url "https://github.com/rekado/guile-irc")
(commit commit)))
(file-name (git-file-name name version))
(sha256
("texinfo" ,texinfo)))
(inputs
`(("gnutls" ,gnutls)
- ("guile" ,guile-2.2)))
+ ("guile" ,guile-3.0)))
(home-page "https://github.com/rekado/guile-irc")
(synopsis "IRC library for Guile")
(description "This package provides a Guile library for @dfn{Internet
(define-public guile3.0-websocket
(deprecated-package "guile3.0-websocket" guile-websocket))
+
+(define-public guile-rdf
+ (package
+ (name "guile-rdf")
+ (version "1.0")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://framagit.org/tyreunom/guile-rdf")
+ (commit version)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "0dwn3app1fscbpmpgvjs5jy1y0gwy3j5gdx8br79af6a88zjlnqf"))))
+ (build-system gnu-build-system)
+ (arguments
+ `(#:tests? #f)); tests require network
+ (inputs
+ `(("guile" ,guile-3.0)))
+ (native-inputs
+ `(("automake" ,automake)
+ ("autoconf" ,autoconf)
+ ("pkg-config" ,pkg-config)
+ ("texinfo" ,texinfo)))
+ (home-page "https://framagit.org/tyreunom/guile-rdf")
+ (synopsis "Guile implementation of the RDF abstract and concrete syntaxes")
+ (description "Guile RDF is an implementation of the RDF (Resource Description
+Framework) format defined by the W3C for GNU Guile. RDF structures include
+triples (facts with a subject, a predicate and an object), graphs which are
+sets of triples, and datasets, which are collections of graphs.
+
+RDF specifications include the specification of concrete syntaxes and of
+operations on graphs. This library implements some basic functionalities,
+such as parsing and producing turtle and nquads syntax, as well as
+manipulating graphs and datasets.")
+ (license license:gpl3+)))
+
+(define-public guile-jsonld
+ (package
+ (name "guile-jsonld")
+ (version "1.0.1")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://framagit.org/tyreunom/guile-jsonld")
+ (commit version)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "0zfn3nwlz6xzip1j8xbj768dc299r037cfc81bk6kwl9xhzkjbrg"))))
+ (build-system gnu-build-system)
+ (arguments
+ `(#:tests? #f)); require network
+ (propagated-inputs
+ `(("guile-gnutls" ,gnutls)
+ ("guile-json" ,guile-json-3)
+ ("guile-rdf" ,guile-rdf)))
+ (inputs
+ `(("guile" ,guile-3.0)))
+ (native-inputs
+ `(("automake" ,automake)
+ ("autoconf" ,autoconf)
+ ("pkg-config" ,pkg-config)
+ ("texinfo" ,texinfo)))
+ (home-page "https://framagit.org/tyreunom/guile-jsonld")
+ (synopsis "Guile implementation of the JsonLD API specification")
+ (description "Guile JsonLD is an implementation of the JsonLD (Json for
+Linked Data) API defined by the W3C for GNU Guile. It allows you to express links
+between data, in a way that is very similar to WikiData or RDF for instance.
+An object can have relations (in the form of an IRI) that relates it to one or
+more objects or strings, represented by a Json object or an IRI.")
+ (license license:gpl3+)))
+
+(define-public guile-struct-pack
+ (package
+ (name "guile-struct-pack")
+ (version "1.1.1")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/weinholt/struct-pack")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "0hd72m821pahjphzyjn26i55542v8makr55xzjll2cycja4wsbc1"))))
+ (build-system guile-build-system)
+ (arguments
+ `(#:compile-flags '("--r6rs" "-Wunbound-variable" "-Warity-mismatch")
+ #:modules ((guix build guile-build-system)
+ (guix build utils)
+ (srfi srfi-26)
+ (ice-9 ftw))
+ #:phases (modify-phases %standard-phases
+ (add-before 'build 'move-sls-files
+ (lambda _
+ ;; Move files under a struct/ directory to reflect the
+ ;; module hierarchy.
+ (define dst-folder "struct")
+ (define (target file)
+ (string-append dst-folder "/" file))
+ (define files
+ (scandir "." (negate (cut member <> '("." "..")))))
+ (mkdir dst-folder)
+ (for-each (lambda (file)
+ (rename-file file (target file)))
+ files)
+ #t)))))
+ (native-inputs
+ `(("guile" ,guile-3.0)))
+ (home-page "https://github.com/weinholt/struct-pack")
+ (synopsis "R6RS library for working with packed byte structures")
+ (description
+ "This is an R6RS library for working with packed byte structures. It is
+similar to struct in Python or pack and unpack in Perl.")
+ (license license:expat)))
+
+(define-public guile-machine-code
+ (package
+ (name "guile-machine-code")
+ (version "2.1.0")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/weinholt/machine-code")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "0wzj3caj2jypzyjqfkfqkvr3kkbjabsnhldv9kvnx9w9qnria5yd"))))
+ (build-system guile-build-system)
+ (arguments
+ `(#:compile-flags '("--r6rs" "-Wunbound-variable" "-Warity-mismatch")
+ #:modules ((guix build guile-build-system)
+ (guix build utils)
+ (srfi srfi-26)
+ (ice-9 ftw))
+ #:phases (modify-phases %standard-phases
+ (add-before 'build 'move-sls-files
+ (lambda _
+ ;; Move files under a struct/ directory to reflect the
+ ;; module hierarchy.
+ (define dst-folder "machine-code")
+ (define (target file)
+ (string-append dst-folder "/" file))
+ (define files
+ (scandir "." (negate (cut member <> '("." "..")))))
+ (mkdir dst-folder)
+ (for-each (lambda (file)
+ (rename-file file (target file)))
+ files)
+ #t)))))
+ (native-inputs
+ `(("guile" ,guile-3.0)))
+ (propagated-inputs
+ `(("guile-struct-pack" ,guile-struct-pack)))
+ (home-page "https://github.com/weinholt/machine-code")
+ (synopsis "Tools that relate to machine code and object formats")
+ (description
+ "This project is about the development of tools that relate to machine
+code and object formats; for all architectures. Here you'll find libraries
+for working with binary code: assembly, disassembly, instruction tables,
+object formats and related areas.")
+ (license license:expat)))
+
+(define-public guile-laesare
+ (package
+ (name "guile-laesare")
+ (version "1.0.0")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/weinholt/laesare")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "15q619gzw717r8r1ql23zfdaibpnp9qqs96032vdc3rj74msxc92"))))
+ (build-system guile-build-system)
+ (arguments
+ `(#:compile-flags '("--r6rs" "-Wunbound-variable" "-Warity-mismatch")
+ #:modules ((guix build guile-build-system)
+ (guix build utils)
+ (srfi srfi-26)
+ (ice-9 ftw))
+ #:phases (modify-phases %standard-phases
+ (add-before 'build 'move-sls-files
+ (lambda _
+ ;; Move files under a laesare directory to reflect
+ ;; the module hierarchy.
+ (define dst-folder "laesare")
+ (define (target file)
+ (string-append dst-folder "/" file))
+ (define files
+ (scandir "." (negate (cut member <> '("." "..")))))
+ (mkdir dst-folder)
+ (for-each (lambda (file)
+ (rename-file file (target file)))
+ files)
+ #t)))))
+ (native-inputs
+ `(("guile" ,guile-3.0)))
+ (home-page "https://github.com/weinholt/laesare")
+ (synopsis "R6RS Scheme library that provides a reader")
+ (description
+ "This is an R6RS Scheme library that provides a reader with some extra
+features not found in the standard read procedure such as a compatible mode
+with support for other RnRS standards and a tolerant mode that continues on
+errors.")
+ (license license:expat)))