Subject: [bug#49840] [PATCH 3/3] gnu: ibus-rime: Update to 1.5.0.

From: [email-masked]
Date: Tue, 3 Aug 2021 09:28:01 +0800

From: Peng Mei Yu <[email-masked]>

* gnu/packages/ibus.scm (ibus-rime): Update to 1.5.0.
[build-system]: Change gnu-build-system to cmake-build-system.
[arguments]: Delete #:make-flags.  Add #:configure-flags.  Update
'patch-source phase.  Delete 'fix-file-names phase.  Revert deletion of
'configure phase.
---
 gnu/packages/ibus.scm | 42 ++++++++++++------------------------------
 1 file changed, 12 insertions(+), 30 deletions(-)

diff --git a/gnu/packages/ibus.scm b/gnu/packages/ibus.scm
index 9e6a66552f..48a2445c7d 100644
--- a/gnu/packages/ibus.scm
+++ b/gnu/packages/ibus.scm
@@ -663,7 +663,7 @@ Method Engine.")
 (define-public ibus-rime
   (package
     (name "ibus-rime")
-    (version "1.4.0")
+    (version "1.5.0")
     (source
      (origin
        (method git-fetch)
@@ -672,40 +672,22 @@ Method Engine.")
              (commit version)))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "12y6jdz1amhgrnqa7zjim63dfsz6zyxyahbirfan37wmcfp6gp1d"))))
-    (build-system gnu-build-system)
+        (base32 "1vl3m6ydf7mvmalpdqqmrnnmqdi6l8yyac3bv19pp8a5q3qhkwlg"))))
+    (build-system cmake-build-system)
     (arguments
      `(#:tests? #f                      ; no tests
-       #:make-flags (list (string-append "PREFIX=" (assoc-ref %outputs "out")))
+       #:configure-flags
+       (list (string-append "-DRIME_DATA_DIR="
+                            (assoc-ref %build-inputs "rime-data")
+                            "/share/rime-data"))
        #:phases
        (modify-phases %standard-phases
          (add-after 'unpack 'patch-source
-           (lambda* (#:key inputs outputs #:allow-other-keys)
-             ;; Define RIME_DATA_DIR. It's required but not used by the code.
-             (substitute* "Makefile"
-               (("cmake")
-                (string-append "cmake -DRIME_DATA_DIR="
-                               (assoc-ref inputs "rime-data")
-                               "/share/rime-data")))
-             ;; rime_config.h defines the actual data directory.
-             (substitute* "rime_config.h"
-               (("^#define IBUS_RIME_INSTALL_PREFIX .*$")
-                (string-append "#define IBUS_RIME_INSTALL_PREFIX \""
-                               (assoc-ref outputs "out")
-                               "\"\n"))
-               (("^#define IBUS_RIME_SHARED_DATA_DIR .*$")
-                (string-append "#define IBUS_RIME_SHARED_DATA_DIR \""
-                               (assoc-ref inputs "rime-data")
-                               "/share/rime-data\"\n")))
-             #t))
-         (add-after 'unpack 'fix-file-names
-           (lambda* (#:key outputs #:allow-other-keys)
-             ;; IBus uses the component file rime.xml to start the Rime
-             ;; engine.  It must be patched with appropriate file names.
-             (substitute* "rime.xml"
-               (("/usr") (assoc-ref outputs "out")))
-             #t))
-         (delete 'configure))))
+           (lambda _
+             (substitute* "CMakeLists.txt"
+               (("DESTINATION....RIME_DATA_DIR..")
+                "DESTINATION \"${CMAKE_INSTALL_DATADIR}/rime-data\""))
+             #t)))))
     (inputs
      `(("gdk-pixbuf" ,gdk-pixbuf)
        ("glib" ,glib)
-- 
2.32.0