Merge pull request #11254 from ericsagnes/standardize-im

Improve and standardize input methods
This commit is contained in:
Sou Bunnbu 2016-02-22 10:13:54 +08:00
commit 7fcecec58b
31 changed files with 730 additions and 380 deletions

View File

@ -44,6 +44,7 @@ nixos.path = ./nixpkgs-unstable-2015-12-06/nixos;
<listitem><para><literal>services/networking/pdnsd.nix</literal></para></listitem>
<listitem><para><literal>services/web-apps/pump.io.nix</literal></para></listitem>
<listitem><para><literal>services/security/haka.nix</literal></para></listitem>
<listitem><para><literal>i18n/inputMethod/default.nix</literal></para></listitem>
</itemizedlist>
</para>
@ -197,6 +198,32 @@ fileSystems."/example" = {
<literal>services.hardware.opengl.extraPackages{,32}</literal> instead. You can
also specify VDPAU drivers there.</para>
</listitem>
<listitem>
<para>
<literal>programs.ibus</literal> moved to <literal>i18n.inputMethod.ibus</literal>.
The option <literal>programs.ibus.plugins</literal> changed to <literal>i18n.inputMethod.ibus.engines</literal>
and the option to enable ibus changed from <literal>programs.ibus.enable</literal> to
<literal>i18n.inputMethod.enabled</literal>.
<literal>i18n.inputMethod.enabled</literal> should be set to the used input method name,
<literal>"ibus"</literal> for ibus.
An example of the new style:
<programlisting>
i18n.inputMethod.enabled = "ibus";
i18n.inputMethod.ibus.engines = with pkgs.ibus-engines; [ anthy mozc ];
</programlisting>
That is equivalent to the old version:
<programlisting>
programs.ibus.enable = true;
programs.ibus.plugins = with pkgs; [ ibus-anthy mozc ];
</programlisting>
</para>
</listitem>
</itemizedlist>
@ -215,6 +242,12 @@ fileSystems."/example" = {
NixOS.</para>
</listitem>
<listitem>
<para>Input method support was improved. New NixOS modules (fcitx, nabi and uim),
fcitx engines (chewing, hangul, m17n, mozc and table-other) and ibus engines (hangul and m17n)
have been added.</para>
</listitem>
</itemizedlist></para>
</section>

View File

@ -0,0 +1,29 @@
{ config, pkgs, lib, ... }:
with lib;
{
options = {
i18n.inputMethod = {
enabled = mkOption {
type = types.nullOr (types.enum [ "ibus" "fcitx" "nabi" "uim" ]);
default = null;
example = "fcitx";
description = ''
Select the enabled input method. Input methods is a software to input symbols that are not available on standard input devices.
Input methods are specially used to input Chinese, Japanese and Korean characters.
Currently the following input methods are available in NixOS:
<itemizedlist>
<listitem><para>ibus: The intelligent input bus, extra input engines can be added using <literal>i18n.inputMethod.ibus.engines</literal>.</para></listitem>
<listitem><para>fcitx: A customizable lightweight input method, extra input engines can be added using <literal>i18n.inputMethod.fcitx.engines</literal>.</para></listitem>
<listitem><para>nabi: A Korean input method based on XIM. Nabi doesn't support Qt 5.</para></listitem>
<listitem><para>uim: The universal input method, is a library with a XIM bridge. uim mainly support Chinese, Japanese and Korean.</para></listitem>
</itemizedlist>
'';
};
};
};
}

View File

@ -0,0 +1,42 @@
{ config, pkgs, lib, ... }:
with lib;
let
cfg = config.i18n.inputMethod.fcitx;
fcitxPackage = pkgs.fcitx-with-plugins.override { plugins = cfg.engines; };
fcitxEngine = types.package // {
name = "fcitx-engine";
check = x: (lib.types.package.check x) && (attrByPath ["meta" "isFcitxEngine"] false x);
};
in
{
options = {
i18n.inputMethod.fcitx = {
engines = mkOption {
type = with types; listOf fcitxEngine;
default = [];
example = literalExample "with pkgs.fcitx-engines; [ mozc hangul ]";
description = ''
Enabled Fcitx engines.
Available engines can be found by running `nix-env "&lt;nixpkgs&gt;" . -qaP -A fcitx-engines`.
'';
};
};
};
config = mkIf (config.i18n.inputMethod.enabled == "fcitx") {
environment.systemPackages = [ fcitxPackage ];
gtkPlugins = [ fcitxPackage ];
qtPlugins = [ fcitxPackage ];
environment.variables = {
GTK_IM_MODULE = "fcitx";
QT_IM_MODULE = "fcitx";
XMODIFIERS = "@im=fcitx";
};
services.xserver.displayManager.sessionCommands = "${fcitxPackage}/bin/fcitx";
};
}

View File

@ -0,0 +1,43 @@
{ config, pkgs, lib, ... }:
with lib;
let
cfg = config.i18n.inputMethod.ibus;
ibusPackage = pkgs.ibus-with-plugins.override { plugins = cfg.engines; };
ibusEngine = types.package // {
name = "ibus-engine";
check = x: (lib.types.package.check x) && (attrByPath ["meta" "isIbusEngine"] false x);
};
in
{
options = {
i18n.inputMethod.ibus = {
engines = mkOption {
type = with types; listOf ibusEngine;
default = [];
example = literalExample "with pkgs.ibus-engines; [ mozc hangul ]";
description = ''
Enabled IBus engines.
Available engines can be found by running `nix-env "&lt;nixpkgs&gt;" . -qaP -A ibus-engines`.
'';
};
};
};
config = mkIf (config.i18n.inputMethod.enabled == "ibus") {
# Without dconf enabled it is impossible to use IBus
environment.systemPackages = [ ibusPackage pkgs.gnome3.dconf ];
gtkPlugins = [ pkgs.ibus ];
qtPlugins = [ pkgs.ibus-qt ];
environment.variables = {
GTK_IM_MODULE = "ibus";
QT_IM_MODULE = "ibus";
XMODIFIERS = "@im=ibus";
};
services.xserver.displayManager.sessionCommands = "${ibusPackage}/bin/ibus-daemon --daemonize --xim --cache=none";
};
}

View File

@ -0,0 +1,17 @@
{ config, pkgs, lib, ... }:
with lib;
{
config = mkIf (config.i18n.inputMethod.enabled == "nabi") {
environment.systemPackages = [ pkgs.nabi ];
qtPlugins = [ pkgs.nabi ];
environment.variables = {
GTK_IM_MODULE = "nabi";
QT_IM_MODULE = "nabi";
XMODIFIERS = "@im=nabi";
};
services.xserver.displayManager.sessionCommands = "${pkgs.nabi}/bin/nabi &";
};
}

View File

