about summary refs log tree commit diff
path: root/nixpkgs/pkgs/applications/misc/orca/default.nix
diff options
context:
space:
mode:
Diffstat (limited to 'nixpkgs/pkgs/applications/misc/orca/default.nix')
-rw-r--r--nixpkgs/pkgs/applications/misc/orca/default.nix76
1 files changed, 76 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/applications/misc/orca/default.nix b/nixpkgs/pkgs/applications/misc/orca/default.nix
new file mode 100644
index 000000000000..f52215fa4a26
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/orca/default.nix
@@ -0,0 +1,76 @@
+{ stdenv, pkgconfig, fetchurl, buildPythonApplication
+, autoreconfHook, wrapGAppsHook, gobject-introspection
+, intltool, yelp-tools, itstool, libxmlxx3
+, python, pygobject3, gtk3, gnome3, substituteAll
+, at-spi2-atk, at-spi2-core, pyatspi, dbus, dbus-python, pyxdg
+, xkbcomp, procps, lsof, coreutils, gsettings-desktop-schemas
+, speechd, brltty, setproctitle, gst_all_1, gst-python
+}:
+
+let
+  pname = "orca";
+  version = "3.30.1";
+in buildPythonApplication rec {
+  name = "${pname}-${version}";
+
+  format = "other";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
+    sha256 = "1b9s69frjmghjm1p9a4rrvknl9m0qlwr7mr4lsxkvjnblhsnw0g7";
+  };
+
+  patches = [
+    (substituteAll {
+      src = ./fix-paths.patch;
+      cat = "${coreutils}/bin/cat";
+      lsof = "${lsof}/bin/lsof";
+      pgrep = "${procps}/bin/pgrep";
+      xkbcomp = "${xkbcomp}/bin/xkbcomp";
+    })
+  ];
+
+  nativeBuildInputs = [
+    autoreconfHook wrapGAppsHook pkgconfig libxmlxx3
+    intltool yelp-tools itstool gobject-introspection
+  ];
+
+  propagatedBuildInputs = [
+    # TODO: re-add liblouis when it is fixed
+    pygobject3 pyatspi dbus-python pyxdg brltty 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
+  '';
+
+  passthru = {
+    updateScript = gnome3.updateScript {
+      packageName = pname;
+    };
+  };
+
+  meta = with stdenv.lib; {
+    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;
+  };
+}