gnu: Remove ".git" from "https://github/…/….git".
[jackhill/guix/guix.git] / gnu / packages / ibus.scm
CommitLineData
aad6f5bc 1;;; GNU Guix --- Functional package management for GNU
dbac4833 2;;; Copyright © 2015, 2016, 2017, 2018, 2019 Ricardo Wurmus <rekado@elephly.net>
2e6ecc5c 3;;; Copyright © 2015 Andreas Enge <andreas@enge.fr>
1c6ae418 4;;; Copyright © 2016 Chris Marusich <cmmarusich@gmail.com>
66b266e6 5;;; Copyright © 2017, 2018 Efraim Flashner <efraim@flashner.co.il>
510d819c 6;;; Copyright © 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
387bc215 7;;; Copyright © 2018, 2019, 2020 Peng Mei Yu <i@pengmeiyu.com>
94b8fe80 8;;; Copyright © 2020 kanichos <kanichos@yandex.ru>
e89986c8 9;;; Copyright © 2020 Vincent Legoll <vincent.legoll@gmail.com>
aad6f5bc
RW
10;;;
11;;; This file is part of GNU Guix.
12;;;
13;;; GNU Guix is free software; you can redistribute it and/or modify it
14;;; under the terms of the GNU General Public License as published by
15;;; the Free Software Foundation; either version 3 of the License, or (at
16;;; your option) any later version.
17;;;
18;;; GNU Guix is distributed in the hope that it will be useful, but
19;;; WITHOUT ANY WARRANTY; without even the implied warranty of
20;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
21;;; GNU General Public License for more details.
22;;;
23;;; You should have received a copy of the GNU General Public License
24;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
25
26(define-module (gnu packages ibus)
27 #:use-module (guix licenses)
28 #:use-module (guix packages)
29 #:use-module (guix download)
1329f095 30 #:use-module (guix git-download)
78209a16 31 #:use-module (guix build-system cmake)
aad6f5bc
RW
32 #:use-module (guix build-system gnu)
33 #:use-module (guix build-system glib-or-gtk)
dbac4833 34 #:use-module (guix utils)
aad6f5bc 35 #:use-module (gnu packages)
1c6ae418 36 #:use-module (gnu packages anthy)
12edffe4
RW
37 #:use-module (gnu packages autotools)
38 #:use-module (gnu packages base)
78209a16 39 #:use-module (gnu packages boost)
950ebfd1 40 #:use-module (gnu packages check)
d5b23d2b 41 #:use-module (gnu packages cmake)
5fbbd29f 42 #:use-module (gnu packages databases)
78209a16 43 #:use-module (gnu packages datastructures)
255d1bbe 44 #:use-module (gnu packages dbm)
5fbbd29f 45 #:use-module (gnu packages freedesktop)
1c6ae418 46 #:use-module (gnu packages gettext)
aad6f5bc
RW
47 #:use-module (gnu packages glib)
48 #:use-module (gnu packages gnome)
49 #:use-module (gnu packages gtk)
50 #:use-module (gnu packages iso-codes)
78209a16 51 #:use-module (gnu packages logging)
aad6f5bc 52 #:use-module (gnu packages pkg-config)
d37f00b9 53 #:use-module (gnu packages python)
78209a16 54 #:use-module (gnu packages serialization)
cd0322a3 55 #:use-module (gnu packages sqlite)
78209a16 56 #:use-module (gnu packages textutils)
0873cce1 57 #:use-module (gnu packages unicode)
d37f00b9 58 #:use-module (gnu packages xorg))
aad6f5bc
RW
59
60(define-public ibus
61 (package
2f968763 62 (name "ibus")
bd65a4cf 63 (version "1.5.22")
2f968763
MP
64 (source (origin
65 (method url-fetch)
66 (uri (string-append "https://github.com/ibus/ibus/"
67 "releases/download/"
68 version "/ibus-" version ".tar.gz"))
69 (sha256
70 (base32
bd65a4cf 71 "0jmy2w01phpmqnjnfnak7nvfna57mpgfnl87jwc4iai8ijjynw41"))))
2f968763
MP
72 (build-system glib-or-gtk-build-system)
73 (arguments
74 `(#:tests? #f ; tests fail because there's no connection to dbus
933bb1ac 75 #:parallel-build? #f ; race condition discovered with emoji support
0873cce1
LP
76 #:configure-flags (list "--enable-python-library"
77 (string-append
78 "--with-unicode-emoji-dir="
79 (assoc-ref %build-inputs "unicode-emoji")
80 "/share/unicode/emoji")
81 (string-append
82 "--with-emoji-annotation-dir="
83 (assoc-ref %build-inputs "unicode-cldr-common")
84 "/share/unicode/cldr/common/annotations")
85 (string-append "--with-ucd-dir="
a9e5e649
LP
86 (assoc-ref %build-inputs "ucd")
87 "/share/ucd")
0873cce1 88 "--enable-wayland")
2f968763
MP
89 #:phases
90 (modify-phases %standard-phases
b2c6b467
RW
91 (add-after 'unpack 'patch-python-target-directories
92 (lambda* (#:key outputs #:allow-other-keys)
93 (let ((root (string-append (assoc-ref outputs "out")
94 "/lib/python"
95 ,(version-major+minor (package-version python))
96 "/site-packages")))
97 (substitute* "configure"
98 (("(py2?overridesdir)=.*" _ var)
99 (string-append var "=" root "/gi/overrides/"))
100 (("(pkgpython2dir=).*" _ var)
101 (string-append var root "/ibus"))))
102 #t))
2f968763
MP
103 (add-before 'configure 'disable-dconf-update
104 (lambda _
105 (substitute* "data/dconf/Makefile.in"
106 (("dconf update") "echo dconf update"))
107 #t))
108 (add-after 'unpack 'delete-generated-files
109 (lambda _
110 (for-each (lambda (file)
111 (let ((c (string-append (string-drop-right file 4) "c")))
112 (when (file-exists? c)
113 (format #t "deleting ~a\n" c)
114 (delete-file c))))
115 (find-files "." "\\.vala"))
116 #t))
117 (add-after 'unpack 'fix-paths
118 (lambda* (#:key inputs #:allow-other-keys)
119 (substitute* "src/ibusenginesimple.c"
120 (("/usr/share/X11/locale")
121 (string-append (assoc-ref inputs "libx11")
122 "/share/X11/locale")))
123 (substitute* "ui/gtk3/xkblayout.vala"
124 (("\"(setxkbmap|xmodmap)\"" _ prog)
92d7f5b4 125 (string-append "\"" (assoc-ref inputs prog) "/bin/" prog "\"")))
2f968763
MP
126 #t))
127 (add-after 'wrap-program 'wrap-with-additional-paths
128 (lambda* (#:key outputs #:allow-other-keys)
129 ;; Make sure 'ibus-setup' runs with the correct PYTHONPATH and
130 ;; GI_TYPELIB_PATH.
131 (let ((out (assoc-ref outputs "out")))
132 (wrap-program (string-append out "/bin/ibus-setup")
133 `("PYTHONPATH" ":" prefix (,(getenv "PYTHONPATH")))
134 `("GI_TYPELIB_PATH" ":" prefix
135 (,(getenv "GI_TYPELIB_PATH")
136 ,(string-append out "/lib/girepository-1.0")))))
137 #t)))))
138 (inputs
139 `(("dbus" ,dbus)
140 ("dconf" ,dconf)
141 ("gconf" ,gconf)
142 ("gtk2" ,gtk+-2)
143 ("gtk+" ,gtk+)
2f968763
MP
144 ("json-glib" ,json-glib)
145 ("libnotify" ,libnotify)
146 ("libx11" ,libx11)
147 ("setxkbmap" ,setxkbmap)
148 ("wayland" ,wayland)
149 ("xmodmap" ,xmodmap)
150 ("iso-codes" ,iso-codes)
151 ("pygobject2" ,python-pygobject)
152 ("python" ,python)))
153 (native-inputs
154 `(("glib" ,glib "bin") ; for glib-genmarshal
18705a50 155 ("gettext" ,gettext-minimal)
2f968763 156 ("gobject-introspection" ,gobject-introspection) ; for g-ir-compiler
a9e5e649 157 ("ucd" ,ucd)
0873cce1
LP
158 ("unicode-emoji" ,unicode-emoji)
159 ("unicode-cldr-common" ,unicode-cldr-common)
2f968763
MP
160 ("vala" ,vala)
161 ("pkg-config" ,pkg-config)))
162 (native-search-paths
163 (list (search-path-specification
164 (variable "IBUS_COMPONENT_PATH")
165 (files '("share/ibus/component")))))
166 (synopsis "Input method framework")
167 (description
168 "IBus is an input framework providing a full-featured and user-friendly
aad6f5bc
RW
169input method user interface. It comes with multilingual input support. It
170may also simplify input method development.")
2f968763
MP
171 (home-page "https://github.com/ibus/ibus/wiki")
172 (license lgpl2.1+)))
12edffe4 173
5fbbd29f
RW
174(define-public ibus-libpinyin
175 (package
2f968763 176 (name "ibus-libpinyin")
510d819c 177 (version "1.11.1")
2f968763
MP
178 (source (origin
179 (method url-fetch)
180 (uri (string-append "https://github.com/libpinyin/ibus-libpinyin/"
181 "releases/download/" version
182 "/ibus-libpinyin-" version ".tar.gz"))
183 (sha256
184 (base32
510d819c 185 "1bl1cgicd2df797dx1x0q904438bsn8i23djzcfcai4dp3631xc0"))))
2f968763
MP
186 (build-system glib-or-gtk-build-system)
187 (arguments
188 `(#:phases
189 (modify-phases %standard-phases
190 (add-after 'wrap-program 'wrap-with-additional-paths
191 (lambda* (#:key inputs outputs #:allow-other-keys)
192 ;; Make sure 'ibus-setup-libpinyin' runs with the correct
193 ;; PYTHONPATH and GI_TYPELIB_PATH.
194 (let ((out (assoc-ref outputs "out")))
195 (wrap-program (string-append out "/libexec/ibus-setup-libpinyin")
196 `("PYTHONPATH" ":" prefix
197 (,(getenv "PYTHONPATH")
198 ,(string-append (assoc-ref inputs "ibus")
199 "/lib/girepository-1.0")))
200 `("GI_TYPELIB_PATH" ":" prefix
201 (,(string-append (assoc-ref inputs "ibus")
202 "/lib/girepository-1.0"))))
203 #t))))))
204 (inputs
205 `(("ibus" ,ibus)
206 ("libpinyin" ,libpinyin)
207 ("bdb" ,bdb)
208 ("sqlite" ,sqlite)
209 ("python" ,python)
210 ("pyxdg" ,python-pyxdg)
afabb9ec 211 ("pygobject2" ,python-pygobject)
2f968763
MP
212 ("gtk+" ,gtk+)))
213 (native-inputs
214 `(("pkg-config" ,pkg-config)
215 ("intltool" ,intltool)
216 ("glib" ,glib "bin")))
217 (synopsis "Chinese pinyin and ZhuYin input methods for IBus")
218 (description
219 "This package includes a Chinese pinyin input method and a Chinese
5fbbd29f 220ZhuYin (Bopomofo) input method based on libpinyin for IBus.")
2f968763
MP
221 (home-page "https://github.com/libpinyin/ibus-libpinyin")
222 (license gpl2+)))
5fbbd29f 223
12edffe4
RW
224(define-public libpinyin
225 (package
226 (name "libpinyin")
44613030 227 (version "2.3.0")
12edffe4
RW
228 (source (origin
229 (method url-fetch)
8738c2b3
RW
230 (uri (string-append "https://github.com/libpinyin/libpinyin/"
231 "releases/download/" version
44613030 232 "/libpinyin-" version ".tar.gz"))
12edffe4
RW
233 (sha256
234 (base32
44613030 235 "14969v6w8n1aiqphl2386dws7dmsdwbzyqnlz4kr8ppm39m9rp5k"))))
12edffe4 236 (build-system gnu-build-system)
12edffe4
RW
237 (inputs
238 `(("glib" ,glib)
8738c2b3 239 ("bdb" ,bdb)))
12edffe4 240 (native-inputs
8738c2b3 241 `(("pkg-config" ,pkg-config)))
1f7a84dc 242 (synopsis "Library to handle Chinese pinyin")
12edffe4
RW
243 (description
244 "The libpinyin C++ library provides algorithms needed for sentence-based
245Chinese pinyin input methods.")
246 (home-page "https://github.com/libpinyin/libpinyin")
247 (license gpl2+)))
1c6ae418
CM
248
249(define-public ibus-anthy
250 (package
251 (name "ibus-anthy")
ab84c13f 252 (version "1.5.9")
1c6ae418
CM
253 (source (origin
254 (method url-fetch)
255 (uri (string-append
256 "https://github.com/ibus/ibus-anthy/releases/download/"
257 version "/ibus-anthy-" version ".tar.gz"))
258 (sha256
259 (base32
ab84c13f 260 "1y8sf837rmp662bv6zakny0xcm7c9c5qda7f9kq9riv9ywpcbw6x"))))
1c6ae418
CM
261 (build-system gnu-build-system)
262 (arguments
263 '(#:configure-flags
264 ;; Use absolute exec path in the anthy.xml.
265 (list (string-append "--libexecdir=" %output "/libexec"))
266 #:phases
267 (modify-phases %standard-phases
268 (add-after 'install 'wrap-programs
269 (lambda* (#:key outputs #:allow-other-keys)
270 (let ((out (assoc-ref outputs "out")))
271 (for-each
272 (lambda (prog)
273 (wrap-program (string-append out "/libexec/" prog)
274 `("PYTHONPATH" ":" prefix
275 (,(getenv "PYTHONPATH")))
276 `("GI_TYPELIB_PATH" ":" prefix
277 (,(getenv "GI_TYPELIB_PATH")
278 ,(string-append out "/lib/girepository-1.0")))))
279 '("ibus-engine-anthy" "ibus-setup-anthy"))
280 #t))))))
281 (native-inputs
b94a6ca0 282 `(("gettext" ,gettext-minimal)
1c6ae418
CM
283 ("intltool" ,intltool)
284 ("pkg-config" ,pkg-config)
285 ("python" ,python)))
286 (inputs
287 `(("anthy" ,anthy)
288 ("gtk+" ,gtk+)
289 ("ibus" ,ibus)
290 ("gobject-introspection" ,gobject-introspection)
291 ("python-pygobject" ,python-pygobject)))
292 (synopsis "Anthy Japanese language input method for IBus")
293 (description "IBus-Anthy is an engine for the input bus \"IBus\"). It
294adds the Anthy Japanese language input method to IBus. Because most graphical
295applications allow text input via IBus, installing this package will enable
296Japanese language input in most graphical applications.")
297 (home-page "https://github.com/fujiwarat/ibus-anthy")
298 (license gpl2+)))
78209a16
MP
299
300(define-public librime
301 (package
302 (name "librime")
ca49d732 303 (version "1.5.3")
78209a16
MP
304 (source
305 (origin
86374285
RW
306 (method git-fetch)
307 (uri (git-reference
b0e7b699 308 (url "https://github.com/rime/librime")
86374285
RW
309 (commit version)))
310 (file-name (git-file-name name version))
78209a16 311 (sha256
950ebfd1 312 (base32
ca49d732 313 "0xskhdhk7dgpc71r39pfzxi5vrlzy90aqj1gzv8nnapq91p2awhv"))
950ebfd1
EF
314 (modules '((guix build utils)))
315 (snippet
316 '(begin
317 (delete-file-recursively "thirdparty/src")
318 (delete-file-recursively "thirdparty/bin")
319 (delete-file-recursively "thirdparty/include/X11")
320 #t))))
78209a16 321 (build-system cmake-build-system)
950ebfd1 322 (arguments
51d4c79d 323 '(#:phases
950ebfd1
EF
324 (modify-phases %standard-phases
325 (add-after 'unpack 'patch-source
326 (lambda _
327 (substitute* "CMakeLists.txt"
328 (("include_directories\\($\\{PROJECT_SOURCE_DIR\\}/thirdparty/include\\)") "")
329 (("link_directories\\($\\{PROJECT_SOURCE_DIR\\}/thirdparty/lib\\)") ""))
330 #t)))))
78209a16
MP
331 (inputs
332 `(("boost" ,boost)
333 ("glog" ,glog)
334 ("leveldb" ,leveldb)
335 ("marisa" ,marisa)
336 ("opencc" ,opencc)
337 ("yaml-cpp" ,yaml-cpp)))
950ebfd1
EF
338 (native-inputs
339 `(("googletest" ,googletest)
340 ("xorgproto" ,xorgproto))) ; keysym.h
78209a16
MP
341 (home-page "https://rime.im/")
342 (synopsis "The core library of Rime Input Method Engine")
343 (description "@dfn{librime} is the core library of Rime Input Method
344Engine, which is a lightweight, extensible input method engine supporting
345various input schemas including glyph-based input methods, romanization-based
346input methods as well as those for Chinese dialects. It has the ability to
347compose phrases and sentences intelligently and provide very accurate
348traditional Chinese output.")
349 (license bsd-3)))
1329f095
MP
350
351(define-public rime-data
352 (package
353 (name "rime-data")
387bc215 354 (version "0.38.20200623")
1329f095
MP
355 (source
356 (origin
357 (method git-fetch)
358 (uri (git-reference
b0e7b699 359 (url "https://github.com/rime/plum")
387bc215 360 (commit "397d601dd22cfc857613973724724b8f44db9f9c")))
1329f095
MP
361 (file-name "plum-checkout")
362 (sha256
387bc215 363 (base32 "06ad5c4m7xsfr4if5ywshfj2aj5g5b5hwzh38dzccn7c1l2ibi0z"))))
1329f095
MP
364 (build-system gnu-build-system)
365 (arguments
fa7bd611
PMY
366 `(#:modules ((ice-9 match)
367 ,@%gnu-build-system-modules)
368 #:tests? #f ; no tests
1329f095
MP
369 #:make-flags (list (string-append "PREFIX=" (assoc-ref %outputs "out"))
370 "no_update=1")
371 #:phases
372 (modify-phases %standard-phases
373 (add-after 'unpack 'patch-source
374 (lambda _
5fc75e85
PMY
375 ;; Don't build binary Rime schema. The binary Rime schema files
376 ;; are platform dependent and contains timestamp information.
377 ;; Thus they are not reproducible.
378
379 ;; Change `.DEFAULT_GOAL' to `all'.
1329f095
MP
380 (substitute* "Makefile"
381 (("^\\.DEFAULT_GOAL := preset")
382 ".DEFAULT_GOAL := all"))
5fc75e85
PMY
383 ;; Disable git operations.
384 (substitute* "scripts/install-packages.sh"
385 ((".*update-package\\.sh.*") ""))
1329f095 386 #t))
fa7bd611
PMY
387 ;; Copy Rime schemas into the "package/rime" directory.
388 (add-after 'unpack 'copy-rime-schemas
1329f095 389 (lambda* (#:key inputs #:allow-other-keys)
fa7bd611 390 (let ((dest-dir "package/rime"))
1329f095 391 (mkdir-p dest-dir)
fa7bd611
PMY
392 (for-each
393 (match-lambda
394 ((name . path)
395 (if (string-prefix? "rime-" name)
396 (let ((schema (substring name (string-length "rime-"))))
397 (symlink path (string-append dest-dir "/" schema))))))
398 inputs))
1329f095
MP
399 #t))
400 (delete 'configure))))
fa7bd611 401 (inputs
775e81b5 402 `(("rime-array"
1329f095
MP
403 ,(origin
404 (method git-fetch)
405 (uri (git-reference
b0e7b699 406 (url "https://github.com/rime/rime-array")
775e81b5 407 (commit "93cc99238f120606a076220ec4ddcad164f6396a")))
1329f095
MP
408 (file-name "rime-array-checkout")
409 (sha256
410 (base32
775e81b5
MP
411 "06yxrv3x702751jvx46rfw3ix34jk7jh183rz6bllznzi7lxz7sz"))))
412 ("rime-bopomofo"
1329f095
MP
413 ,(origin
414 (method git-fetch)
415 (uri (git-reference
b0e7b699 416 (url "https://github.com/rime/rime-bopomofo")
775e81b5 417 (commit "ed25098386f5efd3d70b08650f0d1b70c41c11a3")))
1329f095
MP
418 (file-name "rime-bopomofo-checkout")
419 (sha256
420 (base32
775e81b5
MP
421 "1ip1pbfb1hadf2mcymr5939iagf25ywfl67d9198jahzyr6rdyvc"))))
422 ("rime-cangjie"
1329f095
MP
423 ,(origin
424 (method git-fetch)
425 (uri (git-reference
b0e7b699 426 (url "https://github.com/rime/rime-cangjie")
775e81b5 427 (commit "5fd8ce6f64039e505ca02655a621f2e830b97c19")))
1329f095
MP
428 (file-name "rime-cangjie-checkout")
429 (sha256
430 (base32
775e81b5 431 "1gf6r0q593ixar6v0jyvs56cik2gjp7pf9v799rfd2yydyia3bfg"))))
387bc215
PMY
432 ("rime-cantonese"
433 ,(origin
434 (method git-fetch)
435 (uri (git-reference
b0e7b699 436 (url "https://github.com/rime/rime-cantonese")
387bc215
PMY
437 (commit "e06fe8e79d7d64db2f2b6339aabc004d8cbc1f67")))
438 (file-name "rime-cantonese-checkout")
439 (sha256
440 (base32
441 "0j6kbhdfj7dx812yzykndzbk53s2v1rsaa2jlyma03hz7qlnnl0s"))))
775e81b5 442 ("rime-combo-pinyin"
1329f095
MP
443 ,(origin
444 (method git-fetch)
445 (uri (git-reference
b0e7b699 446 (url "https://github.com/rime/rime-combo-pinyin")
387bc215 447 (commit "67b29cdc786928ea46b43a9c660dee3db8f1adff")))
1329f095
MP
448 (file-name "rime-combo-pinyin-checkout")
449 (sha256
450 (base32
387bc215 451 "1v6ax51xll2aizbz1xzjyk6p3lmq8cyzbxkrwcffa723zaj0zz4l"))))
775e81b5 452 ("rime-double-pinyin"
1329f095
MP
453 ,(origin
454 (method git-fetch)
455 (uri (git-reference
b0e7b699 456 (url "https://github.com/rime/rime-double-pinyin")
775e81b5 457 (commit "69bf85d4dfe8bac139c36abbd68d530b8b6622ea")))
1329f095
MP
458 (file-name "rime-double-pinyin-checkout")
459 (sha256
460 (base32
775e81b5
MP
461 "093wif5avvvw45fqbwj5wkbxrychy4pagl4mwsmbrayc8jkp69ak"))))
462 ("rime-emoji"
1329f095
MP
463 ,(origin
464 (method git-fetch)
465 (uri (git-reference
b0e7b699 466 (url "https://github.com/rime/rime-emoji")
387bc215 467 (commit "c99d34e4a837349e4679a110bb4b94f71fe015ae")))
1329f095
MP
468 (file-name "rime-emoji-checkout")
469 (sha256
470 (base32
387bc215 471 "1wiwlxjjml9xfgg7z1wzaf4b1bsg81dkwvsfff2b61fwxq61zkgw"))))
775e81b5 472 ("rime-essay"
1329f095
MP
473 ,(origin
474 (method git-fetch)
475 (uri (git-reference
b0e7b699 476 (url "https://github.com/rime/rime-essay")
387bc215 477 (commit "88055afa3752e4582fa887765d962a30e02bb1fa")))
1329f095
MP
478 (file-name "rime-essay-checkout")
479 (sha256
480 (base32
387bc215 481 "0ap7xqv6v0x6mdkw2cv93cbr6qhpla3803z04522wb8l9hr7iryg"))))
775e81b5 482 ("rime-ipa"
1329f095
MP
483 ,(origin
484 (method git-fetch)
485 (uri (git-reference
b0e7b699 486 (url "https://github.com/rime/rime-ipa")
387bc215 487 (commit "22b71710e029bcb412e9197192a638ab11bc2abf")))
1329f095
MP
488 (file-name "rime-ipa-checkout")
489 (sha256
490 (base32
387bc215 491 "0zdk4f9qkfj3q5hmjnairj1lv6f6y27mic12k886n6sxywwbwr2k"))))
775e81b5 492 ("rime-jyutping"
1329f095
MP
493 ,(origin
494 (method git-fetch)
495 (uri (git-reference
b0e7b699 496 (url "https://github.com/rime/rime-jyutping")
387bc215 497 (commit "6fe0d727b3178feabd0f01e6cd82599202764735")))
1329f095
MP
498 (file-name "rime-jyutping-checkout")
499 (sha256
500 (base32
387bc215 501 "0wz6d3pmi72ysh2c0nml3rsz9hd2vazsyhnz34gq26yf4j85phfs"))))
775e81b5 502 ("rime-luna-pinyin"
1329f095
MP
503 ,(origin
504 (method git-fetch)
505 (uri (git-reference
b0e7b699 506 (url "https://github.com/rime/rime-luna-pinyin")
387bc215 507 (commit "f1268e192ca88b9526467ce04ac3e47c837891ad")))
1329f095
MP
508 (file-name "rime-luna-pinyin-checkout")
509 (sha256
510 (base32
387bc215 511 "0nxnjp1ybcrsan1mxnzwbkfhwl99kza6i9k1s7m9wzmhv7x7zahg"))))
775e81b5 512 ("rime-middle-chinese"
1329f095
MP
513 ,(origin
514 (method git-fetch)
515 (uri (git-reference
b0e7b699 516 (url "https://github.com/rime/rime-middle-chinese")
775e81b5 517 (commit "ed6d44f8d0bedf6e0c1c3183a270f8f01a211a40")))
1329f095
MP
518 (file-name "rime-middle-chinese-checkout")
519 (sha256
520 (base32
775e81b5
MP
521 "09mql88lsrxa99pyllby5z22kaiwwa037ha8gwaxjnnlsjgvz7zx"))))
522 ("rime-pinyin-simp"
1329f095
MP
523 ,(origin
524 (method git-fetch)
525 (uri (git-reference
b0e7b699 526 (url "https://github.com/rime/rime-pinyin-simp")
387bc215 527 (commit "b73df7fc0994912ce785462b3be569ae81258ac2")))
1329f095
MP
528 (file-name "rime-pinyin-simp-checkout")
529 (sha256
530 (base32
387bc215 531 "1m9hchnj1xf5s5185qm66ja0g1324drc98b2jjhnqgcp47bwz9fx"))))
775e81b5 532 ("rime-prelude"
1329f095
MP
533 ,(origin
534 (method git-fetch)
535 (uri (git-reference
b0e7b699 536 (url "https://github.com/rime/rime-prelude")
775e81b5 537 (commit "8a52b4f86a59f3eb602f9a4cf6a680a67c15df8c")))
1329f095
MP
538 (file-name "rime-prelude-checkout")
539 (sha256
540 (base32
775e81b5
MP
541 "039fr3996vfxzn2milaq1f5fw08f6zgjsxsql6cfhsc5b55fidm7"))))
542 ("rime-quick"
1329f095
MP
543 ,(origin
544 (method git-fetch)
545 (uri (git-reference
b0e7b699 546 (url "https://github.com/rime/rime-quick")
775e81b5 547 (commit "3fe5911ba608cb2df1b6301b76ad1573bd482a76")))
1329f095
MP
548 (file-name "rime-quick-checkout")
549 (sha256
550 (base32
775e81b5
MP
551 "08bh87ym5qvw55lyw20l3m7jd4c2z5rvil8h5q8790r7z6j6ijy9"))))
552 ("rime-scj"
1329f095
MP
553 ,(origin
554 (method git-fetch)
555 (uri (git-reference
b0e7b699 556 (url "https://github.com/rime/rime-scj")
775e81b5 557 (commit "cab5a0858765eff0553dd685a2d61d5536e9149c")))
1329f095
MP
558 (file-name "rime-scj-checkout")
559 (sha256
560 (base32
775e81b5
MP
561 "0ard2bjp4896a8dimmcwyjwgmp9kl4rz92yc92jnd3y4rgwl6fvk"))))
562 ("rime-soutzoe"
1329f095
MP
563 ,(origin
564 (method git-fetch)
565 (uri (git-reference
b0e7b699 566 (url "https://github.com/rime/rime-soutzoe")
775e81b5 567 (commit "beeaeca72d8e17dfd1e9af58680439e9012987dc")))
1329f095
MP
568 (file-name "rime-soutzoe-checkout")
569 (sha256
570 (base32
775e81b5
MP
571 "0jyqx0q9s0qxn168l5n8zav8jcl2g5ppr7pa8jm1vwrllf20slcc"))))
572 ("rime-stenotype"
1329f095
MP
573 ,(origin
574 (method git-fetch)
575 (uri (git-reference
b0e7b699 576 (url "https://github.com/rime/rime-stenotype")
387bc215 577 (commit "f3e9189d5ce33c55d3936cc58e39d0c88b3f0c88")))
1329f095
MP
578 (file-name "rime-stenotype-checkout")
579 (sha256
580 (base32
387bc215 581 "0dl6px7lrh3xa87knjzwzdcwjj1k1dg4l72q7lb48an4s9f1cy5d"))))
775e81b5 582 ("rime-stroke"
1329f095
MP
583 ,(origin
584 (method git-fetch)
585 (uri (git-reference
b0e7b699 586 (url "https://github.com/rime/rime-stroke")
387bc215 587 (commit "ea8576d1accd6fda339e96b415caadb56e2a07d1")))
1329f095
MP
588 (file-name "rime-stroke-checkout")
589 (sha256
590 (base32
387bc215 591 "07h6nq9867hjrd2v3h1pnr940sdrw4mqrzj43siz1rzjxz3s904r"))))
775e81b5 592 ("rime-terra-pinyin"
1329f095
MP
593 ,(origin
594 (method git-fetch)
595 (uri (git-reference
b0e7b699 596 (url "https://github.com/rime/rime-terra-pinyin")
387bc215 597 (commit "492aaf914f9de37cc9d26b846dc693116de70ae8")))
1329f095
MP
598 (file-name "rime-terra-pinyin-checkout")
599 (sha256
600 (base32
387bc215 601 "1l4l2w42mc3sf7jwbadx95gzrsq11ld9f6yj2hwaq9accainw3bf"))))
775e81b5 602 ("rime-wubi"
1329f095
MP
603 ,(origin
604 (method git-fetch)
605 (uri (git-reference
b0e7b699 606 (url "https://github.com/rime/rime-wubi")
775e81b5 607 (commit "dd052ee158a38cb791755318b1aef9b4a3ed0316")))
1329f095
MP
608 (file-name "rime-wubi-checkout")
609 (sha256
610 (base32
775e81b5
MP
611 "00xzv3sbwqh2jz4i7s315h7rw17qa2dgj7kflyy3blxk0s2cqiqa"))))
612 ("rime-wugniu"
1329f095
MP
613 ,(origin
614 (method git-fetch)
615 (uri (git-reference
b0e7b699 616 (url "https://github.com/rime/rime-wugniu")
775e81b5 617 (commit "abd1ee98efbf170258fcf43875c21a4259e00b61")))
1329f095
MP
618 (file-name "rime-wugniu-checkout")
619 (sha256
620 (base32
775e81b5 621 "0qn54d3cclny106ixdw08r5n6wn52ffs1hgrma3k0j4pv0kr9nlq"))))))
1329f095
MP
622 (home-page "https://rime.im/")
623 (synopsis "Schema data of Rime Input Method Engine")
624 (description "@dfn{rime-data} provides the schema data of Rime Input
625Method Engine.")
d13c0ed6 626 (license lgpl3)))
d5b23d2b
MP
627
628(define-public ibus-rime
629 (package
630 (name "ibus-rime")
f7a25b50 631 (version "1.4.0")
d5b23d2b
MP
632 (source
633 (origin
487e3f5a
RW
634 (method git-fetch)
635 (uri (git-reference
b0e7b699 636 (url "https://github.com/rime/ibus-rime")
487e3f5a
RW
637 (commit version)))
638 (file-name (git-file-name name version))
d5b23d2b 639 (sha256
f7a25b50 640 (base32 "12y6jdz1amhgrnqa7zjim63dfsz6zyxyahbirfan37wmcfp6gp1d"))))
d5b23d2b
MP
641 (build-system gnu-build-system)
642 (arguments
643 `(#:tests? #f ; no tests
644 #:make-flags (list (string-append "PREFIX=" (assoc-ref %outputs "out")))
645 #:phases
646 (modify-phases %standard-phases
647 (add-after 'unpack 'patch-source
648 (lambda* (#:key inputs outputs #:allow-other-keys)
649 ;; Define RIME_DATA_DIR. It's required but not used by the code.
650 (substitute* "Makefile"
651 (("cmake")
652 (string-append "cmake -DRIME_DATA_DIR="
653 (assoc-ref inputs "rime-data")
654 "/share/rime-data")))
655 ;; rime_config.h defines the actual data directory.
656 (substitute* "rime_config.h"
657 (("^#define IBUS_RIME_INSTALL_PREFIX .*$")
658 (string-append "#define IBUS_RIME_INSTALL_PREFIX \""
659 (assoc-ref outputs "out")
660 "\"\n"))
661 (("^#define IBUS_RIME_SHARED_DATA_DIR .*$")
662 (string-append "#define IBUS_RIME_SHARED_DATA_DIR \""
663 (assoc-ref inputs "rime-data")
664 "/share/rime-data\"\n")))
665 #t))
562b4e47 666 (add-after 'unpack 'fix-file-names
667 (lambda* (#:key outputs #:allow-other-keys)
668 ;; IBus uses the component file rime.xml to start the Rime
669 ;; engine. It must be patched with appropriate file names.
670 (substitute* "rime.xml"
671 (("/usr") (assoc-ref outputs "out")))
672 #t))
d5b23d2b
MP
673 (delete 'configure))))
674 (inputs
675 `(("gdk-pixbuf" ,gdk-pixbuf)
676 ("glib" ,glib)
677 ("ibus" ,ibus)
678 ("libnotify" ,libnotify)
679 ("librime" ,librime)
680 ("rime-data" ,rime-data)))
681 (native-inputs
c69959f0 682 `(("cmake" ,cmake-minimal)
d5b23d2b
MP
683 ("pkg-config" ,pkg-config)))
684 (home-page "https://rime.im/")
685 (synopsis "Rime Input Method Engine for IBus")
686 (description "@dfn{ibus-rime} provides the Rime input method engine for
687IBus. Rime is a lightweight, extensible input method engine supporting
688various input schemas including glyph-based input methods, romanization-based
689input methods as well as those for Chinese dialects. It has the ability to
690compose phrases and sentences intelligently and provide very accurate
691traditional Chinese output.")
560540f0 692 (license gpl3)))
94b8fe80 693
694(define-public libhangul
695 (package
696 (name "libhangul")
697 (version "0.1.0")
698 (source
699 (origin
700 (method url-fetch)
701 (uri (string-append "http://kldp.net/hangul/release/"
702 "3442-libhangul-" version ".tar.gz"))
703 (sha256
704 (base32
705 "0ni9b0v70wkm0116na7ghv03pgxsfpfszhgyj3hld3bxamfal1ar"))))
706 (build-system gnu-build-system)
707 (home-page "https://github.com/libhangul/libhangul")
708 (synopsis "Library to support hangul input method logic")
709 (description
710 "This package provides a library to support hangul input method logic,
711hanja dictionary and small hangul character classification.")
712 (license lgpl2.1+)))
30208c10 713
714(define-public ibus-libhangul
715 (package
716 (name "ibus-libhangul")
717 (version "1.5.3")
718 (source
719 (origin
720 (method url-fetch)
721 (uri (string-append "https://github.com/libhangul/ibus-hangul/"
722 "releases/download/" version
723 "/ibus-hangul-" version ".tar.gz"))
724 (sha256
725 (base32
726 "1400ba2p34vr9q285lqvjm73f6m677cgfdymmjpiwyrjgbbiqrjy"))))
727 (build-system gnu-build-system)
728 (arguments
729 `(#:phases
730 (modify-phases %standard-phases
731 (add-after 'install 'wrap
732 (lambda* (#:key inputs outputs #:allow-other-keys)
733 (wrap-program (string-append (assoc-ref outputs "out")
734 "/libexec/ibus-setup-hangul")
735 `("PYTHONPATH" ":" prefix (,(getenv "PYTHONPATH")))
736 `("LD_LIBRARY_PATH" ":" prefix
737 (,(string-append (assoc-ref inputs "libhangul") "/lib")))
738 `("GI_TYPELIB_PATH" ":" prefix
739 (,(getenv "GI_TYPELIB_PATH"))))
740 #t)))))
741 (native-inputs
742 `(("pkg-config" ,pkg-config)
743 ("gettext" ,gettext-minimal)
744 ("glib:bin" ,glib "bin")))
745 (inputs
746 `(("ibus" ,ibus)
747 ("glib" ,glib)
748 ("python-pygobject" ,python-pygobject)
749 ("gtk+" ,gtk+)
750 ("libhangul" ,libhangul)
751 ("python" ,python)))
752 (home-page "https://github.com/libhangul/ibus-hangul")
753 (synopsis "Hangul engine for IBus")
754 (description
755 "ibus-hangul is a Korean input method engine for IBus.")
756 (license gpl2+)))