summary refs log tree commit diff
path: root/gnu
diff options
context:
space:
mode:
Diffstat (limited to 'gnu')
-rw-r--r--gnu/local.mk3
-rw-r--r--gnu/packages/algebra.scm4
-rw-r--r--gnu/packages/aspell.scm4
-rw-r--r--gnu/packages/audio.scm4
-rw-r--r--gnu/packages/backup.scm103
-rw-r--r--gnu/packages/base.scm5
-rw-r--r--gnu/packages/bittorrent.scm17
-rw-r--r--gnu/packages/books.scm6
-rw-r--r--gnu/packages/bootloaders.scm67
-rw-r--r--gnu/packages/ci.scm8
-rw-r--r--gnu/packages/clifm.scm62
-rw-r--r--gnu/packages/commencement.scm18
-rw-r--r--gnu/packages/conky.scm6
-rw-r--r--gnu/packages/coq.scm27
-rw-r--r--gnu/packages/cpp.scm4
-rw-r--r--gnu/packages/datastructures.scm45
-rw-r--r--gnu/packages/dav.scm10
-rw-r--r--gnu/packages/diffoscope.scm4
-rw-r--r--gnu/packages/disk.scm59
-rw-r--r--gnu/packages/emacs-xyz.scm336
-rw-r--r--gnu/packages/embedded.scm4
-rw-r--r--gnu/packages/emulators.scm27
-rw-r--r--gnu/packages/fcitx5.scm37
-rw-r--r--gnu/packages/finance.scm4
-rw-r--r--gnu/packages/flashing-tools.scm7
-rw-r--r--gnu/packages/fonts.scm12
-rw-r--r--gnu/packages/gnome.scm11
-rw-r--r--gnu/packages/golang.scm186
-rw-r--r--gnu/packages/guile-xyz.scm29
-rw-r--r--gnu/packages/instrumentation.scm25
-rw-r--r--gnu/packages/language.scm4
-rw-r--r--gnu/packages/linux.scm32
-rw-r--r--gnu/packages/lisp-check.scm29
-rw-r--r--gnu/packages/llvm.scm8
-rw-r--r--gnu/packages/lua.scm33
-rw-r--r--gnu/packages/mail.scm106
-rw-r--r--gnu/packages/markup.scm15
-rw-r--r--gnu/packages/maths.scm236
-rw-r--r--gnu/packages/mpd.scm26
-rw-r--r--gnu/packages/networking.scm129
-rw-r--r--gnu/packages/package-management.scm12
-rw-r--r--gnu/packages/parallel.scm4
-rw-r--r--gnu/packages/patches/aria2-unbundle-wslay.patch54
-rw-r--r--gnu/packages/patches/go-gopkg-in-yaml-v3-32bit.patch50
-rw-r--r--gnu/packages/patches/scilab-hdf5-1.8-api.patch71
-rw-r--r--gnu/packages/patches/yggdrasil-extra-config.patch134
-rw-r--r--gnu/packages/potassco.scm22
-rw-r--r--gnu/packages/protobuf.scm8
-rw-r--r--gnu/packages/python-xyz.scm4
-rw-r--r--gnu/packages/samba.scm32
-rw-r--r--gnu/packages/terminals.scm64
-rw-r--r--gnu/packages/textutils.scm30
-rw-r--r--gnu/packages/toys.scm2
-rw-r--r--gnu/packages/video.scm26
-rw-r--r--gnu/packages/vim.scm153
-rw-r--r--gnu/packages/vpn.scm4
-rw-r--r--gnu/packages/web.scm6
-rw-r--r--gnu/packages/xdisorg.scm8
-rw-r--r--gnu/packages/xorg.scm2
-rw-r--r--gnu/packages/zig.scm215
-rw-r--r--gnu/services/docker.scm260
61 files changed, 2138 insertions, 775 deletions
diff --git a/gnu/local.mk b/gnu/local.mk
index d250816999..b2ac495933 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -177,6 +177,7 @@ GNU_SYSTEM_MODULES =				\
   %D%/packages/chromium.scm			\
   %D%/packages/ci.scm				\
   %D%/packages/cinnamon.scm			\
+  %D%/packages/clifm.scm			\
   %D%/packages/clojure.scm			\
   %D%/packages/cluster.scm			\
   %D%/packages/cmake.scm			\
@@ -919,6 +920,7 @@ dist_patch_DATA =						\
   %D%/packages/patches/aoflagger-use-system-provided-pybind11.patch \
   %D%/packages/patches/apr-fix-atomics.patch			\
   %D%/packages/patches/apr-skip-getservbyname-test.patch	\
+  %D%/packages/patches/aria2-unbundle-wslay.patch		\
   %D%/packages/patches/ark-skip-xar-test.patch			\
   %D%/packages/patches/arpack-ng-propagate-rng-state.patch	\
   %D%/packages/patches/asli-use-system-libs.patch		\
@@ -1342,6 +1344,7 @@ dist_patch_DATA =						\
   %D%/packages/patches/gobject-introspection-cc-1.72.patch	\
   %D%/packages/patches/gobject-introspection-girepository.patch	\
   %D%/packages/patches/go-fix-script-tests.patch			\
+  %D%/packages/patches/go-gopkg-in-yaml-v3-32bit.patch		\
   %D%/packages/patches/go-github-com-golang-snappy-32bit-test.patch \
   %D%/packages/patches/go-github-com-urfave-cli-fix-tests.patch \
   %D%/packages/patches/go-github-com-urfave-cli-v2-fix-tests.patch \
