summary refs log tree commit diff
path: root/pkgs/tools/inputmethods
diff options
context:
space:
mode:
authorYucheng Zhang <yu@cheng.cat>2018-04-25 15:39:43 +0800
committerYucheng Zhang <yu@cheng.cat>2018-04-27 10:57:37 +0800
commit19f6fe6e9c616ff64ace9ae2c2a13068732a0bcb (patch)
tree5bb0ed7a5d4749c722c03a89634f3a90c86be138 /pkgs/tools/inputmethods
parent2e855dc6b0cd88767a8a5df2faff9e66e1cd7f18 (diff)
downloadnixlib-19f6fe6e9c616ff64ace9ae2c2a13068732a0bcb.tar
nixlib-19f6fe6e9c616ff64ace9ae2c2a13068732a0bcb.tar.gz
nixlib-19f6fe6e9c616ff64ace9ae2c2a13068732a0bcb.tar.bz2
nixlib-19f6fe6e9c616ff64ace9ae2c2a13068732a0bcb.tar.lz
nixlib-19f6fe6e9c616ff64ace9ae2c2a13068732a0bcb.tar.xz
nixlib-19f6fe6e9c616ff64ace9ae2c2a13068732a0bcb.tar.zst
nixlib-19f6fe6e9c616ff64ace9ae2c2a13068732a0bcb.zip
fcitx-libpinyin: fix data path
Diffstat (limited to 'pkgs/tools/inputmethods')
-rw-r--r--pkgs/tools/inputmethods/fcitx-engines/fcitx-libpinyin/datapath.patch16
-rw-r--r--pkgs/tools/inputmethods/fcitx-engines/fcitx-libpinyin/default.nix10
2 files changed, 26 insertions, 0 deletions
diff --git a/pkgs/tools/inputmethods/fcitx-engines/fcitx-libpinyin/datapath.patch b/pkgs/tools/inputmethods/fcitx-engines/fcitx-libpinyin/datapath.patch
new file mode 100644
index 000000000000..84dd5fc8f462
--- /dev/null
+++ b/pkgs/tools/inputmethods/fcitx-engines/fcitx-libpinyin/datapath.patch
@@ -0,0 +1,16 @@
+--- a/src/utils.cpp
++++ b/src/utils.cpp
+@@ -9,12 +9,7 @@ char* FcitxLibPinyinGetSysPath(LIBPINYIN_LANGUAGE_TYPE type)
+ #ifdef LIBPINYIN_TOOLS_FOUND
+     if (type == LPLT_Simplified) {
+ #endif
+-        /* portable detect here */
+-        if (getenv("FCITXDIR")) {
+-            syspath = fcitx_utils_get_fcitx_path_with_filename("datadir", "libpinyin/data");
+-        } else {
+-            syspath = strdup(LIBPINYIN_PKGDATADIR "/data");
+-        }
++        syspath = strdup(LIBPINYIN_PKGDATADIR "/data");
+ #ifdef LIBPINYIN_TOOLS_FOUND
+     }
+     else {
diff --git a/pkgs/tools/inputmethods/fcitx-engines/fcitx-libpinyin/default.nix b/pkgs/tools/inputmethods/fcitx-engines/fcitx-libpinyin/default.nix
index f2610efd2eb4..4468f1fa263a 100644
--- a/pkgs/tools/inputmethods/fcitx-engines/fcitx-libpinyin/default.nix
+++ b/pkgs/tools/inputmethods/fcitx-engines/fcitx-libpinyin/default.nix
@@ -12,6 +12,16 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [ pkgconfig  ];
   buildInputs = [ fcitx-qt5 qtbase qtwebengine.dev cmake fcitx gettext libpinyin glib pcre dbus ];
 
+  # With a typical installation via NixOS option i18n.inputMethod.fcitx.engines,
+  # the FCITXDIR environment variable is set to $out of fcitx-with-plugins,
+  # which leads to an incorrect path for pinyin data.
+  #
+  # It is impossible or difficult to fix this issue without patching. We want
+  # FCITXDIR to point into libpinyin, which is currently not symlinked within
+  # fcitx-with-plugins (only fcitx-libpinyin is symlinked). Also, FCITXDIR
+  # doesn't accept multiple directories.
+  patches = [ ./datapath.patch ];
+
   preInstall = ''
     substituteInPlace src/cmake_install.cmake \
       --replace ${fcitx} $out