summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--gnu/local.mk3
-rw-r--r--gnu/packages/freedesktop.scm108
-rw-r--r--gnu/packages/glib.scm188
-rw-r--r--gnu/packages/gnome.scm74
-rw-r--r--gnu/packages/gnuzilla.scm1
-rw-r--r--gnu/packages/graphics.scm4
-rw-r--r--gnu/packages/gstreamer.scm39
-rw-r--r--gnu/packages/gtk.scm27
-rw-r--r--gnu/packages/guile-xyz.scm2
-rw-r--r--gnu/packages/kde-games.scm2
-rw-r--r--gnu/packages/kde-multimedia.scm1
-rw-r--r--gnu/packages/kde-pim.scm1
-rw-r--r--gnu/packages/kde-utils.scm1
-rw-r--r--gnu/packages/maths.scm1
-rw-r--r--gnu/packages/mp3.scm1
-rw-r--r--gnu/packages/patches/glib-skip-failing-test.patch3
-rw-r--r--gnu/packages/patches/gtk2-harden-list-store.patch42
-rw-r--r--gnu/packages/patches/shared-mime-info-xdgmime-path.patch22
-rw-r--r--gnu/packages/ruby.scm1
-rw-r--r--gnu/packages/telegram.scm10
-rw-r--r--guix/profiles.scm2
21 files changed, 310 insertions, 223 deletions
diff --git a/gnu/local.mk b/gnu/local.mk
index f9d57bbec3..c0398268f5 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -59,6 +59,7 @@
 # Copyright © 2023 Zheng Junjie <873216071@qq.com>
 # Copyright © 2023 Ivana Drazovic <iv.dra@hotmail.com>
 # Copyright © 2023 Andy Tai <atai@atai.org>
+# Copyright © 2023 Bruno Victal <mirai@makinata.eu>
 #
 # This file is part of GNU Guix.
 #
@@ -1340,6 +1341,7 @@ dist_patch_DATA =						\
   %D%/packages/patches/guile-rsvg-pkgconfig.patch		\
   %D%/packages/patches/guile-emacs-fix-configure.patch		\
   %D%/packages/patches/gtk2-fix-builder-test.patch		\
+  %D%/packages/patches/gtk2-harden-list-store.patch		\
   %D%/packages/patches/gtk2-respect-GUIX_GTK2_PATH.patch	\
   %D%/packages/patches/gtk2-respect-GUIX_GTK2_IM_MODULE_FILE.patch \
   %D%/packages/patches/gtk2-theme-paths.patch			\
@@ -1937,6 +1939,7 @@ dist_patch_DATA =						\
   %D%/packages/patches/libsequoia-remove-store.patch		\
   %D%/packages/patches/serf-python3.patch			\
   %D%/packages/patches/shakespeare-spl-fix-grammar.patch		\
+  %D%/packages/patches/shared-mime-info-xdgmime-path.patch	\
   %D%/packages/patches/sharutils-CVE-2018-1000097.patch		\
   %D%/packages/patches/slim-session.patch			\
   %D%/packages/patches/slim-config.patch			\
diff --git a/gnu/packages/freedesktop.scm b/gnu/packages/freedesktop.scm
index 3bfc8b33ae..6408918c2a 100644
--- a/gnu/packages/freedesktop.scm
+++ b/gnu/packages/freedesktop.scm
@@ -33,6 +33,7 @@
 ;;; Copyright © 2022 Petr Hodina <phodina@protonmail.com>
 ;;; Copyright © 2022 muradm <mail@muradm.net>
 ;;; Copyright © 2023 Alex Devaure <ajadevaure@gmail.com>
+;;; Copyright © 2023 Bruno Victal <mirai@makinata.eu>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -465,6 +466,113 @@ method framework.")
 display servers.  It supports many different languages and emoji.")
     (license license:gpl3+)))
 