diff --git a/gnu/packages/algebra.scm b/gnu/packages/algebra.scm
index c0fe75ddfd..c454c69164 100644
--- a/gnu/packages/algebra.scm
+++ b/gnu/packages/algebra.scm
@@ -736,14 +736,14 @@ a C program.")
 (define-public fftw
   (package
     (name "fftw")
-    (version "3.3.8")
+    (version "3.3.10")
     (source (origin
              (method url-fetch)
              (uri (string-append "ftp://ftp.fftw.org/pub/fftw/fftw-"
                                  version".tar.gz"))
              (sha256
               (base32
-               "00z3k8fq561wq2khssqg0kallk0504dzlx989x3vvicjdqpjc4v1"))))
+               "0rv4w90b65b2kvjpj8g9bdkl4xqc42q20f5bzpxdrkajk1a35jan"))))
     (build-system gnu-build-system)
     (arguments
      `(#:configure-flags
diff --git a/gnu/packages/aspell.scm b/gnu/packages/aspell.scm
index 17ba794201..ffb13025f3 100644
--- a/gnu/packages/aspell.scm
+++ b/gnu/packages/aspell.scm
@@ -398,14 +398,14 @@ dictionaries, including personal ones.")
 (define-public ispell
   (package
     (name "ispell")
-    (version "3.4.05")
+    (version "3.4.06")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "https://www.cs.hmc.edu/~geoff/tars/ispell-"
                            version ".tar.gz"))
        (sha256
-        (base32 "00jni7gvdswjd9sdwip5ixnvjg2qzv56mn3m8gdgl9gxwgnns36g"))))
+        (base32 "19pbhg3pbnykkk9hla2kfhfanm7wcdja2qria365l1y8shridj8p"))))
     (build-system gnu-build-system)
     (arguments
      `(#:parallel-build? #f
diff --git a/gnu/packages/audio.scm b/gnu/packages/audio.scm
index 7c49ba1841..e4fe4c2da7 100644
--- a/gnu/packages/audio.scm
+++ b/gnu/packages/audio.scm
@@ -6320,7 +6320,7 @@ and DSD streams.")
 (define-public qpwgraph
   (package
     (name "qpwgraph")
-    (version "0.5.3")
+    (version "0.6.0")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -6329,7 +6329,7 @@ and DSD streams.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "1i9p8gqm9swa2szr7i8rf3dhqxlaqjslb6yd5s9z1rs1jdb9lhp7"))))
+                "17jl347rwagdyx6pgnp83l1ffhlyfl0s4jf7ii2i1j3s1m9sz7y0"))))
     (build-system cmake-build-system)
     (arguments
      (list #:tests? #f))                ; no tests
diff --git a/gnu/packages/backup.scm b/gnu/packages/backup.scm
index 12c4a45b9d..49b0fe2620 100644
--- a/gnu/packages/backup.scm
+++ b/gnu/packages/backup.scm
@@ -104,34 +104,32 @@
 (define-public duplicity
   (package
     (name "duplicity")
-    (version "0.8.21")
+    (version "2.1.4")
     (source
      (origin
-      (method url-fetch)
-      (uri (string-append "https://code.launchpad.net/duplicity/"
-                          (version-major+minor version)
-                          "-series/" version "/+download/duplicity-"
-                          version ".tar.gz"))
-      (sha256
-       (base32 "0ld4bhsi6iv4bvy99pblbr7vlwy9jbgfd6flyvb8qwbl8rvadzjp"))))
+      (method git-fetch)
+       (uri (git-reference
+             (url "https://gitlab.com/duplicity/duplicity")
+             (commit (string-append "rel." version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "14x5brpq1l400i9l2hnyqmbn19cc1hnbmj5fn8cs8zzwzbgrfxng"))))
     (build-system python-build-system)
     (native-inputs
-     `(("gettext" ,gettext-minimal)     ; for msgfmt
-       ("util-linux" ,util-linux)       ; setsid command, for the tests
-       ("par2cmdline" ,par2cmdline)
-       ("python-fasteners" ,python-fasteners)
-       ("python-future" ,python-future) ; for tests
-       ("python-paramiko" ,python-paramiko)
-       ("python-pexpect" ,python-pexpect)
-       ("python-pytest" ,python-pytest)
-       ("python-pytest-runner" ,python-pytest-runner)
-       ("python-setuptools-scm" ,python-setuptools-scm)
-       ("tzdata" ,tzdata-for-tests)
-       ("mock" ,python-mock)))
+     (list gettext-minimal ; for msgfmt
+           util-linux ; setsid command, for the tests
+           par2cmdline
+           python-fasteners
+           python-future ; for tests
+           python-paramiko
+           python-pexpect
+           python-pytest
+           python-pytest-runner
+           python-setuptools-scm
+           tzdata-for-tests
+           python-mock))
     (propagated-inputs
-     `(("lockfile" ,python-lockfile)
-       ("pygobject" ,python-pygobject)
-       ("urllib3" ,python-urllib3)))
+     (list python-lockfile python-pygobject python-urllib3))
     (inputs
      (list dbus ; dbus-launch (Gio backend)
            librsync
@@ -139,30 +137,41 @@
            gnupg ; gpg executable needed
            util-linux))     ; for setsid
     (arguments
-     `(#:test-target "test"
-       #:phases
-       (modify-phases %standard-phases
-         (add-before 'build 'use-store-file-names
-           (lambda* (#:key inputs #:allow-other-keys)
-             (substitute* "duplicity/gpginterface.py"
-               (("self.call = u'gpg'")
-                (string-append "self.call = '" (assoc-ref inputs "gnupg") "/bin/gpg'")))
-             (substitute* "duplicity/backends/giobackend.py"
-               (("subprocess.Popen\\(\\[u'dbus-launch'\\]")
-                (string-append "subprocess.Popen([u'"
-                               (assoc-ref inputs "dbus")
-                               "/bin/dbus-launch']")))
-             (substitute* '("testing/functional/__init__.py"
-                            "testing/overrides/bin/lftp")
-               (("/bin/sh") (which "sh")))))
-         (add-before 'check 'set-up-tests
-           (lambda* (#:key inputs #:allow-other-keys)
-             (setenv "HOME" (getcwd))   ; gpg needs to write to $HOME
-             (setenv "TZDIR"            ; some timestamp checks need TZDIR
-                     (search-input-directory inputs "share/zoneinfo"))
-             ;; Some things respect TMPDIR, others hard-code /tmp, and the
-             ;; defaults don't match up, breaking test_restart.  Fix it.
-             (setenv "TMPDIR" "/tmp"))))))
+     (list #:test-target "test"
+           #:phases
+           #~(modify-phases %standard-phases
+               (add-before 'build 'use-store-file-names
+                 (lambda* (#:key inputs #:allow-other-keys)
+                   (substitute* "duplicity/gpginterface.py"
+                     (("self.call = u'gpg'")
+                      (string-append "self.call = '"
+                                     (search-input-file inputs
+                                                        "/bin/gpg")
+                                     "'")))
+                   (substitute* "duplicity/backends/giobackend.py"
+                     (("subprocess.Popen\\(\\[u'dbus-launch'\\]")
+                      (string-append "subprocess.Popen([u'"
+                                     (search-input-file inputs
+                                                        "/bin/dbus-launch") "']")))
+                   (substitute* '("testing/functional/__init__.py"
+                                  "testing/overrides/bin/lftp")
+                     (("/bin/sh")
+                      (which "sh")))))
+               (add-before 'build 'fix-version
+                 (lambda _
+                   (substitute* "duplicity/__init__.py"
+                     (("\\$version")
+                      #$(package-version this-package)))))
+               (add-before 'check 'set-up-tests
+                 (lambda* (#:key inputs #:allow-other-keys)
+                   (setenv "HOME"
+                           (getcwd)) ; gpg needs to write to $HOME
+                   (setenv "TZDIR" ; some timestamp checks need TZDIR
+                           (search-input-directory inputs
+                                                   "share/zoneinfo"))
+                   ;; Some things respect TMPDIR, others hard-code /tmp, and the
+                   ;; defaults don't match up, breaking test_restart.  Fix it.
+                   (setenv "TMPDIR" "/tmp"))))))
     (home-page "https://duplicity.gitlab.io/duplicity-web/")
     (synopsis "Encrypted backup using rsync algorithm")
     (description
diff --git a/gnu/packages/base.scm b/gnu/packages/base.scm
index 2d8e9143cd..41aff0ca97 100644
--- a/gnu/packages/base.scm
+++ b/gnu/packages/base.scm
@@ -1512,6 +1512,11 @@ command.")
            (delete 'build)))))                  ; nothing to build
     (supported-systems %hurd-systems)))
 
+(define-public glibc-utf8-locales/hurd
+  ;; Locales for the libc version used on GNU/Hurd.
+  (hidden-package
+   (make-glibc-utf8-locales glibc/hurd)))
+
 (define* (libc-for-target #:optional
                           (target (or (%current-target-system)
                                       (%current-system))))
diff --git a/gnu/packages/bittorrent.scm b/gnu/packages/bittorrent.scm
index abf8a609e9..6f75a92cff 100644
--- a/gnu/packages/bittorrent.scm
+++ b/gnu/packages/bittorrent.scm
@@ -78,6 +78,7 @@
   #:use-module (gnu packages sqlite)
   #:use-module (gnu packages ssh)
   #:use-module (gnu packages tls)
+  #:use-module (gnu packages web)
   #:use-module (gnu packages xml))
 
 (define-public transmission
@@ -285,7 +286,7 @@ Transmission BitTorrent daemon.")
 (define-public aria2
   (package
     (name "aria2")
-    (version "1.36.0")
+    (version "1.37.0")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://github.com/aria2/aria2/releases/"
@@ -293,7 +294,12 @@ Transmission BitTorrent daemon.")
                                   "/aria2-" version ".tar.xz"))
               (sha256
                (base32
-                "1987x4ywnnrhhfs9hi2h820c200d7nas9nd35414yh0jiihfglaq"))))
+                "0sxng4pynhj2qinranpv6wyzys3d42kz1gg2nrn63sw5f2nj1930"))
+              (patches (search-patches "aria2-unbundle-wslay.patch"))
+              (snippet
+               #~(begin (use-modules (guix build utils))
+                        (delete-file-recursively "deps")
+                        (delete-file "configure")))))
     (build-system gnu-build-system)
     (arguments
      (list
@@ -312,7 +318,11 @@ Transmission BitTorrent daemon.")
                  (("CPPUNIT_TEST_SUITE_REGISTRATION\\(LpdMessageReceiverTest\\);" text)
                   (string-append "// " text))))))))
     (native-inputs
-     (list cppunit ; for the tests
+     (list autoconf ; since we adjusted configure.ac
+           automake
+           gettext-minimal
+           libtool
+           cppunit ; for the tests
            pkg-config))
     (inputs
      (list c-ares
@@ -322,6 +332,7 @@ Transmission BitTorrent daemon.")
            libxml2
            nettle
            sqlite
+           wslay
            zlib))
     (home-page "https://aria2.github.io/")
     (synopsis "Utility for parallel downloading files")
diff --git a/gnu/packages/books.scm b/gnu/packages/books.scm
index 97a7e3b45c..c3504bb4ff 100644
--- a/gnu/packages/books.scm
+++ b/gnu/packages/books.scm
@@ -42,7 +42,7 @@
 (define-public book-sparc
   (package
     (name "book-sparc")
-    (version "1.0.1")
+    (version "1.1.0")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -50,12 +50,11 @@
                     (commit (string-append "v" version))))
               (sha256
                (base32
-                "0dswwwkb3h88cl3mhiy79s8i7sa9lmw6fxaj782vxgif795lcpxs"))
+                "0k1miyrnh5362qy50jzp5j3ww0c8hr7wk3y5kg6xlqgk9f8msvag"))
               (file-name (git-file-name name version))
               (modules '((guix build utils)))
               (snippet
                #~(begin
-                   (delete-file "sparc.pdf")
                    (substitute* "version.tex.in"
                      (("@COMMIT@") ""))
                    (substitute* "Makefile"
@@ -86,6 +85,7 @@
            texlive-collection-langcyrillic
            texlive-fontspec
            texlive-glossaries
+           texlive-glossaries-english
            texlive-glossaries-extra
            texlive-koma-script
            texlive-lilyglyphs
diff --git a/gnu/packages/bootloaders.scm b/gnu/packages/bootloaders.scm
index fb20ba0efa..e708641623 100644
--- a/gnu/packages/bootloaders.scm
+++ b/gnu/packages/bootloaders.scm
@@ -15,7 +15,7 @@
 ;;; Copyright © 2020, 2021 Pierre Langlois <pierre.langlois@gmx.com>
 ;;; Copyright © 2021 Vincent Legoll <vincent.legoll@gmail.com>
 ;;; Copyright © 2021 Brice Waegeneire <brice@waegenei.re>
-;;; Copyright © 2022 Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
+;;; Copyright © 2022, 2023 Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
 ;;; Copyright © 2021 Stefan <stefan-guix@vodafonemail.de>
 ;;; Copyright © 2022, 2023 Maxim Cournoyer <maxim.cournoyer@gmail.com>
 ;;;
@@ -295,6 +295,71 @@ menu to select one of the installed operating systems.")
 
                #t))))))))
 
+(define-public grub-coreboot
+  (package
+    (inherit grub)
+    (name "grub-coreboot")
+    (synopsis "GRand Unified Boot loader (Coreboot payload version)")
+    (arguments
+     `(,@(substitute-keyword-arguments (package-arguments grub)
+           ((#:phases phases '%standard-phases)
+            `(modify-phases ,phases
+               (add-before 'check 'disable-broken-tests
+                 (lambda _
+                   (setenv "DISABLE_HARD_ERRORS" "1")
+                   (setenv
+                    "XFAIL_TESTS"
+                    (string-join
+                     ;; TODO: All the tests below use grub shell
+                     ;; (tests/util/grub-shell.in), and here grub-shell uses
+                     ;; QEMU and a Coreboot image to run the tests. Since we
+                     ;; don't have a Coreboot package in Guix yet these tests
+                     ;; are disabled. See the Guix bug #64667 for more details
+                     ;; (https://debbugs.gnu.org/cgi/bugreport.cgi?bug=64667).
+                     (list
+                      "pata_test"
+                      "ahci_test"
+                      "uhci_test"
+                      "ehci_test"
+                      "example_grub_script_test"
+                      "ohci_test"
+                      "grub_script_eval"
+                      "grub_script_echo1"
+                      "grub_script_test"
+                      "grub_script_leading_whitespace"
+                      "grub_script_echo_keywords"
+                      "grub_script_vars1"
+                      "grub_script_for1"
+                      "grub_script_while1"
+                      "grub_script_if"
+                      "grub_script_comments"
+                      "grub_script_functions"
+                      "grub_script_continue"
+                      "grub_script_break"
+                      "grub_script_shift"
+                      "grub_script_blockarg"
+                      "grub_script_return"
+                      "grub_script_setparams"
+                      "grub_cmd_date"
+                      "grub_cmd_sleep"
+                      "grub_cmd_regexp"
+                      "grub_script_not"
+                      "grub_cmd_echo"
+                      "grub_script_expansion"
+                      "grub_script_gettext"
+                      "grub_script_escape_comma"
+                      "help_test"
+                      "grub_script_strcmp"
+                      "test_sha512sum"
+                      "grub_cmd_tr"
+                      "test_unset"
+                      "file_filter_test")
+                     " "))))))
+           ((#:configure-flags flags
+             ''())
+            `(cons* "--with-platform=coreboot"
+                    ,flags)))))))
+
 (define-public grub-efi
   (package
     (inherit grub)
diff --git a/gnu/packages/ci.scm b/gnu/packages/ci.scm
index 1fa5818b6d..a367a5778b 100644
--- a/gnu/packages/ci.scm
+++ b/gnu/packages/ci.scm
@@ -59,11 +59,11 @@
   #:use-module ((guix search-paths) #:select ($SSL_CERT_DIR)))
 
 (define-public cuirass
-  (let ((commit "eb3f539dc95de705c89b07258efe4663e76f7dab")
-        (revision "0"))
+  (let ((commit "bdc1f9f304a3f5931ec507dcfe0b91b185b70708")
+        (revision "1"))
     (package
       (name "cuirass")
-      (version "1.2.0")
+      (version (git-version "1.2.0" revision commit))
       (source
        (origin
          (method git-fetch)
@@ -73,7 +73,7 @@
          (file-name (git-file-name name version))
          (sha256
           (base32
-           "0rvzcsm0zwwv8rb5z0jdgc7adzzx0cin9n2hhclp5d0kqn582hny"))))
+           "031vv3rk7vzal611iq8sgq5yackp78kdpz8qn78j561pl9bip80n"))))
       (build-system gnu-build-system)
       (arguments
        (list #:modules `((guix build utils)
diff --git a/gnu/packages/clifm.scm b/gnu/packages/clifm.scm
new file mode 100644
index 0000000000..92d14f1072
--- /dev/null
+++ b/gnu/packages/clifm.scm
@@ -0,0 +1,62 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2023 Rodion Goritskov <rodion.goritskov@gmail.com>
+;;;
+;;; This file is part of GNU Guix.
+;;;
+;;; GNU Guix is free software; you can redistribute it and/or modify it
+;;; under the terms of the GNU General Public License as published by
+;;; the Free Software Foundation; either version 3 of the License, or (at
+;;; your option) any later version.
+;;;
+;;; GNU Guix is distributed in the hope that it will be useful, but
+;;; WITHOUT ANY WARRANTY; without even the implied warranty of
+;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+;;; GNU General Public License for more details.
+;;;
+;;; You should have received a copy of the GNU General Public License
+;;; along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.
+
+(define-module (gnu packages clifm)
+  #:use-module (guix packages)
+  #:use-module (guix gexp)
+  #:use-module (guix utils)
+  #:use-module (guix git-download)
+  #:use-module (guix build-system gnu)
+  #:use-module ((guix licenses) #:prefix license:)
+  #:use-module (gnu packages readline)
+  #:use-module (gnu packages acl)
+  #:use-module (gnu packages linux))
+
+(define-public clifm
+  (package
+    (name "clifm")
+    (version "1.15")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/leo-arch/clifm")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "1r9pxlyn8jg0wmzbmbc71l42098lz5k32k6yid09yz6d0gaax7g1"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:make-flags (list (string-append "CC="
+                                         ,(cc-for-target))
+                          (string-append "PREFIX="
+                                         (assoc-ref %outputs "out")))
+       #:phases (modify-phases %standard-phases
+                  (delete 'configure)
+                  (delete 'build)
+                  (delete 'check))))
+    (inputs (list readline acl libcap))
+    (home-page "https://github.com/leo-arch/clifm")
+    (synopsis "Command-line file manager")
+    (description "Clifm a shell-like, text-based terminal file manager that
+sits on the command line.
+
+It is built with command line principles in mind: instead of navigating
+through a big menu of files, it lets you type, exactly as you do in your
+regular shell, but easier and faster.")
+    (license license:gpl2+)))
diff --git a/gnu/packages/commencement.scm b/gnu/packages/commencement.scm
index 80fdb5aed7..03fecd6d9b 100644
--- a/gnu/packages/commencement.scm
+++ b/gnu/packages/commencement.scm
@@ -3365,6 +3365,16 @@ exec ~a/bin/~a-~a -B~a/lib -Wl,-dynamic-linker -Wl,~a/~a \"$@\"~%"
      `(("glibc" ,glibc-final)
        ("gzip" ,(with-boot4 gzip))))))
 
+(define-public glibc-utf8-locales-final/hurd
+  ;; Locales for the libc version used on GNU/Hurd.
+  (package
+    (inherit glibc-utf8-locales/hurd)
+    (properties `((hidden? . #t)
+                  ,@(package-properties glibc-utf8-locales/hurd)))
+    (native-inputs
+     `(("glibc" ,glibc-final)
+       ("gzip" ,(with-boot4 gzip))))))
+
 (define-public ld-wrapper
   ;; The final 'ld' wrapper, which uses the final Guile and Binutils.
   (make-ld-wrapper "ld-wrapper"
@@ -3383,7 +3393,9 @@ exec ~a/bin/~a-~a -B~a/lib -Wl,-dynamic-linker -Wl,~a/~a \"$@\"~%"
   ;; Now with UTF-8 locales.  Remember that the bootstrap binaries were built
   ;; with an older libc, which cannot load the new locale format.  See
   ;; <https://lists.gnu.org/archive/html/guix-devel/2015-08/msg00737.html>.
-  `(("locales" ,glibc-utf8-locales-final)
+  `(("locales" ,(if (target-hurd?)
+                    glibc-utf8-locales-final/hurd
+                    glibc-utf8-locales-final))
     ,@(%boot4-inputs)))
 
 (define with-boot5
@@ -3484,7 +3496,9 @@ exec ~a/bin/~a-~a -B~a/lib -Wl,-dynamic-linker -Wl,~a/~a \"$@\"~%"
           ("gcc" ,gcc-final)
           ("libc" ,glibc-final)
           ("libc:static" ,glibc-final "static")
-          ("locales" ,glibc-utf8-locales-final))))))
+          ("locales" ,(if (target-hurd? (%current-system))
+                          glibc-utf8-locales-final/hurd
+                          glibc-utf8-locales-final)))))))
 
 (define-public canonical-package
   (let ((name->package (mlambda (system)
diff --git a/gnu/packages/conky.scm b/gnu/packages/conky.scm
index bd26cdd015..e29c6e1070 100644
--- a/gnu/packages/conky.scm
+++ b/gnu/packages/conky.scm
@@ -2,7 +2,7 @@
 ;;; Copyright © 2015 Siniša Biđin <sinisa@bidin.eu>
 ;;; Copyright © 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2019 Pierre Neidhardt <mail@ambrevar.xyz>
-;;; Copyright © 2019 Vasile Dumitrascu <va511e@yahoo.com>
+;;; Copyright © 2019, 2023 Vasile Dumitrascu <va511e@yahoo.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -40,7 +40,7 @@
   (package
     (name "conky")
     (home-page "https://github.com/brndnmtthws/conky")
-    (version "1.19.4")
+    (version "1.19.6")
     (source
      (origin
        (method git-fetch)
@@ -49,7 +49,7 @@
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "03zzssdg1qdv83p4c3dbjgr0g1n0spc0ndk9bds1rd2n82i6g6sy"))))
+        (base32 "02mdqsizc36v3zqhxnyv2mch9w0gqnl4a25yxishka9yv5ni5iig"))))
     (build-system cmake-build-system)
     (arguments
      `(#:configure-flags
diff --git a/gnu/packages/coq.scm b/gnu/packages/coq.scm
index 09ca4030ea..f30f231f3b 100644
--- a/gnu/packages/coq.scm
+++ b/gnu/packages/coq.scm
@@ -42,6 +42,7 @@
   #:use-module (gnu packages texinfo)
   #:use-module (guix build-system dune)
   #:use-module (guix build-system gnu)
+  #:use-module (guix build-system trivial)
   #:use-module (guix download)
   #:use-module (guix gexp)
   #:use-module (guix git-download)
@@ -285,6 +286,32 @@ multi-precision arithmetic.  It also supports efficient numerical computations
 inside Coq.")
     (license license:lgpl3+)))
 
+;; Union of coq and coq-ide-server as vim-coqtail expects coqc and coqidetop
+;; to be in the same bin folder, when vim-coqtail is installed coqc and
+;; coqidetop will be in the "same" bin folder in the profile, so this is only
+;; required for testing the package.
+;;
+;; This is deeply ingrained in the internals of vim-coqtail so this is why
+;; it's necessary.
+(define-public coq-for-coqtail
+  (hidden-package
+    (package
+      (inherit coq)
+      (name "coq-for-coqtail")
+      (source #f)
+      (build-system trivial-build-system)
+      (arguments
+       '(#:modules ((guix build union))
+         #:builder
+         (begin
+           (use-modules (ice-9 match)
+                        (guix build union))
+           (match %build-inputs
+             (((names . directories) ...)
+              (union-build (assoc-ref %outputs "out")
+                           directories))))))
+      (inputs (list coq coq-ide-server)))))
+
 (define-public coq-gappa
   (package
     (name "coq-gappa")
diff --git a/gnu/packages/cpp.scm b/gnu/packages/cpp.scm
index 49e5b52e5f..5e35a03254 100644
--- a/gnu/packages/cpp.scm
+++ b/gnu/packages/cpp.scm
@@ -1397,7 +1397,7 @@ standard GNU style syntax for options.")
 (define-public folly
   (package
     (name "folly")
-    (version "2022.10.31.00")
+    (version "2023.11.06.00")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -1406,7 +1406,7 @@ standard GNU style syntax for options.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "06r9xnj8ilghc0vv6r17k5apl3w19iwd76nr02svnv96c74bz2aa"))))
+                "0z0jhkma2qacc2kc27qsiwqwqkv07i9mwpc4vwcbawyzdajq6hd0"))))
     (build-system cmake-build-system)
     (arguments
      '(;; Tests must be explicitly enabled
diff --git a/gnu/packages/datastructures.scm b/gnu/packages/datastructures.scm
index 0689ef4259..c6b2396537 100644
--- a/gnu/packages/datastructures.scm
+++ b/gnu/packages/datastructures.scm
@@ -6,6 +6,7 @@
 ;;; Copyright © 2020 Mark H Weaver <mhw@netris.org>
 ;;; Copyright © 2020, 2022 Marius Bakke <marius@gnu.org>
 ;;; Copyright © 2023 Nicolas Goaziou <mail@nicolasgoaziou.fr>
+;;; Copyright © 2023 Zheng Junjie <873216071@qq.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -444,28 +445,26 @@ better with a poor hash function.")
     (license license:expat)))
 
 (define-public zix
-  (let ((commit "a13ae5ad9dc70075740f11139f1db96cc79faa59")
-        (revision "0"))
-    (package
-      (name "zix")
-      (version (git-version "0.3.3" revision commit))
-      (source (origin
-                (method git-fetch)
-                (uri (git-reference
-                      (url "https://gitlab.com/drobilla/zix.git")
-                      (commit commit)))
-                (file-name (git-file-name name version))
-                (sha256
-                 (base32
-                  "1njyb8lz1d5qzf0k14pb3rq13xkxnddwbz090dj69138ymz1xgyl"))))
-      (build-system meson-build-system)
-      (arguments
-       (list #:configure-flags #~(list "-Ddocs=disabled"))) ;needs "sphinxygen"
-      (native-inputs (list pkg-config))
-      (home-page "https://gitlab.com/drobilla/zix")
-      (synopsis "C library of portability wrappers and data structures")
-      (description
-       "Zix is a C library of portability wrappers and data structures.  It
+  (package
+    (name "zix")
+    (version "0.4.2")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://gitlab.com/drobilla/zix.git")
+                    (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "07pbq4bi64iv39swldfbcp7131b5n4hs64pgd417gqlwv8qvgjcw"))))
+    (build-system meson-build-system)
+    (arguments
+     (list #:configure-flags #~(list "-Ddocs=disabled"))) ;needs "sphinxygen"
+    (native-inputs (list pkg-config))
+    (home-page "https://gitlab.com/drobilla/zix")
+    (synopsis "C library of portability wrappers and data structures")
+    (description
+     "Zix is a C library of portability wrappers and data structures.  It
 provides the following components:
 @table @code
 @item ZixAllocator A customizable allocator.
@@ -480,4 +479,4 @@ provides the following components:
 zix/filesystem.h Functions for working with filesystems.
 @item zix/path.h Functions for working with filesystem paths lexically.
 @end table")
-      (license license:isc))))
+    (license license:isc)))
diff --git a/gnu/packages/dav.scm b/gnu/packages/dav.scm
index e0306b8a97..ae03442374 100644
--- a/gnu/packages/dav.scm
+++ b/gnu/packages/dav.scm
@@ -43,23 +43,17 @@
 (define-public radicale
   (package
     (name "radicale")
-    (version "3.1.7")
+    (version "3.1.8")
     (source
      (origin
-       ;; There are no tests in the PyPI tarball.
        (method git-fetch)
        (uri (git-reference
              (url "https://github.com/Kozea/Radicale")
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "1mv1w9qazbis9ir5shr1ybsfn4cxd3rmxa3ns6kbk23yramlzwhg"))))
+        (base32 "1qy2azn02bw772yhzgqvyf1pyl0ijj9ccvl1078w9icl261yljap"))))
     (build-system python-build-system)
-    (arguments
-      (list
-       ;; TODO: enable again when https://github.com/Kozea/Radicale/issues/1184
-       ;; is fixed
-       #:tests? #f))
     (native-inputs
      (list python-pytest
            python-pytest-cov
diff --git a/gnu/packages/diffoscope.scm b/gnu/packages/diffoscope.scm
index 5ab54de0e9..1ac5aff719 100644
--- a/gnu/packages/diffoscope.scm
+++ b/gnu/packages/diffoscope.scm
@@ -74,7 +74,7 @@
 (define-public diffoscope
   (package
     (name "diffoscope")
-    (version "251")
+    (version "252")
     (source
      (origin
        (method git-fetch)
@@ -83,7 +83,7 @@
              (commit version)))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "1200kzwqyw2m298z8rfbiiziprz4s1n176z42xyziwc6mbx8m09z"))))
+        (base32 "1hnsnqpr0v9siqja1wxm64wv0vjacg6j9ph9n4xsiaarpndj1b4r"))))
     (build-system python-build-system)
     (arguments
      (list
diff --git a/gnu/packages/disk.scm b/gnu/packages/disk.scm
index 9d2e170cc0..113455eee5 100644
--- a/gnu/packages/disk.scm
+++ b/gnu/packages/disk.scm
@@ -26,6 +26,7 @@
 ;;; Copyright © 2022 Maxim Cournoyer <maxim.cournoyer@gmail.com>
 ;;; Copyright © 2022 Disseminate Dissent <disseminatedissent@protonmail.com>
 ;;; Copyright © 2023 Timotej Lazar <timotej.lazar@araneo.si>
+;;; Copyright © 2023 Morgan Smith <Morgan.J.Smith@outlook.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -61,6 +62,7 @@
   #:use-module (gnu packages file-systems)
   #:use-module (gnu packages file)
   #:use-module (gnu packages fontutils)
+  #:use-module (gnu packages freedesktop)
   #:use-module (gnu packages gettext)
   #:use-module (gnu packages glib)
   #:use-module (gnu packages gnome)
@@ -71,6 +73,7 @@
   #:use-module (gnu packages guile)
   #:use-module (gnu packages hurd)
   #:use-module (gnu packages image)
+  #:use-module (gnu packages imagemagick)
   #:use-module (gnu packages linux)
   #:use-module (gnu packages ncurses)
   #:use-module (gnu packages nss)
@@ -102,6 +105,7 @@
   #:use-module (guix build-system glib-or-gtk)
   #:use-module (guix build-system go)
   #:use-module (guix build-system meson)
+  #:use-module (guix build-system perl)
   #:use-module (guix build-system python)
   #:use-module (guix build-system trivial)
   #:use-module (guix build-system scons)
@@ -343,6 +347,61 @@ fdisk.  fdisk is used for the creation and manipulation of disk partition
 tables, and it understands a variety of different formats.")
     (license license:gpl3+)))
 
+(define-public findimagedupes
+  (package
+    (name "findimagedupes")
+    (version "2.20.1")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/jhnc/findimagedupes")
+             (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "1zfxmc6c1z4hzsq3k85xxida1v291frq4wbmxv9cg4jmw0ddk5ic"))))
+    (build-system perl-build-system)
+    (arguments
+     (list
+      #:tests? #f
+      #:phases #~(modify-phases %standard-phases
+                   (delete 'configure)
+                   (delete 'build)
+                   (replace 'install
+                     ;; There's no ‘make install’ target.
+                     (lambda* (#:key outputs #:allow-other-keys)
+                       (install-file "findimagedupes"
+                                     (string-append #$output "/bin"))))
+                   (add-after 'unpack 'use-image-magick
+                     ;; TODO: package perl-graphics-magick and switch this out
+                     (lambda _
+                       (substitute* "findimagedupes"
+                         (("Graphics::Magick")
+                          "Image::Magick"))))
+                   (add-after 'unpack 'set-inline-dir
+                     (lambda _
+                       (substitute* "findimagedupes"
+                         (("/usr/local")
+                          #$output))))
+                   (add-after 'install 'inline-generation
+                     (lambda _
+                       (mkdir-p (string-append #$output "/lib/findimagedupes"))
+                       (invoke (string-append #$output "/bin/findimagedupes"))))
+                   (add-after 'install 'wrap-findimagedupes
+                     (lambda* (#:key outputs #:allow-other-keys)
+                       (wrap-program (string-append #$output
+                                                    "/bin/findimagedupes")
+                         `("PERL5LIB" ":" prefix
+                           (,(getenv "PERL5LIB") ,(string-append #$output
+                                                   "/lib/perl5/site_perl")))))))))
+    (inputs (list bash-minimal perl-db-file perl-file-mimeinfo
+                  perl-image-magick perl-inline-c))
+    (home-page "https://github.com/jhnc/findimagedupes")
+    (synopsis "Find visually similar or duplicate images")
+    (description "findimagedupes compares a list of files for visual
+similarity.")
+    (license license:gpl3+)))
+
 (define-public gpart
   ;; The latest (0.3) release is from 2015 and is missing a crash fix.
   (let ((commit "ec03350a01ad69708b5a3e2d47b8e002b0eba6c9")
diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm
index 90fe9fceeb..996142dc3e 100644
--- a/gnu/packages/emacs-xyz.scm
+++ b/gnu/packages/emacs-xyz.scm
@@ -135,6 +135,7 @@
 ;;; Copyright © 2023 Sergiu Ivanov <sivanov@colimite.fr>
 ;;; Copyright © 2023 Camilo Q.S. (Distopico) <distopico@riseup.net>
 ;;; Copyright © 2023 Thanos Apollo <public@thanosapollo.com>
+;;; Copyright © 2023 Ian Eure <ian@retrospec.tv>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -3294,6 +3295,29 @@ immediately activated.  Also filtering can be applied so selection can be
 incrementally confined in Isearch manner.")
     (license license:gpl3+)))
 
+(define-public emacs-dnt
+  (let ((commit "d28d232d682094ab79cfa78c97668c6ebd327c8c")
+        (revision "1"))
+    (package
+      (name "emacs-dnt")
+      (version (git-version "0.0.1" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://codeberg.org/emacs-weirdware/dnt.git")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32 "1bls9j1ibw0npjapslbrh6nmlbn3d4ajhjygsqlf6h9qg12sxm3r"))))
+      (inputs (list emacs-s))
+      (build-system emacs-build-system)
+      (home-page "https://codeberg.org/emacs-weirdware/dnt")
+      (synopsis "Strip trackers from URLs")
+      (description "This package provides a series of rules and helper functions
+to prevent advertisers from tracking you when you open URLs (or listen to
+podcasts) in Emacs.")
+      (license (list license:gpl3+)))))
 
 
 ;;;
@@ -5022,6 +5046,28 @@ written in the Go programming language.")
 directly inside Emacs.  It requires a Google Map Static API key to function.")
       (license license:gpl3+))))
 
+(define-public emacs-geoclue
+  (let ((commit "f409b544be4d2cfd848f4658618374b0bc76cb3c")
+        (revision "1"))
+    (package
+      (name "emacs-geoclue")
+      (version (git-version "0.8.1" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://codeberg.org/emacs-weirdware/geoclue.git")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32 "1ggyn9rvc6si3xy1rrw2f2hyw6cys4bgb9v0ah0qq65y3dnziq6m"))))
+      (build-system emacs-build-system)
+      (home-page "https://codeberg.org/emacs-weirdware/geoclue")
+      (synopsis "Determine your current location using GeoClue2 over D-Bus")
+      (description "This package provides an Emacs library which lets you
+determine your current location using GeoClue2 over D-Bus.")
+      (license (list license:gpl3+)))))
+
 (define-public emacs-nominatim
   (let ((revision "0")
         (commit "f814e16f8f4e2cfd633f52b29699a009ab704fbf"))
@@ -9771,6 +9817,52 @@ interacting with the sbt shell and Scala console, compiling code and
 navigation to errors.")
     (license license:gpl3+)))
 
+(define-public emacs-9lc-mode
+  (let ((commit "7871476488fc7b66e05714797a9a5b8275988662")
+        (revision "1"))
+    (package
+      (name "emacs-9lc-mode")
+      (version (git-version  "0.7" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://codeberg.org/emacs-weirdware/9lc-mode.git")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32 "1kmx0c413yvvaq33v7lf3gzdjpxkr5faa1wj2j0m25lyyz8dsdm7"))))
+      (build-system emacs-build-system)
+      (home-page "https://codeberg.org/emacs-weirdware/geoclue")
+      (synopsis "Major mode for editing Fluke 9000 scripts")
+      (description
+       "This package provides a major mode for editing Fluke 9010a \"9LC\" files.")
+      (license (list license:gpl3+)))))
+
+(define-public emacs-tl1-mode
+  (let ((commit "48d12893cc81d7f92dc7b603d3751d8512ed0eb0")
+        (revision "1"))
+    (package
+      (name "emacs-tl1-mode")
+      (version (git-version "1.3" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://codeberg.org/emacs-weirdware/tl1-mode.git")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32 "1mf0wqbn9h0353hkhcykzrm2dk1jvyijqs4hsvgj3kwp1whws7br"))))
+      (build-system emacs-build-system)
+      (home-page "https://codeberg.org/emacs-weirdware/geoclue")
+      (synopsis "Major mode for editing Fluke 9100 TL/1 source code")
+      (description
+       "This package provides a major mode for editing Fluke TL/1 source code.
+TL/1 is a language used to control Fluke’s 9100 series of testing and
+troubleshooting mainframes.")
+      (license (list license:gpl3+)))))
+
 (define-public emacs-scheme-complete
   ;; Upstream does not provide tags.  The commit below corresponds to the
   ;; exact version update.  Version is extracted from main file.
@@ -17747,6 +17839,29 @@ in Org buffers and displays matching entries.")
 information inside the Dired buffer.")
       (license license:gpl3+))))
 
+(define-public emacs-diss
+  (let ((commit "8a99a1b34de4575087da49fe1e19bcf33ac49f46")
+        (revision "1"))
+    (package
+      (name "emacs-diss")
+      (version (git-version "1.0.0" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://codeberg.org/emacs-weirdware/diss.git")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32 "06xvl85dkp3c2cw41f2gy7db2d7fy5pv5w1wr7vd7ccdlg3fq4gc"))))
+
+      (build-system emacs-build-system)
+      (home-page "https://codeberg.org/emacs-weirdware/diss")
+      (synopsis "Dired Image Slideshow")
+      (description "Diss is a full-featured image slideshow for Emacs, based
+on Dired and image-mode.")
+      (license (list license:gpl3+)))))
+
 (define-public emacs-dired-toggle-sudo
   (let ((commit "13bbe52c54893f5aa3e56228450ffdd0c9e1d169")
         (revision "0"))
@@ -31182,6 +31297,29 @@ generating a temp buffer in which any useful Emacs utilities and modes can be
 invoked.")
       (license license:gpl3+))))
 
+(define-public emacs-exwm-mff
+  (let ((commit "89206f2e3189f589c27c56bd2b6203e906ee7100")
+        (revision "1"))
+    (package
+      (name "emacs-exwm-mff")
+      (version (git-version "1.2.1" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://codeberg.org/emacs-weirdware/exwm-mff.git")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32 "0ipmapyd4jmpnk34wk9kfbvqnl04x74yg2pmj298wqa61ylw1n9j"))))
+      (build-system emacs-build-system)
+      (home-page "https://codeberg.org/emacs-weirdware/exwm-mff")
+      (synopsis "Mouse follows focus for EXWM")
+      (description "This package provides a minor mode to automatically warp
+the mouse pointer to the center of a focused window, as well as a command to
+warp it to the currently selected window.")
+      (license (list license:gpl3+)))))
+
 (define-public emacs-exwm-modeline
   (package
     (name "emacs-exwm-modeline")
@@ -31203,6 +31341,78 @@ invoked.")
 workspaces.")
     (license license:gpl3+)))
 
+(define-public emacs-exwm-firefox-core
+  (let ((commit "e2fe2a895e8f973307ef52f8c9976b26e701cbd0")
+        (revision "1"))
+    (package
+      (name "emacs-exwm-firefox-core")
+      (version (git-version "1.0" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/walseb/exwm-firefox-core.git")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32 "0k5jkjzx6f8nfmbkc61raj585p9pymycgzv7rr3fhv2drgkaa4yi"))))
+      (inputs (list emacs-exwm))
+      (build-system emacs-build-system)
+      (home-page "https://github.com/walseb/exwm-firefox-core")
+      (synopsis "Control Firefox with EXWM")
+      (description
+       "This package contains functions that execute exwm
+keypresses mapped in firefox to the action described in the function name.")
+      (license (list license:gpl3+)))))
+
+(define-public emacs-exwm-firefox
+  (let ((commit "7390c3bc425894aeda3c12c23f61a234bb71a2d9")
+        (revision "1"))
+    (package
+      (name "emacs-exwm-firefox")
+      (version (git-version "0.4" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://codeberg.org/emacs-weirdware/exwm-firefox.git")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32 "0xmgij04h4cbcgqafyyf9qajf0wp6mxpfpwjm6gi1jgisrql882d"))))
+      (build-system emacs-build-system)
+      (inputs (list emacs-exwm-firefox-core emacs-s emacs-exwm))
+      (home-page "https://codeberg.org/emacs-weirdware/exwm-firefox")
+      (synopsis "Enhanced support for Firefox under EXWM")
+      (description
+       "This package adds enhanced support for Firefox (and forks
+based on Firefox) under EXWM.  Keybindings intentionally mirror other Emacs
+navigation controls.")
+      (license (list license:gpl3+)))))
+
+(define-public emacs-exwm-ss
+  (let ((commit "b11d3df7a50c39b4e1b92ef8a6685cf80b53912c")
+        (revision "1"))
+    (package
+      (name "emacs-exwm-ss")
+      (version (git-version "0.1" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://codeberg.org/emacs-weirdware/exwm-ss.git")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32 "045b0cjycf7nf52ap89w5dz16l1qyh940qxwvdi76v6al78amrap"))))
+      (build-system emacs-build-system)
+      (inputs (list emacs-exwm))
+      (home-page "https://codeberg.org/emacs-weirdware/exwm-ss")
+      (synopsis "Automatically inhibit screensaver activation in EXWM")
+      (description "This package provides a global minor mode to inhibit
+screensaver activation in EXWM.")
+      (license (list license:gpl3+)))))
+
 (define-public emacs-ert-async
   (package
     (name "emacs-ert-async")
@@ -34680,6 +34890,52 @@ on removable volumes in Linux.")
       (home-page "https://github.com/Akirak/helm-linux-disks")
       (license license:gpl3+))))
 
+(define-public emacs-debase
+  (let ((commit "0b6fc2af3440d68798e3a85d4c889341aae07936")
+        (revision "1"))
+    (package
+      (name "emacs-debase")
+      (version (git-version "0.7" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://codeberg.org/emacs-weirdware/debase.git")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32 "112vk1svnc6516vhs47sx5jw6bg8lwrc15l99dxj0sc313lxjy3k"))))
+      (build-system emacs-build-system)
+      (inputs (list))
+      (home-page "https://codeberg.org/emacs-weirdware/debase")
+      (synopsis "D-Bus convenience layer for Emacs")
+      (description
+       "Debase provides a higher-level API for using and implementing D-Bus
+services inside Emacs.")
+      (license (list license:gpl3+)))))
+
+(define-public emacs-discomfort
+  (let ((commit "873eea833bbae7196b92bb1102494b8bf5dc5df6")
+        (revision "1"))
+    (package
+      (name "emacs-discomfort")
+      (version (git-version "0" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://codeberg.org/emacs-weirdware/discomfort.git")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32 "01p4bfiasqxfmp9x1bxdc7763bh712d3vlp2014y8pzrwb1jqdaq"))))
+      (build-system emacs-build-system)
+      (inputs (list emacs-debase))
+      (home-page "https://codeberg.org/emacs-weirdware/discomfort")
+      (synopsis "User interface to mount & unmount disks in Emacs.")
+      (description "Discomfort is an interface to mount and unmount disks in Emacs, using UDisks2.")
+      (license (list license:gpl3+)))))
+
 (define-public emacs-psession
   (let ((commit "3e97267c92b164584e06a6c70ee7491714c7c12c")
         (revision "1"))
@@ -36209,6 +36465,80 @@ easily.  Four pre-set options are: @samp{shell}, @samp{terminal},
 you use some other configuration.")
       (license license:gpl3+))))
 
+(define-public emacs-shell-here
+  (let ((commit "eeb437ff26d62a5009046b1b3b4503b768e3131a")
+        (revision "1"))
+    (package
+      (name "emacs-shell-here")
+      (version (git-version "1.3" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://codeberg.org/emacs-weirdware/shell-here.git")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32 "0x8lnybxj7k6wj941lgqmm57f3qqnmb0gc7573l1fxwfhf39fl20"))))
+      (build-system emacs-build-system)
+      (home-page "https://codeberg.org/emacs-weirdware/shell-here")
+      (synopsis "Launch a shell relative to default-directory")
+      (description
+       "This package provides commands to open a shell buffer in (or relative
+to) the default-directory or – using projectile or find-file-in-project – a
+project root.")
+      (license (list license:gpl3+)))))
+
+(define-public emacs-hyperspace
+  (let ((commit "f574d07fd8715e806ba4f0487b73c699963baed3")
+        (revision "1"))
+    (package
+      (name "emacs-hyperspace")
+      (version (git-version "0.8.5" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://codeberg.org/emacs-weirdware/hyperspace.git")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32 "19h3d12a99i7a92k3iw4zmjmw3dazsgnkc6j4965h033r1s40amx"))))
+      (build-system emacs-build-system)
+      (inputs (list emacs-s))
+      (home-page "https://codeberg.org/emacs-weirdware/hyperspace")
+      (synopsis "Get there from here")
+      (description
+       "Hyperspace is a way to get nearly anywhere from wherever
+you are, whether that's within Emacs or on the web.  It's somewhere in between
+Quicksilver and keyword URLs, giving you a single, consistent interface to get
+directly where you want to go.  It’s for things that you use often, but not
+often enough to justify a dedicated binding.")
+      (license (list license:gpl3+)))))
+
+(define-public emacs-nssh
+  (let ((commit "74d43738565749af680e4d1388e0c2f88e93498d")
+        (revision "1"))
+    (package
+      (name "emacs-nssh")
+      (version (git-version "0.9.12" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://codeberg.org/emacs-weirdware/nssh.git")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32 "0i2nnrg7xv7b2bbby6idszs9byk2jd83q7vqj6lxgn80w94i56nn"))))
+      (build-system emacs-build-system)
+      (home-page "https://codeberg.org/emacs-weirdware/nssh")
+      (synopsis "SSH mode for Emacs")
+      (description "This package provides an SSH mode for Emacs, built on
+top of Tramp and shell mode.  It keeps a history of previously connected
+hosts and supports auto-completion of known hosts.")
+      (license (list license:gpl3+)))))
+
 (define-public emacs-tshell
   ;; XXX: Upstream has no tagged release.  Version is extracted from keyword
   ;; in main file.
@@ -37335,10 +37665,10 @@ execute code split into cells according to certain magic comments.")
 
 (define-public emacs-ein
   ;; XXX: Upstream doesn't make any release, and didn't set any version.
-  (let ((commit "b2410dc96f61aa806a7934099d8f1e40c8f6ca18"))
+  (let ((commit "998ba22660be2035cd23bed1555e47748c4da8a2"))
     (package
       (name "emacs-ein")
-      (version "20220911")
+      (version "20230826")
       (source
        (origin
          (method git-fetch)
@@ -37349,7 +37679,7 @@ execute code split into cells according to certain magic comments.")
          (file-name (git-file-name name version))
          (sha256
           (base32
-           "02392bxl0msda58cls0i79mzqjs73x39czx0mlb0sg2vxp84gy15"))))
+           "09qbswzz6kbxc74dmdgagrk5wgbm89sabf0bfy76j4qlcg6550mx"))))
       (build-system emacs-build-system)
       (arguments
        (list
diff --git a/gnu/packages/embedded.scm b/gnu/packages/embedded.scm
index af2cab1e67..313675814a 100644
--- a/gnu/packages/embedded.scm
+++ b/gnu/packages/embedded.scm
@@ -1592,7 +1592,7 @@ handling communication with eBUS devices connected to a 2-wire bus system
 (define-public ucsim
   (package
     (name "ucsim")
-    (version "0.8.0")
+    (version "0.8.2")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -1601,7 +1601,7 @@ handling communication with eBUS devices connected to a 2-wire bus system
                     "ucsim_" version "_orig.tar.gz"))
               (sha256
                (base32
-                "0qyrrna2ssvwla15al183r9zqnqdxxlqawyhx9c86a10m8q8qqlz"))))
+                "1zdvzfhdsbydyyjy5rf2934bn06skdlnky6l9ngbp2k645g0ynlh"))))
     (build-system gnu-build-system)
     (arguments
      (list
diff --git a/gnu/packages/emulators.scm b/gnu/packages/emulators.scm
index 0729feb071..138b68bc21 100644
--- a/gnu/packages/emulators.scm
+++ b/gnu/packages/emulators.scm
@@ -20,6 +20,7 @@
 ;;; Copyright © 2023 c4droid <c4droid@foxmail.com>
 ;;; Copyright © 2023 Yovan Naumovski <yovan@gorski.stream>
 ;;; Copyright © 2023 Hendursaga <hendursaga@aol.com>
+;;; Copyright © 2023 Zheng Junjie <873216071@qq.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -111,7 +112,8 @@
   #:use-module (guix build-system glib-or-gtk)
   #:use-module (guix build-system gnu)
   #:use-module (guix build-system meson)
-  #:use-module (guix build-system python))
+  #:use-module (guix build-system python)
+  #:use-module (guix build-system qt))
 
 (define-public vice
   (package
@@ -2492,6 +2494,29 @@ on a Commodore C64, C128 etc.")
     ;; zlib license with an (non-)advertising clause.
     (license license:zlib)))
 
+(define-public qtrvsim
+  (package
+    (name "qtrvsim")
+    (version "0.9.5")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/cvut/qtrvsim")
+                    (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "1zi39q8ajkzl8d47sacj0dk1a2n5jmfgr29x9iby59v792g7p8ac"))
+              (modules '((guix build utils)))
+              (snippet #~(begin (delete-file-recursively "external/libelf")))))
+    (build-system qt-build-system)
+    (inputs (list libelf qtbase-5))
+    (home-page "https://github.com/cvut/qtrvsim")
+    (synopsis "RISC-V CPU simulator for education purposes")
+    (description "RISC-V CPU simulator for education purposes with pipeline and
+cache visualization.  Developed at FEE CTU for computer architecture classes.")
+    (license license:gpl3+)))
+
 (define-public cc65
   (package
     (name "cc65")
diff --git a/gnu/packages/fcitx5.scm b/gnu/packages/fcitx5.scm
index dcf2695118..043eeffbc4 100644
--- a/gnu/packages/fcitx5.scm
+++ b/gnu/packages/fcitx5.scm
@@ -29,6 +29,7 @@
   #:use-module ((guix licenses) #:prefix license:)
   #:use-module (gnu packages anthy)
   #:use-module (gnu packages boost)
+  #:use-module (gnu packages compression)
   #:use-module (gnu packages curl)
   #:use-module (gnu packages datastructures)
   #:use-module (gnu packages enchant)
@@ -87,7 +88,7 @@ client.")
 (define-public fcitx5
   (package
     (name "fcitx5")
-    (version "5.1.0")
+    (version "5.1.5")
     (source
      (origin
        (method url-fetch)
@@ -95,7 +96,7 @@ client.")
              "https://download.fcitx-im.org/fcitx5/fcitx5/fcitx5-"
              version "_dict.tar.xz"))
        (sha256
-        (base32 "1a1d3bcxddv3hsmffgf608arhamia17bq82q932sy5zl9j8s423y"))))
+        (base32 "108a8561wh01vl5gqp2rnmnrh9qq3v8md3410dw46lx705a1wy4r"))))
     (arguments
      (list #:configure-flags #~(list "-DUSE_SYSTEMD=OFF")))
     (build-system cmake-build-system)
@@ -138,7 +139,7 @@ client.")
 (define-public fcitx5-lua
   (package
     (name "fcitx5-lua")
-    (version "5.0.10")
+    (version "5.0.11")
     (source
      (origin
        (method url-fetch)
@@ -146,7 +147,7 @@ client.")
              "https://download.fcitx-im.org/fcitx5/fcitx5-lua/fcitx5-lua-"
              version ".tar.xz"))
        (sha256
-        (base32 "13vh6i7pap3h9jrjri3cfi7pcjwhlkw9g24ibfh0aykdhd8d7p99"))))
+        (base32 "1hc1vhaycfp9bjvch7qrvza5gdimr30rvwavbwqd27lrh36910yc"))))
     (build-system cmake-build-system)
     (arguments
      (list
@@ -164,19 +165,19 @@ client.")
 (define-public libime
   (package
     (name "libime")
-    (version "1.1.0")
+    (version "1.1.3")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "https://download.fcitx-im.org/fcitx5/libime/libime-"
                            version "_dict.tar.xz"))
        (sha256
-        (base32 "0jqr9riwygr3c9qzs8hx46smhgys68bf6m70fmam819903a9gpf0"))))
+        (base32 "0c1zn4bi71a84jh7x0fly3xqrsjm08ja3sglxrkfm9snk0x6ybhf"))))
     (build-system cmake-build-system)
     (inputs
-     (list fcitx5 boost))
+     (list fcitx5 boost (list zstd "lib")))
     (native-inputs
-     (list extra-cmake-modules python))             ;needed to run test
+     (list extra-cmake-modules pkg-config))
     (home-page "https://github.com/fcitx/libime")
     (synopsis "Library for implementing generic input methods")
     (description "Libime is a library for implementing various input method
@@ -304,7 +305,7 @@ IM module for GTK+3 applications.
 (define-public fcitx5-qt
   (package
     (name "fcitx5-qt")
-    (version "5.1.0")
+    (version "5.1.3")
     (source
      (origin
        (method url-fetch)
@@ -312,7 +313,7 @@ IM module for GTK+3 applications.
                            "/fcitx5-qt/fcitx5-qt-"
                            version ".tar.xz"))
        (sha256
-        (base32 "02gnzwf0mlshmh1hw8c1866643qmdqazwjz339jq0c3ll61f8m7h"))))
+        (base32 "0wyzq91fcqhv655fjhzfjmlj0xr365sl5cjgck75xaj08gj3mw61"))))
     (build-system cmake-build-system)
     (arguments
      `(#:configure-flags
@@ -339,7 +340,7 @@ for Qt based application.")
 (define-public fcitx5-anthy
   (package
     (name "fcitx5-anthy")
-    (version "5.1.0")
+    (version "5.1.2")
     (source
      (origin
        (method url-fetch)
@@ -347,7 +348,7 @@ for Qt based application.")
                            "/fcitx5-anthy/fcitx5-anthy-"
                            version ".tar.xz"))
        (sha256
-        (base32 "0hzk3v36ph6f2nnlqqyw08w3qakbcb71y572ff09cy5b20vb29dp"))))
+        (base32 "0a1x1b7y5n1a9clb9j9mryhx2fnd5l5rwb74f38c0s93rxx8fhpf"))))
     (build-system cmake-build-system)
     (arguments
      `(#:tests? #f)) ;; no tests
@@ -363,7 +364,7 @@ the Anthy input method.")
 (define-public fcitx5-chinese-addons
   (package
     (name "fcitx5-chinese-addons")
-    (version "5.1.0")
+    (version "5.1.2")
     (source
      (origin
        (method url-fetch)
@@ -371,7 +372,7 @@ the Anthy input method.")
                            "/fcitx5-chinese-addons/fcitx5-chinese-addons-"
                            version "_dict.tar.xz"))
        (sha256
-        (base32 "1akf4qqvck7m93i0183ffb7jfsz0rq4f3bkf89vfxlqp4i7lfw5l"))))
+        (base32 "13na8qvz0vh43gmxa81jn96xpp6maz71ga039z6lqr069hzsx1vc"))))
     (build-system cmake-build-system)
     (arguments
      `(#:configure-flags
@@ -427,7 +428,7 @@ including input methods previous bundled inside Fcitx 4:
 (define-public fcitx5-configtool
   (package
     (name "fcitx5-configtool")
-    (version "5.1.0")
+    (version "5.1.2")
     (source
      (origin
        (method url-fetch)
@@ -435,7 +436,7 @@ including input methods previous bundled inside Fcitx 4:
              "https://download.fcitx-im.org/fcitx5"
              "/fcitx5-configtool/fcitx5-configtool-" version ".tar.xz"))
        (sha256
-        (base32 "0xv5kckm6bsbavw0s2iqg128fv7j8sh49lpwc0acqrdmwj49x1pz"))))
+        (base32 "1k6101wjl5j9qb174j75g5nbvz7hvh0cj01w6b9n65pqcv4hsf6c"))))
     (build-system cmake-build-system)
     (arguments
      `(#:configure-flags
@@ -537,7 +538,7 @@ for Fcitx 5 with following color variants:
 (define-public fcitx5-rime
   (package
     (name "fcitx5-rime")
-    (version "5.1.1")
+    (version "5.1.3")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://download.fcitx-im.org/fcitx5"
@@ -545,7 +546,7 @@ for Fcitx 5 with following color variants:
                                   ".tar.xz"))
               (sha256
                (base32
-                "1h6vh5pkak8l528l2d2nw5gy6zqa2sy3ris3xzkakb8kmgyjd3da"))))
+                "0cs3zq69fpasch6sq9yar2qw8403rxr2g4hjxn7mmshi1h1j6nm8"))))
     (build-system cmake-build-system)
     (arguments
      '(#:tests? #f ;no tests
diff --git a/gnu/packages/finance.scm b/gnu/packages/finance.scm
index 4f3415232c..cd419f2102 100644
--- a/gnu/packages/finance.scm
+++ b/gnu/packages/finance.scm
@@ -1957,13 +1957,13 @@ that allows you to run services and through them access the Bitcoin Cash network
 (define-public beancount
   (package
     (name "beancount")
-    (version "2.3.5")
+    (version "2.3.6")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "beancount" version))
        (sha256
-        (base32 "0sn3x6c5vwvdfak1qm0y4vv284izrc4dly31mqyd9jz9l8jmdqql"))
+        (base32 "0nj7sdh7wxc0hv8wxwqhw9v1zgx1sn4w92368ci2wzdmssz967w0"))
        (patches (search-patches "beancount-disable-googleapis-fonts.patch"))))
     (build-system python-build-system)
     (arguments
diff --git a/gnu/packages/flashing-tools.scm b/gnu/packages/flashing-tools.scm
index 23d21ca6a9..6165845261 100644
--- a/gnu/packages/flashing-tools.scm
+++ b/gnu/packages/flashing-tools.scm
@@ -580,7 +580,7 @@ formats, and can perform many different manipulations.")
 (define-public uuu
   (package
     (name "uuu")
-    (version "1.4.165")
+    (version "1.5.125")
     (source
      (origin
        (method git-fetch)
@@ -590,7 +590,7 @@ formats, and can perform many different manipulations.")
        (file-name (git-file-name name version))
        (sha256
         (base32
-         "0k309lp27d4k6x4qq0badbk8i47xsc6f3fffz73650iyfs4hcniw"))))
+         "02nyax1z2qkcxs764lj5cpazv8n957hv9ipd9b5rqpgi9pgnvlvz"))))
     (arguments
      `(#:tests? #f                      ; no tests
        #:modules ((guix build utils)
@@ -618,7 +618,8 @@ formats, and can perform many different manipulations.")
     (native-inputs
      (list pkg-config))
     (inputs
-     (list libusb bzip2 zlib libzip openssl))
+     (list libusb bzip2 zlib libzip openssl
+           `(,zstd "lib")))
     (home-page "https://github.com/NXPmicro/mfgtools")
     (synopsis "Freescale/NXP I.MX chip image deploy tools")
     (description "@code{uuu} is a command line tool, evolved out of MFGTools.
diff --git a/gnu/packages/fonts.scm b/gnu/packages/fonts.scm
index 22a42d227f..813367be8a 100644
--- a/gnu/packages/fonts.scm
+++ b/gnu/packages/fonts.scm
@@ -1952,7 +1952,7 @@ weights and five widths in both Roman and Italic, plus variable fonts.")
 (define-public font-sarasa-gothic
   (package
     (name "font-sarasa-gothic")
-    (version "0.42.1")
+    (version "0.42.6")
     (source
      (origin
        (method url-fetch)
@@ -1960,7 +1960,7 @@ weights and five widths in both Roman and Italic, plus variable fonts.")
                            "/releases/download/v" version
                            "/sarasa-gothic-ttc-" version ".7z"))
        (sha256
-        (base32 "0lrhipis21cafpsf8wsrdavlblfgzz424r23rj78ik8npbws1a3v"))))
+        (base32 "0czx10yph2lxg2k4w6qjnil73zb2pgg3g400apm9gay41m04990v"))))
     (build-system font-build-system)
     (arguments
      `(#:phases (modify-phases %standard-phases
@@ -3159,7 +3159,7 @@ and readability.  This package bundles those icons into a font.")
 (define-public font-lxgw-wenkai
   (package
     (name "font-lxgw-wenkai")
-    (version "1.310")
+    (version "1.311")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -3167,7 +3167,7 @@ and readability.  This package bundles those icons into a font.")
                     version "/lxgw-wenkai-v" version ".tar.gz"))
               (sha256
                (base32
-                "10z8ilcpfxmll6j6ck4yj90x48vh3c7ck0lm61qjangpw9fcgfb1"))))
+                "0f5fnqcwp8kicrbkncn5j1w06cil771jfdcjf2w48vl62m4gmf27"))))
     (build-system font-build-system)
     (home-page "https://lxgw.github.io/2021/01/28/Klee-Simpchin/")
     (synopsis "Simplified Chinese Imitation Song typeface")
@@ -3181,7 +3181,7 @@ within GB 2312, standard glyphs for Mainland China is used.")
   (package
     (inherit font-lxgw-wenkai)
     (name "font-lxgw-wenkai-tc")
-    (version "1.010")
+    (version "1.011")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -3189,7 +3189,7 @@ within GB 2312, standard glyphs for Mainland China is used.")
                     version "/lxgw-wenkai-tc-v" version ".tar.gz"))
               (sha256
                (base32
-                "1yppqrfmynai1canlq0hksl3yaj8kflbnj41ljl4lxwaz6q9i1ly"))))
+                "0x83a7zg1w82bpilk84ajlisccf90kl01gz89fipgqji9nii71bv"))))
     (home-page "https://github.com/lxgw/LxgwWenKaitc")
     (synopsis "Traditional Chinese Imitation Song typeface")
     (description
diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index ac3035e07d..0be935585d 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -30,7 +30,7 @@
 ;;; Copyright © 2017, 2020, 2021 Brendan Tildesley <mail@brendan.scot>
 ;;; Copyright © 2017, 2018 Rutger Helling <rhelling@mykolab.com>
 ;;; Copyright © 2018 Jovany Leandro G.C <bit4bit@riseup.net>
-;;; Copyright © 2018 Vasile Dumitrascu <va511e@yahoo.com>
+;;; Copyright © 2018, 2023 Vasile Dumitrascu <va511e@yahoo.com>
 ;;; Copyright © 2018 Björn Höfling <bjoern.hoefling@bjoernhoefling.de>
 ;;; Copyright © 2018, 2019 Timothy Sample <samplet@ngyro.com>
 ;;; Copyright © 2019 Danny Milosavljevic <dannym@scratchpost.org>
@@ -8635,7 +8635,10 @@ Cisco's AnyConnect SSL VPN.")
                   libsecret
                   network-manager
                   openfortivpn
-                  ppp))
+
+                  ;; ppp < 2.5.0 is currently required:
+                  ;; https://gitlab.gnome.org/GNOME/NetworkManager-fortisslvpn/-/commit/084ef529c5fb816927ca54866f66b340265aa9f6
+                  ppp-2.4.9))
     (home-page "https://wiki.gnome.org/Projects/NetworkManager/VPN")
     (synopsis "Fortinet SSLVPN plug-in for NetworkManager")
     (description
@@ -8669,7 +8672,7 @@ to virtual private networks (VPNs) via Fortinet SSLVPN.")
 (define-public network-manager-applet
   (package
     (name "network-manager-applet")
-    (version "1.32.0")
+    (version "1.34.0")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://gnome/sources/network-manager-applet/"
@@ -8677,7 +8680,7 @@ to virtual private networks (VPNs) via Fortinet SSLVPN.")
                                   "network-manager-applet-" version ".tar.xz"))
               (sha256
                (base32
-                "0f5sxxi9rywg8mhglcyk3sqmgv5wwl4vxzar56847b852pxazdd2"))))
+                "1a55mf4ww06lqacs6zndp29ayyby5f8rgg1lp341y5kb1x3qwdmb"))))
     (build-system meson-build-system)
     (arguments
      `(#:glib-or-gtk? #t
diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm
index 9c707e5414..ead9622d8c 100644
--- a/gnu/packages/golang.scm
+++ b/gnu/packages/golang.scm
@@ -41,6 +41,7 @@
 ;;; Copyright © 2022 Christopher Howard <christopher@librehacker.com>
 ;;; Copyright © 2023 Hilton Chain <hako@ultrarare.space>
 ;;; Copyright © 2023 Timo Wilken <guix@twilken.net>
+;;; Copyright © 2023 Artyom V. Poptsov <poptsov.artyom@gmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -3988,6 +3989,23 @@ the official package.")
       (home-page "https://go.googlesource.com/net")
       (license license:bsd-3))))
 
+(define-public go-golang-org-x-net-0.17
+  (let ((commit "b225e7ca6dde1ef5a5ae5ce922861bda011cfabd")
+        (revision "0"))
+    (package
+      (inherit go-golang-org-x-net)
+      (name "go-golang-org-x-net")
+      (version (git-version "0.17.0" revision commit))
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url "https://go.googlesource.com/net")
+                      (commit commit)))
+                (file-name (git-file-name name version))
+                (sha256
+                 (base32
+                  "17zhim2m0r8nyy18g2lsawxm4rawix2qbjyn80x9vc6jc8fv05m9")))))))
+
 (define-public go-golang-org-x-net-html
   (package
     (inherit go-golang-org-x-net)
@@ -4091,6 +4109,24 @@ support for low-level interaction with the operating system.")
       (home-page "https://go.googlesource.com/sys")
       (license license:bsd-3))))
 
+;; XXX: This version is required for "go-github-com-quic-go-qtls-go1-20".
+(define-public go-golang-org-x-sys-0.8
+  (let ((commit "ca59edaa5a761e1d0ea91d6c07b063f85ef24f78")
+        (revision "0"))
+    (package
+      (inherit go-golang-org-x-sys)
+      (name "go-golang-org-x-sys")
+      (version (git-version "0.8.0" revision commit))
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url "https://go.googlesource.com/sys")
+                      (commit commit)))
+                (file-name (git-file-name name version))
+                (sha256
+                 (base32
+                  "1p81niiin8dwyrjl2xsc95136w3vdw4kmj0w3mlh0vh5v134s4xq")))))))
+
 (define-public go-golang-org-x-text
   (package
     (name "go-golang-org-x-text")
@@ -5577,7 +5613,8 @@ values.")
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "01b0wjb7yzv8wzzz2iim8mjpkwjnykcanrwiq06pkl89lr6gv8hn"))))
+        (base32 "01b0wjb7yzv8wzzz2iim8mjpkwjnykcanrwiq06pkl89lr6gv8hn"))
+       (patches (search-patches "go-gopkg-in-yaml-v3-32bit.patch"))))
     (build-system go-build-system)
     (arguments
      '(#:import-path "gopkg.in/yaml.v3"))
@@ -7691,35 +7728,110 @@ implementation of generics.")
     (home-page "https://github.com/cheekybits/genny/")
     (license license:expat)))
 
-(define-public go-github-com-lucas-clemente-quic-go
+(define-public go-github-com-quic-go-qtls-go1-20
+  (package
+    (name "go-github-com-quic-go-qtls-go1-20")
+    (version "0.3.4")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/quic-go/qtls-go1-20")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "0fl3yv1w8cygag3lav45vvzb4k9i72p92x13wcq0xn13wxirzirn"))))
+    (build-system go-build-system)
+    (arguments
+     (list
+      #:import-path "github.com/quic-go/qtls-go1-20"
+      #:go go-1.20))
+    (propagated-inputs (list go-golang-org-x-crypto
+                             go-golang-org-x-sys-0.8))
+    (synopsis "TLS 1.3 for QUIC")
+    (description
+     "Go standard library TLS 1.3 implementation, modified for QUIC.  For
+Go 1.20.")
+    (home-page "https://github.com/quic-go/qtls-go1-20")
+    (license license:expat)))
+
+(define-public go-github-com-quic-go-qpack
   (package
-    (name "go-github-com-lucas-clemente-quic-go")
-    (version "0.14.4")
+    (name "go-github-com-quic-go-qpack")
+    (version "0.4.0")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/quic-go/qpack")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "00mjz445hhx4yar5l8p21bpp4d06jyg2ajw0ax7bh64d37l4kx39"))))
+    (build-system go-build-system)
+    (arguments
+     (list
+      #:import-path "github.com/quic-go/qpack"
+      ;; Tests require ginkgo v2.
+      #:tests? #f
+      #:go go-1.20))
+    (propagated-inputs (list go-github-com-onsi-gomega
+                             go-github-com-onsi-ginkgo
+                             go-golang-org-x-net))
+    (synopsis "Minimal QPACK (RFC 9204) implementation for Go")
+    (description
+     "A minimal QPACK (RFC 9204) implementation in Go.  It is minimal in the sense
+that it doesn't use the dynamic table at all, but just the static table and (Huffman
+encoded) string literals.  Wherever possible, it reuses code from the
+@url{https://github.com/golang/net/tree/master/http2/hpack, HPACK implementation in
+the Go standard library}.")
+    (home-page "https://github.com/quic-go/qpack")
+    (license license:expat)))
+
+(define-public go-github-com-quic-go-quic-go
+  (package
+    (name "go-github-com-quic-go-quic-go")
+    (version "0.39.3")
     (source (origin
               (method git-fetch)
               (uri (git-reference
-                     (url "https://github.com/lucas-clemente/quic-go")
+                     (url "https://github.com/quic-go/quic-go")
                      (commit (string-append "v" version))))
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "04l3gqbc3gh079n8vgnrsf8ypgv8sl63xjf28jqfrb45v2l73vyz"))))
+                "0acabl3cz48nxpggc5s7fwxpmr5amyi09jygn5m5xxkkbhqs2cxq"))))
     (build-system go-build-system)
     (arguments
-     '(#:import-path "github.com/lucas-clemente/quic-go"
-       ;; XXX More packages required...
-       #:tests? #f))
+     (list #:import-path "github.com/quic-go/quic-go"
+           ;; XXX More packages required...
+           #:tests? #f
+           #:go go-1.20))
     (propagated-inputs
-     (list go-golang-org-x-crypto go-github-com-cheekybits-genny
-           go-github-com-marten-seemann-chacha20
-           go-github-com-marten-seemann-qtls
-           go-github-com-golang-protobuf-proto))
+     (let ((p (package-input-rewriting
+               `((,go-golang-org-x-sys . ,go-golang-org-x-sys-0.8))
+               #:deep? #true)))
+       (cons go-golang-org-x-sys-0.8
+             (map p
+                  (list go-github-com-quic-go-qtls-go1-20
+                        go-github-com-quic-go-qpack
+                        go-golang-org-x-crypto
+                        go-github-com-cheekybits-genny
+                        go-github-com-marten-seemann-chacha20
+                        go-github-com-golang-protobuf-proto
+                        go-golang-org-x-crypto
+                        go-golang-org-x-exp
+                        go-golang-org-x-net
+                        go-golang-org-x-sync)))))
     (synopsis "QUIC in Go")
     (description "This package provides a Go language implementation of the QUIC
 network protocol.")
-    (home-page "https://github.com/lucas-clemente/quic-go")
+    (home-page "https://github.com/quic-go/quic-go")
     (license license:expat)))
 
+(define-public go-github-com-lucas-clemente-quic-go
+  (deprecated-package "go-github-com-lucas-clemente-quic-go" go-github-com-quic-go-quic-go))
+
 (define-public go-github-com-lunixbochs-vtclean
   (package
     (name "go-github-com-lunixbochs-vtclean")
@@ -8635,45 +8747,48 @@ directories.  It is optimized for filewalking.")
 @code{database/sql}.")
     (license license:expat)))
 
-(define-public go-github-com-willf-bitset
+(define-public go-github-com-bits-and-blooms-bitset
   (package
-    (name "go-github-com-willf-bitset")
-    (version "1.1.10")
+    (name "go-github-com-bits-and-blooms-bitset")
+    (version "1.11.0")
     (source (origin
               (method git-fetch)
               (uri (git-reference
-                     (url "https://github.com/willf/bitset")
-                     (commit (string-append "v" version))))
+                    (url "https://github.com/bits-and-blooms/bitset")
+                    (commit (string-append "v" version))))
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "0wpaxg6va3qwd0hq0b8rpb1hswvzzbfm2h8sjmcsdpbkydjjx9zg"))))
+                "1ialciixmr98p10rh61rnnkxpqi1j9hycbkv9rnjl0vnmsnpy0cy"))))
     (build-system go-build-system)
     (arguments
-     '(#:import-path "github.com/willf/bitset"))
+     '(#:import-path "github.com/bits-and-blooms/bitset"))
     (synopsis "Bitsets in Go")
     (description "This package provides a Go implementation of bitsets, which
 are a mapping between non-negative integers and boolean values focused on
 efficient space usage.")
-    (home-page "https://github.com/willf/bitset")
+    (home-page "https://github.com/bits-and-blooms/bitset")
     (license license:bsd-3)))
 
