summary refs log tree commit diff
path: root/pkgs/misc/drivers/utsushi/default.nix
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/misc/drivers/utsushi/default.nix')
-rw-r--r--pkgs/misc/drivers/utsushi/default.nix154
1 files changed, 154 insertions, 0 deletions
diff --git a/pkgs/misc/drivers/utsushi/default.nix b/pkgs/misc/drivers/utsushi/default.nix
new file mode 100644
index 00000000000..328e8ce4562
--- /dev/null
+++ b/pkgs/misc/drivers/utsushi/default.nix
@@ -0,0 +1,154 @@
+{ stdenv, fetchurl, autoreconfHook, boost, gtkmm2
+, pkg-config, libtool, udev, libjpeg, file, texlive
+, libusb, libtiff, imagemagick, sane-backends, tesseract }:
+
+/*
+Alternatively, this package could use the "community source" at 
+https://gitlab.com/utsushi/utsushi/
+Epson provides proprietary plugins for networking, ocr and some more
+scanner models. Those are not (yet ?) packaged here.
+*/
+
+stdenv.mkDerivation rec {
+  pname = "utsushi";
+  version = "3.57.0";
+
+  src = fetchurl {
+    url = "http://support.epson.net/linux/src/scanner/imagescanv3/common/imagescan_${version}.orig.tar.gz";
+    sha256 = "0qy6n6nbisbvy0q3idj7hpmj9i85cd0a18klfd8nsqsa2nkg57ny";
+  };
+
+  nativeBuildInputs = [
+    pkg-config
+    autoreconfHook
+    libtool
+  ];
+
+  buildInputs = [
+    boost
+    libusb
+    libtiff
+    libjpeg
+    udev
+    imagemagick
+    sane-backends
+    gtkmm2
+    file
+    tesseract
+  ];
+
+  patches = [
+    ./patches/absolute-path-to-convert.patch
+    ./patches/print-errors.patch
+    ./patches/absolute_path_for_tesseract.patch
+  ];
+
+  postPatch = ''
+    # remove vendored dependencies
+    rm -r upstream/boost
+    # create fake udev and sane config
+    mkdir -p $out/etc/{sane.d,udev/rules.d}
+    touch $out/etc/sane.d/dll.conf
+  '';
+
+  configureFlags = [
+    "--with-boost-libdir=${boost}/lib"
+    "--with-sane-confdir=${placeholder "out"}/etc/sane.d"
+    "--with-udev-confdir=${placeholder "out"}/etc/udev"
+    "--with-sane"
+    "--with-gtkmm"
+    "--with-jpeg"
+    "--with-magick"
+    "--with-sane"
+    "--with-tiff"
+  ];
+
+  installFlags = [ "SANE_BACKENDDIR=${placeholder "out"}/lib/sane" ];
+
+  enableParallelBuilding = true;
+
+  meta = {
+    description = "SANE utsushi backend for some Epson scanners";
+    longDescription = ''
+        ImageScanV3 (aka utsushi) scanner driver.
+        Non-free plugins are not included so no network support.
+        To use the SANE backend, in /etc/nixos/configuration.nix:
+
+        hardware.sane = {
+          enable = true;
+          extraBackends = [ pkgs.utsushi ];
+        };
+        services.udev.packages = [ pkgs.utsushi ];
+
+        Supported hardware: 
+        - DS-40
+        - DS-70
+        - DS-80W
+        - DS-410
+        - DS-510
+        - DS-520
+        - DS-530
+        - DS-535
+        - DS-535H
+        - DS-560
+        - DS-575W
+        - DS-760
+        - DS-775
+        - DS-780N
+        - DS-860
+        - DS-1630
+        - DS-5500
+        - DS-6500
+        - DS-7500
+        - DS-50000
+        - DS-60000
+        - DS-70000
+        - EP-10VA Series
+        - EP-808A Series
+        - EP-978A3 Series
+        - ES-50
+        - ES-55R
+        - ES-60W
+        - ES-65WR
+        - ES-300WR
+        - ES-400
+        - ES-500WR
+        - ES-8500
+        - ET-2500 Series
+        - ET-2550 Series
+        - ET-4500 Series
+        - ET-4550 Series
+        - Expression 1640XL
+        - FF-680W
+        - L220/L360 Series
+        - L365/L366 Series
+        - L380 Series
+        - L455 Series
+        - L565/L566 Series
+        - L655 Series
+        - PX-M840FX
+        - PX-M860F
+        - PX-M884F
+        - PX-M7050 Series
+        - PX-M7050FX Series
+        - WF-4720
+        - WF-6530 Series
+        - WF-6590 Series
+        - WF-8510/8590 Series
+        - WF-R8590 Series
+        - XP-220 Series
+        - XP-230 Series
+        - XP-235 Series
+        - XP-332 335 Series
+        - XP-430 Series
+        - XP-432 435 Series
+        - XP-530 Series
+        - XP-540
+        - XP-630 Series
+        - XP-640
+        - XP-830 Series
+        - XP-960 Series
+      '';
+      license = stdenv.lib.licenses.gpl3Plus;
+  };
+}