Subject: [bug#48459] [PATCH 3/3] gnu: tracker: Update to 3.1.1.

From: Raghav Gururajan <[email-masked]>
Date: Sun, 16 May 2021 01:07:59 -0400

* gnu/packages/gnome.scm (tracker)[configure-flags]
(systemd_user_services,test_utils): New flags.
(docs,c_link_args): Remove flags.
[phases](adjust-tests,patch-docs): New phases.
(patch-docbook-xml,pre-check): Remove phases.
(check): Replace with custom phase.
[native-inputs]: Add asciidoc and libxslt.
---
 gnu/packages/gnome.scm | 62 ++++++++++++++++++++++++++++++++----------
 1 file changed, 47 insertions(+), 15 deletions(-)

diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index e8be1effc5..4cc6d2a13d 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -8724,7 +8724,7 @@ easy, safe, and automatic.")
 (define-public tracker
   (package
     (name "tracker")
-    (version "2.3.5")
+    (version "3.1.1")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://gnome/sources/tracker/"
@@ -8732,22 +8732,47 @@ easy, safe, and automatic.")
                                   "tracker-" version ".tar.xz"))
               (sha256
                (base32
-                "1ixxyqjlv7pnl4j8g6b72fkbjvzfspza8y71ppkncry8i6xkr223"))))
+                "1rwafk58dm8fpfdb3yk77g0f9gxkk5dy8hm2yx26y1jlhkly4xj3"))))
     (build-system meson-build-system)
     (outputs '("out" "doc"))
     (arguments
      `(#:glib-or-gtk? #t
        #:configure-flags
        (list
-        "-Ddocs=true"
-        ;; Otherwise, the RUNPATH will lack the final path component.
-        (string-append "-Dc_link_args=-Wl,-rpath="
-                       (assoc-ref %outputs "out") "/lib:"
-                       (assoc-ref %outputs "out") "/lib/tracker-2.0"))
+        "-Dsystemd_user_services=false" ; not applicable
+        "-Dtest_utils=false")           ; disable installed tests
        #:phases
        (modify-phases %standard-phases
-         (add-after 'unpack 'patch-docbook-xml
+         (add-after 'unpack 'adjust-tests
+           (lambda* (#:key inputs #:allow-other-keys)
+             ;; Use correct shell path.
+             (substitute* "utils/trackertestutils/__main__.py"
+               (("shell =.*$")
+                (string-append "shell = '"
+                               (assoc-ref inputs "bash")
+                               "/bin/bash'")))
+             ;; These tests require python-tappy,
+             ;; which is not available.
+             (with-directory-excursion "tests"
+               (substitute* "libtracker-data/meson.build"
+                 (("[ \t]*'sparql'") ""))
+               (substitute* "meson.build"
+                 (("subdir\\('functional-tests'\\)") "")))))
+         (add-after 'unpack 'patch-docs
            (lambda* (#:key inputs #:allow-other-keys)
+             ;; Don't rename documentation directories,
+             ;; during installation.
+             (with-directory-excursion "docs/reference"
+               (substitute* (find-files "." "meson.build")
+                 (("[ \t]*module_version: tracker_api_major,")
+                  "")))
+             ;; Fix asciidoc references.
+             (with-directory-excursion "docs/manpages"
+               (substitute* "meson.build"
+                 (("/etc/asciidoc/docbook-xsl/")
+                  (string-append (assoc-ref inputs "asciidoc")
+                                 "/etc/asciidoc/docbook-xsl/"))))
+             ;; Fix docbook references.
              (with-directory-excursion "docs/reference"
                (substitute* (find-files "." "\\..*ml$")
                  (("http://www.oasis-open.org/docbook/xml/4.5/")
@@ -8759,11 +8784,16 @@ easy, safe, and automatic.")
                  (("http://www.oasis-open.org/docbook/xml/4.1.2/")
                   (string-append (assoc-ref inputs "docbook-xml-4.1.2")
                                  "/xml/dtd/docbook/"))))))
-         (add-before 'check 'pre-check
-           (lambda _
-             ;; Some tests expect to write to $HOME.
-             (setenv "HOME" "/tmp")
-             #t))
+         (replace 'check
+           (lambda* (#:key tests? #:allow-other-keys)
+             (when tests?
+               ;; Tests write to $HOME.
+               (setenv "HOME" (getcwd))
+               ;; Tests look for $XDG_RUNTIME_DIR.
+               (setenv "XDG_RUNTIME_DIR" (getcwd))
+               ;; For missing '/etc/machine-id'.
+               (setenv "DBUS_FATAL_WARNINGS" "0")
+               (invoke "dbus-launch" "ninja" "test"))))
          (add-after 'install 'move-doc
            (lambda* (#:key outputs #:allow-other-keys)
              (let* ((out (assoc-ref outputs "out"))
@@ -8773,7 +8803,8 @@ easy, safe, and automatic.")
                 (string-append out "/share/gtk-doc")
                 (string-append doc "/share/gtk-doc"))))))))
     (native-inputs
-     `(("docbook-xml-4.1.2" ,docbook-xml-4.1.2)
+     `(("asciidoc" ,asciidoc)
+       ("docbook-xml-4.1.2" ,docbook-xml-4.1.2)
        ("docbook-xml-4.3" ,docbook-xml-4.3)
        ("docbook-xml-4.5" ,docbook-xml)
        ("docbook-xsl" ,docbook-xsl)
@@ -8784,7 +8815,8 @@ easy, safe, and automatic.")
        ("intltool" ,intltool)
        ("pkg-config" ,pkg-config)
        ("python" ,python-wrapper)       ; she-bangs
-       ("vala" ,vala)))
+       ("vala" ,vala)
+       ("xsltproc" ,libxslt)))
     (inputs
      `(("bash-completion" ,bash-completion) ; bash-completions
        ("dbus" ,dbus)
-- 
2.31.1