[PATCH]: Add fcitx5.

  • Done
  • quality assurance status badge
Details
3 participants
  • Zhu Zihao
  • ???
  • Peng Mei Yu
Owner
unassigned
Submitted by
Zhu Zihao
Severity
normal
Z
Z
Zhu Zihao wrote on 28 Nov 2020 06:44
(address . guix-patches@gnu.org)
86360uujbf.fsf@163.com
This is a series of patches, add fcitx5 and its build dependecies.
a qt5 and gtk2/3 plugin, chinese inputmethod addon and a material theme
-----BEGIN PGP SIGNATURE-----

iQFJBAEBCAAzFiEE7NCVzXX6efyusptG1SOVn+xGFqYFAl/B47QVHGFsbF9idXRf
bGFzdEAxNjMuY29tAAoJENUjlZ/sRhamDv0H/R6frvIFOBz70Tyb/pJ5QR6H2RX2
wgpDK1ohZ5errFfFSnGBKgFvChlDc/r7uGg4OC33xd0EW82B+QZSdOfJff2QVq9n
13bPi0oHqKVkjyQ+DFl7xyOZUPCdQ2ysy6sSkC6QYwr8bcPS1/MBCltEOX6T6euU
+PIcL/viNTb8vOTNmwj/GqD4xXyWsAh/6pUmy8jAC5j2knu5pMzVGpYR/L1Fx9le
vcAfD7TskSTpXM5NfHrQDPuIRNz0HrwKr/jJobDiqWEYOjfpOx6tImKyuNP93qsv
ew2sBphiSrqT8zeFM5zBT3QtQf7l7TM3n42V79iHbnBDQf7OgDcdKRToUMc=
=MUcB
-----END PGP SIGNATURE-----

From cbe128e488078b3af8f7d1bdb4bf9dc9f12a2f0b Mon Sep 17 00:00:00 2001
From: Zhu Zihao <all_but_last@163.com>
Date: Sat, 28 Nov 2020 13:16:50 +0800
Subject: [PATCH 1/9] gnu: Add xcb-imdkit.

* gnu/packages/fcitx5.scm: New file.
(xcb-imdkit): New variable.
---
gnu/packages/fcitx5.scm | 84 +++++++++++++++++++++++++++++++++++++++++
1 file changed, 84 insertions(+)
create mode 100644 gnu/packages/fcitx5.scm

Toggle diff (92 lines)
diff --git a/gnu/packages/fcitx5.scm b/gnu/packages/fcitx5.scm
new file mode 100644
index 0000000000..171d545ed8
--- /dev/null
+++ b/gnu/packages/fcitx5.scm
@@ -0,0 +1,84 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2020 Zhu Zihao <all_but_last@163.com>
+;;;
+;;; This file is part of GNU Guix.
+;;;
+;;; GNU Guix is free software; you can redistribute it and/or modify it
+;;; under the terms of the GNU General Public License as published by
+;;; the Free Software Foundation; either version 3 of the License, or (at
+;;; your option) any later version.
+;;;
+;;; GNU Guix is distributed in the hope that it will be useful, but
+;;; WITHOUT ANY WARRANTY; without even the implied warranty of
+;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+;;; GNU General Public License for more details.
+;;;
+;;; You should have received a copy of the GNU General Public License
+;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
+
+(define-module (gnu packages fcitx5)
+ #:use-module (guix packages)
+ #:use-module (guix download)
+ #:use-module (guix git-download)
+ #:use-module (guix build-system cmake)
+ #:use-module (guix build-system copy)
+ #:use-module ((guix licenses) #:prefix license:)
+ #:use-module (gnu packages)
+ #:use-module (gnu packages boost)
+ #:use-module (gnu packages curl)
+ #:use-module (gnu packages datastructures)
+ #:use-module (gnu packages enchant)
+ #:use-module (gnu packages freedesktop)
+ #:use-module (gnu packages gettext)
+ #:use-module (gnu packages gcc)
+ #:use-module (gnu packages glib)
+ #:use-module (gnu packages gtk)
+ #:use-module (gnu packages iso-codes)
+ #:use-module (gnu packages kde-frameworks)
+ #:use-module (gnu packages libevent)
+ #:use-module (gnu packages linux)
+ #:use-module (gnu packages lua)
+ #:use-module (gnu packages pkg-config)
+ #:use-module (gnu packages pretty-print)
+ #:use-module (gnu packages python)
+ #:use-module (gnu packages qt)
+ #:use-module (gnu packages textutils)
+ #:use-module (gnu packages unicode)
+ #:use-module (gnu packages web)
+ #:use-module (gnu packages xdisorg)
+ #:use-module (gnu packages xml)
+ #:use-module (gnu packages xorg))
+
+(define-public xcb-imdkit
+ (package
+ (name "xcb-imdkit")
+ (version "1.0.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "https://download.fcitx-im.org/fcitx5/xcb-imdkit/xcb-imdkit-"
+ version ".tar.xz"))
+ (sha256
+ (base32 "0qgbklk5a809asyaxi6v9iasxc19g16fc5rphnamhwrliczlycas"))
+ (modules '((guix build utils)))
+ (snippet
+ '(begin
+ ;; Remove bundled uthash.
+ (delete-file-recursively "uthash")
+ #t))))
+ (build-system cmake-build-system)
+ (inputs
+ `(("uthash" ,uthash)
+ ("libxcb" ,libxcb)
+ ("xcb-util" ,xcb-util)
+ ("xcb-util-keysyms" ,xcb-util-keysyms)))
+ (native-inputs
+ `(("extra-cmake-modules" ,extra-cmake-modules)
+ ("pkg-config" ,pkg-config)))
+ (home-page "https://github.com/fcitx/xcb-imdkit")
+ (synopsis "Input method development support for XCB.")
+ (description "Xcb-imdkit is an implementation of xim protocol in XCB,
+comparing with the implementation of IMDkit with Xlib, and xim inside Xlib,
+it has less memory foot print, better performance, and safer on malformed
+client.")
+ (license license:lgpl2.1)))
--
2.29.2
From d1e53ec2239077da96d871900fbb4c6d2d274cc5 Mon Sep 17 00:00:00 2001
From: Zhu Zihao <all_but_last@163.com>
Date: Sat, 28 Nov 2020 13:20:51 +0800
Subject: [PATCH 3/9] gnu: Add fcitx5-lua.

* gnu/packages/fcitx5.scm(fcitx5-lua): New variable.
---
gnu/packages/fcitx5.scm | 44 +++++++++++++++++++++++++++++++++++++++++
1 file changed, 44 insertions(+)

Toggle diff (54 lines)
diff --git a/gnu/packages/fcitx5.scm b/gnu/packages/fcitx5.scm
index c4ee0c6e3c..c48eafbad5 100644
--- a/gnu/packages/fcitx5.scm
+++ b/gnu/packages/fcitx5.scm
@@ -145,3 +145,47 @@ client.")
(description "Fcitx 5 is a generic input method framework, the successor
of Fcitx.")
(license license:lgpl2.1+)))
+
+(define-public fcitx5-lua
+ (package
+ (name "fcitx5-lua")
+ (version "5.0.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "https://download.fcitx-im.org/fcitx5/fcitx5-lua/fcitx5-lua-"
+ version ".tar.xz"))
+ (sha256
+ (base32 "0v4kjx5bargmzfm3v2kys1kzfbpkbd8inzw23y9hslc8h5zazj33"))))
+ (build-system cmake-build-system)
+ (arguments
+ `(#:configure-flags
+ (list
+ (string-append "-DFEM_INCLUDE_INSTALL_DIR=" %output "/include")
+ (string-append "-DFEM_LIB_INSTALL_DIR=" %output "/lib"))
+ #:phases
+ (modify-phases %standard-phases
+ (add-before 'configure 'patch-install-prefix
+ (lambda* (#:key outputs #:allow-other-keys)
+ (for-each
+ (lambda (x)
+ (format #t "patch-install-prefix: Fixing install prefix in ~a~%"
+ x)
+ (substitute* x
+ (("\\$\\{FCITX_INSTALL_PKGDATADIR\\}")
+ (string-append (assoc-ref outputs "out")
+ "/share/fcitx5"))))
+ '("src/addonloader/CMakeLists.txt"
+ "src/imeapi/CMakeLists.txt"))
+ #t)))))
+ (inputs
+ `(("fcitx5" ,fcitx5)
+ ("lua" ,lua)
+ ("gettext" ,gettext-minimal)
+ ("libpthread-stubs" ,libpthread-stubs)))
+ (native-inputs
+ `(("extra-cmake-modules" ,extra-cmake-modules)))
+ (home-page "https://github.com/fcitx/fcitx5-lua")
+ (synopsis "Lua support for Fcitx 5")
+ (description "Fcitx5-lua allow user to write Fcitx5 extension in Lua.")
+ (license license:lgpl2.1+)))
--
2.29.2
From 69b4cfc316e81e9c0ebdb307af033bf2e0a5faca Mon Sep 17 00:00:00 2001
From: Zhu Zihao <all_but_last@163.com>
Date: Sat, 28 Nov 2020 13:21:38 +0800
Subject: [PATCH 4/9] gnu: Add libime.

* gnu/packages/fcitx5.scm(libime): New variable.
---
gnu/packages/fcitx5.scm | 25 +++++++++++++++++++++++++
1 file changed, 25 insertions(+)

Toggle diff (35 lines)
diff --git a/gnu/packages/fcitx5.scm b/gnu/packages/fcitx5.scm
index c48eafbad5..9f031a1289 100644
--- a/gnu/packages/fcitx5.scm
+++ b/gnu/packages/fcitx5.scm
@@ -189,3 +189,28 @@ of Fcitx.")
(synopsis "Lua support for Fcitx 5")
(description "Fcitx5-lua allow user to write Fcitx5 extension in Lua.")
(license license:lgpl2.1+)))
+
+(define-public libime
+ (package
+ (name "libime")
+ (version "1.0.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "https://download.fcitx-im.org/fcitx5/libime/libime-"
+ version "_dict.tar.xz"))
+ (sha256
+ (base32 "0kymzn0srdmpbn43rg4zpz09baz3bcw18v648jsqsb2j488s2paq"))))
+ (build-system cmake-build-system)
+ (inputs
+ `(("fcitx5" ,fcitx5)
+ ("boost" ,boost)))
+ (native-inputs
+ `(("gcc" ,gcc-9) ;for #include <filesystem> and ld support
+ ("extra-cmake-modules" ,extra-cmake-modules)
+ ("python" ,python))) ;needed to run test
+ (home-page "https://github.com/fcitx/libime")
+ (synopsis "Library supports generic input method implmentation")
+ (description "Libime is a library, being used to implment various input
+methods for Fcitx 5.")
+ (license license:lgpl2.1+)))
--
2.29.2
From 8af5ff96d20a5fd2b3faa43b05935f9755880959 Mon Sep 17 00:00:00 2001
From: Zhu Zihao <all_but_last@163.com>
Date: Sat, 28 Nov 2020 13:24:20 +0800
Subject: [PATCH 5/9] gnu: Add fcitx5-qt.

* gnu/packages/fcitx5.scm(fcitx5-qt): New variable.
---
gnu/packages/fcitx5.scm | 36 ++++++++++++++++++++++++++++++++++++
1 file changed, 36 insertions(+)

Toggle diff (46 lines)
diff --git a/gnu/packages/fcitx5.scm b/gnu/packages/fcitx5.scm
index 9f031a1289..4e3ba010ef 100644
--- a/gnu/packages/fcitx5.scm
+++ b/gnu/packages/fcitx5.scm
@@ -214,3 +214,39 @@ of Fcitx.")
(description "Libime is a library, being used to implment various input
methods for Fcitx 5.")
(license license:lgpl2.1+)))
+
+(define-public fcitx5-qt
+ (package
+ (name "fcitx5-qt")
+ (version "5.0.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "https://download.fcitx-im.org/fcitx5"
+ "/fcitx5-qt/fcitx5-qt-"
+ version ".tar.xz"))
+ (sha256
+ (base32 "0s0spjr8m7dw2f18xxqg6lwn3y575g411j9j9w8xv1cqsm9fm49f"))))
+ (build-system cmake-build-system)
+ (arguments
+ `(#:configure-flags
+ (list (string-append "-DCMAKE_INSTALL_QT5PLUGINDIR="
+ %output "/lib/qt5/plugins")
+ "-DENABLE_QT4=Off")))
+ (inputs
+ `(("fcitx5" ,fcitx5)
+ ("libxcb" ,libxcb)
+ ("libxkbcommon" ,libxkbcommon)
+ ("qtbase" ,qtbase)
+ ("gettext" ,gettext-minimal)))
+ (native-inputs
+ `(("extra-cmake-modules" ,extra-cmake-modules)))
+ (home-page "https://github.com/fcitx/fcitx5-qt")
+ (synopsis "Qt library and IM module for Fcitx 5")
+ (description "Fcitx5-qt provides Qt library for development and IM module
+for Qt5 based application.")
+ (license (list license:lgpl2.1+
+ ;; Files under qt4/ which include Fcitx5Qt4DBusAddons Library
+ ;; and input context plugin and files under qt5/dbusaddons
+ ;; and qt5/platforminputcontext
+ license:bsd-3))))
--
2.29.2
From 9a4111139bc059fbacc2f6aa8a3d5922d4f837fd Mon Sep 17 00:00:00 2001
From: Zhu Zihao <all_but_last@163.com>
Date: Sat, 28 Nov 2020 13:25:19 +0800
Subject: [PATCH 6/9] gnu: Add fcitx5-gtk.

* gnu/packages/fcitx5.scm(fcitx5-gtk): New variable.
---
gnu/packages/fcitx5.scm | 50 +++++++++++++++++++++++++++++++++++++++++
1 file changed, 50 insertions(+)

