summary refs log tree commit diff
path: root/gnu
diff options
context:
space:
mode:
authorMarius Bakke <marius@gnu.org>2022-09-29 07:26:37 +0200
committerMarius Bakke <marius@gnu.org>2022-09-29 07:26:37 +0200
commitf66067febc111d03929c95c067f0b88a8f8abb7b (patch)
treed571997c6756f60a9e9ddd6396e46d05ca7e0dde /gnu
parent5dc5d6fa8136f067c85295d88018a7cd8b7cfe40 (diff)
parent45eac6cdf5c8d9d7b0c564b105c790d2d2007799 (diff)
downloadguix-f66067febc111d03929c95c067f0b88a8f8abb7b.tar.gz
Merge branch 'master' into staging
Diffstat (limited to 'gnu')
-rw-r--r--gnu/local.mk3
-rw-r--r--gnu/packages/admin.scm34
-rw-r--r--gnu/packages/c.scm36
-rw-r--r--gnu/packages/chromium.scm62
-rw-r--r--gnu/packages/cpp.scm47
-rw-r--r--gnu/packages/cran.scm169
-rw-r--r--gnu/packages/crates-io.scm96
-rw-r--r--gnu/packages/elm.scm18
-rw-r--r--gnu/packages/fonts.scm8
-rw-r--r--gnu/packages/gnome-xyz.scm41
-rw-r--r--gnu/packages/gnome.scm172
-rw-r--r--gnu/packages/gnuzilla.scm312
-rw-r--r--gnu/packages/haskell-apps.scm13
-rw-r--r--gnu/packages/image-processing.scm4
-rw-r--r--gnu/packages/javascript.scm23
-rw-r--r--gnu/packages/kde-frameworks.scm27
-rw-r--r--gnu/packages/linux.scm42
-rw-r--r--gnu/packages/music.scm4
-rw-r--r--gnu/packages/parallel.scm4
-rw-r--r--gnu/packages/patches/crc32c-unbundle-googletest.patch21
-rw-r--r--gnu/packages/patches/telegram-desktop-allow-disable-libtgvoip.patch125
-rw-r--r--gnu/packages/patches/webrtc-for-telegram-desktop-fix-gcc12-cstdint.patch21
-rw-r--r--gnu/packages/python-science.scm20
-rw-r--r--gnu/packages/python-xyz.scm4
-rw-r--r--gnu/packages/qt.scm19
-rw-r--r--gnu/packages/radio.scm80
-rw-r--r--gnu/packages/rust-apps.scm89
-rw-r--r--gnu/packages/telegram.scm289
-rw-r--r--gnu/packages/tex.scm27
-rw-r--r--gnu/packages/video.scm4
-rw-r--r--gnu/packages/vim.scm5
-rw-r--r--gnu/packages/wm.scm47
-rw-r--r--gnu/packages/xml.scm4
-rw-r--r--gnu/services/base.scm37
-rw-r--r--gnu/services/samba.scm12
-rw-r--r--gnu/system.scm33
36 files changed, 1208 insertions, 744 deletions
diff --git a/gnu/local.mk b/gnu/local.mk
index 78bdc113ac..3ba6e55792 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -997,6 +997,7 @@ dist_patch_DATA =						\
   %D%/packages/patches/cpuinfo-system-libraries.patch		\
   %D%/packages/patches/cpulimit-with-glib-2.32.patch		\
   %D%/packages/patches/crawl-upgrade-saves.patch		\
+  %D%/packages/patches/crc32c-unbundle-googletest.patch		\
   %D%/packages/patches/crda-optional-gcrypt.patch		\
   %D%/packages/patches/clucene-contribs-lib.patch               \
   %D%/packages/patches/cube-nocheck.patch			\
@@ -1868,6 +1869,7 @@ dist_patch_DATA =						\
   %D%/packages/patches/teensy-loader-cli-help.patch		\
   %D%/packages/patches/tensorflow-c-api-fix.patch		\
   %D%/packages/patches/texinfo-5-perl-compat.patch		\
+  %D%/packages/patches/telegram-desktop-allow-disable-libtgvoip.patch   \
   %D%/packages/patches/telegram-purple-adjust-test.patch	\
   %D%/packages/patches/texi2html-document-encoding.patch	\
   %D%/packages/patches/texi2html-i18n.patch			\
@@ -1967,6 +1969,7 @@ dist_patch_DATA =						\
   %D%/packages/patches/warsow-qfusion-fix-bool-return-type.patch	\
   %D%/packages/patches/webkitgtk-adjust-bubblewrap-paths.patch	\
   %D%/packages/patches/webrtc-audio-processing-big-endian.patch	\
+  %D%/packages/patches/webrtc-for-telegram-desktop-fix-gcc12-cstdint.patch   \
   %D%/packages/patches/websocketpp-fix-for-cmake-3.15.patch	\
   %D%/packages/patches/widelands-add-missing-map-include.patch	\
   %D%/packages/patches/widelands-system-wide_minizip.patch	\
diff --git a/gnu/packages/admin.scm b/gnu/packages/admin.scm
index 668d710739..1a213adfdd 100644
--- a/gnu/packages/admin.scm
+++ b/gnu/packages/admin.scm
@@ -51,6 +51,8 @@
 ;;; Copyright © 2021 Artyom V. Poptsov <poptsov.artyom@gmail.com>
 ;;; Copyright © 2022 Wamm K. D. <jaft.r@outlook.com>
 ;;; Copyright © 2022 Roman Riabenko <roman@riabenko.com>
+;;; Copyright © 2022 Petr Hodina <phodina@protonmail.com>
+;;; Copyright © 2022 Andreas Rammhold <andreas@rammhold.de>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -697,6 +699,30 @@ console.")
       ;; This package uses a modified version of the "ISC License".
       (license (license:non-copyleft "file://LICENSE")))))
 
+(define-public btop
+  (package
+    (name "btop")
+    (version "1.2.9")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append
+                    "https://github.com/aristocratos/btop/archive/refs/tags/v"
+                    version ".tar.gz"))
+              (sha256
+               (base32
+                "0cb5q7hrb9y378i98km9s6jbi5c50i7wra8m8jik5hf4m4s3930g"))))
+    (build-system gnu-build-system)
+    (arguments
+     (list #:tests? #f ;no test suite
+           #:make-flags #~(list (string-append "PREFIX=" #$output))
+           #:phases #~(modify-phases %standard-phases
+                        (delete 'configure))))
+    (home-page "https://github.com/aristocratos/btop")
+    (synopsis "Resource monitor")
+    (description "Btop++ provides unified monitoring of CPU, memory, network
+and processes.")
+    (license license:asl2.0)))
+
 (define-public htop
   (package
     (name "htop")
@@ -2125,14 +2151,16 @@ command.")
      (substitute-keyword-arguments (package-arguments wpa-supplicant-minimal)
        ((#:phases phases)
         `(modify-phases ,phases
-           (add-after 'configure 'configure-for-dbus
+           (add-after 'configure 'set-config-options
              (lambda _
                (let ((port (open-file ".config" "al")))
+                 ;; Enable Opportunistic Wireless Encryption (OWE) and D-Bus
+                 ;; support.
                  (display "
+      CONFIG_OWE=y
       CONFIG_CTRL_IFACE_DBUS_NEW=y
       CONFIG_CTRL_IFACE_DBUS_INTRO=y\n" port)
-                 (close-port port))
-               #t))
+                 (close-port port))))
           (add-after 'install-documentation 'install-dbus-conf
             (lambda* (#:key outputs #:allow-other-keys)
               (let* ((out (assoc-ref outputs "out"))
diff --git a/gnu/packages/c.scm b/gnu/packages/c.scm
index 10275970b1..84b537022d 100644
--- a/gnu/packages/c.scm
+++ b/gnu/packages/c.scm
@@ -55,6 +55,7 @@
   #:use-module (gnu packages perl)
   #:use-module (gnu packages texinfo)
   #:use-module (gnu packages guile)
+  #:use-module (gnu packages llvm)
   #:use-module (gnu packages lua)
   #:use-module (gnu packages multiprecision)
   #:use-module (gnu packages pcre)
@@ -1182,6 +1183,41 @@ performance concurrent systems developed in C99+.")
     (license (list license:bsd-2        ;everything except...
                    license:asl2.0))))   ;src/ck_hp.c
 
+(define-public libdispatch
+  (package
+    (name "libdispatch")
+    (version "5.7")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/apple/swift-corelibs-libdispatch")
+             (commit (string-append "swift-" version "-RELEASE"))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32
+         "0skg1azbhbg7y0ql2a5sx6lmfip8l1rajqm95zzf9xv45n4dg9nn"))))
+    (build-system cmake-build-system)
+    (arguments
+     (list #:phases
+           #~(modify-phases %standard-phases
+               ;; Use Clang instead of GCC.
+               (add-before 'configure 'prepare-build-environment
+                 (lambda _
+                   (setenv "AR" "llvm-ar")
+                   (setenv "NM" "llvm-nm")
+                   (setenv "CC" "clang")
+                   (setenv "CXX" "clang++"))))))
+    (native-inputs (list clang llvm))
+    (home-page "https://apple.github.io/swift-corelibs-libdispatch/")
+    (synopsis "Concurrent code execution on multicore hardware")
+    (description
+     "Grand Central Dispatch (GCD or libdispatch) implements a concurrency model
+wherein program tasks are divided into work items.  These can be run
+sequentially or in parallel, with optional synchronization in between, and GCD
+will take care of dispatching tasks to available cores.")
+    (license license:asl2.0)))
+
 (define-public utf8-h
   ;; The latest tag is used as there is no release.
   (let ((commit "500d4ea9f4c3449e5243c088d8af8700f7189734")
diff --git a/gnu/packages/chromium.scm b/gnu/packages/chromium.scm
index 77c51a00c6..f730d69da5 100644
--- a/gnu/packages/chromium.scm
+++ b/gnu/packages/chromium.scm
@@ -100,6 +100,7 @@
     "third_party/angle/src/third_party/volk" ;Expat
     "third_party/apple_apsl" ;APSL2.0
     "third_party/axe-core" ;MPL2.0
+    "third_party/bidimapper" ;ASL2.0
     "third_party/blink" ;BSD-3, LGPL2+
     "third_party/boringssl" ;OpenSSL/ISC (Google additions are ISC)
     "third_party/boringssl/src/third_party/fiat" ;Expat
@@ -173,6 +174,7 @@
     "third_party/hunspell" ;MPL1.1/GPL2+/LGPL2.1+
     "third_party/iccjpeg" ;IJG
     "third_party/inspector_protocol" ;BSD-3
+    "third_party/ipcz" ;BSD-3
     "third_party/jinja2" ;BSD-3
     "third_party/jstemplate" ;ASL2.0
     "third_party/khronos" ;Expat, SGI
@@ -317,9 +319,10 @@
   ;; run the Blink performance tests, just remove everything to save ~70MiB.
   '("third_party/blink/perf_tests"))
 
-(define %chromium-version "105.0.5195.125")
+(define %chromium-version "106.0.5249.61")
 (define %ungoogled-revision (string-append %chromium-version "-1"))
 (define %debian-revision "debian/102.0.5005.61-1")
+(define %arch-revision "6afedb08139b97089ce8ef720ece5cd14c83948c")
 
 (define %ungoogled-origin
   (origin
@@ -329,7 +332,7 @@
     (file-name (git-file-name "ungoogled-chromium" %ungoogled-revision))
     (sha256
      (base32
-      "0k16wma9lj9q34xgz377nasnfzcw7wi73l91r41yilvgb3l2fgw8"))))
+      "0mz3f4f2q72zl6m9vxxx084z0a1kfmsqf7fcir5bka85ap2klpjl"))))
 
 (define %debian-origin
   (origin
@@ -345,7 +348,7 @@
       "1ln6r1qzlr7dsgvcbssvvc34my4mpkwv9hmvlb2dhjncs7isp65j"))))
 
 (define %chromium-gcc-patchset
-  (let ((commit "chromium-105-patchset-1"))
+  (let ((commit "chromium-106-patchset-3"))
     (origin
       (method git-fetch)
       (uri (git-reference
@@ -355,7 +358,7 @@
                                 (string-drop commit 9)))
       (sha256
        (base32
-        "08c3pbdqjdqi7rmyqkkh6q429611ikakf4gkzwg1gr07vyknwkfa")))))
+        "109garl1z19zgn3sgg1y2339aa229kfpmlb238cp6kbd7gv8j43x")))))
 
 (define (origin-file origin file)
   (computed-file
@@ -377,23 +380,27 @@
 
 (define %gcc-patches
   (map gcc-patch
-       '("chromium-105-AdjustMaskLayerGeometry-ceilf.patch"
-         "chromium-105-Bitmap-include.patch"
-         "chromium-105-browser_finder-include.patch"
-         "chromium-105-raw_ptr-noexcept.patch"
-         "chromium-105-Trap-raw_ptr.patch")))
-
-;; Take a patch from Arch that reverts a change which requires an unreleased
-;; version of ffmpeg.
-(define %ungoogled-chromium-unroll-ffmpeg.patch
+       '("chromium-106-AutofillPopupControllerImpl-namespace.patch"
+         "chromium-106-LinuxInputMethodContext-include.patch"
+         "chromium-106-ReverseBeaconTimeoutSorter-constexpr.patch")))
+
+(define (arch-patch revision name hash)
   (origin
     (method url-fetch)
-    (uri "https://raw.githubusercontent.com/archlinux/svntogit-packages\
-/f3225f99b900e11ac900725992ea883142d7309c/trunk/roll-src-third_party-ffmpeg.patch")
-    (file-name "ungoogled-chromium-unroll-ffmpeg.patch")
-    (sha256
-     (base32
-      "0i7crn6fcwq09kd6a4smqnffaldyv61lmv2p0drcnpfrwalmkprh"))))
+    (uri (string-append "https://raw.githubusercontent.com/archlinux"
+                        "/svntogit-packages/" revision "/trunk/" name))
+    (sha256 (base32 hash))))
+
+(define %reverse-patches
+  (list
+   ;; These patches revert changes that require an unreleased ffmpeg.
+   (arch-patch %arch-revision "REVERT-roll-src-third_party-ffmpeg-m102.patch"
+               "0i7crn6fcwq09kd6a4smqnffaldyv61lmv2p0drcnpfrwalmkprh")
+   (arch-patch %arch-revision "REVERT-roll-src-third_party-ffmpeg-m106.patch"
+               "0li10cvxnppmmmsc7w77b1s7z02s5bzd39zsal9x768708fx64jc")
+   ;; Fix crash when using Global Media Controls.
+   (arch-patch %arch-revision "REVERT-enable-GlobalMediaControlsCastStartStop.patch"
+               "1ilsw421lylkjnq3lvc607bdx7cvwlish8qzgwx9s84l4hzv37vp")))
 
 (define %guix-patches
   (list (local-file
@@ -436,8 +443,11 @@
                     (append '#+%debian-patches '#+%guix-patches
                             '#+%gcc-patches))
 
-          (invoke "patch" "-Rp1" "--force" "--input" "--no-backup-if-mismatch"
-                  "--input" #$%ungoogled-chromium-unroll-ffmpeg.patch)
+          ;; These patches are "reversed", i.e. their changes should be undone.
+          (for-each (lambda (patch)
+                      (invoke "patch" "-Rp1" "-F3" "--force" "--input"
+                              patch "--no-backup-if-mismatch"))
+                    '#+%reverse-patches)
 
           (with-directory-excursion #+%ungoogled-origin
             (format #t "Ungooglifying...~%")
@@ -506,7 +516,7 @@
                                   %chromium-version ".tar.xz"))
               (sha256
                (base32
-                "0rhay46fnfffqcpk6c856hj414508fmhda600lz5whcacr25q6r0"))
+                "15qljfg8w124yp65srp1rz3ywrlqhzqzkhimn1h9xz0jkf9cnypj"))
               (modules '((guix build utils)))
               (snippet (force ungoogled-chromium-snippet))))
     (build-system gnu-build-system)
@@ -624,10 +634,10 @@
                   ;; This include path is added by Debians openjpeg patch.
                   (("/usr/include/openjpeg-2.4") openjpeg))
 
-                ;; Remove contrib/ prefix from minizip header inclusions.
+                ;; Adjust minizip header inclusions.
                 (substitute* (find-files "third_party/tflite_support\
 /src/tensorflow_lite_support/metadata/cc")
-                  (("contrib/minizip/")
+                  (("third_party/zlib/minizip/")
                    "minizip/"))
 
                 (substitute*
@@ -762,11 +772,9 @@
 
                 ;; Disable compiler flags that require Clang 15.
                 (substitute* "build/config/compiler/BUILD.gn"
-                  (("\"-no-opaque-pointers\",")
-                   "")
                   (("\"-Wno-unqualified-std-cast-call\"")
                    "")
-                  (("\"-Wno-deprecated-non-prototype\"")
+                  (("\"-Wno-deprecated-builtins\",")
                    ""))
 
                 ;; TODO: pre-compile instead. Avoids a race condition.
diff --git a/gnu/packages/cpp.scm b/gnu/packages/cpp.scm
index d03e0bc7e1..805413cc61 100644
--- a/gnu/packages/cpp.scm
+++ b/gnu/packages/cpp.scm
@@ -1041,6 +1041,15 @@ Google's C++ code base.")
           `(cons* "-DBUILD_TESTING=ON"
                   (delete "-DABSL_RUN_TESTS=ON" ,flags))))))))
 
+(define-public abseil-cpp-cxxstd17
+  (let ((base abseil-cpp))
+    (hidden-package
+     (package/inherit base
+       (arguments
+        (substitute-keyword-arguments (package-arguments base)
+          ((#:configure-flags flags)
+           #~(cons* "-DCMAKE_CXX_STANDARD=17" #$flags))))))))
+
 (define-public pegtl
   (package
     (name "pegtl")
@@ -1907,3 +1916,41 @@ and above.  It is header only and has zero dependencies.  It provides a
 templated string type for compatibility with any STL-like string (std::string,
 std::wstring, etc).")
     (license license:boost1.0)))
+
+(define-public crc32c
+  (package
+    (name "crc32c")
+    (version "1.1.2")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/google/crc32c")
+                    (commit version)))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "0966lyy3w5cnrs0c0fkma4hga51k54hns72l4n76944awqssap7j"))
+              (patches (search-patches "crc32c-unbundle-googletest.patch"))))
+    (build-system cmake-build-system)
+    (arguments
+     (list #:configure-flags #~(list "-DBUILD_SHARED_LIBS=ON"
+                                     "-DCRC32C_BUILD_BENCHMARKS=OFF"
+                                     "-DCRC32C_USE_GLOG=OFF"
+                                     (string-append
+                                      "-DCRC32C_BUILD_TESTS="
+                                      ;; TODO: perhaps infer #:tests?
+                                      (if #$(%current-target-system)
+                                          "OFF" "ON")))
+           #:phases
+           #~(modify-phases %standard-phases
+               (add-after 'unpack 'make-reproducible
+                 (lambda _
+                   (substitute* "CMakeLists.txt"
+                     (("if\\(HAVE_SSE42\\)") "if(FALSE)")))))))
+    (native-inputs (list googletest))
+    (home-page "https://github.com/google/crc32c")
+    (synopsis "Cyclic redundancy check")
+    (description
+     "This package provides architecture-specific implementations of the
+CRC32C algorithm, which is specified in RFC 3720, section 12.1.")
+    (license license:bsd-3)))
diff --git a/gnu/packages/cran.scm b/gnu/packages/cran.scm
index da9482b1c0..6a561473fc 100644
--- a/gnu/packages/cran.scm
+++ b/gnu/packages/cran.scm
@@ -20010,6 +20010,26 @@ inline CSS directives, and it can be rendered both with and without word
 wrap.")
     (license license:expat)))
 
