diff options
Diffstat (limited to 'pkgs/tools/inputmethods/ibus/default.nix')
-rw-r--r-- | pkgs/tools/inputmethods/ibus/default.nix | 146 |
1 files changed, 72 insertions, 74 deletions
diff --git a/pkgs/tools/inputmethods/ibus/default.nix b/pkgs/tools/inputmethods/ibus/default.nix index 0dc339e51c6..4951074bc43 100644 --- a/pkgs/tools/inputmethods/ibus/default.nix +++ b/pkgs/tools/inputmethods/ibus/default.nix @@ -1,74 +1,43 @@ -{ stdenv, substituteAll, fetchurl, fetchFromGitHub, autoreconfHook, gettext, makeWrapper, pkgconfig -, vala, wrapGAppsHook, dbus, dconf ? null, glib, gdk-pixbuf, gobject-introspection, gtk2 -, gtk3, gtk-doc, isocodes, python3, json-glib, libnotify ? null, enablePython2Library ? false -, enableUI ? true, withWayland ? false, libxkbcommon ? null, wayland ? null -, buildPackages, runtimeShell }: +{ stdenv +, substituteAll +, fetchurl +, fetchFromGitHub +, autoreconfHook +, gettext +, makeWrapper +, pkgconfig +, vala +, wrapGAppsHook +, dbus +, dconf ? null +, glib +, gdk-pixbuf +, gobject-introspection +, gtk2 +, gtk3 +, gtk-doc +, isocodes +, cldr-emoji-annotation +, unicode-character-database +, unicode-emoji +, python3 +, json-glib +, libnotify ? null +, enablePython2Library ? false +, enableUI ? true +, withWayland ? false +, libxkbcommon ? null +, wayland ? null +, buildPackages +, runtimeShell +, nixosTests +}: assert withWayland -> wayland != null && libxkbcommon != null; with stdenv.lib; let - emojiSrcs = { - data = fetchurl { - url = "http://unicode.org/Public/emoji/5.0/emoji-data.txt"; - sha256 = "11jfz5rrvyc2ixliqfcjgmch4cn9mfy0x96qnpfcyz5fy1jvfyxf"; - }; - sequences = fetchurl { - url = "http://unicode.org/Public/emoji/5.0/emoji-sequences.txt"; - sha256 = "09bii7f5mmladg0kl3n80fa9qaix6bv5ylm92x52j7wygzv0szb1"; - }; - variation-sequences = fetchurl { - url = "http://unicode.org/Public/emoji/5.0/emoji-variation-sequences.txt"; - sha256 = "1wlg4gbq7spmpppjfy5zdl82sj0hc836p8gljgfrjmwsjgybq286"; - }; - zwj-sequences = fetchurl { - url = "http://unicode.org/Public/emoji/5.0/emoji-zwj-sequences.txt"; - sha256 = "16gvzv76mjv9g81lm1m6cr3rpfqyn2k4hb9a62xd329252dhl25q"; - }; - test = fetchurl { - url = "http://unicode.org/Public/emoji/5.0/emoji-test.txt"; - sha256 = "031qk2v8xdnba7hfinmgrmpglc9l8ll2hds6mw885p0hngdb3dgw"; - }; - }; - emojiData = stdenv.mkDerivation { - name = "emoji-data-5.0"; - dontUnpack = true; - installPhase = '' - mkdir $out - ${builtins.toString (flip mapAttrsToList emojiSrcs (k: v: "cp ${v} $out/emoji-${k}.txt;"))} - ''; - }; - cldrEmojiAnnotation = stdenv.mkDerivation rec { - pname = "cldr-emoji-annotation"; - version = "31.90.0_1"; - src = fetchFromGitHub { - owner = "fujiwarat"; - repo = "cldr-emoji-annotation"; - rev = version; - sha256 = "1vsj32bg8ab4d80rz0fxy6sj2lv31inzyjnddjm079bnvlaf2kih"; - }; - nativeBuildInputs = [ autoreconfHook ]; - }; - ucdVersion = "12.0.0"; - ucdSrcs = { - NamesList = fetchurl { - url = "https://www.unicode.org/Public/${ucdVersion}/ucd/NamesList.txt"; - sha256 = "c17c7726f562bd9ef869096807f0297e1edef9a58fdae1fbae487378fa43586f"; - }; - Blocks = fetchurl { - url = "https://www.unicode.org/Public/${ucdVersion}/ucd/Blocks.txt"; - sha256 = "a1a3ca4381eb91f7b65afe7cb7df615cdcf67993fef4b486585f66b349993a10"; - }; - }; - ucd = stdenv.mkDerivation { - name = "ucd-${ucdVersion}"; - dontUnpack = true; - installPhase = '' - mkdir $out - ${builtins.toString (flip mapAttrsToList ucdSrcs (k: v: "cp ${v} $out/${k}.txt;"))} - ''; - }; python3Runtime = python3.withPackages (ps: with ps; [ pygobject3 ]); python3BuildEnv = python3.buildEnv.override { # ImportError: No module named site @@ -82,13 +51,13 @@ in stdenv.mkDerivation rec { pname = "ibus"; - version = "1.5.20"; + version = "1.5.21"; src = fetchFromGitHub { owner = "ibus"; repo = "ibus"; rev = version; - sha256 = "1npavb896qrp6qbqayb0va4mpsi68wybcnlbjknzgssqyw2ylh9r"; + sha256 = "0fjbqj7d2g5c8i1wdggzhz269xisxv4xb1pa9swalm5p2b2vrjlx"; }; patches = [ @@ -99,7 +68,7 @@ stdenv.mkDerivation rec { }) ]; - outputs = [ "out" "dev" ]; + outputs = [ "out" "dev" "installedTests" ]; postPatch = '' echo \#!${runtimeShell} > data/dconf/make-dconf-override-db.sh @@ -116,9 +85,15 @@ stdenv.mkDerivation rec { (enableFeature enablePython2Library "python-library") (enableFeature enablePython2Library "python2") # XXX: python2 library does not work anyway (enableFeature enableUI "ui") - "--with-unicode-emoji-dir=${emojiData}" - "--with-emoji-annotation-dir=${cldrEmojiAnnotation}/share/unicode/cldr/common/annotations" - "--with-ucd-dir=${ucd}" + "--enable-install-tests" + "--with-unicode-emoji-dir=${unicode-emoji}/share/unicode/emoji" + "--with-emoji-annotation-dir=${cldr-emoji-annotation}/share/unicode/cldr/common/annotations" + "--with-ucd-dir=${unicode-character-database}/share/unicode" + ]; + + makeFlags = [ + "test_execsdir=${placeholder ''installedTests''}/libexec/installed-tests/ibus" + "test_sourcesdir=${placeholder ''installedTests''}/share/installed-tests/ibus" ]; nativeBuildInputs = [ @@ -132,7 +107,9 @@ stdenv.mkDerivation rec { wrapGAppsHook ]; - propagatedBuildInputs = [ glib ]; + propagatedBuildInputs = [ + glib + ]; buildInputs = [ dbus @@ -154,10 +131,31 @@ stdenv.mkDerivation rec { doCheck = false; # requires X11 daemon doInstallCheck = true; - installCheckPhase = "$out/bin/ibus version"; + installCheckPhase = '' + $out/bin/ibus version + ''; + + postInstall = '' + # It has some hardcoded FHS paths and also we do not use it + # since we set up the environment in NixOS tests anyway. + moveToOutput "bin/ibus-desktop-testing-runner" "$installedTests" + ''; + + postFixup = '' + # set necessary environment also for tests + for f in $installedTests/libexec/installed-tests/ibus/*; do + wrapGApp $f + done + ''; + + passthru = { + tests = { + installed-tests = nixosTests.installed-tests.ibus; + }; + }; meta = { - homepage = https://github.com/ibus/ibus; + homepage = "https://github.com/ibus/ibus"; description = "Intelligent Input Bus, input method framework"; license = licenses.lgpl21Plus; platforms = platforms.linux; |