-(define-public go-github-com-willf-bloom
+(define-public go-github-com-willf-bitset
+  (deprecated-package "go-github-com-willf-bitset" go-github-com-bits-and-blooms-bitset))
+
+(define-public go-github-com-bits-and-blooms-bloom
   (package
-    (name "go-github-com-willf-bloom")
-    (version "2.0.3")
+    (name "go-github-com-bits-and-blooms-bloom")
+    (version "3.6.0")
     (source (origin
               (method git-fetch)
               (uri (git-reference
-                     (url "https://github.com/willf/bloom")
-                     (commit (string-append "v" version))))
+                    (url "https://github.com/bits-and-blooms/bloom")
+                    (commit (string-append "v" version))))
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "0ygan8pgcay7wx3cs3ja8rdqj7nly7v3and97ddcc66020jxchzg"))))
+                "02rpjlgl7k3755qnlsk519xazgqlk73b8wvkpqlvccywms5w77bq"))))
     (build-system go-build-system)
     (arguments
-     '(#:import-path "github.com/willf/bloom"
+     '(#:import-path "github.com/bits-and-blooms/bloom"
        #:phases
        (modify-phases %standard-phases
          (add-after 'unpack 'patch-import-path
@@ -8681,17 +8796,20 @@ efficient space usage.")
              ;; See 'go.mod' in the source distribution of Syncthing 1.5.0 for
              ;; more information.
              ;; <https://github.com/spaolacci/murmur3/issues/29>
-             (substitute* "src/github.com/willf/bloom/bloom.go"
+             (substitute* "src/github.com/bits-and-blooms/bloom/bloom.go"
                (("spaolacci") "twmb"))
              #t)))))
     (propagated-inputs
-     (list go-github-com-twmb-murmur3 go-github-com-willf-bitset))
+     (list go-github-com-twmb-murmur3 go-github-com-bits-and-blooms-bitset))
     (synopsis "Bloom filters in Go")
     (description "This package provides a Go implementation of bloom filters,
 based on murmurhash.")
-    (home-page "https://github.com/willf/bloom")
+    (home-page "https://github.com/bits-and-blooms/bitset")
     (license license:bsd-2)))
 
+(define-public go-github-com-willf-bloom
+  (deprecated-package "go-github-com-willf-bloom" go-github-com-bits-and-blooms-bloom))
+
 (define-public go-golang-org-rainycape-unidecode
   (let ((commit "cb7f23ec59bec0d61b19c56cd88cee3d0cc1870c")
         (revision "1"))
@@ -11959,7 +12077,7 @@ dependencies and a simple API.")
 (define-public go-github-com-arceliar-ironwood
   (package
     (name "go-github-com-arceliar-ironwood")
-    (version "0.0.0-20221115123222-ec61cea2f439")
+    (version "v0.0.0-20231028101932-ceac99571f43")
     (source
      (origin
        (method git-fetch)
@@ -11969,7 +12087,7 @@ dependencies and a simple API.")
        (file-name (git-file-name name version))
        (sha256
         (base32
-         "0jdfhsr1yci0a4fpf2pmh9n4d7iryjx12y3549gv9nfjf91rs225"))))
+         "1shxpmi847jf7rfa5mb0m4nflwmlg65hjgjm9v7ynjvcp0licsi4"))))
     (build-system go-build-system)
     (arguments
      '(#:import-path "github.com/Arceliar/ironwood"
diff --git a/gnu/packages/guile-xyz.scm b/gnu/packages/guile-xyz.scm
index af032db680..557589d2bb 100644
--- a/gnu/packages/guile-xyz.scm
+++ b/gnu/packages/guile-xyz.scm
@@ -1373,6 +1373,31 @@ non-mutating insert, delete, and search operations, with support for
 convenient nested tree operations.")
     (license license:gpl3+)))
 
+(define-public guile-algorithms
+  (package
+    (name "guile-algorithms")
+    (version "0.1")
+      (source
+        (origin
+          (method git-fetch)
+          (uri (git-reference
+                 (url "https://git@git.sr.ht/~filiplajszczak/guile-algorithms")
+                 (commit (string-append "v" version))))
+          (file-name (git-file-name name version))
+          (sha256
+            (base32
+             "1a4ffnnhw92gqphjji5ajy3xfaqzww7xv3h8p82gkawx0rqvj5ni"))))
+    (build-system gnu-build-system)
+    (native-inputs (list autoconf automake pkg-config texinfo))
+    (inputs (list guile-3.0))
+    (synopsis "Guile port of racket-algorithms")
+    (description
+     "Guile port of @url{https://docs.racket-lang.org/algorithms/index.html,
+racket-algorithms}, a package containing useful algorithms borrowed from other
+programming languages).")
+    (home-page "https://guile-algorithms.lajszczak.dev/")
+    (license license:gpl3+)))
+
 (define-public guile-aws
   (let ((commit "f32bea12333e1054b97ab50e58a72636edabb5b7")
         (revision "1"))
@@ -4593,7 +4618,7 @@ according to Bitorrent BEP003.")
 (define-public guile-ts
   (package
     (name "guile-ts")
-    (version "0.1.0")
+    (version "0.2.0")
     (source (origin (method git-fetch)
                     (uri (git-reference
                           (url
@@ -4602,7 +4627,7 @@ according to Bitorrent BEP003.")
                     (file-name (git-file-name name version))
                     (sha256
                      (base32
-                      "0xmq2d3mv921m0g1hqw6bjzh4m622g2c7pal11ks7vjn0m8d4bxj"))))
+                      "1iqbr9rcpmq2f1zxxvl36ajwm81rkp38rrp42ixr4q59154r5513"))))
     (build-system gnu-build-system)
     (arguments
      (list #:make-flags #~(list "GUILE_AUTO_COMPILE=0")
diff --git a/gnu/packages/instrumentation.scm b/gnu/packages/instrumentation.scm
index 7fa7b2f7ba..8b1a2a1c02 100644
--- a/gnu/packages/instrumentation.scm
+++ b/gnu/packages/instrumentation.scm
@@ -85,7 +85,9 @@
      `(#:tests? #f  ; FIXME - When Python's bindings are enabled, tests do not
                     ; pass.
        #:make-flags
-       ,#~(list (string-append "LDFLAGS=-Wl,-rpath=" #$output "/lib"))
+       ,#~(list
+           (string-append "LDFLAGS=-Wl,-rpath=" #$output "/lib")
+           "DISTSETUPOPTS=--single-version-externally-managed") ;no .egg files
        #:configure-flags
        '("--enable-debug-info"
          "--enable-man-pages"
@@ -95,11 +97,9 @@
        (modify-phases %standard-phases
          ;; These are recommended in the project's README for a development
          ;; build configuration.
-         (add-before 'configure 'set-environment-variables
+         (add-after 'unpack 'reconfigure
            (lambda _
-             (setenv "BABELTRACE_DEV_MODE" "1")
-             (setenv "BABELTRACE_MINIMAL_LOG_LEVEL" "TRACE")
-             (invoke "autoreconf" "-vfi"))))))
+             (delete-file "configure"))))))
     (inputs
      (list glib))
     ;; NOTE - elfutils is used for the LTTng debug information filter
@@ -141,6 +141,21 @@ LTTng and barectf.  This package provides a library with a C API, Python 3
 bindings, and the command-line tool @command{babeltrace2}.")
     (license license:expat)))
 
+(define-public babeltrace/dev
+  (package/inherit babeltrace
+    ;; This dev variant of the package babeltrace is slower but allows better
+    ;; development of plugins as recommended by the authors.
+    (name "babeltrace-dev")
+    (synopsis "Trace manipulation toolkit (variant for plugin developers)")
+    (arguments
+     (substitute-keyword-arguments (package-arguments babeltrace)
+       ((#:phases phases)
+        `(modify-phases ,phases
+           (add-before 'configure 'set-environment-variables
+             (lambda _
+               (setenv "BABELTRACE_DEV_MODE" "1")
+               (setenv "BABELTRACE_MINIMAL_LOG_LEVEL" "TRACE")))))))))
+
 (define-public barectf
   (package
     (name "barectf")
diff --git a/gnu/packages/language.scm b/gnu/packages/language.scm
index faf3114b84..db78425ec9 100644
--- a/gnu/packages/language.scm
+++ b/gnu/packages/language.scm
@@ -854,7 +854,7 @@ noun phrases, verb phrases, etc.).")
 (define-public praat
   (package
     (name "praat")
-    (version "6.3.10")
+    (version "6.4")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -863,7 +863,7 @@ noun phrases, verb phrases, etc.).")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "0kwv0p2bn2x5h0c61rymm87icqqwnbj699awgc5afl4qp53azci8"))))
+                "1rabv4175r1kbgb6n5xbir4j9ldpfr3wr6xa8jakzgny3dwlmsbg"))))
     (build-system gnu-build-system)
     (arguments
      (list #:make-flags #~(list (string-append "CC="
diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm
index 2024163a08..2c2164d83c 100644
--- a/gnu/packages/linux.scm
+++ b/gnu/packages/linux.scm
@@ -493,7 +493,7 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
 ;; The current "stable" kernels. That is, the most recently released major
 ;; versions that are still supported upstream.
 
-(define-public linux-libre-6.6-version "6.6.1")
+(define-public linux-libre-6.6-version "6.6.2")
 (define-public linux-libre-6.6-gnu-revision "gnu")
 (define deblob-scripts-6.6
   (linux-libre-deblob-scripts
@@ -503,12 +503,12 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
    (base32 "1hg3ck1j8288fhlhcvhgs1zzwh3i62nfvphw7x3vsaqr75kiwbjp")))
 (define-public linux-libre-6.6-pristine-source
   (let ((version linux-libre-6.6-version)
-        (hash (base32 "0d42b1hbvv9w3y3q4wydr6il0g5a823n54a06p4p5vcpgkadf7ns")))
+        (hash (base32 "0zmpk5ls6282j88xpnymkr8z5hxpk2495hjjxm0jmb6ninnzdm3k")))
    (make-linux-libre-source version
                             (%upstream-linux-source version hash)
                             deblob-scripts-6.6)))
 
-(define-public linux-libre-6.5-version "6.5.11")
+(define-public linux-libre-6.5-version "6.5.12")
 (define-public linux-libre-6.5-gnu-revision "gnu")
 (define deblob-scripts-6.5
   (linux-libre-deblob-scripts
@@ -518,7 +518,7 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
    (base32 "066z5lw5vrfayhv23hpfcm6fh6b7zmn2v13kfv1g3z3jl1wblhfh")))
 (define-public linux-libre-6.5-pristine-source
   (let ((version linux-libre-6.5-version)
-        (hash (base32 "06dmb4hbwrms0lp4axphwgj8wbnzsym70sx55lxr501b53wlmqif")))
+        (hash (base32 "17rmkzxszp2jg1zx2mmdcy30ffrsd0qms513sxd14klp5k9w2saa")))
    (make-linux-libre-source version
                             (%upstream-linux-source version hash)
                             deblob-scripts-6.5)))