Toggle diff (63 lines)
diff --git a/gnu/packages/fcitx5.scm b/gnu/packages/fcitx5.scm
index 4e3ba010ef..9673ff2c47 100644
--- a/gnu/packages/fcitx5.scm
+++ b/gnu/packages/fcitx5.scm
@@ -215,6 +215,56 @@ of Fcitx.")
methods for Fcitx 5.")
(license license:lgpl2.1+)))
+(define-public fcitx5-gtk
+ (package
+ (name "fcitx5-gtk")
+ (version "5.0.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "https://download.fcitx-im.org/fcitx5"
+ "/fcitx5-gtk/fcitx5-gtk-"
+ version ".tar.xz"))
+ (sha256
+ (base32 "0k09f3ca4jm4y33xr642wrbf2zfjqr7gjx1i28z0vwb1rmjn026y"))))
+ (build-system cmake-build-system)
+ (arguments
+ `(#:tests? #f ;No test
+ #:configure-flags
+ (list (string-append "-DGOBJECT_INTROSPECTION_GIRDIR="
+ %output "/share/gir-1.0")
+ (string-append "-DGOBJECT_INTROSPECTION_TYPELIBDIR="
+ %output "/lib/girepository-1.0"))
+ #:phases
+ (modify-phases %standard-phases
+ (add-before 'configure 'patch-install-prefix
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let ((out (assoc-ref outputs "out"))
+ (gtk3 (assoc-ref outputs "gtk3")))
+
+ (substitute* "gtk3/CMakeLists.txt"
+ (("\\$\\{CMAKE_INSTALL_LIBDIR\\}")
+ (string-append gtk3 "/lib")))))))))
+ (inputs
+ `(("fcitx5" ,fcitx5)
+ ("libxkbcommon" ,libxkbcommon)
+ ("gobject-introspection" ,gobject-introspection)
+ ("gtk2" ,gtk+-2)
+ ("gtk3" ,gtk+)
+ ("glib" ,glib)
+ ("libx11" ,libx11)
+ ("gettext" ,gettext-minimal)))
+ (native-inputs
+ `(("extra-cmake-modules" ,extra-cmake-modules)
+ ("pkg-config" ,pkg-config)
+ ("glib" ,glib "bin"))) ;for glib-genmarshal
+ (outputs '("out" "gtk3"))
+ (home-page "https://github.com/fcitx/fcitx5-gtk")
+ (synopsis "Glib based D-Bus client and GTK IM module for Fcitx 5")
+ (description "Fcitx5-qt provides a Glib based D-Bus client for development
+and IM module for GTK+2/GTK+3 application.")
+ (license license:lgpl2.1+)))
+
(define-public fcitx5-qt
(package
(name "fcitx5-qt")
--
2.29.2
From f0905307b179d478475a0433cbebf1532ecf6a95 Mon Sep 17 00:00:00 2001
From: Zhu Zihao <all_but_last@163.com>
Date: Sat, 28 Nov 2020 13:25:37 +0800
Subject: [PATCH 7/9] gnu: Add fcitx5-chinese-addons.

* gnu/packages/fcitx5.scm(fcitx5-chinese-addons): New variable.
---
gnu/packages/fcitx5.scm | 79 +++++++++++++++++++++++++++++++++++++++++
1 file changed, 79 insertions(+)

Toggle diff (89 lines)
diff --git a/gnu/packages/fcitx5.scm b/gnu/packages/fcitx5.scm
index 9673ff2c47..076a96992d 100644
--- a/gnu/packages/fcitx5.scm
+++ b/gnu/packages/fcitx5.scm
@@ -300,3 +300,82 @@ for Qt5 based application.")
;; and input context plugin and files under qt5/dbusaddons
;; and qt5/platforminputcontext
license:bsd-3))))
+
+(define-public fcitx5-chinese-addons
+ (package
+ (name "fcitx5-chinese-addons")
+ (version "5.0.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "https://download.fcitx-im.org/fcitx5"
+ "/fcitx5-chinese-addons/fcitx5-chinese-addons-"
+ version "_dict.tar.xz"))
+ (sha256
+ (base32 "015yx7wwhyjnhbrx2akc90nnzvmyhv1jv2n0mv7x7hsj05m62q8l"))))
+ (build-system cmake-build-system)
+ (arguments
+ `(#:configure-flags
+ (list
+ (string-append "-DFEM_INCLUDE_INSTALL_DIR=" %output "/include")
+ (string-append "-DFEM_LIB_INSTALL_DIR=" %output "/lib")
+ ;; "-DENABLE_GUI=Off"
+ )
+ #:phases
+ (modify-phases %standard-phases
+ (add-before 'configure 'patch-install-prefix
+ (lambda* (#:key outputs #:allow-other-keys)
+ (for-each
+ (lambda (x)
+ (format #t "patch-install-prefix: Fixing install prefix in ~a~%"
+ x)
+ (substitute* x
+ (("\\$\\{FCITX_INSTALL_PKGDATADIR\\}")
+ (string-append (assoc-ref outputs "out")
+ "/share/fcitx5"))))
+ (find-files "." "CMakeLists\\.txt$"))
+ #t))
+ (add-before 'configure 'split-outputs
+ ;; Build with GUI supports requires Qt and increase package closure
+ ;; by 800M on x86_64, so place it under another output.
+ (lambda* (#:key outputs #:allow-other-keys)
+ (substitute* "gui/pinyindictmanager/CMakeLists.txt"
+ (("\\$\\{CMAKE_INSTALL_LIBDIR\\}" _)
+ (string-append (assoc-ref outputs "gui") "/lib"))))))))
+ (inputs
+ `(("fcitx5" ,fcitx5)
+ ("fcitx5-lua" ,fcitx5-lua)
+ ("boost" ,boost)
+ ("libime",libime)
+ ("curl" ,curl)
+ ("gettext" ,gettext-minimal)
+ ("fmt" ,fmt)
+ ("libpthread-stubs" ,libpthread-stubs)
+ ("opencc" ,opencc)
+ ("qtbase" ,qtbase)
+ ("fcitx5-qt" ,fcitx5-qt)
+ ("qtwebkit" ,qtwebkit)))
+ (native-inputs
+ `(("extra-cmake-modules" ,extra-cmake-modules)
+ ("pkg-config" ,pkg-config)))
+ (outputs '("out" "gui"))
+ (home-page "https://github.com/fcitx/fcitx5-chinese-addons")
+ (synopsis "Chinese related addons for Fcitx 5")
+ (description "Fcitx5-chinese-addons provides Chinese related addons,
+including input methods previous bundled inside Fcitx 4:
+
+@itemize
+@item Bingchan
+@item Cangjie
+@item Erbi
+@item Pinyin
+@item Shuangpin
+@item Wanfeng
+@item Wubi
+@item Wubi Pinyin
+@item Ziranma
+@end itemize\n")
+ (license (list license:lgpl2.1+
+ license:gpl2+
+ ;; im/pinyin/emoji.txt
+ license:unicode))))
--
2.29.2
From 95c20d878565cb3ff7870187e1806743d7e526f3 Mon Sep 17 00:00:00 2001
From: Zhu Zihao <all_but_last@163.com>
Date: Sat, 28 Nov 2020 13:25:55 +0800
Subject: [PATCH 8/9] gnu: Add fcitx5-configtool.

* gnu/packages/fcitx5.scm(fcitx5-configtool): New variable.
---
gnu/packages/fcitx5.scm | 42 +++++++++++++++++++++++++++++++++++++++++
1 file changed, 42 insertions(+)

Toggle diff (52 lines)
diff --git a/gnu/packages/fcitx5.scm b/gnu/packages/fcitx5.scm
index 076a96992d..bc8fa5d7dc 100644
--- a/gnu/packages/fcitx5.scm
+++ b/gnu/packages/fcitx5.scm
@@ -379,3 +379,45 @@ including input methods previous bundled inside Fcitx 4:
license:gpl2+
;; im/pinyin/emoji.txt
license:unicode))))
+
+(define-public fcitx5-configtool
+ (let ((revision "0")
+ (commit "9c01bfc7477c203443ed073397670df52d1a6fc0"))
+ (package
+ (name "fcitx5-configtool")
+ (version (git-version "5.0.0" revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/fcitx/fcitx5-configtool")
+ (commit commit)))
+ (sha256
+ (base32 "03hfbr97953alxax3db1x16h17cgqx30xvqs070iz8rj232iiaia"))))
+ (build-system cmake-build-system)
+ (arguments
+ `(#:configure-flags
+ ;; KDE is currently not working on Guix, KCM supports doesn't make sense.
+ '("-DENABLE_KCM=Off")))
+ (inputs
+ `(("fcitx5" ,fcitx5)
+ ("fcitx5-qt" ,fcitx5-qt)
+ ("qtbase" ,qtbase)
+ ("qtx11extras" ,qtx11extras)
+ ("kitemviews" ,kitemviews)
+ ("kwidgetsaddons" ,kwidgetsaddons)
+ ("libx11" ,libx11)
+ ("xkeyboard-config" ,xkeyboard-config)
+ ("libxkbfile" ,libxkbfile)
+ ("gettext" ,gettext-minimal)
+ ("iso-codes" ,iso-codes)))
+ (native-inputs
+ `(("gcc" ,gcc-9)
+ ("extra-cmake-modules" ,extra-cmake-modules)
+ ("pkg-config" ,pkg-config)))
+ (home-page "https://github.com/fcitx/fcitx5-configtool")
+ (synopsis "Graphical configuration tool for Fcitx 5")
+ (description "Fcitx5-configtool is a graphical configuration tool
+written in Qt, design for managing different input methods running under
+Fcitx 5.")
+ (license license:gpl2+))))
--
2.29.2
From 32f4fef151807a0620fec7654094ed3945a02bcf Mon Sep 17 00:00:00 2001
From: Zhu Zihao <all_but_last@163.com>
Date: Sat, 28 Nov 2020 13:27:08 +0800
Subject: [PATCH 9/9] gnu: Add fcitx5-material-color-theme.

* gnu/packages/fcitx5.scm(fcitx5-material-color-theme): New variable.
---
gnu/packages/fcitx5.scm | 70 +++++++++++++++++++++++++++++++++++++++++
1 file changed, 70 insertions(+)

Toggle diff (80 lines)
diff --git a/gnu/packages/fcitx5.scm b/gnu/packages/fcitx5.scm
index bc8fa5d7dc..80fb989408 100644
--- a/gnu/packages/fcitx5.scm
+++ b/gnu/packages/fcitx5.scm
@@ -421,3 +421,73 @@ including input methods previous bundled inside Fcitx 4:
written in Qt, design for managing different input methods running under
Fcitx 5.")
(license license:gpl2+))))
+
+(define-public fcitx5-material-color-theme
+ (package
+ (name "fcitx5-material-color-theme")
+ (version "0.1")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/hosxy/Fcitx5-Material-Color")
+ (commit version)))
+ (sha256
+ (base32 "1mgc722521jmfx0xc3ibmiycd3q2w7xg2956xcpc07kz90gcdjaa"))))
+ (build-system copy-build-system)
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ (replace 'install
+ (lambda* (#:key outputs #:allow-other-keys)
+ (use-modules (srfi srfi-26))
+
+ (let* ((out (assoc-ref outputs "out"))
+ (assets-dir (string-append
+ out "/share/fcitx5-material-color-theme"))
+ (themes-prefix (string-append out "/share/fcitx5/themes")))
+
+ (define (install-theme-variant variant target)
+ (let ((dir (string-append themes-prefix "/" target))
+ (png (string-append "panel-" variant ".png"))
+ (conf (string-append "theme-" variant ".conf")))
+ (format #t "install: Installing color variant \"~a\" to ~a~%"
+ variant dir)
+ (substitute* conf
+ (("^Name=.*")
+ (string-append "Name=" target "\n")))
+ (mkdir-p dir)
+ (install-file png dir)
+ (copy-file conf (string-append dir "/theme.conf"))
+ (symlink (string-append assets-dir "/arrow.png")
+ (string-append dir "/arrow.png"))))
+
+ (mkdir-p assets-dir)
+ (install-file "arrow.png" assets-dir)
+ (for-each
+ (lambda (x)
+ (install-theme-variant
+ x (string-append "Material-Color-" (string-capitalize x))))
+ '("black" "blue" "brown" "indigo"
+ "orange" "pink" "red" "teal"))
+
+ (install-theme-variant
+ "deepPurple" "Material-Color-DeepPurple")
+ #t))))))
+ (home-page "https://github.com/hosxy/Fcitx5-Material-Color")
+ (synopsis "Fcitx 5 theme use Material Design")
+ (description "Fcitx5-material-color-theme contains Material Design theme
+with following color variants:
+
+@itemize
+@item Black
+@item Blue
+@item Brown
+@item Indigo
+@item Orange
+@item Pink
+@item Red
+@item teal
+@item DeepPurple
+@end itemize\n")
+ (license license:asl2.0)))
--
2.29.2
--
Retrieve my PGP public key: https://meta.sr.ht/~citreu.pgp

Zihao
P
P
Peng Mei Yu wrote on 3 Dec 2020 05:09
(name . Zhu Zihao)(address . all_but_last@163.com)(address . 44920@debbugs.gnu.org)
87zh2v5y40.fsf@riseup.net
Hi Zhu Zihao,

Great work. This patch series provides a long waited alternative to
ibus. I prefer to use ibus as my input method editor, but still thank
you for this work.

Please see comments bellow.


Zhu Zihao writes:

Toggle quote (11 lines)
> This is a series of patches, add fcitx5 and its build dependecies.
> a qt5 and gtk2/3 plugin, chinese inputmethod addon and a material theme
>
> From cbe128e488078b3af8f7d1bdb4bf9dc9f12a2f0b Mon Sep 17 00:00:00 2001
> From: Zhu Zihao <all_but_last@163.com>
> Date: Sat, 28 Nov 2020 13:16:50 +0800
> Subject: [PATCH 1/9] gnu: Add xcb-imdkit.
>
> * gnu/packages/fcitx5.scm: New file.
> (xcb-imdkit): New variable.

These packages should be put into gnu/packages/fcitx.scm.

Toggle quote (146 lines)
> ---
> gnu/packages/fcitx5.scm | 84 +++++++++++++++++++++++++++++++++++++++++
> 1 file changed, 84 insertions(+)
> create mode 100644 gnu/packages/fcitx5.scm
>
> diff --git a/gnu/packages/fcitx5.scm b/gnu/packages/fcitx5.scm
> new file mode 100644
> index 0000000000..171d545ed8
> --- /dev/null
> +++ b/gnu/packages/fcitx5.scm
> @@ -0,0 +1,84 @@
> +;;; GNU Guix --- Functional package management for GNU
> +;;; Copyright © 2020 Zhu Zihao <all_but_last@163.com>
> +;;;
> +;;; This file is part of GNU Guix.
> +;;;
> +;;; GNU Guix is free software; you can redistribute it and/or modify it
> +;;; under the terms of the GNU General Public License as published by
> +;;; the Free Software Foundation; either version 3 of the License, or (at
> +;;; your option) any later version.
> +;;;
> +;;; GNU Guix is distributed in the hope that it will be useful, but
> +;;; WITHOUT ANY WARRANTY; without even the implied warranty of
> +;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
> +;;; GNU General Public License for more details.
> +;;;
> +;;; You should have received a copy of the GNU General Public License
> +;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
> +
> +(define-module (gnu packages fcitx5)
> + #:use-module (guix packages)
> + #:use-module (guix download)
> + #:use-module (guix git-download)
> + #:use-module (guix build-system cmake)
> + #:use-module (guix build-system copy)
> + #:use-module ((guix licenses) #:prefix license:)
> + #:use-module (gnu packages)
> + #:use-module (gnu packages boost)
> + #:use-module (gnu packages curl)
> + #:use-module (gnu packages datastructures)
> + #:use-module (gnu packages enchant)
> + #:use-module (gnu packages freedesktop)
> + #:use-module (gnu packages gettext)
> + #:use-module (gnu packages gcc)
> + #:use-module (gnu packages glib)
> + #:use-module (gnu packages gtk)
> + #:use-module (gnu packages iso-codes)
> + #:use-module (gnu packages kde-frameworks)
> + #:use-module (gnu packages libevent)
> + #:use-module (gnu packages linux)
> + #:use-module (gnu packages lua)
> + #:use-module (gnu packages pkg-config)
> + #:use-module (gnu packages pretty-print)
> + #:use-module (gnu packages python)
> + #:use-module (gnu packages qt)
> + #:use-module (gnu packages textutils)
> + #:use-module (gnu packages unicode)
> + #:use-module (gnu packages web)
> + #:use-module (gnu packages xdisorg)
> + #:use-module (gnu packages xml)
> + #:use-module (gnu packages xorg))
> +
> +(define-public xcb-imdkit
> + (package
> + (name "xcb-imdkit")
> + (version "1.0.0")
> + (source
> + (origin
> + (method url-fetch)
> + (uri (string-append "https://download.fcitx-im.org/fcitx5/xcb-imdkit/xcb-imdkit-"
> + version ".tar.xz"))
> + (sha256
> + (base32 "0qgbklk5a809asyaxi6v9iasxc19g16fc5rphnamhwrliczlycas"))
> + (modules '((guix build utils)))
> + (snippet
> + '(begin
> + ;; Remove bundled uthash.
> + (delete-file-recursively "uthash")
> + #t))))
> + (build-system cmake-build-system)
> + (inputs
> + `(("uthash" ,uthash)
> + ("libxcb" ,libxcb)
> + ("xcb-util" ,xcb-util)
> + ("xcb-util-keysyms" ,xcb-util-keysyms)))
> + (native-inputs
> + `(("extra-cmake-modules" ,extra-cmake-modules)
> + ("pkg-config" ,pkg-config)))
> + (home-page "https://github.com/fcitx/xcb-imdkit")
> + (synopsis "Input method development support for XCB.")
> + (description "Xcb-imdkit is an implementation of xim protocol in XCB,
> +comparing with the implementation of IMDkit with Xlib, and xim inside Xlib,
> +it has less memory foot print, better performance, and safer on malformed
> +client.")
> + (license license:lgpl2.1)))
> --
> 2.29.2
>
> From 3870f53451deea014e9d28ce7df418bc9793d3e1 Mon Sep 17 00:00:00 2001
> From: Zhu Zihao <all_but_last@163.com>
> Date: Sat, 28 Nov 2020 13:19:26 +0800
> Subject: [PATCH 2/9] gnu: Add fcitx5.
>
> * gnu/packages/patches/fcitx5-allow-set-cldr-dir.patch: New file.
> * gnu/local.mk (dist_patch_DATA): Reference new patch.
> * gnu/packages/fcitx5.scm(fcitx5): New variable.
> ---
> gnu/local.mk | 1 +
> gnu/packages/fcitx5.scm | 63 ++++++++++
> .../patches/fcitx5-allow-set-cldr-dir.patch | 114 ++++++++++++++++++
> 3 files changed, 178 insertions(+)
> create mode 100644 gnu/packages/patches/fcitx5-allow-set-cldr-dir.patch
>
> diff --git a/gnu/local.mk b/gnu/local.mk
> index 5277403196..00ba3ee818 100644
> --- a/gnu/local.mk
> +++ b/gnu/local.mk
> @@ -977,6 +977,7 @@ dist_patch_DATA = \
> %D%/packages/patches/fasthenry-spSolve.patch \
> %D%/packages/patches/fasthenry-spFactor.patch \
> %D%/packages/patches/fbreader-curl-7.62.patch \
> + %D%/packages/patches/fcitx5-allow-set-cldr-dir.patch \
> %D%/packages/patches/fifengine-swig-compat.patch \
> %D%/packages/patches/fifo-map-fix-flags-for-gcc.patch \
> %D%/packages/patches/fifo-map-remove-catch.hpp.patch \
> diff --git a/gnu/packages/fcitx5.scm b/gnu/packages/fcitx5.scm
> index 171d545ed8..c4ee0c6e3c 100644
> --- a/gnu/packages/fcitx5.scm
> +++ b/gnu/packages/fcitx5.scm
> @@ -82,3 +82,66 @@ comparing with the implementation of IMDkit with Xlib, and xim inside Xlib,
> it has less memory foot print, better performance, and safer on malformed
> client.")
> (license license:lgpl2.1)))
> +
> +(define-public fcitx5
> + (package
> + (name "fcitx5")
> + (version "5.0.1")
> + (source
> + (origin
> + (method url-fetch)
> + (uri (string-append "https://download.fcitx-im.org/fcitx5/fcitx5/fcitx5-"
> + version "_dict.tar.xz"))
> + (sha256
> + (base32 "0ai7qkxvkdl5qmrvkjp53w1809hhla9csf04qsnf8k33pqbzdgw8"))
> + ;; This backport patch allow us to use CLDR data in unicode-cldr-common.
^^^^^^^^ ^^^^^
backported allows
Toggle quote (1 lines)
> + ;; it should be removed after upstream make a newer release.
^^ ^^^^
It
Toggle quote (47 lines)
> + (patches (search-patches "fcitx5-allow-set-cldr-dir.patch"))))
> + (build-system cmake-build-system)
> + (arguments
> + `(#:configure-flags
> + (list (string-append "-DCLDR_DIR="
> + (assoc-ref %build-inputs "unicode-cldr-common")
> + "/share/unicode/cldr"))))
> + (inputs
> + `(("cairo" ,cairo)
> + ("cairo-xcb" ,cairo-xcb)
> + ("dbus" ,dbus)
> + ("enchant" ,enchant)
> + ("expat" ,expat)
> + ("fmt" ,fmt)
> + ("gdk-pixbuf" ,gdk-pixbuf)
> + ("gettext" ,gettext-minimal)
> + ("glib" ,glib)
> + ("iso-codes" ,iso-codes)
> + ("json-c" ,json-c)
> + ("libevent" ,libevent)
> + ("libpthread-stubs" ,libpthread-stubs)
> + ("libuuid" ,util-linux "lib")
> + ("libx11" ,libx11)
> + ("libxcb" ,libxcb)
> + ("libxfixes" ,libxfixes)
> + ("libxinerama" ,libxinerama)
> + ("libxkbcommon" ,libxkbcommon)
> + ("libxkbfile" ,libxkbfile)
> + ("pango" ,pango)
> + ("unicode-cldr-common" ,unicode-cldr-common)
> + ("wayland" ,wayland)
> + ("wayland-protocols" ,wayland-protocols)
> + ("xcb-imdkit" ,xcb-imdkit)
> + ("xcb-util" ,xcb-util)
> + ("xcb-util-keysyms" ,xcb-util-keysyms)
> + ("xcb-util-wm" ,xcb-util-wm)
> + ("xkeyboard-config" ,xkeyboard-config)))
> + (native-inputs
> + `(("extra-cmake-modules" ,extra-cmake-modules)
> + ("pkg-config" ,pkg-config)))
> + (native-search-paths
> + (list (search-path-specification
> + (variable "FCITX_ADDON_DIRS")
> + (files '("lib/fcitx5")))))
> + (home-page "https://github.com/fcitx/fcitx5")
> + (synopsis "Next generation of Fcitx")

"Input method framework" is better.

Toggle quote (3 lines)
> + (description "Fcitx 5 is a generic input method framework, the successor
> +of Fcitx.")

I don't think we should emphasize that Fcitx 5 is the successor to
Fcitx. It's obvious. The old Fcitx 4 has already been deprecated by
the author. Do you think there is a good reason to keep the current
Fcitx package while adding a Fcitx 5 package? Why not replace the old
one?

Toggle quote (153 lines)
> + (license license:lgpl2.1+)))
> diff --git a/gnu/packages/patches/fcitx5-allow-set-cldr-dir.patch b/gnu/packages/patches/fcitx5-allow-set-cldr-dir.patch
> new file mode 100644
> index 0000000000..a0c3b9b60f
> --- /dev/null
> +++ b/gnu/packages/patches/fcitx5-allow-set-cldr-dir.patch
> @@ -0,0 +1,114 @@
> +https://github.com/fcitx/fcitx5/commit/a2b09de92a73dfa4ae43d3ac8a4ffa1aa791f6c5.patch
> +https://github.com/fcitx/fcitx5/issues/154
> +
> +From a2b09de92a73dfa4ae43d3ac8a4ffa1aa791f6c5 Mon Sep 17 00:00:00 2001
> +From: Weng Xuetian <wengxt@gmail.com>
> +Date: Sun, 22 Nov 2020 23:42:44 -0800
> +Subject: [PATCH] Allow set CLDR dir
> +
> +Fix #154
> +---
> + CMakeLists.txt | 22 +++++++++++++++++++---
> + config.h.in | 2 +-
> + src/modules/emoji/CMakeLists.txt | 2 +-
> + src/modules/emoji/emoji.cpp | 8 +++-----
> + 4 files changed, 24 insertions(+), 10 deletions(-)
> +
> +diff --git a/CMakeLists.txt b/CMakeLists.txt
> +index e6763dd..fc84b4b 100644
> +--- a/CMakeLists.txt
> ++++ b/CMakeLists.txt
> +@@ -29,6 +29,19 @@ option(ENABLE_WAYLAND "Enable wayland support" On)
> + option(ENABLE_DOC "Build doxygen" Off)
> + option(USE_SYSTEMD "Use systemd for event loop and dbus, will fallback to libevent/libdbus if not found." On)
> + option(ENABLE_XDGAUTOSTART "Enable xdg autostart desktop file installation" On)
> ++set(CLDR_DIR "" CACHE STRING "Unicode CLDR (Common Locale Data Repository) directory")
> ++
> ++if (CLDR_DIR STREQUAL "")
> ++ if (IS_DIRECTORY "${CMAKE_INSTALL_FULL_DATADIR}/unicode/cldr")
> ++ set(CLDR_DIR "${CMAKE_INSTALL_FULL_DATADIR}/unicode/cldr")
> ++ else(IS_DIRECTORY "/usr/share/unicode/cldr")
> ++ set(CLDR_DIR "/usr/share/unicode/cldr")
> ++ endif()
> ++endif()
> ++
> ++if (NOT IS_DIRECTORY "${CLDR_DIR}")
> ++ message(FATAL_ERROR "Could not find Unicode CLDR directory")
> ++endif()
> +
> + #######################################################################
> + # Find packages
> +@@ -73,7 +86,6 @@ pkg_check_modules(CairoXCB IMPORTED_TARGET cairo-xcb)
> + pkg_check_modules(Pango IMPORTED_TARGET pango pangocairo)
> + pkg_check_modules(GdkPixbuf IMPORTED_TARGET gdk-pixbuf-2.0)
> + pkg_check_modules(GioUnix IMPORTED_TARGET gio-unix-2.0)
> +-pkg_check_modules(CldrEmojiAnnotation REQUIRED IMPORTED_TARGET cldr-emoji-annotation)
> +
> + if (ENABLE_WAYLAND)
> + find_package(Wayland REQUIRED COMPONENTS Client Egl)
> +@@ -106,10 +118,14 @@ else()
> + set(WAYLAND_FOUND FALSE)
> + endif()
> +
> ++if (NOT EXISTS "${CLDR_DIR}")
> ++ message(FATAL_ERROR "Could not find Unicode CLDR directory: ${CLDR_DIR}")
> ++endif()
> ++
> + set(DEFAULT_XKB_RULES_FILES "${XKEYBOARDCONFIG_XKBBASE}/rules/${DEFAULT_XKB_RULES}.xml")
> + if (NOT EXISTS "${DEFAULT_XKB_RULES_FILES}")
> +-message(FATAL_ERROR "Could not find default xkb rules file: ${DEFAULT_XKB_RULES_FILES}")
> +-endif ()
> ++ message(FATAL_ERROR "Could not find default xkb rules file: ${DEFAULT_XKB_RULES_FILES}")
> ++endif()
> +
> + # directory needed by bsd
> + if(NOT CMAKE_INSTALL_LIBDATADIR)
> +diff --git a/config.h.in b/config.h.in
> +index 09bf002..4291152 100644
> +--- a/config.h.in
> ++++ b/config.h.in
> +@@ -33,7 +33,7 @@
> + #cmakedefine HAS_DLMOPEN
> + #define XKEYBOARDCONFIG_DATADIR "@XKEYBOARDCONFIG_DATADIR@"
> + #define DBUS_SYSTEM_BUS_DEFAULT_ADDRESS "@DBUS_SYSTEM_BUS_DEFAULT_ADDRESS@"
> +-#define CLDR_EMOJI_ANNOTATION_PREFIX "@CldrEmojiAnnotation_PREFIX@"
> ++#define CLDR_DIR "@CLDR_DIR@"
> +
> + #ifndef _GNU_SOURCE
> + #define _GNU_SOURCE
> +diff --git a/src/modules/emoji/CMakeLists.txt b/src/modules/emoji/CMakeLists.txt
> +index 9fa84bb..57ae48b 100644
> +--- a/src/modules/emoji/CMakeLists.txt
> ++++ b/src/modules/emoji/CMakeLists.txt
> +@@ -1,4 +1,4 @@
> +-if (NOT IS_DIRECTORY ${CldrEmojiAnnotation_PREFIX}/share/unicode/cldr/common/annotations)
> ++if ("${CLDR_DIR}" STREQUAL "" OR NOT IS_DIRECTORY "${CLDR_DIR}/common/annotations")
> + return()
> + endif()
> +
> +diff --git a/src/modules/emoji/emoji.cpp b/src/modules/emoji/emoji.cpp
> +index 5606a37..805aef7 100644
> +--- a/src/modules/emoji/emoji.cpp
> ++++ b/src/modules/emoji/emoji.cpp
> +@@ -126,7 +126,7 @@ bool noSpace(const std::string &str) {
> +
> + const EmojiMap *Emoji::loadEmoji(const std::string &language,
> + bool fallbackToEn) {
> +- // This is to match the file in cldr-emoji-annotation.
> ++ // This is to match the file in CLDR.
> + static const std::unordered_map<std::string, std::string> languageMap = {
> + {"zh_TW", "zh_Hant"}, {"zh_CN", "zh"}, {"zh_HK", "zh_Hant_HK"}};
> +
> +@@ -172,10 +172,8 @@ const EmojiMap *Emoji::loadEmoji(const std::string &language,
> + return utf8::lengthValidated(str) > 2;
> + }}};
> + const auto *filter = findValue(filterMap, lang);
> +- const auto file =
> +- stringutils::joinPath(CLDR_EMOJI_ANNOTATION_PREFIX,
> +- "/share/unicode/cldr/common/annotations",
> +- stringutils::concat(lang, ".xml"));
> ++ const auto file = stringutils::joinPath(
> ++ CLDR_DIR, "/common/annotations", stringutils::concat(lang, ".xml"));
> + EmojiParser parser(filter ? *filter : nullptr);
> + if (parser.parse(file)) {
> + emojiMap = &(langToEmojiMap_[lang] = std::move(parser.emojiMap_));
> --
> 2.29.2
>
> From d1e53ec2239077da96d871900fbb4c6d2d274cc5 Mon Sep 17 00:00:00 2001
> From: Zhu Zihao <all_but_last@163.com>
> Date: Sat, 28 Nov 2020 13:20:51 +0800
> Subject: [PATCH 3/9] gnu: Add fcitx5-lua.
>
> * gnu/packages/fcitx5.scm(fcitx5-lua): New variable.
> ---
> gnu/packages/fcitx5.scm | 44 +++++++++++++++++++++++++++++++++++++++++
> 1 file changed, 44 insertions(+)
>
> diff --git a/gnu/packages/fcitx5.scm b/gnu/packages/fcitx5.scm
> index c4ee0c6e3c..c48eafbad5 100644
> --- a/gnu/packages/fcitx5.scm
> +++ b/gnu/packages/fcitx5.scm
> @@ -145,3 +145,47 @@ client.")
> (description "Fcitx 5 is a generic input method framework, the successor
> of Fcitx.")
> (license license:lgpl2.1+)))
> +
> +(define-public fcitx5-lua
> + (package
> + (name "fcitx5-lua")
> + (version "5.0.0")
> + (source
> + (origin
> + (method url-fetch)
> + (uri (string-append "https://download.fcitx-im.org/fcitx5/fcitx5-lua/fcitx5-lua-"
> + version ".tar.xz"))

Please follow 80-column rule.

Toggle quote (33 lines)
> + (sha256
> + (base32 "0v4kjx5bargmzfm3v2kys1kzfbpkbd8inzw23y9hslc8h5zazj33"))))
> + (build-system cmake-build-system)
> + (arguments
> + `(#:configure-flags
> + (list
> + (string-append "-DFEM_INCLUDE_INSTALL_DIR=" %output "/include")
> + (string-append "-DFEM_LIB_INSTALL_DIR=" %output "/lib"))
> + #:phases
> + (modify-phases %standard-phases
> + (add-before 'configure 'patch-install-prefix
> + (lambda* (#:key outputs #:allow-other-keys)
> + (for-each
> + (lambda (x)
> + (format #t "patch-install-prefix: Fixing install prefix in ~a~%"
> + x)
> + (substitute* x
> + (("\\$\\{FCITX_INSTALL_PKGDATADIR\\}")
> + (string-append (assoc-ref outputs "out")
> + "/share/fcitx5"))))
> + '("src/addonloader/CMakeLists.txt"
> + "src/imeapi/CMakeLists.txt"))
> + #t)))))
> + (inputs
> + `(("fcitx5" ,fcitx5)
> + ("lua" ,lua)
> + ("gettext" ,gettext-minimal)
> + ("libpthread-stubs" ,libpthread-stubs)))
> + (native-inputs
> + `(("extra-cmake-modules" ,extra-cmake-modules)))
> + (home-page "https://github.com/fcitx/fcitx5-lua")
> + (synopsis "Lua support for Fcitx 5")

"Lua support for Fcitx"

Toggle quote (2 lines)
> + (description "Fcitx5-lua allow user to write Fcitx5 extension in Lua.")

"Fcitx5-lua allows writing Fcitx extentions in Lua."

I think we can drop all the emphases on "5".

Toggle quote (45 lines)
> + (license license:lgpl2.1+)))
> --
> 2.29.2
>
> From 69b4cfc316e81e9c0ebdb307af033bf2e0a5faca Mon Sep 17 00:00:00 2001
> From: Zhu Zihao <all_but_last@163.com>
> Date: Sat, 28 Nov 2020 13:21:38 +0800
> Subject: [PATCH 4/9] gnu: Add libime.
>
> * gnu/packages/fcitx5.scm(libime): New variable.
> ---
> gnu/packages/fcitx5.scm | 25 +++++++++++++++++++++++++
> 1 file changed, 25 insertions(+)
>
> diff --git a/gnu/packages/fcitx5.scm b/gnu/packages/fcitx5.scm
> index c48eafbad5..9f031a1289 100644
> --- a/gnu/packages/fcitx5.scm
> +++ b/gnu/packages/fcitx5.scm
> @@ -189,3 +189,28 @@ of Fcitx.")
> (synopsis "Lua support for Fcitx 5")
> (description "Fcitx5-lua allow user to write Fcitx5 extension in Lua.")
> (license license:lgpl2.1+)))
> +
> +(define-public libime
> + (package
> + (name "libime")
> + (version "1.0.1")
> + (source
> + (origin
> + (method url-fetch)
> + (uri (string-append "https://download.fcitx-im.org/fcitx5/libime/libime-"
> + version "_dict.tar.xz"))
> + (sha256
> + (base32 "0kymzn0srdmpbn43rg4zpz09baz3bcw18v648jsqsb2j488s2paq"))))
> + (build-system cmake-build-system)
> + (inputs
> + `(("fcitx5" ,fcitx5)
> + ("boost" ,boost)))
> + (native-inputs
> + `(("gcc" ,gcc-9) ;for #include <filesystem> and ld support
> + ("extra-cmake-modules" ,extra-cmake-modules)
> + ("python" ,python))) ;needed to run test
> + (home-page "https://github.com/fcitx/libime")
> + (synopsis "Library supports generic input method implmentation")

"Library for implementing generic input method editors"

Toggle quote (3 lines)
> + (description "Libime is a library, being used to implment various input
> +methods for Fcitx 5.")

"Libime is a library for implementing generic input method editors."

Toggle quote (32 lines)
> + (license license:lgpl2.1+)))
> --
> 2.29.2
>
> From 8af5ff96d20a5fd2b3faa43b05935f9755880959 Mon Sep 17 00:00:00 2001
> From: Zhu Zihao <all_but_last@163.com>
> Date: Sat, 28 Nov 2020 13:24:20 +0800
> Subject: [PATCH 5/9] gnu: Add fcitx5-qt.
>
> * gnu/packages/fcitx5.scm(fcitx5-qt): New variable.
> ---
> gnu/packages/fcitx5.scm | 36 ++++++++++++++++++++++++++++++++++++
> 1 file changed, 36 insertions(+)
>
> diff --git a/gnu/packages/fcitx5.scm b/gnu/packages/fcitx5.scm
> index 9f031a1289..4e3ba010ef 100644
> --- a/gnu/packages/fcitx5.scm
> +++ b/gnu/packages/fcitx5.scm
> @@ -214,3 +214,39 @@ of Fcitx.")
> (description "Libime is a library, being used to implment various input
> methods for Fcitx 5.")
> (license license:lgpl2.1+)))
> +
> +(define-public fcitx5-qt
> + (package
> + (name "fcitx5-qt")
> + (version "5.0.0")
> + (source
> + (origin
> + (method url-fetch)
> + (uri (string-append "https://download.fcitx-im.org/fcitx5"
> + "/fcitx5-qt/fcitx5-qt
This message was truncated. Download the full message here.
Z
Z
Zhu Zihao wrote on 5 Dec 2020 05:09
(name . Peng Mei Yu)(address . pengmeiyu@riseup.net)(address . 44920@debbugs.gnu.org)
86eek499my.fsf@163.com
Thank you, Peng. your review are helpful, but I still have some
objection on following points.

Peng Mei Yu writes:


Toggle quote (24 lines)
> Hi Zhu Zihao,
>
> Great work. This patch series provides a long waited alternative to
> ibus. I prefer to use ibus as my input method editor, but still thank
> you for this work.
>
> Please see comments bellow.
>
>
> Zhu Zihao writes:
>
>> This is a series of patches, add fcitx5 and its build dependecies.
>> a qt5 and gtk2/3 plugin, chinese inputmethod addon and a material theme
>>
>> From cbe128e488078b3af8f7d1bdb4bf9dc9f12a2f0b Mon Sep 17 00:00:00 2001
>> From: Zhu Zihao <all_but_last@163.com>
>> Date: Sat, 28 Nov 2020 13:16:50 +0800
>> Subject: [PATCH 1/9] gnu: Add xcb-imdkit.
>>
>> * gnu/packages/fcitx5.scm: New file.
>> (xcb-imdkit): New variable.
>
> These packages should be put into gnu/packages/fcitx.scm.

Why? It currently only used by fcitx5.

Toggle quote (7 lines)
>
> I don't think we should emphasize that Fcitx 5 is the successor to
> Fcitx. It's obvious. The old Fcitx 4 has already been deprecated by
> the author. Do you think there is a good reason to keep the current
> Fcitx package while adding a Fcitx 5 package? Why not replace the old
> one?

Because Fcitx4 and Fcitx5 is totally different, like python2 & python3.
Fcitx5 turns to C++ and Qt technology stack.


Toggle quote (10 lines)
>
> "Lua support for Fcitx"
>
>> + (description "Fcitx5-lua allow user to write Fcitx5 extension in Lua.")
>
> "Fcitx5-lua allows writing Fcitx extentions in Lua."
>
> I think we can drop all the emphases on "5".
>

ditto, because fcitx and fcitx5 are totally different, it's needed to
make a clarification.


--
Retrieve my PGP public key: https://meta.sr.ht/~citreu.pgp

Zihao
-----BEGIN PGP SIGNATURE-----

iQFJBAEBCAAzFiEE7NCVzXX6efyusptG1SOVn+xGFqYFAl/LB/UVHGFsbF9idXRf
bGFzdEAxNjMuY29tAAoJENUjlZ/sRhamvDoH/34E+6WljSsYqNj9yAs4NIm1WeqK
ZInP63/s3lw/emW0F0pFpleoouaWw9spIz3+xndS1q5gYJcpedBvM/teQ9sDztY8
+pk4J5KoR344gM8QFw3CxYKEFxNCLNhSRZe1aVHV72YZu3prHeoda2t0wHUJfH/h
pAc6KtIL5nK88ylk60JuTyKLdr5n2iEaCnSlQLyZEDaenn8Sf1RtpBwf6qADrm5/
2grG52CklSm+7sOiWLUQrEwUaLEyypC8T0DvfLKRj+O5KID5DlmsHDO5+71C/Whk
V1lj4YD3brGiJkyEDzsqwcbsEPLOVul9a1mfsgIRM3RppkcHARTViskbyWM=
=tdP2
-----END PGP SIGNATURE-----

Z
Z
Zhu Zihao wrote on 6 Dec 2020 16:38
(name . ???)(address . iyzsong@outlook.com)(address . 44920@debbugs.gnu.org)
6f3f5dce.29ab.17638b4bb4c.Coremail.all_but_last@163.com
In file gnu/packages/fcitx.scm 132:8

;; XXX: We can't simply #:use-module due to a cycle somewhere.

Looks that there's a cyclic dependency somewhere, AFAIK fcitx5's
components heavily depend on packages in (gnu packages kde-frameworks),
will this be a problem for us to merge fcitx.scm and fcitx5.scm?

Toggle quote (3 lines)
> I’d like to put fcitx5 things into “fcitx.scm” too, as the author and
> the github organization dosen’t changed for fcitx5, likewise we also
> have both qt4 and qt5 in qt.scm and gtk2 and gtk3 in gtk.scm.
Attachment: file
?
Re: [bug#44920] [PATCH]: Add fcitx5.
(name . Zhu Zihao)(address . all_but_last@163.com)(address . 44920@debbugs.gnu.org)
TYAP286MB01858ABE93AFC07D1D5E05B9A3CF0@TYAP286MB0185.JPNP286.PROD.OUTLOOK.COM
Hello, thanks for the patches!

Zhu Zihao <all_but_last@163.com> writes:
Toggle quote (15 lines)
>>> This is a series of patches, add fcitx5 and its build dependecies.
>>> a qt5 and gtk2/3 plugin, chinese inputmethod addon and a material theme
>>>
>>> From cbe128e488078b3af8f7d1bdb4bf9dc9f12a2f0b Mon Sep 17 00:00:00 2001
>>> From: Zhu Zihao <all_but_last@163.com>
>>> Date: Sat, 28 Nov 2020 13:16:50 +0800
>>> Subject: [PATCH 1/9] gnu: Add xcb-imdkit.
>>>
>>> * gnu/packages/fcitx5.scm: New file.
>>> (xcb-imdkit): New variable.
>>
>> These packages should be put into gnu/packages/fcitx.scm.
>
> Why? It currently only used by fcitx5.

I’d like to put fcitx5 things into “fcitx.scm” too, as the author and
the github organization dosen’t changed for fcitx5, likewise we also
have both qt4 and qt5 in qt.scm and gtk2 and gtk3 in gtk.scm.


Toggle quote (1 lines)
> [0001-gnu-Add-xcb-imdkit.patch]
This patch import guix modules that only needed later by ‘fcitx’, should
clean it up…

Otherwise look good to me!

Also I see fcitx5 got a new release recently (eg: xcb-imdkit -> 1.0.1,
fcitx5 -> 5.0.3), could you update this patches series for ‘fcitx.scm’
and the latest release?

Thank you!
?
(name . Zhu Zihao)(address . all_but_last@163.com)(address . 44920@debbugs.gnu.org)
TYAP286MB0185469F56D58C7B53BFD6D0A3CE0@TYAP286MB0185.JPNP286.PROD.OUTLOOK.COM
"Zhu Zihao" <all_but_last@163.com> writes:

Toggle quote (8 lines)
> In file gnu/packages/fcitx.scm 132:8
>
> ;; XXX: We can't simply #:use-module due to a cycle somewhere.
>
> Looks that there's a cyclic dependency somewhere, AFAIK fcitx5's
> components heavily depend on packages in (gnu packages kde-frameworks),
> will this be a problem for us to merge fcitx.scm and fcitx5.scm?

Ah, that's a bad problem. The only package use fcitx is ‘sdl2’ from
sdl.scm, which is used by a lot of modules.

Okay, then I think we should add them into fcitx5.scm.

Thank you!
Z
Z
Zhu Zihao wrote on 7 Dec 2020 15:53
(name . ???)(address . iyzsong@outlook.com)
868sa9hdls.fsf@163.com
All Fcitx5 components updated.

Here are the patches.
-----BEGIN PGP SIGNATURE-----

iQFJBAEBCAAzFiEE7NCVzXX6efyusptG1SOVn+xGFqYFAl/OQd8VHGFsbF9idXRf
bGFzdEAxNjMuY29tAAoJENUjlZ/sRhamcBgH/R9XiFV6JsEh1NuNtXpBZsUw+Lsf
3C0s9MUrUdNgLdUQueSuyfjJ8FsQtQQIk71WhyUQ0Qq8PUblJVi41IhsuSW3YOdy
iYfZSb08Zss7WPGEkxByLOlQ+OOF2SYghMNZ6bfTnuwF9gXX3mDxV35iCgkK0xht
aPTcCNZ5EsLkVSdKirK7KTInKGjh46bnD/Sq2fnh631P7iNcPSfPwl5DDpW3gYx0
V3jCqWGsuiaXcadcftORarBMFTY+opwfc1QgBND9MmuQB7qaE6fPSwfDctxyuOYC
aLhkzzFkTUQkWGTWFzqBD0ASPhe7mlg9e327V4sJ6cLjHej3YVZuvUrREFg=
=Q+tR
-----END PGP SIGNATURE-----

From ff65eaa03b3dca992dc53e10c139a2601ccf9a53 Mon Sep 17 00:00:00 2001
From: Zhu Zihao <all_but_last@163.com>
Date: Mon, 7 Dec 2020 22:29:58 +0800
Subject: [PATCH 01/10] gnu: Add (gnu packages fcitx5).

* gnu/packages/fcitx5.scm: New file.
* gnu/local.mk (GNU_SYSTEM_MODULES): Reference to new file.
---
gnu/local.mk | 1 +
gnu/packages/fcitx5.scm | 50 +++++++++++++++++++++++++++++++++++++++++
2 files changed, 51 insertions(+)
create mode 100644 gnu/packages/fcitx5.scm

Toggle diff (70 lines)
diff --git a/gnu/local.mk b/gnu/local.mk
index 5277403196..e37f2dac70 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -204,6 +204,7 @@ GNU_SYSTEM_MODULES = \
%D%/packages/erlang.scm \
%D%/packages/fabric-management.scm \
%D%/packages/fcitx.scm \
+ %D%/packages/fcitx5.scm \
%D%/packages/figlet.scm \
%D%/packages/file.scm \
%D%/packages/file-systems.scm \
diff --git a/gnu/packages/fcitx5.scm b/gnu/packages/fcitx5.scm
new file mode 100644
index 0000000000..8c1fa49322
--- /dev/null
+++ b/gnu/packages/fcitx5.scm
@@ -0,0 +1,50 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2020 Zhu Zihao <all_but_last@163.com>
+;;;
+;;; This file is part of GNU Guix.
+;;;
+;;; GNU Guix is free software; you can redistribute it and/or modify it
+;;; under the terms of the GNU General Public License as published by
+;;; the Free Software Foundation; either version 3 of the License, or (at
+;;; your option) any later version.
+;;;
+;;; GNU Guix is distributed in the hope that it will be useful, but
+;;; WITHOUT ANY WARRANTY; without even the implied warranty of
+;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+;;; GNU General Public License for more details.
+;;;
+;;; You should have received a copy of the GNU General Public License
+;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
+
+(define-module (gnu packages fcitx5)
+ #:use-module (guix packages)
+ #:use-module (guix download)
+ #:use-module (guix git-download)
+ #:use-module (guix build-system cmake)
+ #:use-module (guix build-system copy)
+ #:use-module ((guix licenses) #:prefix license:)
+ #:use-module (gnu packages)
+ #:use-module (gnu packages boost)
+ #:use-module (gnu packages curl)
+ #:use-module (gnu packages datastructures)
+ #:use-module (gnu packages enchant)
+ #:use-module (gnu packages freedesktop)
+ #:use-module (gnu packages gettext)
+ #:use-module (gnu packages gcc)
+ #:use-module (gnu packages glib)
+ #:use-module (gnu packages gtk)
+ #:use-module (gnu packages iso-codes)
+ #:use-module (gnu packages kde-frameworks)
+ #:use-module (gnu packages libevent)
+ #:use-module (gnu packages linux)
+ #:use-module (gnu packages lua)
+ #:use-module (gnu packages pkg-config)
+ #:use-module (gnu packages pretty-print)
+ #:use-module (gnu packages python)
+ #:use-module (gnu packages qt)
+ #:use-module (gnu packages textutils)
+ #:use-module (gnu packages unicode)
+ #:use-module (gnu packages web)
+ #:use-module (gnu packages xdisorg)
+ #:use-module (gnu packages xml)
+ #:use-module (gnu packages xorg))
--
2.29.2
From f18d90b7b9a57a6855be72c8daccba7f98f08c4b Mon Sep 17 00:00:00 2001
From: Zhu Zihao <all_but_last@163.com>
Date: Mon, 7 Dec 2020 22:32:29 +0800
Subject: [PATCH 02/10] gnu: Add xcb-imdkit.

* gnu/packages/fcitx5.scm(xcb-imdkit): New variable.
---
gnu/packages/fcitx5.scm | 34 ++++++++++++++++++++++++++++++++++
1 file changed, 34 insertions(+)

Toggle diff (44 lines)
diff --git a/gnu/packages/fcitx5.scm b/gnu/packages/fcitx5.scm
index 8c1fa49322..edfd6aca2b 100644
--- a/gnu/packages/fcitx5.scm
+++ b/gnu/packages/fcitx5.scm
@@ -48,3 +48,37 @@
#:use-module (gnu packages xdisorg)
#:use-module (gnu packages xml)
#:use-module (gnu packages xorg))
+
+(define-public xcb-imdkit
+ (package
+ (name "xcb-imdkit")
+ (version "1.0.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "https://download.fcitx-im.org/fcitx5/xcb-imdkit/xcb-imdkit-"
+ version ".tar.xz"))
+ (sha256
+ (base32 "1qgbbp8y8ci7haz99vgbrgpjsbrwwyjianyhdvxcirnbm5bybvmz"))
+ (modules '((guix build utils)))
+ (snippet
+ '(begin
+ ;; Remove bundled uthash.
+ (delete-file-recursively "uthash")
+ #t))))
+ (build-system cmake-build-system)
+ (inputs
+ `(("uthash" ,uthash)
+ ("libxcb" ,libxcb)
+ ("xcb-util" ,xcb-util)
+ ("xcb-util-keysyms" ,xcb-util-keysyms)))
+ (native-inputs
+ `(("extra-cmake-modules" ,extra-cmake-modules)
+ ("pkg-config" ,pkg-config)))
+ (home-page "https://github.com/fcitx/xcb-imdkit")
+ (synopsis "Input method development support for XCB.")
+ (description "Xcb-imdkit is an implementation of xim protocol in XCB,
+comparing with the implementation of IMDkit with Xlib, and xim inside Xlib,
+it has less memory foot print, better performance, and safer on malformed
+client.")
+ (license license:lgpl2.1)))
--
2.29.2
From 00d62c64b453f4053f9c31e37a5ee079233dedd1 Mon Sep 17 00:00:00 2001
From: Zhu Zihao <all_but_last@163.com>
Date: Mon, 7 Dec 2020 22:38:35 +0800
Subject: [PATCH 03/10] gnu: Add fcitx5.

* gnu/packages/fcitx5.scm(fcitx5): New variable.
---
gnu/packages/fcitx5.scm | 59 +++++++++++++++++++++++++++++++++++++++++
1 file changed, 59 insertions(+)

Toggle diff (69 lines)
diff --git a/gnu/packages/fcitx5.scm b/gnu/packages/fcitx5.scm
index edfd6aca2b..b65d90f588 100644
--- a/gnu/packages/fcitx5.scm
+++ b/gnu/packages/fcitx5.scm
@@ -82,3 +82,62 @@ comparing with the implementation of IMDkit with Xlib, and xim inside Xlib,
it has less memory foot print, better performance, and safer on malformed
client.")
(license license:lgpl2.1)))
+
+(define-public fcitx5
+ (package
+ (name "fcitx5")
+ (version "5.0.3")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "https://download.fcitx-im.org/fcitx5/fcitx5/fcitx5-"
+ version "_dict.tar.xz"))
+ (sha256
+ (base32 "06zkb33m2rnhg385iy79n3r4svz5jbav74di61xqa3lhbv7534s3"))))
+ (build-system cmake-build-system)
+ (arguments
+ `(#:configure-flags
+ (list (string-append "-DCLDR_DIR="
+ (assoc-ref %build-inputs "unicode-cldr-common")
+ "/share/unicode/cldr"))))
+ (inputs
+ `(("cairo" ,cairo)
+ ("cairo-xcb" ,cairo-xcb)
+ ("dbus" ,dbus)
+ ("enchant" ,enchant)
+ ("expat" ,expat)
+ ("fmt" ,fmt)
+ ("gdk-pixbuf" ,gdk-pixbuf)
+ ("gettext" ,gettext-minimal)
+ ("glib" ,glib)
+ ("iso-codes" ,iso-codes)
+ ("json-c" ,json-c)
+ ("libevent" ,libevent)
+ ("libpthread-stubs" ,libpthread-stubs)
+ ("libuuid" ,util-linux "lib")
+ ("libx11" ,libx11)
+ ("libxcb" ,libxcb)
+ ("libxfixes" ,libxfixes)
+ ("libxinerama" ,libxinerama)
+ ("libxkbcommon" ,libxkbcommon)
+ ("libxkbfile" ,libxkbfile)
+ ("pango" ,pango)
+ ("unicode-cldr-common" ,unicode-cldr-common)
+ ("wayland" ,wayland)
+ ("wayland-protocols" ,wayland-protocols)
+ ("xcb-imdkit" ,xcb-imdkit)
+ ("xcb-util" ,xcb-util)
+ ("xcb-util-keysyms" ,xcb-util-keysyms)
+ ("xcb-util-wm" ,xcb-util-wm)
+ ("xkeyboard-config" ,xkeyboard-config)))
+ (native-inputs
+ `(("extra-cmake-modules" ,extra-cmake-modules)
+ ("pkg-config" ,pkg-config)))
+ (native-search-paths
+ (list (search-path-specification
+ (variable "FCITX_ADDON_DIRS")
+ (files '("lib/fcitx5")))))
+ (home-page "https://github.com/fcitx/fcitx5")
+ (synopsis "Input method framework")
+ (description "Fcitx 5 is a generic input method framework.")
+ (license license:lgpl2.1+)))
--
2.29.2
From 46b3fa824e764c565953f253d2d7d77f0c17851c Mon Sep 17 00:00:00 2001
From: Zhu Zihao <all_but_last@163.com>
Date: Mon, 7 Dec 2020 22:39:29 +0800
Subject: [PATCH 04/10] gnu: Add fcitx5-lua.

* gnu/packages/fcitx5.scm(fcitx5-lua): New variable.
---
gnu/packages/fcitx5.scm | 44 +++++++++++++++++++++++++++++++++++++++++
1 file changed, 44 insertions(+)

Toggle diff (54 lines)
diff --git a/gnu/packages/fcitx5.scm b/gnu/packages/fcitx5.scm
index b65d90f588..db96b190f7 100644
--- a/gnu/packages/fcitx5.scm
+++ b/gnu/packages/fcitx5.scm
@@ -141,3 +141,47 @@ client.")
(synopsis "Input method framework")
(description "Fcitx 5 is a generic input method framework.")
(license license:lgpl2.1+)))
+
+(define-public fcitx5-lua
+ (package
+ (name "fcitx5-lua")
+ (version "5.0.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "https://download.fcitx-im.org/fcitx5/fcitx5-lua/fcitx5-lua-"
+ version ".tar.xz"))
+ (sha256
+ (base32 "177mj56j8yrl79hvk7bbrifvm137np23pwalv83ibgk4l51z92hf"))))
+ (build-system cmake-build-system)
+ (arguments
+ `(#:configure-flags
+ (list
+ (string-append "-DFEM_INCLUDE_INSTALL_DIR=" %output "/include")
+ (string-append "-DFEM_LIB_INSTALL_DIR=" %output "/lib"))
+ #:phases
+ (modify-phases %standard-phases
+ (add-before 'configure 'patch-install-prefix
+ (lambda* (#:key outputs #:allow-other-keys)
+ (for-each
+ (lambda (x)
+ (format #t "patch-install-prefix: Fixing install prefix in ~a~%"
+ x)
+ (substitute* x
+ (("\\$\\{FCITX_INSTALL_PKGDATADIR\\}")
+ (string-append (assoc-ref outputs "out")
+ "/share/fcitx5"))))
+ '("src/addonloader/CMakeLists.txt"
+ "src/imeapi/CMakeLists.txt"))
+ #t)))))
+ (inputs
+ `(("fcitx5" ,fcitx5)
+ ("lua" ,lua)
+ ("gettext" ,gettext-minimal)
+ ("libpthread-stubs" ,libpthread-stubs)))
+ (native-inputs
+ `(("extra-cmake-modules" ,extra-cmake-modules)))
+ (home-page "https://github.com/fcitx/fcitx5-lua")
+ (synopsis "Lua support for Fcitx 5")
+ (description "Fcitx5-lua allows writing Fcitx5 extension in Lua.")
+ (license license:lgpl2.1+)))
--
2.29.2
From eeb7ce9952f5e71157e5fe7b1ff62ac82c878ade Mon Sep 17 00:00:00 2001
From: Zhu Zihao <all_but_last@163.com>
Date: Mon, 7 Dec 2020 22:40:41 +0800
Subject: [PATCH 05/10] gnu: Add libime.

* gnu/packages/fcitx5.scm(libime): New variable.
---
gnu/packages/fcitx5.scm | 25 +++++++++++++++++++++++++
1 file changed, 25 insertions(+)

Toggle diff (35 lines)
diff --git a/gnu/packages/fcitx5.scm b/gnu/packages/fcitx5.scm
index db96b190f7..ac4be9a6c6 100644
--- a/gnu/packages/fcitx5.scm
+++ b/gnu/packages/fcitx5.scm
@@ -185,3 +185,28 @@ client.")
(synopsis "Lua support for Fcitx 5")
(description "Fcitx5-lua allows writing Fcitx5 extension in Lua.")
(license license:lgpl2.1+)))
+
+(define-public libime
+ (package
+ (name "libime")
+ (version "1.0.2")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "https://download.fcitx-im.org/fcitx5/libime/libime-"
+ version "_dict.tar.xz"))
+ (sha256
+ (base32 "006pncby7p6h3rnicckzjwi6jzsrqiqbj6p9bpic80lanlllgw31"))))
+ (build-system cmake-build-system)
+ (inputs
+ `(("fcitx5" ,fcitx5)
+ ("boost" ,boost)))
+ (native-inputs
+ `(("gcc" ,gcc-9) ;for #include <filesystem> and ld support
+ ("extra-cmake-modules" ,extra-cmake-modules)
+ ("python" ,python))) ;needed to run test
+ (home-page "https://github.com/fcitx/libime")
+ (synopsis "Library for implementing generic input method")
+ (description "Libime is a library for implmenting various input methods
+editors.")
+ (license license:lgpl2.1+)))
--
2.29.2
From 847962d45c2d1644782454e493a5c94baf84b5a9 Mon Sep 17 00:00:00 2001
From: Zhu Zihao <all_but_last@163.com>
Date: Mon, 7 Dec 2020 22:42:43 +0800
Subject: [PATCH 06/10] gnu: Add fcitx5-qt.

* gnu/packages/fcitx5.scm(fcitx5-qt): New variable.
---
gnu/packages/fcitx5.scm | 35 +++++++++++++++++++++++++++++++++++
1 file changed, 35 insertions(+)

Toggle diff (45 lines)
diff --git a/gnu/packages/fcitx5.scm b/gnu/packages/fcitx5.scm
index ac4be9a6c6..e1676dff27 100644
--- a/gnu/packages/fcitx5.scm
+++ b/gnu/packages/fcitx5.scm
@@ -210,3 +210,38 @@ client.")
(description "Libime is a library for implmenting various input methods
editors.")
(license license:lgpl2.1+)))
+
+(define-public fcitx5-qt
+ (package
+ (name "fcitx5-qt")
+ (version "5.0.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "https://download.fcitx-im.org/fcitx5"
+ "/fcitx5-qt/fcitx5-qt-"
+ version ".tar.xz"))
+ (sha256
+ (base32 "0ilhb4yw9k3m1c4fidnv3nd5dgm9xxds11dgdys6gswjjnmcgqqm"))))
+ (build-system cmake-build-system)
+ (arguments
+ `(#:configure-flags
+ (list (string-append "-DCMAKE_INSTALL_QT5PLUGINDIR="
+ %output "/lib/qt5/plugins")
+ "-DENABLE_QT4=Off")))
+ (inputs
+ `(("fcitx5" ,fcitx5)
+ ("libxcb" ,libxcb)
+ ("libxkbcommon" ,libxkbcommon)
+ ("qtbase" ,qtbase)
+ ("gettext" ,gettext-minimal)))
+ (native-inputs
+ `(("extra-cmake-modules" ,extra-cmake-modules)))
+ (home-page "https://github.com/fcitx/fcitx5-qt")
+ (synopsis "Qt library and IM module for Fcitx 5")
+ (description "Fcitx5-qt provides Qt library for development and IM module
+for Qt based application.")
+ (license (list license:lgpl2.1+
+ ;; Files under qt4(Fcitx5Qt4DBusAddons), qt5/dbusaddons
+ ;; and qt5/platforminputcontext.
+ license:bsd-3))))
--
2.29.2
From 441989303b6b78572c599cb0aa96878ab9f095d2 Mon Sep 17 00:00:00 2001
From: Zhu Zihao <all_but_last@163.com>
Date: Mon, 7 Dec 2020 22:43:47 +0800
Subject: [PATCH 07/10] gnu: Add fcitx5-gtk.

* gnu/packages/fcitx5.scm(fcitx5-gtk): New variable.
---
gnu/packages/fcitx5.scm | 50 +++++++++++++++++++++++++++++++++++++++++
1 file changed, 50 insertions(+)

Toggle diff (63 lines)
diff --git a/gnu/packages/fcitx5.scm b/gnu/packages/fcitx5.scm
index e1676dff27..e41a9faee1 100644
--- a/gnu/packages/fcitx5.scm
+++ b/gnu/packages/fcitx5.scm
@@ -211,6 +211,56 @@ client.")
editors.")
(license license:lgpl2.1+)))
+(define-public fcitx5-gtk
+ (package
+ (name "fcitx5-gtk")
+ (version "5.0.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "https://download.fcitx-im.org/fcitx5"
+ "/fcitx5-gtk/fcitx5-gtk-"
+ version ".tar.xz"))
+ (sha256
+ (base32 "0h53liraqc5nz4nyi3ixdfdw3zzkdcsiff7j25acc3gmaa5gyij7"))))
+ (build-system cmake-build-system)
+ (arguments
+ `(#:tests? #f ;No test
+ #:configure-flags
+ (list (string-append "-DGOBJECT_INTROSPECTION_GIRDIR="
+ %output "/share/gir-1.0")
+ (string-append "-DGOBJECT_INTROSPECTION_TYPELIBDIR="
+ %output "/lib/girepository-1.0"))
+ #:phases
+ (modify-phases %standard-phases
+ (add-before 'configure 'patch-install-prefix
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let ((out (assoc-ref outputs "out"))
+ (gtk3 (assoc-ref outputs "gtk3")))
+
+ (substitute* "gtk3/CMakeLists.txt"
+ (("\\$\\{CMAKE_INSTALL_LIBDIR\\}")
+ (string-append gtk3 "/lib")))))))))
+ (inputs
+ `(("fcitx5" ,fcitx5)
+ ("libxkbcommon" ,libxkbcommon)
+ ("gobject-introspection" ,gobject-introspection)
+ ("gtk2" ,gtk+-2)
+ ("gtk3" ,gtk+)
+ ("glib" ,glib)
+ ("libx11" ,libx11)
+ ("gettext" ,gettext-minimal)))
+ (native-inputs
+ `(("extra-cmake-modules" ,extra-cmake-modules)
+ ("pkg-config" ,pkg-config)
+ ("glib" ,glib "bin"))) ;for glib-genmarshal
+ (outputs '("out" "gtk3"))
+ (home-page "https://github.com/fcitx/fcitx5-gtk")
+ (synopsis "Glib based D-Bus client and GTK IM module for Fcitx 5")
+ (description "Fcitx5-gtk provides a Glib based D-Bus client and IM module
+for GTK+2/GTK+3 application.")
+ (license license:lgpl2.1+)))
+
(define-public fcitx5-qt
(package
(name "fcitx5-qt")
--
2.29.2
From 0e0ce85ec4e24d005f5ce05b4b12f10bf2518d01 Mon Sep 17 00:00:00 2001
From: Zhu Zihao <all_but_last@163.com>
Date: Sat, 28 Nov 2020 13:25:37 +0800
Subject: [PATCH 08/10] gnu: Add fcitx5-chinese-addons.

* gnu/packages/fcitx5.scm(fcitx5-chinese-addons): New variable.
---
gnu/packages/fcitx5.scm | 77 +++++++++++++++++++++++++++++++++++++++++
1 file changed, 77 insertions(+)

Toggle diff (87 lines)
diff --git a/gnu/packages/fcitx5.scm b/gnu/packages/fcitx5.scm
index e41a9faee1..a90c90dcf6 100644
--- a/gnu/packages/fcitx5.scm
+++ b/gnu/packages/fcitx5.scm
@@ -295,3 +295,80 @@ for Qt based application.")
;; Files under qt4(Fcitx5Qt4DBusAddons), qt5/dbusaddons
;; and qt5/platforminputcontext.
license:bsd-3))))
+
+(define-public fcitx5-chinese-addons
+ (package
+ (name "fcitx5-chinese-addons")
+ (version "5.0.2")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "https://download.fcitx-im.org/fcitx5"
+ "/fcitx5-chinese-addons/fcitx5-chinese-addons-"
+ version "_dict.tar.xz"))
+ (sha256
+ (base32 "0mf91gzwzhfci0jn6g3l516xjw8r4v40ginnbl70h1zx6vr24rfp"))))
+ (build-system cmake-build-system)
+ (arguments
+ `(#:configure-flags
+ (list
+ (string-append "-DFEM_INCLUDE_INSTALL_DIR=" %output "/include")
+ (string-append "-DFEM_LIB_INSTALL_DIR=" %output "/lib"))
+ #:phases
+ (modify-phases %standard-phases
+ (add-before 'configure 'patch-install-prefix
+ (lambda* (#:key outputs #:allow-other-keys)
+ (for-each
+ (lambda (x)
+ (format #t "patch-install-prefix: Fixing install prefix in ~a~%"
+ x)
+ (substitute* x
+ (("\\$\\{FCITX_INSTALL_PKGDATADIR\\}")
+ (string-append (assoc-ref outputs "out")
+ "/share/fcitx5"))))
+ (find-files "." "CMakeLists\\.txt$"))
+ #t))
+ (add-before 'configure 'split-outputs
+ ;; Build with GUI supports requires Qt and increase package closure
+ ;; by 800M on x86_64, so place it under another output.
+ (lambda* (#:key outputs #:allow-other-keys)
+ (substitute* "gui/pinyindictmanager/CMakeLists.txt"
+ (("\\$\\{CMAKE_INSTALL_LIBDIR\\}" _)
+ (string-append (assoc-ref outputs "gui") "/lib"))))))))
+ (inputs
+ `(("fcitx5" ,fcitx5)
+ ("fcitx5-lua" ,fcitx5-lua)
+ ("boost" ,boost)
+ ("libime",libime)
+ ("curl" ,curl)
+ ("gettext" ,gettext-minimal)
+ ("fmt" ,fmt)
+ ("libpthread-stubs" ,libpthread-stubs)
+ ("opencc" ,opencc)
+ ("qtbase" ,qtbase)
+ ("fcitx5-qt" ,fcitx5-qt)
+ ("qtwebkit" ,qtwebkit)))
+ (native-inputs
+ `(("extra-cmake-modules" ,extra-cmake-modules)
+ ("pkg-config" ,pkg-config)))
+ (outputs '("out" "gui"))
+ (home-page "https://github.com/fcitx/fcitx5-chinese-addons")
+ (synopsis "Chinese related addons for Fcitx 5")
+ (description "Fcitx5-chinese-addons provides Chinese related addons,
+including input methods previous bundled inside Fcitx 4:
+
+@itemize
+@item Bingchan
+@item Cangjie
+@item Erbi
+@item Pinyin
+@item Shuangpin
+@item Wanfeng
+@item Wubi
+@item Wubi Pinyin
+@item Ziranma
+@end itemize\n")
+ (license (list license:lgpl2.1+
+ license:gpl2+
+ ;; im/pinyin/emoji.txt
+ license:unicode))))
--
2.29.2
From 10f2b4040e265de88b0505f02f483e22c56aa043 Mon Sep 17 00:00:00 2001
From: Zhu Zihao <all_but_last@163.com>
Date: Mon, 7 Dec 2020 22:46:03 +0800
Subject: [PATCH 09/10] gnu: Add fcitx5-configtool.

* gnu/packages/fcitx5.scm(fcitx5-configtool): New variable.
---
gnu/packages/fcitx5.scm | 39 +++++++++++++++++++++++++++++++++++++++
1 file changed, 39 insertions(+)

Toggle diff (49 lines)
diff --git a/gnu/packages/fcitx5.scm b/gnu/packages/fcitx5.scm
index a90c90dcf6..eb268562a9 100644
--- a/gnu/packages/fcitx5.scm
+++ b/gnu/packages/fcitx5.scm
@@ -372,3 +372,42 @@ including input methods previous bundled inside Fcitx 4:
license:gpl2+
;; im/pinyin/emoji.txt
license:unicode))))
+
+(define-public fcitx5-configtool
+ (package
+ (name "fcitx5-configtool")
+ (version "5.0.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://download.fcitx-im.org/fcitx5"
+ "/fcitx5-configtool/fcitx5-configtool-" version ".tar.xz"))
+ (sha256
+ (base32 "0mrqhzvab41hkvhkz7vkb8d2mv5bgx4aqp9jpz4kf3kskwm1q14b"))))
+ (build-system cmake-build-system)
+ (arguments
+ `(#:configure-flags
+ ;; KDE is currently not working on Guix, KCM supports doesn't make sense.
+ '("-DENABLE_KCM=Off")))
+ (inputs
+ `(("fcitx5" ,fcitx5)
+ ("fcitx5-qt" ,fcitx5-qt)
+ ("qtbase" ,qtbase)
+ ("qtx11extras" ,qtx11extras)
+ ("kitemviews" ,kitemviews)
+ ("kwidgetsaddons" ,kwidgetsaddons)
+ ("libx11" ,libx11)
+ ("xkeyboard-config" ,xkeyboard-config)
+ ("libxkbfile" ,libxkbfile)
+ ("gettext" ,gettext-minimal)
+ ("iso-codes" ,iso-codes)))
+ (native-inputs
+ `(("gcc" ,gcc-9)
+ ("extra-cmake-modules" ,extra-cmake-modules)
+ ("pkg-config" ,pkg-config)))
+ (home-page "https://github.com/fcitx/fcitx5-configtool")
+ (synopsis "Graphical configuration tool for Fcitx 5")
+ (description "Fcitx5-configtool is a graphical configuration tool
+to manage different input methods in Fcitx 5.")
+ (license license:gpl2+)))
--
2.29.2
From bc66cd1957fec1aa6c762498cc898e89ee91114c Mon Sep 17 00:00:00 2001
From: Zhu Zihao <all_but_last@163.com>
Date: Mon, 7 Dec 2020 22:45:06 +0800
Subject: [PATCH 10/10] gnu: Add fcitx5-material-color-theme.

* gnu/packages/fcitx5.scm(fcitx5-material-color-theme): New variable.
---
gnu/packages/fcitx5.scm | 70 +++++++++++++++++++++++++++++++++++++++++
1 file changed, 70 insertions(+)

Toggle diff (80 lines)
diff --git a/gnu/packages/fcitx5.scm b/gnu/packages/fcitx5.scm
index eb268562a9..8ca109ed31 100644
--- a/gnu/packages/fcitx5.scm
+++ b/gnu/packages/fcitx5.scm
@@ -411,3 +411,73 @@ including input methods previous bundled inside Fcitx 4:
(description "Fcitx5-configtool is a graphical configuration tool
to manage different input methods in Fcitx 5.")
(license license:gpl2+)))
+
+(define-public fcitx5-material-color-theme
+ (package
+ (name "fcitx5-material-color-theme")
+ (version "0.1")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/hosxy/Fcitx5-Material-Color")
+ (commit version)))
+ (sha256
+ (base32 "1mgc722521jmfx0xc3ibmiycd3q2w7xg2956xcpc07kz90gcdjaa"))))
+ (build-system copy-build-system)
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ (replace 'install
+ (lambda* (#:key outputs #:allow-other-keys)
+ (use-modules (srfi srfi-26))
+
+ (let* ((out (assoc-ref outputs "out"))
+ (assets-dir (string-append
+ out "/share/fcitx5-material-color-theme"))
+ (themes-prefix (string-append out "/share/fcitx5/themes")))
+
+ (define (install-theme-variant variant target)
+ (let ((dir (string-append themes-prefix "/" target))
+ (png (string-append "panel-" variant ".png"))
+ (conf (string-append "theme-" variant ".conf")))
+ (format #t "install: Installing color variant \"~a\" to ~a~%"
+ variant dir)
+ (substitute* conf
+ (("^Name=.*")
+ (string-append "Name=" target "\n")))
+ (mkdir-p dir)
+ (install-file png dir)
+ (copy-file conf (string-append dir "/theme.conf"))
+ (symlink (string-append assets-dir "/arrow.png")
+ (string-append dir "/arrow.png"))))
+
+ (mkdir-p assets-dir)
+ (install-file "arrow.png" assets-dir)
+ (for-each
+ (lambda (x)
+ (install-theme-variant
+ x (string-append "Material-Color-" (string-capitalize x))))
+ '("black" "blue" "brown" "indigo"
+ "orange" "pink" "red" "teal"))
+
+ (install-theme-variant
+ "deepPurple" "Material-Color-DeepPurple")
+ #t))))))
+ (home-page "https://github.com/hosxy/Fcitx5-Material-Color")
+ (synopsis "Material Design for Fcitx 5")
+ (description "Fcitx5-material-color-theme is a Material Design theme
+for Fcitx 5 with following color variants:
+
+@itemize
+@item Black
+@item Blue
+@item Brown
+@item Indigo
+@item Orange
+@item Pink
+@item Red
+@item teal
+@item DeepPurple
+@end itemize\n")
+ (license license:asl2.0)))
--
2.29.2
--
Retrieve my PGP public key: https://meta.sr.ht/~citreu.pgp

Zihao
Z
Z
Zhu Zihao wrote on 7 Dec 2020 16:36
(address . iyzsong@outlook.com)
86a6upfx0o.fsf@163.com
BTW, fcitx5-chinese-addons contains a cloud pinyin feature, which use
Google or Baidu's cloud pinyin server. But it was disabled by default
and it'll ask user to enable it or not, should we make a patch to get
rid of such anti-features?

--
Retrieve my PGP public key: https://meta.sr.ht/~citreu.pgp

Zihao
-----BEGIN PGP SIGNATURE-----

iQFJBAEBCAAzFiEE7NCVzXX6efyusptG1SOVn+xGFqYFAl/OTBcVHGFsbF9idXRf
bGFzdEAxNjMuY29tAAoJENUjlZ/sRhamyBAH/2Wr0IAJzWEx+m1G/Lu1ny8NphAx
vZGUGZkkLgNvNgA5FR0LcQ3yLLh9J+T0WMjq9JBzVpZ9AbZPgznhfED5vp72nR8+
enhuluLWzzhb50IH/Xnv68hwoXZ8sNzhHatXYyUMSzOmkXsjZI8kPHpMdi/FEptd
yVRlCT9OvrHs0bdp4+5MVhQQMkeP1cq2FP42Gbrs/dcVMClEJjjiij3Jn2+C8sw/
ScGdWnh92erJ0HX6hrMOtbhUA4w56A6atAktKs/AisqAdZRRSTmsR/E9fVcy0eKq
VdVfDqQVG1GicH3Yam9YP8chk1mLqFDblGIj44hp6jLpbMXsj5+7J7j8zow=
=t83z
-----END PGP SIGNATURE-----

Z
Z
Zhu Zihao wrote on 8 Dec 2020 11:30
(name . ???)(address . iyzsong@outlook.com)(address . 44920@debbugs.gnu.org)
86sg8gegjh.fsf@163.com
Thanks to upstream maintainer, Fcitx5 now allow us to install addon in
separated prefix without many hacks. (Though some are still needed)
-----BEGIN PGP SIGNATURE-----

iQFJBAEBCAAzFiEE7NCVzXX6efyusptG1SOVn+xGFqYFAl/PVcIVHGFsbF9idXRf
bGFzdEAxNjMuY29tAAoJENUjlZ/sRhamiJIIAK8owfgNMOiOd1Ijsemy4MrQQ89E
WLHQZ8dN50SckapkvGsFtu6JpRmtdN1kqeJ2ZbKV6+5upqCKAmpmqKNnBeu6KRfL
A12vXzOp9CeQdu5rJDix7wchTkpI7q66THKA0zsDykV4q2jfq40vk+EbcKPUSEHm
cO16ZvENEQNdev3WG6e/OKlZQRP2mLXWxlWCGGQYc77fzI/1wy5vcvEVSORHS75u
wHpLBDNmDAz4tJCaIqaXTgXFn1gNTt1Q+CdCY3i4ccszbDOsfGVILNQOSclphqEu
CimxmLHxuWBVp9xcVDqiUkDbo72noF+3aN6HTX2tUObhiQKntkpP7TjVTXo=
=w2px
-----END PGP SIGNATURE-----

From ff65eaa03b3dca992dc53e10c139a2601ccf9a53 Mon Sep 17 00:00:00 2001
From: Zhu Zihao <all_but_last@163.com>
Date: Mon, 7 Dec 2020 22:29:58 +0800
Subject: [PATCH 01/10] gnu: Add (gnu packages fcitx5).

* gnu/packages/fcitx5.scm: New file.
* gnu/local.mk (GNU_SYSTEM_MODULES): Reference to new file.
---
gnu/local.mk | 1 +
gnu/packages/fcitx5.scm | 50 +++++++++++++++++++++++++++++++++++++++++
2 files changed, 51 insertions(+)
create mode 100644 gnu/packages/fcitx5.scm

Toggle diff (70 lines)
diff --git a/gnu/local.mk b/gnu/local.mk
index 5277403196..e37f2dac70 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -204,6 +204,7 @@ GNU_SYSTEM_MODULES = \
%D%/packages/erlang.scm \
%D%/packages/fabric-management.scm \
%D%/packages/fcitx.scm \
+ %D%/packages/fcitx5.scm \
%D%/packages/figlet.scm \
%D%/packages/file.scm \
%D%/packages/file-systems.scm \
diff --git a/gnu/packages/fcitx5.scm b/gnu/packages/fcitx5.scm
new file mode 100644
index 0000000000..8c1fa49322
--- /dev/null
+++ b/gnu/packages/fcitx5.scm
@@ -0,0 +1,50 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2020 Zhu Zihao <all_but_last@163.com>
+;;;
+;;; This file is part of GNU Guix.
+;;;
+;;; GNU Guix is free software; you can redistribute it and/or modify it
+;;; under the terms of the GNU General Public License as published by
+;;; the Free Software Foundation; either version 3 of the License, or (at
+;;; your option) any later version.
+;;;
+;;; GNU Guix is distributed in the hope that it will be useful, but
+;;; WITHOUT ANY WARRANTY; without even the implied warranty of
+;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+;;; GNU General Public License for more details.
+;;;
+;;; You should have received a copy of the GNU General Public License
+;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
+
+(define-module (gnu packages fcitx5)
+ #:use-module (guix packages)
+ #:use-module (guix download)
+ #:use-module (guix git-download)
+ #:use-module (guix build-system cmake)
+ #:use-module (guix build-system copy)
+ #:use-module ((guix licenses) #:prefix license:)
+ #:use-module (gnu packages)
+ #:use-module (gnu packages boost)
+ #:use-module (gnu packages curl)
+ #:use-module (gnu packages datastructures)
+ #:use-module (gnu packages enchant)
+ #:use-module (gnu packages freedesktop)
+ #:use-module (gnu packages gettext)
+ #:use-module (gnu packages gcc)
+ #:use-module (gnu packages glib)
+ #:use-module (gnu packages gtk)
+ #:use-module (gnu packages iso-codes)
+ #:use-module (gnu packages kde-frameworks)
+ #:use-module (gnu packages libevent)
+ #:use-module (gnu packages linux)
+ #:use-module (gnu packages lua)
+ #:use-module (gnu packages pkg-config)
+ #:use-module (gnu packages pretty-print)
+ #:use-module (gnu packages python)
+ #:use-module (gnu packages qt)
+ #:use-module (gnu packages textutils)
+ #:use-module (gnu packages unicode)
+ #:use-module (gnu packages web)
+ #:use-module (gnu packages xdisorg)
+ #:use-module (gnu packages xml)
+ #:use-module (gnu packages xorg))
--
2.29.2
From f18d90b7b9a57a6855be72c8daccba7f98f08c4b Mon Sep 17 00:00:00 2001
From: Zhu Zihao <all_but_last@163.com>
Date: Mon, 7 Dec 2020 22:32:29 +0800
Subject: [PATCH 02/10] gnu: Add xcb-imdkit.

* gnu/packages/fcitx5.scm(xcb-imdkit): New variable.
---
gnu/packages/fcitx5.scm | 34 ++++++++++++++++++++++++++++++++++
1 file changed, 34 insertions(+)

Toggle diff (44 lines)
diff --git a/gnu/packages/fcitx5.scm b/gnu/packages/fcitx5.scm
index 8c1fa49322..edfd6aca2b 100644
--- a/gnu/packages/fcitx5.scm
+++ b/gnu/packages/fcitx5.scm
@@ -48,3 +48,37 @@
#:use-module (gnu packages xdisorg)
#:use-module (gnu packages xml)
#:use-module (gnu packages xorg))
+
+(define-public xcb-imdkit
+ (package
+ (name "xcb-imdkit")
+ (version "1.0.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "https://download.fcitx-im.org/fcitx5/xcb-imdkit/xcb-imdkit-"
+ version ".tar.xz"))
+ (sha256
+ (base32 "1qgbbp8y8ci7haz99vgbrgpjsbrwwyjianyhdvxcirnbm5bybvmz"))
+ (modules '((guix build utils)))
+ (snippet
+ '(begin
+ ;; Remove bundled uthash.
+ (delete-file-recursively "uthash")
+ #t))))
+ (build-system cmake-build-system)
+ (inputs
+ `(("uthash" ,uthash)
+ ("libxcb" ,libxcb)
+ ("xcb-util" ,xcb-util)
+ ("xcb-util-keysyms" ,xcb-util-keysyms)))
+ (native-inputs
+ `(("extra-cmake-modules" ,extra-cmake-modules)
+ ("pkg-config" ,pkg-config)))
+ (home-page "https://github.com/fcitx/xcb-imdkit")
+ (synopsis "Input method development support for XCB.")
+ (description "Xcb-imdkit is an implementation of xim protocol in XCB,
+comparing with the implementation of IMDkit with Xlib, and xim inside Xlib,
+it has less memory foot print, better performance, and safer on malformed
+client.")
+ (license license:lgpl2.1)))
--
2.29.2
From 00d62c64b453f4053f9c31e37a5ee079233dedd1 Mon Sep 17 00:00:00 2001
From: Zhu Zihao <all_but_last@163.com>
Date: Mon, 7 Dec 2020 22:38:35 +0800
Subject: [PATCH 03/10] gnu: Add fcitx5.

* gnu/packages/fcitx5.scm(fcitx5): New variable.
---
gnu/packages/fcitx5.scm | 59 +++++++++++++++++++++++++++++++++++++++++
1 file changed, 59 insertions(+)

Toggle diff (69 lines)
diff --git a/gnu/packages/fcitx5.scm b/gnu/packages/fcitx5.scm
index edfd6aca2b..b65d90f588 100644
--- a/gnu/packages/fcitx5.scm
+++ b/gnu/packages/fcitx5.scm
@@ -82,3 +82,62 @@ comparing with the implementation of IMDkit with Xlib, and xim inside Xlib,
it has less memory foot print, better performance, and safer on malformed
client.")
(license license:lgpl2.1)))
+
+(define-public fcitx5
+ (package
+ (name "fcitx5")
+ (version "5.0.3")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "https://download.fcitx-im.org/fcitx5/fcitx5/fcitx5-"
+ version "_dict.tar.xz"))
+ (sha256
+ (base32 "06zkb33m2rnhg385iy79n3r4svz5jbav74di61xqa3lhbv7534s3"))))
+ (build-system cmake-build-system)
+ (arguments
+ `(#:configure-flags
+ (list (string-append "-DCLDR_DIR="
+ (assoc-ref %build-inputs "unicode-cldr-common")
+ "/share/unicode/cldr"))))
+ (inputs
+ `(("cairo" ,cairo)
+ ("cairo-xcb" ,cairo-xcb)
+ ("dbus" ,dbus)
+ ("enchant" ,enchant)
+ ("expat" ,expat)
+ ("fmt" ,fmt)
+ ("gdk-pixbuf" ,gdk-pixbuf)
+ ("gettext" ,gettext-minimal)
+ ("glib" ,glib)
+ ("iso-codes" ,iso-codes)
+ ("json-c" ,json-c)
+ ("libevent" ,libevent)
+ ("libpthread-stubs" ,libpthread-stubs)
+ ("libuuid" ,util-linux "lib")
+ ("libx11" ,libx11)
+ ("libxcb" ,libxcb)
+ ("libxfixes" ,libxfixes)
+ ("libxinerama" ,libxinerama)
+ ("libxkbcommon" ,libxkbcommon)
+ ("libxkbfile" ,libxkbfile)
+ ("pango" ,pango)
+ ("unicode-cldr-common" ,unicode-cldr-common)
+ ("wayland" ,wayland)
+ ("wayland-protocols" ,wayland-protocols)
+ ("xcb-imdkit" ,xcb-imdkit)
+ ("xcb-util" ,xcb-util)
+ ("xcb-util-keysyms" ,xcb-util-keysyms)
+ ("xcb-util-wm" ,xcb-util-wm)
+ ("xkeyboard-config" ,xkeyboard-config)))
+ (native-inputs
+ `(("extra-cmake-modules" ,extra-cmake-modules)
+ ("pkg-config" ,pkg-config)))
+ (native-search-paths
+ (list (search-path-specification
+ (variable "FCITX_ADDON_DIRS")
+ (files '("lib/fcitx5")))))
+ (home-page "https://github.com/fcitx/fcitx5")
+ (synopsis "Input method framework")
+ (description "Fcitx 5 is a generic input method framework.")
+ (license license:lgpl2.1+)))
--
2.29.2
From c457b386b591b42c7fee42feba60d1d11a7e173f Mon Sep 17 00:00:00 2001
From: Zhu Zihao <all_but_last@163.com>
Date: Mon, 7 Dec 2020 22:39:29 +0800
Subject: [PATCH 04/10] gnu: Add fcitx5-lua.

* gnu/packages/fcitx5.scm(fcitx5-lua): New variable.
---
gnu/packages/fcitx5.scm | 24 ++++++++++++++++++++++++
1 file changed, 24 insertions(+)

Toggle diff (34 lines)
diff --git a/gnu/packages/fcitx5.scm b/gnu/packages/fcitx5.scm
index b65d90f588..7fa35a372a 100644
--- a/gnu/packages/fcitx5.scm
+++ b/gnu/packages/fcitx5.scm
@@ -141,3 +141,27 @@ client.")
(synopsis "Input method framework")
(description "Fcitx 5 is a generic input method framework.")
(license license:lgpl2.1+)))
+
+(define-public fcitx5-lua
+ (package
+ (name "fcitx5-lua")
+ (version "5.0.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "https://download.fcitx-im.org/fcitx5/fcitx5-lua/fcitx5-lua-"
+ version ".tar.xz"))
+ (sha256
+ (base32 "177mj56j8yrl79hvk7bbrifvm137np23pwalv83ibgk4l51z92hf"))))
+ (build-system cmake-build-system)
+ (inputs
+ `(("fcitx5" ,fcitx5)
+ ("lua" ,lua)
+ ("gettext" ,gettext-minimal)
+ ("libpthread-stubs" ,libpthread-stubs)))
+ (native-inputs
+ `(("extra-cmake-modules" ,extra-cmake-modules)))
+ (home-page "https://github.com/fcitx/fcitx5-lua")
+ (synopsis "Lua support for Fcitx 5")
+ (description "Fcitx5-lua allows writing Fcitx5 extension in Lua.")
+ (license license:lgpl2.1+)))
--
2.29.2
From 5d9940529b0ae06403ff7f5a2a176d5d14f1f44c Mon Sep 17 00:00:00 2001
From: Zhu Zihao <all_but_last@163.com>
Date: Mon, 7 Dec 2020 22:40:41 +0800
Subject: [PATCH 05/10] gnu: Add libime.

