summaryrefslogtreecommitdiff
path: root/gnu/packages/ibus.scm
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/packages/ibus.scm')
-rw-r--r--gnu/packages/ibus.scm273
1 files changed, 140 insertions, 133 deletions
diff --git a/gnu/packages/ibus.scm b/gnu/packages/ibus.scm
index 0343f58f2c..4be80ecbe0 100644
--- a/gnu/packages/ibus.scm
+++ b/gnu/packages/ibus.scm
@@ -41,6 +41,7 @@
#:use-module (gnu packages)
#:use-module (gnu packages anthy)
#:use-module (gnu packages autotools)
+ #:use-module (gnu packages bash)
#:use-module (gnu packages base)
#:use-module (gnu packages boost)
#:use-module (gnu packages check)
@@ -71,7 +72,7 @@
(define-public ibus
(package
(name "ibus")
- (version "1.5.24")
+ (version "1.5.27")
(source (origin
(method url-fetch)
(uri (string-append "https://github.com/ibus/ibus/"
@@ -79,143 +80,149 @@
version "/ibus-" version ".tar.gz"))
(sha256
(base32
- "07s2ly75xv50bqg37mn37i9akqvcfd45k2mbplxrsqk3a2b3mwxb"))))
+ "1pwppcy0xpidxa7db9lykjjjj1rcjrqf5l88f77hgxlnvdddmyvf"))))
(build-system glib-or-gtk-build-system)
(outputs '("out" "doc"))
(arguments
- `(#: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")
- "/share/unicode/emoji")
- (string-append
- "--with-emoji-annotation-dir="
- (assoc-ref %build-inputs "unicode-cldr-common")
- "/share/unicode/cldr/common/annotations")
- (string-append "--with-ucd-dir="
- (assoc-ref %build-inputs "ucd")
- "/share/ucd")
- "--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")
- "/lib/python"
- ,(version-major+minor (package-version python))
- "/site-packages")))
- (substitute* "configure"
- (("(py2?overridesdir)=.*" _ var)
- (string-append var "=" root "/gi/overrides/"))
- (("(pkgpython2dir=).*" _ var)
- (string-append var root "/ibus"))))))
- (add-before 'configure 'disable-dconf-update
- (lambda _
- (substitute* "data/dconf/Makefile.in"
- (("dconf update") "echo dconf update"))))
- (add-after 'unpack 'delete-generated-files
- (lambda _
- (for-each (lambda (file)
- (let ((c (string-append (string-drop-right file 4) "c")))
- (when (file-exists? c)
- (format #t "deleting ~a\n" c)
- (delete-file c))))
- (find-files "." "\\.vala"))))
- (add-after 'unpack 'fix-paths
- (lambda* (#:key inputs #:allow-other-keys)
- (substitute* "src/ibusenginesimple.c"
- (("/usr/share/X11/locale")
- (search-input-directory inputs
- "share/X11/locale")))
- (substitute* "ui/gtk3/xkblayout.vala"
- (("\"(setxkbmap|xmodmap)\"" _ prog)
- (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")
- `("GUIX_PYTHONPATH" ":" prefix (,(getenv "GUIX_PYTHONPATH")))
- `("GI_TYPELIB_PATH" ":" prefix
- (,(getenv "GI_TYPELIB_PATH")
- ,(string-append out "/lib/girepository-1.0"))))))))))
+ (list
+ #:configure-flags #~(list "--enable-python-library"
+ "--enable-gtk-doc"
+ "--enable-memconf"
+ (string-append
+ "--with-unicode-emoji-dir="
+ (search-input-directory %build-inputs
+ "share/unicode/emoji"))
+ (string-append
+ "--with-emoji-annotation-dir="
+ (search-input-directory
+ %build-inputs
+ "share/unicode/cldr/common/annotations"))
+ (string-append
+ "--with-ucd-dir="
+ (search-input-directory %build-inputs
+ "share/ucd"))
+ "--enable-wayland"
+ "--disable-systemd-services")
+ #:make-flags
+ ;; The GUI tests not only require a DISPLAY, but also a window manager
+ ;; since IBus needs to receive focus-in/out events to test IBus with GTK
+ ;; applications (see: https://github.com/ibus/ibus/issues/2307).
+ #~(list (string-append "DISABLE_GUI_TESTS=ibus-compose "
+ "ibus-inputcontext-create "
+ "xkb-latin-layouts "))
+ #: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 #$(this-package-native-input "docbook-xml")
+ "/xml/dtd/docbook/"))))))
+ (add-after 'unpack 'patch-python-target-directories
+ (lambda _
+ (let ((root (string-append #$output
+ "/lib/python"
+ #$(version-major+minor
+ (package-version python))
+ "/site-packages")))
+ (substitute* "configure"
+ (("(py2?overridesdir)=.*" _ var)
+ (string-append var "=" root "/gi/overrides/"))
+ (("(pkgpython2dir=).*" _ var)
+ (string-append var root "/ibus"))))))
+ (add-before 'configure 'disable-dconf-update
+ (lambda _
+ (substitute* "data/dconf/Makefile.in"
+ (("dconf update") "echo dconf update"))))
+ (add-after 'unpack 'delete-generated-files
+ (lambda _
+ (for-each (lambda (file)
+ (let ((c (string-append (string-drop-right file 4) "c")))
+ (when (file-exists? c)
+ (format #t "deleting ~a\n" c)
+ (delete-file c))))
+ (find-files "." "\\.vala"))))
+ (add-after 'unpack 'fix-paths
+ (lambda* (#:key inputs #:allow-other-keys)
+ (substitute* "src/ibusenginesimple.c"
+ (("/usr/share/X11/locale")
+ (search-input-directory inputs "share/X11/locale")))
+ (substitute* "ui/gtk3/xkblayout.vala"
+ (("\"(setxkbmap|xmodmap)\"" _ prog)
+ (format #f "~s" (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 _
+ (mkdir-p (string-append #$output:doc "/share"))
+ (rename-file
+ (string-append #$output "/share/gtk-doc")
+ (string-append #$output: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.
+ (wrap-program (search-input-file outputs "bin/ibus-setup")
+ `("GUIX_PYTHONPATH" ":" prefix (,(getenv "GUIX_PYTHONPATH")))
+ `("GI_TYPELIB_PATH" ":" prefix
+ (,(getenv "GI_TYPELIB_PATH")
+ ,(string-append #$output "/lib/girepository-1.0")))))))))
(inputs
- `(("dbus" ,dbus)
- ("dconf" ,dconf)
- ("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)))
+ (list bash-minimal
+ dbus
+ dconf
+ glib
+ gtk+-2
+ gtk+
+ iso-codes
+ json-glib
+ libnotify
+ libx11
+ libxkbcommon
+ libxtst
+ python-pygobject
+ python
+ python-dbus
+ setxkbmap
+ ucd
+ unicode-cldr-common
+ unicode-emoji
+ wayland
+ xmodmap))
(native-inputs
- `(("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
- ("gtk+:bin" ,gtk+ "bin")
- ("gtk-doc" ,gtk-doc)
- ("perl" ,perl)
- ("pkg-config" ,pkg-config)
- ("python-wrapper" ,python-wrapper)
- ("vala" ,vala)
- ("which" ,which)
- ("xorg-server" ,xorg-server-for-tests)))
+ (list docbook-xml-4.1.2
+ `(,glib "bin") ;for glib-genmarshal
+ gettext-minimal
+ gnome-common
+ gobject-introspection ;for g-ir-compiler
+ `(,gtk+ "bin")
+ gtk-doc
+ perl
+ pkg-config
+ python-wrapper
+ vala
+ which
+ xorg-server-for-tests))
(native-search-paths
(list (search-path-specification
(variable "IBUS_COMPONENT_PATH")