diff options
Diffstat (limited to 'nixpkgs/pkgs/applications/misc/onboard/default.nix')
-rw-r--r-- | nixpkgs/pkgs/applications/misc/onboard/default.nix | 181 |
1 files changed, 181 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..e427519d4d6e --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/onboard/default.nix @@ -0,0 +1,181 @@ +{ fetchurl +, stdenv +, substituteAll +, aspellWithDicts +, at-spi2-core ? null +, atspiSupport ? true +, bash +, glib +, glibcLocales +, dconf +, 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"; + +in + +python3.pkgs.buildPythonApplication rec { + pname = "onboard"; + version = "${majorVersion}.1"; + + src = fetchurl { + url = "https://launchpad.net/onboard/${majorVersion}/${version}/+download/${pname}-${version}.tar.gz"; + sha256 = "0r9q38ikmr4in4dwqd8m9gh9xjbgxnfxglnjbfcapw8ybfnf3jh1"; + }; + + patches = [ + (substituteAll { + src = ./fix-paths.patch; + inherit mousetweaks; + }) + # Allow loading hunspell dictionaries installed in NixOS system path + ./hunspell-use-xdg-datadirs.patch + ]; + + nativeBuildInputs = [ + gobject-introspection + intltool + pkgconfig + wrapGAppsHook + ]; + + buildInputs = [ + bash + glib + dconf + gsettings-desktop-schemas + gtk3 + hunspell + isocodes + libcanberra-gtk3 + libxkbcommon + mousetweaks + udev + xorg.libXtst + xorg.libxkbfile + ] ++ stdenv.lib.optional atspiSupport at-spi2-core; + + propagatedBuildInputs = with python3.pkgs; [ + dbus-python + distutils_extra + pyatspi + pycairo + pygobject3 + systemd + ]; + + propagatedUserEnvPkgs = [ + dconf + ]; + + 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 + ]; + + # Temporary fix, see https://github.com/NixOS/nixpkgs/issues/56943 + strictDeps = false; + + doCheck = false; + + 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 setup.py \ + --replace "/etc" "$out/etc" + + 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",' + ''; + + installPhase = '' + ${python3.interpreter} setup.py install --prefix="$out" + + 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/ + ''; + + # Remove ubuntu icons. + postFixup = '' + rm -rf $out/share/icons/ubuntu-mono-* + ''; + + meta = with stdenv.lib; { + homepage = "https://launchpad.net/onboard"; + description = "Onscreen keyboard useful for tablet PC users and for mobility impaired users"; + maintainers = with maintainers; [ johnramsden ]; + license = licenses.gpl3; + }; +} |