diff --git a/pkgs/misc/drivers/epkowa/default.nix b/pkgs/misc/drivers/epkowa/default.nix index c8c0ecb872e..964618f1fc6 100644 --- a/pkgs/misc/drivers/epkowa/default.nix +++ b/pkgs/misc/drivers/epkowa/default.nix @@ -153,6 +153,39 @@ let plugins = { meta = common_meta // { description = "iscan esci s80 plugin for "+passthru.hw; }; }; + s650 = stdenv.mkDerivation rec { + name = "iscan-gt-s650-bundle"; + version = "2.30.4"; + + src = fetchurl { + urls = [ + "https://download2.ebz.epson.net/iscan/plugin/gt-s650/rpm/x64/iscan-gt-s650-bundle-${version}.x64.rpm.tar.gz" + "https://web.archive.org/web/https://download2.ebz.epson.net/iscan/plugin/gt-s650/rpm/x64/iscan-gt-s650-bundle-${version}.x64.rpm.tar.gz" + ]; + sha256 = "1ffddf488c5fc1eb39452499951bd13a2dc1971980c0551176076c81af363038"; + }; + + nativeBuildInputs = [ autoPatchelfHook rpm ]; + + installPhase = '' + cd plugins + ${rpm}/bin/rpm2cpio iscan-plugin-gt-s650-*.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 + ''; + + passthru = { + registrationCommand = '' + $registry --add interpreter usb 0x04b8 0x013c "$plugin/lib/esci/libiscan-plugin-gt-s650 $plugin/share/esci/esfw010c.bin" + $registry --add interpreter usb 0x04b8 0x013d "$plugin/lib/esci/libiscan-plugin-gt-s650 $plugin/share/esci/esfw010c.bin" + ''; + hw = "GT-S650, Perfection V19, Perfection V39"; + }; + meta = common_meta // { description = "iscan GT-S650 for "+passthru.hw; }; + }; network = stdenv.mkDerivation rec { pname = "iscan-nt-bundle"; # for the version, look for the driver of XP-750 in the search page diff --git a/pkgs/misc/drivers/epkowa/firmware_location.patch b/pkgs/misc/drivers/epkowa/firmware_location.patch index 58ea849d8f9..0f723a4ff9d 100644 --- a/pkgs/misc/drivers/epkowa/firmware_location.patch +++ b/pkgs/misc/drivers/epkowa/firmware_location.patch @@ -8,12 +8,13 @@ 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,9 @@ +@@ -169,6 +169,10 @@ { SANE_Status s; + setenv("ESCI_FIRMWARE_DIR", NIX_ESCI_PREFIX, 1); + setenv("ISCAN_FW_DIR", NIX_ESCI_PREFIX, 1); ++ setenv("ISCAN_FIRMWARE_DIR", NIX_ESCI_PREFIX, 1); + s = sanei_usb_open (self->name, &self->fd);