* WIP: ibus-pinyin
@ 2015-09-05 21:15 Ricardo Wurmus
0 siblings, 0 replies; only message in thread
From: Ricardo Wurmus @ 2015-09-05 21:15 UTC (permalink / raw)
To: guix-devel
[-- Attachment #1: Type: text/plain, Size: 1253 bytes --]
Hi Guix,
attached are three patches that show the current status of my work to
bring ibus-pinyin to Guix. Unfortunately, it’s not working for me,
i.e. I can start ‘ibus-setup’ and add Chinese Pinyin or Chinese Bopomofo
to the enabled input methods, but no matter what I do: my selection of
input methods (cycling between methods is done with Super+Space by
default) has no effect on what I type.
To test this yourself I recommend deleting the following dirs:
~/.config/ibus
~/.cache/ibus
(Just in case.) You probably also need to set IBUS_COMPONENT_PATH as
suggested by the ‘ibus’ package.
I also needed to run the dconf service, which can be started by running
‘$dconf/libexec/dconf-service’. Without this service the ‘ibus-setup’
changes have no effect.
I played around with generating a GTK_IM_MODULES_FILE using
‘gtk-query-immodules-3.0’, but since I don’t know how to debug
ibus-pinyin, I didn’t continue to investigate there.
‘$out/libexec/ibus-setup-pinyin’ cannot be executed at all.
If someone could give me a hint how to debug this, I’d be very
grateful. It all seems like magic to me, as I cannot see at what point
the translation from pinyin input to output characters fails.
~~ Ricardo
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: 0001-gnu-Add-PyZy.patch --]
[-- Type: text/x-patch, Size: 3518 bytes --]
From c710cd3d64e81b1e2cb80d0bc0cf69f21243ecb7 Mon Sep 17 00:00:00 2001
From: Ricardo Wurmus <rekado@elephly.net>
Date: Sat, 5 Sep 2015 22:39:09 +0200
Subject: [PATCH 1/3] gnu: Add PyZy.
* gnu/packages/ibus.scm (pyzy): New variable.
---
gnu/packages/ibus.scm | 59 +++++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 59 insertions(+)
diff --git a/gnu/packages/ibus.scm b/gnu/packages/ibus.scm
index 1abe70a..9c64530 100644
--- a/gnu/packages/ibus.scm
+++ b/gnu/packages/ibus.scm
@@ -21,13 +21,18 @@
#:use-module (guix licenses)
#:use-module (guix packages)
#:use-module (guix download)
+ #:use-module (guix git-download)
#:use-module (guix build-system gnu)
#:use-module (guix build-system glib-or-gtk)
#:use-module (gnu packages)
+ #:use-module (gnu packages autotools)
+ #:use-module (gnu packages base)
+ #:use-module (gnu packages databases)
#:use-module (gnu packages glib)
#:use-module (gnu packages gnome)
#:use-module (gnu packages gtk)
#:use-module (gnu packages iso-codes)
+ #:use-module (gnu packages linux)
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages python))
@@ -90,3 +95,57 @@ input method user interface. It comes with multilingual input support. It
may also simplify input method development.")
(home-page "http://ibus.googlecode.com/")
(license lgpl2.1+)))
+
+(define-public pyzy
+ ;; There is no release tarball, so we take the last commit.
+ (let ((commit "6d9c3cdff"))
+ (package
+ (name "pyzy")
+ (version "0.1.0")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/pyzy/pyzy.git")
+ (commit commit)))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32
+ "0i7lnh5gp25wi9rk5f2pjdlhn7vzs2s7pnfbfgk9q8cmzqkgrh6g"))
+ (patches (list (search-patch "pyzy-no-download.patch")))))
+ (build-system gnu-build-system)
+ (arguments
+ '(#:configure-flags '("--enable-db-open-phrase"
+ "--enable-db-android")
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'unpack-database
+ (lambda* (#:key inputs #:allow-other-keys)
+ (zero? (system* "tar" "-C" "data" "-xvf"
+ (assoc-ref inputs "pyzy-database")))))
+ (add-before 'configure 'autoreconf
+ (lambda _ (zero? (system* "autoreconf" "-vif")))))))
+ (inputs
+ `(("glib" ,glib)
+ ("libuuid" ,util-linux)
+ ("sqlite" ,sqlite)
+ ("pyzy-database"
+ ,(origin
+ (method url-fetch)
+ (uri (string-append "https://pyzy.googlecode.com/files/"
+ "pyzy-database-1.0.0.tar.bz2"))
+ (sha256
+ (base32
+ "08f3jhk48m4pqjaaq69bgxz3djz6m3n593q0z70dzqa1kxxx1irj"))))))
+ (native-inputs
+ `(("python" ,python-2)
+ ("tar" ,tar)
+ ("pkg-config" ,pkg-config)
+ ("autoconf" ,autoconf)
+ ("automake" ,automake)
+ ("libtool" ,libtool)))
+ (synopsis "Conversion library for Chinese Pinyin and Bopomofo")
+ (description
+ "PyZy is a conversion library for the Chinese input methods Pinyin and
+Bopomofo.")
+ (home-page "https://github.com/pyzy/pyzy")
+ (license lgpl2.1+))))
--
2.5.0
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #3: 0002-WIP-gnu-Add-ibus-pinyin.patch --]
[-- Type: text/x-patch, Size: 3165 bytes --]
From 41ba1793f1768b4aa3c559e83ec31482cae00f3a Mon Sep 17 00:00:00 2001
From: Ricardo Wurmus <rekado@elephly.net>
Date: Sat, 5 Sep 2015 23:05:06 +0200
Subject: [PATCH 2/3] WIP: gnu: Add ibus-pinyin.
* gnu/packages/ibus.scm (ibus-pinyin): New variable.
---
gnu/packages/ibus.scm | 55 +++++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 55 insertions(+)
diff --git a/gnu/packages/ibus.scm b/gnu/packages/ibus.scm
index 9c64530..4474665 100644
--- a/gnu/packages/ibus.scm
+++ b/gnu/packages/ibus.scm
@@ -28,6 +28,7 @@
#:use-module (gnu packages autotools)
#:use-module (gnu packages base)
#:use-module (gnu packages databases)
+ #:use-module (gnu packages freedesktop)
#:use-module (gnu packages glib)
#:use-module (gnu packages gnome)
#:use-module (gnu packages gtk)
@@ -96,6 +97,60 @@ may also simplify input method development.")
(home-page "http://ibus.googlecode.com/")
(license lgpl2.1+)))
+(define-public ibus-pinyin
+ (package
+ (name "ibus-pinyin")
+ (version "1.5.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "https://ibus.googlecode.com/files/ibus-pinyin-"
+ version ".tar.gz"))
+ (sha256
+ (base32
+ "15mwpm64mjxm2j9fmjxd74xwngwb88131rj9b3b9zsjirj6lapd8"))))
+ (build-system glib-or-gtk-build-system)
+ (arguments
+ '(#:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'use-full-python-path
+ (lambda* (#:key inputs #:allow-other-keys)
+ (substitute* "setup/ibus-setup-pinyin.in"
+ (("exec python")
+ (string-append "exec " (assoc-ref inputs "python")
+ "/bin/python")))
+ #t))
+ (add-after 'wrap-program 'wrap-with-additional-paths
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ ;; Make sure 'ibus-setup-pinyin' runs with the correct PYTHONPATH
+ ;; and GI_TYPELIB_PATH.
+ ;; TODO: This doesn't work. ibus-setup-pinyin cannot be executed.
+ (let ((out (assoc-ref outputs "out")))
+ (wrap-program (string-append out "/libexec/ibus-setup-pinyin")
+ `("PYTHONPATH" ":" prefix
+ (,(getenv "PYTHONPATH")))
+ `("GI_TYPELIB_PATH" ":" prefix
+ (,(getenv "GI_TYPELIB_PATH")
+ ,(string-append (assoc-ref inputs "ibus")
+ "/lib/girepository-1.0"))))
+ #t))))))
+ (inputs
+ `(("ibus" ,ibus)
+ ("intltool" ,intltool)
+ ("sqlite" ,sqlite)
+ ("python" ,python-2)
+ ("pyxdg" ,python2-pyxdg)
+ ("pyzy" ,pyzy)))
+ (native-inputs
+ `(("gobject-introspection" ,gobject-introspection)
+ ("pkg-config" ,pkg-config)))
+ (synopsis "Chinese Pinyin and Bopomofo input methods for IBus")
+ (description
+ "This package provides the Chinese Pinyin and Bopomofo input methods for
+IBus.")
+ (home-page "https://github.com/ibus/ibus-pinyin")
+ (license gpl2+)))
+
(define-public pyzy
;; There is no release tarball, so we take the last commit.
(let ((commit "6d9c3cdff"))
--
2.5.0
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #4: 0003-gnu-ibus-Suggest-search-path.patch --]
[-- Type: text/x-patch, Size: 1005 bytes --]
From 8191bb145f2c3e97e718cb3f5de6710ccee27310 Mon Sep 17 00:00:00 2001
From: Ricardo Wurmus <rekado@elephly.net>
Date: Sat, 5 Sep 2015 23:05:58 +0200
Subject: [PATCH 3/3] gnu: ibus: Suggest search path.
* gnu/packages/ibus.scm (ibus)[native-search-paths]: Add path specification
for IBUS_COMPONENT_PATH.
---
gnu/packages/ibus.scm | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/gnu/packages/ibus.scm b/gnu/packages/ibus.scm
index 4474665..75b3713 100644
--- a/gnu/packages/ibus.scm
+++ b/gnu/packages/ibus.scm
@@ -89,6 +89,10 @@
`(("glib" ,glib "bin") ; for glib-genmarshal
("gobject-introspection" ,gobject-introspection) ; for g-ir-compiler
("pkg-config" ,pkg-config)))
+ (native-search-paths
+ (list (search-path-specification
+ (variable "IBUS_COMPONENT_PATH")
+ (files '("share/ibus/component")))))
(synopsis "Input method framework")
(description
"IBus is an input framework providing a full-featured and user-friendly
--
2.5.0
^ permalink raw reply related [flat|nested] only message in thread
only message in thread, other threads:[~2015-09-05 21:16 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-09-05 21:15 WIP: ibus-pinyin Ricardo Wurmus
Code repositories for project(s) associated with this external index
https://git.savannah.gnu.org/cgit/guix.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.