diff options
Diffstat (limited to 'gnu/packages/ibus.scm')
-rw-r--r-- | gnu/packages/ibus.scm | 118 |
1 files changed, 85 insertions, 33 deletions
diff --git a/gnu/packages/ibus.scm b/gnu/packages/ibus.scm index ab4b82284e..4cf6762d24 100644 --- a/gnu/packages/ibus.scm +++ b/gnu/packages/ibus.scm @@ -7,6 +7,7 @@ ;;; Copyright © 2018, 2019, 2020, 2021 Peng Mei Yu <pengmeiyu@riseup.net> ;;; Copyright © 2020 kanichos <kanichos@yandex.ru> ;;; Copyright © 2020 Vincent Legoll <vincent.legoll@gmail.com> +;;; Copyright © 2021 Felix Gruber <felgru@posteo.net> ;;; Copyright © 2021 Songlin Jiang <hollowman@hollowman.ml> ;;; ;;; This file is part of GNU Guix. @@ -44,6 +45,7 @@ #:use-module (gnu packages databases) #:use-module (gnu packages datastructures) #:use-module (gnu packages dbm) + #:use-module (gnu packages docbook) #:use-module (gnu packages freedesktop) #:use-module (gnu packages gettext) #:use-module (gnu packages glib) @@ -51,19 +53,22 @@ #:use-module (gnu packages gtk) #:use-module (gnu packages iso-codes) #:use-module (gnu packages logging) + #:use-module (gnu packages perl) #:use-module (gnu packages pkg-config) #:use-module (gnu packages python) + #:use-module (gnu packages python-xyz) #:use-module (gnu packages python-web) #:use-module (gnu packages serialization) #:use-module (gnu packages sqlite) #:use-module (gnu packages textutils) #:use-module (gnu packages unicode) - #:use-module (gnu packages xorg)) + #:use-module (gnu packages xorg) + #:use-module (gnu packages xdisorg)) (define-public ibus (package (name "ibus") - (version "1.5.22") + (version "1.5.24") (source (origin (method url-fetch) (uri (string-append "https://github.com/ibus/ibus/" @@ -71,12 +76,14 @@ version "/ibus-" version ".tar.gz")) (sha256 (base32 - "0jmy2w01phpmqnjnfnak7nvfna57mpgfnl87jwc4iai8ijjynw41")))) + "07s2ly75xv50bqg37mn37i9akqvcfd45k2mbplxrsqk3a2b3mwxb")))) (build-system glib-or-gtk-build-system) + (outputs '("out" "doc")) (arguments - `(#:tests? #f ; tests fail because there's no connection to dbus - #:parallel-build? #f ; race condition discovered with emoji support + `(#:parallel-build? #f ; race condition discovered with emoji support #:configure-flags (list "--enable-python-library" + "--enable-gtk-doc" + "--enable-memconf" (string-append "--with-unicode-emoji-dir=" (assoc-ref %build-inputs "unicode-emoji") @@ -91,6 +98,20 @@ "--enable-wayland") #:phases (modify-phases %standard-phases + (add-after 'unpack 'disable-failing-tests + (lambda _ + ;; These tests require /etc/machine-id. + (with-directory-excursion "src/tests" + (substitute* '("ibus-share.c" "ibus-compose.c" + "ibus-keypress.c") + (("[ \t]*return g_test_run \\(\\);") ""))))) + (add-after 'unpack 'patch-docbook-xml + (lambda* (#:key inputs #:allow-other-keys) + (with-directory-excursion "docs/reference/ibus" + (substitute* "ibus-docs.sgml.in" + (("http://www.oasis-open.org/docbook/xml/4.1.2/") + (string-append (assoc-ref inputs "docbook-xml") + "/xml/dtd/docbook/")))))) (add-after 'unpack 'patch-python-target-directories (lambda* (#:key outputs #:allow-other-keys) (let ((root (string-append (assoc-ref outputs "out") @@ -101,13 +122,11 @@ (("(py2?overridesdir)=.*" _ var) (string-append var "=" root "/gi/overrides/")) (("(pkgpython2dir=).*" _ var) - (string-append var root "/ibus")))) - #t)) + (string-append var root "/ibus")))))) (add-before 'configure 'disable-dconf-update (lambda _ (substitute* "data/dconf/Makefile.in" - (("dconf update") "echo dconf update")) - #t)) + (("dconf update") "echo dconf update")))) (add-after 'unpack 'delete-generated-files (lambda _ (for-each (lambda (file) @@ -115,53 +134,85 @@ (when (file-exists? c) (format #t "deleting ~a\n" c) (delete-file c)))) - (find-files "." "\\.vala")) - #t)) + (find-files "." "\\.vala")))) (add-after 'unpack 'fix-paths (lambda* (#:key inputs #:allow-other-keys) (substitute* "src/ibusenginesimple.c" (("/usr/share/X11/locale") - (string-append (assoc-ref inputs "libx11") - "/share/X11/locale"))) + (search-input-directory inputs + "share/X11/locale"))) (substitute* "ui/gtk3/xkblayout.vala" (("\"(setxkbmap|xmodmap)\"" _ prog) - (string-append "\"" (assoc-ref inputs prog) "/bin/" prog "\""))) - #t)) + (string-append "\"" + (search-input-file inputs + (string-append "bin/" prog)) + "\""))))) + (add-before 'check 'pre-check + (lambda _ + ;; Tests write to $HOME. + (setenv "HOME" (getcwd)) + ;; Tests look for $XDG_RUNTIME_DIR. + (setenv "XDG_RUNTIME_DIR" (getcwd)) + ;; For missing '/etc/machine-id'. + (setenv "DBUS_FATAL_WARNINGS" "0") + ;; Tests require a running X server. + (system "Xvfb :1 +extension GLX &") + (setenv "DISPLAY" ":1") + ;; Tests require running iBus daemon. + (system "./bus/ibus-daemon --daemonize"))) + (add-after 'install 'move-doc + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (doc (assoc-ref outputs "doc"))) + (mkdir-p (string-append doc "/share")) + (rename-file + (string-append out "/share/gtk-doc") + (string-append doc "/share/gtk-doc"))))) (add-after 'wrap-program 'wrap-with-additional-paths (lambda* (#:key outputs #:allow-other-keys) ;; Make sure 'ibus-setup' runs with the correct PYTHONPATH and ;; GI_TYPELIB_PATH. (let ((out (assoc-ref outputs "out"))) (wrap-program (string-append out "/bin/ibus-setup") - `("PYTHONPATH" ":" prefix (,(getenv "PYTHONPATH"))) + `("GUIX_PYTHONPATH" ":" prefix (,(getenv "GUIX_PYTHONPATH"))) `("GI_TYPELIB_PATH" ":" prefix (,(getenv "GI_TYPELIB_PATH") - ,(string-append out "/lib/girepository-1.0"))))) - #t))))) + ,(string-append out "/lib/girepository-1.0")))))))))) (inputs `(("dbus" ,dbus) ("dconf" ,dconf) - ("gconf" ,gconf) + ("glib" ,glib) ("gtk2" ,gtk+-2) ("gtk+" ,gtk+) + ("iso-codes" ,iso-codes) ("json-glib" ,json-glib) ("libnotify" ,libnotify) ("libx11" ,libx11) + ("libxkbcommon" ,libxkbcommon) + ("libxtst" ,libxtst) + ("pygobject" ,python-pygobject) + ("python" ,python) + ("python-dbus" ,python-dbus) ("setxkbmap" ,setxkbmap) + ("ucd" ,ucd) + ("unicode-cldr-common" ,unicode-cldr-common) + ("unicode-emoji" ,unicode-emoji) ("wayland" ,wayland) - ("xmodmap" ,xmodmap) - ("iso-codes" ,iso-codes) - ("pygobject2" ,python-pygobject) - ("python" ,python))) + ("xmodmap" ,xmodmap))) (native-inputs - `(("glib" ,glib "bin") ; for glib-genmarshal + `(("docbook-xml" ,docbook-xml-4.1.2) + ("glib" ,glib "bin") ; for glib-genmarshal ("gettext" ,gettext-minimal) + ("gnome-common" ,gnome-common) ("gobject-introspection" ,gobject-introspection) ; for g-ir-compiler - ("ucd" ,ucd) - ("unicode-emoji" ,unicode-emoji) - ("unicode-cldr-common" ,unicode-cldr-common) + ("gtk+:bin" ,gtk+ "bin") + ("gtk-doc" ,gtk-doc) + ("perl" ,perl) + ("pkg-config" ,pkg-config) + ("python-wrapper" ,python-wrapper) ("vala" ,vala) - ("pkg-config" ,pkg-config))) + ("which" ,which) + ("xorg-server" ,xorg-server-for-tests))) (native-search-paths (list (search-path-specification (variable "IBUS_COMPONENT_PATH") @@ -198,8 +249,8 @@ may also simplify input method development.") ;; PYTHONPATH and GI_TYPELIB_PATH. (let ((out (assoc-ref outputs "out"))) (wrap-program (string-append out "/libexec/ibus-setup-libpinyin") - `("PYTHONPATH" ":" = - (,(getenv "PYTHONPATH") + `("GUIX_PYTHONPATH" ":" prefix + (,(getenv "GUIX_PYTHONPATH") ,(string-append (assoc-ref inputs "ibus") "/lib/girepository-1.0") ,(string-append (assoc-ref outputs "out") @@ -280,8 +331,8 @@ Chinese pinyin input methods.") (for-each (lambda (prog) (wrap-program (string-append out "/libexec/" prog) - `("PYTHONPATH" ":" prefix - (,(getenv "PYTHONPATH"))) + `("GUIX_PYTHONPATH" ":" prefix + (,(getenv "GUIX_PYTHONPATH"))) `("GI_TYPELIB_PATH" ":" prefix (,(getenv "GI_TYPELIB_PATH") ,(string-append out "/lib/girepository-1.0"))))) @@ -320,6 +371,7 @@ Japanese language input in most graphical applications.") (sha256 (base32 "0pqk0i3zcii3fx5laj9qzbgd58jvq6wn31j76w4zix2i4b1lqcqv")) + (patches (search-patches "librime-fix-build-with-gcc10.patch")) (modules '((guix build utils))) (snippet '(begin @@ -752,7 +804,7 @@ hanja dictionary and small hangul character classification.") (lambda* (#:key inputs outputs #:allow-other-keys) (wrap-program (string-append (assoc-ref outputs "out") "/libexec/ibus-setup-hangul") - `("PYTHONPATH" ":" prefix (,(getenv "PYTHONPATH"))) + `("GUIX_PYTHONPATH" ":" prefix (,(getenv "GUIX_PYTHONPATH"))) `("LD_LIBRARY_PATH" ":" prefix (,(string-append (assoc-ref inputs "libhangul") "/lib"))) `("GI_TYPELIB_PATH" ":" prefix |