* gnu/packages/fcitx5.scm(libime): New variable.
---
gnu/packages/fcitx5.scm | 25 +++++++++++++++++++++++++
1 file changed, 25 insertions(+)

Toggle diff (35 lines)
diff --git a/gnu/packages/fcitx5.scm b/gnu/packages/fcitx5.scm
index 7fa35a372a..cfcb454fa9 100644
--- a/gnu/packages/fcitx5.scm
+++ b/gnu/packages/fcitx5.scm
@@ -165,3 +165,28 @@ client.")
(synopsis "Lua support for Fcitx 5")
(description "Fcitx5-lua allows writing Fcitx5 extension in Lua.")
(license license:lgpl2.1+)))
+
+(define-public libime
+ (package
+ (name "libime")
+ (version "1.0.2")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "https://download.fcitx-im.org/fcitx5/libime/libime-"
+ version "_dict.tar.xz"))
+ (sha256
+ (base32 "006pncby7p6h3rnicckzjwi6jzsrqiqbj6p9bpic80lanlllgw31"))))
+ (build-system cmake-build-system)
+ (inputs
+ `(("fcitx5" ,fcitx5)
+ ("boost" ,boost)))
+ (native-inputs
+ `(("gcc" ,gcc-9) ;for #include <filesystem> and ld support
+ ("extra-cmake-modules" ,extra-cmake-modules)
+ ("python" ,python))) ;needed to run test
+ (home-page "https://github.com/fcitx/libime")
+ (synopsis "Library for implementing generic input method")
+ (description "Libime is a library for implmenting various input methods
+editors.")
+ (license license:lgpl2.1+)))
--
2.29.2
From 3b2066d8e5e84020401d762a9584a77b55bb6304 Mon Sep 17 00:00:00 2001
From: Zhu Zihao <all_but_last@163.com>
Date: Mon, 7 Dec 2020 22:42:43 +0800
Subject: [PATCH 06/10] gnu: Add fcitx5-qt.

