about summary refs log tree commit diff
path: root/pkgs/misc/drivers
diff options
context:
space:
mode:
authorMatthew Bauer <mjbauer95@gmail.com>2018-06-28 22:08:16 -0400
committerGitHub <noreply@github.com>2018-06-28 22:08:16 -0400
commit10be4fab850a5625138c98486901ce30db4d2b27 (patch)
tree56b13b470cb9711fb85c82e9f8a6d24864d939c3 /pkgs/misc/drivers
parent69c4a9b4a34c493fa882202a61c4d77b488f9f11 (diff)
parent4dae72c8797eb9f0bad0579bb4690e51d6545e9e (diff)
Merge pull request #42436 from mredaelli/epsonv500
epkowa: added Perfection V500 support
Diffstat (limited to 'pkgs/misc/drivers')
-rw-r--r--pkgs/misc/drivers/epkowa/default.nix36
-rw-r--r--pkgs/misc/drivers/epkowa/firmware_location.patch3
2 files changed, 36 insertions, 3 deletions
diff --git a/pkgs/misc/drivers/epkowa/default.nix b/pkgs/misc/drivers/epkowa/default.nix
index 1c79be712b064..ca7ac4b415283 100644
--- a/pkgs/misc/drivers/epkowa/default.nix
+++ b/pkgs/misc/drivers/epkowa/default.nix
@@ -6,7 +6,7 @@ libxslt,
 libusb,
 sane-backends,
 rpm, cpio,
-eject,
+getopt,
 patchelf, gcc
 }:
 
@@ -25,6 +25,38 @@ in
 # adding a plugin for another printer shouldn't be too difficult, but you need the firmware to test...
 
 let plugins = {
+  x770 =   stdenv.mkDerivation rec {
+    name = "iscan-gt-x770-bundle";
+    version = "1.0.1";
+    pluginVersion = "2.1.2-1";
+
+    buildInputs = [ patchelf rpm ];
+    src = fetchurl {
+      url = "https://download2.ebz.epson.net/iscan/plugin/gt-x770/rpm/x64/iscan-gt-x770-bundle-${version}.x64.rpm.tar.gz";
+      sha256 = "0m9c60rszzdvq1pqfzygzzrjycm1giy465lj29108j7hsnfcv56r";
+    };
+    installPhase = ''
+      cd plugins
+      ${rpm}/bin/rpm2cpio iscan-plugin-gt-x770-${pluginVersion}.x86_64.rpm | ${cpio}/bin/cpio -idmv
+      mkdir $out
+      cp -r usr/share $out
+      cp -r usr/lib64 $out/lib
+      mv $out/share/iscan $out/share/esci
+      mv $out/lib/iscan $out/lib/esci
+      '';
+    preFixup = ''
+      lib=$out/lib/esci/libesint7C.so
+      rpath=${gcc.cc.lib}/lib/
+      patchelf --set-rpath $rpath $lib
+      '';
+    passthru = {
+      registrationCommand = ''
+        $registry --add interpreter usb 0x04b8 0x0130 "$plugin/lib/esci/libesint7C $plugin/share/esci/esfw7C.bin"
+        '';
+      hw = "Perfection V500 Photo";
+      };
+    meta = common_meta // { description = "iscan esci x770 plugin for "+passthru.hw; };
+    };
   f720 = stdenv.mkDerivation rec {
     name = "iscan-gt-f720-bundle";
     version = "1.0.1";
@@ -124,7 +156,7 @@ stdenv.mkDerivation rec {
     '';
   postFixup = ''
     # iscan-registry is a shell script requiring getopt
-    wrapProgram $out/bin/iscan-registry --prefix PATH : ${eject}/bin
+    wrapProgram $out/bin/iscan-registry --prefix PATH : ${getopt}/bin
     registry=$out/bin/iscan-registry;
     '' +
     stdenv.lib.concatStrings (stdenv.lib.mapAttrsToList (name: value: ''
diff --git a/pkgs/misc/drivers/epkowa/firmware_location.patch b/pkgs/misc/drivers/epkowa/firmware_location.patch
index 7f67d9cf4579b..58ea849d8f9d9 100644
--- a/pkgs/misc/drivers/epkowa/firmware_location.patch
+++ b/pkgs/misc/drivers/epkowa/firmware_location.patch
@@ -8,11 +8,12 @@ set this environment variable. Instead, we patch iscan to set this variable
 before loading libesci-interpreter-gt-f720.so.
 --- backend/channel-usb.c.orig	2017-08-14 11:24:27.669582456 +0200
 +++ backend/channel-usb.c	2017-08-14 11:31:40.509010897 +0200
-@@ -169,6 +169,8 @@
+@@ -169,6 +169,9 @@
  {
    SANE_Status s;
  
 +  setenv("ESCI_FIRMWARE_DIR", NIX_ESCI_PREFIX, 1);
++  setenv("ISCAN_FW_DIR", NIX_ESCI_PREFIX, 1);
 +
    s = sanei_usb_open (self->name, &self->fd);