Subject: [bug#56872] [PATCH] gnu: mu: Update to 1.8.7.

From: muradm <[email-masked]>
Date: Mon, 1 Aug 2022 16:11:59 +0300

since 1.8:
* mu is built with meson build system.
* guile support is deprecated.

* gnu/packages/mail.scm (mu): Update to 1.8.7.
[source]: Changing from release tarball to checkout.
[build-system]: Changing to meson-build-system.
[native-inputs]: Removed glib:bin and tzdata, added gnupg amd texinfo.
[inputs]: Removed guile added coreutils (for /bin/rm command).
[arguments]: Removed obsolete 'patch-configure, 'fix-ffi and
'check-tz-setup phases. Added 'patch-bin-in-sources for
introduced /bin/rm command. Renamed and updated 'patch-bin-sh-in-tests
to 'patch-bin-in-tests.
---
 gnu/packages/mail.scm | 68 ++++++++++++++++++-------------------------
 1 file changed, 28 insertions(+), 40 deletions(-)

diff --git a/gnu/packages/mail.scm b/gnu/packages/mail.scm
index 556c5b4305..b57099de4d 100644
--- a/gnu/packages/mail.scm
+++ b/gnu/packages/mail.scm
@@ -1161,57 +1161,45 @@ (define-public emacs-mew
 (define-public mu
   (package
     (name "mu")
-    (version "1.6.11")
+    (version "1.8.7")
     (source (origin
-              (method url-fetch)
-              (uri (string-append "https://github.com/djcb/mu/releases/"
-                                  "download/" version "/"
-                                  "mu-" version ".tar.xz"))
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/djcb/mu")
+                    (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
               (sha256
                (base32
-                "13gchks9znyw0axw1wlks7f7h4442rfagmj7kx0jm3qhvi0b5sk0"))))
-    (build-system gnu-build-system)
+                "0yfbw234yqnqfnsn5bj1hqwpy78pkxn05vl18z8nvsqdmpzal4gx"))))
+    (build-system meson-build-system)
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("glib" ,glib "bin")             ; for gtester
-       ("emacs" ,emacs-minimal)
-       ("tzdata" ,tzdata-for-tests)))   ; for mu/test/test-mu-query.c
+     (list pkg-config
+           emacs-minimal
+           gnupg                              ; for tests
+           texinfo))
     (inputs
-     (list xapian guile-3.0 glib gmime))
+     (list coreutils glib gmime xapian))
     (arguments
-     `(#:modules ((guix build gnu-build-system)
-                  (guix build utils)
-                  (guix build emacs-utils))
-       #:imported-modules (,@%gnu-build-system-modules
+     `(#:modules ((guix build meson-build-system)
+                  (guix build emacs-utils)
+                  (guix build utils))
+       #:imported-modules (,@%meson-build-system-modules
                            (guix build emacs-utils))
        #:phases
        (modify-phases %standard-phases
-         (add-after 'unpack 'patch-configure
-           ;; By default, elisp code goes to "share/emacs/site-lisp/mu4e",
-           ;; so our Emacs package can't find it.  Setting "--with-lispdir"
-           ;; configure flag doesn't help because "mu4e" will be added to
-           ;; the lispdir anyway, so we have to modify "configure.ac".
-           (lambda _
-             (substitute* "configure"
-               (("^ +lispdir=\"\\$\\{lispdir\\}/mu4e/\".*") ""))))
-         (add-after 'unpack 'patch-bin-sh-in-tests
+         (add-after 'unpack 'patch-bin-in-sources
+           (lambda* (#:key inputs #:allow-other-keys)
+             (substitute* "lib/utils/mu-utils.cc"
+               (("/bin/rm") (search-input-file inputs "/bin/rm")))))
+         (add-after 'patch-bin-in-sources 'patch-bin-in-tests
            (lambda _
              (substitute* '("guile/tests/test-mu-guile.cc"
-                            "mu/test-mu-cmd.cc"
-                            "mu/test-mu-cmd-cfind.cc"
-                            "mu/test-mu-query.cc")
-               (("/bin/sh") (which "sh")))))
-         (add-before 'install 'fix-ffi
-           (lambda* (#:key outputs #:allow-other-keys)
-             (substitute* "guile/mu.scm"
-               (("\"libguile-mu\"")
-                (format #f "\"~a/lib/libguile-mu\""
-                        (assoc-ref outputs "out"))))))
-         (add-before 'check 'check-tz-setup
-           (lambda* (#:key inputs #:allow-other-keys)
-             ;; For mu/test/test-mu-query.c
-             (setenv "TZDIR"
-                     (search-input-directory inputs "share/zoneinfo"))))
+                            "mu/tests/test-mu-cmd.cc"
+                            "mu/tests/test-mu-cmd-cfind.cc"
+                            "mu/tests/test-mu-query.cc")
+               (("/bin/sh") (which "sh")))
+             (substitute* '("lib/tests/bench-indexer.cc")
+               (("/bin/rm") (which "rm")))))
          (add-after 'install 'install-emacs-autoloads
            (lambda* (#:key outputs #:allow-other-keys)
              (emacs-generate-autoloads
-- 
2.37.1