@ -0,0 +1,39 @@
{ config, pkgs, lib, ... }:
with lib;
let
cfg = config.i18n.inputMethod.uim;
in
{
options = {
i18n.inputMethod.uim = {
toolbar = mkOption {
type = types.enum [ "gtk" "gtk3" "gtk-systray" "gtk3-systray" "qt4" ];
default = "gtk";
example = "gtk-systray";
description = ''
selected UIM toolbar.
'';
};
};
};
config = mkIf (config.i18n.inputMethod.enabled == "uim") {
environment.systemPackages = [ pkgs.uim ];
gtkPlugins = [ pkgs.uim ];
qtPlugins = [ pkgs.uim ];
environment.variables = {
GTK_IM_MODULE = "uim";
QT_IM_MODULE = "uim";
XMODIFIERS = "@im=uim";
};
services.xserver.displayManager.sessionCommands = ''
${pkgs.uim}/bin/uim-xim &
${pkgs.uim}/bin/uim-toolbar-${cfg.toolbar} &
'';
};
}

View File

@ -43,6 +43,11 @@
./hardware/video/nvidia.nix
./hardware/video/ati.nix
./hardware/video/webcam/facetimehd.nix
./i18n/inputMethod/default.nix
./i18n/inputMethod/fcitx.nix
./i18n/inputMethod/ibus.nix
./i18n/inputMethod/nabi.nix
./i18n/inputMethod/uim.nix
./installer/tools/auto-upgrade.nix
./installer/tools/nixos-checkout.nix
./installer/tools/tools.nix
@ -66,7 +71,6 @@
./programs/environment.nix
./programs/freetds.nix
./programs/fish.nix
./programs/ibus.nix
./programs/kbdlight.nix
./programs/light.nix
./programs/man.nix

View File

@ -1,51 +0,0 @@
{ config, pkgs, lib, ... }:
with lib;
let
cfg = config.programs.ibus;
in
{
options = {
programs.ibus = {
enable = mkOption {
type = types.bool;
default = false;
example = true;
description = "Enable IBus input method";
};
plugins = mkOption {
type = lib.types.listOf lib.types.path;
default = [];
description = ''
IBus plugin packages
'';
};
};
};
config = mkIf cfg.enable {
environment.systemPackages = [ pkgs.ibus pkgs.gnome3.dconf ];
gtkPlugins = [ pkgs.ibus ];
qtPlugins = [ pkgs.ibus-qt ];
environment.variables =
let
env = pkgs.buildEnv {
name = "ibus-env";
paths = [ pkgs.ibus ] ++ cfg.plugins;
};
in {
GTK_IM_MODULE = "ibus";
QT_IM_MODULE = "ibus";
XMODIFIERS = "@im=ibus";
IBUS_COMPONENT_PATH = "${env}/share/ibus/component";
};
services.xserver.displayManager.sessionCommands = "${pkgs.ibus}/bin/ibus-daemon --daemonize --xim --cache=none";
};
}

View File

@ -59,6 +59,9 @@ with lib;
# Tarsnap
(mkRenamedOptionModule [ "services" "tarsnap" "config" ] [ "services" "tarsnap" "archives" ])
# ibus
(mkRenamedOptionModule [ "programs" "ibus" "plugins" ] [ "i18n" "inputMethod" "ibus" "engines" ])
# proxy
(mkRenamedOptionModule [ "nix" "proxy" ] [ "networking" "proxy" "default" ])

View File

@ -0,0 +1,27 @@
{ stdenv, fetchurl, cmake, fcitx, anthy, gettext, pkgconfig }:
stdenv.mkDerivation rec {
name = "fcitx-anthy-${version}";
version = "0.2.2";
src = fetchurl {
url = "http://download.fcitx-im.org/fcitx-anthy/${name}.tar.xz";
sha256 = "0ayrzfx95670k86y19bzl6i6w98haaln3x8dxpb39a5dwgz59pf8";
};
buildInputs = [ cmake fcitx anthy gettext pkgconfig ];
preInstall = ''
substituteInPlace src/cmake_install.cmake \
--replace ${fcitx} $out
'';
meta = with stdenv.lib; {
isFcitxEngine = true;
description = "Fcitx Wrapper for anthy";
license = licenses.gpl2Plus;
platforms = platforms.linux;
maintainers = with maintainers; [ iyzsong ericsagnes ];
};
}

View File

@ -0,0 +1,31 @@
{ stdenv, fetchurl, cmake, fcitx, gettext, libchewing, pkgconfig }:
stdenv.mkDerivation rec {
name = "fcitx-chewing-${version}";
version = "0.2.2";
src = fetchurl {
url = "http://download.fcitx-im.org/fcitx-chewing/${name}.tar.xz";
sha256 = "0l548xdx2fvjya1ixp37pn382yak0m4kwfh9lgh7l3y2sblqw9zs";
};
buildInputs = [ cmake fcitx gettext libchewing pkgconfig ];
preInstall = ''
substituteInPlace src/cmake_install.cmake \
--replace ${fcitx} $out
substituteInPlace data/cmake_install.cmake \
--replace ${fcitx} $out
'';
meta = with stdenv.lib; {
isFcitxEngine = true;
homepage = "https://github.com/fcitx/fcitx-chewing";
downloadPage = "http://download.fcitx-im.org/fcitx-chewing/";
description = "Fcitx engine for chewing";
license = licenses.gpl2;
platforms = platforms.linux;
maintainers = with maintainers; [ ericsagnes ];
};
}

View File

@ -0,0 +1,30 @@
{ stdenv, fetchurl, cmake, fcitx, libhangul, gettext, pkgconfig }:
stdenv.mkDerivation rec {
name = "fcitx-hangul-${version}";
version = "0.3.0";
src = fetchurl {
url = "http://download.fcitx-im.org/fcitx-hangul/${name}.tar.xz";
sha256 = "1jq78nczliw6pnhfac8hspffybrry6syk17y0wwcq05j3r3nd2lp";
};
buildInputs = [ cmake fcitx libhangul gettext pkgconfig ];
preInstall = ''
substituteInPlace src/cmake_install.cmake \
--replace ${fcitx} $out
substituteInPlace data/cmake_install.cmake \
--replace ${fcitx} $out
'';
meta = with stdenv.lib; {
isFcitxEngine = true;
homepage = "https://github.com/fcitx/fcitx-hangul";
downloadPage = "http://download.fcitx-im.org/fcitx-hangul/";
description = "Fcitx Wrapper for hangul";
license = licenses.gpl2;
platforms = platforms.linux;
maintainers = with maintainers; [ ericsagnes ];
};
}

View File

@ -0,0 +1,29 @@
{ stdenv, fetchurl, cmake, fcitx, gettext, m17n_lib, m17n_db, pkgconfig }:
stdenv.mkDerivation rec {
name = "fcitx-m17n-${version}";
version = "0.2.3";
src = fetchurl {
url = "http://download.fcitx-im.org/fcitx-m17n/${name}.tar.xz";
sha256 = "0ffyhsg7bc6525k94kfhnja1h6ajlfprq72d286dp54cksnakyc4";
};
buildInputs = [ cmake fcitx gettext m17n_lib m17n_db pkgconfig ];
preInstall = ''
substituteInPlace im/cmake_install.cmake \
--replace ${fcitx} $out
'';
meta = with stdenv.lib; {
isFcitxEngine = true;
homepage = "https://github.com/fcitx/fcitx-m17n";
downloadPage = "http://download.fcitx-im.org/fcitx-table-other/";
description = "Fcitx wrapper for m17n";
license = licenses.gpl3Plus;
platforms = platforms.linux;
maintainers = with maintainers; [ ericsagnes ];
};
}

