summary refs log tree commit diff
path: root/gnu/packages/ibus.scm
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/packages/ibus.scm')
-rw-r--r--gnu/packages/ibus.scm63
1 files changed, 43 insertions, 20 deletions
diff --git a/gnu/packages/ibus.scm b/gnu/packages/ibus.scm
index db7d084fc7..814984f16f 100644
--- a/gnu/packages/ibus.scm
+++ b/gnu/packages/ibus.scm
@@ -1,5 +1,5 @@
 ;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2015 Ricardo Wurmus <rekado@elephly.net>
+;;; Copyright © 2015, 2016 Ricardo Wurmus <rekado@elephly.net>
 ;;; Copyright © 2015 Andreas Enge <andreas@enge.fr>
 ;;; Copyright © 2016 Chris Marusich <cmmarusich@gmail.com>
 ;;;
@@ -36,7 +36,8 @@
   #:use-module (gnu packages gtk)
   #:use-module (gnu packages iso-codes)
   #:use-module (gnu packages pkg-config)
-  #:use-module (gnu packages python))
+  #:use-module (gnu packages python)
+  #:use-module (gnu packages xorg))
 
 (define-public ibus
   (package
@@ -62,24 +63,42 @@
                            (assoc-ref %outputs "out")
                            "/lib/python2.7/site-packages/gi/overrides/"))
       #:phases
-      (alist-cons-before
-       'configure 'disable-dconf-update
-       (lambda _
-         (substitute* "data/dconf/Makefile.in"
-           (("dconf update") "echo dconf update"))
-         #t)
-       (alist-cons-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")))
-              `("GI_TYPELIB_PATH" ":" prefix
-                (,(getenv "GI_TYPELIB_PATH")
-                 ,(string-append out "/lib/girepository-1.0"))))))
-        %standard-phases))))
+      (modify-phases %standard-phases
+        (add-before 'configure 'disable-dconf-update
+          (lambda _
+            (substitute* "data/dconf/Makefile.in"
+              (("dconf update") "echo dconf update"))
+            #t))
+        (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"))
+            #t))
+        (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")))
+            (substitute* "ui/gtk3/xkblayout.vala"
+              (("\"(setxkbmap|xmodmap)\"" _ prog)
+               (string-append "\"" (assoc-ref inputs prog) "\"")))
+            #t))
+        (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")))
+                `("GI_TYPELIB_PATH" ":" prefix
+                  (,(getenv "GI_TYPELIB_PATH")
+                   ,(string-append out "/lib/girepository-1.0")))))
+            #t)))))
    (inputs
     `(("dbus" ,dbus)
       ("dconf" ,dconf)
@@ -88,12 +107,16 @@
       ("gtk+" ,gtk+)
       ("intltool" ,intltool)
       ("libnotify" ,libnotify)
+      ("libx11" ,libx11)
+      ("setxkbmap" ,setxkbmap)
+      ("xmodmap" ,xmodmap)
       ("iso-codes" ,iso-codes)
       ("pygobject2" ,python2-pygobject)
       ("python2" ,python-2)))
    (native-inputs
     `(("glib" ,glib "bin") ; for glib-genmarshal
       ("gobject-introspection" ,gobject-introspection) ; for g-ir-compiler
+      ("vala" ,vala)
       ("pkg-config" ,pkg-config)))
    (native-search-paths
     (list (search-path-specification