summary refs log tree commit diff
path: root/gnu
diff options
context:
space:
mode:
Diffstat (limited to 'gnu')
-rw-r--r--gnu/local.mk1
-rw-r--r--gnu/packages/algebra.scm4
-rw-r--r--gnu/packages/curl.scm37
-rw-r--r--gnu/packages/dezyne.scm2
-rw-r--r--gnu/packages/education.scm4
-rw-r--r--gnu/packages/emacs-xyz.scm125
-rw-r--r--gnu/packages/games.scm86
-rw-r--r--gnu/packages/lisp-xyz.scm13
-rw-r--r--gnu/packages/music.scm33
-rw-r--r--gnu/packages/package-management.scm6
-rw-r--r--gnu/packages/patches/dezyne-add-missing-shebangs.patch61
-rw-r--r--gnu/packages/purescript.scm4
-rw-r--r--gnu/packages/python-check.scm33
-rw-r--r--gnu/packages/python-xyz.scm31
-rw-r--r--gnu/packages/search.scm5
-rw-r--r--gnu/packages/ssh.scm4
-rw-r--r--gnu/packages/terminals.scm5
-rw-r--r--gnu/packages/tex.scm31
-rw-r--r--gnu/packages/web-browsers.scm4
19 files changed, 375 insertions, 114 deletions
diff --git a/gnu/local.mk b/gnu/local.mk
index 374b0aa359..66dd240ba9 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -1041,6 +1041,7 @@ dist_patch_DATA =						\
   %D%/packages/patches/dee-vapi.patch			\
   %D%/packages/patches/desmume-gcc6-fixes.patch			\
   %D%/packages/patches/desmume-gcc7-fixes.patch			\
+  %D%/packages/patches/dezyne-add-missing-shebangs.patch	\
   %D%/packages/patches/dfu-programmer-fix-libusb.patch		\
   %D%/packages/patches/diffutils-fix-signal-processing.patch	\
   %D%/packages/patches/dkimproxy-add-ipv6-support.patch		\
diff --git a/gnu/packages/algebra.scm b/gnu/packages/algebra.scm
index e070af956d..fb0943a11f 100644
--- a/gnu/packages/algebra.scm
+++ b/gnu/packages/algebra.scm
@@ -329,7 +329,7 @@ precision.")
 (define-public giac
   (package
     (name "giac")
-    (version "1.9.0-43")
+    (version "1.9.0-45")
     (source
      (origin
        (method url-fetch)
@@ -341,7 +341,7 @@ precision.")
                            "~parisse/debian/dists/stable/main/source/"
                            "giac_" version ".tar.gz"))
        (sha256
-        (base32 "1fqs9nxjj0kimisfsfhscgzfmc470lyzm63hwla7ka2iqq3s7bp3"))))
+        (base32 "0yxsl1vvwcbpwcmzp9v9rfm9djmapab0nhb3gs7zmjv5yvzbgj4d"))))
     (build-system gnu-build-system)
     (arguments
      (list
diff --git a/gnu/packages/curl.scm b/gnu/packages/curl.scm
index 74a3132f00..b55e560a1a 100644
--- a/gnu/packages/curl.scm
+++ b/gnu/packages/curl.scm
@@ -14,6 +14,7 @@
 ;;; Copyright © 2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
 ;;; Copyright © 2021 Jean-Baptiste Volatier <jbv@pm.me>
 ;;; Copyright © 2021 Felix Gruber <felgru@posteo.net>
+;;; Copyright © 2023 Sharlatan Hellseher <sharlatanus@gmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -381,3 +382,39 @@ curl, curlie is what you are searching for.  Curlie is a frontend to
 on features and performance.  All @code{curl} options are exposed with syntax
 sugar and output formatting inspired from @code{httpie}.")
     (license license:expat)))