+(define-public r-ggghost
+  (package
+    (name "r-ggghost")
+    (version "0.2.1")
+    (source (origin
+              (method url-fetch)
+              (uri (cran-uri "ggghost" version))
+              (sha256
+               (base32
+                "0kvsjadxxdf6yvzk4a6yqkg02q1ysslvf3m0a369bdim396z4hnv"))))
+    (properties `((upstream-name . "ggghost")))
+    (build-system r-build-system)
+    (propagated-inputs (list r-animation r-ggplot2))
+    (home-page "https://github.com/jonocarroll/ggghost")
+    (synopsis "Capture the spirit of your ggplot2 calls")
+    (description
+     "This package lets you create a reproducible @code{ggplot2} object by
+storing the data and calls.")
+    (license license:gpl3+)))
+
 (define-public r-ggtext
   (package
     (name "r-ggtext")
@@ -20034,6 +20054,31 @@ complex formatted plot labels (titles, subtitles, facet labels, axis labels,
 etc.).  Text boxes with automatic word wrap are also supported.")
     (license license:gpl2)))
 
+(define-public r-ggthemeassist
+  (package
+    (name "r-ggthemeassist")
+    (version "0.1.5")
+    (source (origin
+              (method url-fetch)
+              (uri (cran-uri "ggThemeAssist" version))
+              (sha256
+               (base32
+                "1biw91a8p13h62v4w3yim6ghr98khmyhb3qd0h04asf91vvmpxbv"))))
+    (properties `((upstream-name . "ggThemeAssist")))
+    (build-system r-build-system)
+    (propagated-inputs
+     (list r-formatr
+           r-ggplot2
+           r-miniui
+           r-rstudioapi
+           r-shiny))
+    (home-page "https://github.com/calligross/ggthemeassist")
+    (synopsis "Add-in to customize ggplot2 themes")
+    (description
+     "This package provides an Rstudio add-in that delivers a graphical
+interface for editing @code{ggplot2} theme elements.")
+    (license license:gpl3)))
+
 ;; This package includes minified JavaScript files.  When upgrading please
 ;; check that there are no new minified JavaScript files.
 (define-public r-flexdashboard
@@ -24758,6 +24803,61 @@ Mardia, K.V. (2016).  Statistical shape analysis, with Applications in R (2nd
 Edition), John Wiley and Sons.")
     (license license:gpl2)))
 
+(define-public r-animation
+  (package
+    (name "r-animation")
+    (version "2.7")
+    (source (origin
+              (method url-fetch)
+              (uri (cran-uri "animation" version))
+              (sha256
+               (base32
+                "0sg4sz5lkn85yzpcg22xkr7921cbnh7g74nlp9imjy7c0hdqyhc8"))
+              (snippet
+               '(for-each delete-file
+                          '("inst/misc/scianimator/js/jquery.scianimator.min.js"
+                            "inst/misc/scianimator/js/jquery-1.4.4.min.js")))))
+    (properties `((upstream-name . "animation")))
+    (build-system r-build-system)
+    (arguments
+     (list
+      #:phases
+      '(modify-phases %standard-phases
+         (add-after 'unpack 'process-javascript
+           (lambda* (#:key inputs #:allow-other-keys)
+             (with-directory-excursion "inst/misc/"
+               (symlink (search-input-file
+                         inputs
+                         "share/javascript/jquery.scianimator.min.js")
+                        "scianimator/js/jquery.scianimator.min.js")
+               (invoke "esbuild" (assoc-ref inputs "js-jquery")
+                       "--minify"
+                       (string-append "--outfile="
+                                      "scianimator/js/jquery-1.4.4.min.js"))))))))
+    (propagated-inputs (list r-magick))
+    (inputs (list js-scianimator))
+    (native-inputs
+     `(("esbuild" ,esbuild)
+       ("js-jquery"
+        ,(origin
+           (method url-fetch)
+           (uri "https://code.jquery.com/jquery-1.4.4.js")
+           (sha256
+            (base32
+             "10nl4smq63vrfb0c3n0fknm1zw7ss8gicy6wc6jb6l3rmyad075k"))))))
+    (home-page "https://yihui.org/animation/")
+    (synopsis "Gallery of animations and utilities to create animations")
+    (description
+     "This package provides functions for animations in statistics, covering
+topics in probability theory, mathematical statistics, multivariate
+statistics, non-parametric statistics, sampling survey, linear models, time
+series, computational statistics, data mining and machine learning.  These
+functions may be helpful in teaching statistics and data analysis.  Also
+provided in this package are a series of functions to save animations to
+various formats, e.g. GIF, HTML pages, PDF, and videos.  PDF animations can be
+inserted into Sweave / @code{knitr} easily.")
+    (license (list license:gpl2+ license:gpl3+))))
+
 (define-public r-anthropometry
   (package
     (name "r-anthropometry")
@@ -26144,6 +26244,25 @@ uses a trans-dimensional @dfn{Markov Chain Monte Carlo} (MCMC) approach based
 on a continuous-time birth-death process.")
     (license license:gpl2+)))
 
+(define-public r-bundesligr
+  (package
+    (name "r-bundesligr")
+    (version "0.1.0")
+    (source (origin
+              (method url-fetch)
+              (uri (cran-uri "bundesligR" version))
+              (sha256
+               (base32
+                "0dnhbh9jh7dfbk7mfh8msq4ys5kakalr0kwkycycrb2q8rd049vp"))))
+    (properties `((upstream-name . "bundesligR")))
+    (build-system r-build-system)
+    (home-page "https://github.com/ottlngr/bundesligR")
+    (synopsis "All final tables of the Bundesliga")
+    (description
+     "This package provides all final tables of Germany's highest football
+league, the Bundesliga.  It contains data from 1964 to 2016.")
+    (license license:gpl3)))
+
 (define-public r-d3network
   (package
     (name "r-d3network")
@@ -26802,6 +26921,28 @@ Yue-Pilon's (Yue, 2002) pre-whitening approaches to determining trends in
 climate data.")
     (license license:lgpl2.1)))
 
+(define-public r-rlecuyer
+  (package
+    (name "r-rlecuyer")
+    (version "0.3-5")
+    (source (origin
+              (method url-fetch)
+              (uri (cran-uri "rlecuyer" version))
+              (sha256
+               (base32
+                "09mniai7v8gapr6hd3zm8sm3vi1zcyhgym389904ykb2yx7l68s7"))))
+    (properties `((upstream-name . "rlecuyer")))
+    (build-system r-build-system)
+    (home-page
+     "https://www.iro.umontreal.ca/~lecuyer/myftp/papers/streams00.pdf")
+    (synopsis "R interface to RNG with multiple streams")
+    (description
+     "This package provides an interface to the C implementation of the random
+number generator with multiple independent streams developed by L'Ecuyer et
+al (2002).  The main purpose of this package is to enable the use of this
+random number generator in parallel R applications.")
+    (license license:gpl2+)))
+
 (define-public r-rlinsolve
   (package
     (name "r-rlinsolve")
@@ -31932,6 +32073,34 @@ split, combine, and compress.  This package interfaces directly to the
 data you need the @code{pdftools} package.")
     (license license:asl2.0)))
 
+(define-public r-pbdmpi
+  (package
+    (name "r-pbdmpi")
+    (version "0.4-4")
+    (source (origin
+              (method url-fetch)
+              (uri (cran-uri "pbdMPI" version))
+              (sha256
+               (base32
+                "006pm2yn4mdrpwhfflqcybzv41lz7zssrjrcpq5g98zf60p9c07a"))))
+    (properties `((upstream-name . "pbdMPI")))
+    (build-system r-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-before 'install 'mpi-setup
+           ,%openmpi-setup))))
+    (inputs (list openmpi))
+    (propagated-inputs (list r-float r-rlecuyer))
+    (native-inputs (list pkg-config))
+    (home-page "https://pbdr.org/")
+    (synopsis "Programming with Big Data -- Interface to MPI")
+    (description
+     "This package provides an efficient interface to MPI by utilizing S4
+classes and methods with a focus on @dfn{Single Program/Multiple Data} (SPMD)
+parallel programming style, which is intended for batch parallel execution.")
+    (license license:mpl2.0)))
+
 (define-public r-pdftools
   (package
     (name "r-pdftools")
diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm
index 538267c560..87696f2c79 100644
--- a/gnu/packages/crates-io.scm
+++ b/gnu/packages/crates-io.scm
@@ -16861,10 +16861,10 @@ hexadecimal, base32, and base64.")
      "Processing of data: URL according to WHATWG's Fetch Standard.")
     (license (list license:expat license:asl2.0))))
 
-(define-public rust-datetime-0.4
+(define-public rust-datetime-0.5
   (package
     (name "rust-datetime")
-    (version "0.4.7")
+    (version "0.5.2")
     (source
       (origin
         (method url-fetch)
@@ -16873,18 +16873,17 @@ hexadecimal, base32, and base64.")
          (string-append name "-" version ".tar.gz"))
         (sha256
          (base32
-          "1fd74bq48xg8ki5yw1mr1pa5hd3j5lbk4iqc5r0kh3l62b0vci2w"))))
+          "1g2lhc2ay46njrnnyc0729ibyzkpv3r3d4g0h3gzwmrygykzghs4"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
-        (("rust-iso8601" ,rust-iso8601-0.1)
-         ("rust-kernel32-sys" ,rust-kernel32-sys-0.2)
+        (("rust-iso8601" ,rust-iso8601-0.3)
          ("rust-libc" ,rust-libc-0.2)
          ("rust-locale" ,rust-locale-0.2)
-         ("rust-num-traits" ,rust-num-traits-0.1)
+         ("rust-num-traits" ,rust-num-traits-0.2)
          ("rust-pad" ,rust-pad-0.1)
          ("rust-redox-syscall" ,rust-redox-syscall-0.1)
-         ("rust-winapi" ,rust-winapi-0.2))
+         ("rust-winapi" ,rust-winapi-0.3))
         #:cargo-development-inputs
         (("rust-regex" ,rust-regex-0.1)
          ("rust-rustc-serialize" ,rust-rustc-serialize-0.3))))
@@ -16894,6 +16893,34 @@ hexadecimal, base32, and base64.")
 and arithmetic.")
     (license license:expat)))
 
+(define-public rust-datetime-0.4
+  (package
+    (inherit rust-datetime-0.5)
+    (name "rust-datetime")
+    (version "0.4.7")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "datetime" version))
+        (file-name
+         (string-append name "-" version ".tar.gz"))
+        (sha256
+         (base32
+          "1fd74bq48xg8ki5yw1mr1pa5hd3j5lbk4iqc5r0kh3l62b0vci2w"))))
+    (arguments
+     `(#:cargo-inputs
+        (("rust-iso8601" ,rust-iso8601-0.1)
+         ("rust-kernel32-sys" ,rust-kernel32-sys-0.2)
+         ("rust-libc" ,rust-libc-0.2)
+         ("rust-locale" ,rust-locale-0.2)
+         ("rust-num-traits" ,rust-num-traits-0.1)
+         ("rust-pad" ,rust-pad-0.1)
+         ("rust-redox-syscall" ,rust-redox-syscall-0.1)
+         ("rust-winapi" ,rust-winapi-0.2))
+        #:cargo-development-inputs
+        (("rust-regex" ,rust-regex-0.1)
+         ("rust-rustc-serialize" ,rust-rustc-serialize-0.3))))))
+
 (define-public rust-dbl-0.3
   (package
     (name "rust-dbl")
@@ -30422,8 +30449,30 @@ and locking in the core framework.")
 whether or not a given path points to an executable file.")
     (license (list license:expat license:asl2.0))))
 
+(define-public rust-iso8601-0.3
+  (package
+    (name "rust-iso8601")
+    (version "0.3.0")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "iso8601" version))
+        (file-name
+         (string-append name "-" version ".tar.gz"))
+        (sha256
+         (base32
+          "0vvn6f9gv2295ik77nvaz99wzbwz1bmasrd787sz6d9mlwa6ks23"))))
+    (build-system cargo-build-system)
+    (arguments
+     `(#:cargo-inputs (("rust-nom" ,rust-nom-4))))
+    (home-page "https://github.com/badboy/iso8601")
+    (synopsis "Parsing ISO8601 dates using nom")
+    (description "Parsing ISO8601 dates using nom.")
+    (license license:expat)))
+
 (define-public rust-iso8601-0.1
   (package
+    (inherit rust-iso8601-0.3)
     (name "rust-iso8601")
     (version "0.1.1")
     (source
@@ -30439,11 +30488,7 @@ whether or not a given path points to an executable file.")
     (arguments
      `(#:cargo-inputs
        (("rust-clippy" ,rust-clippy-0.0)
-        ("rust-nom" ,rust-nom-1))))
-    (home-page "https://github.com/badboy/iso8601")
-    (synopsis "Parsing ISO8601 dates using nom")
-    (description "Parsing ISO8601 dates using nom.")
-    (license license:expat)))
+        ("rust-nom" ,rust-nom-1))))))
 
 (define-public rust-itertools-0.10
   (package
@@ -74614,10 +74659,10 @@ implementation that works everywhere, even WASM!")
      "Library to support the reading and writing of zip files.")
     (license license:expat)))
 
-(define-public rust-zoneinfo-compiled-0.4
+(define-public rust-zoneinfo-compiled-0.5
   (package
     (name "rust-zoneinfo-compiled")
-    (version "0.4.8")
+    (version "0.5.1")
     (source
       (origin
         (method url-fetch)
@@ -74626,18 +74671,37 @@ implementation that works everywhere, even WASM!")
          (string-append name "-" version ".tar.gz"))
         (sha256
          (base32
-          "0bnm19w791q6kp79s0zl1cj9w51bw5xrifrxfy3g1p05i676y4vf"))))
+          "1pm50w4vv34r08mrajfvyhc1254gv8zv4q6p7gs315c9bvkfpyv4"))))
     (build-system cargo-build-system)
     (arguments
      `(#:cargo-inputs
        (("rust-byteorder" ,rust-byteorder-1)
-        ("rust-datetime" ,rust-datetime-0.4))))
+        ("rust-datetime" ,rust-datetime-0.5))))
     (home-page "https://github.com/rust-datetime/zoneinfo-compiled/")
     (synopsis "Library for parsing compiled zoneinfo files")
     (description
      "This package provides a library for parsing compiled zoneinfo files.")
     (license license:expat)))
 
+(define-public rust-zoneinfo-compiled-0.4
+  (package
+    (inherit rust-zoneinfo-compiled-0.5)
+    (name "rust-zoneinfo-compiled")
+    (version "0.4.8")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (crate-uri "zoneinfo_compiled" version))
+        (file-name
+         (string-append name "-" version ".tar.gz"))
+        (sha256
+         (base32
+          "0bnm19w791q6kp79s0zl1cj9w51bw5xrifrxfy3g1p05i676y4vf"))))
+    (arguments
+     `(#:cargo-inputs
+       (("rust-byteorder" ,rust-byteorder-1)
+        ("rust-datetime" ,rust-datetime-0.4))))))
+
 (define-public rust-zstd-0.9
   (package
     (name "rust-zstd")
diff --git a/gnu/packages/elm.scm b/gnu/packages/elm.scm
index 74a43a4ff2..12c7e8301b 100644
--- a/gnu/packages/elm.scm
+++ b/gnu/packages/elm.scm
@@ -1,6 +1,7 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2019 Robert Vollmert <rob@vllmrt.net>
 ;;; Copyright © 2022 Philip McGrath <philip@philipmcgrath.com>
+;;; Copyright © 2022 jgart <jgart@dismail.de>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -487,6 +488,23 @@ you.")
 on the @code{marked} project, which focuses on speed.")
     (license license:bsd-3)))
 
+(define-public elm-community-random-extra
+  (package
+    (name "elm-community-random-extra")
+    (version "3.2.0")
+    (source (elm-package-origin
+             "elm-community/random-extra" version
+             (base32 "13l48mx4wj7qdxl1shn9ij34izap256vv3k49ncnxpkjb7m1m3xk")))
+    (build-system elm-build-system)
+    (propagated-inputs (list elm-time elm-random elm-core))
+    (inputs (list elm-explorations-test))
+    (home-page
+     "https://package.elm-lang.org/packages/elm-community/random-extra/")
+    (synopsis "Extra functions for the Elm core random library")
+    (description "@code{emacs-community-random-extra} includes lots of extra
+helper functions for the Random module.")
+    (license license:bsd-3)))
+
 (define-public elm-todomvc
   (let ((commit "f236e7e56941c7705aba6e42cb020ff515fe3290")
         (revision "1"))
diff --git a/gnu/packages/fonts.scm b/gnu/packages/fonts.scm
index 8e51ff2a6d..8e829c6c17 100644
--- a/gnu/packages/fonts.scm
+++ b/gnu/packages/fonts.scm
@@ -2736,7 +2736,7 @@ and readability.  This package bundles those icons into a font.")
 (define-public font-lxgw-wenkai
   (package
     (name "font-lxgw-wenkai")
-    (version "1.245")
+    (version "1.245.1")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -2744,7 +2744,7 @@ and readability.  This package bundles those icons into a font.")
                     version "/lxgw-wenkai-v" version ".tar.gz"))
               (sha256
                (base32
-                "01x5nfw0cy7v8vsjw32zayc0ryskiwj22yzqi28252896073mm9k"))))
+                "13hvr1jz9xpb0cgi4xk3zfbn6w5x258zja55hznbgny2sijnjn8a"))))
     (build-system font-build-system)
     (home-page "https://lxgw.github.io/2021/01/28/Klee-Simpchin/")
     (synopsis "Simplified Chinese Imitation Song typeface")