* gnu/packages/fcitx5.scm(fcitx5-qt): New variable.
---
gnu/packages/fcitx5.scm | 35 +++++++++++++++++++++++++++++++++++
1 file changed, 35 insertions(+)

Toggle diff (45 lines)
diff --git a/gnu/packages/fcitx5.scm b/gnu/packages/fcitx5.scm
index cfcb454fa9..2ca1e8d8e5 100644
--- a/gnu/packages/fcitx5.scm
+++ b/gnu/packages/fcitx5.scm
@@ -190,3 +190,38 @@ client.")
(description "Libime is a library for implmenting various input methods
editors.")
(license license:lgpl2.1+)))
+
+(define-public fcitx5-qt
+ (package
+ (name "fcitx5-qt")
+ (version "5.0.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "https://download.fcitx-im.org/fcitx5"
+ "/fcitx5-qt/fcitx5-qt-"
+ version ".tar.xz"))
+ (sha256
+ (base32 "0ilhb4yw9k3m1c4fidnv3nd5dgm9xxds11dgdys6gswjjnmcgqqm"))))
+ (build-system cmake-build-system)
+ (arguments
+ `(#:configure-flags
+ (list (string-append "-DCMAKE_INSTALL_QT5PLUGINDIR="
+ %output "/lib/qt5/plugins")
+ "-DENABLE_QT4=Off")))
+ (inputs
+ `(("fcitx5" ,fcitx5)
+ ("libxcb" ,libxcb)
+ ("libxkbcommon" ,libxkbcommon)
+ ("qtbase" ,qtbase)
+ ("gettext" ,gettext-minimal)))
+ (native-inputs
+ `(("extra-cmake-modules" ,extra-cmake-modules)))
+ (home-page "https://github.com/fcitx/fcitx5-qt")
+ (synopsis "Qt library and IM module for Fcitx 5")
+ (description "Fcitx5-qt provides Qt library for development and IM module
+for Qt based application.")
+ (license (list license:lgpl2.1+
+ ;; Files under qt4(Fcitx5Qt4DBusAddons), qt5/dbusaddons
+ ;; and qt5/platforminputcontext.
+ license:bsd-3))))
--
2.29.2
From 61abe1f5eb7bb3bd4e80199fb8225be200a223e7 Mon Sep 17 00:00:00 2001
From: Zhu Zihao <all_but_last@163.com>
Date: Mon, 7 Dec 2020 22:43:47 +0800
Subject: [PATCH 07/10] gnu: Add fcitx5-gtk.

* gnu/packages/fcitx5.scm(fcitx5-gtk): New variable.
---
gnu/packages/fcitx5.scm | 49 +++++++++++++++++++++++++++++++++++++++++
1 file changed, 49 insertions(+)

Toggle diff (62 lines)
diff --git a/gnu/packages/fcitx5.scm b/gnu/packages/fcitx5.scm
index 2ca1e8d8e5..13f4cd12ad 100644
--- a/gnu/packages/fcitx5.scm
+++ b/gnu/packages/fcitx5.scm
@@ -191,6 +191,55 @@ client.")
editors.")
(license license:lgpl2.1+)))
+(define-public fcitx5-gtk
+ (package
+ (name "fcitx5-gtk")
+ (version "5.0.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "https://download.fcitx-im.org/fcitx5"
+ "/fcitx5-gtk/fcitx5-gtk-"
+ version ".tar.xz"))
+ (sha256
+ (base32 "0h53liraqc5nz4nyi3ixdfdw3zzkdcsiff7j25acc3gmaa5gyij7"))))
+ (build-system cmake-build-system)
+ (arguments
+ `(#:tests? #f ;No test
+ #:configure-flags
+ (list (string-append "-DGOBJECT_INTROSPECTION_GIRDIR="
+ %output "/share/gir-1.0")
+ (string-append "-DGOBJECT_INTROSPECTION_TYPELIBDIR="
+ %output "/lib/girepository-1.0"))
+ #:phases
+ (modify-phases %standard-phases
+ (add-before 'configure 'patch-install-prefix
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let ((gtk3 (assoc-ref outputs "gtk3")))
+
+ (substitute* "gtk3/CMakeLists.txt"
+ (("\\$\\{CMAKE_INSTALL_LIBDIR\\}")
+ (string-append gtk3 "/lib")))))))))
+ (inputs
+ `(("fcitx5" ,fcitx5)
+ ("libxkbcommon" ,libxkbcommon)
+ ("gobject-introspection" ,gobject-introspection)
+ ("gtk2" ,gtk+-2)
+ ("gtk3" ,gtk+)
+ ("glib" ,glib)
+ ("libx11" ,libx11)
+ ("gettext" ,gettext-minimal)))
+ (native-inputs
+ `(("extra-cmake-modules" ,extra-cmake-modules)
+ ("pkg-config" ,pkg-config)
+ ("glib" ,glib "bin"))) ;for glib-genmarshal
+ (outputs '("out" "gtk3"))
+ (home-page "https://github.com/fcitx/fcitx5-gtk")
+ (synopsis "Glib based D-Bus client and GTK IM module for Fcitx 5")
+ (description "Fcitx5-gtk provides a Glib based D-Bus client and IM module
+for GTK+2/GTK+3 application.")
+ (license license:lgpl2.1+)))
+
(define-public fcitx5-qt
(package
(name "fcitx5-qt")
--
2.29.2
From f3d583ef9b349f1f848ac76d9d15ba30ec3c87b1 Mon Sep 17 00:00:00 2001
From: Zhu Zihao <all_but_last@163.com>
Date: Sat, 28 Nov 2020 13:25:37 +0800
Subject: [PATCH 08/10] gnu: Add fcitx5-chinese-addons.

* gnu/packages/fcitx5.scm(fcitx5-chinese-addons): New variable.
---
gnu/packages/fcitx5.scm | 61 +++++++++++++++++++++++++++++++++++++++++
1 file changed, 61 insertions(+)

Toggle diff (71 lines)
diff --git a/gnu/packages/fcitx5.scm b/gnu/packages/fcitx5.scm
index 13f4cd12ad..47386ea6a3 100644
--- a/gnu/packages/fcitx5.scm
+++ b/gnu/packages/fcitx5.scm
@@ -274,3 +274,64 @@ for Qt based application.")
;; Files under qt4(Fcitx5Qt4DBusAddons), qt5/dbusaddons
;; and qt5/platforminputcontext.
license:bsd-3))))
+
+(define-public fcitx5-chinese-addons
+ (package
+ (name "fcitx5-chinese-addons")
+ (version "5.0.2")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "https://download.fcitx-im.org/fcitx5"
+ "/fcitx5-chinese-addons/fcitx5-chinese-addons-"
+ version "_dict.tar.xz"))
+ (sha256
+ (base32 "0mf91gzwzhfci0jn6g3l516xjw8r4v40ginnbl70h1zx6vr24rfp"))))
+ (build-system cmake-build-system)
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ (add-before 'configure 'split-outputs
+ ;; Build with GUI supports requires Qt and increase package closure
+ ;; by 800M on x86_64, so place it under another output.
+ (lambda* (#:key outputs #:allow-other-keys)
+ (substitute* "gui/pinyindictmanager/CMakeLists.txt"
+ (("\\$\\{CMAKE_INSTALL_LIBDIR\\}" _)
+ (string-append (assoc-ref outputs "gui") "/lib"))))))))
+ (inputs
+ `(("fcitx5" ,fcitx5)
+ ("fcitx5-lua" ,fcitx5-lua)
+ ("boost" ,boost)
+ ("libime",libime)
+ ("curl" ,curl)
+ ("gettext" ,gettext-minimal)
+ ("fmt" ,fmt)
+ ("libpthread-stubs" ,libpthread-stubs)
+ ("opencc" ,opencc)
+ ("qtbase" ,qtbase)
+ ("fcitx5-qt" ,fcitx5-qt)
+ ("qtwebkit" ,qtwebkit)))
+ (native-inputs
+ `(("extra-cmake-modules" ,extra-cmake-modules)
+ ("pkg-config" ,pkg-config)))
+ (outputs '("out" "gui"))
+ (home-page "https://github.com/fcitx/fcitx5-chinese-addons")
+ (synopsis "Chinese related addons for Fcitx 5")
+ (description "Fcitx5-chinese-addons provides Chinese related addons,
+including input methods previous bundled inside Fcitx 4:
+
+@itemize
+@item Bingchan
+@item Cangjie
+@item Erbi
+@item Pinyin
+@item Shuangpin
+@item Wanfeng
+@item Wubi
+@item Wubi Pinyin
+@item Ziranma
+@end itemize\n")
+ (license (list license:lgpl2.1+
+ license:gpl2+
+ ;; im/pinyin/emoji.txt
+ license:unicode))))
--
2.29.2
From 4ab7096a696c2fd0b0d6a43af89e2208dfbf1810 Mon Sep 17 00:00:00 2001
From: Zhu Zihao <all_but_last@163.com>
Date: Mon, 7 Dec 2020 22:46:03 +0800
Subject: [PATCH 09/10] gnu: Add fcitx5-configtool.

