diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index 6ccbe28560..359cadd678 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -6336,7 +6336,7 @@ easy, safe, and automatic.")
 (define-public tracker
   (package
     (name "tracker")
-    (version "2.0.4")
+    (version "2.2.2")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://gnome/sources/tracker/"
@@ -6344,35 +6344,26 @@ easy, safe, and automatic.")
                                   "tracker-" version ".tar.xz"))
               (sha256
                (base32
-                "1mfc5lv820kr7ssi7hldn25gmshh65k19kh478qjsnb64sshsbyf"))))
-    (build-system glib-or-gtk-build-system)
+                "1rp2c6k7ajcm553p9kpni87zgi9aplm3s01rl7pk575az5i399y6"))))
+    (build-system meson-build-system)
     (arguments
-     `(#:phases
+     `(#:glib-or-gtk? #t
+       #:configure-flags
+       ;; Otherwise, the RUNPATH will lack the final path component.
+       (list (string-append "-Dc_link_args=-Wl,-rpath="
+                            (assoc-ref %outputs "out") "/lib:"
+                            (assoc-ref %outputs "out") "/lib/tracker-2.0"))
+       #:phases
        (modify-phases %standard-phases
          (add-after 'unpack 'disable-broken-tests
            (lambda _
-             ;; FIXME: Most of these fail with GLib-GIO-FATAL-ERROR: Settings
-             ;; schema 'org.freedesktop.Tracker.FTS' is not installed.
-             (substitute* "tests/libtracker-miner/Makefile.in"
-               (("tracker-file-notifier-test\\$\\(EXEEXT\\)") "")
-               (("tracker-miner-fs-test\\$\\(EXEEXT\\)") "")
-               (("tracker-monitor-test\\$\\(EXEEXT\\)") ""))
-             (substitute* "tests/libtracker-fts/Makefile.in"
-               (("tracker-fts-test\\$\\(EXEEXT\\)") ""))
-             (substitute* "tests/libtracker-data/Makefile.in"
-               (("tracker-ontology\\$\\(EXEEXT\\)") "")
-               (("tracker-ontology-change\\$\\(EXEEXT\\)") "")
-               (("tracker-backup\\$\\(EXEEXT\\)") "")
-               (("tracker-sparql-blank\\$\\(EXEEXT\\)") "")
-               (("tracker-sparql\\$\\(EXEEXT\\)") ""))
              ;; These fail because the SPARQL backend could not be loaded.
              ;; That's because /etc/machine-id is missing, but
              ;; DBUS_FATAL_WARNINGS does not help here.
-             (substitute* "tests/libtracker-sparql/Makefile.in"
-               (("tracker-gb-737023-test\\$\\(EXEEXT\\)") "")
-               (("tracker-sparql-test\\$\\(EXEEXT\\)") ""))
-             (substitute* "tests/tracker-steroids/Makefile.in"
-               (("tracker-test\\$\\(EXEEXT\\)") ""))
+             (substitute* "tests/libtracker-sparql/meson.build"
+               (("'sparql',") ""))
+             (substitute* "tests/tracker-steroids/meson.build"
+               (("test\\(.*") ""))
              #t))
          ;; Two tests fail if LANG is not set.
          (add-before 'check 'pre-check
@@ -6382,39 +6373,30 @@ easy, safe, and automatic.")
              (setenv "DBUS_FATAL_WARNINGS" "0")
              #t)))))
     (native-inputs
-     `(("gnome-common" ,gnome-common)
+     `(("glib:bin" ,glib "bin")
+       ("gnome-common" ,gnome-common)
        ("gobject-introspection" ,gobject-introspection)
+       ("python-pygobject" ,python-pygobject)
        ("intltool" ,intltool)
        ("pkg-config" ,pkg-config)
        ("vala" ,vala)))
     (inputs
      `(("gtk+" ,gtk+)
        ("dbus" ,dbus)
-       ("gstreamer" ,gstreamer)
-       ("gst-plugins-base" ,gst-plugins-base)
        ("sqlite" ,sqlite)
        ("python" ,python)
        ("poppler" ,poppler)
-       ("libgsf" ,libgsf)
-       ("libexif" ,libexif)
        ("libpng" ,libpng)
        ("libtiff" ,libtiff)
-       ("libvorbis" ,libvorbis)
-       ("flac" ,flac)
-       ("totem-pl-parser" ,totem-pl-parser)
        ("zlib" ,zlib)
-       ("exempi" ,exempi)
        ("libxml2" ,libxml2)
-       ("upower" ,upower)
        ("libunistring" ,libunistring)
-       ("giflib" ,giflib)
        ("json-glib" ,json-glib)
        ("openjpeg" ,openjpeg-1)
-       ("libosinfo" ,libosinfo)
-       ("libcue" ,libcue)
        ("libseccomp" ,libseccomp)
        ("libsoup" ,libsoup)
-       ("libuuid" ,util-linux)))
+       ("libuuid" ,util-linux)
+       ("network-manager" ,network-manager)))
     (synopsis "Metadata database, indexer and search tool")
     (home-page "https://wiki.gnome.org/Projects/Tracker")
     (description
