gnu: Add wl-clipboard.
[jackhill/guix/guix.git] / gnu / packages / ibus.scm
CommitLineData
aad6f5bc 1;;; GNU Guix --- Functional package management for GNU
8738c2b3 2;;; Copyright © 2015, 2016, 2017, 2018 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>
50efd066 6;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
78209a16 7;;; Copyright © 2018 Meiyo Peng <meiyo.peng@gmail.com>
aad6f5bc
RW
8;;;
9;;; This file is part of GNU Guix.
10;;;
11;;; GNU Guix is free software; you can redistribute it and/or modify it
12;;; under the terms of the GNU General Public License as published by
13;;; the Free Software Foundation; either version 3 of the License, or (at
14;;; your option) any later version.
15;;;
16;;; GNU Guix is distributed in the hope that it will be useful, but
17;;; WITHOUT ANY WARRANTY; without even the implied warranty of
18;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19;;; GNU General Public License for more details.
20;;;
21;;; You should have received a copy of the GNU General Public License
22;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
23
24(define-module (gnu packages ibus)
25 #:use-module (guix licenses)
26 #:use-module (guix packages)
27 #:use-module (guix download)
1329f095 28 #:use-module (guix git-download)
78209a16 29 #:use-module (guix build-system cmake)
aad6f5bc
RW
30 #:use-module (guix build-system gnu)
31 #:use-module (guix build-system glib-or-gtk)
32 #:use-module (gnu packages)
1c6ae418 33 #:use-module (gnu packages anthy)
12edffe4
RW
34 #:use-module (gnu packages autotools)
35 #:use-module (gnu packages base)
78209a16 36 #:use-module (gnu packages boost)
950ebfd1 37 #:use-module (gnu packages check)
d5b23d2b 38 #:use-module (gnu packages cmake)
5fbbd29f 39 #:use-module (gnu packages databases)
78209a16 40 #:use-module (gnu packages datastructures)
5fbbd29f 41 #:use-module (gnu packages freedesktop)
1c6ae418 42 #:use-module (gnu packages gettext)
aad6f5bc
RW
43 #:use-module (gnu packages glib)
44 #:use-module (gnu packages gnome)
45 #:use-module (gnu packages gtk)
46 #:use-module (gnu packages iso-codes)
78209a16 47 #:use-module (gnu packages logging)
aad6f5bc 48 #:use-module (gnu packages pkg-config)
d37f00b9 49 #:use-module (gnu packages python)
78209a16
MP
50 #:use-module (gnu packages serialization)
51 #:use-module (gnu packages textutils)
d37f00b9 52 #:use-module (gnu packages xorg))
aad6f5bc
RW
53
54(define-public ibus
55 (package
2f968763
MP
56 (name "ibus")
57 (version "1.5.19")
58 (source (origin
59 (method url-fetch)
60 (uri (string-append "https://github.com/ibus/ibus/"
61 "releases/download/"
62 version "/ibus-" version ".tar.gz"))
63 (sha256
64 (base32
65 "0a94bnpm24581317hdnihwr4cniriml10p4ffgxg14xhvaccfrjb"))))
66 (build-system glib-or-gtk-build-system)
67 (arguments
68 `(#:tests? #f ; tests fail because there's no connection to dbus
69 #:configure-flags `("--disable-emoji-dict" ; cannot find emoji.json path
70 "--disable-python2"
71 "--enable-python-library"
72 ,(string-append "--with-ucd-dir="
73 (getcwd) "/ucd")
74 "--enable-wayland")
75 #:make-flags
76 (list "CC=gcc"
77 (string-append "pyoverridesdir="
78 (assoc-ref %outputs "out")
79 "/lib/python3.6/site-packages/gi/overrides/"))
80 #:phases
81 (modify-phases %standard-phases
82 (add-after 'unpack 'prepare-ucd-dir
83 (lambda* (#:key inputs #:allow-other-keys)
84 (mkdir-p "../ucd")
85 (symlink (assoc-ref inputs "unicode-blocks") "../ucd/Blocks.txt")
86 (symlink (assoc-ref inputs "unicode-nameslist") "../ucd/NamesList.txt")
87 #t))
88 (add-before 'configure 'disable-dconf-update
89 (lambda _
90 (substitute* "data/dconf/Makefile.in"
91 (("dconf update") "echo dconf update"))
92 #t))
93 (add-after 'unpack 'delete-generated-files
94 (lambda _
95 (for-each (lambda (file)
96 (let ((c (string-append (string-drop-right file 4) "c")))
97 (when (file-exists? c)
98 (format #t "deleting ~a\n" c)
99 (delete-file c))))
100 (find-files "." "\\.vala"))
101 #t))
102 (add-after 'unpack 'fix-paths
103 (lambda* (#:key inputs #:allow-other-keys)
104 (substitute* "src/ibusenginesimple.c"
105 (("/usr/share/X11/locale")
106 (string-append (assoc-ref inputs "libx11")
107 "/share/X11/locale")))
108 (substitute* "ui/gtk3/xkblayout.vala"
109 (("\"(setxkbmap|xmodmap)\"" _ prog)
110 (string-append "\"" (assoc-ref inputs prog) "\"")))
111 #t))
112 (add-after 'wrap-program 'wrap-with-additional-paths
113 (lambda* (#:key outputs #:allow-other-keys)
114 ;; Make sure 'ibus-setup' runs with the correct PYTHONPATH and
115 ;; GI_TYPELIB_PATH.
116 (let ((out (assoc-ref outputs "out")))
117 (wrap-program (string-append out "/bin/ibus-setup")
118 `("PYTHONPATH" ":" prefix (,(getenv "PYTHONPATH")))
119 `("GI_TYPELIB_PATH" ":" prefix
120 (,(getenv "GI_TYPELIB_PATH")
121 ,(string-append out "/lib/girepository-1.0")))))
122 #t)))))
123 (inputs
124 `(("dbus" ,dbus)
125 ("dconf" ,dconf)
126 ("gconf" ,gconf)
127 ("gtk2" ,gtk+-2)
128 ("gtk+" ,gtk+)
129 ("intltool" ,intltool)
130 ("json-glib" ,json-glib)
131 ("libnotify" ,libnotify)
132 ("libx11" ,libx11)
133 ("setxkbmap" ,setxkbmap)
134 ("wayland" ,wayland)
135 ("xmodmap" ,xmodmap)
136 ("iso-codes" ,iso-codes)
137 ("pygobject2" ,python-pygobject)
138 ("python" ,python)))
139 (native-inputs
140 `(("glib" ,glib "bin") ; for glib-genmarshal
141 ("gobject-introspection" ,gobject-introspection) ; for g-ir-compiler
142 ("unicode-nameslist"
143 ,(origin
144 (method url-fetch)
145 (uri "https://www.unicode.org/Public/UNIDATA/NamesList.txt")
146 (sha256
147 (base32 "0yr2h0nfqhirfi3bxl33z6cc94qqshlpgi06c25xh9754irqsgv8"))))
148 ("unicode-blocks"
149 ,(origin
150 (method url-fetch)
151 (uri "https://www.unicode.org/Public/UNIDATA/Blocks.txt")
152 (sha256
153 (base32 "0lnh9iazikpr548bd7nkaq9r3vfljfvz0rg2462prac8qxk7ni8b"))))
154 ("vala" ,vala)
155 ("pkg-config" ,pkg-config)))
156 (native-search-paths
157 (list (search-path-specification
158 (variable "IBUS_COMPONENT_PATH")
159 (files '("share/ibus/component")))))
160 (synopsis "Input method framework")
161 (description
162 "IBus is an input framework providing a full-featured and user-friendly
aad6f5bc
RW
163input method user interface. It comes with multilingual input support. It
164may also simplify input method development.")
2f968763
MP
165 (home-page "https://github.com/ibus/ibus/wiki")
166 (license lgpl2.1+)))
12edffe4 167
5fbbd29f
RW
168(define-public ibus-libpinyin
169 (package
2f968763
MP
170 (name "ibus-libpinyin")
171 (version "1.10.0")
172 (source (origin
173 (method url-fetch)
174 (uri (string-append "https://github.com/libpinyin/ibus-libpinyin/"
175 "releases/download/" version
176 "/ibus-libpinyin-" version ".tar.gz"))
177 (sha256
178 (base32
179 "0yq8aw4lddiviag8cnik6fp52vvk8lxv6bym13a3xya84c6zii3c"))))
180 (build-system glib-or-gtk-build-system)
181 (arguments
182 `(#:phases
183 (modify-phases %standard-phases
184 (add-after 'wrap-program 'wrap-with-additional-paths
185 (lambda* (#:key inputs outputs #:allow-other-keys)
186 ;; Make sure 'ibus-setup-libpinyin' runs with the correct
187 ;; PYTHONPATH and GI_TYPELIB_PATH.
188 (let ((out (assoc-ref outputs "out")))
189 (wrap-program (string-append out "/libexec/ibus-setup-libpinyin")
190 `("PYTHONPATH" ":" prefix
191 (,(getenv "PYTHONPATH")
192 ,(string-append (assoc-ref inputs "ibus")
193 "/lib/girepository-1.0")))
194 `("GI_TYPELIB_PATH" ":" prefix
195 (,(string-append (assoc-ref inputs "ibus")
196 "/lib/girepository-1.0"))))
197 #t))))))
198 (inputs
199 `(("ibus" ,ibus)
200 ("libpinyin" ,libpinyin)
201 ("bdb" ,bdb)
202 ("sqlite" ,sqlite)
203 ("python" ,python)
204 ("pyxdg" ,python-pyxdg)
205 ("gtk+" ,gtk+)))
206 (native-inputs
207 `(("pkg-config" ,pkg-config)
208 ("intltool" ,intltool)
209 ("glib" ,glib "bin")))
210 (synopsis "Chinese pinyin and ZhuYin input methods for IBus")
211 (description
212 "This package includes a Chinese pinyin input method and a Chinese
5fbbd29f 213ZhuYin (Bopomofo) input method based on libpinyin for IBus.")
2f968763
MP
214 (home-page "https://github.com/libpinyin/ibus-libpinyin")
215 (license gpl2+)))
5fbbd29f 216
12edffe4
RW
217(define-public libpinyin
218 (package
219 (name "libpinyin")
8738c2b3 220 (version "2.2.0")
12edffe4
RW
221 (source (origin
222 (method url-fetch)
8738c2b3
RW
223 (uri (string-append "https://github.com/libpinyin/libpinyin/"
224 "releases/download/" version
225 "/libpinyin-2.2.0.tar.gz"))
12edffe4
RW
226 (sha256
227 (base32
8738c2b3 228 "1c4wxvcvjxvk23mcwqvsfsv4nhimx4kpjhabxa28gx1ih10l88gj"))))
12edffe4 229 (build-system gnu-build-system)
12edffe4
RW
230 (inputs
231 `(("glib" ,glib)
8738c2b3 232 ("bdb" ,bdb)))
12edffe4 233 (native-inputs
8738c2b3 234 `(("pkg-config" ,pkg-config)))
1f7a84dc 235 (synopsis "Library to handle Chinese pinyin")
12edffe4
RW
236 (description
237 "The libpinyin C++ library provides algorithms needed for sentence-based
238Chinese pinyin input methods.")
239 (home-page "https://github.com/libpinyin/libpinyin")
240 (license gpl2+)))
1c6ae418
CM
241
242(define-public ibus-anthy
243 (package
244 (name "ibus-anthy")
ab84c13f 245 (version "1.5.9")
1c6ae418
CM
246 (source (origin
247 (method url-fetch)
248 (uri (string-append
249 "https://github.com/ibus/ibus-anthy/releases/download/"
250 version "/ibus-anthy-" version ".tar.gz"))
251 (sha256
252 (base32
ab84c13f 253 "1y8sf837rmp662bv6zakny0xcm7c9c5qda7f9kq9riv9ywpcbw6x"))))
1c6ae418
CM
254 (build-system gnu-build-system)
255 (arguments
256 '(#:configure-flags
257 ;; Use absolute exec path in the anthy.xml.
258 (list (string-append "--libexecdir=" %output "/libexec"))
259 #:phases
260 (modify-phases %standard-phases
261 (add-after 'install 'wrap-programs
262 (lambda* (#:key outputs #:allow-other-keys)
263 (let ((out (assoc-ref outputs "out")))
264 (for-each
265 (lambda (prog)
266 (wrap-program (string-append out "/libexec/" prog)
267 `("PYTHONPATH" ":" prefix
268 (,(getenv "PYTHONPATH")))
269 `("GI_TYPELIB_PATH" ":" prefix
270 (,(getenv "GI_TYPELIB_PATH")
271 ,(string-append out "/lib/girepository-1.0")))))
272 '("ibus-engine-anthy" "ibus-setup-anthy"))
273 #t))))))
274 (native-inputs
b94a6ca0 275 `(("gettext" ,gettext-minimal)
1c6ae418
CM
276 ("intltool" ,intltool)
277 ("pkg-config" ,pkg-config)
278 ("python" ,python)))
279 (inputs
280 `(("anthy" ,anthy)
281 ("gtk+" ,gtk+)
282 ("ibus" ,ibus)
283 ("gobject-introspection" ,gobject-introspection)
284 ("python-pygobject" ,python-pygobject)))
285 (synopsis "Anthy Japanese language input method for IBus")
286 (description "IBus-Anthy is an engine for the input bus \"IBus\"). It
287adds the Anthy Japanese language input method to IBus. Because most graphical
288applications allow text input via IBus, installing this package will enable
289Japanese language input in most graphical applications.")
290 (home-page "https://github.com/fujiwarat/ibus-anthy")
291 (license gpl2+)))
78209a16
MP
292
293(define-public librime
294 (package
295 (name "librime")
66b266e6 296 (version "1.3.2")
78209a16
MP
297 (source
298 (origin
86374285
RW
299 (method git-fetch)
300 (uri (git-reference
301 (url "https://github.com/rime/librime.git")
302 (commit version)))
303 (file-name (git-file-name name version))
78209a16 304 (sha256
950ebfd1
EF
305 (base32
306 "06q10cv7a3i6d8l3sq79nasw3p1njvmjgh4jq2hqw9abcx351m1r"))
307 (modules '((guix build utils)))
308 (snippet
309 '(begin
310 (delete-file-recursively "thirdparty/src")
311 (delete-file-recursively "thirdparty/bin")
312 (delete-file-recursively "thirdparty/include/X11")
313 #t))))
78209a16 314 (build-system cmake-build-system)
950ebfd1
EF
315 (arguments
316 '(#:phases
317 (modify-phases %standard-phases
318 (add-after 'unpack 'patch-source
319 (lambda _
320 (substitute* "CMakeLists.txt"
321 (("include_directories\\($\\{PROJECT_SOURCE_DIR\\}/thirdparty/include\\)") "")
322 (("link_directories\\($\\{PROJECT_SOURCE_DIR\\}/thirdparty/lib\\)") ""))
323 #t)))))
78209a16
MP
324 (inputs
325 `(("boost" ,boost)
326 ("glog" ,glog)
327 ("leveldb" ,leveldb)
328 ("marisa" ,marisa)
329 ("opencc" ,opencc)
330 ("yaml-cpp" ,yaml-cpp)))
950ebfd1
EF
331 (native-inputs
332 `(("googletest" ,googletest)
333 ("xorgproto" ,xorgproto))) ; keysym.h
78209a16
MP
334 (home-page "https://rime.im/")
335 (synopsis "The core library of Rime Input Method Engine")
336 (description "@dfn{librime} is the core library of Rime Input Method
337Engine, which is a lightweight, extensible input method engine supporting
338various input schemas including glyph-based input methods, romanization-based
339input methods as well as those for Chinese dialects. It has the ability to
340compose phrases and sentences intelligently and provide very accurate
341traditional Chinese output.")
342 (license bsd-3)))
1329f095
MP
343
344(define-public rime-data
345 (package
346 (name "rime-data")
347 (version "0.38.20181029")
348 (source
349 (origin
350 (method git-fetch)
351 (uri (git-reference
352 (url "https://github.com/rime/plum.git")
353 (commit "fb4f829da2007f2dbb37d60a79bc67c25ea16568")))
354 (file-name "plum-checkout")
355 (sha256
356 (base32 "1m1wiv9j5bay4saga58c7dj4h8gqivsbyp16y245ifvxvp9czj67"))))
357 (build-system gnu-build-system)
358 (arguments
359 `(#:tests? #f ; no tests
360 #:make-flags (list (string-append "PREFIX=" (assoc-ref %outputs "out"))
361 "no_update=1")
362 #:phases
363 (modify-phases %standard-phases
364 (add-after 'unpack 'patch-source
365 (lambda _
366 ;; Set .DEFAULT_GOAL to `all'.
367 ;; Don't build binary schemas. The output is not deterministic.
368 (substitute* "Makefile"
369 (("^\\.DEFAULT_GOAL := preset")
370 ".DEFAULT_GOAL := all"))
371 #t))
372 ;; Add schema packages into "package/rime" directory.
373 (add-after 'unpack 'add-packages
374 (lambda* (#:key inputs #:allow-other-keys)
375 (let* ((dest-dir "package/rime"))
376 (mkdir-p dest-dir)
377 (for-each (lambda (pkg)
378 (symlink (assoc-ref inputs pkg)
379 (string-append dest-dir "/" pkg)))
380 '("array"
381 "bopomofo"
382 "cangjie"
383 "combo-pinyin"
384 "double-pinyin"
385 "emoji"
386 "essay"
387 "ipa"
388 "jyutping"
389 "luna-pinyin"
390 "middle-chinese"
391 "pinyin-simp"
392 "prelude"
393 "quick"
394 "scj"
395 "soutzoe"
396 "stenotype"
397 "stroke"
398 "terra-pinyin"
399 "wubi"
400 "wugniu")))
401 #t))
402 (delete 'configure))))
403 (native-inputs
404 `(("array"
405 ,(origin
406 (method git-fetch)
407 (uri (git-reference
408 (url "https://github.com/rime/rime-array.git")
409 (commit "906e923902147584b0b0247028a782abbfbfd8a0")))
410 (file-name "rime-array-checkout")
411 (sha256
412 (base32
413 "1alk6ghn4ji4kvp7lfm57bwm2gjh99i79r0w9naz6wkdim8idvb1"))))
414 ("bopomofo"
415 ,(origin
416 (method git-fetch)
417 (uri (git-reference
418 (url "https://github.com/rime/rime-bopomofo.git")
419 (commit "8dc44ca1b6ef4e45b452e070b9da737f5da165e3")))
420 (file-name "rime-bopomofo-checkout")
421 (sha256
422 (base32
423 "16k6wfhcrw3a77rmbrp21ca0gmsmb3f68s193c1cfwr8i68k46nf"))))
424 ("cangjie"
425 ,(origin
426 (method git-fetch)
427 (uri (git-reference
428 (url "https://github.com/rime/rime-cangjie.git")
429 (commit "ab085e90856b3399b374dc3c8b4cb40d11f307a8")))
430 (file-name "rime-cangjie-checkout")
431 (sha256
432 (base32
433 "11fgj0rbv9nyzfijwm2l8pm8fznhif4h27ndrrcaaylkp7p5zsx2"))))
434 ("combo-pinyin"
435 ,(origin
436 (method git-fetch)
437 (uri (git-reference
438 (url "https://github.com/rime/rime-combo-pinyin.git")
439 (commit "f1bae63f20504f2b8113c5cbdf2700e858aa91eb")))
440 (file-name "rime-combo-pinyin-checkout")
441 (sha256
442 (base32
443 "1l1079akwm1hw4kkn0q6x9fpylnl2ka6z2fn7lmdpfpsr0xgn0n7"))))
444 ("double-pinyin"
445 ,(origin
446 (method git-fetch)
447 (uri (git-reference
448 (url "https://github.com/rime/rime-double-pinyin.git")
449 (commit "2101a5cd40e511ec38835769aa66d2dddf059c2e")))
450 (file-name "rime-double-pinyin-checkout")
451 (sha256
452 (base32
453 "19hh2qm0njbfk2js678hfm2hw9b796s43vs11yy3m1v9m0gk2vi7"))))
454 ("emoji"
455 ,(origin
456 (method git-fetch)
457 (uri (git-reference
458 (url "https://github.com/rime/rime-emoji.git")
459 (commit "6e6611b315f03ee4c33f958f9dbe960b13a0ed19")))
460 (file-name "rime-emoji-checkout")
461 (sha256
462 (base32
463 "1brfs3214w36j3345di9ygp468hbvbqdqpkjxxs1dbp437rayhyy"))))
464 ("essay"
465 ,(origin
466 (method git-fetch)
467 (uri (git-reference
468 (url "https://github.com/rime/rime-essay.git")
469 (commit "5e5c7a0ef41c9b030abdad81a9df07b56b1661e9")))
470 (file-name "rime-essay-checkout")
471 (sha256
472 (base32
473 "0ana9is0zhh79m4gjshvmaxbrg3jiqysydx5bpm151i7i6vw5y1i"))))
474 ("ipa"
475 ,(origin
476 (method git-fetch)
477 (uri (git-reference
478 (url "https://github.com/rime/rime-ipa.git")
479 (commit "02a9e2c181921a2e95e1a81f88188c41132755c3")))
480 (file-name "rime-ipa-checkout")
481 (sha256
482 (base32
483 "1szrxgvqlgmxapj2aflw2cvbv0p6pl0sw0gyxa13dvdhhf7s9rvr"))))
484 ("jyutping"
485 ,(origin
486 (method git-fetch)
487 (uri (git-reference
488 (url "https://github.com/rime/rime-jyutping.git")
489 (commit "1402ec3d6cc0973f952fe3f9ef531294e4ffe9e0")))
490 (file-name "rime-jyutping-checkout")
491 (sha256
492 (base32
493 "17g03dy4gw6vyc9da1wjn3iy9hx64dfnwiwsfc7bkzan22x2m4dv"))))
494 ("luna-pinyin"
495 ,(origin
496 (method git-fetch)
497 (uri (git-reference
498 (url "https://github.com/rime/rime-luna-pinyin.git")
499 (commit "3b05132576f5c347ff8a70857d2dae080936ac3b")))
500 (file-name "rime-luna-pinyin-checkout")
501 (sha256
502 (base32
503 "0kgnpxjn10dm2d9718r12rdjlwqd2s2h84jvkhxhh5v0dkv1anl2"))))
504 ("middle-chinese"
505 ,(origin
506 (method git-fetch)
507 (uri (git-reference
508 (url "https://github.com/rime/rime-middle-chinese.git")
509 (commit "9ba8d70330654b9a730f882d35cfad7dbeddfd75")))
510 (file-name "rime-middle-chinese-checkout")
511 (sha256
512 (base32
513 "0hwg5zby5kphh0bcfay8mfxwr5bwqhamiw3cmmmf7kp9fbns5s23"))))
514 ("pinyin-simp"
515 ,(origin
516 (method git-fetch)
517 (uri (git-reference
518 (url "https://github.com/rime/rime-pinyin-simp.git")
519 (commit "74357ffd62c05fb60edf6eab5b86bc8c8c1907d0")))
520 (file-name "rime-pinyin-simp-checkout")
521 (sha256
522 (base32
523 "1paw3c7pv5bl54abnp9pidfxrkchdacyxy5m9zb311p5sgm7fhxh"))))
524 ("prelude"
525 ,(origin
526 (method git-fetch)
527 (uri (git-reference
528 (url "https://github.com/rime/rime-prelude.git")
529 (commit "33040568c3ddb2ee6340c9b669494317db21b77c")))
530 (file-name "rime-prelude-checkout")
531 (sha256
532 (base32
533 "1gwcasyyg6f0ib6s4qsrrjcqr1lcs7j3xqxl65rznsw44nhnbwwq"))))
534 ("quick"
535 ,(origin
536 (method git-fetch)
537 (uri (git-reference
538 (url "https://github.com/rime/rime-quick.git")
539 (commit "910a97d403ad8e72f322488da146da79c19d623f")))
540 (file-name "rime-quick-checkout")
541 (sha256
542 (base32
543 "0yrq3gbfmm29xlr52rmxc41mqfrb0295q7sdhbc3ax71677mpr0y"))))
544 ("scj"
545 ,(origin
546 (method git-fetch)
547 (uri (git-reference
548 (url "https://github.com/rime/rime-scj.git")
549 (commit "e0eae889f4376d2a434ac3b38523e0da7400db68")))
550 (file-name "rime-scj-checkout")
551 (sha256
552 (base32
553 "1whnv9zs349kvy0zi7dnmpqwil8i6gqwrzvhy3qdrjzy58y6gwxn"))))
554 ("soutzoe"
555 ,(origin
556 (method git-fetch)
557 (uri (git-reference
558 (url "https://github.com/rime/rime-soutzoe.git")
559 (commit "e47841a8ad6341731c41cdb814b7a25c837603c4")))
560 (file-name "rime-soutzoe-checkout")
561 (sha256
562 (base32
563 "1rgpmkxa72jy6gyy44fn8azpk3amk9s9lrdf7za03nv95d0fvm0p"))))
564 ("stenotype"
565 ,(origin
566 (method git-fetch)
567 (uri (git-reference
568 (url "https://github.com/rime/rime-stenotype.git")
569 (commit "d4ff379314fd95283853d1734854979cf3cbd287")))
570 (file-name "rime-stenotype-checkout")
571 (sha256
572 (base32
573 "1kckpi4l4884hvydr3d6vid3v7rsc1app29kmk7v8jf8vn16afhl"))))
574 ("stroke"
575 ,(origin
576 (method git-fetch)
577 (uri (git-reference
578 (url "https://github.com/rime/rime-stroke.git")
579 (commit "cfd29c675c46cf70b7a7f0a3836a913059316a0a")))
580 (file-name "rime-stroke-checkout")
581 (sha256
582 (base32
583 "135is9c1p4lm98fd9l1gxyflkm69cv5an129ka7sk614bq84m08d"))))
584 ("terra-pinyin"
585 ,(origin
586 (method git-fetch)
587 (uri (git-reference
588 (url "https://github.com/rime/rime-terra-pinyin.git")
589 (commit "15b5c73a796571cd6f9ef6c89f96656cb9df86f9")))
590 (file-name "rime-terra-pinyin-checkout")
591 (sha256
592 (base32
593 "1xsd84h1zw417h5hr4dbgyk5009zi7q2p9774w3ccr5sxgc3i3cm"))))
594 ("wubi"
595 ,(origin
596 (method git-fetch)
597 (uri (git-reference
598 (url "https://github.com/rime/rime-wubi.git")
599 (commit "d44403728a0b1cd8b47cb1f81b83f58e5f790b74")))
600 (file-name "rime-wubi-checkout")
601 (sha256
602 (base32
603 "0ld31bdn94lncxd1ka44w4sbl03skh08mc927dhdmwq5bpvrgn36"))))
604 ("wugniu"
605 ,(origin
606 (method git-fetch)
607 (uri (git-reference
608 (url "https://github.com/rime/rime-wugniu.git")
609 (commit "65bcc354ada3839591d7546a64c71dbdd0592b02")))
610 (file-name "rime-wugniu-checkout")
611 (sha256
612 (base32
613 "0g31awp40s778sp5c290x40s8np86n8aw011s17sslxrqhhb0bkx"))))))
614 (home-page "https://rime.im/")
615 (synopsis "Schema data of Rime Input Method Engine")
616 (description "@dfn{rime-data} provides the schema data of Rime Input
617Method Engine.")
618 (license lgpl3+)))
d5b23d2b
MP
619
620(define-public ibus-rime
621 (package
622 (name "ibus-rime")
623 (version "1.3.0")
624 (source
625 (origin
487e3f5a
RW
626 (method git-fetch)
627 (uri (git-reference
628 (url "https://github.com/rime/ibus-rime.git")
629 (commit version)))
630 (file-name (git-file-name name version))
d5b23d2b 631 (sha256
487e3f5a 632 (base32 "1nqi7ymv34a9kx24say3xj98lkrs9nkpv1n2ijb91wdz3cr012ly"))))
d5b23d2b
MP
633 (build-system gnu-build-system)
634 (arguments
635 `(#:tests? #f ; no tests
636 #:make-flags (list (string-append "PREFIX=" (assoc-ref %outputs "out")))
637 #:phases
638 (modify-phases %standard-phases
639 (add-after 'unpack 'patch-source
640 (lambda* (#:key inputs outputs #:allow-other-keys)
641 ;; Define RIME_DATA_DIR. It's required but not used by the code.
642 (substitute* "Makefile"
643 (("cmake")
644 (string-append "cmake -DRIME_DATA_DIR="
645 (assoc-ref inputs "rime-data")
646 "/share/rime-data")))
647 ;; rime_config.h defines the actual data directory.
648 (substitute* "rime_config.h"
649 (("^#define IBUS_RIME_INSTALL_PREFIX .*$")
650 (string-append "#define IBUS_RIME_INSTALL_PREFIX \""
651 (assoc-ref outputs "out")
652 "\"\n"))
653 (("^#define IBUS_RIME_SHARED_DATA_DIR .*$")
654 (string-append "#define IBUS_RIME_SHARED_DATA_DIR \""
655 (assoc-ref inputs "rime-data")
656 "/share/rime-data\"\n")))
657 #t))
658 (delete 'configure))))
659 (inputs
660 `(("gdk-pixbuf" ,gdk-pixbuf)
661 ("glib" ,glib)
662 ("ibus" ,ibus)
663 ("libnotify" ,libnotify)
664 ("librime" ,librime)
665 ("rime-data" ,rime-data)))
666 (native-inputs
667 `(("cmake" ,cmake)
668 ("pkg-config" ,pkg-config)))
669 (home-page "https://rime.im/")
670 (synopsis "Rime Input Method Engine for IBus")
671 (description "@dfn{ibus-rime} provides the Rime input method engine for
672IBus. Rime is a lightweight, extensible input method engine supporting
673various input schemas including glyph-based input methods, romanization-based
674input methods as well as those for Chinese dialects. It has the ability to
675compose phrases and sentences intelligently and provide very accurate
676traditional Chinese output.")
677 (license gpl3+)))