about summary refs log tree commit diff
path: root/pkgs/applications/misc/orca
diff options
context:
space:
mode:
authorBert Moens <bert.moens@gmail.com>2017-12-16 23:36:08 +0100
committerJan Tojnar <jtojnar@gmail.com>2018-01-02 05:06:36 +0100
commit866c511a0afb01115786769f72c8ecafcbb84268 (patch)
tree042287096f74132a1f1d5ff41ac06ed684b1c812 /pkgs/applications/misc/orca
parentf8a500f722baf0fe9ef66f0b2f3d796cbbf5d51e (diff)
orca: init at 3.26.0
Diffstat (limited to 'pkgs/applications/misc/orca')
-rw-r--r--pkgs/applications/misc/orca/default.nix67
-rw-r--r--pkgs/applications/misc/orca/fix-paths.patch29
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)
+