@@ -2758,7 +2758,7 @@ within GB 2312, standard glyphs for Mainland China is used.")
   (package
     (inherit font-lxgw-wenkai)
     (name "font-lxgw-wenkai-tc")
-    (version "0.922")
+    (version "0.922.1")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -2766,7 +2766,7 @@ within GB 2312, standard glyphs for Mainland China is used.")
                     version "/lxgw-wenkai-tc-v" version ".tar.gz"))
               (sha256
                (base32
-                "0kb12sfb8ihsj14yzk5ib657xvswqy0hy5gr1vfbn1n05vzy8wyk"))))
+                "0a1n0yfnh3sc3ldgjxxglw4xyg82i2pk432sk8hfdzrrl4zzjyz3"))))
     (home-page "https://github.com/lxgw/LxgwWenKaitc")
     (synopsis "Traditional Chinese Imitation Song typeface")
     (description
diff --git a/gnu/packages/gnome-xyz.scm b/gnu/packages/gnome-xyz.scm
index 34a703c7e1..68166978a1 100644
--- a/gnu/packages/gnome-xyz.scm
+++ b/gnu/packages/gnome-xyz.scm
@@ -69,7 +69,8 @@
   #:use-module (gnu packages tls)
   #:use-module (gnu packages ruby)
   #:use-module (gnu packages web)
-  #:use-module (gnu packages xml))
+  #:use-module (gnu packages xml)
+  #:use-module (gnu packages xorg))
 
 (define-public arc-icon-theme
   (package
@@ -303,6 +304,44 @@ and products.  Plots is designed to integrate well with the GNOME desktop and
 takes advantage of modern hardware using OpenGL.")
     (license license:gpl3+)))
 
+(define-public gnome-shell-extension-unite-shell
+  (package
+    (name "gnome-shell-extension-unite-shell")
+    (version "65")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/hardpixel/unite-shell")
+                    (commit "127edac6396b89cdedec003bdff38820e6a0f91f")))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "1lzhf7hlvzg62nxjfpv265315qibcjz5dv08dzpfckf2dx68nab4"))))
+    (build-system copy-build-system)
+    (native-inputs (list `(,glib "bin") gettext-minimal))
+    (inputs (list xprop))
+    (arguments
+     (list #:install-plan ''(("./unite@hardpixel.eu"
+                              "share/gnome-shell/extensions/unite@hardpixel.eu"))
+           #:phases #~(modify-phases %standard-phases
+                        (add-after 'unpack 'patch-xprop-bin
+                          (lambda _
+                            (substitute* "unite@hardpixel.eu/window.js"
+                              (("xprop")
+                               (string-append #$(this-package-input "xprop")
+                                              "/bin/xprop")))))
+                        (add-before 'install 'compile-schemas
+                          (lambda _
+                            (with-directory-excursion "unite@hardpixel.eu/schemas"
+                              (invoke "glib-compile-schemas" ".")))))))
+    (home-page "https://github.com/hardpixel/unite-shell")
+    (synopsis "Top panel and window decoration extension for GNOME Shell")
+    (description
+     "Unite is a GNOME Shell extension which makes a few layout
+tweaks to the top panel and removes window decorations to make it look like
+Ubuntu Unity Shell.")
+    (license license:gpl3)))
+
 (define-public gnome-shell-extension-appindicator
   (package
     (name "gnome-shell-extension-appindicator")
diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index 6db5016cea..10c7f604df 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -9997,92 +9997,93 @@ world.")
     (build-system trivial-build-system)
     (arguments '(#:builder (begin (mkdir %output) #t)))
     (propagated-inputs
-     `(;; GNOME-Core-OS-Services
-       ("accountsservice" ,accountsservice)
-       ("network-manager" ,network-manager)
-       ("packagekit" ,packagekit)
-       ("upower" ,upower)
-       ;; GNOME-Core-Shell
-       ("adwaita-icon-theme" ,adwaita-icon-theme)
-       ("gdm" ,gdm)
-       ("glib-networking" ,glib-networking)
-       ("gnome-backgrounds" ,gnome-backgrounds)
-       ("gnome-bluetooth" ,gnome-bluetooth)
-       ("gnome-color-manager" ,gnome-color-manager)
-       ("gnome-control-center" ,gnome-control-center)
-       ("gnome-desktop" ,gnome-desktop)
-       ("gnome-initial-setup" ,gnome-initial-setup)
-       ("gnome-keyring" ,gnome-keyring)
-       ("gnome-menus" ,gnome-menus)
-       ("gnome-session" ,gnome-session)
-       ("gnome-settings-daemon" ,gnome-settings-daemon)
-       ("gnome-shell-extensions" ,gnome-shell-extensions)
-       ("gnome-shell" ,gnome-shell)
-       ("gnome-themes-extra" ,gnome-themes-extra)
-       ("gnome-user-docs" ,gnome-user-docs)
-       ("gnome-user-share" ,gnome-user-share)
-       ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
-       ("gvfs" ,gvfs)
-       ("mutter" ,mutter)
-       ("orca" ,orca)
-       ("rygel" ,rygel)
-       ("sushi" ,sushi)
-       ;; GNOME-Core-Utilities
-       ("baobab" ,baobab)
-       ("cheese" ,cheese)
-       ;; XXX: EoG requires librsvg-next, which depends on Rust, which currently
-       ;; only works on x86_64, so exclude it on other architectures.
-       ,@(if (string-prefix? "x86_64" (%current-system))
-             `(("eog" ,eog))
+     `(,@(if (string-prefix? "x86_64" (%current-system))
+             ;; XXX: EoG requires librsvg-next, which depends on Rust, which currently
+             ;; only works on x86_64, so exclude it on other architectures.
+             (list eog)
              '())
-       ("epiphany" ,epiphany)
-       ("evince" ,evince)
-       ("file-roller" ,file-roller)
-       ("gedit" ,gedit)
-       ("gnome-boxes" ,gnome-boxes)
-       ("gnome-calculator" ,gnome-calculator)
-       ("gnome-calendar" ,gnome-calendar)
-       ("gnome-characters" ,gnome-characters)
-       ("gnome-clocks" ,gnome-clocks)
-       ("gnome-contacts" ,gnome-contacts)
-       ("gnome-disk-utility" ,gnome-disk-utility)
-       ("gnome-font-viewer" ,gnome-font-viewer)
-       ("gnome-maps" ,gnome-maps)
-       ("gnome-music" ,gnome-music)
-       ("gnome-photos" ,gnome-photos)
-       ("gnome-screenshot" ,gnome-screenshot)
-       ("gnome-system-monitor" ,gnome-system-monitor)
-       ("gnome-terminal" ,gnome-terminal)
-       ("gnome-weather" ,gnome-weather)
-       ("nautilus" ,nautilus)
-       ("simple-scan" ,simple-scan)
-       ("totem" ,totem)
-       ("tracker-miners" ,tracker-miners)
-       ("yelp" ,yelp)
-       ;; Others
-       ("hicolor-icon-theme" ,hicolor-icon-theme)
-       ("gnome-online-accounts" ,gnome-online-accounts)
-
-       ;; Packages not part of GNOME proper but that are needed for a good
-       ;; experience.  See <https://bugs.gnu.org/39646>.
-       ;; XXX: Find out exactly which ones are needed and why.
-       ("font-abattis-cantarell"            ,font-abattis-cantarell)
-       ("font-dejavu"               ,font-dejavu)
-       ("at-spi2-core"              ,at-spi2-core-minimal)
-       ("dbus"                      ,dbus)
-       ("dconf"                     ,dconf)
-       ("desktop-file-utils"        ,desktop-file-utils)
-       ("gnome-default-applications" ,gnome-default-applications)
-       ("gst-plugins-base"          ,gst-plugins-base)
-       ("gst-plugins-good"          ,gst-plugins-good)
-       ("gucharmap"                 ,gucharmap)
-       ("pinentry-gnome3"           ,pinentry-gnome3)
-       ("pulseaudio"                ,pulseaudio)
-       ("shared-mime-info"          ,shared-mime-info)
-       ("system-config-printer"     ,system-config-printer)
-       ("xdg-user-dirs"             ,xdg-user-dirs)
-       ("yelp"                      ,yelp)
-       ("zenity"                    ,zenity)))
+       ,@(list
+          ;; GNOME-Core-OS-Services.
+          accountsservice
+          network-manager
+          packagekit
+          upower
+          ;; GNOME-Core-Shell.
+          adwaita-icon-theme
+          gdm
+          glib-networking
+          gnome-backgrounds
+          gnome-bluetooth
+          gnome-color-manager
+          gnome-control-center
+          gnome-desktop
+          gnome-initial-setup
+          gnome-keyring
+          gnome-menus
+          gnome-session
+          gnome-settings-daemon
+          gnome-shell
+          gnome-shell-extensions
+          gnome-themes-extra
+          gnome-user-docs
+          gnome-user-share
+          gsettings-desktop-schemas
+          gvfs
+          mutter
+          orca
+          rygel
+          sushi
+          ;; GNOME-Core-Utilities.
+          baobab
+          cheese
+          epiphany
+          evince
+          file-roller
+          gnome-boxes
+          gnome-calculator
+          gnome-calendar
+          gnome-characters
+          gnome-clocks
+          gnome-console
+          gnome-contacts
+          gnome-disk-utility
+          gnome-font-viewer
+          gnome-maps
+          gnome-music
+          gnome-photos
+          gnome-screenshot
+          gnome-system-monitor
+          gnome-text-editor
+          gnome-weather
+          nautilus
+          simple-scan
+          totem
+          tracker-miners
+          yelp
+          ;; Others.
+          gnome-online-accounts
+          hicolor-icon-theme
+
+          ;; Packages not part of GNOME proper but that are needed for a good
+          ;; experience.  See <https://bugs.gnu.org/39646>.
+          ;; XXX: Find out exactly which ones are needed and why.
+          at-spi2-core-minimal
+          dbus
+          dconf
+          desktop-file-utils
+          font-abattis-cantarell
+          font-dejavu
+          gnome-default-applications
+          gst-plugins-base
+          gst-plugins-good
+          gucharmap
+          pinentry-gnome3
+          pulseaudio
+          shared-mime-info
+          system-config-printer
+          xdg-user-dirs
+          yelp
+          zenity)))
     (synopsis "The GNU desktop environment")
     (home-page "https://www.gnome.org/")
     (description
@@ -11658,6 +11659,7 @@ generic enough to work for everyone.")
            highlight
            libcanberra
            libgweather4
+           libnotify
            libsoup
            nss
            openldap
diff --git a/gnu/packages/gnuzilla.scm b/gnu/packages/gnuzilla.scm
index be923de72f..f54210b412 100644
--- a/gnu/packages/gnuzilla.scm
+++ b/gnu/packages/gnuzilla.scm
@@ -1263,293 +1263,13 @@ standards of the IceCat project.")
        (cpe-name . "firefox_esr")
        (cpe-version . ,(first (string-split version #\-)))))))
 
-(define all-mozilla-91-locales
-  (mozilla-locales
-   ;;                      sha256                            changeset    locale
-   ;;---------------------------------------------------------------------------
-   ("0f2lkv79gqf46f74905mab3zwyz1532chxlf9d28s548p1hw6lv9" "8312cd2e0777" "ach")
-   ("1v5jpmd0b04mizm9pjffp4r9q121vpq3yzkkxcgmrcwj4gc5jb2y" "21bf766c19d8" "af")
-   ("1fqjiq2la543z5pbbvd9kfs0wdc2phmqjbxascfsak854qy1z9f9" "34b6a4f0790d" "an")
-   ("0pl6j99xnali25glyr3g9fmj67v9vqmhd9k74i97f8q5n4xmv3ym" "513c3e8dac97" "ar")
-   ("0d1fbk9jcai19pi8b7i4y4r0gscqi1inr9dbahd6h0xbxfwc0zif" "19ca0cd0d1bf" "ast")
-   ("08f9b63wxxy28zaimjn1ab9w51bvrarc3pp75s7v6kzm5bk1jwic" "44aa0dad7964" "az")
-   ("15pksy9bgaxcbcnvvp8jwqnqxvvhq9vnljpai6jlh52yyrsglbwi" "5e4499355167" "be")
-   ("0gdg84jp1i4il4nc6gwaswdhc4ljbb9inyip7vhkng09v3pmwm0h" "98d006107851" "bg")
-   ("0i6vl0ag74phj4l38cvds1ds3jjdal1c8d7hy6pf4aqrp4ai32mh" "2ca52cbb680a" "bn")
-   ("16yavargwq8rhipzpmrrvyh68g3a6disz9g5m8xbhxvixhcsi5fr" "ce92556a0a90" "br")
-   ("1512dzp394pj66i13nsz76qh6fmjpz7r7fmvk8d0h7pjk0d6n0dy" "1c79dabdb120" "bs")
-   ("19wg0kbr2ihbn4lscsxg9agz04r8bsih4692vfgb6nyn1z8vx2i0" "a22912c01617" "ca")
-   ("1ixpzjb7caq1d9c7c044rxg3ymxs3hjw120kq85v004jrrb4d9c6" "34bf3fd631d4" "ca-valencia")
-   ("1abizdmd1c56syni1aanwwrfvmgzz25fmimbj2324bcw801ma9h0" "e2e4ba2c37bc" "cak")
-   ("0wgrg2wiz1jcj52nd4zl4shfkjhbngfj6p1gw1ywj266hk8g6pvw" "a60792bff6ff" "cs")
-   ("132f29111jd2z9yxpakkyri80mi2ggnik6zxaxqrp4vlcrd1fxd2" "66369fcad8c7" "cy")
-   ("04lpic3cxdj1imcwjkbk81avp9dpa1c9b1zcchrr1a4vyy4yfjpy" "af198d43f7d6" "da")
-   ("1h0rkwlsqls8k1qi1y68plw6xk0z2c5xc2y4nqywiirl71yz7fi5" "816fcef20c05" "de")
-   ("11lzdyl1h42zb1x2yxiv3r0wih8jy1gr0gzs5d1isdq53sa9cqnq" "962e5a544415" "dsb")
-   ("146jgrhl41k6zbxg58hxh1s088padsjz7ny8nm59i9i8d00jpv0a" "e7c49fd88463" "el")
-   ("1qppr44hdnrb1z1igcd1p0w5sy9vpihzilkl2w44y0v0v9rigppv" "5a0e35b08a48" "en-CA")
-   ("1v2irfms24cx9g5s6r1glmp2c000wi91axyca1pn37s7c01r0n4b" "72f8c5d8305d" "en-GB")
-   ("1y0rbbmax1w6jy4jacy27xgy4aqnd43izysw8qjwm0qhhfjvf3xh" "40994fca693d" "eo")
-   ("0kmjvinqpb3y81mqda1qq8k202aa36as9z1z775745bx6sbvkggz" "6cf3c836995d" "es-AR")
-   ("06rvd1z3l0r7hwnsnw90i0f5j2ysbv6wd3cl64g0bgifmwjk75hi" "8727dda3935e" "es-CL")
-   ("0gzw1rn9nzpgcrrc10indnbqqpax87azczrfxv8mn5n56j734hc0" "5351aba49895" "es-ES")
-   ("0bnmgisxfkb6rb12avhipbsj1yr0dyv56qjj9471gnc2ppq7k3c9" "dd834a4af402" "es-MX")
-   ("1951975h9w813qxanbk3frjz7c8knzx5rvq9i82j9i6x6a3fh6fi" "1f2150796079" "et")
-   ("1vkb5rd0k6vh9dbll3fhyzg8rfpkxxkd2rxwf66b8l3hg4fqd7f2" "2911663f4a7c" "eu")
-   ("1cj9zblfp94h86m7zd762bfmcfz0yxc1q4ra35s4wnnlqajarzwj" "04ec3c3bbe92" "fa")
-   ("1ininsyzaj7xd8ppmklm3zglgw1i0nhdy43iiyva32hb592zxy4m" "0cf866f9bc4e" "ff")
-   ("1hc308d71iygarrpliv7pxjz49gxwqg10d0pv8j4sbb2pw39bprl" "04a600fc54a4" "fi")
-   ("02nl54db9130rg59wmrrnh0z726fg5ir1njfcnhxagb4g5b7s69f" "64a3576df276" "fr")
-   ("1qbby23qlkxjz3vwlk8pd2w1w4cxdff8cq7j0ipk44mijkxkry0c" "c84177dfa254" "fy-NL")
-   ("1x23pg36ld5qnrmdn149rkl85ia8lmiqbzcac2bm0iqprnjdszii" "31590cffac56" "ga-IE")
-   ("005fpyr1lvw23dja3yrzx4y8wdih7vx6ljjpisf4pd3k5zai4x81" "ba4f274ac4a1" "gd")
-   ("0kdlb5q74n0fl5fxfy873s392kry69dmdl8b4gvqdyh5sy66vsqm" "56b41bdcd401" "gl")
-   ("0v8r8b0nrk1l4xipzhq16klmh0pinzcrma0s0gyhgzqqli6z7aym" "59e2afb65c08" "gn")
-   ("1grb1lq1f9p5jxgh9v78jl1wswxmsqxkcssm35l30k6y24pglr0m" "33b4409fb615" "gu-IN")
-   ("172fg55y8l90ix4c8s5x7f8mg6rc7779p6l852cnnkfqjgqa5a5f" "92f9f8238189" "he")
-   ("0i52nmg0yv3y1y3rkinxcyh51mgjksk7c3jlc8014801m3zvyxj7" "00090f7a2a3f" "hi-IN")
-   ("074q8n00yq54kzk632dwbs64r0sygvybbvwpd6hbvfpn38lz8hxf" "6e4a3fdc01f3" "hr")
-   ("1jxiz8zyxbpnwgk5xkwfxlr5f1zfyc88jcsajy8wcaifdkld3cwn" "7fd9bc25e49d" "hsb")
-   ("0ca11pmkzyd9ccrnrbmk0jrpcb03k88v4zivxblnxj4w03g0hyhq" "ce3b378ce950" "hu")
-   ("1yszljbh8f7w6lckfw22jwximy3yhis4430lfynfb8lh9nm0fw59" "c91a4a3e8821" "hy-AM")
-   ("0hhl8b8szqlhjdxhsa81zmgr303kr0jx5d6rzbi840qwf01h12sz" "4f235acc839e" "ia")
-   ("063yfk3nz3kignbri7r9sr3jwr5p9yyqc6sckgqs94hx6lvc355p" "fface86a34e4" "id")
-   ("1qszxkgliall4haaq6v0xayxikq43ddcdsn1d4m1mwyp7gdpbry5" "5978ae767b44" "is")
-   ("1fsfz9iz5pdd5r9ckdal6grvddchsc4r3r8gn4w6f2bja6vpbs05" "0c7d2a0e1304" "it")
-   ("1phkw0apiicgbw2nq3g392xncw1v2c4yac595h3nchs4q6rp9pd9" "1c923f3e88b9" "ja")
-   ("1y4gc4l6g72nphhsw4aqhcl80a7wi9qdy61h66c6jc6h14i7278d" "66f700940cfa" "ja-JP-mac")
-   ("0iqwj0y19zqcdclnn92z490s1g9vh2qr9gmkyfnpsz69llxidx1j" "49b4a7c6bb2c" "ka")
-   ("111nm2khff0zxnqqfc68rbi3j0b1nx5r4xai7b8yymyv1i0qbsxd" "4854facbd60b" "kab")
-   ("12p7lg2p6pcqdlb4bqbz5isxilw2r9vb8344sh8zrvv9cb9jq04f" "d2fda8a1b287" "kk")
-   ("142vpw9npqgc8b5zcg5cy2lh07s4mg8xfbaymg44fb4j3s6agw88" "3a5a1cae9b93" "km")
-   ("00v1sd2byj2ksxw1020z142cdlxa7ri2v1rzjrhay9l465bj3k8x" "6ed122b33cac" "kn")
-   ("1s07yhwzpxj0l5vj5lzbvgw115sjx1g2zgbqca5wln95dds39npl" "49bc07645a47" "ko")
-   ("1b4brfww0w7x1h3ff19i6xi8xq2cb1hxysilira6yq4rb6vhlmly" "93f04df12616" "lij")
-   ("1i30my0bbgm9z02rxxi7x4vc69bs3bnjs9l2q6jd8xvs1ga3vc7n" "e1f4e0d87509" "lt")
-   ("1bjh4xlx6562hxq527cqcn4b5295dsdpwn4c4y5ci902nlh6fc8l" "daea4ba4e7f4" "lv")
-   ("0vig42slcx6bhpisyc1bnyklr95lbv7vqd1ckiywp5c5qzfa9afi" "0c4ca0f4fc17" "mk")
-   ("10qfnkqi2snmgvm4vcrmp2489klchv3hn2c4rmkdhi5bilfk42jx" "9be8d5951976" "mr")
-   ("1bkn8ds3fyz710ck4gg4g5vpv23bi573ssm9xbiyl8y59pvbig9b" "0f44d0bcfda2" "ms")
-   ("1j9af3axbijn0s8y96310mvgaq5a36m0r3ij550jv5bv52862crj" "ccbf0c4355d6" "my")
-   ("0lspnp9jn3rrgz3djnmc0qrb6ymigvqnr3fb0jbhmf83r4yfs8z1" "a6cf2c6e3594" "nb-NO")
-   ("1xp2884m9gqm9gaakc747bd9j55wssrh3qsf4y4k02ijh08sfmwb" "c1636a1a7507" "ne-NP")
-   ("0y1fxp9pxia6x2wxdharh2ynvzdqcmzpya1gdb89pcv5qyrzqgcl" "60ed1c2397a6" "nl")
-   ("1nbp924p7fp2c76ym71wp34vk96z89i4g2rfgpsi54cgv42a6vgq" "a7f9a3d35875" "nn-NO")
-   ("1yrmhyvb6skypcyvi6j3py51sdkq9vn35zkryx6rdp8ygqwm1va7" "9ac29828960e" "oc")
-   ("0rn2414ji1icar627arf5rjwl9r9vxhznbfsyxgrmrf0p6dp72fv" "87720cc32205" "pa-IN")
-   ("09lam6yaprc8zyisq0pcdj4afpg930c2x3x47gdxnqfyhmcfygs7" "56b2c592ffba" "pl")
-   ("0mbc1a8wvjs3k928qh0k800d230251i0rw0myhdpc6mk3xjna7i5" "89f1b173c9b1" "pt-BR")
-   ("1v1qa5slllz78222rlqr4b8k7c8dapmx8d7s5nb90wdffic0zcqy" "27adc5dad781" "pt-PT")
-   ("04k6h5d7c740lz1hx1vavj6p0fmhgn9mm3nwvk4p9iccy5nw5pmf" "83e2e4833fc3" "rm")
-   ("0f0hz792wr17mgi6n190dliqx67479aqg3y2ak0jg0fiz2c8qr7p" "69cdc288966f" "ro")
-   ("17yngj0v30687m7fa1ls0g86vjg8jzxs7bnsca91jpxf3ij44xp6" "03046775600f" "ru")
-   ("1fvz23nphs9i4gdkx9fcy5ahdk2f879281pchclwi0qlciq7digr" "61ea93a50fff" "sco")
-   ("0yc1iwqbnpnf1i7yz3zqrx6g8pinc7l53pvbczywfkq3rz6wmmf5" "2b134d24c046" "si")
-   ("0kizljksn2vn4yw7qlv7c8h2m75f7n9ddg6n6ag3hwxxip83hn4y" "6d69c24dc8db" "sk")
-   ("1ll936b18wy464623jc5smf3c6dpimh0qwn28a991h7zcw31n3kp" "29e195d1d160" "sl")
-   ("14w9n994z9gf0wx7vrqisyxkngvhmmnayx8r0vwiq8k7jy81sxlm" "60a3b235fe1d" "son")
-   ("0z7bcfvq6x6dxf4d4bbjsg36r5npkr89087b0j360ljampk6c2fn" "8588cbc89847" "sq")
-   ("1fcq9g89lhzckzr2qb6x0w0z6q486n9jdqfi6h70dx8b069b3jfj" "198f7e89f10d" "sr")
-   ("0ap3m1sbibnaj9s2l139m7l8cc8s2ky4jlxwgzbxdzvqxfz7n954" "b098e2ebc049" "sv-SE")
-   ("0k93gnwfs5mahb9vz1c65ddcbkav0cwhxnrww3qk7gcmn7q88gqk" "25951b964d5b" "szl")
-   ("0b0v5pcwvhvhg8vlzy26g3j0m1r8svrpq07hq0q7lxldwlb48phz" "94659c83c9d8" "ta")
-   ("1v35cl6m3ikzsriq6zkjzjs3p9bhl8zmbp2gl14mga1f1zy4kcah" "eb59646a5d36" "te")
-   ("0y3r30mjgxngjraqmf5cm00kgqx2pvhbvy8sfxb3fhypv9vda3yr" "10d257301a2d" "th")
-   ("1inyqk495py20jwjvs4yl0n5ncf3hhb896bs1lwfsgpvbvr5hbq1" "9be6adca0e51" "tl")
-   ("0vsirjs655cia9n8dys2r84bvg303hcxkk2w6a9j3dkbifq5ymk6" "51354c936bf6" "tr")
-   ("050x882c0ywil290k4g861njw70ffw2y55dqk3w0kffi972mm909" "d7510f2d01dc" "trs")
-   ("001ykwxkwibavbi1k42b1hmysb3gmrwcs68zmw96m1vc80p29nz1" "4d1fa878042b" "uk")
-   ("0lsz6jlmmsqdg47pdx8b1djjvcavi0wlyr0mkpyhjgpginag21zx" "ad3035f28183" "ur")
-   ("0d3ggm3q76pkpg4n3lz2ji4pbb47n885byqxbp7sk6n9vlgzir7l" "8ea7a5a051db" "uz")
-   ("0v7d8y6xsr6yf2s1sjxnsjmw0hdnj91f0w2da6spkifb52lmbv6v" "67fe2acb306f" "vi")
-   ("0j8l09vzqlw4zlkyp6wkh44c5gr1xgbcmnawks1zj7xz02ambwii" "abc22dfb6d84" "xh")
-   ("1c01pbyswixkjg42714fvfy33b09mpdbf4d8f8kcs88c86jpf07z" "d6d6f9bb6113" "zh-CN")
-   ("0yq8fqdz862pnlbvfsqfc152rhpsqgncvp8bqkd653mdfv4qkwr4" "0cbdc5f1a048" "zh-TW")))
-
-(define %icecat-91-version "91.13.0-guix0-preview1")
-
-(define icecat-91-source
-  (let* ((base-version (first (string-split %icecat-91-version #\-)))
-
-         (major-version (first  (string-split base-version #\.)))
-         (minor-version (second (string-split base-version #\.)))
-         (sub-version   (third  (string-split base-version #\.)))
-
-         (upstream-firefox-version (string-append base-version "esr"))
-         (upstream-firefox-source
-          (origin
-            (method url-fetch)
-            (uri (string-append
-                  "https://ftp.mozilla.org/pub/firefox/releases/"
-                  upstream-firefox-version "/source/"
-                  "firefox-" upstream-firefox-version ".source.tar.xz"))
-            (sha256
-             (base32
-              "0qh7j960wdp5zcfqhkj8ki47spp9i9ms12xx0v0kxvmmw36jpgjk"))))
-
-         (upstream-icecat-base-version "91.13.0") ; maybe older than base-version
-         ;;(gnuzilla-commit (string-append "v" upstream-icecat-base-version))
-         (gnuzilla-commit "4a87716686104266a9cccc2d83cc249e312f3673")
-         (gnuzilla-source
-          (origin
-            (method git-fetch)
-            (uri (git-reference
-                  (url "git://git.savannah.gnu.org/gnuzilla.git")
-                  (commit gnuzilla-commit)))
-            (file-name (git-file-name "gnuzilla"
-                                      ;;upstream-icecat-base-version
-                                      (string-take gnuzilla-commit 8)))
-            (sha256
-             (base32
-              "070j78al04xzchfl5xj1w300hmw17a3iqcw7mnlxf6b8rqlgj20p"))))
-
-         ;; 'search-patch' returns either a valid file name or #f, so wrap it
-         ;; in 'assume-valid-file-name' to avoid 'local-file' warnings.
-         (gnuzilla-fixes-patch
-          (local-file (assume-valid-file-name
-                       (search-patch "icecat-use-older-reveal-hidden-html.patch"))))
-         (makeicecat-patch
-          (local-file (assume-valid-file-name
-                       (search-patch "icecat-makeicecat.patch")))))
-
-    (origin
-      (method computed-origin-method)
-      (file-name (string-append "icecat-" %icecat-91-version ".tar.xz"))
-      (sha256 #f)
-      (uri
-       (delay
-        (with-imported-modules '((guix build utils))
-          #~(begin
-              (use-modules (guix build utils))
-              (let ((firefox-dir
-                     (string-append "firefox-" #$base-version))
-                    (icecat-dir
-                     (string-append "icecat-" #$%icecat-91-version)))
-
-                (set-path-environment-variable
-                 "PATH" '("bin")
-                 (list #+rename
-                       #+python
-                       #+(canonical-package bash)
-                       #+(canonical-package coreutils)
-                       #+(canonical-package findutils)
-                       #+(canonical-package patch)
-                       #+(canonical-package xz)
-                       #+(canonical-package sed)
-                       #+(canonical-package grep)
-                       #+(canonical-package bzip2)
-                       #+(canonical-package gzip)
-                       #+(canonical-package tar)))
-
-                (set-path-environment-variable
-                 "PYTHONPATH"
-                 (list #+(format #f "lib/python~a/site-packages"
-                                 (version-major+minor
-                                  (package-version python))))
-                 '#+(cons python-jsonschema
-                          (map second
-                               (package-transitive-propagated-inputs
-                                python-jsonschema))))
-
-                ;; Needed by the 'makeicecat' script.
-                (setenv "RENAME_CMD" "rename")
-
-                ;; We copy the gnuzilla source directory because it is
-                ;; read-only in 'gnuzilla-source', and the makeicecat script
-                ;; uses "cp -a" to copy parts of it and assumes that the
-                ;; copies will be writable.
-                (copy-recursively #+gnuzilla-source "/tmp/gnuzilla"
-                                  #:log (%make-void-port "w"))
-
-                (with-directory-excursion "/tmp/gnuzilla"
-                  (make-file-writable "makeicecat")
-                  (invoke "patch" "--force" "--no-backup-if-mismatch"
-                          "-p1" "--input" #+gnuzilla-fixes-patch)
-                  (invoke "patch" "--force" "--no-backup-if-mismatch"
-                          "-p1" "--input" #+makeicecat-patch)
-                  (patch-shebang "makeicecat")
-                  (substitute* "makeicecat"
-                    (("^readonly FFMAJOR=(.*)" all ffmajor)
-                     (unless (string=? #$major-version
-                                       (string-trim-both ffmajor))
-                       ;; The makeicecat script cannot be expected to work
-                       ;; properly on a different version of Firefox, even if
-                       ;; no errors occur during execution.
-                       (error "makeicecat major version mismatch"))
-                     (string-append "readonly FFMAJOR=" #$major-version "\n"))
-                    (("^readonly FFMINOR=.*")
-                     (string-append "readonly FFMINOR=" #$minor-version "\n"))
-                    (("^readonly FFSUB=.*")
-                     (string-append "readonly FFSUB=" #$sub-version "\n"))
-                    (("^readonly DATADIR=.*")
-                     "readonly DATADIR=/tmp/gnuzilla/data\n")
-                    (("^readonly SOURCEDIR=.*")
-                     (string-append "readonly SOURCEDIR=" icecat-dir "\n"))
-                    (("/bin/sed")
-                     #+(file-append (canonical-package sed) "/bin/sed"))))
-
-                (format #t "Unpacking upstream firefox tarball...~%")
-                (force-output)
-                (invoke "tar" "xf" #+upstream-firefox-source)
-                (rename-file firefox-dir icecat-dir)
-
-                (with-directory-excursion icecat-dir
-                  (format #t "Populating l10n directory...~%")
-                  (force-output)
-                  (mkdir "l10n")
-                  (with-directory-excursion "l10n"
-                    (for-each
-                     (lambda (locale-dir)
-                       (let ((locale
-                              (string-drop (basename locale-dir)
-                                           (+ 32  ; length of hash
-                                              (string-length "-mozilla-locale-")))))
-                         (format #t "  ~a~%" locale)
-                         (force-output)
-                         (copy-recursively locale-dir locale
-                                           #:log (%make-void-port "w"))
-                         (for-each make-file-writable (find-files locale))
-                         (with-directory-excursion locale
-                           (when (file-exists? ".hgtags")
-                             (delete-file ".hgtags"))
-                           (mkdir-p "browser/chrome/browser/preferences")
-                           (call-with-output-file
-                               "browser/chrome/browser/preferences/advanced-scripts.dtd"
-                             (lambda (port) #f)))))
-                     '#+all-mozilla-91-locales)
-                    (copy-recursively #+mozilla-compare-locales
-                                      "compare-locales"
-                                      #:log (%make-void-port "w"))
-                    (delete-file "compare-locales/.gitignore")
-                    (delete-file "compare-locales/.hgignore")
-                    (delete-file "compare-locales/.hgtags")))
-
-                (format #t "Running makeicecat script...~%")
-                (force-output)
-                (invoke "bash" "/tmp/gnuzilla/makeicecat")
-
-                (format #t "Packing IceCat source tarball...~%")
-                (force-output)
-                (setenv "XZ_DEFAULTS" (string-join (%xz-parallel-args)))
-                (invoke "tar" "cfa" #$output
-                        ;; Avoid non-determinism in the archive.  We set the
-                        ;; mtime of files in the archive to early 1980 because
-                        ;; the build process fails if the mtime of source
-                        ;; files is pre-1980, due to the creation of zip
-                        ;; archives.
-                        "--mtime=@315619200" ; 1980-01-02 UTC
-                        "--owner=root:0"
-                        "--group=root:0"
-                        "--sort=name"
-                        icecat-dir)))))))))
-
 ;; Update this together with icecat!
-(define %icedove-build-id "20220919000000") ;must be of the form YYYYMMDDhhmmss
+(define %icedove-build-id "20220920000000") ;must be of the form YYYYMMDDhhmmss
 (define-public icedove
   (package
     (name "icedove")
-    (version "91.13.1")
-    (source icecat-91-source)
+    (version "102.3.0")
+    (source icecat-source)
     (properties
      `((cpe-name . "thunderbird_esr")))
     (build-system gnu-build-system)
@@ -1581,6 +1301,13 @@ standards of the IceCat project.")
                (for-each generate-all-checksums
                          '("third_party/rust"
                            "toolkit/library/rust")))))
+         (add-after 'patch-cargo-checksums 'remove-cargo-frozen-flag
+            (lambda _
+              ;; Remove --frozen flag from cargo invokation, otherwise it'll
+              ;; complain that it's not able to change Cargo.lock.
+              ;; https://bugzilla.mozilla.org/show_bug.cgi?id=1726373
+              (substitute* "build/RunCbindgen.py"
+                (("\"--frozen\",") ""))))
          ;; Fixes issue where each installation directory generates its own profile.
          ;; See e.g. https://trac.torproject.org/projects/tor/ticket/31457
          (add-after 'patch-source-shebangs 'fix-profile-setting
@@ -1733,7 +1460,7 @@ standards of the IceCat project.")
                      "ac_add_options --with-system-nspr\n"
                      ;"ac_add_options --with-system-nss\n"
                      "ac_add_options --with-system-zlib\n"
-                     "ac_add_options --with-user-appdir=\\.icedove\n"
+                     "ac_add_options --without-wasm-sandboxed-libraries\n"
                      "mk_add_options MOZ_MAKE_FLAGS=-j"
                      (number->string (parallel-job-count)) "\n"))))
                (display (getcwd))
@@ -1783,7 +1510,8 @@ standards of the IceCat project.")
                  `("XDG_DATA_DIRS" prefix (,gtk-share))
                  `("LD_LIBRARY_PATH" prefix (,pulseaudio-lib ,eudev-lib)))))))))
     (inputs
-     (list bzip2
+     (list alsa-lib
+           bzip2
            cairo
            cups
            dbus-glib
@@ -1794,7 +1522,7 @@ standards of the IceCat project.")
            gtk+
            gtk+-2
            hunspell
-           icu4c
+           icu4c-71
            libcanberra
            libevent
            libffi
@@ -1827,17 +1555,17 @@ standards of the IceCat project.")
         ;; in the Thunderbird release tarball.  We don't use the release
         ;; tarball because it duplicates the Icecat sources and only adds the
         ;; "comm" directory, which is provided by this repository.
-        ,(let ((changeset "2f9b465346ceb38b4ab79ccc1bfe8d8ad0bc8743"))
+        ,(let ((changeset "04f60827c1b53ab86121c7d122d3a8216219ff9f"))
            (origin
              (method hg-fetch)
              (uri (hg-reference
-                   (url "https://hg.mozilla.org/releases/comm-esr91")
+                   (url "https://hg.mozilla.org/releases/comm-esr102")
                    (changeset changeset)))
              (file-name (string-append "thunderbird-" version "-checkout"))
              (sha256
               (base32
-               "10vsbwlh5imq7iljwzq3r4y80wzsmj6s2gsi1n64l0wmfq2m6ilb")))))
-       ("cargo" ,rust "cargo")
+               "078jrxpzqj45l84i39a9fq023j71ngca5gs2ngpjsbily51bzx09")))))
+       ("cargo" ,(force rust-1.59-promise) "cargo")
        ("clang" ,clang)
        ("llvm" ,llvm)
        ("m4" ,m4)
@@ -1846,8 +1574,8 @@ standards of the IceCat project.")
        ("perl" ,perl)
        ("pkg-config" ,pkg-config)
        ("python" ,python-wrapper)
-       ("rust" ,rust)
-       ("rust-cbindgen" ,rust-cbindgen-0.19)
+       ("rust" ,(force rust-1.59-promise))
+       ("rust-cbindgen" ,(force rust-cbindgen-0.23-promise))
        ("which" ,which)
        ("yasm" ,yasm)))
     (home-page "https://www.thunderbird.net")
diff --git a/gnu/packages/haskell-apps.scm b/gnu/packages/haskell-apps.scm
index 50380281d7..58a70dfa3a 100644
--- a/gnu/packages/haskell-apps.scm
+++ b/gnu/packages/haskell-apps.scm
@@ -304,14 +304,14 @@ to @code{cabal repl}).")
 (define-public git-annex
   (package
     (name "git-annex")
-    (version "10.20220822")
+    (version "10.20220927")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "https://hackage.haskell.org/package/"
                            "git-annex/git-annex-" version ".tar.gz"))
        (sha256
-        (base32 "1qv3cb7p2zyc5mpcr4nfgzdmswfny5jbimd2ip7ygh71jlahrbfc"))))
+        (base32 "1bqcaddw47g6i3z9g0iym5x7zy1q8fsirzqnjsa63n2bwm6zzplc"))))
     (build-system haskell-build-system)
     (arguments
      `(#:configure-flags
@@ -406,6 +406,7 @@ to @code{cabal repl}).")
            ghc-bloomfilter
            ghc-byteable
            ghc-case-insensitive
+           ghc-clientsession
            ghc-concurrent-output
            ghc-conduit
            ghc-connection
@@ -462,6 +463,14 @@ to @code{cabal repl}).")
            ghc-utf8-string
            ghc-uuid
            ghc-vector
+           ghc-wai
+           ghc-wai-extra
+           ghc-warp
+           ghc-warp-tls
+           ghc-yesod
+           ghc-yesod-core
+           ghc-yesod-form
+           ghc-yesod-static
            git
            rsync))
     (native-inputs
diff --git a/gnu/packages/image-processing.scm b/gnu/packages/image-processing.scm
index a8f40c4454..778f6c8538 100644
--- a/gnu/packages/image-processing.scm
+++ b/gnu/packages/image-processing.scm
@@ -671,7 +671,7 @@ things like:
 (define-public vips
   (package
     (name "vips")
-    (version "8.10.6")
+    (version "8.13.1")
     (source
      (origin
        (method url-fetch)
@@ -679,7 +679,7 @@ things like:
              "https://github.com/libvips/libvips/releases/download/v"
              version "/vips-" version ".tar.gz"))
        (sha256
-        (base32 "0vjsh3i0861f6h9as3bch956cidz824zz499pvhjs3lfjn6hhs14"))))
+        (base32 "00kp3439jcqv9l2gcjg88xzvlq8clv54z1m3x66i3chvarz7ndxd"))))
     (build-system gnu-build-system)
     (native-inputs
      (list gobject-introspection pkg-config))
diff --git a/gnu/packages/javascript.scm b/gnu/packages/javascript.scm
index 666a0aa421..f0580eff8b 100644
--- a/gnu/packages/javascript.scm
+++ b/gnu/packages/javascript.scm
@@ -736,6 +736,29 @@ or for saving sensitive information that shouldn't be sent to an
 external server.")
     (license license:expat)))
 
+(define-public js-scianimator
+  (package
+    (name "js-scianimator")
+    (version "1.4")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/brentertz/scianimator.git")
+                    (commit version)))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "0b4r6z85gnsjagdchvf1pvrhylfiaidh701hna8jrm0l4kbb735x"))))
+    (build-system minify-build-system)
+    (arguments
+     '(#:javascript-files
+       (list "assets/js/jquery.scianimator.js")))
+    (home-page "https://github.com/brentertz/scianimator")
+    (synopsis "Scientific image animator plugin for jQuery")
+    (description "SciAnimator provides a simple yet powerful interface for
+animating a series of images.")
+    (license license:expat)))
+
 (define-public mujs
   (package
     (name "mujs")
diff --git a/gnu/packages/kde-frameworks.scm b/gnu/packages/kde-frameworks.scm
index bec8ff1c51..87c9884284 100644
--- a/gnu/packages/kde-frameworks.scm
+++ b/gnu/packages/kde-frameworks.scm
@@ -92,7 +92,7 @@
 (define-public extra-cmake-modules
   (package
     (name "extra-cmake-modules")
-    (version "5.96.0")
+    (version "5.98.0")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -101,7 +101,7 @@
                     name "-" version ".tar.xz"))
               (sha256
                (base32
-                "1ngxjvf584zgfb93s5sbr5f5nyw0sqc5i0jlbcgbrjg2n83l9ddx"))))
+                "0669m98vqy4hpacfjs7xpgjj1bns24kjybrjipxzp82092g8y69w"))))
     (build-system cmake-build-system)
     (native-inputs
      ;; Add test dependency, except on armhf where building it is too
@@ -569,7 +569,7 @@ propagate their changes to their respective configuration files.")
 (define-public kcoreaddons
   (package
     (name "kcoreaddons")
-    (version "5.96.0")
+    (version "5.98.0")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -578,7 +578,7 @@ propagate their changes to their respective configuration files.")
                     name "-" version ".tar.xz"))
               (sha256
                (base32
-                "1n5mzj02si8allg907l6vn77c2i95qdgfvn48gsqgalwlyd4q6nj"))))
+                "0lqmyxqsw7w1qgdgmax63v64cy7dwk7n4zi8k53xmrqjmd9jir52"))))
     (build-system cmake-build-system)
     (native-inputs
      (list extra-cmake-modules qttools-5 shared-mime-info))
@@ -588,13 +588,20 @@ propagate their changes to their respective configuration files.")
     (arguments
      `(#:phases
        (modify-phases %standard-phases
-         (replace 'check
-           (lambda* (#:key tests? #:allow-other-keys)
+         (add-before 'check 'blacklist-failing-test
+           (lambda _
+             ;; Blacklist failing tests.
+             (with-output-to-file "autotests/BLACKLIST"
+               (lambda _
+                 ;; FIXME: Make it pass.  Test failure caused by stout/stderr
+                 ;; being interleaved.
+                 (display "[test_channels]\n*\n")
+                 ;; FIXME
+                 (display "[test_inheritance]\n*\n")))))
+         (add-before 'check 'check-setup
+           (lambda _
              (setenv "HOME" (getcwd))
-             (setenv "TMPDIR" (getcwd))
-             (when tests? ;; kdirwatch test fails inconsistently. kprocesstest fails.
-               (invoke "ctest" "-E" "(kdirwatch_qfswatch_unittest|kprocesstest|\
-kdirwatch_stat_unittest)")))))))
+             (setenv "TMPDIR" (getcwd)))))))
     (home-page "https://community.kde.org/Frameworks")
     (synopsis "Qt addon library with a collection of non-GUI utilities")
     (description "KCoreAddons provides classes built on top of QtCore to
diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm
index e7d670d63e..2433677a5a 100644
--- a/gnu/packages/linux.scm
+++ b/gnu/packages/linux.scm
@@ -35,7 +35,7 @@
 ;;; Copyright © 2019 Tim Gesthuizen <tim.gesthuizen@yahoo.de>
 ;;; Copyright © 2019, 2020, 2021 Maxim Cournoyer <maxim.cournoyer@gmail.com>
 ;;; Copyright © 2019 Stefan Stefanović <stefanx2ovic@gmail.com>
-;;; Copyright © 2019, 2020, 2021 Brice Waegeneire <brice@waegenei.re>
+;;; Copyright © 2019-2022 Brice Waegeneire <brice@waegenei.re>
 ;;; Copyright © 2019 Kei Kebreau <kkebreau@posteo.net>
 ;;; Copyright © 2020, 2021 Oleg Pykhalov <go.wigust@gmail.com>
 ;;; Copyright © 2020 Pierre Neidhardt <mail@ambrevar.xyz>
@@ -6944,6 +6944,46 @@ monitoring tools for Linux.  These include @code{mpstat}, @code{iostat},
 @code{sadf} and @code{sa}.")
     (license license:gpl2+)))
 
+(define-public acpilight
+  (package
+    (name "acpilight")
+    (version "1.2")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://gitlab.com/wavexx/acpilight.git")
+                    (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "1r0r3nx6x6vkpal6vci0zaa1n9dfacypldf6k8fxg7919vzxdn1w"))))
+    (build-system gnu-build-system)
+    (arguments
+     (list #:tests? #f                  ; no tests
+           #:make-flags
+           #~(list (string-append "prefix=" #$output)
+                   (string-append "sysconfdir=" #$output "/etc"))
+           #:phases
+           #~(modify-phases %standard-phases
+               (delete 'configure)
+               (add-after 'unpack 'patch
+                 (lambda* (#:key inputs #:allow-other-keys)
+                   ;; Prevent reloading udev at build time
+                   (substitute* "Makefile"
+                     (("udevadm") "true"))
+                   (substitute* "90-backlight.rules"
+                     (("/bin")
+                      (string-append #$(this-package-input "coreutils")
+                                     "/bin"))))))))
+    (inputs (list coreutils python))
+    (home-page "https://gitlab.com/wavexx/acpilight")
+    (synopsis "Backward-compatibile xbacklight replacement")
+    (description "acpilight is a backward-compatibile replacement for
+xbacklight that uses the ACPI interface to set the display brightness.  On
+modern laptops acpilight can control both display and keyboard backlight
+uniformly on either X11, the console or Wayland.")
+    (license license:gpl3+)))
+
 (define-public light
   (package
     (name "light")
diff --git a/gnu/packages/music.scm b/gnu/packages/music.scm
index 66b4beae0c..bbb58c0241 100644
--- a/gnu/packages/music.scm
+++ b/gnu/packages/music.scm
@@ -6282,7 +6282,7 @@ as JACK standalone applications.")
 (define-public zplugins
   (package
     (name "zplugins")
-    (version "0.1.7")
+    (version "0.2.4")
     (source
      (origin
        (method git-fetch)
@@ -6293,7 +6293,7 @@ as JACK standalone applications.")
        (file-name (git-file-name name version))
        (sha256
         (base32
-         "1rkm2xajmyik6289b20rp5a5br9f3sh1xk8nb1bs6qpmcrfirgbs"))))
+         "0l6cm6y8j1417mwspraldzixpnps8scx81wd36n2xpx60v4iqss0"))))
     (build-system meson-build-system)
     (inputs
       (list guile-2.2 libsndfile lv2 ztoolkit-rsvg))
diff --git a/gnu/packages/parallel.scm b/gnu/packages/parallel.scm
index 9503b1df83..5a5d0f7399 100644
--- a/gnu/packages/parallel.scm
+++ b/gnu/packages/parallel.scm
@@ -63,14 +63,14 @@
 (define-public parallel
   (package
     (name "parallel")
-    (version "20220822")
+    (version "20220922")
     (source
      (origin
       (method url-fetch)
       (uri (string-append "mirror://gnu/parallel/parallel-"
                           version ".tar.bz2"))
       (sha256
-       (base32 "05mh3bbl7c9c945jqhlfspjqji79zq8ml27k6ihaqi8bqibl83cx"))
+       (base32 "1hfar4hvzcic5gv7nl7jr6hafhgiax005zydwxcwxvy1vm4s3cqm"))
       (snippet
        '(begin
           (use-modules (guix build utils))
diff --git a/gnu/packages/patches/crc32c-unbundle-googletest.patch b/gnu/packages/patches/crc32c-unbundle-googletest.patch
new file mode 100644
index 0000000000..da513c5d4e
--- /dev/null
+++ b/gnu/packages/patches/crc32c-unbundle-googletest.patch
@@ -0,0 +1,21 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 8490728..c7f0952 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -315,15 +315,7 @@ if(CRC32C_BUILD_TESTS)
+   set(install_gmock OFF)
+
+   # This project is tested using GoogleTest.
+-  add_subdirectory("third_party/googletest")
+-
+-  # GoogleTest triggers a missing field initializers warning.
+-  if(CRC32C_HAVE_NO_MISSING_FIELD_INITIALIZERS)
+-    set_property(TARGET gtest
+-        APPEND PROPERTY COMPILE_OPTIONS -Wno-missing-field-initializers)
+-    set_property(TARGET gmock
+-        APPEND PROPERTY COMPILE_OPTIONS -Wno-missing-field-initializers)
+-  endif(CRC32C_HAVE_NO_MISSING_FIELD_INITIALIZERS)
++  find_package(GTest REQUIRED)
+
+   add_executable(crc32c_tests "")
+   target_sources(crc32c_tests
diff --git a/gnu/packages/patches/telegram-desktop-allow-disable-libtgvoip.patch b/gnu/packages/patches/telegram-desktop-allow-disable-libtgvoip.patch
new file mode 100644
index 0000000000..3c062cbd9a
--- /dev/null
+++ b/gnu/packages/patches/telegram-desktop-allow-disable-libtgvoip.patch
@@ -0,0 +1,125 @@
+From 4d1a8351ee82728912fcf7ad0070049b2910c393 Mon Sep 17 00:00:00 2001
+From: Klemens Nanni <klemens@posteo.de>
+Date: Wed, 2 Mar 2022 01:07:48 +0100
+Subject: [PATCH] Introduce TDESKTOP_DISABLE_LEGACY_TGVOIP
+
+Originally from Alt Linux[0], OpenBSD has so far adapted the removal of
+tgvoip in the official net/tdesktop build.
+
+tgcalls provides everything needed for calls;  audio/video/desktop
+sharing calls have been working fine across different operating systems
+and telegram desktop/mobile versions without problems.
+
+0: http://www.sisyphus.ru/cgi-bin/srpm.pl/Sisyphus/telegram-desktop/getpatch/1
+---
+ Telegram/CMakeLists.txt                   | 6 +++---
+ Telegram/SourceFiles/calls/calls_call.cpp | 6 ++++++
+ Telegram/cmake/lib_tgcalls.cmake          | 4 ++++
+ Telegram/cmake/telegram_options.cmake     | 8 ++++++++
+ 4 files changed, 21 insertions(+), 3 deletions(-)
+
+diff --git a/Telegram/CMakeLists.txt b/Telegram/CMakeLists.txt
+index fb2bf370f..5d9578f2d 100644
+--- a/Telegram/CMakeLists.txt
++++ b/Telegram/CMakeLists.txt
+@@ -28,7 +28,9 @@ get_filename_component(res_loc Resources REALPATH)
+ include(cmake/telegram_options.cmake)
+ include(cmake/lib_ffmpeg.cmake)
+ include(cmake/lib_stripe.cmake)
+-include(cmake/lib_tgvoip.cmake)
++if (NOT TDESKTOP_DISABLE_LEGACY_TGVOIP)
++    include(cmake/lib_tgvoip.cmake)
++endif()
+ include(cmake/lib_tgcalls.cmake)
+ include(cmake/td_export.cmake)
+ include(cmake/td_mtproto.cmake)
+@@ -52,9 +54,7 @@ target_prepare_qrc(Telegram)
+ 
+ target_link_libraries(Telegram
+ PRIVATE
+-    tdesktop::lib_tgcalls_legacy
+     tdesktop::lib_tgcalls
+-    tdesktop::lib_tgvoip
+ 
+     # Order in this list defines the order of include paths in command line.
+     # We need to place desktop-app::external_minizip this early to have its
+diff --git a/Telegram/SourceFiles/calls/calls_call.cpp b/Telegram/SourceFiles/calls/calls_call.cpp
+index 6894d5d90..cd03620e7 100644
+--- a/Telegram/SourceFiles/calls/calls_call.cpp
++++ b/Telegram/SourceFiles/calls/calls_call.cpp
+@@ -39,8 +39,10 @@ class InstanceImpl;
+ class InstanceV2Impl;
+ class InstanceV2ReferenceImpl;
+ class InstanceV2_4_0_0Impl;
++#ifndef TDESKTOP_DISABLE_LEGACY_TGVOIP
+ class InstanceImplLegacy;
+ void SetLegacyGlobalServerConfig(const std::string &serverConfig);
++#endif
+ } // namespace tgcalls
+ 
+ namespace Calls {
+@@ -56,7 +58,9 @@ const auto Register = tgcalls::Register<tgcalls::InstanceImpl>();
+ const auto RegisterV2 = tgcalls::Register<tgcalls::InstanceV2Impl>();
+ const auto RegV2Ref = tgcalls::Register<tgcalls::InstanceV2ReferenceImpl>();
+ const auto RegisterV240 = tgcalls::Register<tgcalls::InstanceV2_4_0_0Impl>();
++#ifndef TDESKTOP_DISABLE_LEGACY_TGVOIP
+ const auto RegisterLegacy = tgcalls::Register<tgcalls::InstanceImplLegacy>();
++#endif
+ 
+ [[nodiscard]] base::flat_set<int64> CollectEndpointIds(
+ 		const QVector<MTPPhoneConnection> &list) {
+@@ -1322,7 +1326,9 @@ Call::~Call() {
+ }
+ 
+ void UpdateConfig(const std::string &data) {
++#ifndef TDESKTOP_DISABLE_LEGACY_TGVOIP
+ 	tgcalls::SetLegacyGlobalServerConfig(data);
++#endif
+ }
+ 
+ } // namespace Calls
+diff --git a/Telegram/cmake/lib_tgcalls.cmake b/Telegram/cmake/lib_tgcalls.cmake
+index 34a5ba418..8a784be2c 100644
+--- a/Telegram/cmake/lib_tgcalls.cmake
++++ b/Telegram/cmake/lib_tgcalls.cmake
+@@ -267,6 +267,10 @@ PRIVATE
+     ${tgcalls_loc}
+ )
+ 
++if (TDESKTOP_DISABLE_LEGACY_TGVOIP)
++    return()
++endif()
++
+ add_library(lib_tgcalls_legacy STATIC)
+ init_target(lib_tgcalls_legacy)
+ 
+diff --git a/Telegram/cmake/telegram_options.cmake b/Telegram/cmake/telegram_options.cmake
+index 1c3c25431..033f2bc95 100644
+--- a/Telegram/cmake/telegram_options.cmake
++++ b/Telegram/cmake/telegram_options.cmake
+@@ -4,7 +4,9 @@
+ # For license and copyright information please follow this link:
+ # https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
+ 
++option(TDESKTOP_DISABLE_LEGACY_TGVOIP "Disable legacy tgvoip support." OFF)
+ option(TDESKTOP_API_TEST "Use test API credentials." OFF)
++
+ set(TDESKTOP_API_ID "0" CACHE STRING "Provide 'api_id' for the Telegram API access.")
+ set(TDESKTOP_API_HASH "" CACHE STRING "Provide 'api_hash' for the Telegram API access.")
+ 
+@@ -40,6 +42,12 @@ if (TDESKTOP_API_ID STREQUAL "0" OR TDESKTOP_API_HASH STREQUAL "")
+     " ")
+ endif()
+ 
++if (TDESKTOP_DISABLE_LEGACY_TGVOIP)
++    target_compile_definitions(Telegram PRIVATE TDESKTOP_DISABLE_LEGACY_TGVOIP)
++else()
++    target_link_libraries(Telegram PRIVATE tdesktop::lib_tgcalls_legacy tdesktop::lib_tgvoip)
++endif()
++
+ if (DESKTOP_APP_DISABLE_SPELLCHECK)
+     target_compile_definitions(Telegram PRIVATE TDESKTOP_DISABLE_SPELLCHECK)
+ else()
+-- 
+2.37.3
+
diff --git a/gnu/packages/patches/webrtc-for-telegram-desktop-fix-gcc12-cstdint.patch b/gnu/packages/patches/webrtc-for-telegram-desktop-fix-gcc12-cstdint.patch
new file mode 100644
index 0000000000..f1fd29d0d3
--- /dev/null
+++ b/gnu/packages/patches/webrtc-for-telegram-desktop-fix-gcc12-cstdint.patch
@@ -0,0 +1,21 @@
+From 86d2bcd7afb8706663d29e30f65863de5a626142 Mon Sep 17 00:00:00 2001
+From: Xiretza <xiretza@xiretza.xyz>
+Date: Sun, 15 May 2022 12:47:41 +0200
+Subject: [PATCH] fix(h265_pps_parser): fix missing cstdint include
+
+---
+ src/common_video/h265/h265_pps_parser.h | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/src/common_video/h265/h265_pps_parser.h b/src/common_video/h265/h265_pps_parser.h
+index 28c95ea9..c180b1b9 100644
+--- a/src/common_video/h265/h265_pps_parser.h
++++ b/src/common_video/h265/h265_pps_parser.h
+@@ -12,6 +12,7 @@
+ #define COMMON_VIDEO_H265_PPS_PARSER_H_
+
+ #include "absl/types/optional.h"
++#include <cstdint>
+
+ namespace rtc {
+ class BitBuffer;
diff --git a/gnu/packages/python-science.scm b/gnu/packages/python-science.scm
index 8ebf3d27b1..8e38e69d97 100644
--- a/gnu/packages/python-science.scm
+++ b/gnu/packages/python-science.scm
@@ -1290,6 +1290,26 @@ powerful visualization backend to facilitate rapid prototyping, analysis, and
 visual integration of spatially referenced datasets.")
     (license license:expat)))
 
+(define-public python-simplespectral
+  (package
+    (name "python-simplespectral")
+    (version "1.0.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "SimpleSpectral" version))
+       (sha256
+        (base32 "0qh3xwdv9cwcqdamvglrhm586p4yaq1hd291py1fvykhk2a2d4w6"))))
+    (build-system python-build-system)
+    (propagated-inputs
+     (list python-numpy python-scipy))
+    (home-page "https://github.com/xmikos/simplespectral")
+    (synopsis "FFT module for Python")
+    (description
+     "This package provides a simplified @code{scipy.signal.spectral} module
+to do spectral analysis in Python.")
+    (license license:expat)))
+
 (define-public python-traittypes
   (package
     (name "python-traittypes")
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index 580a03ec0d..74c4104d7a 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -7415,13 +7415,13 @@ data, and scientific formats.")
 (define-public python-pyvips
   (package
     (name "python-pyvips")
-    (version "2.2.0")
+    (version "2.2.1")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "pyvips" version))
        (sha256
-        (base32 "0lq71iiic4pc8qhxr60gi141w25pjnn4vsh05d5l0fjkgjsv137b"))))
+        (base32 "1dfbwwvnnsk4g2kj1pw654z9jq3mb72l1m8ma29858jpn12vn7dm"))))
     (build-system python-build-system)
     (arguments
      (list #:phases
diff --git a/gnu/packages/qt.scm b/gnu/packages/qt.scm
index 541e1e6c06..64db8ea67c 100644
--- a/gnu/packages/qt.scm
+++ b/gnu/packages/qt.scm
@@ -3234,6 +3234,25 @@ top of the PyQt bindings for Qt.  PyQt-builder is used to build PyQt itself.")
 (PyQt5, PyQt4 and PySide) and additional custom QWidgets.")
     (license license:expat)))
 
+(define-public python-qt.py
+  (package
+    (name "python-qt.py")
+    (version "1.3.7")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "Qt.py" version))
+       (sha256
+        (base32 "07rvfwzjl378j75j2va0c6xylwx16icxa6dycsjgjc329pgpng40"))))
+    (build-system python-build-system)
+    (native-inputs (list python-pyqt))
+    (home-page "https://github.com/mottosso/Qt.py")
+    (synopsis "Abstraction layer for Python Qt bindings")
+    (description
+     "This package provides an abstraction layer on top of the various Qt
+bindings (PySide, PySide2, PyQt4 and PyQt5).")
+    (license license:expat)))
+
 (define-public qscintilla
   (package
     (name "qscintilla")
diff --git a/gnu/packages/radio.scm b/gnu/packages/radio.scm
index 132cc95f12..2968f9d390 100644
--- a/gnu/packages/radio.scm
+++ b/gnu/packages/radio.scm
@@ -468,6 +468,86 @@ controls for certain tuners which may be paired with an audio device.")
      "This package provides RTL-SDR devices support to the SoapySDR library.")
     (license license:expat)))
 
+(define-public python-simplesoapy
+  (package
+    (name "python-simplesoapy")
+    (version "1.5.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "SimpleSoapy" version))
+       (sha256
+        (base32 "0bh02m5zj82mp7sxpvwr24ylmrbp3p4r9q7psqcfnxl628w3b4hl"))))
+    (build-system python-build-system)
+    (propagated-inputs
+     (list python-numpy soapysdr))
+    (home-page "https://github.com/xmikos/simplesoapy")
+    (synopsis "Python wrapper for SoapySDR")
+    (description
+     "This package provide a simple pythonic wrapper for the SoapySDR
+library.")
+    (license license:expat)))
+
+(define-public soapy-power
+  (package
+    (name "soapy-power")
+    (version "1.6.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "soapy_power" version))
+       (sha256
+        (base32 "1rajmygcqvv5ph7yk65r4w581lfszrz0f48csvfmma1ami0lirdm"))))
+    (build-system python-build-system)
+    (inputs
+     (list python-numpy
+           python-scipy
+           python-simplesoapy
+           python-simplespectral))
+    (home-page "https://github.com/xmikos/soapy_power")
+    (synopsis "Obtain power spectrum from SDR devices")
+    (description "The @code{soapy_power} obtains the power spectrum from SDR
+devices that are supported by the SoapySDR library.")
+    (license license:expat)))
+
+(define-public qspectrumanalyzer
+  (package
+    (name "qspectrumanalyzer")
+    (version "2.1.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "QSpectrumAnalyzer" version))
+       (sha256
+        (base32 "1bhl8zp4z7v3595ailyivx9vb7y5si6kr22aylphb5pf60jxqhn0"))))
+    (build-system python-build-system)
+    (inputs
+     (list bash-minimal
+           python-pyqt
+           python-pyqtgraph
+           python-qt.py
+           python-simplespectral
+           python-simplesoapy
+           soapy-power))
+    (arguments
+     (list #:phases
+           #~(modify-phases %standard-phases
+               (add-after 'install 'wrap-path
+                 ;; Add the location of the default backend to PATH.
+                 (lambda* (#:key inputs #:allow-other-keys)
+                   (wrap-program (string-append #$output
+                                                "/bin/qspectrumanalyzer")
+                     `("PATH" ":" prefix
+                       (,(string-append (assoc-ref inputs "soapy-power")
+                                        "/bin")))))))))
+    (home-page "https://github.com/xmikos/qspectrumanalyzer")
+    (synopsis "Spectrum analyzer for multiple SDR platforms")
+    (description
+     "This package provides a spectrum analyzer for multiple SDR platforms.
+It is a GUI for @code{soapy_power}, @code{hackrf_sweep}, @code{rtl_power},
+@code{rx_power} and other backends.")
+    (license license:gpl3)))
+
 (define-public aptdec
   ;; No release since 2013, use commit directly.
   (let ((commit "51405971fd4e97714d1e987269e49c6edfe4e0da")
diff --git a/gnu/packages/rust-apps.scm b/gnu/packages/rust-apps.scm
index 8e7c4a0ed5..74581bc1e5 100644
--- a/gnu/packages/rust-apps.scm
+++ b/gnu/packages/rust-apps.scm
@@ -53,6 +53,7 @@
   #:use-module (gnu packages documentation)
   #:use-module (gnu packages fontutils)
   #:use-module (gnu packages freedesktop)
+  #:use-module (gnu packages haskell-xyz)
   #:use-module (gnu packages glib)
   #:use-module (gnu packages gtk)
   #:use-module (gnu packages ibus)
@@ -365,7 +366,7 @@ Features include:
 (define-public exa
   (package
     (name "exa")
-    (version "0.9.0")
+    (version "0.10.1")
     (source
      (origin
        (method url-fetch)
@@ -374,14 +375,15 @@ Features include:
         (string-append name "-" version ".tar.gz"))
        (sha256
         (base32
-         "1s902xgplz1167k0r7x235p914lprpsqy2if0kpa1mlb0fswqqq4"))))
+         "1dd7waq2bnxc1xwygqphi8k1g2qzykr6fk0q4rgrhhxp2jd09f04"))))
     (build-system cargo-build-system)
     (arguments
-     `(#:cargo-inputs
+     `(#:install-source? #f
+       #:cargo-inputs
        (("rust-ansi-term" ,rust-ansi-term-0.12)
-        ("rust-datetime" ,rust-datetime-0.4)
+        ("rust-datetime" ,rust-datetime-0.5)
         ("rust-env-logger" ,rust-env-logger-0.6)
-        ("rust-git2" ,rust-git2-0.9)
+        ("rust-git2" ,rust-git2-0.13)
         ("rust-glob" ,rust-glob-0.3)
         ("rust-lazy-static" ,rust-lazy-static-1)
         ("rust-libc" ,rust-libc-0.2)
@@ -389,64 +391,57 @@ Features include:
         ("rust-log" ,rust-log-0.4)
         ("rust-natord" ,rust-natord-1)
         ("rust-num-cpus" ,rust-num-cpus-1)
-        ("rust-number-prefix" ,rust-number-prefix-0.3)
+        ("rust-number-prefix" ,rust-number-prefix-0.4)
         ("rust-scoped-threadpool" ,rust-scoped-threadpool-0.1)
         ("rust-term-grid" ,rust-term-grid-0.1)
         ("rust-term-size" ,rust-term-size-0.3)
         ("rust-unicode-width" ,rust-unicode-width-0.1)
-        ("rust-users" ,rust-users-0.9)
-        ("rust-zoneinfo-compiled" ,rust-zoneinfo-compiled-0.4))
+        ("rust-users" ,rust-users-0.11)
+        ("rust-zoneinfo-compiled" ,rust-zoneinfo-compiled-0.5))
        #:cargo-development-inputs
-       (("rust-datetime" ,rust-datetime-0.4))
+       (("rust-datetime" ,rust-datetime-0.5))
        #:phases
        (modify-phases %standard-phases
-         ;; Ignoring failing tests.
-         ;; Reported in https://github.com/ogham/exa/issues/318
-         (add-before 'check 'disable-failing-tests
-           (lambda _
-             (substitute* "src/options/mod.rs"
-               (("^.*fn oneline_across.*" oneline-across)
-                (string-append "#[ignore]\n" oneline-across)))
-
-             (substitute* "src/options/view.rs"
-               (("test!\\(across:.*") "")
-               (("test!\\(cr:.*") "")
-               (("test!\\(empty:.*") "")
-               (("test!\\(gracross:.*") "")
-               (("test!\\(grid:.*") "")
-               (("test!\\(icons:.*") "")
-               (("test!\\(just_binary:.*") "")
-               (("test!\\(just_blocks:.*") "")
-               (("test!\\(just_bytes:.*") "")
-               (("test!\\(just_git:.*") "")
-               (("test!\\(just_group:.*") "")
-               (("test!\\(just_header:.*") "")
-               (("test!\\(just_inode:.*") "")
-               (("test!\\(just_links:.*") "")
-               (("test!\\(leg:.*") "")
-               (("test!\\(lid:.*") "")
-               (("test!\\(original_g:.*") ""))
-             #t))
+         (add-after 'build 'build-manual
+           (lambda* (#:key inputs #:allow-other-keys)
+             (when (assoc-ref inputs "pandoc")
+               (map (lambda (page)
+                      (with-output-to-file page
+                        (lambda _
+                          (invoke "pandoc" "--standalone"
+                                  "-f" "markdown"
+                                  "-t" "man"
+                                  (string-append "man/" page ".md")))))
+                    (list "exa.1" "exa_colors.5")))))
          (add-after 'install 'install-extras
            (lambda* (#:key outputs #:allow-other-keys)
              (let* ((out   (assoc-ref outputs "out"))
                     (share (string-append out "/share"))
-                    (man1  (string-append share "/man/man1")))
-               (install-file "contrib/man/exa.1" man1)
+                    (man1  (string-append share "/man/man1"))
+                    (man5  (string-append share "/man/man5")))
+               (when (file-exists? "exa.1")
+                 (install-file "exa.1" man1))
+               (when (file-exists? "exa_colors.5")
+                 (install-file "exa_colors.5" man5))
                (mkdir-p (string-append out "/etc/bash_completion.d"))
                (mkdir-p (string-append share "/fish/vendor_completions.d"))
                (mkdir-p (string-append share "/zsh/site-functions"))
-               (copy-file "contrib/completions.bash"
+               (copy-file "completions/completions.bash"
                           (string-append out "/etc/bash_completion.d/exa"))
-               (copy-file "contrib/completions.fish"
-                          (string-append share "/fish/vendor_completions.d/exa.fish"))
-               (copy-file "contrib/completions.zsh"
-                          (string-append share "/zsh/site-functions/_exa"))
-               #t))))))
-    (inputs
-     (list libgit2 zlib))
+               (copy-file "completions/completions.fish"
+                          (string-append
+                            share "/fish/vendor_completions.d/exa.fish"))
+               (copy-file "completions/completions.zsh"
+                          (string-append
+                            share "/zsh/site-functions/_exa"))))))))
+    (inputs (list libgit2 zlib))
     (native-inputs
-     (list pkg-config))
+     (append
+       (list pkg-config)
+       (if (member (%current-system)
+                   (package-transitive-supported-systems pandoc))
+         (list pandoc)
+         '())))
     (home-page "https://the.exa.website/")
     (synopsis "Modern replacement for ls")
     (description "@code{exa} is a modern replacement for the command-line
diff --git a/gnu/packages/telegram.scm b/gnu/packages/telegram.scm
index 6c9869f93e..2df68ccca7 100644
--- a/gnu/packages/telegram.scm
+++ b/gnu/packages/telegram.scm
@@ -1,5 +1,6 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2021 Raghav Gururajan <rg@raghavgururajan.name>
+;;; Copyright © 2022 Hilton Chain <hako@ultrarare.space>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -26,10 +27,13 @@
   #:use-module (gnu packages check)
   #:use-module (gnu packages cmake)
   #:use-module (gnu packages compression)
+  #:use-module (gnu packages c)
   #:use-module (gnu packages cpp)
   #:use-module (gnu packages digest)
   #:use-module (gnu packages fcitx)
   #:use-module (gnu packages fcitx5)
+  #:use-module (gnu packages freedesktop)
+  #:use-module (gnu packages gl)
   #:use-module (gnu packages glib)
   #:use-module (gnu packages gnome)
   #:use-module (gnu packages gnupg)
@@ -41,6 +45,7 @@
   #:use-module (gnu packages libevent)
   #:use-module (gnu packages libreoffice)
   #:use-module (gnu packages linux)
+  #:use-module (gnu packages llvm)
   #:use-module (gnu packages lxqt)
   #:use-module (gnu packages lua)
   #:use-module (gnu packages perl)
@@ -58,6 +63,8 @@
   #:use-module (gnu packages tls)
   #:use-module (gnu packages video)
   #:use-module (gnu packages web)
+  #:use-module (gnu packages webkit)
+  #:use-module (gnu packages xdisorg)
   #:use-module (gnu packages xiph)
   #:use-module (gnu packages xorg)
   #:use-module ((guix licenses) #:prefix license:)
@@ -72,22 +79,7 @@
   #:use-module (guix build-system python)
   #:use-module (guix build-system qt))
 
-(define %telegram-version "2.9.3")
-
-(define libvpx-for-telegram-desktop
-  (let ((commit "5b63f0f821e94f8072eb483014cfc33b05978bb9")
-        (revision "112"))
-    (origin
-      (method git-fetch)
-      (uri (git-reference
-            (url "https://chromium.googlesource.com/webm/libvpx")
-            (commit commit)))
-      (file-name (git-file-name
-                  "libvpx-for-telegram-desktop"
-                  (git-version "1.9.0" revision commit)))
-      (sha256
-       (base32
-        "1psvxaddihlw1k5n0anxif3qli6zyw2sa2ywn6mkb8six9myrp68")))))
+(define %telegram-version "4.2.2")
 
 (define libyuv-for-telegram-desktop
   (let ((commit "ad890067f661dc747a975bc55ba3767fe30d4452")
@@ -109,196 +101,172 @@
     (method git-fetch)
     (uri (git-reference
           (url "https://github.com/desktop-app/cmake_helpers.git")
-          (commit "4d44d822e01b3b5fbec3ce824e01f56aa35d7f72")))
+          (commit "f49e254d8c5287752b5ed7b86bd84073f584768e")))
     (file-name
      (git-file-name "cmake-helpers-for-telegram-desktop" %telegram-version))
     (sha256
      (base32
-      "0h6cjiqy014h2mz90h1z5a7plb3ihbnds4bja8994ybr1dy3m7m5"))))
+      "0yqib2ndhpaj69z603knpcfga0ni978janb5i8rvhslqddvbzfjv"))))
 
 (define codegen-for-telegram-desktop
   (origin
     (method git-fetch)
     (uri (git-reference
           (url "https://github.com/desktop-app/codegen.git")
-          (commit "248614b49cd7d5aff69d75a737f2e35b79fbb119")))
+          (commit "8815d7aec9b901191d08445f29e2edd0aeba7b2c")))
     (file-name
      (git-file-name "codegen-for-telegram-desktop" %telegram-version))
     (sha256
      (base32
-      "00f7g2z6xmkbkrmi3q27hscjl44mg66wf9q0mz3rhy3jaa6cfdrk"))))
+      "1ly958mjk25kfcpa174kvg134p9r751ixi275afj5kr57by9mbq2"))))
 
 (define lib-base-for-telegram-desktop
   (origin
     (method git-fetch)
     (uri (git-reference
           (url "https://github.com/desktop-app/lib_base.git")
-          (commit "a23c05c44e4f01dc4428f4d75d4db98c59d313a6")))
+          (commit "d932f5048317b05dd414116741d995c82a528542")))
     (file-name
      (git-file-name "lib-base-for-telegram-desktop" %telegram-version))
     (sha256
      (base32
-      "0vh5zgxwalmbnvz8lzlnba87ch8vnpmcz6nvf56w09f3nlxvvq78"))))
+      "1fnirqxj4qq1gzx52rydrc5r6clw3316bh51dfg652jr8hj6wkp2"))))
 
 (define lib-crl-for-telegram-desktop
   (origin
     (method git-fetch)
     (uri (git-reference
           (url "https://github.com/desktop-app/lib_crl.git")
-          (commit "3ccf2ed5095442e5874bba8852cb7dc4efeae29f")))
+          (commit "4e620bc383d032aadea8e6af02661f8c76695cec")))
     (file-name
      (git-file-name "lib-crl-for-telegram-desktop" %telegram-version))
     (sha256
      (base32
-      "11my7q54m4lvvlgma6pbdyjxi1cv1adk1gph2j50mh18sqlm8myz"))))
+      "17bngj247qwq0dg4h37xdi5v1mk22y4yp7sp6ph3irmnz4awah0x"))))
 
 (define lib-lottie-for-telegram-desktop
   (origin
     (method git-fetch)
     (uri (git-reference
           (url "https://github.com/desktop-app/lib_lottie.git")
-          (commit "0770df009db7928df1d0cad0900dc5110106d229")))
+          (commit "6ed1c22ed60692d2f288c9222fafd7d5cd62f904")))
     (file-name
      (git-file-name "lib-lottie-for-telegram-desktop" %telegram-version))
     (sha256
      (base32
-      "1gj56ymlbk5dnk82jw674808m511lv9dky8891a5wm4gp3pph5jb"))))
+      "0l57ibfij9xm4ww4s9cc63q1x8xzpc6ablwaji1krrn3xxksqdd4"))))
 
 (define lib-qr-for-telegram-desktop
   (origin
     (method git-fetch)
     (uri (git-reference
           (url "https://github.com/desktop-app/lib_qr.git")
-          (commit "2b08c71c6edcfc3e31f7d7f518cc963493b6e189")))
+          (commit "501f4c3502fd872ab4d777df8911bdac32de7c48")))
     (file-name
      (git-file-name "lib-qr-for-telegram-desktop" %telegram-version))
     (sha256
      (base32
-      "05hrkmwgrczyjv87r507i2r7m1zr6k2i43mq3my0s6j4szr1rjq0"))))
-
-(define lib-rlottie-for-telegram-desktop
-  (origin
-    (method git-fetch)
-    (uri (git-reference
-          (url "https://github.com/desktop-app/lib_rlottie.git")
-          (commit "0671bf70547381effcf442ec9618e04502a8adbc")))
-    (file-name
-     (git-file-name "lib-rlottie-for-telegram-desktop" %telegram-version))
-    (sha256
-     (base32
-      "05qnza7j15356s8jq16pkbyp4zr586lssmd86lz5jq23lcb3raxv"))))
+      "0hmwqj7a9vcy8wq7pd1qprl68im3zl5f1wzcn2zzk2wvi0389k9f"))))
 
 (define lib-rpl-for-telegram-desktop
   (origin
     (method git-fetch)
     (uri (git-reference
           (url "https://github.com/desktop-app/lib_rpl.git")
-          (commit "df721be3fa14a27dfc230d2e3c42bb1a7c9d0617")))
+          (commit "fd31f5bf382d2679eccdb1abaf8240a56c6a7abe")))
     (file-name
      (git-file-name "lib-rpl-for-telegram-desktop" %telegram-version))
     (sha256
      (base32
-      "15fnv3ssn7rn5d0j52gggdvyqc2wm464678dj7v2x9h8lka2jjxn"))))
+      "1fpq8nyh8wx6zkb3sjjrx9ydqzyhw4483bdk1i9blp0ijn9xxdxf"))))
 
 (define lib-spellcheck-for-telegram-desktop
   (origin
     (method git-fetch)
     (uri (git-reference
           (url "https://github.com/desktop-app/lib_spellcheck.git")
-          (commit "68c9b788958904aea7de79f986a0f82ec8c5b094")))
+          (commit "0e386e22cb6ba8a114b569840a635e096dcb645e")))
     (file-name
      (git-file-name "lib-spellcheck-for-telegram-desktop" %telegram-version))
     (sha256
      (base32
-      "0d8s4wwk6fxf536mhzq2vb9qw3j0m8nqia7ylvvpsbc4kh09dadn"))))
+      "06js7ccv6z3nbd4v2p4hp2prrlmz5ww46y3yb922pp7gm317dwyw"))))
 
 (define lib-storage-for-telegram-desktop
   (origin
     (method git-fetch)
     (uri (git-reference
           (url "https://github.com/desktop-app/lib_storage.git")
-          (commit "403df6c4a29562bd417c92d410e49819f5a48cc1")))
+          (commit "839609369d04615475cb1518636de3619106a917")))
     (file-name
      (git-file-name "lib-storage-for-telegram-desktop" %telegram-version))
     (sha256
      (base32
-      "1zxvzfrxbj4d395fzyb5pm9wn3n8jyimxx88cyqjcdd46sx4h7r5"))))
+      "1l26h2fmqp9dcpr6pfvdd5sjb68j7yh0ms2lnr8na7jf5xqmkwwm"))))
 
 (define lib-tl-for-telegram-desktop
   (origin
     (method git-fetch)
     (uri (git-reference
           (url "https://github.com/desktop-app/lib_tl.git")
-          (commit "45faed44e7f4d11fec79b7a70e4a35dc91ef3fdb")))
+          (commit "36fb95c4de1339d2c8921ad6b2911858c3d0e0fa")))
     (file-name
      (git-file-name "lib-tl-for-telegram-desktop" %telegram-version))
     (sha256
      (base32
-      "0h43xvzklda02494d466jp52hl8c1kmav9f12dyld10dpf1w6c7m"))))
+      "03rngnssnqwr7ad05qn64mwgji5fb0r3fp5ybkf951p8phr1jvzk"))))
 
 (define lib-ui-for-telegram-desktop
   (origin
     (method git-fetch)
     (uri (git-reference
           (url "https://github.com/desktop-app/lib_ui.git")
-          (commit "1b590f9e16eb9571a039f072d6fea66c607e419f")))
+          (commit "1ceaa0bbcfccb83dbf7f51d7f80a733ff2aa8c22")))
     (file-name
      (git-file-name "lib-ui-for-telegram-desktop" %telegram-version))
     (sha256
      (base32
-      "0ighyhfp29h9h8c7vr70pnhcv2xnsr9ln084pssn8hb5z4pmb62f"))))
-
-(define lib-waylandshells-for-telegram-desktop
-  (origin
-    (method git-fetch)
-    (uri (git-reference
-          (url "https://github.com/desktop-app/lib_waylandshells.git")
-          (commit "59b0ee55a68976d27f1bf7cec0e11d5939e185e7")))
-    (file-name
-     (git-file-name "lib-waylandshells-for-telegram-desktop" %telegram-version))
-    (sha256
-     (base32
-      "0l2xrpc5mvvdlsj333pmkgfvn9wi1ijfdaaz8skfnw9icw52faaf"))))
+      "0kyrgxi202xwy14mnx62h1kny0434f5fxqns1ydp24q2c2cr1cxn"))))
 
 (define lib-webrtc-for-telegram-desktop
   (origin
     (method git-fetch)
     (uri (git-reference
           (url "https://github.com/desktop-app/lib_webrtc.git")
-          (commit "ef49f953f12b112008a094a719f40939aaf39db4")))
+          (commit "9b11599c3c56047cfa4c68b69f1fcc93b602c33a")))
     (file-name
      (git-file-name "lib-webrtc-for-telegram-desktop" %telegram-version))
     (sha256
      (base32
-      "15k4xs3462p3ddp5cn9im3nvdiaijmxir8wxsf5yrj70ghy26ibw"))))
+      "0158jx8hj4fv6qpw5pgcr2mdlihj0dxs060dg3iy61zz6q68z5dq"))))
 
 (define lib-webview-for-telegram-desktop
   (origin
     (method git-fetch)
     (uri (git-reference
           (url "https://github.com/desktop-app/lib_webview.git")
-          (commit "e06427c624515485774e2e2181d4afeb05ad5a67")))
+          (commit "546df65eb2424550ed84ce14fc9c5d1bb3586f35")))
     (file-name
      (git-file-name "lib-webview-for-telegram-desktop" %telegram-version))
     (sha256
      (base32
-      "148z7xzfscynwwwqssdsd97npax6yn8zrd64xw8qzbwff2g2r7k4"))))
+      "0zzjwyw82bggncmmsw969lnjl04pklmqjqm77jjzadinivl52z0l"))))
 
 (define tgcalls-for-telegram-desktop
   (origin
     (method git-fetch)
     (uri (git-reference
           (url "https://github.com/TelegramMessenger/tgcalls.git")
-          (commit "81e97fa52e25b7775b62ce07bb653533d81e91b3")))
+          (commit "82c4921045c440b727c38e464f3a0539708423ff")))
     (file-name
      (git-file-name "tgcalls-for-telegram-desktop" %telegram-version))
     (sha256
      (base32
-      "0fvad87hyxli83xn19mgf8jjrrh6y6iaig14pckpbkg33vf4wqkj"))))
+      "1109r17abh66yz91b65fn2g4ryfybnsr5g6075sjhbah1gccv9mk"))))
 
 (define-public webrtc-for-telegram-desktop
-  (let ((commit "91d836dc84a16584c6ac52b36c04c0de504d9c34")
-        (revision "166"))
+  (let ((commit "621f3da55331733bf0d1b223786b96b68c03dca1")
+        (revision "327"))
     (hidden-package
      (package
        (name "webrtc-for-telegram-desktop")
@@ -314,59 +282,64 @@
           (file-name
            (git-file-name name version))
           (sha256
-           (base32 "0plwdp6xgxi27hif5j7kpq425cidxyxbbga3z2f64dsninwy5p1x"))
+           (base32 "1ks1572k1jj7pmzwm79p2gdgi31dd4bs761bphnx32zyq4c6skxk"))
+          (patches
+           (search-patches
+            ;; https://github.com/desktop-app/tg_owt/pull/101
+            "webrtc-for-telegram-desktop-fix-gcc12-cstdint.patch"))
           (modules '((guix build utils)
                      (ice-9 ftw)
                      (srfi srfi-1)))
           (snippet
            #~(begin
                (let ((keep
-                      '( ;; Custom forks which are incompatible with the ones in Guix.
-                        "abseil-cpp" "libsrtp" "openh264" "rnnoise"
+                      '("abseil-cpp" "libsrtp" "rnnoise"
                         ;; Not available in Guix.
-                        "pffft" "usrsctp"
-                        ;; Has cmake support files for libvpx input.
-                        "libvpx")))
+                        "pffft")))
                  (with-directory-excursion "src/third_party"
                    (for-each delete-file-recursively
                              (lset-difference string=?
                                               (scandir ".")
-                                              (cons* "." ".." keep)))))))))
+                                              (cons* "." ".." keep)))))
+               ;; Unbundle openh264.
+               (substitute* "CMakeLists.txt"
+                 (("\\include\\(cmake\\/libopenh264\\.cmake\\)")""))))))
        (build-system cmake-build-system)
        (arguments
         (list
          #:tests? #f                    ; No target
-         #:configure-flags #~(list "-DCMAKE_C_FLAGS=-fPIC"
-                                   "-DCMAKE_CXX_FLAGS=-fPIC")
          #:phases
          #~(modify-phases %standard-phases
-             (add-after 'unpack 'copy-inputs
+             (add-after 'unpack 'unpack-additional-sources
                (lambda _
                  (let* ((third-party (string-append (getcwd) "/src/third_party"))
-                        (libvpx-to (string-append third-party
-                                                  "/libvpx/source/libvpx"))
+                        (crc32c-to (string-append third-party "/crc32c/src"))
                         (libyuv-to (string-append third-party "/libyuv")))
-                   (copy-recursively #$libvpx-for-telegram-desktop libvpx-to)
+                   (copy-recursively #$(package-source crc32c) crc32c-to)
                    (copy-recursively #$libyuv-for-telegram-desktop
                                      libyuv-to)))))))
-       (native-inputs (list perl pkg-config python-wrapper yasm))
+       (native-inputs (list pkg-config python-wrapper yasm))
        (inputs
-        (list alsa-lib
+        (list abseil-cpp-cxxstd17
               ffmpeg
-              libjpeg-turbo
               glib
+              libdrm
+              libglvnd
+              libjpeg-turbo
+              libvpx
               libxcomposite
               libxdamage
-              libxrender
+              libxext
+              libxfixes
               libxrandr
+              libxrender
+              libxtst
+              mesa
+              openh264
               openssl
               opus
-              pipewire
-              protobuf
-              pulseaudio
-              libx11
-              libxext
-              libxtst))
+              pipewire-0.3
+              protobuf))
        (synopsis "WebRTC support for Telegram Desktop")
        (description "WebRTC-for-Telegram-Desktop is a custom WebRTC fork by
 Telegram project, for its use in telegram desktop client.")
@@ -377,18 +350,16 @@ Telegram project, for its use in telegram desktop client.")
          license:asl2.0
          ;; LibYuv
          (license:non-copyleft "file:///src/third_party/libyuv/LICENSE")
-         ;; OpenH264
-         license:bsd-2
          ;; PFFFT
          (license:non-copyleft "file:///src/third_party/pffft/LICENSE")
          ;; RnNoise
          license:gpl3
-         ;; LibSRTP, LibVPx, UsrSCTP and Others
+         ;; LibSRTP, Crc32c and Others
          license:bsd-3))))))
 
 (define-public rlottie-for-telegram-desktop
-  (let ((commit "cbd43984ebdf783e94c8303c41385bf82aa36d5b")
-        (revision "671"))
+  (let ((commit "8c69fc20cf2e150db304311f1233a4b55a8892d7")
+        (revision "678"))
     (hidden-package
      (package
        (inherit rlottie)
@@ -404,62 +375,12 @@ Telegram project, for its use in telegram desktop client.")
           (file-name
            (git-file-name "rlottie-for-telegram-desktop" version))
           (sha256
-           (base32 "1lxpbgbhps9rmck036mgmiknqrzpjxpas8n7qxykv6pwzn0c8n0c"))))
-       (arguments
-        `(#:configure-flags
-          (list
-           "-Dlog=true"
-           "-Ddumptree=true"
-           "-Dtest=true")
-          #:phases
-          (modify-phases %standard-phases
-            (add-after 'unpack 'patch-cxx-flags
-              (lambda _
-                (substitute* "meson.build"
-                  (("werror=true")
-                   "werror=false"))
-                #t)))))))))
-
-(define-public libtgvoip-for-telegram-desktop
-  (let ((commit "13a5fcb16b04472d808ce122abd695dbf5d206cd")
-        (revision "88"))
-    (hidden-package
-     (package
-       (inherit libtgvoip)
-       (version
-        (git-version "2.4.4" revision commit))
-       (source
-        (origin
-          (method git-fetch)
-          (uri
-           (git-reference
-            (url "https://github.com/telegramdesktop/libtgvoip.git")
-            (commit commit)))
-          (file-name
-           (git-file-name "libtgvoip-for-telegram-desktop" version))
-          (sha256
-           (base32 "12p6s7vxkf1gh1spdckkdxrx7bjzw881ds9bky7l5fw751cwb3xd"))))
-       (arguments
-        `(#:configure-flags
-          (list
-           "--disable-static"
-           "--disable-dsp"              ; FIXME
-           "--enable-audio-callback"
-           "--with-alsa"
-           "--with-pulse")
-          #:phases
-          (modify-phases %standard-phases
-            (add-after 'unpack 'patch-linkers
-              (lambda _
-                (substitute* "Makefile.am"
-                  (("\\$\\(CRYPTO_LIBS\\) \\$\\(OPUS_LIBS\\)")
-                   "$(CRYPTO_LIBS) $(OPUS_LIBS) $(ALSA_LIBS) $(PULSE_LIBS)"))
-                (substitute* "tgvoip.pc.in"
-                  (("libcrypto opus")
-                   "libcrypto opus alsa libpulse"))
-                #t)))))
-       (native-inputs
-        (list autoconf automake libtool pkg-config))))))
+           (base32 "14gwg3sn6xdx9ymnx5r0vfm4pk8dwk92s10a1wdvfbjpyrxll64i"))
+          (modules '((guix build utils)))
+          (snippet
+           #~(begin
+               (substitute* "meson.build"
+                 (("werror=true") "werror=false"))))))))))
 
 (define-public telegram-desktop
   (package
@@ -476,15 +397,19 @@ Telegram project, for its use in telegram desktop client.")
        (file-name
         (git-file-name name version))
        (sha256
-        (base32 "0dzf1y3xhqvizg29bd1kya48cjbkq073d2x10ynwcmmx396l4nd8"))
+        (base32 "16mcx4gwkl8s70a8gppxczmjsww1a3vmdrz3snfh986nvid64mq7"))
+       (patches
+        (search-patches
+         ;; https://github.com/telegramdesktop/tdesktop/pull/24126
+         "telegram-desktop-allow-disable-libtgvoip.patch"))
        (modules '((guix build utils)
                   (ice-9 ftw)
                   (srfi srfi-1)))
        (snippet
         #~(begin
             (let ((keep
-                   '( ;; Not available in Guix.
-                     "SPMediaKeyTap" "statusnotifieritem" "tgcalls")))
+                   '(;; Not available in Guix.
+                     "tgcalls")))
               (with-directory-excursion "Telegram/ThirdParty"
                 (for-each delete-file-recursively
                           (lset-difference string=?
@@ -510,17 +435,15 @@ Telegram project, for its use in telegram desktop client.")
               ;; also stored in <#$source/snap/snapcraft.yaml>.
               "-DTDESKTOP_API_ID=611335"
               "-DTDESKTOP_API_HASH=d524b414d21f4d37f08684c1df41ac9c"
-              ;; Disable WebkitGTK support as it fails to link
-              "-DDESKTOP_APP_DISABLE_WEBKITGTK=ON"
-              ;; Use bundled fonts as fallback.
-              "-DDESKTOP_APP_USE_PACKAGED_FONTS=OFF")
+              "-DTDESKTOP_DISABLE_LEGACY_TGVOIP=ON"
+              "-DDESKTOP_APP_DISABLE_CRASH_REPORTS=ON"
+              "-DDESKTOP_APP_DISABLE_AUTOUPDATE=ON"
+              "-DDESKTOP_APP_USE_PACKAGED_RLOTTIE=ON")
            #:phases
            #~(modify-phases %standard-phases
-               (add-after 'unpack 'make-writable
-                 (lambda _
-                   (for-each make-file-writable (find-files "."))))
-               (add-after 'make-writable 'copy-inputs
+               (add-after 'unpack 'unpack-additional-sources
                  (lambda _
+                   (for-each make-file-writable (find-files "."))
                    (for-each
                     (match-lambda
                       ((dst src)
@@ -532,36 +455,27 @@ Telegram project, for its use in telegram desktop client.")
                       ("Telegram/lib_crl" #$lib-crl-for-telegram-desktop)
                       ("Telegram/lib_lottie" #$lib-lottie-for-telegram-desktop)
                       ("Telegram/lib_qr" #$lib-qr-for-telegram-desktop)
-                      ("Telegram/lib_rlottie" #$lib-rlottie-for-telegram-desktop)
                       ("Telegram/lib_rpl" #$lib-rpl-for-telegram-desktop)
                       ("Telegram/lib_spellcheck" #$lib-spellcheck-for-telegram-desktop)
                       ("Telegram/lib_storage" #$lib-storage-for-telegram-desktop)
                       ("Telegram/lib_tl" #$lib-tl-for-telegram-desktop)
                       ("Telegram/lib_ui" #$lib-ui-for-telegram-desktop)
-                      ("Telegram/lib_waylandshells" #$lib-waylandshells-for-telegram-desktop)
                       ("Telegram/lib_webrtc" #$lib-webrtc-for-telegram-desktop)
                       ("Telegram/lib_webview" #$lib-webview-for-telegram-desktop)
                       ("Telegram/ThirdParty/tgcalls" #$tgcalls-for-telegram-desktop)))))
-               (add-before 'configure 'patch-cxx-flags
-                 (lambda _
-                   (substitute* "cmake/options_linux.cmake" (("class-memaccess") "all"))))
                (add-after 'install 'glib-or-gtk-compile-schemas
                  (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-compile-schemas))
                (add-after 'glib-or-gtk-compile-schemas 'glib-or-gtk-wrap
                  (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-wrap)))))
     (native-inputs
-     (list cmake-shared
-           extra-cmake-modules
-           `(,glib "bin")
+     (list `(,glib "bin")
            `(,gtk+ "bin")
            pkg-config
-           python-wrapper
-           qttools-5))
+           python-wrapper))
     (inputs
-     (list alsa-lib
+     (list abseil-cpp-cxxstd17
+           alsa-lib
            c++-gsl
-           catch2
-           libexpected
            fcitx-qt5
            fcitx5-qt
            ffmpeg
@@ -571,12 +485,13 @@ Telegram project, for its use in telegram desktop client.")
            hime
            hunspell
            jemalloc
-           kwayland
-           libdbusmenu-qt
+           kcoreaddons
+           libdispatch
+           libexpected
            libjpeg-turbo
-           libtgvoip-for-telegram-desktop
+           libvpx
+           libxcb
            lz4
-           materialdecoration
            minizip
            nimf
            openal
@@ -585,20 +500,18 @@ Telegram project, for its use in telegram desktop client.")
            pulseaudio
            qrcodegen-cpp
            qtbase-5
-           qtsvg-5
-           qt5ct
            qtimageformats
+           qtsvg-5
            qtwayland
            range-v3
            rlottie-for-telegram-desktop
            rnnoise
+           wayland
+           webkitgtk
            webrtc-for-telegram-desktop
-           libx11
-           libxcb
            xcb-util-keysyms
            xxhash
            zlib))
-    (propagated-inputs (list dconf))
     (synopsis "Telegram Desktop")
     (description "Telegram desktop is the official desktop version of the
 Telegram instant messenger.")
@@ -606,7 +519,7 @@ Telegram instant messenger.")
     (license
      (list
       ;; ThirdParty
-      license:lgpl2.1+
+      license:lgpl3
       ;; Others
       license:gpl3+))))
 
diff --git a/gnu/packages/tex.scm b/gnu/packages/tex.scm
index 1fa3178a24..883a1f6f45 100644
--- a/gnu/packages/tex.scm
+++ b/gnu/packages/tex.scm
@@ -11194,6 +11194,33 @@ mechanism.  Line numbering may be extended to footnote lines, using the
 fnlineno package.")
     (license license:lppl1.3a+)))
 
+(define-public texlive-babel-czech
+  (let ((template (simple-texlive-package
+                   "texlive-babel-czech"
+                   (list "/source/generic/babel-czech/")
+                   (base32
+                    "1274pzgdya7gkvxjmdm3v5rb7hc0sj6mqn9pd8y9418yx5449spg"))))
+    (package
+      (inherit template)
+      (arguments
+       (substitute-keyword-arguments (package-arguments template)
+         ((#:tex-directory _ '())
+          "generic/babel-czech")
+         ((#:build-targets _ '())
+          ''("czech.ins")) ; TODO: use dtx and build documentation
+         ((#:phases phases)
+          `(modify-phases ,phases
+             (add-after 'unpack 'chdir
+               (lambda _
+                 (chdir "source/generic/babel-czech")))))))
+      (home-page "https://www.ctan.org/pkg/babel-czech")
+      (synopsis "Babel support for Czech")
+      (description
+       "This package provides the language definition file for support of
+Czech in @code{babel}.  Some shortcuts are defined, as well as translations to
+Czech of standard ``LaTeX names''.")
+      (license license:lppl1.3+))))
+
 (define-public texlive-babel-dutch
   (let ((template (simple-texlive-package
                    "texlive-babel-dutch"
diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm
index d66c42123d..17bad8e641 100644
--- a/gnu/packages/video.scm
+++ b/gnu/packages/video.scm
@@ -1573,14 +1573,14 @@ operate properly.")
 (define-public ffmpeg-5
   (package
     (name "ffmpeg")
-    (version "5.1.1")
+    (version "5.1.2")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://ffmpeg.org/releases/ffmpeg-"
                                   version ".tar.xz"))
               (sha256
                (base32
-                "0d84pjmlb5ss1yybxic3wlyrr31wcsg29ysqx5qiwlcnqkw3zgwm"))))
+                "1p7kxr0f9f9d0pyyxq9ciaj9ch2drmcw5p9jk22j111ccrnp17k1"))))
     (build-system gnu-build-system)
     (inputs
      (append
diff --git a/gnu/packages/vim.scm b/gnu/packages/vim.scm
index a6250f71de..c6bfbb5c6b 100644
--- a/gnu/packages/vim.scm
+++ b/gnu/packages/vim.scm
@@ -77,7 +77,7 @@
 (define-public vim
   (package
     (name "vim")
-    (version "9.0.0509")
+    (version "9.0.0594")
     (source (origin
              (method git-fetch)
              (uri (git-reference
@@ -86,7 +86,7 @@
              (file-name (git-file-name name version))
              (sha256
               (base32
-               "0affh0q6r5cvf01f4m5nr94bq1k23bzhiwa4xlpqim21yipafamm"))))
+               "0rb1385pwz75z342b4915gp8212xipp38z9qlaxdqdy3x5m16lcp"))))
     (build-system gnu-build-system)
     (arguments
      `(#:test-target "test"
@@ -100,6 +100,7 @@
                             "src/testdir/test_normal.vim"
                             "src/testdir/test_popupwin.vim"
                             "src/testdir/test_shell.vim"
+                            "src/testdir/test_suspend.vim"
                             "src/testdir/test_terminal.vim"
                             "src/testdir/test_terminal2.vim")
                (("/bin/sh") (which "sh")))
diff --git a/gnu/packages/wm.scm b/gnu/packages/wm.scm
index 310e62a00d..5699e42540 100644
--- a/gnu/packages/wm.scm
+++ b/gnu/packages/wm.scm
@@ -1675,36 +1675,27 @@ modules for building a Wayland compositor.")
     (license license:expat))) ; MIT license
 
 (define-public swaylock-effects
-  ;; Latest release is from November 2020, but doesn't support disabling SSE.
-  (let ((commit "5cb9579faaf5662b111f5722311b701eff1c1d00")
-        (revision "1"))
-    (package
-      (inherit swaylock)
-      (name "swaylock-effects")
-      (version (git-version "1.6-3" revision commit))
-      (source
-       (origin
-         (method git-fetch)
-         (uri (git-reference
-               (url "https://github.com/mortie/swaylock-effects")
-               (commit commit)))
-         (file-name (git-file-name name version))
-         (sha256
-          (base32
-           "036dkhfqgk7g9vbr5pxgrs66h5fz0rwdsc67i1w51aa9v01r35ca"))))
-      (arguments
-       `(#:configure-flags '("-Dsse=false")
-         #:phases
-         (modify-phases %standard-phases
-           (add-after 'unpack 'patch-meson
-             (lambda _
-               (substitute* "meson.build"
-                 (("'-mtune=native',") "")))))))
-      (synopsis "Screen locking utility for Wayland compositors with effects")
-      (description "@code{Swaylock-effects} is a fork of swaylock with additional
+  (package
+    (inherit swaylock)
+    (name "swaylock-effects")
+    (version "1.6.10")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/jirutka/swaylock-effects")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32
+         "1d8ri7bzwfr53ybgf23acz57wyhcl2f1nqprcda1v9bzfgsqfk2n"))))
+    (arguments
+     (list #:configure-flags #~'("-Dsse=false")))
+    (synopsis "Screen locking utility for Wayland compositors with effects")
+    (description "@code{Swaylock-effects} is a fork of swaylock with additional
 features, such as the ability to take a screenshot as the background image,
 display a clock or apply image manipulation techniques to the background image.")
-      (home-page "https://github.com/mortie/swaylock-effects"))))
+    (home-page "https://github.com/jirutka/swaylock-effects")))
 
 (define-public swaybg
   (package
diff --git a/gnu/packages/xml.scm b/gnu/packages/xml.scm
index 467f90ab39..42d76bef53 100644
--- a/gnu/packages/xml.scm
+++ b/gnu/packages/xml.scm
@@ -159,7 +159,7 @@ things the parser might find in the XML document (like start tags).")
 (define expat/fixed
   (package
     (inherit expat)
-    (version "2.4.7")
+    (version "2.4.9")
     (source (let ((dot->underscore (lambda (c) (if (char=? #\. c) #\_ c))))
               (origin
                 (method url-fetch)
@@ -171,7 +171,7 @@ things the parser might find in the XML document (like start tags).")
                             "/expat-" version ".tar.xz")))
                 (sha256
                  (base32
-                  "0zbss0dssn17mjmvk17qfi5cmvm0lcyzs62cwvqr219hhl864xcq")))))))
+                  "0m03zh7al39mx4rf0s2bgdn77r658qqf9k3a7bwx6z2wzql0g33f")))))))
 
 (define-public libebml
   (package
diff --git a/gnu/services/base.scm b/gnu/services/base.scm
index 616bc42e69..3f662f1a6c 100644
--- a/gnu/services/base.scm
+++ b/gnu/services/base.scm
@@ -55,7 +55,9 @@
                 #:select (file-system-packages))
   #:use-module (gnu packages admin)
   #:use-module ((gnu packages linux)
-                #:select (alsa-utils crda eudev e2fsprogs fuse gpm kbd lvm2 rng-tools))
+                #:select (alsa-utils btrfs-progs crda eudev
+                          e2fsprogs f2fs-tools fuse gpm kbd lvm2 rng-tools
+                          util-linux xfsprogs))
   #:use-module (gnu packages bash)
   #:use-module ((gnu packages base)
                 #:select (coreutils glibc glibc-utf8-locales tar))
@@ -64,7 +66,10 @@
   #:autoload   (gnu packages hurd) (hurd)
   #:use-module (gnu packages package-management)
   #:use-module ((gnu packages gnupg) #:select (guile-gcrypt))
-  #:use-module (gnu packages linux)
+  #:use-module ((gnu packages disk)
+                #:select (dosfstools))
+  #:use-module ((gnu packages file-systems)
+                #:select (bcachefs-tools exfat-utils jfsutils zfs))
   #:use-module (gnu packages terminals)
   #:use-module ((gnu build file-systems)
                 #:select (mount-flags->bit-mask
@@ -86,6 +91,7 @@
   #:export (fstab-service-type
             root-file-system-service
             file-system-service-type
+            file-system-utilities
             swap-service
             host-name-service
             %default-console-font
@@ -488,6 +494,31 @@ upon boot."
                 (memq 'bind-mount (file-system-flags file-system))))
           file-systems))
 
+(define (file-system-type->utilities type)
+  "Return the package providing the utilities for file system TYPE, #f
+otherwise."
+  (assoc-ref
+   `(("bcachefs" . ,bcachefs-tools)
+     ("btrfs" . ,btrfs-progs)
+     ("exfat" . ,exfat-utils)
+     ("ext2" . ,e2fsprogs)
+     ("ext3" . ,e2fsprogs)
+     ("ext4" . ,e2fsprogs)
+     ("fat" . ,dosfstools)
+     ("f2fs" . ,f2fs-tools)
+     ("jfs" . ,jfsutils)
+     ("vfat" . ,dosfstools)
+     ("xfs" . ,xfsprogs)
+     ("zfs" . ,zfs))
+   type))
+
+(define (file-system-utilities file-systems)
+  "Return a list of packages containing file system utilities for
+FILE-SYSTEMS."
+  (filter-map (lambda (file-system)
+                (file-system-type->utilities (file-system-type file-system)))
+              file-systems))
+
 (define file-system-service-type
   (service-type (name 'file-systems)
                 (extensions
@@ -495,6 +526,8 @@ upon boot."
                                           file-system-shepherd-services)
                        (service-extension fstab-service-type
                                           file-system-fstab-entries)
+                       (service-extension profile-service-type
+                                          file-system-utilities)
 
                        ;; Have 'user-processes' depend on 'file-systems'.
                        (service-extension user-processes-service-type
diff --git a/gnu/services/samba.scm b/gnu/services/samba.scm
index 4e930d61dc..dfc7778570 100644
--- a/gnu/services/samba.scm
+++ b/gnu/services/samba.scm
@@ -17,14 +17,12 @@
 ;;; along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.
 
 (define-module (gnu services samba)
-
   #:use-module (gnu packages)
   #:use-module (gnu packages base)
   #:use-module (gnu packages admin)
   #:use-module (gnu packages samba)
 
   #:use-module (gnu services)
-  #:use-module (gnu services configuration)
   #:use-module (gnu services shepherd)
   #:use-module (gnu services base)
   #:use-module (gnu system shadow)
@@ -41,20 +39,10 @@
 
   #:export (samba-service-type
             samba-configuration
-            samba-smb-conf
 
             wsdd-service-type
             wsdd-configuration))
 
-(define %smb-conf
-  (plain-file "smb.conf" "[global]
-    workgroup = WORKGROUP
-    server string = Samba Server
-    server role = standalone server
-    log file = /var/log/samba/log.%m
-    logging = file
-"))
-
 (define-record-type* <samba-configuration>
   samba-configuration
   make-samba-configuration
diff --git a/gnu/system.scm b/gnu/system.scm
index a94f0a9a1f..66ca629d63 100644
--- a/gnu/system.scm
+++ b/gnu/system.scm
@@ -575,6 +575,14 @@ marked as 'needed-for-boot'."
   (service file-system-service-type
            (map add-dependencies file-systems)))
 
+(define (boot-file-system-service os)
+  "Return a service which adds, to the system profile, packages providing the
+utilites for the file systems marked as 'needed-for-boot' in OS."
+  (let ((file-systems (filter file-system-needed-for-boot?
+                              (operating-system-file-systems os))))
+    (simple-service 'boot-file-system-utilities profile-service-type
+                    (file-system-utilities file-systems))))
+
 (define (mapped-device-users device file-systems)
   "Return the subset of FILE-SYSTEMS that use DEVICE."
   (let ((targets (map (cut string-append "/dev/mapper/" <>)
@@ -720,13 +728,14 @@ bookkeeping."
   (define known-fs
     (map file-system-mount-point (operating-system-file-systems os)))
 
-  (let* ((mappings  (device-mapping-services os))
-         (root-fs   (root-file-system-service))
-         (other-fs  (non-boot-file-system-service os))
-         (swaps     (swap-services os))
-         (procs     (service user-processes-service-type))
-         (host-name (host-name-service (operating-system-host-name os)))
-         (entries   (operating-system-directory-base-entries os)))
+  (let* ((mappings     (device-mapping-services os))
+         (root-fs      (root-file-system-service))
+         (boot-fs      (boot-file-system-service os))
+         (non-boot-fs  (non-boot-file-system-service os))
+         (swaps        (swap-services os))
+         (procs        (service user-processes-service-type))
+         (host-name    (host-name-service (operating-system-host-name os)))
+         (entries      (operating-system-directory-base-entries os)))
     (cons* (service system-service-type entries)
            (service linux-builder-service-type
                     (linux-builder-configuration
@@ -757,7 +766,7 @@ bookkeeping."
                     (operating-system-setuid-programs os))
            (service profile-service-type
                     (operating-system-packages os))
-           other-fs
+           boot-fs non-boot-fs
            (append mappings swaps
 
                    ;; Add the firmware service.
@@ -887,8 +896,9 @@ of PROVENANCE-SERVICE-TYPE to its services."
         iw wireless-tools))
 
 (define %base-packages-disk-utilities
-  ;; A well-rounded set of packages for interacting with disks, partitions
-  ;; and filesystems.
+  ;; A well-rounded set of packages for interacting with disks,
+  ;; partitions and filesystems, included with the Guix installation
+  ;; image.
   (list parted gptfdisk ddrescue
         ;; We used to provide fdisk from GNU fdisk, but as of version 2.0.0a
         ;; it pulls Guile 1.8, which takes unreasonable space; furthermore
@@ -903,8 +913,7 @@ of PROVENANCE-SERVICE-TYPE to its services."
 (define %base-packages
   ;; Default set of packages globally visible.  It should include anything
   ;; required for basic administrator tasks.
-  (append (list e2fsprogs)
-          %base-packages-artwork
+  (append %base-packages-artwork
           %base-packages-interactive
           %base-packages-linux
           %base-packages-networking