+;; Private package used by shared-mime-info.
+(define xdgmime
+  ;; No public release, match commit to the one used in the
+  ;; shared-mime-info release.
+  (let ((commit "de283fc430460b9b3a7e61432a6d273cd64cb102")
+        (revision "1"))
+    (package
+      (name "xdgmime")
+      (version (git-version "0.0" revision commit))
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url "https://gitlab.freedesktop.org/xdg/xdgmime.git")
+                      (commit commit)))
+                (file-name (git-file-name name version))
+                (sha256
+                 (base32
+                  "0m9k7nfxgchb9j0xh9cwsldz6564qisqdkvlhgkcgc0grd4nfbn9"))))
+      (build-system gnu-build-system)
+      (arguments
+       (list
+        #:tests? #f  ; no tests
+        #:make-flags #~(list (string-append "DESTDIR=" #$output)
+                             #$(string-append "CC=" (cc-for-target)))
+        #:imported-modules `((guix build copy-build-system)
+                             ,@%gnu-build-system-modules)
+        #:modules `((guix build gnu-build-system)
+                    ((guix build copy-build-system) #:prefix copy:)
+                    (guix build utils))
+        #:phases
+        #~(modify-phases %standard-phases
+            ;; Package uses a hand-crafted Makefile.
+            (delete 'configure)
+            (replace 'install
+              (lambda args
+                (apply (assoc-ref copy:%standard-phases 'install)
+                       #:install-plan
+                       '(("src" "bin/" #:include ("print-mime-data"
+                                                  "test-mime-data"
+                                                  "test-mime")))
+                       args))))))
+      (home-page "https://gitlab.freedesktop.org/xdg/xdgmime/")
+      (synopsis "Module that parses the freedesktop.org MIME spec")
+      (description "This module is used for shared-mime-info package tests.")
+      (license (list license:lgpl2.1+ license:artistic2.0)))))
+
+;; Note: when updating shared-mime-info, don't forget to update xdgmime's commit
+;; to the one used in the release.
+(define-public shared-mime-info
+  (package
+    (name "shared-mime-info")
+    (version "2.2")
+    (source (origin
+             (method git-fetch)
+             (uri (git-reference
+                   (url "https://gitlab.freedesktop.org/xdg/shared-mime-info.git")
+                   (commit version)))
+             (file-name (git-file-name name version))
+             (sha256
+              (base32
+               "04dfnnflspprxg7qia3whz1754lfvgi4ihvmihg379936zy5xd22"))
+             (patches (search-patches "shared-mime-info-xdgmime-path.patch"))))
+    (build-system meson-build-system)
+    (arguments
+     (list
+      #:configure-flags
+      #~(list #$(format #f "-Dxdgmime-path=~a/bin"
+                        (this-package-native-input "xdgmime"))
+              "-Dupdate-mimedb=true")
+      #:phases
+      #~(modify-phases %standard-phases
+          ;; Don't patch shebangs for the test files.
+          (replace 'patch-source-shebangs
+            (lambda _
+              (let ((pred (lambda (file stat)
+                            (and (eq? 'regular (stat:type stat))
+                                 (not (string-prefix? "./tests/mime-detection"
+                                                      file))))))
+                (for-each patch-shebang
+                          (find-files "." pred #:stat lstat)))))
+          ;; The docs have no install rule.
+          (add-after 'install 'install-doc
+            (lambda* (#:key source #:allow-other-keys)
+              (let ((dest (string-append #$output:doc "/share/doc")))
+                (with-directory-excursion "data/shared-mime-info-spec-html"
+                  (install-file "shared-mime-info-spec.html"
+                                (string-append dest "/html")))
+                (install-file (string-append source
+                                             "/data/shared-mime-info-spec.xml")
+                              dest)))))))
+    (inputs
+     (list glib libxml2))
+    (native-inputs
+     (list gettext-minimal pkg-config python xdgmime
+           ;; For 'doc' output.
+           docbook-xml-4.1.2 docbook-xsl xmlto))
+    (outputs (list "out" "doc"))
+    (home-page "https://www.freedesktop.org/wiki/Software/shared-mime-info")
+    (synopsis "Database of common MIME types")
+    (description
+     "The shared-mime-info package contains the core database of common types
+and the update-mime-database command used to extend it.  It requires glib2 to
+be installed for building the update command.  Additionally, it uses intltool
+for translations, though this is only a dependency for the maintainers.  This
+database is translated at Transifex.")
+    (license license:gpl2+)))
+
 (define-public xdg-utils
   (package
     (name "xdg-utils")
diff --git a/gnu/packages/glib.scm b/gnu/packages/glib.scm
index a0b85b15d1..935d8d4da1 100644
--- a/gnu/packages/glib.scm
+++ b/gnu/packages/glib.scm
@@ -216,7 +216,7 @@ information, refer to the @samp{dbus-daemon(1)} man page.")))
 (define glib
   (package
     (name "glib")
-    (version "2.72.3")
+    (version "2.76.1")
     (source
      (origin
        (method url-fetch)
@@ -225,14 +225,14 @@ information, refer to the @samp{dbus-daemon(1)} man page.")))
                        name "/" (string-take version 4) "/"
                        name "-" version ".tar.xz"))
        (sha256
-        (base32 "1w25sf2wxkkah2p2w189q58mza3zv8z1fh2q1m82sldq4kva4faa"))
+        (base32 "17x1zpr2avj8hjbpc6hp2sf2885lxac46v0kajsgan3929m0zp23"))
        (patches
         (search-patches "glib-appinfo-watch.patch"
                         "glib-skip-failing-test.patch"))
        (modules '((guix build utils)))
        (snippet
         '(begin
-           (substitute* "tests/spawn-test.c"
+           (substitute* "glib/tests/spawn-test.c"
              (("/bin/sh") "sh"))))))
     (build-system meson-build-system)
     (outputs '("out"                    ;libraries, locales, etc
@@ -257,6 +257,9 @@ information, refer to the @samp{dbus-daemon(1)} man page.")))
                                                #$output:bin "/bin"))
       #:phases
       #~(modify-phases %standard-phases
+          (add-after 'unpack 'set-G_TEST_SRCDIR
+            (lambda _
+              (setenv "G_TEST_SRCDIR" (string-append (getcwd) "/gio/tests"))))
           ;; Needed to pass the test phase on slower ARM and i686 machines.
           (add-after 'unpack 'increase-test-timeout
             (lambda _
@@ -272,9 +275,19 @@ information, refer to the @samp{dbus-daemon(1)} man page.")))
                 (substitute* '("unix.c" "utils.c")
                   (("[ \t]*g_test_add_func.*;") "")))
               (with-directory-excursion "gio/tests"
-                (substitute* '("contenttype.c" "gdbus-address-get-session.c"
-                               "gdbus-peer.c" "appinfo.c" "desktop-app-info.c")
-                  (("[ \t]*g_test_add_func.*;") "")))
+                (substitute* '("contenttype.c"
+                               "gdbus-address-get-session.c"
+                               "gdbus-server-auth.c"
+                               "gdbus-peer.c"
+                               "appinfo.c"
+                               "desktop-app-info.c")
+                  (("[ \t]*g_test_add_func.*;") ""))
+                (unless (which "update-desktop-database")
+                  (substitute* "file.c"
+                    (("[ \t]*g_test_add_func.*query-default-handler.*;") "")))
+                (substitute* '("portal-support-snap.c")
+                  (("g_test_init .*")
+                   "return EXIT_SUCCESS;")))
 
               #$@(if (target-x86-32?)
                      ;; Comment out parts of timer.c that fail on i686 due to
@@ -454,10 +467,10 @@ information, refer to the @samp{dbus-daemon(1)} man page.")))
       python
       python-wrapper))
     (propagated-inputs
-     (list libffi             ;in the Requires.private field of gobject-2.0.pc
-           pcre               ;in the Requires.private field of glib-2.0.pc
-           `(,util-linux "lib")  ;for libmount
-           zlib))                ;in the Requires.private field of glib-2.0.pc
+     (list libffi            ; in the Requires.private field of gobject-2.0.pc
+           pcre2             ; in the Requires.private field of glib-2.0.pc
+           `(,util-linux "lib") ;for libmount
+           zlib))               ; in the Requires.private field of glib-2.0.pc
     (native-search-paths
      ;; This variable is not really "owned" by GLib, but several related
      ;; packages refer to it: gobject-introspection's tools use it as a search
@@ -481,92 +494,47 @@ functions for strings and common data structures.")
     (license license:lgpl2.1+)
     (properties '((hidden? . #t)))))
 
-(define-public glib-next
-  (package
-    (inherit glib)
-    (name "glib")
-    (version "2.73.3")
-    (source
-     (origin
-       (inherit (package-source glib))
-       (uri
-        (string-append "mirror://gnome/sources/"
-                       name "/" (string-take version 4) "/"
-                       name "-" version ".tar.xz"))
-       (snippet
-        '(substitute* "glib/tests/spawn-test.c"
-           (("/bin/sh") "sh")))
-       (sha256
-        (base32 "1bgfch7zj1pq4rkqcibfky1470ijljyrx5pn5s5v9mk72s22n6nz"))))
-    (arguments
-     (substitute-keyword-arguments (package-arguments glib)
-       ((#:test-options test-options ''())
-        ;; Skip flaky or slow tests.
-        `(cons* "--no-suite=slow" "--no-suite=flaky" ,test-options))
-       ((#:phases phases #~%standard-phases)
-        #~(modify-phases #$phases
-            (replace 'disable-failing-tests
-              (lambda _
-                (with-directory-excursion "glib/tests"
-                  (substitute* '("unix.c" "utils.c")
-                    (("[ \t]*g_test_add_func.*;") "")))
-                ;; The "glib:gio / file" test fails with the error "No
-                ;; application is registered as handling this file" (see:
-                ;; https://gitlab.gnome.org/GNOME/glib/-/issues/2742).
-                (with-directory-excursion "gio/tests"
-                  (substitute* '("appinfo.c"
-                                 "contenttype.c"
-                                 "desktop-app-info.c"
-                                 "file.c"
-                                 "gdbus-address-get-session.c"
-                                 "gdbus-peer.c")
-                    (("[ \t]*g_test_add_func.*;") "")))
-
-                #$@(if (target-x86-32?)
-                       ;; Comment out parts of timer.c that fail on i686 due to
-                       ;; excess precision when building with GCC 10:
-                       ;; <https://gitlab.gnome.org/GNOME/glib/-/issues/820>.
-                       '((substitute* "glib/tests/timer.c"
-                           (("^  g_assert_cmpuint \\(micros.*" all)
-                            (string-append "//" all "\n"))
-                           (("^  g_assert_cmpfloat \\(elapsed, ==.*" all)
-                            (string-append "//" all "\n"))))
-                       '())))))))
-    (native-inputs
-     (modify-inputs (package-native-inputs glib)
-       (append desktop-file-utils)))
-    (propagated-inputs
-     (modify-inputs (package-propagated-inputs glib)
-       (replace "pcre" pcre2)))))
-
 (define-public glib-with-documentation
   ;; glib's doc must be built in a separate package since it requires gtk-doc,
   ;; which in turn depends on glib.
-  (package/inherit glib
-    (properties (alist-delete 'hidden? (package-properties glib)))
-    (outputs (cons "doc" (package-outputs glib))) ; 20 MiB of GTK-Doc reference
-    (native-inputs
-     (modify-inputs (package-native-inputs glib)
-       (prepend docbook-xml-4.2
-                docbook-xml
-                docbook-xsl
-                gtk-doc
-                libxml2
-                libxslt)))
-    (arguments
-     (substitute-keyword-arguments (package-arguments glib)
-       ((#:configure-flags flags ''())
-        #~(cons "-Dgtk_doc=true"
-                (delete "-Dman=false" #$flags)))
-       ((#:phases phases)
-        #~(modify-phases #$phases
-            (add-after 'install 'move-doc
-              (lambda _
-                (let ((html "/share/gtk-doc"))
-                  (mkdir-p (string-append #$output:doc "/share"))
-                  (rename-file
-                   (string-append #$output html)
-                   (string-append #$output:doc html)))))))))))
+  (let ((base glib))
+    (package/inherit base
+      (properties (alist-delete 'hidden? (package-properties base)))
+      (outputs (cons "doc" (package-outputs base))) ; 20 MiB of GTK-Doc reference
+      (native-inputs
+       `(("docbook-xml-4.2" ,docbook-xml-4.2)
+         ("docbook-xml-4.5" ,docbook-xml)
+         ("docbook-xsl" ,docbook-xsl)
+         ("gtk-doc" ,gtk-doc)
+         ("libxml2" ,libxml2)
+         ("xsltproc" ,libxslt)
+         ,@(package-native-inputs base)))
+      (arguments
+       (substitute-keyword-arguments (package-arguments base)
+         ((#:configure-flags flags ''())
+          #~(cons "-Dgtk_doc=true"
+                  (delete "-Dman=false" #$flags)))
+         ((#:phases phases)
+          #~(modify-phases #$phases
+              (add-after 'unpack 'patch-docbook-xml
+                (lambda* (#:key inputs #:allow-other-keys)
+                  (with-directory-excursion "docs"
+                    (substitute* (find-files "." "\\.xml$")
+                      (("http://www.oasis-open.org/docbook/xml/4\\.5/")
+                       (string-append (assoc-ref inputs "docbook-xml-4.5")
+                                      "/xml/dtd/docbook/"))
+                      (("http://www.oasis-open.org/docbook/xml/4\\.2/")
+                       (string-append (assoc-ref inputs "docbook-xml-4.2")
+                                      "/xml/dtd/docbook/"))))))
+              (add-after 'install 'move-doc
+                (lambda* (#:key outputs #:allow-other-keys)
+                  (let* ((out (assoc-ref outputs "out"))
+                         (doc (assoc-ref outputs "doc"))
+                         (html (string-append "/share/gtk-doc")))
+                    (mkdir-p (string-append doc "/share"))
+                    (rename-file
+                     (string-append out html)
+                     (string-append doc html))))))))))))
 
 (define (python-extension-suffix python triplet)
   "Determine the suffix for C extensions for PYTHON when compiled
@@ -607,14 +575,14 @@ be used when cross-compiling."
 (define gobject-introspection
   (package
     (name "gobject-introspection")
-    (version "1.72.0")
+    (version "1.76.1")
     (source (origin
              (method url-fetch)
              (uri (string-append "mirror://gnome/sources/"
                    "gobject-introspection/" (version-major+minor version)
                    "/gobject-introspection-" version ".tar.xz"))
              (sha256
-              (base32 "1g5aps3b20ck96ahy7fjl4nhp9nabkd9rlqd0s1qzn3111cqxzh2"))
+              (base32 "1grq6wmbi2nbnwffgvsljd481zm6darnk12dvkf02m9lcjzphq8r"))
              (patches (search-patches
                        "gobject-introspection-cc.patch"
                        "gobject-introspection-girepository.patch"
@@ -708,10 +676,7 @@ provide bindings to call into the C library.")
               (patches (search-patches
                         "gobject-introspection-cc-1.72.patch"
                         "gobject-introspection-girepository.patch"
-                        "gobject-introspection-absolute-shlib-path-1.72.patch"))))
-    (propagated-inputs
-     (modify-inputs (package-propagated-inputs gobject-introspection)
-       (replace "glib" glib-next)))))
+                        "gobject-introspection-absolute-shlib-path-1.72.patch"))))))
 
 (define intltool
   (package
@@ -970,7 +935,7 @@ libraries.")
 (define glibmm
   (package
     (name "glibmm")
-    (version "2.72.1")
+    (version "2.76.0")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://gnome/sources/glibmm/"
@@ -978,7 +943,7 @@ libraries.")
                                   "/glibmm-" version ".tar.xz"))
               (sha256
                (base32
-                "1n2w2pcpbxjbsxynmar3i5ibr7src6gnrdxb9nn57p5miai4jxia"))))
+                "1cia8vrpwzn8zwalws42mga5hi965840m5s8dvfzv55xx86dhdw6"))))
     (build-system meson-build-system)
     (outputs '("out" "doc"))
     (arguments
@@ -1019,23 +984,6 @@ libraries.")
 useful for C++.")
     (license license:lgpl2.1+)))
 
-(define-public glibmm-next
-  (package
-   (inherit glibmm)
-   (version "2.76.0")
-   (name "glibmm")
-   (source (origin
-            (method url-fetch)
-            (uri (string-append "mirror://gnome/sources/glibmm/"
-                                (version-major+minor version)
-                                "/glibmm-" version ".tar.xz"))
-            (sha256
-             (base32
-              "1cia8vrpwzn8zwalws42mga5hi965840m5s8dvfzv55xx86dhdw6"))))
-   (propagated-inputs
-    (modify-inputs (package-propagated-inputs glibmm)
-      (replace "glib" glib-next)))))
-
  (define-public glibmm-2.64
    (package
     (inherit glibmm)
@@ -1057,7 +1005,7 @@ useful for C++.")
 (define-public python-pygobject
   (package
     (name "python-pygobject")
-    (version "3.42.2")
+    (version "3.44.1")
     (source
      (origin
        (method url-fetch)
@@ -1066,7 +1014,7 @@ useful for C++.")
                            "/pygobject-" version ".tar.xz"))
        (sha256
         (base32
-         "0my95gjnps093inzznbipkhf25cffbc32v9is2fq8wvh59g6ks5d"))
+         "042pmpyaz7bsbr68znnwdqyhs3j3cajib0k45v1hrs8v6b8has1w"))
        (modules '((guix build utils)))
        (snippet
         '(begin
diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index 11085ecc80..e3a74841d7 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -2245,7 +2245,7 @@ offline sources, providing a centralized place for managing your contacts.")
            xorg-server-for-tests))
     (propagated-inputs
      ;; Required by gnome-desktop-3.0.pc.
-     (list gsettings-desktop-schemas-next
+     (list gsettings-desktop-schemas
            gtk
            gtk+
            iso-codes
@@ -2680,7 +2680,7 @@ on the GNOME Desktop with a single simple application.")
 (define-public gsettings-desktop-schemas
   (package
     (name "gsettings-desktop-schemas")
-    (version "42.0")
+    (version "44.0")
     (source
      (origin
        (method url-fetch)
@@ -2689,7 +2689,7 @@ on the GNOME Desktop with a single simple application.")
                            name "-" version ".tar.xz"))
        (sha256
         (base32
-         "1li3fcqwnw20f4j0i21i88fygm0hli8gmzkn4apgf8ynkrd371k6"))))
+         "03pc3wlfmf07586x89h63fr42pdpvqx64ak4ks298nchmmff8bgb"))))
     (build-system meson-build-system)
     (arguments
      `(#:phases (modify-phases %standard-phases
@@ -2716,21 +2716,6 @@ on the GNOME Desktop with a single simple application.")
 schemas for settings shared by various components of the GNOME desktop.")
     (license license:lgpl2.1+)))
 
-(define-public gsettings-desktop-schemas-next
-  (package
-    (inherit gsettings-desktop-schemas)
-    (name "gsettings-desktop-schemas-next") ;to avoid propagation conflicts
-    (version "42.0")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (string-append "mirror://gnome/sources/" name "/"
-                           (version-major version)  "/"
-                           name "-" version ".tar.xz"))
-       (sha256
-        (base32
-         "1li3fcqwnw20f4j0i21i88fygm0hli8gmzkn4apgf8ynkrd371k6"))))))
-
 (define-public python-liblarch
   (package
     (name "python-liblarch")
@@ -2915,39 +2900,6 @@ GNOME and KDE desktops to the icon names proposed in the specification.")
 guidelines.")
     (license license:public-domain)))
 
-(define-public shared-mime-info
-  (package
-    (name "shared-mime-info")
-    (version "1.15")
-    (source (origin
-             (method url-fetch)
-             (uri (string-append
-                   "https://gitlab.freedesktop.org/xdg/shared-mime-info/uploads/"
-                   "b27eb88e4155d8fccb8bb3cd12025d5b/shared-mime-info-" version
-                   ".tar.xz"))
-             (sha256
-              (base32
-               "146vynj78wcwdq0ms52jzm1r4m6dzi1rhyh3h4xyb6bw8ckv10pl"))))
-    (build-system gnu-build-system)
-    (arguments
-     ;; The build system appears not to be parallel-safe.
-     '(#:parallel-build? #f))
-    (inputs
-     (list glib libxml2))
-    (native-inputs
-     `(("gettext" ,gettext-minimal)
-       ("itstool" ,itstool)
-       ("pkg-config" ,pkg-config)))
-    (home-page "https://www.freedesktop.org/wiki/Software/shared-mime-info")
-    (synopsis "Database of common MIME types")
-    (description
-     "The shared-mime-info package contains the core database of common types
-and the update-mime-database command used to extend it.  It requires glib2 to
-be installed for building the update command.  Additionally, it uses intltool
-for translations, though this is only a dependency for the maintainers.  This
-database is translated at Transifex.")
-    (license license:gpl2+)))
-
 (define-public system-config-printer
   (package
     (name "system-config-printer")
@@ -5099,7 +5051,7 @@ and the GLib main loop, to integrate well with GNOME applications.")
 (define-public libsoup-minimal-2
   (package
     (inherit libsoup-minimal)
-    (version "2.74.2")
+    (version "2.74.3")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://gnome/sources/libsoup/"
@@ -5107,7 +5059,7 @@ and the GLib main loop, to integrate well with GNOME applications.")
                                   "libsoup-" version ".tar.xz"))
               (sha256
                (base32
-                "0n8is108n0dn4dw7nm2wq9rydcm1vy47w40wywfrxqazdrjjg97h"))))
+                "04rgv6hkyhgi7lak9865yxgbgky6gc635p7w6nhcbj64rx0prdz4"))))
     (arguments
      (substitute-keyword-arguments (package-arguments libsoup-minimal)
        ((#:phases phases)
@@ -6026,7 +5978,7 @@ services for numerous locations.")
            geoclue
            geocode-glib-with-libsoup2
            gnome-desktop
-           gsettings-desktop-schemas-next
+           gsettings-desktop-schemas
            lcms
            libcanberra
            libgudev
@@ -7961,7 +7913,7 @@ to display dialog boxes from the commandline and shell scripts.")
            python-dbusmock
            tini))                       ;acting as init (zombie reaper)
     (propagated-inputs
-     (list gsettings-desktop-schemas-next ;required by libmutter.pc
+     (list gsettings-desktop-schemas      ;required by libmutter.pc
            gtk+                           ;required by libmutter.pc
            ;; mutter-clutter-1.0.pc and mutter-cogl-1.0.pc refer to these:
            at-spi2-core
@@ -10003,7 +9955,7 @@ associations for GNOME.")
            bash-minimal
            geoclue
            gjs
-           gsettings-desktop-schemas-next
+           gsettings-desktop-schemas
            gtk
            libadwaita
            libgweather4))
@@ -10805,7 +10757,7 @@ handling the startup notification side.")
            python
            vala))
     (inputs
-     (list gsettings-desktop-schemas-next
+     (list gsettings-desktop-schemas
            gtksourceview
            libadwaita
            libgee
@@ -12937,7 +12889,7 @@ GObject introspection bindings.")
     (propagated-inputs
      (list polkit))
     (inputs
-     (list glib-next
+     (list glib
            gtk
            json-glib
            libadwaita
@@ -12946,7 +12898,7 @@ GObject introspection bindings.")
            polkit))
     (native-inputs
      (list gettext-minimal
-           `(,glib-next "bin")          ;for gdbus-codegen, etc.
+           `(,glib "bin")          ;for gdbus-codegen, etc.
            itstool
            libxml2
            pkg-config))
@@ -13214,7 +13166,7 @@ your data.")
                    (substitute* "build-aux/meson/meson_post_install.py"
                      (("gtk-update-icon-cache") (which "true"))))))))
     (native-inputs
-     (list `(,glib-next "bin")
+     (list `(,glib "bin")
            gettext-minimal
            itstool
            pkg-config))
@@ -13222,7 +13174,7 @@ your data.")
      (list json-glib
            jsonrpc-glib
            gettext-minimal
-           glib-next
+           glib
            gsettings-desktop-schemas
            gspell
            libgda
diff --git a/gnu/packages/gnuzilla.scm b/gnu/packages/gnuzilla.scm
index 3b8df8f249..28df346281 100644
--- a/gnu/packages/gnuzilla.scm
+++ b/gnu/packages/gnuzilla.scm
@@ -63,6 +63,7 @@
   #:use-module (gnu packages base)
   #:use-module (gnu packages bash)
   #:use-module (gnu packages databases)
+  #:use-module (gnu packages freedesktop)
   #:use-module (gnu packages glib)
   #:use-module (gnu packages gtk)
   #:use-module (gnu packages gnome)
diff --git a/gnu/packages/graphics.scm b/gnu/packages/graphics.scm
index da49f23f1f..b553f04f0b 100644
--- a/gnu/packages/graphics.scm
+++ b/gnu/packages/graphics.scm
@@ -882,9 +882,9 @@ exception-handling library.")
     (source (origin
               (method git-fetch)
               (uri (git-reference
-                    (url "https://gitlab.com/inkscape/lib2geom.git")
+                    (url "https://gitlab.com/inkscape/lib2geom")
                     (commit version)))
-              (file-name (git-file-name name version))
+              (file-name (git-file-name "lib2geom" version))
               (sha256
                (base32
                 "0dq981g894hmvhd6rmfl1w32mksg9hpvpjs1qvfxrnz87rhkknj8"))))
diff --git a/gnu/packages/gstreamer.scm b/gnu/packages/gstreamer.scm
index 075f424560..12d4b52f15 100644
--- a/gnu/packages/gstreamer.scm
+++ b/gnu/packages/gstreamer.scm
@@ -461,7 +461,7 @@ the GStreamer multimedia framework.")
 (define-public gstreamer
   (package
     (name "gstreamer")
-    (version "1.22.2")
+    (version "1.22.3")
     (source
      (origin
        (method url-fetch)
@@ -470,7 +470,7 @@ the GStreamer multimedia framework.")
              version ".tar.xz"))
        (sha256
         (base32
-         "08cfz2vkf494rsg0bn75px26fxs3syvxnsc9lj5n074j0cvfgbxj"))))
+         "0x2rdl6vfpbr7wnh1nk0rllw28cgx0js4g9vxfank7rz0naspzlz"))))
     (build-system meson-build-system)
     (arguments
      (list #:disallowed-references (list python)
@@ -542,7 +542,7 @@ This package provides the core library and elements.")
 (define-public gst-plugins-base
   (package
     (name "gst-plugins-base")
-    (version "1.22.2")
+    (version "1.22.3")
     (source
      (origin
       (method url-fetch)
@@ -550,7 +550,7 @@ This package provides the core library and elements.")
                           name "-" version ".tar.xz"))
       (sha256
        (base32
-        "0jcxcx4mgfjvfb3ixibwhx8j330mq3ap469w7hapm6z79q614rgb"))))
+        "1ww9xx6c4mwvgn9k56d1xfnd3i1jm4v8rfiy4f07686ll24n4n8w"))))
     (build-system meson-build-system)
     (propagated-inputs
      (list glib                     ;required by gstreamer-sdp-1.0.pc
@@ -641,7 +641,7 @@ for the GStreamer multimedia library.")
 (define-public gst-plugins-good
   (package
     (name "gst-plugins-good")
-    (version "1.22.2")
+    (version "1.22.3")
     (source
      (origin
        (method url-fetch)
@@ -650,7 +650,7 @@ for the GStreamer multimedia library.")
          "https://gstreamer.freedesktop.org/src/" name "/"
          name "-" version ".tar.xz"))
        (sha256
-        (base32 "1p8cpkk4dynglw0xswqyf57xl5fnxmb3xld71kv35cpj4nacb33w"))))
+        (base32 "0wq2f5q395vs7hnwjqpc2gysdvkgd4jmyfdszv9g9wrf795ib0dg"))))
     (build-system meson-build-system)
     (arguments
      (list
@@ -760,14 +760,14 @@ model to base your own plug-in on, here it is.")
 (define-public gst-plugins-bad
   (package
     (name "gst-plugins-bad")
-    (version "1.22.2")
+    (version "1.22.3")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://gstreamer.freedesktop.org/src/"
                                   name "/" name "-" version ".tar.xz"))
               (sha256
                (base32
-                "03rd09wsrf9xjianpnnvamb4n3lndhd4x31srqsqab20wcfaz3rx"))
+                "1n116sphawmlqyjp1b8sv07vz4rjk1zn07286w37y4l65pp8yyg1"))
               (modules '((guix build utils)))
               (snippet
                '(begin
@@ -806,13 +806,6 @@ model to base your own plug-in on, here it is.")
                           "'elements/viewfinderbin.c'], true, ],"))
                        '())
 
