diff options
author | Bert Moens <bert.moens@gmail.com> | 2017-12-16 23:36:08 +0100 |
---|---|---|
committer | Jan Tojnar <jtojnar@gmail.com> | 2018-01-02 05:06:36 +0100 |
commit | 866c511a0afb01115786769f72c8ecafcbb84268 (patch) | |
tree | 042287096f74132a1f1d5ff41ac06ed684b1c812 /pkgs/applications/misc/orca | |
parent | f8a500f722baf0fe9ef66f0b2f3d796cbbf5d51e (diff) |
orca: init at 3.26.0
Diffstat (limited to 'pkgs/applications/misc/orca')
-rw-r--r-- | pkgs/applications/misc/orca/default.nix | 67 | ||||
-rw-r--r-- | pkgs/applications/misc/orca/fix-paths.patch | 29 |
2 files changed, 96 insertions, 0 deletions
diff --git a/pkgs/applications/misc/orca/default.nix b/pkgs/applications/misc/orca/default.nix new file mode 100644 index 0000000000000..fc7fd95bbb955 --- /dev/null +++ b/pkgs/applications/misc/orca/default.nix @@ -0,0 +1,67 @@ +{ stdenv, lib, pkgconfig, fetchurl, buildPythonApplication +, autoreconfHook, wrapGAppsHook +, intltool, yelp_tools, itstool, libxmlxx3 +, python, pygobject3, gtk3, gnome3, substituteAll +, at_spi2_atk, at_spi2_core, pyatspi, dbus, dbus-python, pyxdg +, xkbcomp, gsettings_desktop_schemas, liblouis +, speechd, brltty, setproctitle, gst_all_1, gst-python +}: + +with lib; +let + version = "3.26.0"; + majorVersion = builtins.concatStringsSep "." (take 2 (splitString "." version)); +in buildPythonApplication rec { + name = "orca-${version}"; + + format = "other"; + + src = fetchurl { + url = "mirror://gnome/sources/orca/${majorVersion}/${name}.tar.xz"; + sha256 = "0xk5k9cbswymma60nrfj00dl97wypx59c107fb1hwi75gm0i07a7"; + }; + + patches = [ + (substituteAll { + src = ./fix-paths.patch; + xkbcomp = "${xkbcomp}/bin/xkbcomp"; + }) + ]; + + nativeBuildInputs = [ + autoreconfHook wrapGAppsHook pkgconfig libxmlxx3 + intltool yelp_tools itstool + ]; + + propagatedBuildInputs = [ + pygobject3 pyatspi dbus-python pyxdg brltty liblouis speechd gst-python setproctitle + ]; + + buildInputs = [ + python gtk3 at_spi2_atk at_spi2_core dbus gsettings_desktop_schemas + gst_all_1.gstreamer gst_all_1.gst-plugins-base gst_all_1.gst-plugins-good + ]; + + # Run intltoolize to create po/Makefile.in.in + preConfigure = '' + intltoolize + ''; + + meta = { + homepage = https://wiki.gnome.org/Projects/Orca; + description = "Screen reader"; + longDescription = '' + A free, open source, flexible and extensible screen reader that provides + access to the graphical desktop via speech and refreshable braille. + It works with applications and toolkits that support the Assistive + Technology Service Provider Interface (AT-SPI). That includes the GNOME + Gtk+ toolkit, the Java platform's Swing toolkit, LibreOffice, Gecko, and + WebKitGtk. AT-SPI support for the KDE Qt toolkit is being pursued. + + Needs `services.gnome3.at-spi2-core.enable = true;` in `configuration.nix`. + ''; + maintainers = with maintainers; [ berce ] ++ gnome3.maintainers; + license = licenses.lgpl21; + platforms = platforms.linux; + }; +} diff --git a/pkgs/applications/misc/orca/fix-paths.patch b/pkgs/applications/misc/orca/fix-paths.patch new file mode 100644 index 0000000000000..d3e77773f28f4 --- /dev/null +++ b/pkgs/applications/misc/orca/fix-paths.patch @@ -0,0 +1,29 @@ +--- a/src/orca/orca.py ++++ b/src/orca/orca.py +@@ -239,7 +239,7 @@ + + def _setXmodmap(xkbmap): + """Set the keyboard map using xkbcomp.""" +- p = subprocess.Popen(['xkbcomp', '-w0', '-', os.environ['DISPLAY']], ++ p = subprocess.Popen(['@xkbcomp@', '-w0', '-', os.environ['DISPLAY']], + stdin=subprocess.PIPE, stdout=None, stderr=None) + p.communicate(xkbmap) + +@@ -297,7 +297,7 @@ + """ + + global _originalXmodmap +- _originalXmodmap = subprocess.check_output(['xkbcomp', os.environ['DISPLAY'], '-']) ++ _originalXmodmap = subprocess.check_output(['@xkbcomp@', os.environ['DISPLAY'], '-']) + + def _restoreXmodmap(keyList=[]): + """Restore the original xmodmap values for the keys in keyList. +@@ -309,7 +309,7 @@ + + global _capsLockCleared + _capsLockCleared = False +- p = subprocess.Popen(['xkbcomp', '-w0', '-', os.environ['DISPLAY']], ++ p = subprocess.Popen(['@xkbcomp@', '-w0', '-', os.environ['DISPLAY']], + stdin=subprocess.PIPE, stdout=None, stderr=None) + p.communicate(_originalXmodmap) + |