* gnu/packages/fcitx5.scm(fcitx5-configtool): New variable.
---
gnu/packages/fcitx5.scm | 39 +++++++++++++++++++++++++++++++++++++++
1 file changed, 39 insertions(+)

Toggle diff (49 lines)
diff --git a/gnu/packages/fcitx5.scm b/gnu/packages/fcitx5.scm
index 47386ea6a3..19d0f55a7c 100644
--- a/gnu/packages/fcitx5.scm
+++ b/gnu/packages/fcitx5.scm
@@ -335,3 +335,42 @@ including input methods previous bundled inside Fcitx 4:
license:gpl2+
;; im/pinyin/emoji.txt
license:unicode))))
+
+(define-public fcitx5-configtool
+ (package
+ (name "fcitx5-configtool")
+ (version "5.0.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://download.fcitx-im.org/fcitx5"
+ "/fcitx5-configtool/fcitx5-configtool-" version ".tar.xz"))
+ (sha256
+ (base32 "0mrqhzvab41hkvhkz7vkb8d2mv5bgx4aqp9jpz4kf3kskwm1q14b"))))
+ (build-system cmake-build-system)
+ (arguments
+ `(#:configure-flags
+ ;; KDE is currently not working on Guix, KCM supports doesn't make sense.
+ '("-DENABLE_KCM=Off")))
+ (inputs
+ `(("fcitx5" ,fcitx5)
+ ("fcitx5-qt" ,fcitx5-qt)
+ ("qtbase" ,qtbase)
+ ("qtx11extras" ,qtx11extras)
+ ("kitemviews" ,kitemviews)
+ ("kwidgetsaddons" ,kwidgetsaddons)
+ ("libx11" ,libx11)
+ ("xkeyboard-config" ,xkeyboard-config)
+ ("libxkbfile" ,libxkbfile)
+ ("gettext" ,gettext-minimal)
+ ("iso-codes" ,iso-codes)))
+ (native-inputs
+ `(("gcc" ,gcc-9)
+ ("extra-cmake-modules" ,extra-cmake-modules)
+ ("pkg-config" ,pkg-config)))
+ (home-page "https://github.com/fcitx/fcitx5-configtool")
+ (synopsis "Graphical configuration tool for Fcitx 5")
+ (description "Fcitx5-configtool is a graphical configuration tool
+to manage different input methods in Fcitx 5.")
+ (license license:gpl2+)))
--
2.29.2
From d5089c5300a905bd50c1d58c0d0ec71334632945 Mon Sep 17 00:00:00 2001
From: Zhu Zihao <all_but_last@163.com>
Date: Mon, 7 Dec 2020 22:45:06 +0800
Subject: [PATCH 10/10] gnu: Add fcitx5-material-color-theme.

* gnu/packages/fcitx5.scm(fcitx5-material-color-theme): New variable.
---
gnu/packages/fcitx5.scm | 70 +++++++++++++++++++++++++++++++++++++++++
1 file changed, 70 insertions(+)

Toggle diff (80 lines)
diff --git a/gnu/packages/fcitx5.scm b/gnu/packages/fcitx5.scm
index 19d0f55a7c..0a6a2c45e5 100644
--- a/gnu/packages/fcitx5.scm
+++ b/gnu/packages/fcitx5.scm
@@ -374,3 +374,73 @@ including input methods previous bundled inside Fcitx 4:
(description "Fcitx5-configtool is a graphical configuration tool
to manage different input methods in Fcitx 5.")
(license license:gpl2+)))
+
+(define-public fcitx5-material-color-theme
+ (package
+ (name "fcitx5-material-color-theme")
+ (version "0.1")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/hosxy/Fcitx5-Material-Color")
+ (commit version)))
+ (sha256
+ (base32 "1mgc722521jmfx0xc3ibmiycd3q2w7xg2956xcpc07kz90gcdjaa"))))
+ (build-system copy-build-system)
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ (replace 'install
+ (lambda* (#:key outputs #:allow-other-keys)
+ (use-modules (srfi srfi-26))
+
+ (let* ((out (assoc-ref outputs "out"))
+ (assets-dir (string-append
+ out "/share/fcitx5-material-color-theme"))
+ (themes-prefix (string-append out "/share/fcitx5/themes")))
+
+ (define (install-theme-variant variant target)
+ (let ((dir (string-append themes-prefix "/" target))
+ (png (string-append "panel-" variant ".png"))
+ (conf (string-append "theme-" variant ".conf")))
+ (format #t "install: Installing color variant \"~a\" to ~a~%"
+ variant dir)
+ (substitute* conf
+ (("^Name=.*")
+ (string-append "Name=" target "\n")))
+ (mkdir-p dir)
+ (install-file png dir)
+ (copy-file conf (string-append dir "/theme.conf"))
+ (symlink (string-append assets-dir "/arrow.png")
+ (string-append dir "/arrow.png"))))
+
+ (mkdir-p assets-dir)
+ (install-file "arrow.png" assets-dir)
+ (for-each
+ (lambda (x)
+ (install-theme-variant
+ x (string-append "Material-Color-" (string-capitalize x))))
+ '("black" "blue" "brown" "indigo"
+ "orange" "pink" "red" "teal"))
+
+ (install-theme-variant
+ "deepPurple" "Material-Color-DeepPurple")
+ #t))))))
+ (home-page "https://github.com/hosxy/Fcitx5-Material-Color")
+ (synopsis "Material Design for Fcitx 5")
+ (description "Fcitx5-material-color-theme is a Material Design theme
+for Fcitx 5 with following color variants:
+
+@itemize
+@item Black
+@item Blue
+@item Brown
+@item Indigo
+@item Orange
+@item Pink
+@item Red
+@item teal
+@item DeepPurple
+@end itemize\n")
+ (license license:asl2.0)))
--
2.29.2
--
Retrieve my PGP public key: https://meta.sr.ht/~citreu.pgp

Zihao
?
(name . Zhu Zihao)(address . all_but_last@163.com)(address . 44920-done@debbugs.gnu.org)
TYAP286MB0185EC913FECF4A5EE619D6AA3CD0@TYAP286MB0185.JPNP286.PROD.OUTLOOK.COM
Zhu Zihao <all_but_last@163.com> writes:

Toggle quote (5 lines)
> All Fcitx5 components updated.
>
> Here are the patches.
>

For fcitx5-gtk, I change the "gtk3" output to "gtk2", as GTK+ 3 is the
default version.

Applied, thank you!


Toggle quote (5 lines)
> BTW, fcitx5-chinese-addons contains a cloud pinyin feature, which use
> Google or Baidu's cloud pinyin server. But it was disabled by default
> and it'll ask user to enable it or not, should we make a patch to get
> rid of such anti-features?

I leave it in for now, maybe it's good to ask upstream for a disable
option for cloudpinyin.
Closed
?
(name . Zhu Zihao)(address . all_but_last@163.com)(address . 44920@debbugs.gnu.org)
TYAP286MB0185614E87A8BC5FEA32AAACA3CD0@TYAP286MB0185.JPNP286.PROD.OUTLOOK.COM
Zhu Zihao <all_but_last@163.com> writes:

Toggle quote (4 lines)
> Thanks to upstream maintainer, Fcitx5 now allow us to install addon in
> separated prefix without many hacks. (Though some are still needed)
>

Oh, sorry for my ignorance, I missed this one, as the previous patches
already pushed, could you rebase this patch for master?

Thank you!
?