-                  ;; This substitution is no longer effective and can be removed.
-                  #$@(if (member (%current-system)
-                                 '("i686-linux" "aarch64-linux" "riscv64-linux"))
-                         `((("'elements/camerabin\\.c'\\]\\],")
-                            "'elements/camerabin.c'], true, ],"))
-                         '())
-
                   ;; https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/issues/1412
                   ((".*elements/dtls\\.c.*") ""))
                 (substitute* "tests/check/elements/zxing.c"
@@ -951,7 +944,7 @@ par compared to the rest.")
 (define-public gst-plugins-ugly
   (package
     (name "gst-plugins-ugly")
-    (version "1.22.2")
+    (version "1.22.3")
     (source
      (origin
        (method url-fetch)
@@ -959,7 +952,7 @@ par compared to the rest.")
         (string-append "https://gstreamer.freedesktop.org/src/"
                        name "/" name "-" version ".tar.xz"))
        (sha256
-        (base32 "1486x08bwasq6l7kc75nph5az61siq9mbgkgpw4kf1mxn16z8c4g"))))
+        (base32 "0q53snvh7kr8g7qqxy4v5ska0d78kgc5bkp6qjrnhcr9qbaqxj9x"))))
     (build-system meson-build-system)
     (arguments
      (list #:glib-or-gtk? #t         ; To wrap binaries and/or compile schemas
@@ -1008,7 +1001,7 @@ think twice about shipping them.")
 (define-public gst-libav
   (package
     (name "gst-libav")
-    (version "1.22.2")
+    (version "1.22.3")
     (source
      (origin
        (method url-fetch)
@@ -1017,7 +1010,7 @@ think twice about shipping them.")
          "https://gstreamer.freedesktop.org/src/" name "/"
          name "-" version ".tar.xz"))
        (sha256
-        (base32 "1zfg7giwampmjxkqr5pqy66vck42b0akmwby661brwz8iy3zkapw"))))
+        (base32 "08x929yhjd2wpy05146fnqv6p2hw58ha079bwfkp2hwbh02wii9f"))))
     (build-system meson-build-system)
     (native-inputs (list perl pkg-config python-wrapper ruby))
     (inputs (list ffmpeg))
@@ -1031,7 +1024,7 @@ decoders, muxers, and demuxers provided by FFmpeg.")
 (define-public gst-editing-services
   (package
     (name "gst-editing-services")
-    (version "1.22.2")
+    (version "1.22.3")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -1039,7 +1032,7 @@ decoders, muxers, and demuxers provided by FFmpeg.")
                     "gst-editing-services-" version ".tar.xz"))
               (sha256
                (base32
-                "1gyfw11ns2la1cm6gvvvv5qj3q5gcvcypc3wk8kdwmrqzij18fs5"))))
+                "18nfq3av5ksz17048l2b4r4zbh11yd0yq2asx0jy3c894pkbr98m"))))
     (build-system meson-build-system)
     (arguments
      (list
@@ -1099,7 +1092,7 @@ binary, but none of the actual plugins.")))
 (define-public python-gst
   (package
     (name "python-gst")
-    (version "1.22.2")
+    (version "1.22.3")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -1107,7 +1100,7 @@ binary, but none of the actual plugins.")))
                     "gst-python-" version ".tar.xz"))
               (sha256
                (base32
-                "1bak46bj92gyz613m99mnl0yw0qhbhq5dfxifnvldgp45kcb7wmy"))))
+                "073kii36ncgsyq0b5njbsvprrg1k3kmydr3dxwiccjv3pvxd7gkh"))))
     (build-system meson-build-system)
     (arguments
      (list
diff --git a/gnu/packages/gtk.scm b/gnu/packages/gtk.scm
index 848ed91d96..694b7ea084 100644
--- a/gnu/packages/gtk.scm
+++ b/gnu/packages/gtk.scm
@@ -361,7 +361,7 @@ applications.")
 (define-public pango
   (package
     (name "pango")
-    (version "1.50.10")
+    (version "1.50.14")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://gnome/sources/pango/"
@@ -370,7 +370,7 @@ applications.")
               (patches (search-patches "pango-skip-libthai-test.patch"))
               (sha256
                (base32
-                "0rj9sszflckk8gj47ppirpndpp3mzsx97l64lalj8kc580g2ypby"))))
+                "1s41sprfgkc944fva36zjmkmdpv8hn1bdpyg55xc4663pw2z4rqx"))))
     (build-system meson-build-system)
     (arguments
      '(#:glib-or-gtk? #t             ; To wrap binaries and/or compile schemas
@@ -614,6 +614,11 @@ printing and other features typical of a source code editor.")
                ;; Tests require a running X server.
                (system (string-append Xvfb " :1 &"))
                (setenv "DISPLAY" ":1")
+               ;; Use an X11 setup to find the display.
+               (setenv "GDK_BACKEND" "x11")
+               ;; Avoid spawning (and failing to connect to) the accessiblity
+               ;; bus.
+               (setenv "GTK_A11Y" "none")
                ;; For the missing /etc/machine-id.
                (setenv "DBUS_FATAL_WARNINGS" "0")))))))
     (native-inputs
@@ -630,7 +635,7 @@ printing and other features typical of a source code editor.")
      ;; gtksourceview-5.pc refers to all these.
      (list fontconfig
            fribidi
-           glib-next
+           glib
            gtk
            libxml2
            pango
@@ -897,6 +902,7 @@ is part of the GNOME accessibility project.")
                 "1nn6kks1zyvb5xikr9y2k7r9bwjy1g4b0m0s66532bclymbwfamc"))
               (patches (search-patches "gtk2-respect-GUIX_GTK2_PATH.patch"
                                        "gtk2-respect-GUIX_GTK2_IM_MODULE_FILE.patch"
+                                       "gtk2-harden-list-store.patch"
                                        "gtk2-theme-paths.patch"
                                        "gtk2-fix-builder-test.patch"))))
     (build-system gnu-build-system)
@@ -1106,7 +1112,7 @@ application suites.")
 (define-public gtk
   (package
     (name "gtk")
-    (version "4.8.1")
+    (version "4.10.3")
     (source
      (origin
        (method url-fetch)
@@ -1114,9 +1120,11 @@ application suites.")
                            (version-major+minor version)  "/"
                            name "-" version ".tar.xz"))
        (sha256
-        (base32 "1za2nyqqs2lrbss61gfw17qba2f0w6a119m1xk4d0fx2k3gdis2w"))
+        (base32 "1aff06l9v40j16s4s0qvdbj8cs54qxnh41d7w2v7wdwyswd48ia5"))
        (patches
-        (search-patches "gtk4-respect-GUIX_GTK4_PATH.patch"))))
+        (search-patches "gtk4-respect-GUIX_GTK4_PATH.patch"))
+       (modules '((guix build utils)))
+       (snippet #~(begin (delete-file-recursively "subprojects/gi-docgen")))))
     (build-system meson-build-system)
     (outputs '("out" "bin" "doc"))
     (arguments
@@ -1140,6 +1148,8 @@ application suites.")
                             ;; Use the same test options as upstream uses for
                             ;; their CI.
                             "--suite=gtk"
+                            "--no-suite=failing"
+                            "--no-suite=flaky"
                             "--no-suite=gsk-compare-broadway")
       #:phases
       #~(modify-phases %standard-phases
@@ -1246,6 +1256,7 @@ application suites.")
            cups                         ;for CUPS print-backend
            ffmpeg                       ;for ffmpeg media-backend
            fribidi
+           gi-docgen
            gstreamer                    ;for gstreamer media-backend
            gst-plugins-bad              ;provides gstreamer-player
            gst-plugins-base             ;provides gstreamer-gl
@@ -2931,11 +2942,11 @@ Unix desktop environment under X11 as well as Wayland.")
                             (substitute* "meson.build"
                               (("gtk_update_icon_cache: true")
                                "gtk_update_icon_cache: false")))))))
-    (native-inputs (list `(,glib-next "bin")
+    (native-inputs (list `(,glib "bin")
                          gobject-introspection
                          pkg-config
                          vala))
-    (inputs (list glib-next gtk libadwaita))
+    (inputs (list glib gtk libadwaita))
     (home-page "https://gitlab.gnome.org/GNOME/libpanel")
     (synopsis "Dock and panel library for GTK 4")
     (description "Libpanel provides a library to create IDE-like applications
diff --git a/gnu/packages/guile-xyz.scm b/gnu/packages/guile-xyz.scm
index 9c0b642b97..854ea6eae0 100644
--- a/gnu/packages/guile-xyz.scm
+++ b/gnu/packages/guile-xyz.scm
@@ -2330,7 +2330,7 @@ capabilities.")
               (setenv "DISPLAY" ":1")
               #t)))))
     (inputs
-     (list guile-3.0 guile-lib glib-next))
+     (list guile-3.0 guile-lib glib))
     (native-inputs
      (list autoconf
            automake
diff --git a/gnu/packages/kde-games.scm b/gnu/packages/kde-games.scm
index 9be889f6aa..73fb88c4cb 100644
--- a/gnu/packages/kde-games.scm
+++ b/gnu/packages/kde-games.scm
@@ -30,7 +30,7 @@
   #:use-module (gnu packages bash)
   #:use-module (gnu packages compression)
   #:use-module (gnu packages gl)
-  #:use-module ((gnu packages gnome) #:select (shared-mime-info))
+  #:use-module ((gnu packages freedesktop) #:select (shared-mime-info))
   #:use-module (gnu packages kde)
   #:use-module (gnu packages kde-frameworks)
   #:use-module (gnu packages perl)
diff --git a/gnu/packages/kde-multimedia.scm b/gnu/packages/kde-multimedia.scm
index e3de6db432..6460345c47 100644
--- a/gnu/packages/kde-multimedia.scm
+++ b/gnu/packages/kde-multimedia.scm
@@ -35,6 +35,7 @@
   #:use-module (gnu packages compression)
   #:use-module (gnu packages cdrom)
   #:use-module (gnu packages docbook)
+  #:use-module (gnu packages freedesktop)
   #:use-module (gnu packages glib)
   #:use-module (gnu packages gtk)
   #:use-module (gnu packages gnome)
diff --git a/gnu/packages/kde-pim.scm b/gnu/packages/kde-pim.scm
index 6f3cbf2999..dc0533d24b 100644
--- a/gnu/packages/kde-pim.scm
+++ b/gnu/packages/kde-pim.scm
@@ -34,6 +34,7 @@
   #:use-module (gnu packages cyrus-sasl)
   #:use-module (gnu packages databases)
   #:use-module (gnu packages documentation)
+  #:use-module (gnu packages freedesktop)
   #:use-module (gnu packages glib)
   #:use-module (gnu packages gnome)
   #:use-module (gnu packages gnupg)
diff --git a/gnu/packages/kde-utils.scm b/gnu/packages/kde-utils.scm
index 5774fa9910..35ad20f541 100644
--- a/gnu/packages/kde-utils.scm
+++ b/gnu/packages/kde-utils.scm
@@ -35,6 +35,7 @@
   #:use-module (gnu packages compression)
   #:use-module (gnu packages crypto)
   #:use-module (gnu packages cups)
+  #:use-module (gnu packages freedesktop)
   #:use-module (gnu packages glib) ; dbus for tests
   #:use-module (gnu packages gnome)
   #:use-module (gnu packages gstreamer)
diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm
index 8c30e49d8f..a4e25e2ee3 100644
--- a/gnu/packages/maths.scm
+++ b/gnu/packages/maths.scm
@@ -122,6 +122,7 @@
   #:use-module (gnu packages flex)
   #:use-module (gnu packages fltk)
   #:use-module (gnu packages fontutils)
+  #:use-module (gnu packages freedesktop)
   #:use-module (gnu packages gettext)
   #:use-module (gnu packages gcc)
   #:use-module (gnu packages gd)
diff --git a/gnu/packages/mp3.scm b/gnu/packages/mp3.scm
index 7ede16f4bb..85f45d3271 100644
--- a/gnu/packages/mp3.scm
+++ b/gnu/packages/mp3.scm
@@ -40,6 +40,7 @@
   #:use-module (gnu packages check)
   #:use-module (gnu packages cmake)
   #:use-module (gnu packages compression)
+  #:use-module (gnu packages freedesktop)
   #:use-module (gnu packages gettext)
   #:use-module (gnu packages ghostscript)
   #:use-module (gnu packages gnome)
diff --git a/gnu/packages/patches/glib-skip-failing-test.patch b/gnu/packages/patches/glib-skip-failing-test.patch
index c7706aaa74..3fde5cb1e2 100644
--- a/gnu/packages/patches/glib-skip-failing-test.patch
+++ b/gnu/packages/patches/glib-skip-failing-test.patch
@@ -10,12 +10,13 @@ diff --git a/gio/tests/meson.build b/gio/tests/meson.build
 index a926ae0..4fdbe7a 100644
 --- a/gio/tests/meson.build
 +++ b/gio/tests/meson.build
-@@ -317,10 +317,6 @@ if host_machine.system() != 'windows'
+@@ -317,11 +317,6 @@ if host_machine.system() != 'windows'
          'extra_sources' : [extra_sources, gdbus_test_codegen_generated, gdbus_test_codegen_generated_interface_info],
          'c_args' : ['-DGLIB_VERSION_MIN_REQUIRED=GLIB_VERSION_2_32'],
        },
 -      'gdbus-threading' : {
 -        'extra_sources' : extra_sources,
+-        'extra_programs': extra_programs,
 -        'suite' : ['slow'],
 -      },
        'gmenumodel' : {
diff --git a/gnu/packages/patches/gtk2-harden-list-store.patch b/gnu/packages/patches/gtk2-harden-list-store.patch
new file mode 100644
index 0000000000..f49dc3bc77
--- /dev/null
+++ b/gnu/packages/patches/gtk2-harden-list-store.patch
@@ -0,0 +1,42 @@
+Backport the implementation of gtk_list_store_iter_is_valid from gtk+-3.
+
+Index: gtk+-2.24.33/gtk/gtkliststore.c
+===================================================================
+--- gtk+-2.24.33.orig/gtk/gtkliststore.c
++++ gtk+-2.24.33/gtk/gtkliststore.c
+@@ -1195,16 +1195,31 @@ gboolean
+ gtk_list_store_iter_is_valid (GtkListStore *list_store,
+                               GtkTreeIter  *iter)
+ {
++  GSequenceIter *seq_iter;
++
+   g_return_val_if_fail (GTK_IS_LIST_STORE (list_store), FALSE);
+   g_return_val_if_fail (iter != NULL, FALSE);
+ 
+-  if (!VALID_ITER (iter, list_store))
+-    return FALSE;
++  /* can't use VALID_ITER() here, because iter might point
++   * to random memory.
++   *
++   * We MUST NOT dereference it.
++   */
+ 
+-  if (g_sequence_iter_get_sequence (iter->user_data) != list_store->seq)
++  if (iter == NULL ||
++      iter->user_data == NULL ||
++      list_store->stamp != iter->stamp)
+     return FALSE;
+ 
+-  return TRUE;
++  for (seq_iter = g_sequence_get_begin_iter (list_store->seq);
++       !g_sequence_iter_is_end (seq_iter);
++       seq_iter = g_sequence_iter_next (seq_iter))
++    {
++      if (seq_iter == iter->user_data)
++        return TRUE;
++    }
++
++  return FALSE;
+ }
+ 
+ static gboolean real_gtk_list_store_row_draggable (GtkTreeDragSource *drag_source,
diff --git a/gnu/packages/patches/shared-mime-info-xdgmime-path.patch b/gnu/packages/patches/shared-mime-info-xdgmime-path.patch
new file mode 100644
index 0000000000..27c578f3fa
--- /dev/null
+++ b/gnu/packages/patches/shared-mime-info-xdgmime-path.patch
@@ -0,0 +1,22 @@
+Adapted from <https://gitlab.freedesktop.org/xdg/shared-mime-info/-/merge_requests/182>.
+
+diff --git a/meson.build b/meson.build
+index 3c75424..7058562 100644
+--- a/meson.build
++++ b/meson.build
+@@ -26,11 +26,11 @@ xmlto   = find_program('xmlto', required: false)
+ ###############################################################################
+ # Find xdgmime
+ 
+-xdgmime = get_option('xdgmime-path') / 'src'
++xdgmime = get_option('xdgmime-path')
+ 
+-xdgmime_print_mime_data = find_program(xdgmime/'print-mime-data', required: false)
+-xdgmime_test_mime_data  = find_program(xdgmime/'test-mime-data', required: false)
+-xdgmime_test_mime       = find_program(xdgmime/'test-mime', required: false)
++xdgmime_print_mime_data = find_program('print-mime-data', xdgmime/'print-mime-data', required: false)
++xdgmime_test_mime_data  = find_program('test-mime-data', xdgmime/'test-mime-data', required: false)
++xdgmime_test_mime       = find_program('test-mime', xdgmime/'test-mime', required: false)
+ xdgmime_found = (
+     xdgmime_print_mime_data.found() and
+     xdgmime_test_mime_data.found()  and
diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm
index e0dca646ac..9a2c2ee0bb 100644
--- a/gnu/packages/ruby.scm
+++ b/gnu/packages/ruby.scm
@@ -62,6 +62,7 @@
   #:use-module (gnu packages curl)
   #:use-module (gnu packages databases)
   #:use-module (gnu packages dbm)
+  #:use-module (gnu packages freedesktop)
   #:use-module (gnu packages rails)
   #:use-module (gnu packages readline)
   #:use-module (gnu packages autotools)
diff --git a/gnu/packages/telegram.scm b/gnu/packages/telegram.scm
index aa01c2f692..d56409cbe9 100644
--- a/gnu/packages/telegram.scm
+++ b/gnu/packages/telegram.scm
@@ -319,8 +319,8 @@
         (list abseil-cpp-cxxstd17
               crc32c
               ffmpeg
-              glib-next
-              glibmm-next
+              glib
+              glibmm
               libdrm
               libglvnd
               libjpeg-turbo
@@ -479,7 +479,7 @@ Telegram project, for its use in telegram desktop client.")
                (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 `(,glib-next "bin")
+     (list `(,glib "bin")
            `(,gtk+ "bin")
            pkg-config
            python-wrapper))
@@ -491,8 +491,8 @@ Telegram project, for its use in telegram desktop client.")
            fcitx-qt5
            fcitx5-qt
            ffmpeg
-           glib-next
-           glibmm-next
+           glib
+           glibmm
            gtk+
            hime
            hunspell
diff --git a/guix/profiles.scm b/guix/profiles.scm
index d0006dc2bf..605d43f111 100644
--- a/guix/profiles.scm
+++ b/guix/profiles.scm
@@ -1562,7 +1562,7 @@ MIME type."
   "Return a derivation that builds the @file{mime.cache} database from manifest
 entries.  It's used to query the MIME type of a given file."
   (define shared-mime-info  ; lazy reference
-    (module-ref (resolve-interface '(gnu packages gnome)) 'shared-mime-info))
+    (module-ref (resolve-interface '(gnu packages freedesktop)) 'shared-mime-info))
 
   (mlet %store-monad ((glib (manifest-lookup-package manifest "glib")))
     (define build