+
+(define-public trurl
+  (package
+    (name "trurl")
+    (version "0.5")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/curl/trurl")
+             (commit (string-append name "-" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "1mvkpjs6wnz5hzmp2iglik85zljrzglsa6fm839l78fhw89dg3w6"))))
+    (build-system gnu-build-system)
+    (arguments
+     (list
+      #:test-target "test"
+      #:make-flags #~(list (string-append "CC=" #$(cc-for-target))
+                           (string-append "PREFIX=" #$output))
+      #:phases
+      #~(modify-phases %standard-phases
+          (delete 'configure))))
+    (native-inputs (list python))
+    ;; Tests failed on older curl version
+    ;; (see https://github.com/curl/trurl/pull/165)
+    (inputs (list curl-7.84.0))
+    (home-page "https://curl.se/trurl/")
+    (synopsis "Command line tool for URL parsing and manipulatio")
+    (description "@code{trurl} is a tool in a similar spirit of @code{tr} but
+for URLs.  Here, @code{tr} stands for translate or transpose.
+
+@code{trurl} is a command line tool that parses and manipulates URLs, designed
+to help shell script authors everywhere.")
+   (license (license:non-copyleft "file://COPYING"
+                                  "See COPYING in the distribution."))))
diff --git a/gnu/packages/dezyne.scm b/gnu/packages/dezyne.scm
index 303c3f0436..c13374069f 100644
--- a/gnu/packages/dezyne.scm
+++ b/gnu/packages/dezyne.scm
@@ -22,6 +22,7 @@
   #:use-module ((guix licenses) #:prefix license:)
   #:use-module (guix gexp)
   #:use-module (guix packages)
+  #:use-module (gnu packages)
   #:use-module (gnu packages base)
   #:use-module (gnu packages bash)
   #:use-module (gnu packages guile)
@@ -37,6 +38,7 @@
        (method url-fetch)
        (uri (string-append "https://dezyne.org/download/dezyne/"
                            name "-" version ".tar.gz"))
+       (patches (search-patches "dezyne-add-missing-shebangs.patch"))
        (sha256
         (base32 "1v0anwr0iic26ck796b29dfyj1dxkjf935g134z98s95hvzzrhm3"))))
     (inputs (list bash-minimal
diff --git a/gnu/packages/education.scm b/gnu/packages/education.scm
index 60aced1be4..acd1297a72 100644
--- a/gnu/packages/education.scm
+++ b/gnu/packages/education.scm
@@ -582,7 +582,7 @@ a pen-tablet display and a beamer.")
 (define-public fet
   (package
     (name "fet")
-    (version "6.8.7")
+    (version "6.9.0")
     (source
      (origin
        (method url-fetch)
@@ -591,7 +591,7 @@ a pen-tablet display and a beamer.")
               (list (string-append directory base)
                     (string-append directory "old/" base))))
        (sha256
-        (base32 "0wcl2scgqf1vj0zy5an7hhhmsl5j1y605fcz0d7ylbzw5ixnbf1m"))))
+        (base32 "1lnw58ga1ldhqfznclmk9l21698pg152w3slq2cwmr69ywqr5wys"))))
     (build-system gnu-build-system)
     (arguments
      (list
diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm
index da81720312..7c8af093fc 100644
--- a/gnu/packages/emacs-xyz.scm
+++ b/gnu/packages/emacs-xyz.scm
@@ -3715,14 +3715,14 @@ as a library for other Emacs packages.")
 (define-public emacs-auctex
   (package
     (name "emacs-auctex")
-    (version "13.1.10")
+    (version "13.2.0")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "https://elpa.gnu.org/packages/"
                            "auctex-" version ".tar"))
        (sha256
-        (base32 "0vxf3aw7j73d0cbfh8d5fp5gyi7vxq9vb7fqxmxxs24pvdnlym15"))))
+        (base32 "1jk05cca7lrwykj3by4s7c198bffam0mga7hgwmcz5bgxl79ijvf"))))
     (build-system emacs-build-system)
     ;; We use 'emacs' because AUCTeX requires dbus at compile time
     ;; ('emacs-minimal' does not provide dbus).
@@ -17700,14 +17700,14 @@ the center of the screen and not at the bottom.")
 (define-public emacs-posframe
   (package
     (name "emacs-posframe")
-    (version "1.4.1")
+    (version "1.4.2")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "https://elpa.gnu.org/packages/"
                            "posframe-" version ".tar"))
        (sha256
-        (base32 "02kw3d6760015q61sryw8k3zqdnzhcwwyfjfysbfs07cljkqpjnh"))))
+        (base32 "0ca43wgbr0n5ri7cyxjmn7blq59xq43rx9z9q02a2j4yn05w8nss"))))
     (build-system emacs-build-system)
     ;; emacs-minimal does not include the function font-info.
     (arguments
@@ -20964,50 +20964,50 @@ close, copy, cut, paste, undo, redo.")
     (license license:gpl3+)))
 
 (define-public emacs-password-store
-  (let ((commit "918992c19231b33b3d4a3288a7288a620e608cb4")
-        (revision "1"))
-    (package
-      (name "emacs-password-store")
-      ;; The emacs package version does not match the password-store version,
-      ;; even though it is part of the same repository.  When updating, look
-      ;; at the version declared in password-store.el.
-      (version (git-version "2.1.4" revision commit))
-      (source (origin
-                (method git-fetch)
-                (uri (git-reference
-                      (url "git://git.zx2c4.com/password-store")
-                      (commit commit)))
-                (file-name (git-file-name name version))
-                (sha256
-                 (base32
-                  "0ni62f4pq96g0i0q66bch1dl9k4zqwhg7xaf746k3gbbqxcdh3vi"))))
-      (build-system emacs-build-system)
-      (arguments
-       (list #:phases
-             #~(modify-phases %standard-phases
-                 (add-after 'unpack 'extract-el-file
-                   (lambda _
-                     (copy-file "contrib/emacs/password-store.el"
-                                "password-store.el")
-                     (delete-file-recursively "contrib")
-                     (delete-file-recursively "man")
-                     (delete-file-recursively "src")
-                     (delete-file-recursively "tests")))
-                 (add-after 'extract-el-file 'patch-executables
-                   (lambda* (#:key inputs #:allow-other-keys)
-                     (emacs-substitute-variables "password-store.el"
-                       ("password-store-executable"
-                        (search-input-file inputs "/bin/pass"))))))))
-      (inputs
-       (list password-store))
-      (propagated-inputs
-       (list emacs-auth-source-pass emacs-s emacs-with-editor))
-      (home-page "https://git.zx2c4.com/password-store/tree/contrib/emacs")
-      (synopsis "Password store (pass) support for Emacs")
-      (description
-       "This package provides functions for working with pass (\"the
-standard Unix password manager\").")
-      (license license:gpl3+))))
+  (package
+    (name "emacs-password-store")
+    ;; The emacs package version does not match the password-store version,
+    ;; even though it is part of the same repository.  When updating, look at
+    ;; the version declared in password-store.el.
+    (version "2.3.0")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "git://git.zx2c4.com/password-store")
+             (commit "26d2dae04bb76a87be6960861c10432820cd5d55")))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32
+         "1pkx6pgkkpddxrshzq3x8ilfwqjw9gawnbbskcbssxc88wrpbcjb"))))
+    (build-system emacs-build-system)
+    (arguments
+     (list
+      #:phases
+      #~(modify-phases %standard-phases
+          (add-after 'unpack 'extract-el-file
+            (lambda _
+              (copy-file "contrib/emacs/password-store.el"
+                         "password-store.el")
+              (delete-file-recursively "contrib")
+              (delete-file-recursively "man")
+              (delete-file-recursively "src")
+              (delete-file-recursively "tests")))
+          (add-after 'extract-el-file 'patch-executables
+            (lambda* (#:key inputs #:allow-other-keys)
+              (emacs-substitute-variables "password-store.el"
+                ("password-store-executable"
+                 (search-input-file inputs "/bin/pass"))))))))
+    (inputs
+     (list password-store))
+    (propagated-inputs
+     (list emacs-s emacs-with-editor))
+    (home-page "https://git.zx2c4.com/password-store/tree/contrib/emacs")
+    (synopsis "Password store (pass) support for Emacs")
+    (description
+     "This package provides functions for working with pass (\"the
+    standard Unix password manager\").")
+    (license license:gpl3+)))
 
 (define-public emacs-password-store-otp
   (package
@@ -24950,7 +24950,7 @@ appropriate directory if no @code{eshell} session is active.")
 (define-public emacs-eshell-syntax-highlighting
   (package
     (name "emacs-eshell-syntax-highlighting")
-    (version "0.4")
+    (version "0.5")
     (source
      (origin
        (method git-fetch)
@@ -24959,7 +24959,7 @@ appropriate directory if no @code{eshell} session is active.")
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "1ib46fs70grx7rmw45i817v1dyvcj0b8xdmndvaz7papiimf6vrj"))))
+        (base32 "1la604vdj56s934j16yz8rlvzhd69433rrbgfyw9c7njxqldwcs7"))))
     (build-system emacs-build-system)
     (home-page "https://github.com/akreisher/eshell-syntax-highlighting")
     (synopsis "Add syntax highlighting to Eshell")
