From ca45050d2e7e1e88b58aab3dbb5ece6f3337da6e Mon Sep 17 00:00:00 2001 From: Johannes Rosenberger Date: Sat, 20 Oct 2018 16:36:02 +0200 Subject: [PATCH 1/4] epson-workforce-635-nx625-series: init at 1.0.1 --- maintainers/maintainer-list.nix | 5 + .../default.nix | 98 +++++++++++++++++++ 2 files changed, 103 insertions(+) create mode 100644 pkgs/misc/drivers/epson-workforce-635-nx625-series/default.nix diff --git a/maintainers/maintainer-list.nix b/maintainers/maintainer-list.nix index e60280f30ebe..d2736de0a03e 100644 --- a/maintainers/maintainer-list.nix +++ b/maintainers/maintainer-list.nix @@ -2060,6 +2060,11 @@ github = "joncojonathan"; name = "Jonathan Haddock"; }; + jorsn = { + name = "Johannes Rosenberger"; + email = "johannes@jorsn.eu"; + github = "jorsn"; + }; jpdoyle = { email = "joethedoyle@gmail.com"; github = "jpdoyle"; diff --git a/pkgs/misc/drivers/epson-workforce-635-nx625-series/default.nix b/pkgs/misc/drivers/epson-workforce-635-nx625-series/default.nix new file mode 100644 index 000000000000..654cb5537751 --- /dev/null +++ b/pkgs/misc/drivers/epson-workforce-635-nx625-series/default.nix @@ -0,0 +1,98 @@ +{ + autoreconfHook, cups, gzip, libjpeg, rpmextract, + fetchurl, lib, stdenv +}: + +let + srcdirs = { + filter = "epson-inkjet-printer-filter-1.0.0"; + driver = "epson-inkjet-printer-workforce-635-nx625-series-1.0.1"; + }; +in stdenv.mkDerivation rec { + name = "epson-inkjet-printer-workforce-635-nx625-series"; + version = "1.0.1"; + + src = builtins.fetchurl { + url = "https://download.ebz.epson.net/dsc/op/stable/SRPMS/${name}-${version}-1lsb3.2.src.rpm"; + sha256 = "19nb2h0y9rvv6rg7j262f8sqap9kjvz8kmisxnjg1w0v19zb9zf2"; + }; + sourceRoot = srcdirs.filter; + + nativeBuildInputs = [ autoreconfHook gzip rpmextract ]; + buildInputs = [ cups libjpeg ]; + + unpackPhase = '' + rpmextract "$src" + for i in ${lib.concatStringsSep " " (builtins.attrValues srcdirs)}; do + tar xvf "$i".tar.gz + done + ''; + + preConfigure = '' + chmod u+x configure + ''; + + installPhase = + let + filterdir = "$out/cups/lib/filter"; + docdir = "$out/share/doc"; + ppddir = "$out/share/cups/model/${name}"; + libdir = + if stdenv.system == "x86_64-linux" then "lib64" + else if stdenv.system == "i686_linux" then "lib" + else throw "other platforms than i686_linux and x86_64-linux are not yet supported"; + in '' + mkdir -p "$out" "${docdir}" "${filterdir}" "${ppddir}" + cp src/epson_inkjet_printer_filter "${filterdir}" + + cd ../${srcdirs.driver} + for ppd in ppds/*; do + substituteInPlace "$ppd" --replace '/opt/${name}' "$out" + gzip -c "$ppd" > "${ppddir}/''${ppd#*/}" + done + cp COPYING.EPSON README "${docdir}" + cp -r resource watermark ${libdir} "$out" + ''; + + meta = { + description = "Proprietary CUPS drivers for Epson inkjet printers"; + longDescription = '' + This software is a filter program used with Common UNIX Printing + System (CUPS) from the Linux. This can supply the high quality print + with Seiko Epson Color Ink Jet Printers. + + This printer driver is supporting the following printers. + + WorkForce 60 + WorkForce 625 + WorkForce 630 + WorkForce 633 + WorkForce 635 + WorkForce T42WD + Epson Stylus NX625 + Epson Stylus SX525WD + Epson Stylus SX620FW + Epson Stylus TX560WD + Epson Stylus Office B42WD + Epson Stylus Office BX525WD + Epson Stylus Office BX625FWD + Epson Stylus Office TX620FWD + Epson ME OFFICE 82WD + Epson ME OFFICE 85ND + Epson ME OFFICE 900WD + Epson ME OFFICE 960FWD + + License: LGPL and SEIKO EPSON CORPORATION SOFTWARE LICENSE AGREEMENT + + To use the driver adjust your configuration.nix file: + services.printing = { + enable = true; + drivers = [ pkgs.${name} ]; + }; + ''; + downloadPage = https://download.ebz.epson.net/dsc/du/02/DriverDownloadInfo.do?LG2=EN&CN2=&DSCMI=16857&DSCCHK=4334d3487503d7f916ccf5d58071b05b7687294f; + license = with licenses; [ lgpl21 epson ]; + maintainers = [ maintainers.jorsn ]; + platforms = [ "x86_64-linux" "i686-linux" ]; + }; +} From defd5087cd6eae62faa40d70030cfd251d1437d9 Mon Sep 17 00:00:00 2001 From: Johannes Rosenberger Date: Sat, 20 Oct 2018 17:05:19 +0200 Subject: [PATCH 2/4] epson-workforce-635-nx625-series: added to all-packages.nix --- pkgs/top-level/all-packages.nix | 2 ++ 1 file changed, 2 insertions(+) diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index dde941348c6b..6c121c6a76b9 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -21726,6 +21726,8 @@ with pkgs; epson_201207w = callPackage ../misc/drivers/epson_201207w { }; + epson-workforce-635-nx625-series = callPackage ../misc/drivers/epson-workforce-635-nx625-series { }; + gutenprint = callPackage ../misc/drivers/gutenprint { }; gutenprintBin = callPackage ../misc/drivers/gutenprint/bin.nix { }; From 238e9530f95d49fbf1d36c04ea9a0c519d6dd618 Mon Sep 17 00:00:00 2001 From: Johannes Rosenberger Date: Sat, 20 Oct 2018 17:20:56 +0200 Subject: [PATCH 3/4] epson-workforce-635-nx625-series: fixed build errors variables `maintainers` and `licenses` were invisible, leading to build errors; fixed this. --- .../misc/drivers/epson-workforce-635-nx625-series/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/misc/drivers/epson-workforce-635-nx625-series/default.nix b/pkgs/misc/drivers/epson-workforce-635-nx625-series/default.nix index 654cb5537751..9b21645c0179 100644 --- a/pkgs/misc/drivers/epson-workforce-635-nx625-series/default.nix +++ b/pkgs/misc/drivers/epson-workforce-635-nx625-series/default.nix @@ -91,8 +91,8 @@ in stdenv.mkDerivation rec { }; ''; downloadPage = https://download.ebz.epson.net/dsc/du/02/DriverDownloadInfo.do?LG2=EN&CN2=&DSCMI=16857&DSCCHK=4334d3487503d7f916ccf5d58071b05b7687294f; - license = with licenses; [ lgpl21 epson ]; - maintainers = [ maintainers.jorsn ]; + license = with lib.licenses; [ lgpl21 epson ]; + maintainers = [ lib.maintainers.jorsn ]; platforms = [ "x86_64-linux" "i686-linux" ]; }; } From e0809da91bae49b8bb560eaffc2b9e906c1a69b4 Mon Sep 17 00:00:00 2001 From: Johannes Rosenberger Date: Mon, 22 Oct 2018 00:05:26 +0200 Subject: [PATCH 4/4] epson-workforce-635-nx625-series: use lib.fetchurl builtins.fetchurl (was used) cannot access uris not in `allowed-uris` when built in restricted mode (like ofborg does) --- pkgs/misc/drivers/epson-workforce-635-nx625-series/default.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/misc/drivers/epson-workforce-635-nx625-series/default.nix b/pkgs/misc/drivers/epson-workforce-635-nx625-series/default.nix index 9b21645c0179..15a7ba3cd3c4 100644 --- a/pkgs/misc/drivers/epson-workforce-635-nx625-series/default.nix +++ b/pkgs/misc/drivers/epson-workforce-635-nx625-series/default.nix @@ -12,7 +12,7 @@ in stdenv.mkDerivation rec { name = "epson-inkjet-printer-workforce-635-nx625-series"; version = "1.0.1"; - src = builtins.fetchurl { + src = fetchurl { url = "https://download.ebz.epson.net/dsc/op/stable/SRPMS/${name}-${version}-1lsb3.2.src.rpm"; sha256 = "19nb2h0y9rvv6rg7j262f8sqap9kjvz8kmisxnjg1w0v19zb9zf2"; };