diff options
Diffstat (limited to 'nixpkgs/pkgs/applications/misc/onboard/default.nix')
-rw-r--r-- | nixpkgs/pkgs/applications/misc/onboard/default.nix | 164 |
1 files changed, 164 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/applications/misc/onboard/default.nix b/nixpkgs/pkgs/applications/misc/onboard/default.nix new file mode 100644 index 000000000000..de2f86e9f9a2 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/onboard/default.nix @@ -0,0 +1,164 @@ +{ fetchurl +, stdenv +, substituteAll +, aspellWithDicts +, at-spi2-core ? null +, atspiSupport ? true +, bash +, glib +, glibcLocales +, gnome3 +, gobject-introspection +, gsettings-desktop-schemas +, gtk3 +, hunspell +, hunspellDicts +, hunspellWithDicts +, intltool +, isocodes +, libcanberra-gtk3 +, mousetweaks +, udev +, libxkbcommon +, pkgconfig +, procps +, python3 +, wrapGAppsHook +, xorg +, yelp +}: + +let + customHunspell = hunspellWithDicts [hunspellDicts.en-us]; + majorVersion = "1.4"; + version = "${majorVersion}.1"; +in python3.pkgs.buildPythonApplication rec { + name = "onboard-${version}"; + src = fetchurl { + url = "https://launchpad.net/onboard/${majorVersion}/${version}/+download/${name}.tar.gz"; + sha256 = "01cae1ac5b1ef1ab985bd2d2d79ded6fc99ee04b1535cc1bb191e43a231a3865"; + }; + + patches = [ + (substituteAll { + src = ./fix-paths.patch; + inherit mousetweaks; + }) + # Allow loading hunspell dictionaries installed in NixOS system path + ./hunspell-use-xdg-datadirs.patch + ]; + + # For tests + LC_ALL = "en_US.UTF-8"; + doCheck = false; + checkInputs = [ + # for Onboard.SpellChecker.aspell_cmd doctests + (aspellWithDicts (dicts: with dicts; [ en ])) + + # for Onboard.SpellChecker.hunspell_cmd doctests + customHunspell + + # for Onboard.SpellChecker.hunspell doctests + hunspellDicts.en-us + hunspellDicts.es-es + hunspellDicts.it-it + + python3.pkgs.nose + ]; + + propagatedBuildInputs = [ + glib + python3 + python3.pkgs.dbus-python + python3.pkgs.distutils_extra + python3.pkgs.pyatspi + python3.pkgs.pycairo + python3.pkgs.pygobject3 + python3.pkgs.systemd + ]; + + buildInputs = [ + bash + gnome3.dconf + gsettings-desktop-schemas + gtk3 + hunspell + isocodes + libcanberra-gtk3 + mousetweaks + udev + libxkbcommon + wrapGAppsHook + xorg.libXtst + xorg.libxkbfile + ] ++ stdenv.lib.optional atspiSupport at-spi2-core; + + nativeBuildInputs = [ + glibcLocales + gobject-introspection # populate GI_TYPELIB_PATH + intltool + pkgconfig + ]; + + propagatedUserEnvPkgs = [ + gnome3.dconf + ]; + + preBuild = '' + # Unnecessary file, has been removed upstream + # https://github.com/NixOS/nixpkgs/pull/24986#issuecomment-296114062 + rm -r Onboard/pypredict/attic + + substituteInPlace ./scripts/sokSettings.py \ + --replace "#!/usr/bin/python3" "" \ + --replace "PYTHON_EXECUTABLE," "\"$out/bin/onboard-settings\"" \ + --replace '"-cfrom Onboard.settings import Settings\ns = Settings(False)"' "" + + chmod -x ./scripts/sokSettings.py + + patchShebangs . + + substituteInPlace ./Onboard/LanguageSupport.py \ + --replace "/usr/share/xml/iso-codes" "${isocodes}/share/xml/iso-codes" \ + --replace "/usr/bin/yelp" "${yelp}/bin/yelp" + + substituteInPlace ./Onboard/Indicator.py \ + --replace "/usr/bin/yelp" "${yelp}/bin/yelp" + + substituteInPlace ./gnome/Onboard_Indicator@onboard.org/extension.js \ + --replace "/usr/bin/yelp" "${yelp}/bin/yelp" + + substituteInPlace ./Onboard/SpellChecker.py \ + --replace "/usr/lib" "$out/lib" + + substituteInPlace ./data/org.onboard.Onboard.service \ + --replace "/usr/bin" "$out/bin" + + substituteInPlace ./Onboard/utils.py \ + --replace "/usr/share" "$out/share" + substituteInPlace ./onboard-defaults.conf.example \ + --replace "/usr/share" "$out/share" + substituteInPlace ./Onboard/Config.py \ + --replace "/usr/share/onboard" "$out/share/onboard" + + substituteInPlace ./Onboard/WordSuggestions.py \ + --replace "/usr/bin" "$out/bin" + + # killall is dangerous on non-gnu platforms. Use pkill instead. + substituteInPlace ./setup.py \ + --replace '"killall",' '"${procps}/bin/pkill", "-x",' + ''; + + postInstall = '' + cp onboard-default-settings.gschema.override.example $out/share/glib-2.0/schemas/10_onboard-default-settings.gschema.override + + glib-compile-schemas $out/share/glib-2.0/schemas/ + ''; + + meta = { + homepage = https://launchpad.net/onboard; + description = "An onscreen keyboard useful for tablet PC users and for mobility impaired users."; + maintainers = with stdenv.lib.maintainers; [ johnramsden ]; + license = stdenv.lib.licenses.gpl3; + }; +} |