@@ -35141,6 +35141,31 @@ the TypeScript implementation.")
 service.")
       (license license:expat))))
 
+(define-public emacs-xonsh-mode
+  ;; There is no tagged release yet.
+  (let ((commit "7fa581524533a9b6b770426e4445e571a69e469d")
+        (revision "0"))
+    (package
+      (name "emacs-xonsh-mode")
+      (version (git-version "0" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/seanfarley/xonsh-mode")
+               (commit commit)))
+         (sha256
+          (base32 "0lfi2372clkkzi4a940fwparsfhxxzb7bmysfd50n1myakgldri5"))))
+      (build-system emacs-build-system)
+      (home-page "https://github.com/seanfarley/xonsh-mode")
+      (synopsis "Emacs major mode for editing Xonsh files")
+      (description
+       "This package implements a major mode for Xonsh scripts.  The basic
+functionality includes syntax highlight for Xonsh operators.  Files with the
+@file{.xonshrc} or @file{.xsh} extension are automatically opened with this
+mode.")
+      (license license:gpl3+))))
+
 (define-public emacs-monokai-theme
   (package
     (name "emacs-monokai-theme")
diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm
index 62ee0050fa..6f4900a6fc 100644
--- a/gnu/packages/games.scm
+++ b/gnu/packages/games.scm
@@ -1152,6 +1152,83 @@ cows can think too: all you have to do is run @command{cowthink}.  If you're
 tired of cows, a variety of other ASCII-art messengers are available.")
     (license license:gpl3+)))
 