@@ -526,7 +526,7 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
 ;; The "longterm" kernels — the older releases with long-term upstream support.
 ;; Here are the support timelines:
 ;; <https://www.kernel.org/category/releases.html>
-(define-public linux-libre-6.1-version "6.1.62")
+(define-public linux-libre-6.1-version "6.1.63")
 (define-public linux-libre-6.1-gnu-revision "gnu")
 (define deblob-scripts-6.1
   (linux-libre-deblob-scripts
@@ -536,12 +536,12 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
    (base32 "1hdibv43xbn1lv83i6qjgfmf1bvqxvq17fryfsq4r4sjgs9212js")))
 (define-public linux-libre-6.1-pristine-source
   (let ((version linux-libre-6.1-version)
-        (hash (base32 "1v453q4sf0j8708ivs1zmdf645hgimqvxfc8xz7czgnnmipn3zdr")))
+        (hash (base32 "13bmy22mi4ybl21kr3hdy6qiaawiqz2jgl2gl9hwqkyx04xh97f2")))
    (make-linux-libre-source version
                             (%upstream-linux-source version hash)
                             deblob-scripts-6.1)))
 
-(define-public linux-libre-5.15-version "5.15.138")
+(define-public linux-libre-5.15-version "5.15.139")
 (define-public linux-libre-5.15-gnu-revision "gnu")
 (define deblob-scripts-5.15
   (linux-libre-deblob-scripts
@@ -551,12 +551,12 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
    (base32 "1idjrn2w8jrixj8ifkk1awxyyq5042nc4p2mld4rda96azlnp948")))
 (define-public linux-libre-5.15-pristine-source
   (let ((version linux-libre-5.15-version)
-        (hash (base32 "1ajaxy97gx0c9cdxiyxa49ykfsykir22i9abfrcizh71ci0yb15g")))
+        (hash (base32 "0kh4v1224a7p7ib64pnmc1qid3d1lvg3c14l5s4rpr8qzq6w2s4w")))
    (make-linux-libre-source version
                             (%upstream-linux-source version hash)
                             deblob-scripts-5.15)))
 
-(define-public linux-libre-5.10-version "5.10.200")
+(define-public linux-libre-5.10-version "5.10.201")
 (define-public linux-libre-5.10-gnu-revision "gnu1")
 (define deblob-scripts-5.10
   (linux-libre-deblob-scripts
@@ -566,12 +566,12 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
    (base32 "0xrrnmb5kcc5r21bdm24aq0fnkk1imn367c1cxlj78b6l6gigx4b")))
 (define-public linux-libre-5.10-pristine-source
   (let ((version linux-libre-5.10-version)
-        (hash (base32 "012i41bj8rcqn0vhfxrwq3gg82nb6pp2cwq8n146wj47pwgrcbcx")))
+        (hash (base32 "0642y6qj2d4aww6jcki81ba53pvjyfazjxgzgj8brqx8ixchdz3a")))
    (make-linux-libre-source version
                             (%upstream-linux-source version hash)
                             deblob-scripts-5.10)))
 
-(define-public linux-libre-5.4-version "5.4.260")
+(define-public linux-libre-5.4-version "5.4.261")
 (define-public linux-libre-5.4-gnu-revision "gnu1")
 (define deblob-scripts-5.4
   (linux-libre-deblob-scripts
@@ -581,12 +581,12 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
    (base32 "0sw67b2pk3lng4y67diqqnhxaggnp3nbkx8dxc5fs27rinfxr4m1")))
 (define-public linux-libre-5.4-pristine-source
   (let ((version linux-libre-5.4-version)
-        (hash (base32 "1zpbaipd2j3idj8h9iznlj0ywcq5nkhwj707a1f9ixf82h3q4c4q")))
+        (hash (base32 "1hsgnv2vcziflhzrrxiny2yp88ybdqda48fm60xhpaphhs0cgfii")))
    (make-linux-libre-source version
                             (%upstream-linux-source version hash)
                             deblob-scripts-5.4)))
 
-(define-public linux-libre-4.19-version "4.19.298")
+(define-public linux-libre-4.19-version "4.19.299")
 (define-public linux-libre-4.19-gnu-revision "gnu1")
 (define deblob-scripts-4.19
   (linux-libre-deblob-scripts
@@ -596,12 +596,12 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
    (base32 "1425mhkfxn18vxn05bb4h3li7x1jl7l1hf1zi8xhnqv3wa31h9wl")))
 (define-public linux-libre-4.19-pristine-source
   (let ((version linux-libre-4.19-version)
-        (hash (base32 "0mhgq6hdcls1af7nj999x1mds5b37s7vwin8nsb4q0lnx2y1da4x")))
+        (hash (base32 "12p431p2jqjfsf0all3fgn47z9fr2cdqyxipfrf4s4mlw4hpbyy6")))
     (make-linux-libre-source version
                              (%upstream-linux-source version hash)
                              deblob-scripts-4.19)))
 
-(define-public linux-libre-4.14-version "4.14.329")
+(define-public linux-libre-4.14-version "4.14.330")
 (define-public linux-libre-4.14-gnu-revision "gnu1")
 (define deblob-scripts-4.14
   (linux-libre-deblob-scripts
@@ -611,7 +611,7 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
    (base32 "1faagsj4i31z2bp83hflx3q9vrddjnn37a3ah2b47iaplva7z1nd")))
 (define-public linux-libre-4.14-pristine-source
   (let ((version linux-libre-4.14-version)
-        (hash (base32 "1dvb4xf0b7snabznl7bg7gga7ffdmywy8vr8q65pzl9yf6fnhdny")))
+        (hash (base32 "0rwgzyfmrns6zir0dpxkwz2hm3z8c0af3wy11lmxamaa5i2wq3k7")))
     (make-linux-libre-source version
                              (%upstream-linux-source version hash)
                              deblob-scripts-4.14)))
diff --git a/gnu/packages/lisp-check.scm b/gnu/packages/lisp-check.scm
index 63a16d608c..5f5e39c193 100644
--- a/gnu/packages/lisp-check.scm
+++ b/gnu/packages/lisp-check.scm
@@ -1149,3 +1149,32 @@ on the XPTest package by Craig Brozensky and the JUnit package by Kent Beck.")
 
 (define-public ecl-xlunit
   (sbcl-package->ecl-package sbcl-xlunit))
+
+(define-public sbcl-lisp-critic
+  (let ((commit "ea19f82a168a6119ac1b10d0f457c01a7119602f")
+        (revision "1"))
+    (package
+      (name "sbcl-lisp-critic")
+      (version (git-version "1.1" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/g000001/lisp-critic")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32 "15zg05pqfs2dhc5j7gfkwjmxawaizjpyb0p7386mpl4w93l9h84l"))))
+      (build-system asdf-build-system/sbcl)
+      (synopsis "Common Lisp linter")
+      (description "The Lisp Critic scans your code for instances of bad
+  Lisp programming practice.")
+      (home-page
+       "https://courses.cs.northwestern.edu/325/exercises/critic.html#critic")
+      (license license:expat))))
+
+(define-public cl-lisp-critic
+  (sbcl-package->cl-source-package sbcl-lisp-critic))
+
+(define-public ecl-lisp-critic
+  (sbcl-package->ecl-package sbcl-lisp-critic))
diff --git a/gnu/packages/llvm.scm b/gnu/packages/llvm.scm
index 82a4088829..6bd52969e6 100644
--- a/gnu/packages/llvm.scm
+++ b/gnu/packages/llvm.scm
@@ -601,13 +601,13 @@ output), and Binutils.")
   '(("14.0.6" . "14f8nlvnmdkp9a9a79wv67jbmafvabczhah8rwnqrgd5g3hfxxxx")
     ("15.0.7" . "12sggw15sxq1krh1mfk3c1f07h895jlxbcifpwk3pznh4m1rjfy2")
     ("16.0.6" . "0jxmapg7shwkl88m4mqgfjv4ziqdmnppxhjz6vz51ycp2x4nmjky")
-    ("17.0.3" . "1fhrnsv87if7kbqmrsxy2r7ykx3gnr9lmbmvkhvycc91ii4ihybx")))
+    ("17.0.5" . "149flpr96vcn7a1ckya6mm93m9yp85l47w156fjd0r99ydxrw5kv")))
 
 (define %llvm-patches
   '(("14.0.6" . ("clang-14.0-libc-search-path.patch"))
     ("15.0.7" . ("clang-15.0-libc-search-path.patch"))
     ("16.0.6" . ("clang-16.0-libc-search-path.patch"))
-    ("17.0.3" . ("clang-17.0-libc-search-path.patch"))))
+    ("17.0.5" . ("clang-17.0-libc-search-path.patch"))))
 
 (define (llvm-monorepo version)
   (origin
@@ -1500,7 +1500,7 @@ Library.")
 (define-public llvm-17
   (package
     (inherit llvm-15)
-    (version "17.0.3")
+    (version "17.0.5")
     (source (llvm-monorepo version))))
 
 (define-public clang-runtime-17
@@ -1516,7 +1516,7 @@ Library.")
                     (package-version llvm-17)))
      (sha256
       (base32
-       "0an16xdc8rgrdf0dcq3sdg82ajyb00h4bff9n0gm7gqf48ds0da8")))))
+       "12dbp10bhq25a44qnvz978mf9y6pdycwpp7sgq8a93by0fpgb72r")))))
 
 (define-public libomp-17
   (package
diff --git a/gnu/packages/lua.scm b/gnu/packages/lua.scm
index 65cab6511c..1cde6bd66c 100644
--- a/gnu/packages/lua.scm
+++ b/gnu/packages/lua.scm
@@ -1269,6 +1269,39 @@ simplicity, and reach of Lua with the flexibility of a Lisp syntax and macro
 system.")
     (license license:expat)))
 
