X-Git-Url: https://git.hcoop.net/jackhill/guix/guix.git/blobdiff_plain/d4aca38b50d75cff9bd065a855e7368a51843db4..53ed3e4bbda8ccc7f4d8c20564c6ff3ac2e0a726:/gnu/packages/fcitx5.scm diff --git a/gnu/packages/fcitx5.scm b/gnu/packages/fcitx5.scm index bdebe579a9..a01eacb7cb 100644 --- a/gnu/packages/fcitx5.scm +++ b/gnu/packages/fcitx5.scm @@ -1,5 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2020 Zhu Zihao +;;; Copyright © 2021 Tobias Geerinckx-Rice ;;; ;;; This file is part of GNU Guix. ;;; @@ -19,9 +20,12 @@ (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 boost) + #:use-module (gnu packages curl) #:use-module (gnu packages datastructures) #:use-module (gnu packages enchant) #:use-module (gnu packages freedesktop) @@ -38,6 +42,7 @@ #: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) @@ -47,7 +52,7 @@ (define-public xcb-imdkit (package (name "xcb-imdkit") - (version "1.0.1") + (version "1.0.3") (source (origin (method url-fetch) @@ -55,7 +60,7 @@ "https://download.fcitx-im.org/fcitx5/xcb-imdkit/xcb-imdkit-" version ".tar.xz")) (sha256 - (base32 "1qgbbp8y8ci7haz99vgbrgpjsbrwwyjianyhdvxcirnbm5bybvmz")) + (base32 "1s58vjkdrgr8h183jz4b4mjn7pbvdc9cli01cn66mgczl9p65hh9")) (modules '((guix build utils))) (snippet '(begin @@ -82,7 +87,7 @@ client.") (define-public fcitx5 (package (name "fcitx5") - (version "5.0.3") + (version "5.0.5") (source (origin (method url-fetch) @@ -90,7 +95,7 @@ client.") "https://download.fcitx-im.org/fcitx5/fcitx5/fcitx5-" version "_dict.tar.xz")) (sha256 - (base32 "06zkb33m2rnhg385iy79n3r4svz5jbav74di61xqa3lhbv7534s3")))) + (base32 "16j716xawbszkb3fxzpdza1a4czh0fvkysikjc9bfyvbwp72p6an")))) (build-system cmake-build-system) (arguments `(#:configure-flags @@ -142,7 +147,7 @@ client.") (define-public fcitx5-lua (package (name "fcitx5-lua") - (version "5.0.1") + (version "5.0.2") (source (origin (method url-fetch) @@ -150,27 +155,8 @@ client.") "https://download.fcitx-im.org/fcitx5/fcitx5-lua/fcitx5-lua-" version ".tar.xz")) (sha256 - (base32 "177mj56j8yrl79hvk7bbrifvm137np23pwalv83ibgk4l51z92hf")))) + (base32 "0y5yc9102bz681f4wj6xqjxmfdmrshz3fhf39pa61718hkyy9lih")))) (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"))))))) (inputs `(("fcitx5" ,fcitx5) ("lua" ,lua) @@ -186,14 +172,14 @@ client.") (define-public libime (package (name "libime") - (version "1.0.2") + (version "1.0.6") (source (origin (method url-fetch) (uri (string-append "https://download.fcitx-im.org/fcitx5/libime/libime-" version "_dict.tar.xz")) (sha256 - (base32 "006pncby7p6h3rnicckzjwi6jzsrqiqbj6p9bpic80lanlllgw31")))) + (base32 "1s8gzpzyn16pg9gm7kw1nhl09drdndi6j4mjam14ymqsrfsdqr1r")))) (build-system cmake-build-system) (inputs `(("fcitx5" ,fcitx5) @@ -204,14 +190,14 @@ client.") ("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 + (description "Libime is a library for implementing various input methods editors.") (license license:lgpl2.1+))) (define-public fcitx5-gtk (package (name "fcitx5-gtk") - (version "5.0.1") + (version "5.0.3") (source (origin (method url-fetch) @@ -219,7 +205,7 @@ editors.") "/fcitx5-gtk/fcitx5-gtk-" version ".tar.xz")) (sha256 - (base32 "0h53liraqc5nz4nyi3ixdfdw3zzkdcsiff7j25acc3gmaa5gyij7")))) + (base32 "18bwwj9a5v82c6ssc8560hd8vwykakvg6sfijwdb5jswk9mafvgj")))) (build-system cmake-build-system) (arguments `(#:tests? #f ;No test @@ -227,7 +213,9 @@ editors.") (list (string-append "-DGOBJECT_INTROSPECTION_GIRDIR=" %output "/share/gir-1.0") (string-append "-DGOBJECT_INTROSPECTION_TYPELIBDIR=" - %output "/lib/girepository-1.0")) + %output "/lib/girepository-1.0") + ;; TODO: Enable it when Guix has GTK4. + "-DENABLE_GTK4_IM_MODULE=Off") #:phases (modify-phases %standard-phases (add-before 'configure 'patch-install-prefix @@ -262,7 +250,7 @@ for GTK+2/GTK+3 application.") (define-public fcitx5-qt (package (name "fcitx5-qt") - (version "5.0.1") + (version "5.0.5") (source (origin (method url-fetch) @@ -270,7 +258,7 @@ for GTK+2/GTK+3 application.") "/fcitx5-qt/fcitx5-qt-" version ".tar.xz")) (sha256 - (base32 "0ilhb4yw9k3m1c4fidnv3nd5dgm9xxds11dgdys6gswjjnmcgqqm")))) + (base32 "0vsvrfv0b21pfrz5n0v6p458vfr8k7km50h9bhjp1bnssampjfsb")))) (build-system cmake-build-system) (arguments `(#:configure-flags @@ -293,3 +281,173 @@ 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.3") + (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 "1kmzbllk0g86m2z3piwn9j84ihxixyxzv7rzj832xfvwqgk7gixk")))) + (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)))) + +(define-public fcitx5-configtool + (package + (name "fcitx5-configtool") + (version "5.0.2") + (source + (origin + (method url-fetch) + (uri (string-append + "https://download.fcitx-im.org/fcitx5" + "/fcitx5-configtool/fcitx5-configtool-" version ".tar.xz")) + (sha256 + (base32 "0rpk3yn572pcr29jak63x84g0qgj8hj011aw8gmxjah9311nxhpb")))) + (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+))) + +(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))) + (file-name (git-file-name name 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"))))))) + (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)))