+(define-public deal
+  (package
+    (name "deal")
+    (version "3.1.11")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/gtwilliams/deal")
+                    (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "1wcrx3yq5ycnkdnygcq80ljpgc9iwyrr8zayprzvbibvj77hdm0c"))))
+    (build-system gnu-build-system)
+    (arguments
+     (list
+      #:test-target "test"
+      #:make-flags
+      #~(let* ((tcl #$(this-package-input "tcl"))
+               (tcl-version #$(version-major+minor (package-version tcl))))
+          (list "CPPFLAGS += -O3"
+                (string-append "CC=" #$(cc-for-target))
+                (string-append "TCL_INCL=" tcl "/include")
+                (string-append "LDFLAGS=-L" tcl "/lib"
+                               " -ltcl" tcl-version
+                               " -lm")
+                (string-append "DATA_DIR=" #$output "/share/deal/")))
+      #:phases
+      #~(modify-phases %standard-phases
+          (add-after 'unpack 'locate-pod2man
+            (lambda* (#:key inputs #:allow-other-keys)
+              (substitute* "Makefile"
+                (("/usr/bin/pod2man")
+                 (search-input-file inputs "/bin/pod2man")))))
+          (delete 'configure)           ;no configure script
+          ;; Prevent the error: "Makefile:248: Make.dep: No such file
+          ;; or directory".
+          (add-before 'build 'create-Make.dep
+            (lambda _
+              (call-with-output-file "Make.dep" (const #t))))
+          ;; There is no install target.  Do everything manually.
+          (replace 'install
+            (lambda _
+              (let ((bin (string-append #$output "/bin"))
+                    (man (string-append #$output "/share/man/man6"))
+                    (data (string-append #$output "/share/deal")))
+                (install-file "deal" bin)
+                (install-file "deal.6" man)
+                (install-file "deal.tcl" data)
+                (for-each (lambda (d)
+                            (let ((target (string-append data "/" d)))
+                              (mkdir-p target)
+                              (copy-recursively d target)))
+                          '("ex" "format" "input" "lib")))))
+          ;; Tests need to happen once the data is properly installed
+          ;; because the "deal.tcl" script file location is hard-coded
+          ;; in the "deal" binary.
+          (delete 'check)
+          (add-after 'install 'check
+            (assoc-ref %standard-phases 'check)))))
+    (native-inputs
+     (list perl))
+    (inputs
+     (list tcl))
+    (home-page "https://bridge.thomasoandrews.com/deal/")
+    (synopsis "Bridge hand generator")
+    (description
+     "This program generates bridge hands.  It can be told to generate only
+hands satisfying conditions like being balanced, having a range of
+High Cards Points (HCP), controls, or other user-definable properties.
+Hands can be output in various formats, like PBN for feeding to other
+bridge programs, Deal itself, or split up into a file per player for
+practise.")
+    (license (list license:gpl2+
+                   license:gpl1+        ;ansidecl.h
+                   license:bsd-3))))    ;random.c
+
 (define-public falltergeist
   (package
     (name "falltergeist")
@@ -1167,7 +1244,7 @@ tired of cows, a variety of other ASCII-art messengers are available.")
                 "05cg58i2g32wbmrvmdsicic8xs83gld3qr1p7r4lnlckcl1l7dy4"))))
     (build-system cmake-build-system)
     (arguments
-     `(#:tests? #f)) ; no tests provided
+     `(#:tests? #f))                    ; no tests provided
     (native-inputs (list pkg-config))
     (inputs `(("sdl" ,(sdl-union (list sdl2
                                        sdl2-image
@@ -1993,7 +2070,7 @@ watch your CPU playing while enjoying a cup of tea!")
 (define-public nethack
   (package
     (name "nethack")
-    (version "3.6.6")
+    (version "3.6.7")
     (source
       (origin
         (method url-fetch)
@@ -2001,7 +2078,7 @@ watch your CPU playing while enjoying a cup of tea!")
          (string-append "https://www.nethack.org/download/" version "/nethack-"
                         (string-join (string-split version #\.) "") "-src.tgz"))
         (sha256
-          (base32 "1liyckjp34j354qnxc1zn9730lh1p2dabrg1hap24z6xnqx0rpng"))))
+          (base32 "1cmc596x8maixi2bkx9kblp3daxw156ahnklc656dygbdpgngkwq"))))
     (native-inputs
       (list bison flex))
     (inputs
@@ -8646,7 +8723,8 @@ and cooperative.")
        ;; missing from command line".
        #:configure-flags (list "-DCMAKE_EXE_LINKER_FLAGS=-lm")))
     (native-inputs
-     `(("gettext" ,gettext-minimal)))
+     `(("gcc-7" ,gcc-7)
+       ("gettext" ,gettext-minimal)))
     (inputs
      `(("sdl" ,(sdl-union (list sdl sdl-image sdl-net sdl-ttf)))))
     (home-page "https://slime.tuxfamily.org/")
diff --git a/gnu/packages/lisp-xyz.scm b/gnu/packages/lisp-xyz.scm
index aa7a73b7cf..ec42f7facb 100644
--- a/gnu/packages/lisp-xyz.scm
+++ b/gnu/packages/lisp-xyz.scm
@@ -9769,8 +9769,8 @@ implementation specific equivalent.")
   (sbcl-package->ecl-package sbcl-trivial-macroexpand-all))
 
 (define-public sbcl-serapeum
-  (let ((commit "fbfd2a219fb22c70c1c5b86910c5106fd0f9b447")
-        (revision "8"))
+  (let ((commit "ce6c3b320cde38767caea2b86afa87ff280b9c11")
+        (revision "9"))
     (package
       (name "sbcl-serapeum")
       (version (git-version "0.0.0" revision commit))
@@ -9783,7 +9783,7 @@ implementation specific equivalent.")
                (commit commit)))
          (file-name (git-file-name name version))
          (sha256
-          (base32 "0gz70hwlsyawmm7j85yjg449hpy57w5jdd7rkal6lhmmfnl0nsbp"))))
+          (base32 "0vpxgvxniyn12wkhmav2iq4x4bj12hjrsf2ajwcapp0sh06qg1j9"))))
       (build-system asdf-build-system/sbcl)
       (inputs
        (list sbcl-alexandria
@@ -26307,7 +26307,7 @@ instead of #'FOO.
 (define-public sbcl-njson
   (package
     (name "sbcl-njson")
-    (version "0.2.3")
+    (version "1.0.0")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -26316,12 +26316,12 @@ instead of #'FOO.
               (file-name (git-file-name "cl-njson" version))
               (sha256
                (base32
-                "11s6qq719zlrpy0kb1id9qnrm73yrc3xi560k4s8cj79fy4nj0ib"))))
+                "1apwccrvivrq57rlrw6vffrn3a5hikk10s0dndszjw5ri29b3qyd"))))
     (build-system asdf-build-system/sbcl)
     (inputs (list sbcl-cl-json))
     (native-inputs (list sbcl-lisp-unit2))
     (arguments
-     '(#:asd-systems '("njson" "njson/aliases" "njson/cl-json")))
+     '(#:asd-systems '("njson" "njson/cl-json")))
     (home-page "https://github.com/atlas-engineer/njson")
     (synopsis "JSON handling framework for Common Lisp")
     (description
@@ -26333,7 +26333,6 @@ loadable as additional system.  @code{cl-json} is included by default, though.
 Conveniences that NJSON provides are:
 
 @itemize
-
 @item @code{encode} and @code{decode} as single entry points for JSON reading
 and writing, be it from streams/string/files, or from those.
 
diff --git a/gnu/packages/music.scm b/gnu/packages/music.scm
index 7372e5db48..446580dc52 100644
--- a/gnu/packages/music.scm
+++ b/gnu/packages/music.scm
@@ -53,6 +53,7 @@
 ;;; Copyright © 2023 Jonathan Brielmaier <jonathan.brielmaier@web.de>
 ;;; Copyright © 2023 Antero Mejr <antero@mailbox.org>
 ;;; Copyright © 2023 Sharlatan Hellseher <sharlatanus@gmail.com>
+;;; Copyright © 2023 Yovan Naumovski <yovan@gorski.stream>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -205,14 +206,14 @@
 (define-public audacious
   (package
     (name "audacious")
-    (version "4.2")
+    (version "4.3")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "https://distfiles.audacious-media-player.org/"
                            "audacious-" version ".tar.bz2"))
        (sha256
-        (base32 "1cq4brifp992dhg0sbf180jjdv137g5wk8ac7hmzx0d4f3j09czy"))))
+        (base32 "14chrsh1dacw5r2qpzw0rhg2lchpbya90y96r6w0vry78p44sn17"))))
     (build-system gnu-build-system)
     (arguments
      `(#:configure-flags
@@ -256,7 +257,7 @@
            (uri (string-append "https://distfiles.audacious-media-player.org/"
                                "audacious-plugins-" version ".tar.bz2"))
            (sha256
-            (base32 "0zs1k91z272ql49qr7kxlxb0lajamc9ra41pgj3ynh8h7afgd83g"))))
+            (base32 "1ilzz2fv0mirlfhzhrcbccv996slj65z1ifibzrx0w5xqk4gcbk6"))))
        ("gettext" ,gettext-minimal)
        ("glib:bin" ,glib "bin")         ; for gdbus-codegen
        ("pkg-config" ,pkg-config)))
@@ -290,6 +291,7 @@
            mesa
            mpg123
            neon
+           opusfile
            pulseaudio
            sdl2
            soxr
@@ -4139,7 +4141,7 @@ modes available for improved Amiga ProTracker 2/3 compatibility.")
 (define-public schismtracker
   (package
     (name "schismtracker")
-    (version "20190805")
+    (version "20221201")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -4148,26 +4150,27 @@ modes available for improved Amiga ProTracker 2/3 compatibility.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "0qqps20vvn3rgpg8174bjrrm38gqcci2z5z4c1r1vhbccclahgsd"))
+                "11yy5zrdfvnwzwdwmc3s3lx1ymwiyp1si5mmv4h9qxipd9j96ijp"))
               (modules '((guix build utils)))
               (snippet
                ;; Remove use of __DATE__ and __TIME__ for reproducibility.
-               `(begin
-                  (substitute* "schism/version.c"
-                    (("Schism Tracker built %s %s.*$")
-                     (string-append "Schism Tracker version " ,version "\") ;")))
-              #t))))
+               #~(substitute* "schism/version.c"
+                   (("Schism Tracker built %s %s.*$")
+                    (string-append
+                     "Schism Tracker version " #$version "\") ;"))))))
     (build-system gnu-build-system)
     (arguments
-     `(#:phases
-       (modify-phases %standard-phases
-         (add-before 'configure 'link-libm
-           (lambda _ (setenv "LIBS" "-lm") #t)))))
+     (list #:configure-flags #~(list "--with-flac=yes" "--with-x11=no")
+           #:phases #~(modify-phases %standard-phases
+                        (add-before 'configure 'link-libm
+                          (lambda _
+                            (setenv "LIBS" "-lm"))))))
     (native-inputs
      (list autoconf automake python))
     (inputs
      (list alsa-lib ; for asound dependency
-           libx11 libxext sdl))
+           flac
+           sdl2))
     (home-page "https://schismtracker.org")
     (synopsis "Oldschool sample-based music composition tool")
     (description
diff --git a/gnu/packages/package-management.scm b/gnu/packages/package-management.scm
index e2f76555ef..2da1313346 100644
--- a/gnu/packages/package-management.scm
+++ b/gnu/packages/package-management.scm
@@ -1377,8 +1377,8 @@ environments.")
                   "0k9zkdyyzir3fvlbcfcqy17k28b51i20rpbjwlx2i1mwd2pw9cxc")))))))
 
 (define-public guix-build-coordinator
-  (let ((commit "2efcd8b11954708f0b2f26ce6eb9d785e2f6aae4")
-        (revision "78"))
+  (let ((commit "6a4e827f304178d3d20c2037b4f1bf62e969ddce")
+        (revision "79"))
     (package
       (name "guix-build-coordinator")
       (version (git-version "0" revision commit))
@@ -1389,7 +1389,7 @@ environments.")
                       (commit commit)))
                 (sha256
                  (base32
-                  "1s7q3bn1cccbafd5b4dk0xn2r5qjabl7rclbwf7hfjj7csv8ag2i"))
+                  "1w4iqmv493rs94dc2h6l3dnhx2513pz1fknzl6a643d2z6bkb7zj"))
                 (file-name (string-append name "-" version "-checkout"))))
       (build-system gnu-build-system)
       (arguments
diff --git a/gnu/packages/patches/dezyne-add-missing-shebangs.patch b/gnu/packages/patches/dezyne-add-missing-shebangs.patch
new file mode 100644
index 0000000000..bf88e95c8a
--- /dev/null
+++ b/gnu/packages/patches/dezyne-add-missing-shebangs.patch
@@ -0,0 +1,61 @@
+Upstream status: Taken from upstream development.
+
+From aace425e41247c1dd6b16eb7eabce50be7310d15 Mon Sep 17 00:00:00 2001
+From: Janneke Nieuwenhuizen <janneke@gnu.org>
+Date: Mon, 24 Apr 2023 16:58:32 +0200
+Subject: [PATCH] DRAFT test: Add missing shebangs to run scripts.
+
+This fixes `make check' on current ci.guix.gnu.org.
+
+* test/all/parse_import_order/run,
+test/all/parse_locations/run,
+test/all/parse_peg_locations/run: Add #! /bin/sh.
+---
+ test/all/parse_import_order/run  | 3 ++-
+ test/all/parse_locations/run     | 3 ++-
+ test/all/parse_peg_locations/run | 3 ++-
+ 3 files changed, 6 insertions(+), 3 deletions(-)
+
+diff --git a/test/all/parse_import_order/run b/test/all/parse_import_order/run
+index 6e231de4f9..c383e4f223 100755
+--- a/test/all/parse_import_order/run
++++ b/test/all/parse_import_order/run
+@@ -1,6 +1,7 @@
++#! /bin/sh
+ # Dezyne --- Dezyne command line tools
+ #
+-# Copyright © 2022 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
++# Copyright © 2022, 2023 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
+ #
+ # This file is part of Dezyne.
+ #
+diff --git a/test/all/parse_locations/run b/test/all/parse_locations/run
+index 0b092b26dd..6c48ee1392 100755
+--- a/test/all/parse_locations/run
++++ b/test/all/parse_locations/run
+@@ -1,7 +1,8 @@
++#! /bin/sh
+ # Dezyne --- Dezyne command line tools
+ #
+ # Copyright © 2021 Paul Hoogendijk <paul@dezyne.org>
+-# Copyright © 2020, 2021 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
++# Copyright © 2020, 2021, 2023 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
+ #
+ # This file is part of Dezyne.
+ #
+diff --git a/test/all/parse_peg_locations/run b/test/all/parse_peg_locations/run
+index 5b5ced0bb4..5206a23db6 100755
+--- a/test/all/parse_peg_locations/run
++++ b/test/all/parse_peg_locations/run
+@@ -1,6 +1,7 @@
++#! /bin/sh
+ # Dezyne --- Dezyne command line tools
+ #
+-# Copyright © 2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
++# Copyright © 2020, 2023 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
+ #
+ # This file is part of Dezyne.
+ #
+-- 
+2.39.2
+
diff --git a/gnu/packages/purescript.scm b/gnu/packages/purescript.scm
index 0a5eccc459..3ae078db75 100644
--- a/gnu/packages/purescript.scm
+++ b/gnu/packages/purescript.scm
@@ -34,13 +34,13 @@
 (define-public purescript
   (package
     (name "purescript")
-    (version "0.15.7")
+    (version "0.15.8")
     (source
      (origin
        (method url-fetch)
        (uri (hackage-uri "purescript" version))
        (sha256
-        (base32 "1krjkgmxpfqf5a1jqs7qbg6r7ball1464zw6vgrdfzl9057c6l4f"))))
+        (base32 "1h5d5hjc9hrlk718lf62qzaq1l6ppr0l2b3fl78csyh86cihh750"))))
     (build-system haskell-build-system)
     (properties '((upstream-name . "purescript")))
     (inputs (list ghc-aeson
diff --git a/gnu/packages/python-check.scm b/gnu/packages/python-check.scm
index 6866c42402..c42cd426b1 100644
--- a/gnu/packages/python-check.scm
+++ b/gnu/packages/python-check.scm
@@ -1090,42 +1090,33 @@ simpler.")
 (define-public python-pytest-trio
   (package
     (name "python-pytest-trio")
-    (version "0.8.0")
+    (version "0.7.0")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "pytest-trio" version))
        (sha256
-        (base32 "0bmmdyjqj5v4a637i4rzm55crv6v3nj268as6x9nr7m76rixnqw3"))))
+        (base32 "0c8cqf9by2884riksrqymqfp2g1d2d798a2zalcw9hmf34c786y0"))))
     (build-system python-build-system)
     (arguments
      `(#:phases
        (modify-phases %standard-phases
-         (add-after 'unpack 'relax-requirements
-           (lambda _
-             (substitute* "setup.py"
-               (("pytest >= 7.2.0")
-                "pytest"))))
          (replace 'check
            (lambda* (#:key tests? inputs outputs #:allow-other-keys)
              (when tests?
-               (invoke
-                "pytest" "-W" "error" "-ra" "-v" "--pyargs"
-                "pytest_trio" "--verbose" "--cov" "-k"
-                (string-append
-                 ;; These tests require network.
-                 "not test_async_yield_fixture_with_nursery "
-                 "and not test_try "
-                 ;; No keyboard interrupt in our build environment.
-                 "and not test_actual_test "
-                 ;; These tests fail due to unclean teardown (see:
-                 ;; https://github.com/python-trio/pytest-trio/issues/122).
-                 "and not crashed_teardown "
-                 "and not test_error_collection "))))))))
+               (add-installed-pythonpath inputs outputs)
+               (invoke "pytest" "-W" "error" "-ra" "-v" "--pyargs"
+                       "pytest_trio" "--verbose" "--cov" "-k"
+                       (string-append
+                         ;; Needs network
+                         "not test_async_yield_fixture_with_nursery"
+                         " and not test_try"
+                         ;; No keyboard interrupt in our build environment.
+                         " and not test_actual_test"))))))))
     (native-inputs
      (list python-hypothesis python-pytest python-pytest-cov))
     (propagated-inputs
-     (list python-async-generator python-outcome python-pytest python-trio))
+      (list python-async-generator python-outcome python-pytest python-trio))
     (home-page "https://github.com/python-trio/pytest-trio")
     (synopsis "Pytest plugin for trio")
     (description
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index 232a56ad43..97837bcfec 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -136,6 +136,7 @@
 ;;; Copyright © 2023 Amade Nemes <nemesamade@gmail.com>
 ;;; Copyright © 2023 Bruno Victal <mirai@makinata.eu>
 ;;; Copyright © 2023 Kaelyn Takata <kaelyn.alexi@protonmail.com>
+;;; Copyright © 2023 Dominik Delgado Steuter <d@delgado.nrw>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -20800,6 +20801,30 @@ while only declaring the test-specific fields.")
      several utilities, as well as an API for building localization tools.")
     (license license:gpl2+)))
 
+(define-public python-gtts
+  (package
+    (name "python-gtts")
+    (version "2.3.1")
+    (source (origin
+              (method url-fetch)
+              (uri (pypi-uri "gTTS" version))
+              (sha256
+               (base32
+                "1jsg1prpzr7gj5sn385mkv2v1i8xfc83ycm87hvsi2j0y366plps"))))
+    (build-system pyproject-build-system)
+    (arguments
+     ;; Disable tests that require internet.
+     (list #:test-flags '(list "-k" "not net")))
+    (native-inputs
+     (list python-pytest python-testfixtures python-click python-requests))
+    (home-page "https://github.com/pndurette/gTTS")
+    (synopsis "Google Translate text-to-speech interface")
+    (description
+     "Google Text-to-Speech (gTTS) is a Python library and CLI tool to
+interface with the Google Translate text-to-speech API.  It lets you write
+spoken MP3 data to a file, a file-like object (bytestring) for further audio
+manipulation, or @code{stdout}.")
+    (license license:expat)))
 
 (define-public python-packaging
   (package/inherit python-packaging-bootstrap
@@ -24698,13 +24723,13 @@ project.")
 (define-public python-trio
   (package
     (name "python-trio")
-    (version "0.22.0")
+    (version "0.21.0")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "trio" version))
        (sha256
-        (base32 "1kxa9v0cds0xnklvzppv4ix4xg81r73p5pm4qlvv2iqa832z2s6f"))))
+        (base32 "04qwzy4295ajxpns0hrmn3asma80sjpimzpb3i877vwynsvkjgsj"))))
     (build-system python-build-system)
     (arguments
      `(#:phases
@@ -24737,6 +24762,8 @@ _cyclic_garbage"
                          " and not test_locals_destroyed_promptly_on_cancel"
                          " and not test_ipython_exc_handler"
                          " and not test_for_leaking_fds"
+                         ;; Signals don’t work in the build sandbox.
+                         " and not test_open_signal_receiver"
                          ;; These try to raise KeyboardInterrupt which does not work
                          ;; in the build environment.
                          " and not test_ki_self"
diff --git a/gnu/packages/search.scm b/gnu/packages/search.scm
index 71609a21fa..1829a0eeb8 100644
--- a/gnu/packages/search.scm
+++ b/gnu/packages/search.scm
@@ -421,14 +421,14 @@ Search Engine.  It is written in C and based on GTK3.")
 (define-public recoll
   (package
     (name "recoll")
-    (version "1.32.7")
+    (version "1.34.0")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "https://www.lesbonscomptes.com/recoll/"
                            "recoll-" version ".tar.gz"))
        (sha256
-        (base32 "1fkx6dk8s808ay4hf7ycfcs38kywmavsjqm02pwrnl8bpgsac26a"))))
+        (base32 "0s26b737brxp5hpqcwfxg19z40w6acnnr63ghrnzzjwxqz1ambkv"))))
     (build-system gnu-build-system)
     (arguments
      `(#:configure-flags
@@ -436,6 +436,7 @@ Search Engine.  It is written in C and based on GTK3.")
              "--disable-python-module"
              "--without-systemd"
              "--with-inotify"
+             "--enable-recollq"
              (string-append "QMAKEPATH=" (assoc-ref %build-inputs "qtbase")
                             "/bin/qmake"))
        #:phases
diff --git a/gnu/packages/ssh.scm b/gnu/packages/ssh.scm
index af5072fdc2..71926c6795 100644
--- a/gnu/packages/ssh.scm
+++ b/gnu/packages/ssh.scm
@@ -807,14 +807,14 @@ shell services and remote host selection.")
 (define-public python-asyncssh
   (package
     (name "python-asyncssh")
-    (version "2.11.0")
+    (version "2.13.1")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "asyncssh" version))
        (sha256
         (base32
-         "0mkvyv2fmbdfnfdh7g2im0gxnp8hwxv5g1xdazfsipd9ggknrhsr"))))
+         "11zq9ywzgyljzihdygawzad0ydly0l32zvz11liwyi8bbk087fzb"))))
     (build-system python-build-system)
     (propagated-inputs
      (list python-cryptography python-pyopenssl python-gssapi
diff --git a/gnu/packages/terminals.scm b/gnu/packages/terminals.scm
index ef9f16bce5..de8ea39473 100644
--- a/gnu/packages/terminals.scm
+++ b/gnu/packages/terminals.scm
@@ -1450,6 +1450,10 @@ basic input/output.")
            (lambda* (#:key inputs outputs #:allow-other-keys)
              (substitute* "alacritty_terminal/Cargo.toml"
                (("0.22.0") "^0.23.0"))))
+         (add-after 'unpack 'patch-xdg-open
+           (lambda* (#:key inputs #:allow-other-keys)
+             (substitute* "alacritty/src/config/ui_config.rs"
+               (("xdg-open") (search-input-file inputs "/bin/xdg-open")))))
          (add-after 'configure 'add-absolute-library-references
            (lambda* (#:key inputs cargo-inputs vendor-dir #:allow-other-keys)
              (let* ((glutin-name ,(package-name rust-glutin-0.26))
@@ -1547,6 +1551,7 @@ basic input/output.")
        ("rust-unicode-width" ,rust-unicode-width-0.1)
        ("rust-wayland-client" ,rust-wayland-client-0.28)
        ("rust-winapi" ,rust-winapi-0.3)
+       ("xdg-utils" ,xdg-utils)
        ("wayland" ,wayland)))
     (native-search-paths
      ;; FIXME: This should only be located in 'ncurses'.  Nonetheless it is
diff --git a/gnu/packages/tex.scm b/gnu/packages/tex.scm
index 4e4a7b4aef..79c791c89d 100644
--- a/gnu/packages/tex.scm
+++ b/gnu/packages/tex.scm
@@ -26,6 +26,7 @@
 ;;; Copyright © 2022 Philip McGrath <philip@philipmcgrath.com>
 ;;; Copyright © 2023 Thomas Albers Raviola <thomas@thomaslabs.org>
 ;;; Copyright © 2023 John Kehayias <john.kehayias@protonmail.com>
+;;; Copyright © 2023 Dominik Delgado Steuter <d@delgado.nrw>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -8972,6 +8973,36 @@ PDF documents.")
 develop documents with LaTeX, in a single application.")
     (license license:gpl2+)))
 
+(define-public texstudio
+  (package
+    (name "texstudio")
+    (version "4.5.2")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/texstudio-org/texstudio")
+                    (commit version)))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "0bzdcsc0273809hx04zqd2famq05q9rpvqcbqhkjqnqp9vxbisig"))))
+    (build-system qt-build-system)
+    (arguments
+     `(#:tests? #f))                    ;tests work only with debug build
+    (native-inputs
+     (list pkg-config
+           poppler-qt5
+           qtdeclarative-5
+           qtsvg-5
+           qttools-5))
+    (home-page "https://www.texstudio.org/")
+    (synopsis "Feature-packed LaTeX editor")
+    (description
+     "TeXstudio is an integrated writing environment for creating LaTeX
+documents.  It makes writing LaTeX comfortable by providing features such as
+syntax-highlighting, an integrated viewer and reference checking.")
+    (license license:gpl3)))
+
 (define-public dvisvgm
   (package
     (name "dvisvgm")
diff --git a/gnu/packages/web-browsers.scm b/gnu/packages/web-browsers.scm
index b7965ea670..af4ffdb50d 100644
--- a/gnu/packages/web-browsers.scm
+++ b/gnu/packages/web-browsers.scm
@@ -703,7 +703,7 @@ is fully configurable and extensible in Common Lisp.")
 (define-public lagrange
   (package
     (name "lagrange")
-    (version "1.15.5")
+    (version "1.15.8")
     (source
      (origin
        (method url-fetch)
@@ -711,7 +711,7 @@ is fully configurable and extensible in Common Lisp.")
         (string-append "https://git.skyjake.fi/skyjake/lagrange/releases/"
                        "download/v" version "/lagrange-" version ".tar.gz"))
        (sha256
-        (base32 "187h42qqddf7595bzf0wb2vc9yd76ad99vbwl9sdhmy8d6qma6gs"))
+        (base32 "0ss1d522f4nnzwhjix58qfbmva9w5j6y6lhlqmjrshv18b1ay4bm"))
        (modules '((guix build utils)))
        (snippet
         '(begin