+(define-public antifennel
+  (package
+    (version "0.2.0")
+    (name "antifennel")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://git.sr.ht/~technomancy/antifennel")
+             (commit version)))
+       (sha256
+        (base32 "1hd9h17q31b3gg88c657zq4han4air2ag55rrakbmcpy6n8acsqc"))
+       (file-name (git-file-name name version))))
+    (build-system gnu-build-system)
+    (inputs (list luajit))
+    (arguments
+     (list
+      #:phases #~(modify-phases %standard-phases
+                   (delete 'configure)
+                   ;; Tests pass after the fix introduced by the commit
+                   ;; ecd2169fcad1fa6616fdf6e6a8569f5b866601e5
+                   (delete 'check)
+                   (replace 'install
+                     (lambda _
+                       (install-file "antifennel"
+                                     (string-append #$output "/bin")))))))
+    (home-page "https://git.sr.ht/~technomancy/antifennel")
+    (synopsis "Turn Lua code into Fennel code")
+    (description
+     "This package provides a way to turn Lua code into Fennel code.
+This compiler does the opposite of what the Fennel compiler does.")
+    (license license:expat)))
+
 (define-public fnlfmt
   (package
     (name "fnlfmt")
diff --git a/gnu/packages/mail.scm b/gnu/packages/mail.scm
index 256bd4b03a..b49b045197 100644
--- a/gnu/packages/mail.scm
+++ b/gnu/packages/mail.scm
@@ -1206,14 +1206,14 @@ security functionality including PGP, S/MIME, SSH, and SSL.")
 (define-public mu
   (package
     (name "mu")
-    (version "1.10.7")
+    (version "1.10.8")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "https://github.com/djcb/mu/releases/download/v"
                            version "/mu-" version ".tar.xz"))
        (sha256
-        (base32 "089w1m6sd0nk9l9j40d357fjym8kxmz7kwh3bclk58jxa6xckapa"))))
+        (base32 "129m6rz8vbd7370c3h3ma66bxqdkm6wsdix5qkmv1vm7sanxh4bb"))))
     (build-system meson-build-system)
     (native-inputs
      (list pkg-config
@@ -1221,7 +1221,7 @@ security functionality including PGP, S/MIME, SSH, and SSL.")
            gnupg                        ; for tests
            texinfo))
     (inputs
-     (list glib gmime xapian))
+     (list glib gmime guile-3.0 xapian))
     (arguments
      (list
       #:modules '((guix build meson-build-system)
@@ -1229,6 +1229,8 @@ security functionality including PGP, S/MIME, SSH, and SSL.")
                   (guix build utils))
       #:imported-modules `(,@%meson-build-system-modules
                            (guix build emacs-utils))
+      #:configure-flags
+      #~(list (format #f "-Dguile-extension-dir=~a/lib" #$output))
       #:phases
       #~(modify-phases %standard-phases
           (add-after 'unpack 'patch-bin-references
@@ -1241,6 +1243,11 @@ security functionality including PGP, S/MIME, SSH, and SSL.")
               (substitute* '("lib/tests/bench-indexer.cc"
                              "lib/utils/mu-test-utils.cc")
                 (("/bin/rm") (which "rm")))))
+          (add-after 'install 'fix-ffi
+            (lambda _
+              (substitute* (find-files #$output "mu.scm")
+                (("\"libguile-mu\"")
+                 (format #f "\"~a/lib/libguile-mu\"" #$output)))))
           (add-after 'install 'install-emacs-autoloads
             (lambda* (#:key outputs #:allow-other-keys)
               (emacs-generate-autoloads
@@ -4908,11 +4915,12 @@ remote SMTP server.")
                         (string-append
                          "\"" (search-input-file inputs "bin/sh")
                          "\"")))
-                     (substitute* "commands/z.go"
-                       (("\"zoxide\"")
-                        (string-append
-                         "\"" (search-input-file inputs "bin/zoxide")
-                         "\"")))
+                     (when (assoc-ref inputs "zoxide")
+                       (substitute* "commands/z.go"
+                         (("\"zoxide\"")
+                          (string-append
+                            "\"" (search-input-file inputs "bin/zoxide")
+                            "\""))))
                      (substitute* (list "lib/crypto/gpg/gpg.go"
                                         "lib/crypto/gpg/gpg_test.go"
                                         "lib/crypto/gpg/gpgbin/keys.go"
@@ -4932,45 +4940,49 @@ remote SMTP server.")
                    (invoke "make" "CC=gcc" "install" "-C"
                            (string-append "src/" import-path)
                            (string-append "PREFIX=" #$output)))))))
-    (inputs (list gnupg
-                  go-github-com-zenhack-go-notmuch
-                  go-golang-org-x-oauth2
-                  go-github-com-xo-terminfo
-                  go-github-com-stretchr-testify
-                  go-github-com-riywo-loginshell
-                  go-github-com-pkg-errors
-                  go-github-com-mitchellh-go-homedir
-                  go-github-com-miolini-datacounter
-                  go-github-com-mattn-go-runewidth
-                  go-github-com-mattn-go-isatty
-                  go-github-com-lithammer-fuzzysearch
-                  go-github-com-kyoh86-xdg
-                  go-github-com-imdario-mergo
-                  go-github-com-google-shlex
-                  go-github-com-go-ini-ini
-                  go-github-com-gdamore-tcell-v2
-                  go-github-com-gatherstars-com-jwz
-                  go-github-com-fsnotify-fsnotify
-                  go-github-com-emersion-go-smtp
-                  go-github-com-emersion-go-sasl
-                  go-github-com-emersion-go-pgpmail
-                  go-github-com-emersion-go-message
-                  go-github-com-emersion-go-maildir
-                  go-github-com-emersion-go-imap-sortthread
-                  go-github-com-emersion-go-imap
-                  go-github-com-emersion-go-msgauth
-                  go-github-com-emersion-go-mbox
-                  go-github-com-ddevault-go-libvterm
-                  go-github-com-danwakefield-fnmatch
-                  go-github-com-creack-pty
-                  go-github-com-arran4-golang-ical
-                  go-github-com-protonmail-go-crypto
-                  go-github-com-syndtr-goleveldb-leveldb
-                  go-git-sr-ht-sircmpwn-getopt
-                  go-git-sr-ht-rockorager-tcell-term
-                  python
-                  python-vobject
-                  zoxide))
+    (inputs
+     (append
+       (list gnupg
+             go-github-com-zenhack-go-notmuch
+             go-golang-org-x-oauth2
+             go-github-com-xo-terminfo
+             go-github-com-stretchr-testify
+             go-github-com-riywo-loginshell
+             go-github-com-pkg-errors
+             go-github-com-mitchellh-go-homedir
+             go-github-com-miolini-datacounter
+             go-github-com-mattn-go-runewidth
+             go-github-com-mattn-go-isatty
+             go-github-com-lithammer-fuzzysearch
+             go-github-com-kyoh86-xdg
+             go-github-com-imdario-mergo
+             go-github-com-google-shlex
+             go-github-com-go-ini-ini
+             go-github-com-gdamore-tcell-v2
+             go-github-com-gatherstars-com-jwz
+             go-github-com-fsnotify-fsnotify
+             go-github-com-emersion-go-smtp
+             go-github-com-emersion-go-sasl
+             go-github-com-emersion-go-pgpmail
+             go-github-com-emersion-go-message
+             go-github-com-emersion-go-maildir
+             go-github-com-emersion-go-imap-sortthread
+             go-github-com-emersion-go-imap
+             go-github-com-emersion-go-msgauth
+             go-github-com-emersion-go-mbox
+             go-github-com-ddevault-go-libvterm
+             go-github-com-danwakefield-fnmatch
+             go-github-com-creack-pty
+             go-github-com-arran4-golang-ical
+             go-github-com-protonmail-go-crypto
+             go-github-com-syndtr-goleveldb-leveldb
+             go-git-sr-ht-sircmpwn-getopt
+             go-git-sr-ht-rockorager-tcell-term
+             python
+             python-vobject)
+       (if (supported-package? zoxide)
+           (list zoxide)
+           '())))
     (native-inputs (list scdoc))
     (home-page "https://git.sr.ht/~rjarry/aerc")
     (synopsis "Email client for the terminal")
diff --git a/gnu/packages/markup.scm b/gnu/packages/markup.scm
index 595b08fa20..4a9a382104 100644
--- a/gnu/packages/markup.scm
+++ b/gnu/packages/markup.scm
@@ -11,6 +11,7 @@
 ;;; Copyright © 2021 Petr Hodina <phodina@protonmail.com>
 ;;; Copyright © 2022 jgart <jgart@dismail.de>
 ;;; Copyright © 2022 Vinicius Monego <monego@posteo.net>
+;;; Copyright © 2023 Zheng Junjie <873216071@qq.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -428,13 +429,13 @@ additions.")))
         (base32 "1jm7lhnzjx4q7gcwlkvsbffcy0zppywyh50d71ami6dnq182vvcc"))))
     (build-system gnu-build-system)
     (arguments
-     `(#:make-flags (list "CC=gcc"
-                          (string-append "PREFIX="
-                                         (assoc-ref %outputs "out")))
-       #:tests? #f                      ; no tests included
-       #:phases
-       (modify-phases %standard-phases
-         (delete 'configure))))
+     (list #:make-flags
+           #~(list (string-append "CC=" #$(cc-for-target))
+                   (string-append "PREFIX=" #$output))
+           #:tests? #f                      ; no tests included
+           #:phases
+           #~(modify-phases %standard-phases
+               (delete 'configure))))
     (home-page "https://github.com/Gottox/smu")
     (synopsis "Simple markup")
     (description
diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm
index 34710fc65c..246f189115 100644
--- a/gnu/packages/maths.scm
+++ b/gnu/packages/maths.scm
@@ -58,6 +58,7 @@
 ;;; Copyright © 2022, 2023 Liliana Marie Prikler <liliana.prikler@gmail.com>
 ;;; Copyright © 2022 Maximilian Heisinger <mail@maxheisinger.at>
 ;;; Copyright © 2022 Akira Kyle <akira@akirakyle.com>
+;;; Copyright © 2022, 2023 Nicolas Graves <ngraves@ngraves.fr>
 ;;; Copyright © 2022 Roman Scherer <roman.scherer@burningswell.com>
 ;;; Copyright © 2023 Jake Leporte <jakeleporte@outlook.com>
 ;;; Copyright © 2023 Camilo Q.S. (Distopico) <distopico@riseup.net>
@@ -103,6 +104,7 @@
   #:use-module (gnu packages algebra)
   #:use-module (gnu packages audio)
   #:use-module (gnu packages autotools)
+  #:use-module (gnu packages backup)
   #:use-module (gnu packages base)
   #:use-module (gnu packages bash)
   #:use-module (gnu packages bison)
@@ -9529,7 +9531,7 @@ computation is supported via MPI.")
 (define-public scilab
   (package
     (name "scilab")
-    (version "2023.1.0")
+    (version "2024.0.0")
     (source
      (origin
        (method git-fetch)
@@ -9539,10 +9541,9 @@ computation is supported via MPI.")
        (file-name (git-file-name name version))
        (sha256
         (base32
-         "0hbqsnc67b4f8zc690kl79bwhjaasykjlmqbln8iymnjcn3l5ypd"))
+         "08nyfli3x7gd396ffd1a8zn9fj3gm6a8yw0ggm547c09sp2rgvl7"))
        (modules '((guix build utils)
                   (ice-9 ftw)))
-       (patches (search-patches "scilab-hdf5-1.8-api.patch"))
        (snippet
         #~(begin
             ;; Delete everything except for scilab itself:
@@ -9559,7 +9560,8 @@ computation is supported via MPI.")
             (for-each delete-file-recursively
                       '("scilab"
                         "config"
-                        "libs/GetWindowsVersion"))
+                        "libs/GetWindowsVersion"
+                        "Visual-Studio-settings"))
             (for-each delete-file
                       (cons* "aclocal.m4"
                              "configure"
@@ -9571,22 +9573,23 @@ computation is supported via MPI.")
                              "m4/ltversion.m4"
                              "m4/lt~obsolete.m4"
                              "m4/pkg.m4"
+                             "Scilab.sln"
                              (find-files "." "^Makefile\\.in$")))
 
             ;; And finally some files in the modules directory:
             (for-each
-              (lambda (file)
-                (delete-file
-                  (string-append "modules/dynamic_link/src/scripts/" file)))
-              '("aclocal.m4"
-                "configure"
-                "compile"
-                "config.guess"
-                "config.sub"
-                "ltmain.sh"
-                "depcomp"
-                "install-sh"
-                "missing"))
+             (lambda (file)
+               (delete-file
+                (string-append "modules/dynamic_link/src/scripts/" file)))
+             '("aclocal.m4"
+               "configure"
+               "compile"
+               "config.guess"
+               "config.sub"
+               "ltmain.sh"
+               "depcomp"
+               "install-sh"
+               "missing"))
             (delete-file-recursively "modules/dynamic_link/src/scripts/m4")
             (for-each delete-file
                       '("modules/ast/src/cpp/parse/scanscilab.cpp"
@@ -9595,7 +9598,7 @@ computation is supported via MPI.")
                         "modules/ast/src/cpp/parse/parsescilab.cpp"))))))
     (build-system gnu-build-system)
     (native-inputs
-     (list autoconf
+     (list autoconf-2.71
            autoconf-archive
            automake
            bison
@@ -9612,8 +9615,9 @@ computation is supported via MPI.")
                   curl
                   fftw
                   gettext-minimal
-                  hdf5-1.14
+                  hdf5-1.10
                   lapack
+                  libarchive
                   libx11
                   libxml2
                   matio
@@ -9624,83 +9628,125 @@ computation is supported via MPI.")
                   tcl
                   tk))
     (arguments
-     (list
-      ;; The tests require java code.
-      #:tests? #f
-      #:configure-flags
-      #~(list
-         "--enable-relocatable"
-         "--disable-static-system-lib"
-         "--enable-build-parser"
-         ;; Disable all java code.
-         "--without-gui"
-         "--without-javasci"
-         "--disable-build-help"
-         "--with-external-scirenderer"
-         ;; Tcl and Tk library locations.
-         (string-append "--with-tcl-include="
-                        (dirname
-                          (search-input-file %build-inputs "include/tcl.h")))
-         (string-append "--with-tcl-library="
-                        (dirname
-                          (search-input-directory %build-inputs "lib/tcl8")))
-         (string-append "--with-tk-include="
-                        (dirname
-                          (search-input-file %build-inputs "include/tk.h")))
-         (string-append "--with-tk-library="
-                        (dirname
-                          (search-input-directory %build-inputs "lib/tk8.6")))
-         (string-append "--with-eigen-include="
-                        (search-input-directory %build-inputs "include/eigen3"))
-         ;; Find and link to the OCaml Num package
-         "OCAMLC=ocamlfind ocamlc -package num"
-         "OCAMLOPT=ocamlfind ocamlopt -package num -linkpkg"
-         ;; There are some 2018-fortran errors that are ignored
-         ;; with this fortran compiler flag.
-         "FFLAGS=-fallow-argument-mismatch")
-      #:phases
-      #~(modify-phases %standard-phases
-          ;; The Num library is specified with the OCAMLC and
-          ;; OCAMLOPT variables above.
-          (add-after 'unpack 'fix-ocaml-num
-            (lambda _
-              (substitute*
-                '("modules/scicos/Makefile.modelica.am"
-                  "modules/scicos/src/translator/makefile.mak"
-                  "modules/scicos/src/modelica_compiler/makefile.mak")
-                (("nums\\.cmx?a") ""))))
-          ;; Install only scilab-cli.desktop
-          (add-after 'unpack 'remove-desktop-files
-            (lambda _
-              (substitute* "desktop/Makefile.am"
-                (("desktop_DATA =")
-                 "desktop_DATA = scilab-cli.desktop\nDUMMY ="))))
-          ;; These generated files are assumed to be present during
-          ;; the build.
-          (add-after 'bootstrap 'bootstrap-dynamic_link-scripts
-            (lambda _
-              (with-directory-excursion "modules/dynamic_link/src/scripts"
-                ((assoc-ref %standard-phases 'bootstrap)))))
-          (add-before 'build 'pre-build
-            (lambda* (#:key inputs #:allow-other-keys)
-              ;; Fix scilab script.
-              (substitute* "bin/scilab"
-                (("\\/bin\\/ls")
-                 (search-input-file inputs "bin/ls")))
-              ;; Fix core.start.
-              (substitute* "modules/core/etc/core.start"
-                (("'SCI/modules")
-                 "SCI+'/modules"))
-              ;; Set SCIHOME to /tmp before macros compilation.
-              (setenv "SCIHOME" "/tmp")))
-          ;; Prevent race condition
-          (add-after 'pre-build 'build-parsers
-            (lambda* (#:key (make-flags #~'()) #:allow-other-keys)
-              (with-directory-excursion "modules/ast"
-                (apply invoke "make"
-                       "src/cpp/parse/parsescilab.cpp"
-                       "src/cpp/parse/scanscilab.cpp"
-                       make-flags)))))))
+     (let* ((tcl (this-package-input "tcl"))
+            (tk (this-package-input "tk")))
+       (list
+        #:configure-flags
+        #~(list
+           "--enable-relocatable"
+           "--disable-static-system-lib"
+           "--enable-build-parser"
+           ;; Disable all java code.
+           "--without-gui"
+           "--without-javasci"
+           "--disable-build-help"
+           "--with-external-scirenderer"
+           ;; Tcl and Tk library locations.
+           (string-append "--with-tcl-include=" #$tcl "/include")
+           (string-append "--with-tcl-library=" #$tcl "/lib")
+           (string-append "--with-tk-include=" #$tk "/include")
+           (string-append "--with-tk-library=" #$tk "/lib")
+           (string-append "--with-eigen-include="
+                          (search-input-directory %build-inputs "include/eigen3"))
+           ;; Find and link to the OCaml Num package
+           "OCAMLC=ocamlfind ocamlc -package num"
+           "OCAMLOPT=ocamlfind ocamlopt -package num -linkpkg")
+        #:phases
+        #~(modify-phases %standard-phases
+            ;; The Num library is specified with the OCAMLC and
+            ;; OCAMLOPT variables above.
+            (add-after 'unpack 'fix-ocaml-num
+              (lambda _
+                (substitute*
+                    '("modules/scicos/Makefile.modelica.am"
+                      "modules/scicos/src/translator/makefile.mak"
+                      "modules/scicos/src/modelica_compiler/makefile.mak")
+                  (("nums\\.cmx?a") ""))))
+            (add-after 'unpack 'fix-linking
+              (lambda _
+                (substitute* "modules/Makefile.am"
+                  (("libscilab_cli_la_LDFLAGS = .*\\)" all)
+                   (string-append all " -lcurl")))))
+            (add-after 'unpack 'set-version
+              (lambda _
+                (substitute* "modules/core/includes/version.h.in"
+                  (("scilab-branch-main")  ; version
+                   (string-append
+                    "scilab-"
+                    #$(version-major+minor (package-version this-package)))))))
+            (add-after 'unpack 'restrain-to-scilab-cli
+              (lambda _
+                ;; Install only scilab-cli.desktop
+                (substitute* "desktop/Makefile.am"
+                  (("desktop_DATA =")
+                   "desktop_DATA = scilab-cli.desktop\nDUMMY ="))
+                ;; Replace scilab with scilab-cli for tests.
+                (substitute* "Makefile.incl.am"
+                  (("scilab-bin") "scilab-cli-bin")
+                  (("scilab -nwni") "scilab-cli")
+                  ;; Do not install tests, demos and examples.
+                  ;; This saves up to 140 Mo in the final output.
+                  (("(TESTS|DEMOS|EXAMPLES)_DIR=.*" all kind)
+                   (string-append kind "_DIR=")))))
+            (add-before 'check 'disable-failing-tests
+              (lambda _
+                (substitute* "Makefile"
+                  (("TESTS = .*")
+                   "TESTS =\n"))
+                (substitute* "modules/functions_manager/Makefile"
+                  (("check:.*")
+                   "check:\n"))
+                (substitute* "modules/types/Makefile"
+                  (("\\$\\(MAKE\\) \\$\\(AM_MAKEFLAGS\\) check-am")
+                   ""))))
+            ;; These generated files are assumed to be present during
+            ;; the build.
+            (add-after 'bootstrap 'bootstrap-dynamic_link-scripts
+              (lambda _
+                (with-directory-excursion "modules/dynamic_link/src/scripts"
+                  ((assoc-ref %standard-phases 'bootstrap)))))
+            (add-before 'build 'pre-build
+              (lambda* (#:key inputs #:allow-other-keys)
+                ;; Fix scilab script.
+                (substitute* "bin/scilab"
+                  (("/bin/ls")
+                   (search-input-file inputs "bin/ls")))
+                ;; Fix core.start.
+                (substitute* "modules/core/etc/core.start"
+                  (("'SCI/modules")
+                   "SCI+'/modules"))))
+            ;; Prevent race condition
+            (add-after 'pre-build 'build-parsers
+              (lambda* (#:key (make-flags #~'()) #:allow-other-keys)
+                (with-directory-excursion "modules/ast"
+                  (apply invoke "make"
+                         "src/cpp/parse/parsescilab.cpp"
+                         "src/cpp/parse/scanscilab.cpp"
+                         make-flags))))
+            ;; The startup script is mostly there to define the following env
+            ;; variables properly. We can do this with guix directly.
+            (add-after 'install 'rewrap-scilab-cli
+              (lambda _
+                (define (bin path) (string-append #$output "/bin/" path))
+                (delete-file (bin "scilab-cli"))
+                (wrap-program (bin "scilab-cli-bin")
+                  `("SCI" = (,(string-append #$output "/share/scilab")))
+                  `("LD_LIBRARY_PATH" ":" prefix
+                    (,(string-append #$output "/lib/scilab")))
+                  `("TCL_LIBRARY" = (,(string-append #$tcl "/lib")))
+                  `("TK_LIBRARY" = (,(string-append #$tk "/lib"))))
+                (copy-file (bin "scilab-cli-bin") (bin "scilab-cli"))
+                (copy-file (bin ".scilab-cli-bin-real") (bin "scilab-cli-bin"))
+                (delete-file (bin ".scilab-cli-bin-real"))
+                (substitute* (bin "scilab-cli")
+                  ;; Also set SCIHOME to sensible XDG base dirs value.
+                  (("\\.scilab-cli-bin-real\"")
+                   (string-append
+                    "scilab-cli-bin\" -scihome "
+                    "\"${XDG_STATE_HOME:-$HOME/.local/state}/scilab/"
+                    #$(package-version this-package) "\""))
+                  (("export SCI=")
+                   "unset LANGUAGE\nexport SCI="))))))))
     (home-page "https://www.scilab.org/")
     (synopsis "Software for engineers and scientists")
     (description "This package provides the non-graphical version of the Scilab
diff --git a/gnu/packages/mpd.scm b/gnu/packages/mpd.scm
index 0e762144a1..dc827a4670 100644
--- a/gnu/packages/mpd.scm
+++ b/gnu/packages/mpd.scm
@@ -57,6 +57,7 @@
   #:use-module (gnu packages libusb)
   #:use-module (gnu packages lua)
   #:use-module (gnu packages readline)
+  #:use-module (gnu packages ruby)
   #:use-module (gnu packages check)
   #:use-module (gnu packages compression)
   #:use-module (gnu packages curl)
@@ -116,7 +117,7 @@ interfacing MPD in the C, C++ & Objective C languages.")
 (define-public mpd
   (package
     (name "mpd")
-    (version "0.23.13")
+    (version "0.23.14")
     (source (origin
               (method url-fetch)
               (uri
@@ -125,7 +126,7 @@ interfacing MPD in the C, C++ & Objective C languages.")
                               "/mpd-" version ".tar.xz"))
               (sha256
                (base32
-                "06fmy68lfrsi5y03l53dnwcynqhwh5f5vhdpbsr8lzmvzgk02sx9"))))
+                "1lh9nn4a7ng6i08df7rbs8c4nbgmz883pss9p2gswa6m4rsadfc5"))))
     (build-system meson-build-system)
     (arguments
      (list
@@ -622,7 +623,7 @@ mpdevil loads all tags and covers on demand.")
 (define-public mympd
   (package
     (name "mympd")
-    (version "12.1.1")
+    (version "13.0.5")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -631,22 +632,29 @@ mpdevil loads all tags and covers on demand.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "1bal31xmdmq46bi0qmia07sqcwy695vcz5y5hxwkz71rcfywbsf9"))))
+                "1ly3iw4irybfxyafgrldldwc28a879wwnd1pg32m2sgrwyhr0czm"))))
+    (outputs '("out" "doc"))
     (build-system cmake-build-system)
     (arguments
      (list
       #:configure-flags
-      #~(list "-DMYMPD_BUILD_TESTING=ON"
-              ;; Handled by 'strip' phase.
-              "-DMYMPD_STRIP_BINARY=OFF")
+      #~(list "-DCMAKE_INSTALL_LOCALSTATEDIR=/var"
+              "-DMYMPD_BUILD_TESTING=ON"
+              "-DMYMPD_DOC_HTML=ON")
       #:phases
       #~(modify-phases %standard-phases
           (replace 'check
             (lambda* (#:key tests? #:allow-other-keys)
               (when tests?
                 ;; The following test requires network connectivity.
-                (invoke "ctest" "--exclude-regex" "test_http_client")))))))
-    (native-inputs (list jq perl pkg-config))
+                (invoke "ctest" "--exclude-regex" "test_http_client"))))
+          (add-after 'install 'move-doc
+            (lambda _
+              (let ((old (string-append #$output "/share/doc"))
+                    (new (string-append #$output:doc "/share/doc")))
+                (mkdir-p (dirname new))
+                (rename-file old new)))))))
+    (native-inputs (list jekyll jq perl pkg-config))
     (inputs (list flac libid3tag lua openssl pcre2))
     (home-page "https://jcorporation.github.io/")
     (synopsis "Web-based MPD client")
diff --git a/gnu/packages/networking.scm b/gnu/packages/networking.scm
index 2028830087..6b415076e8 100644
--- a/gnu/packages/networking.scm
+++ b/gnu/packages/networking.scm
@@ -60,6 +60,7 @@
 ;;; Copyright © 2023 Bruno Victal <mirai@makinata.eu>
 ;;; Copyright © 2023 Yovan Naumovski <yovan@gorski.stream>
 ;;; Copyright © 2023 Zheng Junjie <873216071@qq.com>
+;;; Copyright © 2023 Artyom V. Poptsov <poptsov.artyom@gmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -127,6 +128,7 @@
   #:use-module (gnu packages gtk)
   #:use-module (gnu packages image)
   #:use-module (gnu packages kde-frameworks)
+  #:use-module (gnu packages libbsd)
   #:use-module (gnu packages libevent)
   #:use-module (gnu packages libidn)
   #:use-module (gnu packages libusb)
@@ -326,42 +328,26 @@ Unix Domain Sockets, SCTP for both IPv4 and IPv6.")
 (define-public lcsync
   (package
     (name "lcsync")
-    (version "0.2.1")
-    (source (origin
-              (method git-fetch)
-              (uri (git-reference
-                    (url "https://codeberg.org/librecast/lcsync")
-                    (commit (string-append "v" version))))
-              (file-name (git-file-name name version))
-              (sha256
-               (base32
-                "0bsd3dkir2i647nmrmyb7skbv16v0f6f3gfwkpxz8g42978dlms5"))))
+    (version "0.3.0")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://codeberg.org/librecast/lcsync")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "1rhk80ybd2zranay76z1ysifnnm786lg9kiiijcwv76qy95in9ks"))))
     (build-system gnu-build-system)
     (arguments
      `(#:parallel-tests? #f
-       #:configure-flags
-       (list
-        (string-append "--prefix="
-                       (assoc-ref %outputs "out")))
+       #:configure-flags (list (string-append "--prefix="
+                                              (assoc-ref %outputs "out")))
        #:make-flags (let ((target ,(%current-target-system)))
                       (list ,(string-append "CC="
                                             (cc-for-target))))
-       #:test-target "test"
-       #:phases (modify-phases %standard-phases
-                  (add-after 'unpack 'use-prefix-from-configure-in-doc-makefile
-                    ;; Use prefix from configure. Fixed upstream:
-                    ;; https://codeberg.org/librecast/lcsync/commit/4ba00f6
-                    ;; XXX: Remove for 0.2.2+
-                    (lambda _
-                      (substitute* "doc/Makefile.in"
-                        (("PREFIX .= /usr/local") "PREFIX ?= @prefix@"))))
-                  (add-before 'build 'add-library-paths
-                    (lambda* (#:key inputs #:allow-other-keys)
-                      (let* ((librecast (assoc-ref inputs "librecast")))
-                        (substitute* (list "./src/Makefile" "./test/Makefile")
-                          (("-llibrecast")
-                           (string-append "-L" librecast "/lib -llibrecast")))))))))
-    (inputs (list lcrq librecast libsodium))
+       #:test-target "test"))
+    (inputs (list lcrq librecast libsodium libbsd))
     (home-page "https://librecast.net/lcsync.html")
     (synopsis "Librecast file and data syncing tool")
     (description
@@ -522,16 +508,16 @@ GLib-based library, libnice, as well as GStreamer elements to use it.")
 (define-public librecast
   (package
     (name "librecast")
-    (version "0.7.0")
-    (source (origin
-              (method git-fetch)
-              (uri (git-reference
-                    (url "https://codeberg.org/librecast/librecast")
-                    (commit (string-append "v" version))))
-              (file-name (git-file-name name version))
-              (sha256
-               (base32
-                "0y0km0fv39m3i227pyg7fcr7d94gbji51fkcywqyrjgmk4j1hp1n"))))
+    (version "0.8.0")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://codeberg.org/librecast/librecast")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "01m0q4n2hy3csbzil8ivjyzb1mh4w9jlh9iiv6z53kasl7aas27i"))))
     (build-system gnu-build-system)
     (arguments
      `(#:parallel-tests? #f
@@ -541,7 +527,7 @@ GLib-based library, libnice, as well as GStreamer elements to use it.")
                             (string-append "PREFIX="
                                            (assoc-ref %outputs "out"))))
        #:test-target "test"))
-    (inputs (list libsodium lcrq))
+    (inputs (list libsodium lcrq libbsd))
     (synopsis "IPv6 multicast library")
     (description "Librecast is a C library which supports IPv6 multicast
 networking.")
@@ -4422,7 +4408,7 @@ QUIC protocol.")
 (define-public yggdrasil
   (package
     (name "yggdrasil")
-    (version "0.4.7")
+    (version "0.5.2")
     (source
      (origin
        (method git-fetch)
@@ -4433,8 +4419,8 @@ QUIC protocol.")
          (recursive? #t)))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "01mllfrsr55lnfivxwa57cfrjas6w4shsvx9k81pw8jixc124myk"))
-       (patches (search-patches "yggdrasil-extra-config.patch"))))
+        (base32 "0ahgb94s30sq1wwyc8h53mjj3j43ifr0aanj8262rsm6rqk04kzq"))
+      (patches (search-patches "yggdrasil-extra-config.patch"))))
     (build-system go-build-system)
     (arguments
      (list #:import-path "github.com/yggdrasil-network/yggdrasil-go"
@@ -4460,32 +4446,37 @@ QUIC protocol.")
                       (list "github.com/yggdrasil-network/yggdrasil-go/cmd/yggdrasil"
                             "github.com/yggdrasil-network/yggdrasil-go/cmd/yggdrasilctl"
                             "github.com/yggdrasil-network/yggdrasil-go/cmd/genkeys"))))))))
-    ;; https://github.com/kardianos/minwinsvc is windows only
     (propagated-inputs
-     (list ;;("go-golang-zx2c4-com-wireguard-windows"
-           ;; ,go-golang-zx2c4-com-wireguard-windows)
-           go-golang-zx2c4-com-wireguard
-           go-golang-org-x-text
-           go-golang-org-x-sys
-           go-golang-org-x-net
-           go-golang-org-x-crypto
-           go-golang-org-x-tools
-           go-netns
-           go-netlink
-           go-github-com-olekukonko-tablewriter
-           go-github-com-mitchellh-mapstructure
-           go-github-com-mattn-go-runewidth
-           go-github-com-mattn-go-isatty
-           go-github-com-mattn-go-colorable
-           go-github-com-kardianos-minwinsvc
-           go-github-com-hjson-hjson-go
-           go-github-com-hashicorp-go-syslog
-           go-github-com-gologme-log
-           go-github-com-fatih-color
-           go-github-com-cheggaaa-pb-v3
-           go-github-com-vividcortex-ewma
-           go-github-com-arceliar-phony
-           go-github-com-arceliar-ironwood))
+     (let ((p (package-input-rewriting
+               `((,go-golang-org-x-sys . ,go-golang-org-x-sys-0.8))
+               #:deep? #true)))
+       (cons go-golang-org-x-sys-0.8
+             (map p
+                  (list go-golang-zx2c4-com-wireguard
+                        go-golang-org-x-text
+                        go-golang-org-x-net
+                        go-golang-org-x-crypto
+                        go-golang-org-x-tools
+                        go-netns
+                        go-netlink
+                        go-github-com-bits-and-blooms-bitset
+                        go-github-com-bits-and-blooms-bloom
+                        go-github-com-quic-go-quic-go
+                        go-github-com-hjson-hjson-go
+                        go-github-com-olekukonko-tablewriter
+                        go-github-com-mitchellh-mapstructure
+                        go-github-com-mattn-go-runewidth
+                        go-github-com-mattn-go-isatty
+                        go-github-com-mattn-go-colorable
+                        go-github-com-kardianos-minwinsvc
+                        go-github-com-hjson-hjson-go
+                        go-github-com-hashicorp-go-syslog
+                        go-github-com-gologme-log
+                        go-github-com-fatih-color
+                        go-github-com-cheggaaa-pb-v3
+                        go-github-com-vividcortex-ewma
+                        go-github-com-arceliar-phony
+                        go-github-com-arceliar-ironwood)))))
     (home-page "https://yggdrasil-network.github.io/blog.html")
     (synopsis
      "Experiment in scalable routing as an encrypted IPv6 overlay network")
diff --git a/gnu/packages/package-management.scm b/gnu/packages/package-management.scm
index 4b585362a4..756222318b 100644
--- a/gnu/packages/package-management.scm
+++ b/gnu/packages/package-management.scm
@@ -1510,8 +1510,8 @@ environments.")
                   "0k9zkdyyzir3fvlbcfcqy17k28b51i20rpbjwlx2i1mwd2pw9cxc")))))))
 
 (define-public guix-build-coordinator
-  (let ((commit "c226d48d97ce3a248cf2d814c9b4c4f48e67511e")
-        (revision "91"))
+  (let ((commit "78df0b3a9f4f27df8341da36d4dfa8e49dfad900")
+        (revision "92"))
     (package
       (name "guix-build-coordinator")
       (version (git-version "0" revision commit))
@@ -1522,7 +1522,7 @@ environments.")
                       (commit commit)))
                 (sha256
                  (base32
-                  "0ig9hq483q2ir26gj6m9kj13a9hmq6sw18q0fiqvbvn31p4c8zvn"))
+                  "06xp38k6yfvsvl20hrqvmarpysd07nkbj53an729lqr50qdd4jcq"))
                 (file-name (string-append name "-" version "-checkout"))))
       (build-system gnu-build-system)
       (arguments
@@ -1754,8 +1754,8 @@ in an isolated environment, in separate namespaces.")
     (license license:gpl3+)))
 
 (define-public nar-herder
-  (let ((commit "bf539aa08edfe8010606a31c00e0296c3d400319")
-        (revision "22"))
+  (let ((commit "5ccd6cbbdf5fc41e43a491d3414c1663e1fba64d")
+        (revision "23"))
     (package
       (name "nar-herder")
       (version (git-version "0" revision commit))
@@ -1766,7 +1766,7 @@ in an isolated environment, in separate namespaces.")
                       (commit commit)))
                 (sha256
                  (base32
-                  "1i9q7ys26r6y2xa4qqy21bcxlqiynxp3p1wl5gmyj33jnb9ryjby"))
+                  "1lid5k4wgghl9lzhazx1c473qv18yxp0xxrvj04b33pdvxnaawl8"))
                 (file-name (string-append name "-" version "-checkout"))))
       (build-system gnu-build-system)
       (arguments
diff --git a/gnu/packages/parallel.scm b/gnu/packages/parallel.scm
index f3af1680b0..92ff023a6e 100644
--- a/gnu/packages/parallel.scm
+++ b/gnu/packages/parallel.scm
@@ -64,14 +64,14 @@
 (define-public parallel
   (package
     (name "parallel")
-    (version "20231022")
+    (version "20231122")
     (source
      (origin
       (method url-fetch)
       (uri (string-append "mirror://gnu/parallel/parallel-"
                           version ".tar.bz2"))
       (sha256
-       (base32 "1316ydijavz41078c99mbrbaddnshspbs8nsbm5qlyah317vkwlk"))
+       (base32 "1qpa3dhmdddw7l5906y8ck8rnri66kqkxcbxhsnj058pmbw9qb42"))
       (snippet
        '(begin
           (use-modules (guix build utils))
diff --git a/gnu/packages/patches/aria2-unbundle-wslay.patch b/gnu/packages/patches/aria2-unbundle-wslay.patch
new file mode 100644
index 0000000000..e3e534bbe1
--- /dev/null
+++ b/gnu/packages/patches/aria2-unbundle-wslay.patch
@@ -0,0 +1,54 @@
+This patch causes aria2 to depend on an external wslay.
+The wslay version was copied from the configure.ac in deps/wslay
+configure still needs to be deleted to update the script
+deps/wslay is no longer necessary and can also be removed
+
+diff --git a/Makefile.am b/Makefile.am
+index afe70a2..8c4d058 100644
+--- a/Makefile.am
++++ b/Makefile.am
+@@ -1,4 +1,4 @@
+-SUBDIRS =  po lib deps src doc test
++SUBDIRS =  po lib src doc test
+ 
+ ACLOCAL_AMFLAGS = -I m4 --install
+ RST2HTML = @RST2HTML@
+diff --git a/configure.ac b/configure.ac
+index 14b340f..74d5937 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -1001,15 +1001,18 @@ if test "x$have_option_const_name" = "xyes"; then
+ fi
+ 
+ if test "x$enable_websocket" = "xyes"; then
+-  AC_CONFIG_SUBDIRS([deps/wslay])
++  PKG_CHECK_MODULES([WSLAY], [libwslay >= 1.1.1], [have_wslay=yes], [have_wslay=no])
+   enable_websocket=yes
+   AC_DEFINE([ENABLE_WEBSOCKET], [1],
+             [Define 1 if WebSocket support is enabled.])
+-  # $(top_srcdir) for `make distcheck`
+-  WSLAY_CFLAGS="-I\$(top_builddir)/deps/wslay/lib/includes -I\$(top_srcdir)/deps/wslay/lib/includes"
+-  WSLAY_LIBS="\$(top_builddir)/deps/wslay/lib/libwslay.la"
+-  AC_SUBST([WSLAY_CFLAGS])
+-  AC_SUBST([WSLAY_LIBS])
++  if test "x$have_wslay" = "xyes"; then
++    WSLAY_CFLAGS="$WSLAY_CFLAGS"
++    WSLAY_LIBS="$WSLAY_LIBS"
++    AC_SUBST([WSLAY_CFLAGS])
++    AC_SUBST([WSLAY_LIBS])
++  else
++    ARIA2_DEP_NOT_MET([wslay])
++  fi
+ fi
+ AM_CONDITIONAL([ENABLE_WEBSOCKET], [test "x$enable_websocket" = "xyes"])
+ 
+@@ -1071,8 +1074,7 @@ AC_CONFIG_FILES([Makefile
+                 doc/manual-src/ru/Makefile
+                 doc/manual-src/ru/conf.py
+                 doc/manual-src/pt/Makefile
+-                doc/manual-src/pt/conf.py
+-                deps/Makefile])
++                doc/manual-src/pt/conf.py])
+ AC_OUTPUT
+ 
+ AC_MSG_NOTICE([summary of build options:
diff --git a/gnu/packages/patches/go-gopkg-in-yaml-v3-32bit.patch b/gnu/packages/patches/go-gopkg-in-yaml-v3-32bit.patch
new file mode 100644
index 0000000000..7a243f5d80
--- /dev/null
+++ b/gnu/packages/patches/go-gopkg-in-yaml-v3-32bit.patch
@@ -0,0 +1,50 @@
+https://sources.debian.org/src/golang-gopkg-yaml.v3/3.0.1-3/debian/patches/0001-Fix-0b-on-32-bit-systems.patch/
+
+From: Shengjing Zhu <zhsj@debian.org>
+Date: Fri, 16 Apr 2021 00:40:09 +0800
+Subject: Fix -0b on 32-bit systems
+
+Origin: backport, https://github.com/go-yaml/yaml/pull/442
+---
+ decode_test.go | 7 ++++---
+ resolve.go     | 2 +-
+ 2 files changed, 5 insertions(+), 4 deletions(-)
+
+diff --git a/decode_test.go b/decode_test.go
+index 51f5070..9cac74c 100644
+--- a/decode_test.go
++++ b/decode_test.go
+@@ -175,9 +175,6 @@ var unmarshalTests = []struct {
+ 	}, {
+ 		"bin: -0b101010",
+ 		map[string]interface{}{"bin": -42},
+-	}, {
+-		"bin: -0b1000000000000000000000000000000000000000000000000000000000000000",
+-		map[string]interface{}{"bin": -9223372036854775808},
+ 	}, {
+ 		"decimal: +685_230",
+ 		map[string]int{"decimal": 685230},
+@@ -357,6 +354,10 @@ var unmarshalTests = []struct {
+ 		"int64_min: -9223372036854775808",
+ 		map[string]int64{"int64_min": math.MinInt64},
+ 	},
++	{
++		"int64_min_base2: -0b1000000000000000000000000000000000000000000000000000000000000000",
++		map[string]int64{"int64_min_base2": math.MinInt64},
++	},
+ 	{
+ 		"int64_neg_base2: -0b111111111111111111111111111111111111111111111111111111111111111",
+ 		map[string]int64{"int64_neg_base2": -math.MaxInt64},
+diff --git a/resolve.go b/resolve.go
+index 64ae888..1b7d8c3 100644
+--- a/resolve.go
++++ b/resolve.go
+@@ -223,7 +223,7 @@ func resolve(tag string, in string) (rtag string, out interface{}) {
+ 			} else if strings.HasPrefix(plain, "-0b") {
+ 				intv, err := strconv.ParseInt("-"+plain[3:], 2, 64)
+ 				if err == nil {
+-					if true || intv == int64(int(intv)) {
++					if intv == int64(int(intv)) {
+ 						return intTag, int(intv)
+ 					} else {
+ 						return intTag, intv
diff --git a/gnu/packages/patches/scilab-hdf5-1.8-api.patch b/gnu/packages/patches/scilab-hdf5-1.8-api.patch
deleted file mode 100644
index 8b453e4720..0000000000
--- a/gnu/packages/patches/scilab-hdf5-1.8-api.patch
+++ /dev/null
@@ -1,71 +0,0 @@
-This patch fixes the compilation with hdf5 version >= 1.10. Adapted from
-https://aur.archlinux.org/cgit/aur.git/plain/hdf5_18_api.patch?h=scilab-git.
-
-diff -ur a/scilab/modules/hdf5/includes/HDF5Objects.h b/scilab/modules/hdf5/includes/HDF5Objects.h
---- a/scilab/modules/hdf5/includes/HDF5Objects.h
-+++ b/scilab/modules/hdf5/includes/HDF5Objects.h
-@@ -16,14 +16,12 @@
- #ifndef __HDF5OBJECTS_H__
- #define __HDF5OBJECTS_H__
- 
--#define H5_NO_DEPRECATED_SYMBOLS
- #undef H5_USE_16_API
-+#define H5_USE_18_API
- 
--#define H5Eset_auto_vers 2
- #include <hdf5.h>
- #include <hdf5_hl.h>
- 
--#undef H5_NO_DEPRECATED_SYMBOLS
- 
- //#define __HDF5OBJECTS_DEBUG__
- //#define __HDF5ERROR_PRINT__
-diff -ur a/scilab/modules/hdf5/Makefile.am b/scilab/modules/hdf5/Makefile.am
---- a/scilab/modules/hdf5/Makefile.am
-+++ b/scilab/modules/hdf5/Makefile.am
-@@ -104,8 +104,7 @@
-     -DH5Gopen_vers=2 \
-     -DH5Tget_array_dims_vers=2 \
-     -DH5Acreate_vers=2 \
--    -DH5Rdereference_vers=2 \
--    -DNO_DEPRECATED_SYMBOLS
-+    -DH5Rdereference_vers=2
- 
- 
- libscihdf5_la_CPPFLAGS = \
-diff -ur a/scilab/modules/hdf5/sci_gateway/cpp/sci_hdf5_listvar_v3.cpp b/scilab/modules/hdf5/sci_gateway/cpp/sci_hdf5_listvar_v3.cpp
---- a/scilab/modules/hdf5/sci_gateway/cpp/sci_hdf5_listvar_v3.cpp
-+++ b/scilab/modules/hdf5/sci_gateway/cpp/sci_hdf5_listvar_v3.cpp
-@@ -13,6 +13,8 @@
- *
- */
- 
-+#define H5_USE_18_API
-+
- #include <vector>
- #include "function.hxx"
- #include "string.hxx"
-diff -ur a/scilab/modules/hdf5/src/c/h5_readDataFromFile.c b/scilab/modules/hdf5/src/c/h5_readDataFromFile.c
---- a/scilab/modules/hdf5/src/c/h5_readDataFromFile.c
-+++ b/scilab/modules/hdf5/src/c/h5_readDataFromFile.c
-@@ -13,7 +13,7 @@
- *
- */
- 
--#define H5_NO_DEPRECATED_SYMBOLS
-+#define H5_USE_18_API
- 
- #ifndef _MSC_VER
- #include <sys/time.h>
-diff -ur a/scilab/modules/hdf5/src/c/h5_readDataFromFile_v1.c b/scilab/modules/hdf5/src/c/h5_readDataFromFile_v1.c
---- a/scilab/modules/hdf5/src/c/h5_readDataFromFile_v1.c
-+++ b/scilab/modules/hdf5/src/c/h5_readDataFromFile_v1.c
-@@ -13,7 +13,7 @@
- *
- */
- 
--#define H5_NO_DEPRECATED_SYMBOLS
-+#define H5_USE_18_API
- 
- #ifndef _MSC_VER
- #include <sys/time.h>
diff --git a/gnu/packages/patches/yggdrasil-extra-config.patch b/gnu/packages/patches/yggdrasil-extra-config.patch
index 7934e2b50f..44c58a8fbd 100644
--- a/gnu/packages/patches/yggdrasil-extra-config.patch
+++ b/gnu/packages/patches/yggdrasil-extra-config.patch
@@ -1,108 +1,62 @@
-From 779f980451d20079b34812f7006f2d7230738ad0 Mon Sep 17 00:00:00 2001
-From: csepp <raingloom@riseup.net>
-Date: Wed, 3 Nov 2021 21:14:54 +0100
+From 5aeabc1a8a8c5ecea3f5d0b7bcfa0aa0767ac92d Mon Sep 17 00:00:00 2001
+Message-ID: <5aeabc1a8a8c5ecea3f5d0b7bcfa0aa0767ac92d.1699726745.git.avityazev@posteo.org>
+From: Aleksandr Vityazev <avityazev@posteo.org>
+Date: Sat, 11 Nov 2023 19:50:46 +0300
 Subject: [PATCH] add extra config file option to yggdrasil command
 
 This is useful in Guix and Nix, because one config file can come
 from the world-readable store and another can be placed directly
 into /etc with much stricter permissions.
 ---
- cmd/yggdrasil/main.go | 29 ++++++++++++++++++++++-------
- 1 file changed, 22 insertions(+), 7 deletions(-)
+ cmd/yggdrasil/main.go | 12 ++++++++++++
+ src/config/config.go  |  2 +-
+ 2 files changed, 13 insertions(+), 1 deletion(-)
 
 diff --git a/cmd/yggdrasil/main.go b/cmd/yggdrasil/main.go
-index 58b8230..b9df98a 100644
+index a225755..3f53dda 100644
 --- a/cmd/yggdrasil/main.go
 +++ b/cmd/yggdrasil/main.go
-@@ -43,11 +43,12 @@ type node struct {
- 	admin     *admin.AdminSocket
- }
- 
--func readConfig(log *log.Logger, useconf bool, useconffile string, normaliseconf bool) *config.NodeConfig {
-+func readConfig(log *log.Logger, useconf bool, useconffile string, extraconffile string, normaliseconf bool) *config.NodeConfig {
- 	// Use a configuration file. If -useconf, the configuration will be read
- 	// from stdin. If -useconffile, the configuration will be read from the
- 	// filesystem.
- 	var conf []byte
-+	var extraconf []byte
- 	var err error
- 	if useconffile != "" {
- 		// Read the file from the filesystem
-@@ -59,6 +60,21 @@ func readConfig(log *log.Logger, useconf bool, useconffile string, normaliseconf
- 	if err != nil {
- 		panic(err)
- 	}
-+	if extraconffile != "" {
-+		extraconf, err = os.ReadFile(extraconffile);
-+	}
-+	if err != nil {
-+		panic(err)
-+	}
-+	// Generate a new configuration - this gives us a set of sane defaults -
-+	// then parse the configuration we loaded above on top of it. The effect
-+	// of this is that any configuration item that is missing from the provided
-+	// configuration will use a sane default.
-+	cfg := defaults.GenerateConfig()
-+	var confs [2][]byte
-+	confs[0]=conf
-+	confs[1]=extraconf
-+	for _, conf := range confs { if len(conf)>0 {
- 	// If there's a byte order mark - which Windows 10 is now incredibly fond of
- 	// throwing everywhere when it's converting things into UTF-16 for the hell
- 	// of it - remove it and decode back down into UTF-8. This is necessary
-@@ -72,11 +88,6 @@ func readConfig(log *log.Logger, useconf bool, useconffile string, normaliseconf
- 			panic(err)
- 		}
- 	}
--	// Generate a new configuration - this gives us a set of sane defaults -
--	// then parse the configuration we loaded above on top of it. The effect
--	// of this is that any configuration item that is missing from the provided
--	// configuration will use a sane default.
--	cfg := defaults.GenerateConfig()
- 	var dat map[string]interface{}
- 	if err := hjson.Unmarshal(conf, &dat); err != nil {
- 		panic(err)
-@@ -136,6 +147,7 @@ func readConfig(log *log.Logger, useconf bool, useconffile string, normaliseconf
- 	if err = mapstructure.Decode(dat, &cfg); err != nil {
- 		panic(err)
- 	}
-+	}}
- 	return cfg
- }
- 
-@@ -192,6 +204,7 @@ type yggArgs struct {
- 	getaddr       bool
- 	getsnet       bool
- 	useconffile   string
-+        extraconffile string
- 	logto         string
- 	loglevel      string
- }
-@@ -200,6 +213,7 @@ func getArgs() yggArgs {
+@@ -42,6 +42,7 @@ func main() {
  	genconf := flag.Bool("genconf", false, "print a new config to stdout")
  	useconf := flag.Bool("useconf", false, "read HJSON/JSON config from stdin")
  	useconffile := flag.String("useconffile", "", "read HJSON/JSON config from specified file path")
 +	extraconffile := flag.String("extraconffile", "", "extra (usually private) HJSON/JSON config from specified file path")
  	normaliseconf := flag.Bool("normaliseconf", false, "use in combination with either -useconf or -useconffile, outputs your configuration normalised")
+ 	exportkey := flag.Bool("exportkey", false, "use in combination with either -useconf or -useconffile, outputs your private key in PEM format")
  	confjson := flag.Bool("json", false, "print configuration from -genconf or -normaliseconf as JSON instead of HJSON")
- 	autoconf := flag.Bool("autoconf", false, "automatic mode (dynamic IP, peer with IPv6 neighbors)")
-@@ -213,6 +227,7 @@ func getArgs() yggArgs {
- 		genconf:       *genconf,
- 		useconf:       *useconf,
- 		useconffile:   *useconffile,
-+                extraconffile: *extraconffile,
- 		normaliseconf: *normaliseconf,
- 		confjson:      *confjson,
- 		autoconf:      *autoconf,
-@@ -265,7 +280,7 @@ func run(args yggArgs, ctx context.Context, done chan struct{}) {
- 		cfg = defaults.GenerateConfig()
- 	case args.useconffile != "" || args.useconf:
- 		// Read the configuration from either stdin or from the filesystem
--		cfg = readConfig(logger, args.useconf, args.useconffile, args.normaliseconf)
-+		cfg = readConfig(logger, args.useconf, args.useconffile, args.extraconffile, args.normaliseconf)
- 		// If the -normaliseconf option was specified then remarshal the above
- 		// configuration and print it back to stdout. This lets the user update
- 		// their configuration file with newly mapped names (like above) or to
+@@ -137,6 +138,17 @@ func main() {
+ 		return
+ 	}
+ 
++	if *extraconffile !="" {
++		f, err := os.Open(*extraconffile)
++		if err != nil {
++			panic(err)
++		}
++		if _, err := cfg.ReadFrom(f); err != nil {
++			panic(err)
++		}
++		_ = f.Close()
++	}
++
+ 	privateKey := ed25519.PrivateKey(cfg.PrivateKey)
+ 	publicKey := privateKey.Public().(ed25519.PublicKey)
+ 
+diff --git a/src/config/config.go b/src/config/config.go
+index e899a35..76b9ec8 100644
+--- a/src/config/config.go
++++ b/src/config/config.go
+@@ -112,7 +112,7 @@ func (cfg *NodeConfig) ReadFrom(r io.Reader) (int64, error) {
+ 	// then parse the configuration we loaded above on top of it. The effect
+ 	// of this is that any configuration item that is missing from the provided
+ 	// configuration will use a sane default.
+-	*cfg = *GenerateConfig()
++	// *cfg = *GenerateConfig()
+ 	if err := cfg.UnmarshalHJSON(conf); err != nil {
+ 		return n, err
+ 	}
+
+base-commit: b759683b76985665b5218346abab35f08d9f4d38
 -- 
-2.33.1
+2.41.0
 
diff --git a/gnu/packages/potassco.scm b/gnu/packages/potassco.scm
index e6d7caa1ef..887c220ccf 100644
--- a/gnu/packages/potassco.scm
+++ b/gnu/packages/potassco.scm
@@ -221,6 +221,28 @@ satisfiability checking (SAT).")
     (description "Clingo computes answer sets for a given logic program.")
     (license license:expat)))
 
+(define-public clingo-dl
+  (package
+    (name "clingo-dl")
+    (version "1.4.0")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/potassco/clingo-dl")
+                    (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32 "0dncwj63vdm6958vb7355d5j9mdr7hm037j4z82yz6l77jg3sipw"))))
+    (build-system cmake-build-system)
+    (arguments (list #:tests? #f        ; no tests
+                     #:configure-flags #~`("-DPYCLINGODL_ENABLE=off")))
+    (inputs (list clingo))
+    (home-page "https://github.com/potassco/clingo-dl")
+    (synopsis "Solver for answer set programs modulo difference constraints")
+    (description "Clingo-DL is an extension to Clingo that models constraints
+over difference logic.")
+    (license license:expat)))
+
 (define-public emacs-pasp-mode
   (let ((commit "59385eb0e8ebcfc8c11dd811fb145d4b0fa3cc92")
         (revision "1"))
diff --git a/gnu/packages/protobuf.scm b/gnu/packages/protobuf.scm
index 8cd805799e..c157eabce0 100644
--- a/gnu/packages/protobuf.scm
+++ b/gnu/packages/protobuf.scm
@@ -8,6 +8,7 @@
 ;;; Copyright © 2020 Vinicius Monego <monego@posteo.net>
 ;;; Copyright © 2020 Brett Gilio <brettg@gnu.org>
 ;;; Copyright © 2021 Felix Gruber <felgru@posteo.net>
+;;; Copyright © 2023 Zheng Junjie <873216071@qq.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -156,8 +157,11 @@ data in motion, or as a file format for data at rest.")
                             (install-file file slib)
                             (delete-file file))
                           (find-files lib "\\.a$"))))))))
-    (native-inputs (list googletest))
-    (inputs (list zlib))
+    (native-inputs (append (if (%current-target-system)
+                               (list this-package)
+                               '())
+                           (list googletest)))
+    (inputs (list zlib googletest))
     (home-page "https://github.com/protocolbuffers/protobuf")
     (synopsis "Data encoding for remote procedure calls (RPCs)")
     (description
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index 6a6f69e6bb..5a017b76d0 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -32496,13 +32496,13 @@ Psycopg 2 is both Unicode and Python 3 friendly.")
 (define-public python-pyfuse3
   (package
     (name "python-pyfuse3")
-    (version "3.2.1")
+    (version "3.3.0")
     (source
       (origin
         (method url-fetch)
         (uri (pypi-uri "pyfuse3" version))
         (sha256
-          (base32 "0cvybynv9igssfa4l13q09gb6m7afmwk34wsbq8jk14sqpd4dl92"))))
+          (base32 "1gbkwmk7gpyy70cqj9226qvwrx13xlwxfz86l86n5ybr4i0zwc9b"))))
     (build-system python-build-system)
     (native-inputs (list pkg-config))
     (inputs (list fuse))
diff --git a/gnu/packages/samba.scm b/gnu/packages/samba.scm
index 89a79cee2d..f52b86e1ed 100644
--- a/gnu/packages/samba.scm
+++ b/gnu/packages/samba.scm
@@ -507,6 +507,38 @@ and IPV6 and the protocols layered above them, such as TCP and UDP.")
                    license:gpl2+
                    license:public-domain))))
 
+(define-public ppp-2.4.9
+  (package
+    (inherit ppp)
+    (name "ppp")
+    (version "2.4.9")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/ppp-project/ppp")
+                    (commit (string-append "ppp-" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "1bhhksdclsnkw54a517ndrw55q5zljjbh9pcqz1z4a2z2flxpsgk"))))
+         (arguments
+    (list #:tests? #f                    ;; No "check" target
+          #:make-flags #~(list (string-append "CC=" #$(cc-for-target)))
+          #:phases
+          #~(modify-phases %standard-phases
+              (add-before 'configure 'patch-Makefile
+                (lambda* (#:key inputs #:allow-other-keys)
+                  (let ((openssl (assoc-ref inputs "openssl"))
+                        (libpcap (assoc-ref inputs "libpcap")))
+                    (substitute* "pppd/Makefile.linux"
+                      (("/usr/include/openssl")
+                       (string-append openssl "/include"))
+                      (("-DPPP_FILTER")
+                       (string-append "-DPPP_FILTER -I" libpcap "/include")))
+                    (substitute* "pppd/pppcrypt.h"
+                      (("des\\.h") "openssl/des.h")))
+                  #t)))))))
+
 (define-public wsdd
   (package
     (name "wsdd")
diff --git a/gnu/packages/terminals.scm b/gnu/packages/terminals.scm
index adb5e223e7..27b1e1a2ac 100644
--- a/gnu/packages/terminals.scm
+++ b/gnu/packages/terminals.scm
@@ -156,32 +156,27 @@ less to gain, as only the helper process is running with privileges (e.g.,
   (package
     (name "tilda")
     (version "1.5.4")
-    (source (origin
-              (method git-fetch)
-              (uri (git-reference
-                    (url "https://github.com/lanoxx/tilda")
-                    (commit (string-append "tilda-" version))))
-              (file-name (git-file-name name version))
-              (sha256
-               (base32
-                "0q2i9ny8sh7zjzgvkx8vcvk593wcvchjc4xq4nrlqdd377r7cg5q"))))
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/lanoxx/tilda")
+             (commit (string-append "tilda-" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "0q2i9ny8sh7zjzgvkx8vcvk593wcvchjc4xq4nrlqdd377r7cg5q"))))
     (build-system glib-or-gtk-build-system)
     (arguments
-     `(#:phases
-       (modify-phases %standard-phases
-         (add-after 'unpack 'make-po-writable
-           (lambda _
-             (for-each make-file-writable (find-files "po" "."))
-             #t)))))
-    (native-inputs
-     `(("autoconf" ,autoconf)
-       ("automake" ,automake)
-       ("gettext" ,gettext-minimal)
-       ("pkg-config" ,pkg-config)))
-    (inputs
-     (list libconfuse vte))
+     `(#:phases (modify-phases %standard-phases
+                  (add-after 'unpack 'make-po-writable
+                    (lambda _
+                      (for-each make-file-writable
+                                (find-files "po" ".")) #t)))))
+    (native-inputs (list autoconf automake gettext-minimal pkg-config))
+    (inputs (list libconfuse vte))
     (synopsis "GTK+-based drop-down terminal")
-    (description "Tilda is a terminal emulator similar to normal terminals like
+    (description
+     "Tilda is a terminal emulator similar to normal terminals like
 gnome-terminal (GNOME) or Konsole (KDE), with the difference that it drops down
 from the edge of a screen when a certain configurable hotkey is pressed.  This
 is similar to the built-in consoles in some applications.  Tilda is highly
@@ -189,6 +184,29 @@ configurable through a graphical wizard.")
     (home-page "https://github.com/lanoxx/tilda")
     (license license:gpl2+)))
 
+(define-public tilda-dbus
+  (package
+    (inherit tilda)
+    (name "tilda")
+    (version "1.6-alpha")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/lanoxx/tilda")
+             (commit "51a980a55ad6d750daa21d43a66d44577dad277b")))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "1pdarmlxkap9v689s88b89l5hi4vspsrrysh7pbm9rhdjmzk5m2c"))))
+    (synopsis "GTK+-based drop-down terminal with experimental D-Bus support")
+    (description
+     "Tilda is a terminal emulator similar to normal terminals like
+gnome-terminal (GNOME) or Konsole (KDE), with the difference that it drops down
+from the edge of a screen when a certain configurable hotkey is pressed.  This
+is similar to the built-in consoles in some applications.  Tilda is highly
+configurable through a graphical wizard.  This version enables D-Bus support
+which is necessary for using Tilda on Wayland.")))
+
 (define-public termite
   (package
     (name "termite")
diff --git a/gnu/packages/textutils.scm b/gnu/packages/textutils.scm
index 41a34b6c4e..ea182b1925 100644
--- a/gnu/packages/textutils.scm
+++ b/gnu/packages/textutils.scm
@@ -27,6 +27,7 @@
 ;;; Copyright © 2022 Gabriel Wicki <gabriel@erlikon.ch>
 ;;; Copyright © 2023 Reza Housseini <reza@housseini.me>
 ;;; Copyright © 2023 Hilton Chain <hako@ultrarare.space>
+;;; Copyright © 2023 Zheng Junjie <873216071@qq.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -1129,13 +1130,13 @@ documents into plain text.")
           "0im3kzvhxkjlx57w6h13mc9584c74ma1dyymgvpq2y61av3gc35v"))))
     (build-system gnu-build-system)
     (arguments
-     `(#:tests? #f ; no make check
-       #:make-flags (list "CC=gcc"
-                          (string-append "DESTDIR=" (assoc-ref %outputs "out")))
-       #:phases
-       (modify-phases %standard-phases
-         ;; no configure script
-         (delete 'configure))))
+     (list #:tests? #f ; no make check
+           #:make-flags #~(list (string-append "CC=" #$(cc-for-target))
+                                (string-append "DESTDIR=" #$output))
+           #:phases
+           #~(modify-phases %standard-phases
+               ;; no configure script
+               (delete 'configure))))
     (inputs
      (list zlib))
     (home-page "https://github.com/dstosberg/odt2txt/")
@@ -1289,13 +1290,14 @@ Mainland China, Taiwan, and Hong-Kong.")
                   "0anw0knr1iy4p9w3d3b3pbwzh1c43p1i2q4c28kw9zviw8kx2rly"))))
       (build-system gnu-build-system)
       (arguments
-       `(#:tests? #f ; test for perl module
-         #:make-flags (list "CC=gcc" "CFLAGS=-O2 -Wall -pedantic"
-                            (string-append "prefix=" %output)
-                            "MKDIR=mkdir -p")
-         #:phases
-         (modify-phases %standard-phases
-           (delete 'configure)))) ; No ./configure script
+       (list #:tests? #f ; test for perl module
+             #:make-flags #~(list (string-append "CC=" #$(cc-for-target))
+                                  "CFLAGS=-O2 -Wall -pedantic"
+                                  (string-append "prefix=" #$output)
+                                  "MKDIR=mkdir -p")
+             #:phases
+             #~(modify-phases %standard-phases
+                 (delete 'configure)))) ; No ./configure script
       (home-page "https://ja.osdn.net/projects/nkf/")
       (synopsis "Network Kanji Filter")
       (description "Nkf is yet another kanji code converter among networks,
diff --git a/gnu/packages/toys.scm b/gnu/packages/toys.scm
index 21d5279e85..2fa47315c0 100644
--- a/gnu/packages/toys.scm
+++ b/gnu/packages/toys.scm
@@ -5,6 +5,7 @@
 ;;; Copyright © 2019, 2022 Liliana Marie Prikler <liliana.prikler@gmail.com>
 ;;; Copyright © 2020 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2021 Leo Famulari <leo@famulari.name>
+;;; Copyright © 2023 Zheng Junjie <873216071@qq.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -70,6 +71,7 @@
                       (search-input-file inputs
                                          (string-append "bin/" cmd)))))))))
     (inputs (list bash-minimal coreutils sed
+                  diffutils
                   fmt gmp))
     (native-inputs (list pkg-config))
     (home-page "https://gitlab.com/lilyp/daikichi")
diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm
index 561268aabd..e9b2a17851 100644
--- a/gnu/packages/video.scm
+++ b/gnu/packages/video.scm
@@ -66,6 +66,7 @@
 ;;; Copyright © 2023 Ott Joon <oj@vern.cc>
 ;;; Copyright © 2023 Dominik Delgado Steuter <dds@disroot.org>
 ;;; Copyright © 2023 Saku Laesvuori <saku@laesvuori.fi>
+;;; Copyright © 2023 Jaeme Sifat <jaeme@runbox.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -2683,7 +2684,7 @@ YouTube.com and many more sites.")
 (define-public yt-dlp
   (package/inherit youtube-dl
     (name "yt-dlp")
-    (version "2023.09.24")
+    (version "2023.10.13")
     (source
      (origin
        (method git-fetch)
@@ -2692,7 +2693,7 @@ YouTube.com and many more sites.")
              (commit version)))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "15ngsg3cadf2bv700fa1k5az5xpsm0wqr0cixbz8fcbhwdflfq6f"))))
+        (base32 "1cy8cpqwq6yfsbrnln3qqp9lsjckn20m6w7b890ha7jahyir5m1n"))))
     (arguments
      (substitute-keyword-arguments (package-arguments youtube-dl)
        ((#:tests? _) (not (%current-target-system)))
@@ -3618,18 +3619,15 @@ and JACK.")
 (define-public obs-looking-glass
   (package
     (name "obs-looking-glass")
-    (version "B5")
-    (source
-     (origin
-       (method git-fetch)
-       (uri (git-reference
-             (url "https://github.com/gnif/LookingGlass")
-             (commit version)
-             (recursive? #t)))
-       (file-name (git-file-name name version))
-       (sha256
-        (base32
-         "09mn544x5hg1z31l92ksk7fi7yj9r8xdk0dcl9fk56ivcr452ylm"))))
+    (version "B6")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "https://looking-glass.io/artifact/" version
+                                  "/source"))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "15d7wwbzfw28yqbz451b6n33ixy50vv8acyzi8gig1mq5a8gzdib"))))
     (build-system cmake-build-system)
     (arguments
      (list
diff --git a/gnu/packages/vim.scm b/gnu/packages/vim.scm
index 469c8b64cb..9debed0b86 100644
--- a/gnu/packages/vim.scm
+++ b/gnu/packages/vim.scm
@@ -14,6 +14,8 @@
 ;;; Copyright © 2021 Foo Chuan Wei <chuanwei.foo@hotmail.com>
 ;;; Copyright © 2022, 2023 Luis Henrique Gomes Higino <luishenriquegh2701@gmail.com>
 ;;; Copyright © 2023 Charles Jackson <charles.b.jackson@protonmail.com>
+;;; Copyright © 2023 Foundation Devices, Inc. <hello@foundationdevices.com>
+;;; Copyright © 2023 Nguyễn Gia Phong <mcsinyx@disroot.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -38,6 +40,7 @@
   #:use-module (guix download)
   #:use-module (guix git-download)
   #:use-module (guix build-system cmake)
+  #:use-module (guix build-system copy)
   #:use-module (guix build-system gnu)
   #:use-module (guix build-system python)
   #:use-module (guix build-system pyproject)
@@ -48,7 +51,9 @@
   #:use-module (gnu packages attr)
   #:use-module (gnu packages autotools)
   #:use-module (gnu packages base)
+  #:use-module (gnu packages check)
   #:use-module (gnu packages code)
+  #:use-module (gnu packages coq)
   #:use-module (gnu packages enlightenment)
   #:use-module (gnu packages fontutils)
   #:use-module (gnu packages gawk)
@@ -448,6 +453,65 @@ trouble using them, because you do not have to remember each snippet name.")
       (home-page "https://github.com/Shougo/context_filetype.vim")
       (license license:expat)))) ; ??? check again
 
+(define-public vim-coqtail
+  (let ((commit "dfe3939c9caff69d9af76bfd74f1a40fb7dc5609")
+        (revision "0"))
+    (package
+      (name "vim-coqtail")
+      (version (git-version "1.7.0" revision commit))
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url "https://github.com/whonore/Coqtail")
+                      (commit commit)))
+                (file-name (git-file-name name version))
+                (sha256
+                 (base32
+                  "0av2m075n6z05ah9ndrgnp9s16yrz6n2lj0igd9fh3c5k41x5xks"))))
+      (build-system vim-build-system)
+      (arguments
+       '(#:plugin-name "coqtail"
+         #:phases
+         (modify-phases %standard-phases
+           (add-before 'install 'check
+             (lambda* (#:key inputs native-inputs tests? #:allow-other-keys)
+               (when tests?
+                 (display "Running Python unit tests.\n")
+                 (setenv "PYTHONPATH" (string-append (getcwd) "/python"))
+                 (invoke "pytest" "-q" "tests/unit")
+
+                 (display "Running Python Coq tests.\n")
+                 (invoke "pytest" "-q" "tests/coq")
+
+                 (display "Running Vim unit tests.\n")
+                 (let* ((vim-vader (assoc-ref (or native-inputs inputs)
+                                              "vim-vader"))
+                        (vader-path (string-append
+                                      vim-vader
+                                      "/share/vim/vimfiles/pack/guix/start/vader")))
+                   (with-directory-excursion "tests/vim"
+                     (setenv "VADER_PATH" vader-path)
+                     (invoke (string-append
+                               (assoc-ref (or native-inputs inputs) "vim-full")
+                               "/bin/vim")
+                             "-E" "-Nu" "vimrc"
+                             "-c" "Vader! *.vader")))
+
+                 ;; Remove __pycache__ files generated during testing so that
+                 ;; they don't get installed.
+                 (delete-file-recursively "python/__pycache__")))))))
+      (native-inputs
+       `(("coq-for-coqtail" ,coq-for-coqtail)
+         ("python-pytest" ,python-pytest)
+         ("vim-full" ,vim-full)         ; Plugin needs Python 3.
+         ("vim-vader" ,vim-vader)))
+      (propagated-inputs (list coq coq-ide-server))
+      (synopsis "Interactive Coq proofs in Vim")
+      (description "Coqtail enables interactive Coq proof development in Vim
+similar to CoqIDE or ProofGeneral.")
+      (home-page "https://github.com/whonore/Coqtail")
+      (license license:expat))))
+
 (define-public vim-fugitive
   (package
     (name "vim-fugitive")
@@ -1423,3 +1487,92 @@ files for reading or editing, and perform basic file system operations.")
 operations and styles which are invoked via key mappings and a menu.  These
 operations are available for most filetypes.")
     (license license:cc0)))
+
+(define-public vim-vader
+  (let ((revision "0")
+        (commit "6fff477431ac3191c69a3a5e5f187925466e275a"))
+    (package
+      (name "vim-vader")
+      (version (git-version "0.4.0" revision commit))
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url "https://github.com/junegunn/vader.vim")
+                      (commit commit)))
+                (file-name (git-file-name name version))
+                (sha256
+                 (base32
+                  "179dbbqdyl6qf6jdb6kdazn3idz17m1h2n88rlggb1wnly74vjin"))))
+      (build-system vim-build-system)
+      (arguments
+       '(#:plugin-name "vader"
+         #:phases
+         (modify-phases %standard-phases
+           (add-before 'install 'check
+             (lambda* (#:key tests? #:allow-other-keys)
+               (when tests?
+                 ;; FIXME: suite1.vader fails with an unknown reason,
+                 ;; lang-if.vader requires Python and Ruby.
+                 (substitute* "test/vader.vader"
+                   (("Include.*feature/suite1.vader.*$") "")
+                   (("Include.*feature/lang-if.vader.*$") ""))
+
+                 (display "Running Vim tests\n")
+                 (with-directory-excursion "test"
+                   (setenv "VADER_TEST_VIM" "vim -E")
+                   (invoke "bash" "./run-tests.sh"))))))))
+      (native-inputs (list vim))
+      (home-page "https://github.com/junegunn/vader.vim")
+      (synopsis "Test framework for Vimscript")
+      (description "Vader is a test framework for Vimscript designed to
+simplify the process of writing and running unit tests.  Vader.vim provides an
+intuitive test syntax for defining test cases and expectations, it also can
+be integrated with @acronym{CI, Continuous Integration} pipelines to
+automate testing and is compatible with Vim and Neovim.")
+      (license license:expat)))) ;; Specified in README.md.
+
+(define-public vim-jedi-vim
+  (package
+    (name "vim-jedi-vim")
+    (version "0.11.2")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+              (url "https://github.com/davidhalter/jedi-vim")
+              (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "03fj7f5cpchrdmz9szal6fdg05wdwb0j6260nnyp37nmpcpn13yc"))))
+    (build-system vim-build-system)
+    (arguments (list #:plugin-name "jedi-vim"))
+    (propagated-inputs (list python-jedi))
+    (home-page "https://github.com/davidhalter/jedi-vim")
+    (synopsis "Jedi autocompletion library for Vim")
+    (description
+     "@code{jedi-vim} is a VIM binding to the autocompletion library Jedi.")
+    (license license:expat)))
+
+(define-public vim-srcery-vim
+  (package
+    (name "vim-srcery-vim")
+    (version "2.0.0")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/srcery-colors/srcery-vim")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "0nwk81y9j5ljjm3k19kf1zmscdxiis4mwan026wv7cqp7f9qhxlr"))))
+    (build-system vim-build-system)
+    (arguments
+     (list #:plugin-name "srcery"
+           #:mode "opt"))
+    (home-page "https://srcery.sh")
+    (synopsis "Dark colorscheme for gvim and vim")
+    (description
+     "Srcery is a color scheme with clearly defined contrasting colors
+and a slightly earthy tone.")
+    (license license:expat)))
diff --git a/gnu/packages/vpn.scm b/gnu/packages/vpn.scm
index 972f9b0329..489a35da42 100644
--- a/gnu/packages/vpn.scm
+++ b/gnu/packages/vpn.scm
@@ -825,7 +825,9 @@ others.")
     (native-inputs
      (list autoconf automake pkg-config))
     (inputs
-     (list openssl ppp))
+     ;; ppp < 2.5.0 is required due to
+     ;; <https://github.com/adrienverge/openfortivpn/pull/1148>.
+     (list openssl ppp-2.4.9))
     (home-page "https://github.com/adrienverge/openfortivpn")
     (synopsis "Client for PPP+SSL VPN tunnel services")
     (description "Openfortivpn is a client for PPP+SSL VPN tunnel services.  It
diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm
index f06f0d6abf..e4a99429cd 100644
--- a/gnu/packages/web.scm
+++ b/gnu/packages/web.scm
@@ -4956,8 +4956,8 @@ Cloud.")
     (license license:expat)))
 
 (define-public guix-data-service
-  (let ((commit "37a07c2d6e8285877ad0440a7e4ae286b7b65177")
-        (revision "43"))
+  (let ((commit "e13febc81706fbfb7f073bc4e9ce73fbc80d5180")
+        (revision "44"))
     (package
       (name "guix-data-service")
       (version (string-append "0.0.1-" revision "." (string-take commit 7)))
@@ -4969,7 +4969,7 @@ Cloud.")
                 (file-name (git-file-name name version))
                 (sha256
                  (base32
-                  "0h83j10bq7dyda2idbqh5y6dcvmbl3xgc147yq4pk6bkh10y29y6"))))
+                  "0pk86b44zg2yn73sxlcd9pqbz8xwprwzaib2npnq80y3yzc6qc22"))))
       (build-system gnu-build-system)
       (arguments
        (list
diff --git a/gnu/packages/xdisorg.scm b/gnu/packages/xdisorg.scm
index f9bf42b721..ede2d73627 100644
--- a/gnu/packages/xdisorg.scm
+++ b/gnu/packages/xdisorg.scm
@@ -1732,7 +1732,7 @@ less if you are working in front of the screen at night.")
 (define-public xscreensaver
   (package
     (name "xscreensaver")
-    (version "6.04")
+    (version "6.08")
     (source
      (origin
        (method url-fetch)
@@ -1740,7 +1740,7 @@ less if you are working in front of the screen at night.")
         (string-append "https://www.jwz.org/xscreensaver/xscreensaver-"
                        version ".tar.gz"))
        (sha256
-        (base32 "0lmiyvp3qs2gngd53f191jmlizs9l04i2gnrqbn96mqckyr18w3q"))
+        (base32 "18vnbs2ns42cgnnsvwn0zh98wcfzxf2k9mib5x5zkv6f4njjpxaw"))
        (modules '((guix build utils)))
        (snippet
         ;; 'configure.ac' checks for $ac_unrecognized_opts and exits if it's
@@ -1787,14 +1787,13 @@ less if you are working in front of the screen at night.")
            libjpeg-turbo
            linux-pam
            pango
-           gdk-pixbuf-xlib
            gtk+
            perl
            cairo
            bc
            libxrandr
            glu
-           glib))
+           `(,glib "bin")))
     (home-page "https://www.jwz.org/xscreensaver/")
     (synopsis "Classic screen saver suite supporting screen locking")
     (description
@@ -3225,6 +3224,7 @@ initialize programs.")
     (build-system gnu-build-system)
     (native-inputs
      (list autoconf automake
+           dbus-glib ;; for dbus-binding-tool
            `(,glib "bin") pkg-config))
     (inputs
      (list dbus-glib glib libx11))
diff --git a/gnu/packages/xorg.scm b/gnu/packages/xorg.scm
index 8f359c3e2f..62000946e1 100644
--- a/gnu/packages/xorg.scm
+++ b/gnu/packages/xorg.scm
@@ -6090,7 +6090,7 @@ Conventions Manual) and some of the @dfn{EWMH}
        (file-name (git-file-name name version))))
     (build-system gnu-build-system)
     (native-inputs
-     (list pkg-config autoconf automake))
+     (list util-macros pkg-config autoconf automake))
     (inputs
      (list libx11
            libxext
diff --git a/gnu/packages/zig.scm b/gnu/packages/zig.scm
index dcca9a1121..08ee650d8b 100644
--- a/gnu/packages/zig.scm
+++ b/gnu/packages/zig.scm
@@ -20,6 +20,7 @@
 ;;; along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.
 
 (define-module (gnu packages zig)
+  #:use-module (guix gexp)
   #:use-module (guix packages)
   #:use-module (guix utils)
   #:use-module (guix git-download)
@@ -29,10 +30,10 @@
   #:use-module (gnu packages compression)
   #:use-module (gnu packages llvm))
 
-(define-public zig-0.10
+(define-public zig-0.9
   (package
     (name "zig")
-    (version "0.10.1")
+    (version "0.9.1")
     (source
      (origin
        (method git-fetch)
@@ -41,57 +42,66 @@
              (commit version)))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "1sh5xjsksl52i4cfv1qj36sz5h0ln7cq4pdhgs3960mk8a90im7b"))
-       (patches (search-patches "zig-do-not-link-against-librt.patch"))))
+        (base32 "0nfvgg23sw50ksy0z0ml6lkdsvmd0278mq29m23dbb2jsirkhry7"))
+       (patches (search-patches "zig-0.9-riscv-support.patch"
+                                "zig-use-system-paths.patch"
+                                "zig-do-not-link-against-librt.patch"))))
     (build-system cmake-build-system)
+    (arguments
+     (list
+      #:configure-flags
+      #~(list #$@(if (%current-target-system)
+                     (list (string-append "-DZIG_TARGET_TRIPLE="
+                                          (%current-target-system)))
+                     '()))
+      #:out-of-source? #f         ; for tests
+      ;; There are too many unclear test failures.
+      #:tests? (not (or (target-riscv64?)
+                        (%current-target-system)))
+      #:phases
+      #~(modify-phases %standard-phases
+          #$@(if (target-riscv64?)
+                 ;; It is unclear why all these tests fail to build.
+                 `((add-after 'unpack 'adjust-tests
+                     (lambda _
+                       (substitute* "build.zig"
+                         ((".*addRuntimeSafetyTests.*") "")
+                         ((".*addRunTranslatedCTests.*") ""))
+                       (substitute* "test/standalone.zig"
+                         ;; These tests fail to build on riscv64-linux.
+                         ;; They both contain 'exe.linkSystemLibrary("c");'
+                         ((".*shared_library.*") "")
+                         ((".*mix_o_files.*") "")
+                         ;; ld.lld: error: undefined symbol: __tls_get_addr
+                         ;; Is this symbol x86 only in glibc?
+                         ((".*link_static_lib_as_system_lib.*") "")))))
+                 '())
+          (add-after 'configure 'set-cache-dir
+            (lambda _
+              ;; Set cache dir, otherwise Zig looks for `$HOME/.cache'.
+              (setenv "ZIG_GLOBAL_CACHE_DIR"
+                      (string-append (getcwd) "/zig-cache"))))
+          (delete 'check)
+          (add-after 'install 'check
+            (lambda* (#:key tests? #:allow-other-keys)
+              (when tests?
+                (invoke (string-append #$output "/bin/zig")
+                        ;; Testing the standard library takes >7.5GB RAM, and
+                        ;; will fail if it is OOM-killed.  The 'test-toolchain'
+                        ;; target skips standard library and doc tests.
+                        "build" "test-toolchain"
+                        ;; Stage 2 is experimental, not what we run with `zig',
+
+                        "-Dskip-stage2-tests"
+                        ;; Non-native tests try to link and execute non-native
+                        ;; binaries.
+                        "-Dskip-non-native")))))))
     (inputs
-     (list clang-15 ; Clang propagates llvm.
-           lld-15
-           zlib
-           (list zstd "lib")))
+     (list clang-13                     ;Clang propagates llvm.
+           lld-13))
     ;; Zig compiles fine with GCC, but also needs native LLVM libraries.
     (native-inputs
-     (list llvm-15))
-    (arguments
-     `(#:configure-flags
-       (list ,@(if (%current-target-system)
-                   '(string-append "-DZIG_TARGET_TRIPLE="
-                                   (%current-target-system))
-                   '())
-             (string-append "-DZIG_TARGET_MCPU=baseline")
-             "-DZIG_SHARED_LLVM=ON"
-             (string-append "-DZIG_LIB_DIR=" (assoc-ref %outputs "out")
-                            "/lib/zig"))
-       #:validate-runpath? #f       ; TODO: zig binary can't find ld-linux.
-       #:out-of-source? #f ; for tests
-       #:phases
-       (modify-phases %standard-phases
-         (add-after 'unpack 'set-env-variables
-           (lambda* (#:key inputs native-inputs #:allow-other-keys)
-             ;; Set CC, since the stage 2 zig relies on it to find the libc
-             ;; installation, and otherwise silently links against its own.
-             (setenv "CC" ,(cc-for-target))
-             ;; Set cache dir, otherwise Zig looks for `$HOME/.cache'.
-             (setenv "ZIG_GLOBAL_CACHE_DIR"
-                     (string-append (getcwd) "/zig-cache"))))
-         (add-after 'patch-source-shebangs 'patch-more-shebangs
-           (lambda* (#:key inputs #:allow-other-keys)
-             ;; Zig uses information about /usr/bin/env to determine the
-             ;; version of glibc and other data.
-             (substitute* "lib/std/zig/system/NativeTargetInfo.zig"
-               (("/usr/bin/env") (search-input-file inputs "/bin/env")))))
-         (delete 'check)
-         (add-after 'install 'check
-           (lambda* (#:key outputs tests? #:allow-other-keys)
-             (when tests?
-               (invoke (string-append (assoc-ref outputs "out") "/bin/zig")
-                       "build" "test"
-                       ;; We're not testing the compiler bootstrap chain.
-                       "-Dskip-stage1"
-                       "-Dskip-stage2-tests"
-                       ;; Non-native tests try to link and execute non-native
-                       ;; binaries.
-                       "-Dskip-non-native")))))))
+     (list llvm-13))
     (native-search-paths
      (list
       (search-path-specification
@@ -122,11 +132,11 @@ toolchain.  Among other features it provides
     (properties `((max-silent-time . 9600)))
     (license license:expat)))
 
-(define-public zig-0.9
+(define-public zig-0.10
   (package
-    (inherit zig-0.10)
+    (inherit zig-0.9)
     (name "zig")
-    (version "0.9.1")
+    (version "0.10.1")
     (source
      (origin
        (method git-fetch)
@@ -135,63 +145,52 @@ toolchain.  Among other features it provides
              (commit version)))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "0nfvgg23sw50ksy0z0ml6lkdsvmd0278mq29m23dbb2jsirkhry7"))
-       (patches (search-patches "zig-0.9-riscv-support.patch"
-                                "zig-use-system-paths.patch"
-                                "zig-do-not-link-against-librt.patch"))))
+        (base32 "1sh5xjsksl52i4cfv1qj36sz5h0ln7cq4pdhgs3960mk8a90im7b"))
+       (patches (search-patches "zig-do-not-link-against-librt.patch"))))
+    (arguments
+     (substitute-keyword-arguments (package-arguments zig-0.9)
+       ((#:configure-flags flags ''())
+        #~(cons* "-DZIG_TARGET_MCPU=baseline"
+                 "-DZIG_SHARED_LLVM=ON"
+                 (string-append "-DZIG_LIB_DIR=" #$output "/lib/zig")
+                 #$flags))
+       ;; TODO: zig binary can't find ld-linux.
+       ((#:validate-runpath? _ #t) #f)
+       ((#:tests? _ #t) #t)
+       ((#:phases phases '%standard-phases)
+        #~(modify-phases #$phases
+            #$@(if (target-riscv64?)
+                   `((delete 'adjust-tests))
+                   '())
+            (add-after 'unpack 'set-CC
+              (lambda _
+                ;; Set CC, since the stage 2 zig relies on it to find the libc
+                ;; installation, and otherwise silently links against its own.
+                (setenv "CC" #$(cc-for-target))))
+            (add-after 'patch-source-shebangs 'patch-more-shebangs
+              (lambda* (#:key inputs #:allow-other-keys)
+                ;; Zig uses information about /usr/bin/env to determine the
+                ;; version of glibc and other data.
+                (substitute* "lib/std/zig/system/NativeTargetInfo.zig"
+                  (("/usr/bin/env") (search-input-file inputs "/bin/env")))))
+            (replace 'check
+              (lambda* (#:key tests? #:allow-other-keys)
+                (when tests?
+                  (invoke (string-append #$output "/bin/zig")
+                          "build" "test"
+                          ;; We're not testing the compiler bootstrap chain.
+                          "-Dskip-stage1"
+                          "-Dskip-stage2-tests"
+                          ;; Non-native tests try to link and execute non-native
+                          ;; binaries.
+                          "-Dskip-non-native"))))))))
     (inputs
-     (list clang-13 ; Clang propagates llvm.
-           lld-13))
-    ;; Zig compiles fine with GCC, but also needs native LLVM libraries.
+     (modify-inputs (package-inputs zig-0.9)
+       (prepend zlib `(,zstd "lib"))
+       (replace "clang" clang-15)
+       (replace "lld" lld-15)))
     (native-inputs
-     (list llvm-13))
-    (arguments
-     `(#:configure-flags
-       (list ,@(if (%current-target-system)
-                   (string-append "-DZIG_TARGET_TRIPLE="
-                                  (%current-target-system))
-                   '()))
-       #:out-of-source? #f ; for tests
-       ;; There are too many unclear test failures.
-       #:tests? ,(not (or (target-riscv64?)
-                          (%current-target-system)))
-       #:phases
-       (modify-phases %standard-phases
-         (add-after 'configure 'set-cache-dir
-           (lambda _
-             ;; Set cache dir, otherwise Zig looks for `$HOME/.cache'.
-             (setenv "ZIG_GLOBAL_CACHE_DIR"
-                     (string-append (getcwd) "/zig-cache"))))
-         ,@(if (target-riscv64?)
-             ;; It is unclear why all these tests fail to build.
-             `((add-after 'unpack 'adjust-tests
-                 (lambda _
-                   (substitute* "build.zig"
-                     ((".*addRuntimeSafetyTests.*") "")
-                     ((".*addRunTranslatedCTests.*") ""))
-                   (substitute* "test/standalone.zig"
-                     ;; These tests fail to build on riscv64-linux.
-                     ;; They both contain 'exe.linkSystemLibrary("c");'
-                     ((".*shared_library.*") "")
-                     ((".*mix_o_files.*") "")
-                     ;; ld.lld: error: undefined symbol: __tls_get_addr
-                     ;; Is this symbol x86 only in glibc?
-                     ((".*link_static_lib_as_system_lib.*") "")))))
-             '())
-         (delete 'check)
-         (add-after 'install 'check
-           (lambda* (#:key outputs tests? #:allow-other-keys)
-             (when tests?
-               (invoke (string-append (assoc-ref outputs "out") "/bin/zig")
-                       ;; Testing the standard library takes >7.5GB RAM, and
-                       ;; will fail if it is OOM-killed.  The 'test-toolchain'
-                       ;; target skips standard library and doc tests.
-                       "build" "test-toolchain"
-                       ;; Stage 2 is experimental, not what we run with `zig',
-                       ;; and stage 2 tests require a lot of RAM.
-                       "-Dskip-stage2-tests"
-                       ;; Non-native tests try to link and execute non-native
-                       ;; binaries.
-                       "-Dskip-non-native")))))))))
+     (modify-inputs (package-native-inputs zig-0.9)
+       (replace "llvm" llvm-15)))))
 
 (define-public zig zig-0.10)
diff --git a/gnu/services/docker.scm b/gnu/services/docker.scm
index c2023d618c..ebea0a473a 100644
--- a/gnu/services/docker.scm
+++ b/gnu/services/docker.scm
@@ -5,6 +5,7 @@
 ;;; Copyright © 2020 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2020 Jesse Dowell <jessedowell@gmail.com>
 ;;; Copyright © 2021 Brice Waegeneire <brice@waegenei.re>
+;;; Copyright © 2023 Giacomo Leidi <goodoldpaul@autistici.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -29,15 +30,36 @@
   #:use-module (gnu services shepherd)
   #:use-module (gnu system setuid)
   #:use-module (gnu system shadow)
+  #:use-module (gnu packages admin)               ;shadow
   #:use-module (gnu packages docker)
   #:use-module (gnu packages linux)               ;singularity
   #:use-module (guix records)
+  #:use-module (guix diagnostics)
   #:use-module (guix gexp)
+  #:use-module (guix i18n)
   #:use-module (guix packages)
+  #:use-module (srfi srfi-1)
+  #:use-module (ice-9 format)
+  #:use-module (ice-9 match)
 
   #:export (docker-configuration
             docker-service-type
-            singularity-service-type))
+            singularity-service-type
+            oci-container-configuration
+            oci-container-configuration?
+            oci-container-configuration-fields
+            oci-container-configuration-user
+            oci-container-configuration-group
+            oci-container-configuration-command
+            oci-container-configuration-entrypoint
+            oci-container-configuration-environment
+            oci-container-configuration-image
+            oci-container-configuration-provision
+            oci-container-configuration-network
+            oci-container-configuration-ports
+            oci-container-configuration-volumes
+            oci-container-service-type
+            oci-container-shepherd-service))
 
 (define-configuration docker-configuration
   (docker
@@ -216,3 +238,239 @@ bundles in Docker containers.")
                        (service-extension activation-service-type
                                           (const %singularity-activation))))
                 (default-value singularity)))
+
+
+;;;
+;;; OCI container.
+;;;
+
+(define (oci-sanitize-pair pair delimiter)
+  (define (valid? member)
+    (or (string? member)
+        (gexp? member)
+        (file-like? member)))
+  (match pair
+    (((? valid? key) . (? valid? value))
+     #~(string-append #$key #$delimiter #$value))
+    (_
+     (raise
+      (formatted-message
+       (G_ "pair members must contain only strings, gexps or file-like objects
+but ~a was found")
+       pair)))))
+
+(define (oci-sanitize-mixed-list name value delimiter)
+  (map
+   (lambda (el)
+     (cond ((string? el) el)
+           ((pair? el) (oci-sanitize-pair el delimiter))
+           (else
+            (raise
+             (formatted-message
+              (G_ "~a members must be either a string or a pair but ~a was
+found!")
+              name el)))))
+   value))
+
+(define (oci-sanitize-environment value)
+  ;; Expected spec format:
+  ;; '(("HOME" . "/home/nobody") "JAVA_HOME=/java")
+  (oci-sanitize-mixed-list "environment" value "="))
+
+(define (oci-sanitize-ports value)
+  ;; Expected spec format:
+  ;; '(("8088" . "80") "2022:22")
+  (oci-sanitize-mixed-list "ports" value ":"))
+
+(define (oci-sanitize-volumes value)
+  ;; Expected spec format:
+  ;; '(("/mnt/dir" . "/dir") "/run/current-system/profile:/java")
+  (oci-sanitize-mixed-list "volumes" value ":"))
+
+(define-maybe/no-serialization string)
+
+(define-configuration/no-serialization oci-container-configuration
+  (user
+   (string "oci-container")
+   "The user under whose authority docker commands will be run.")
+  (group
+   (string "docker")
+   "The group under whose authority docker commands will be run.")
+  (command
+   (list-of-strings '())
+   "Overwrite the default command (@code{CMD}) of the image.")
+  (entrypoint
+   (maybe-string)
+   "Overwrite the default entrypoint (@code{ENTRYPOINT}) of the image.")
+  (environment
+   (list '())
+   "Set environment variables.  This can be a list of pairs or strings, even
+mixed:
+
+@lisp
+(list '(\"LANGUAGE\" . \"eo:ca:eu\")
+      \"JAVA_HOME=/opt/java\")
+@end lisp
+
+String are passed directly to the Docker CLI.  You can refer to the
+@url{https://docs.docker.com/engine/reference/commandline/run/#env,upstream}
+documentation for semantics."
+   (sanitizer oci-sanitize-environment))
+  (image
+   (string)
+   "The image used to build the container.  Images are resolved by the Docker
+Engine, and follow the usual format
+@code{myregistry.local:5000/testing/test-image:tag}.")
+  (provision
+   (maybe-string)
+   "Set the name of the provisioned Shepherd service.")
+  (network
+   (maybe-string)
+   "Set a Docker network for the spawned container.")
+  (ports
+   (list '())
+   "Set the port or port ranges to expose from the spawned container.  This can
+be a list of pairs or strings, even mixed:
+
+@lisp
+(list '(\"8080\" . \"80\")
+      \"10443:443\")
+@end lisp
+
+String are passed directly to the Docker CLI.  You can refer to the
+@url{https://docs.docker.com/engine/reference/commandline/run/#publish,upstream}
+documentation for semantics."
+   (sanitizer oci-sanitize-ports))
+  (volumes
+   (list '())
+   "Set volume mappings for the spawned container.  This can be a
+list of pairs or strings, even mixed:
+
+@lisp
+(list '(\"/root/data/grafana\" . \"/var/lib/grafana\")
+      \"/gnu/store:/gnu/store\")
+@end lisp
+
+String are passed directly to the Docker CLI.  You can refer to the
+@url{https://docs.docker.com/engine/reference/commandline/run/#volume,upstream}
+documentation for semantics."
+   (sanitizer oci-sanitize-volumes))
+  (container-user
+   (maybe-string)
+   "Set the current user inside the spawned container.  You can refer to the
+@url{https://docs.docker.com/engine/reference/run/#user,upstream}
+documentation for semantics.")
+  (workdir
+   (maybe-string)
+   "Set the current working for the spawned Shepherd service.
+You can refer to the
+@url{https://docs.docker.com/engine/reference/run/#workdir,upstream}
+documentation for semantics."))
+
+(define oci-container-configuration->options
+  (lambda (config)
+    (let ((entrypoint
+           (oci-container-configuration-entrypoint config))
+          (network
+           (oci-container-configuration-network config))
+          (user
+           (oci-container-configuration-user config))
+          (workdir
+           (oci-container-configuration-workdir config)))
+      (apply append
+             (filter (compose not unspecified?)
+                     `(,(if (maybe-value-set? entrypoint)
+                            `("--entrypoint" ,entrypoint)
+                            '())
+                       ,(append-map
+                         (lambda (spec)
+                           (list "--env" spec))
+                         (oci-container-configuration-environment config))
+                       ,(if (maybe-value-set? network)
+                            `("--network" ,network)
+                            '())
+                       ,(if (maybe-value-set? user)
+                            `("--user" ,user)
+                            '())
+                       ,(if (maybe-value-set? workdir)
+                            `("--workdir" ,workdir)
+                            '())
+                       ,(append-map
+                         (lambda (spec)
+                           (list "-p" spec))
+                         (oci-container-configuration-ports config))
+                       ,(append-map
+                         (lambda (spec)
+                           (list "-v" spec))
+                         (oci-container-configuration-volumes config))))))))
+
+(define (oci-container-shepherd-service config)
+  (define (guess-name name image)
+    (if (maybe-value-set? name)
+        name
+        (string-append "docker-"
+                       (basename (car (string-split image #\:))))))
+
+  (let* ((docker-command (file-append docker-cli "/bin/docker"))
+         (user (oci-container-configuration-user config))
+         (group (oci-container-configuration-group config))
+         (command (oci-container-configuration-command config))
+         (provision (oci-container-configuration-provision config))
+         (image (oci-container-configuration-image config))
+         (options (oci-container-configuration->options config))
+         (name (guess-name provision image)))
+
+    (shepherd-service (provision `(,(string->symbol name)))
+                      (requirement '(dockerd user-processes))
+                      (respawn? #f)
+                      (documentation
+                       (string-append
+                        "Docker backed Shepherd service for image: " image))
+                      (start
+                       #~(make-forkexec-constructor
+                          ;; docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
+                          (list #$docker-command "run" "--rm"
+                                "--name" #$name
+                                #$@options #$image #$@command)
+                          #:user #$user
+                          #:group #$group))
+                      (stop
+                       #~(lambda _
+                           (invoke #$docker-command "rm" "-f" #$name)))
+                      (actions
+                       (list
+                        (shepherd-action
+                         (name 'pull)
+                         (documentation
+                          (format #f "Pull ~a's image (~a)."
+                                  name image))
+                         (procedure
+                          #~(lambda _
+                              (invoke #$docker-command "pull" #$image)))))))))
+
+(define %oci-container-accounts
+  (list (user-account
+         (name "oci-container")
+         (comment "OCI services account")
+         (group "docker")
+         (system? #t)
+         (home-directory "/var/empty")
+         (shell (file-append shadow "/sbin/nologin")))))
+
+(define (configs->shepherd-services configs)
+  (map oci-container-shepherd-service configs))
+
+(define oci-container-service-type
+  (service-type (name 'oci-container)
+                (extensions (list (service-extension profile-service-type
+                                                     (lambda _ (list docker-cli)))
+                                  (service-extension account-service-type
+                                                     (const %oci-container-accounts))
+                                  (service-extension shepherd-root-service-type
+                                                     configs->shepherd-services)))
+                (default-value '())
+                (extend append)
+                (compose concatenate)
+                (description
+                 "This service allows the management of Docker and OCI
+containers as Shepherd services.")))