View File

@ -0,0 +1,117 @@
{ clangStdenv, fetchFromGitHub, fetchurl, fetchpatch, fetchsvn, gyp, which, ninja,
python, pkgconfig, protobuf, gtk, zinnia, qt4, libxcb, tegaki-zinnia-japanese,
fcitx, gettext }:
let
japanese_usage_dictionary = fetchsvn {
url = "http://japanese-usage-dictionary.googlecode.com/svn/trunk";
rev = "10";
sha256 = "0pyrpz9c8nxccwpgyr36w314mi8h132cis8ijvlqmmhqxwsi30hm";
};
icons = fetchurl {
url = "http://download.fcitx-im.org/fcitx-mozc/fcitx-mozc-icon.tar.gz";
sha256 = "10bdjn481jsh32vll7r756l392anz44h6207vjqwby3rplk31np1";
};
in clangStdenv.mkDerivation rec {
name = "fcitx-mozc-${version}";
version = "2.17.2313.102";
src = fetchFromGitHub {
owner = "google";
repo = "mozc";
rev = "3306d3314499a54a4064b8b80bbc1bce3f6cfac4";
sha256 = "0l7mjlnbm6i1ipni8pg9ym5bjg3rzkaxi9xwmsz2lddv348sqii2";
};
nativeBuildInputs = [ gyp which ninja python pkgconfig ];
buildInputs = [ protobuf gtk zinnia qt4 libxcb fcitx gettext ];
postUnpack = ''
rmdir $sourceRoot/src/third_party/japanese_usage_dictionary/
ln -s ${japanese_usage_dictionary} $sourceRoot/src/third_party/japanese_usage_dictionary
tar -xzf ${icons} -C $sourceRoot
'';
patch_version = "2.17.2313.102.1";
patches = [
(fetchpatch rec {
name = "fcitx-mozc-${patch_version}.patch";
url = "https://download.fcitx-im.org/fcitx-mozc/${name}";
sha256 = "172c34jkppibvwr9qf9xwgh2hdrmmhyx7nsdj49krxbfdlsy3yy0";
})
];
postPatch = ''
substituteInPlace src/unix/fcitx/mozc.conf \
--replace "/usr/share/fcitx/mozc/icon/mozc.png" "mozc"
'';
configurePhase = ''
export GYP_DEFINES="document_dir=$out/share/doc/mozc use_libzinnia=1 use_libprotobuf=1"
python src/build_mozc.py gyp --gypdir=${gyp}/bin --server_dir=$out/lib/mozc \
python src/unix/fcitx/fcitx.gyp gyp --gypdir=${gyp}/bin
'';
preBuildPhase = ''
head -n 29 src/server/mozc_server.cc > LICENSE
'';
buildPhase = ''
python src/build_mozc.py build -c Release \
unix/fcitx/fcitx.gyp:fcitx-mozc \
server/server.gyp:mozc_server \
gui/gui.gyp:mozc_tool
'';
checkPhase = ''
python src/build_mozc.py runtests -c Release
'';
installPhase = ''
install -d $out/share/licenses/fcitx-mozc/
install -m 644 LICENSE src/data/installer/*.html $out/share/licenses/fcitx-mozc/
install -d $out/share/doc/mozc
install -m 644 src/data/installer/*.html $out/share/doc/mozc/
install -D -m 755 src/out_linux/Release/mozc_server $out/lib/mozc/mozc_server
install -m 755 src/out_linux/Release/mozc_tool $out/lib/mozc/mozc_tool
install -D -m 755 src/out_linux/Release/fcitx-mozc.so $out/lib/fcitx/fcitx-mozc.so
install -D -m 644 src/unix/fcitx/fcitx-mozc.conf $out/share/fcitx/addon/fcitx-mozc.conf
install -D -m 644 src/unix/fcitx/mozc.conf $out/share/fcitx/inputmethod/mozc.conf
install -d $out/share/doc/mozc
for mofile in src/out_linux/Release/gen/unix/fcitx/po/*.mo
do
filename=`basename $mofile`
lang=$filename.mo
install -D -m 644 "$mofile" "$out/share/locale/$lang/LC_MESSAGES/fcitx-mozc.mo"
done
install -d $out/share/fcitx/imicon
install -m 644 fcitx-mozc-icons/mozc.png $out/share/fcitx/imicon/mozc.png
install -d $out/share/fcitx/mozc/icon
install -m 644 fcitx-mozc-icons/mozc.png $out/share/fcitx/mozc/icon/mozc.png
install -m 644 fcitx-mozc-icons/mozc-alpha_full.png $out/share/fcitx/mozc/icon/mozc-alpha_full.png
install -m 644 fcitx-mozc-icons/mozc-alpha_half.png $out/share/fcitx/mozc/icon/mozc-alpha_half.png
install -m 644 fcitx-mozc-icons/mozc-direct.png $out/share/fcitx/mozc/icon/mozc-direct.png
install -m 644 fcitx-mozc-icons/mozc-hiragana.png $out/share/fcitx/mozc/icon/mozc-hiragana.png
install -m 644 fcitx-mozc-icons/mozc-katakana_full.png $out/share/fcitx/mozc/icon/mozc-katakana_full.png
install -m 644 fcitx-mozc-icons/mozc-katakana_half.png $out/share/fcitx/mozc/icon/mozc-katakana_half.png
install -m 644 fcitx-mozc-icons/mozc-dictionary.png $out/share/fcitx/mozc/icon/mozc-dictionary.png
install -m 644 fcitx-mozc-icons/mozc-properties.png $out/share/fcitx/mozc/icon/mozc-properties.png
install -m 644 fcitx-mozc-icons/mozc-tool.png $out/share/fcitx/mozc/icon/mozc-tool.png
'';
meta = with clangStdenv.lib; {
isFcitxEngine = true;
description = "Fcitx engine for Google japanese input method";
homepage = http://code.google.com/p/mozc/;
downloadPage = "http://download.fcitx-im.org/fcitx-mozc/";
license = licenses.free;
platforms = platforms.linux;
maintainers = [ maintainers.ericsagnes ];
};
}

View File

@ -0,0 +1,29 @@
{ stdenv, fetchurl, cmake, fcitx, gettext }:
stdenv.mkDerivation rec {
name = "fcitx-table-other-${version}";
version = "0.2.3";
src = fetchurl {
url = "http://download.fcitx-im.org/fcitx-table-other/${name}.tar.xz";
sha256 = "12fqbsjrpx5pndx2jf7fksrlp01a4yxz62h2vpxrbkpk73ljly4v";
};
buildInputs = [ cmake fcitx gettext ];
preInstall = ''
substituteInPlace tables/cmake_install.cmake \
--replace ${fcitx} $out
'';
meta = with stdenv.lib; {
isFcitxEngine = true;
homepage = "https://github.com/fcitx/fcitx-table-other";
downloadPage = "http://download.fcitx-im.org/fcitx-table-other/";
description = "Provides some other tables for Fcitx";
license = licenses.gpl3Plus;
platforms = platforms.linux;
maintainers = with maintainers; [ ericsagnes ];
};
}

View File

@ -1,24 +0,0 @@
{ stdenv, fetchurl, cmake, fcitx, anthy }:
stdenv.mkDerivation rec {
name = "fcitx-anthy-0.2.1";
meta = with stdenv.lib; {
description = "Fcitx Wrapper for anthy";
license = licenses.gpl2Plus;
platforms = platforms.linux;
maintainers = with maintainers; [ iyzsong ];
};
src = fetchurl {
url = "http://download.fcitx-im.org/fcitx-anthy/${name}.tar.xz";
sha256 = "13fpfhhxkzbq53h10i3hifa37nngm47jq361i70z22bgcrs8887x";
};
buildInputs = [ cmake fcitx anthy ];
preInstall = ''
substituteInPlace src/cmake_install.cmake \
--replace ${fcitx} $out
'';
}

View File

@ -2,11 +2,11 @@
stdenv.mkDerivation rec {
name = "fcitx-qt5-${version}";
version = "1.0.4";
version = "1.0.5";
src = fetchurl {
url = "http://download.fcitx-im.org/fcitx-qt5/${name}.tar.xz";
sha256 = "070dlmwkim7sg0xwxfcbb46li1jk8yd3rmj0j5fkmgyr12044aml";
sha256 = "1pj1b04n8r4kl7jh1qdv0xshgzb3zrmizfa3g5h3yk589h191vwc";
};
buildInputs = [ cmake fcitx extra-cmake-modules qtbase ];

View File

@ -1,4 +1,4 @@
{ stdenv, buildEnv, fcitx, makeWrapper, plugins }:
{ stdenv, buildEnv, fcitx, fcitx-configtool, makeWrapper, plugins, kde5 }:
# This is based on the pidgin-with-plugins package.
# Users should be able to configure what plugins are used
@ -16,7 +16,7 @@ let
drv = buildEnv {
name = "fcitx-with-plugins-" + (builtins.parseDrvName fcitx.name).version;
paths = [ fcitx ] ++ plugins;
paths = [ fcitx fcitx-configtool kde5.fcitx-qt5 ] ++ plugins;
postBuild = ''
# TODO: This could be avoided if buildEnv could be forced to create all directories

View File

@ -1,32 +0,0 @@
{ stdenv, fetchurl, makeWrapper, ibus, anthy, intltool, pkgconfig, glib, gobjectIntrospection, python, pythonPackages }:
stdenv.mkDerivation rec {
name = "ibus-anthy-${version}";
version = "1.5.7";
meta = with stdenv.lib; {
description = "IBus interface to the anthy input method";
homepage = http://wiki.github.com/fujiwarat/ibus-anthy;
license = licenses.gpl2Plus;
platforms = platforms.linux;
maintainers = with maintainers; [ gebner ];
};
configureFlags = "--with-anthy-zipcode=${anthy}/share/anthy/zipcode.t";
buildInputs = [ makeWrapper ibus anthy intltool pkgconfig glib gobjectIntrospection python pythonPackages.pygobject3 ];
postFixup = ''
substituteInPlace $out/share/ibus/component/anthy.xml --replace \$\{exec_prefix\} $out
for file in "$out"/libexec/*; do
wrapProgram "$file" \
--prefix PYTHONPATH : $PYTHONPATH \
--prefix GI_TYPELIB_PATH : $GI_TYPELIB_PATH:$out/lib/girepository-1.0
done
'';
src = fetchurl {
url = "https://github.com/ibus/ibus-anthy/releases/download/${version}/${name}.tar.gz";
sha256 = "00sjrfhghrgkqm72mf39f8sz6wr4fwvvs9mn2alaldhgr5v0c861";
};
}

View File

@ -0,0 +1,39 @@
{ stdenv, fetchFromGitHub, makeWrapper, ibus, anthy, intltool, pkgconfig, glib, gobjectIntrospection,
python, pythonPackages, gtk3, libtool, automake, autoconf }:
stdenv.mkDerivation rec {
name = "ibus-anthy-${version}";
version = "1.5.8";
meta = with stdenv.lib; {
isIbusEngine = true;
description = "IBus interface to the anthy input method";
homepage = http://wiki.github.com/fujiwarat/ibus-anthy;
license = licenses.gpl2Plus;
platforms = platforms.linux;
maintainers = with maintainers; [ gebner ericsagnes ];
};
preConfigure = "./autogen.sh --prefix=$out";
configureFlags = "--with-anthy-zipcode=${anthy}/share/anthy/zipcode.t";
buildInputs = [ makeWrapper ibus anthy intltool pkgconfig glib gobjectIntrospection
python pythonPackages.pygobject3 gtk3 libtool automake autoconf ];
postFixup = ''
substituteInPlace $out/share/ibus/component/anthy.xml --replace \$\{exec_prefix\} $out
for file in "$out"/libexec/*; do
wrapProgram "$file" \
--prefix PYTHONPATH : $PYTHONPATH \
--prefix GI_TYPELIB_PATH : $GI_TYPELIB_PATH:$out/lib/girepository-1.0
done
'';
src = fetchFromGitHub {
owner = "ibus";
repo = "ibus-anthy";
rev = version;
sha256 = "1laxwpnhgihv4dz5cgcz6d0a0880r93n7039ciz1m53hdzapwi4a";
};
}

View File

@ -0,0 +1,39 @@
{ stdenv, gnome, fetchFromGitHub, ibus, libhangul, autoconf, automake, gettext, libtool, librsvg,
intltool, pkgconfig, pythonPackages, makeWrapper, gtk3, python }:
stdenv.mkDerivation rec {
name = "ibus-hangul-${version}";
version = "1.5.0";
src = fetchFromGitHub {
owner = "choehwanjin";
repo = "ibus-hangul";
rev = version;
sha256 = "12l2spr32biqdbz01bzkamgq5gskbi6cd7ai343wqyy1ibjlkmp8";
};
buildInputs = [ ibus libhangul autoconf gettext automake libtool
intltool pkgconfig python pythonPackages.pygobject3 gtk3 makeWrapper ];
preConfigure = ''
autoreconf --verbose --force --install
intltoolize --automake --force --copy
'';
postInstall = ''
wrapProgram $out/bin/ibus-setup-hangul \
--prefix PYTHONPATH : $PYTHONPATH \
--prefix GI_TYPELIB_PATH : "$GI_TYPELIB_PATH" \
--prefix GDK_PIXBUF_MODULE_FILE : ${librsvg}/lib/gdk-pixbuf-2.0/2.10.0/loaders.cache \
--prefix LD_LIBRARY_PATH : ${libhangul}/lib
'';
meta = with stdenv.lib; {
isIbusEngine = true;
description = "Ibus Hangul engine.";
homepage = https://github.com/choehwanjin/ibus-hangul;
license = licenses.gpl2;
platforms = platforms.linux;
maintainers = with maintainers; [ ericsagnes ];
};
}

View File

@ -0,0 +1,32 @@
{ stdenv, fetchFromGitHub, ibus, m17n_lib, m17n_db, automake, autoconf,
gettext, libtool, pkgconfig, python, pythonPackages }:
stdenv.mkDerivation rec {
name = "ibus-m17n-${version}";
version = "1.3.4";
src = fetchFromGitHub {
owner = "ibus";
repo = "ibus-m17n";
rev = version;
sha256 = "1n0bvgc4jyksgvzrw5zs2pxcpxcn3gcc0j2kasbznm34fpv3frsr";
};
buildInputs = [
ibus m17n_lib m17n_db automake autoconf gettext
libtool pkgconfig python pythonPackages.pygobject3
];
preConfigure = ''
autoreconf --verbose --force --install
'';
meta = with stdenv.lib; {
isIbusEngine = true;
description = "m17n engine for ibus.";
homepage = https://github.com.com/ibus/ibus-m17n;
license = licenses.gpl2;
platforms = platforms.linux;
maintainers = with maintainers; [ ericsagnes ];
};
}

View File

@ -7,33 +7,41 @@ let
sha256 = "0pyrpz9c8nxccwpgyr36w314mi8h132cis8ijvlqmmhqxwsi30hm";
};
in clangStdenv.mkDerivation rec {
name = "mozc-${version}";
version = "2015-05-02";
name = "ibus-mozc-${version}";
version = "2.17.2313.102";
meta = with clangStdenv.lib; {
description = "Japanese input method from Google";
homepage = http://code.google.com/p/mozc/;
license = licenses.bsd3;
platforms = platforms.linux;
maintainers = [ maintainers.gebner ];
isIbusEngine = true;
description = "Japanese input method from Google";
homepage = http://code.google.com/p/mozc/;
license = licenses.free;
platforms = platforms.linux;
maintainers = with maintainers; [ gebner ericsagnes ];
};
nativeBuildInputs = [ gyp which ninja python pkgconfig ];
buildInputs = [ protobuf ibus gtk zinnia qt4 libxcb ];
src = fetchFromGitHub {
owner = "google";
repo = "mozc";
rev = "d9783737ecfcb68c3d98d84e7052d716f4d0e0cb";
sha256 = "52a83658e2e4a7b38e31a4085682be24c9c5f4c51a01578598a30b9833827b72";
owner = "google";
repo = "mozc";
rev = "3306d3314499a54a4064b8b80bbc1bce3f6cfac4";
sha256 = "0l7mjlnbm6i1ipni8pg9ym5bjg3rzkaxi9xwmsz2lddv348sqii2";
};
postUnpack = ''
rmdir $sourceRoot/src/third_party/japanese_usage_dictionary/
ln -s ${japanese_usage_dictionary} $sourceRoot/src/third_party/japanese_usage_dictionary
'';
configurePhase = ''
export GYP_DEFINES="ibus_mozc_path=$out/lib/ibus-mozc/ibus-engine-mozc ibus_mozc_icon_path=$out/share/ibus-mozc/product_icon.png document_dir=$out/share/doc/mozc zinnia_model_file=${tegaki-zinnia-japanese}/share/tegaki/models/zinnia/handwriting-ja.model use_libprotobuf=1"
python src/build_mozc.py gyp --gypdir=${gyp}/bin --server_dir=$out/lib/mozc
export GYP_DEFINES="document_dir=$out/share/doc/mozc use_libzinnia=1 use_libprotobuf=1 ibus_mozc_path=$out/lib/ibus-mozc/ibus-engine-mozc"
python src/build_mozc.py gyp --gypdir=${gyp}/bin --server_dir=$out/lib/mozc \
python src/unix/fcitx/fcitx.gyp gyp --gypdir=${gyp}/bin
'';
preBuildPhase = ''
head -n 29 src/server/mozc_server.cc > LICENSE
'';
buildPhase = ''
@ -50,6 +58,9 @@ in clangStdenv.mkDerivation rec {
'';
installPhase = ''
install -d $out/share/licenses/mozc/
install -m 644 LICENSE src/data/installer/*.html $out/share/licenses/mozc/
install -D -m 755 src/out_linux/Release/mozc_server $out/lib/mozc/mozc_server
install -m 755 src/out_linux/Release/mozc_tool $out/lib/mozc/mozc_tool

View File

@ -20,10 +20,11 @@ stdenv.mkDerivation rec {
'';
meta = with stdenv.lib; {
description = "Various table-based input methods for IBus";
homepage = https://github.com/moebiuscurve/ibus-table-others;
license = licenses.gpl3;
platforms = platforms.linux;
maintainers = with maintainers; [ mudri ];
isIbusEngine = true;
description = "Various table-based input methods for IBus";
homepage = https://github.com/moebiuscurve/ibus-table-others;
license = licenses.gpl3;
platforms = platforms.linux;
maintainers = with maintainers; [ mudri ];
};
}

View File

@ -12,10 +12,11 @@ stdenv.mkDerivation rec {
buildInputs = [ ibus pkgconfig python3 pythonPackages.pygobject3 ];
meta = with stdenv.lib; {
description = "An IBus framework for table-based input methods";
homepage = https://github.com/kaio/ibus-table/wiki;
license = licenses.lgpl21;
platforms = platforms.linux;
maintainers = with maintainers; [ mudri ];
isIbusEngine = true;
description = "An IBus framework for table-based input methods";
homepage = https://github.com/kaio/ibus-table/wiki;
license = licenses.lgpl21;
platforms = platforms.linux;
maintainers = with maintainers; [ mudri ];
};
}

View File

@ -0,0 +1,24 @@
{ stdenv, buildEnv, ibus, makeWrapper, plugins, hicolor_icon_theme }:
let
drv = buildEnv {
name = "ibus-with-plugins-" + (builtins.parseDrvName ibus.name).version;
paths = [ ibus hicolor_icon_theme ] ++ plugins;
postBuild = ''
# TODO: This could be avoided if buildEnv could be forced to create all directories
if [ -L $out/bin ]; then
rm $out/bin
mkdir $out/bin
for i in ${ibus}/bin/*; do
ln -s $i $out/bin
done
fi
wrapProgram $out/bin/ibus \
--set IBUS_COMPONENT_PATH "$out/share/ibus/component/"
wrapProgram $out/bin/ibus-daemon \
--set IBUS_COMPONENT_PATH "$out/share/ibus/component/"
'';
};
in stdenv.lib.overrideDerivation drv (x : { buildInputs = x.buildInputs ++ [ makeWrapper ]; })

View File

@ -0,0 +1,39 @@
--- a/gtk2/immodule/Makefile.in 2015-11-24 16:21:08.967087208 +0900
+++ b/gtk2/immodule/Makefile.in 2015-11-24 16:22:53.316095150 +0900
@@ -806,7 +806,6 @@
install-data-am: install-moduleLTLIBRARIES
@$(NORMAL_INSTALL)
- $(MAKE) $(AM_MAKEFLAGS) install-data-hook
install-dvi: install-dvi-am
install-dvi-am:
@@ -861,7 +860,7 @@
ctags distclean distclean-compile distclean-generic \
distclean-libtool distclean-tags distdir dvi dvi-am html \
html-am info info-am install install-am install-data \
- install-data-am install-data-hook install-dvi install-dvi-am \
+ install-data-am install-dvi install-dvi-am \
install-exec install-exec-am install-html install-html-am \
install-info install-info-am install-man \
install-moduleLTLIBRARIES install-pdf install-pdf-am \
--- a/gtk3/immodule/Makefile.in 2015-11-24 16:21:08.971087209 +0900
+++ b/gtk3/immodule/Makefile.in 2015-11-24 16:23:28.251097832 +0900
@@ -824,7 +824,6 @@
install-data-am: install-moduleLTLIBRARIES
@$(NORMAL_INSTALL)
- $(MAKE) $(AM_MAKEFLAGS) install-data-hook
install-dvi: install-dvi-am
install-dvi-am:
@@ -879,7 +878,7 @@
ctags distclean distclean-compile distclean-generic \
distclean-libtool distclean-tags distdir dvi dvi-am html \
html-am info info-am install install-am install-data \
- install-data-am install-data-hook install-dvi install-dvi-am \
+ install-data-am install-dvi install-dvi-am \
install-exec install-exec-am install-html install-html-am \
install-info install-info-am install-man \
install-moduleLTLIBRARIES install-pdf install-pdf-am

View File

@ -19,7 +19,7 @@ stdenv.mkDerivation rec {
m17n_db
];
patches = [ ./immodules_cache.patch ];
patches = [ ./data-hook.patch ];
configureFlags = [
"--with-gtk2"
@ -41,10 +41,11 @@ stdenv.mkDerivation rec {
sha1 = "43b9dbdead6797880e6cfc9c032ecb2d37d42777";
};
meta = {
homepage = "http://code.google.com/p/uim/";
meta = with stdenv.lib; {
homepage = "http://code.google.com/p/uim/";
description = "A multilingual input method framework";
license = stdenv.lib.licenses.bsd3;
platforms = stdenv.lib.platforms.linux;
license = stdenv.lib.licenses.bsd3;
platforms = stdenv.lib.platforms.linux;
maintainers = with maintainers; [ ericsagnes ];
};
}

View File

@ -1,231 +0,0 @@
diff -ru -x '*~' uim-1.8.6.orig/gtk2/immodule/Makefile.am uim-1.8.6/gtk2/immodule/Makefile.am
--- uim-1.8.6.orig/gtk2/immodule/Makefile.am 2013-06-30 13:26:09.000000000 +0900
+++ uim-1.8.6/gtk2/immodule/Makefile.am 2014-07-13 21:51:26.538400004 +0900
@@ -1,5 +1,5 @@
uim_gtk_im_module_path = $(libdir)/gtk-2.0
-uim_gtk_im_module_file = $(DESTDIR)$(sysconfdir)/gtk-2.0/gtk.immodules
+uim_gtk_im_module_file = $(uim_gtk_im_module_path)/@GTK_BINARY_VERSION@/immodules.cache
moduledir = $(uim_gtk_im_module_path)/@GTK_BINARY_VERSION@/immodules
@@ -38,48 +38,12 @@
install-data-hook: gtk-rc-get-immodule-file
if test -z $(DESTDIR); then \
- if test $(libdir) = $(GTK_LIBDIR); then \
- if type $(QUERY_COMMAND) > /dev/null 2>&1; then \
- $(QUERY_COMMAND) > `$(GTK_RC_GET_IMMODULE_FILE)`; \
- echo "*** \"`$(GTK_RC_GET_IMMODULE_FILE)`\" is updated. ***"; \
- else \
- echo "********************** Warning ***********************"; \
- echo " $(QUERY_COMMAND) not found"; \
- echo " Please make sure to update"; \
- echo " \"`$(GTK_RC_GET_IMMODULE_FILE)`\""; \
- echo " manually."; \
- echo "******************************************************"; \
- fi \
- else \
- if type $(QUERY_COMMAND) > /dev/null 2>&1; then \
- $(mkinstalldirs) $(sysconfdir)/gtk-2.0; \
- GTK_PATH=$(uim_gtk_im_module_path) $(QUERY_COMMAND) > $(uim_gtk_im_module_file); \
- echo "******************************************************"; \
- echo " You need to set"; \
- echo " GTK_IM_MODULE_FILE=$(uim_gtk_im_module_file)"; \
- echo " environment variable to use this module."; \
- echo "******************************************************"; \
- else \
- echo "********************** Warning ***********************"; \
- echo " $(QUERY_COMMAND) not found"; \
- echo " Please make sure to update"; \
- echo " \"$(uim_gtk_im_module_file)\""; \
- echo " manually, and set"; \
- echo " GTK_IM_MODULE_FILE=$(uim_gtk_im_module_file)"; \
- echo " environment variable to use this module."; \
- echo "******************************************************"; \
- fi \
- fi \
+ $(mkinstalldirs) $(uim_gtk_im_module_path)/@GTK_BINARY_VERSION@; \
+ GTK_PATH=$(uim_gtk_im_module_path) $(QUERY_COMMAND) > $(uim_gtk_im_module_file); \
fi
uninstall-hook:
if test -z $(DESTDIR); then \
- if type $(QUERY_COMMAND) > /dev/null 2>&1; then \
- if test $(libdir) = $(GTK_LIBDIR); then \
- $(QUERY_COMMAND) > `$(GTK_RC_GET_IMMODULE_FILE)`; \
- else \
- GTK_PATH=$(uim_gtk_im_module_path) $(QUERY_COMMAND) > $(uim_gtk_im_module_file); \
- fi \
- fi \
+ GTK_PATH=$(uim_gtk_im_module_path) $(QUERY_COMMAND) > $(uim_gtk_im_module_file); \
fi
else
install-data-hook:
diff -ru -x '*~' uim-1.8.6.orig/gtk2/immodule/Makefile.in uim-1.8.6/gtk2/immodule/Makefile.in
--- uim-1.8.6.orig/gtk2/immodule/Makefile.in 2013-06-30 13:27:08.000000000 +0900
+++ uim-1.8.6/gtk2/immodule/Makefile.in 2014-07-13 22:12:27.947595507 +0900
@@ -434,7 +434,7 @@
top_srcdir = @top_srcdir@
uim_pixmapsdir = @uim_pixmapsdir@
uim_gtk_im_module_path = $(libdir)/gtk-2.0
-uim_gtk_im_module_file = $(DESTDIR)$(sysconfdir)/gtk-2.0/gtk.immodules
+uim_gtk_im_module_file = $(uim_gtk_im_module_path)/@GTK_BINARY_VERSION@/immodules.cache
moduledir = $(uim_gtk_im_module_path)/@GTK_BINARY_VERSION@/immodules
@GTK2_TRUE@im_uim_la = im-uim.la
@GTK2_TRUE@im_uim_la_CPPFLAGS = -I$(top_srcdir) -I$(top_builddir)
@@ -875,48 +875,12 @@
@GTK2_TRUE@install-data-hook: gtk-rc-get-immodule-file
@GTK2_TRUE@ if test -z $(DESTDIR); then \
-@GTK2_TRUE@ if test $(libdir) = $(GTK_LIBDIR); then \
-@GTK2_TRUE@ if type $(QUERY_COMMAND) > /dev/null 2>&1; then \
-@GTK2_TRUE@ $(QUERY_COMMAND) > `$(GTK_RC_GET_IMMODULE_FILE)`; \
-@GTK2_TRUE@ echo "*** \"`$(GTK_RC_GET_IMMODULE_FILE)`\" is updated. ***"; \
-@GTK2_TRUE@ else \
-@GTK2_TRUE@ echo "********************** Warning ***********************"; \
-@GTK2_TRUE@ echo " $(QUERY_COMMAND) not found"; \
-@GTK2_TRUE@ echo " Please make sure to update"; \
-@GTK2_TRUE@ echo " \"`$(GTK_RC_GET_IMMODULE_FILE)`\""; \
-@GTK2_TRUE@ echo " manually."; \
-@GTK2_TRUE@ echo "******************************************************"; \
-@GTK2_TRUE@ fi \
-@GTK2_TRUE@ else \
-@GTK2_TRUE@ if type $(QUERY_COMMAND) > /dev/null 2>&1; then \
-@GTK2_TRUE@ $(mkinstalldirs) $(sysconfdir)/gtk-2.0; \
-@GTK2_TRUE@ GTK_PATH=$(uim_gtk_im_module_path) $(QUERY_COMMAND) > $(uim_gtk_im_module_file); \
-@GTK2_TRUE@ echo "******************************************************"; \
-@GTK2_TRUE@ echo " You need to set"; \
-@GTK2_TRUE@ echo " GTK_IM_MODULE_FILE=$(uim_gtk_im_module_file)"; \
-@GTK2_TRUE@ echo " environment variable to use this module."; \
-@GTK2_TRUE@ echo "******************************************************"; \
-@GTK2_TRUE@ else \
-@GTK2_TRUE@ echo "********************** Warning ***********************"; \
-@GTK2_TRUE@ echo " $(QUERY_COMMAND) not found"; \
-@GTK2_TRUE@ echo " Please make sure to update"; \
-@GTK2_TRUE@ echo " \"$(uim_gtk_im_module_file)\""; \
-@GTK2_TRUE@ echo " manually, and set"; \
-@GTK2_TRUE@ echo " GTK_IM_MODULE_FILE=$(uim_gtk_im_module_file)"; \
-@GTK2_TRUE@ echo " environment variable to use this module."; \
-@GTK2_TRUE@ echo "******************************************************"; \
-@GTK2_TRUE@ fi \
-@GTK2_TRUE@ fi \
+@GTK2_TRUE@ $(mkinstalldirs) $(uim_gtk_im_module_path)/@GTK_BINARY_VERSION@; \
+@GTK2_TRUE@ GTK_PATH=$(uim_gtk_im_module_path) $(QUERY_COMMAND) > $(uim_gtk_im_module_file); \
@GTK2_TRUE@ fi
@GTK2_TRUE@uninstall-hook:
@GTK2_TRUE@ if test -z $(DESTDIR); then \
-@GTK2_TRUE@ if type $(QUERY_COMMAND) > /dev/null 2>&1; then \
-@GTK2_TRUE@ if test $(libdir) = $(GTK_LIBDIR); then \
-@GTK2_TRUE@ $(QUERY_COMMAND) > `$(GTK_RC_GET_IMMODULE_FILE)`; \
-@GTK2_TRUE@ else \
-@GTK2_TRUE@ GTK_PATH=$(uim_gtk_im_module_path) $(QUERY_COMMAND) > $(uim_gtk_im_module_file); \
-@GTK2_TRUE@ fi \
-@GTK2_TRUE@ fi \
+@GTK2_TRUE@ GTK_PATH=$(uim_gtk_im_module_path) $(QUERY_COMMAND) > $(uim_gtk_im_module_file); \
@GTK2_TRUE@ fi
@GTK2_FALSE@install-data-hook:
diff -ru -x '*~' uim-1.8.6.orig/gtk3/immodule/Makefile.am uim-1.8.6/gtk3/immodule/Makefile.am
--- uim-1.8.6.orig/gtk3/immodule/Makefile.am 2013-06-30 13:26:20.000000000 +0900
+++ uim-1.8.6/gtk3/immodule/Makefile.am 2014-07-13 21:55:38.114246503 +0900
@@ -45,42 +45,11 @@
install-data-hook: gtk3-rc-get-immodule-file
if test -z $(DESTDIR); then \
- if test $(libdir) = $(GTK3_LIBDIR); then \
- if type $(QUERY_COMMAND) > /dev/null 2>&1; then \
- $(QUERY_COMMAND) --update-cache; \
- echo "*** \"`$(GTK3_RC_GET_IMMODULE_FILE)`\" is updated. ***"; \
- else \
- echo "********************** Warning ***********************"; \
- echo " $(QUERY_COMMAND) not found"; \
- echo " Please make sure to update"; \
- echo " \"`$(GTK3_RC_GET_IMMODULE_FILE)`\""; \
- echo " manually."; \
- echo "******************************************************"; \
- fi \
- else \
- if type $(QUERY_COMMAND) > /dev/null 2>&1; then \
- GTK_PATH=$(uim_gtk3_im_module_path) $(QUERY_COMMAND) --update-cache; \
- else \
- echo "********************** Warning ***********************"; \
- echo " $(QUERY_COMMAND) not found"; \
- echo " Please make sure to update"; \
- echo " immodules.cache"; \
- echo " manually, and set"; \
- echo " GTK_IM_MODULE_FILE=PATH_TO/immodule.cache"; \
- echo " environment variable to use this module."; \
- echo "******************************************************"; \
- fi \
- fi \
+ GTK_PATH=$(uim_gtk3_im_module_path) $(QUERY_COMMAND) > $(uim_gtk3_im_module_path)/@GTK3_BINARY_VERSION@/immodules.cache ; \
fi
uninstall-hook:
if test -z $(DESTDIR); then \
- if type $(QUERY_COMMAND) > /dev/null 2>&1; then \
- if test $(libdir) = $(GTK3_LIBDIR); then \
- $(QUERY_COMMAND) --update-cache; \
- else \
- GTK_PATH=$(uim_gtk3_im_module_path) $(QUERY_COMMAND) --update-cache; \
- fi \
- fi \
+ GTK_PATH=$(uim_gtk3_im_module_path) $(QUERY_COMMAND) > $(uim_gtk3_im_module_path)/@GTK3_BINARY_VERSION@/immodules.cache ; \
fi
else
install-data-hook:
diff -ru -x '*~' uim-1.8.6.orig/gtk3/immodule/Makefile.in uim-1.8.6/gtk3/immodule/Makefile.in
--- uim-1.8.6.orig/gtk3/immodule/Makefile.in 2013-06-30 13:27:08.000000000 +0900
+++ uim-1.8.6/gtk3/immodule/Makefile.in 2014-07-13 21:56:11.531225832 +0900
@@ -893,42 +893,11 @@
@GTK3_TRUE@install-data-hook: gtk3-rc-get-immodule-file
@GTK3_TRUE@ if test -z $(DESTDIR); then \
-@GTK3_TRUE@ if test $(libdir) = $(GTK3_LIBDIR); then \
-@GTK3_TRUE@ if type $(QUERY_COMMAND) > /dev/null 2>&1; then \
-@GTK3_TRUE@ $(QUERY_COMMAND) --update-cache; \
-@GTK3_TRUE@ echo "*** \"`$(GTK3_RC_GET_IMMODULE_FILE)`\" is updated. ***"; \
-@GTK3_TRUE@ else \
-@GTK3_TRUE@ echo "********************** Warning ***********************"; \
-@GTK3_TRUE@ echo " $(QUERY_COMMAND) not found"; \
-@GTK3_TRUE@ echo " Please make sure to update"; \
-@GTK3_TRUE@ echo " \"`$(GTK3_RC_GET_IMMODULE_FILE)`\""; \
-@GTK3_TRUE@ echo " manually."; \
-@GTK3_TRUE@ echo "******************************************************"; \
-@GTK3_TRUE@ fi \
-@GTK3_TRUE@ else \
-@GTK3_TRUE@ if type $(QUERY_COMMAND) > /dev/null 2>&1; then \
-@GTK3_TRUE@ GTK_PATH=$(uim_gtk3_im_module_path) $(QUERY_COMMAND) --update-cache; \
-@GTK3_TRUE@ else \
-@GTK3_TRUE@ echo "********************** Warning ***********************"; \
-@GTK3_TRUE@ echo " $(QUERY_COMMAND) not found"; \
-@GTK3_TRUE@ echo " Please make sure to update"; \
-@GTK3_TRUE@ echo " immodules.cache"; \
-@GTK3_TRUE@ echo " manually, and set"; \
-@GTK3_TRUE@ echo " GTK_IM_MODULE_FILE=PATH_TO/immodule.cache"; \
-@GTK3_TRUE@ echo " environment variable to use this module."; \
-@GTK3_TRUE@ echo "******************************************************"; \
-@GTK3_TRUE@ fi \
-@GTK3_TRUE@ fi \
+@GTK3_TRUE@ GTK_PATH=$(uim_gtk3_im_module_path) $(QUERY_COMMAND) > $(uim_gtk3_im_module_path)/@GTK3_BINARY_VERSION@/immodules.cache ; \
@GTK3_TRUE@ fi
@GTK3_TRUE@uninstall-hook:
@GTK3_TRUE@ if test -z $(DESTDIR); then \
-@GTK3_TRUE@ if type $(QUERY_COMMAND) > /dev/null 2>&1; then \
-@GTK3_TRUE@ if test $(libdir) = $(GTK3_LIBDIR); then \
-@GTK3_TRUE@ $(QUERY_COMMAND) --update-cache; \
-@GTK3_TRUE@ else \
-@GTK3_TRUE@ GTK_PATH=$(uim_gtk3_im_module_path) $(QUERY_COMMAND) --update-cache; \
-@GTK3_TRUE@ fi \
-@GTK3_TRUE@ fi \
+@GTK3_TRUE@ GTK_PATH=$(uim_gtk3_im_module_path) $(QUERY_COMMAND) > $(uim_gtk3_im_module_path)/@GTK3_BINARY_VERSION@/immodules.cache ; \
@GTK3_TRUE@ fi
@GTK3_FALSE@install-data-hook:
diff -ru -x '*~' uim-1.8.6.orig/qt4/immodule/quiminputcontextplugin.pro.in uim-1.8.6/qt4/immodule/quiminputcontextplugin.pro.in
--- uim-1.8.6.orig/qt4/immodule/quiminputcontextplugin.pro.in 2013-06-30 13:26:20.000000000 +0900
+++ uim-1.8.6/qt4/immodule/quiminputcontextplugin.pro.in 2014-03-09 11:31:19.388085048 +0900
@@ -35,4 +35,4 @@
TARGET = uiminputcontextplugin
-target.path += @DESTDIR@$$[QT_INSTALL_PLUGINS]/inputmethods
+target.path += @DESTDIR@@exec_prefix@/lib/qt4/plugins/inputmethods

View File

@ -1172,19 +1172,31 @@ let
m17n_lib = callPackage ../tools/inputmethods/m17n-lib { };
mozc = callPackage ../tools/inputmethods/mozc {
inherit (pythonPackages) gyp;
};
ibus = callPackage ../tools/inputmethods/ibus { };
ibus-qt = callPackage ../tools/inputmethods/ibus-qt { };
ibus-qt = callPackage ../tools/inputmethods/ibus/ibus-qt.nix { };
ibus-anthy = callPackage ../tools/inputmethods/ibus-anthy { };
ibus-engines = {
ibus-table = callPackage ../tools/inputmethods/ibus-table { };
anthy = callPackage ../tools/inputmethods/ibus-engines/ibus-anthy { };
ibus-table-others = callPackage ../tools/inputmethods/ibus-table-others { };
hangul = callPackage ../tools/inputmethods/ibus-engines/ibus-hangul { };
m17n = callPackage ../tools/inputmethods/ibus-engines/ibus-m17n { };
mozc = callPackage ../tools/inputmethods/ibus-engines/ibus-mozc {
inherit (pythonPackages) gyp;
};
table = callPackage ../tools/inputmethods/ibus-engines/ibus-table { };
table-others = callPackage ../tools/inputmethods/ibus-engines/ibus-table-others { };
};
ibus-with-plugins = callPackage ../tools/inputmethods/ibus/wrapper.nix {
plugins = [ ];
};
brotli = callPackage ../tools/compression/brotli { };
@ -1513,7 +1525,23 @@ let
fcitx = callPackage ../tools/inputmethods/fcitx { };
fcitx-anthy = callPackage ../tools/inputmethods/fcitx/fcitx-anthy.nix { };
fcitx-engines = {
anthy = callPackage ../tools/inputmethods/fcitx-engines/fcitx-anthy { };
chewing = callPackage ../tools/inputmethods/fcitx-engines/fcitx-chewing { };
hangul = callPackage ../tools/inputmethods/fcitx-engines/fcitx-hangul { };
m17n = callPackage ../tools/inputmethods/fcitx-engines/fcitx-m17n { };
mozc = callPackage ../tools/inputmethods/fcitx-engines/fcitx-mozc {
inherit (pythonPackages) gyp;
};
table-other = callPackage ../tools/inputmethods/fcitx-engines/fcitx-table-other { };
};
fcitx-configtool = callPackage ../tools/inputmethods/fcitx/fcitx-configtool.nix { };