diff options
author | Matthew Bauer <mjbauer95@gmail.com> | 2018-06-28 22:08:16 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-06-28 22:08:16 -0400 |
commit | 10be4fab850a5625138c98486901ce30db4d2b27 (patch) | |
tree | 56b13b470cb9711fb85c82e9f8a6d24864d939c3 /pkgs/misc/drivers | |
parent | 69c4a9b4a34c493fa882202a61c4d77b488f9f11 (diff) | |
parent | 4dae72c8797eb9f0bad0579bb4690e51d6545e9e (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.nix | 36 | ||||
-rw-r--r-- | pkgs/misc/drivers/epkowa/firmware_location.patch | 3 |
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); |