From 458a59cd6d1486fc8ea6e9138975434a42656a7c Mon Sep 17 00:00:00 2001 From: LavaDesu Date: Tue, 14 Mar 2023 17:45:22 +0700 Subject: [PATCH] hosts/hyacinth: init printing --- hosts/hyacinth/default.nix | 2 + packages/default.nix | 1 + packages/epson-201112j/default.nix | 75 ++++++++++++++++++++++++++++++ 3 files changed, 78 insertions(+) create mode 100644 packages/epson-201112j/default.nix diff --git a/hosts/hyacinth/default.nix b/hosts/hyacinth/default.nix index 2ff4aa7..f0f491b 100644 --- a/hosts/hyacinth/default.nix +++ b/hosts/hyacinth/default.nix @@ -51,4 +51,6 @@ services.flatpak.enable = true; xdg.portal.enable = true; xdg.portal.extraPortals = [ pkgs.xdg-desktop-portal-gtk ]; + services.printing.enable = true; + services.printing.drivers = [ pkgs.epson-escpr pkgs.me.epson-201112j ]; } diff --git a/packages/default.nix b/packages/default.nix index 03498eb..da90b36 100644 --- a/packages/default.nix +++ b/packages/default.nix @@ -4,6 +4,7 @@ }: rec { discord-tokyonight = callPackage ./discord-tokyonight { inherit inputs; }; discover-overlay = callPackage ./discover { inherit inputs; }; + epson-201112j = callPackage ./epson-201112j { }; linux-lava = callPackage ./linux-lava { inherit inputs; }; nvim-treesitter-nightly = callPackage ./nvim-treesitter-nightly { inherit inputs; }; packwiz = callPackage ./packwiz { inherit inputs; }; diff --git a/packages/epson-201112j/default.nix b/packages/epson-201112j/default.nix new file mode 100644 index 0000000..6424a46 --- /dev/null +++ b/packages/epson-201112j/default.nix @@ -0,0 +1,75 @@ +{ lib, stdenv, fetchurl, rpmextract, autoreconfHook, file, libjpeg, cups }: + +let + version = "1.0.0"; + filterVersion = "1.0.0"; +in + stdenv.mkDerivation { + pname = "epson-201112j"; + inherit version; + + src = fetchurl { + # NOTE: Don't forget to update the webarchive link too! + urls = [ + "http://download.ebz.epson.net/dsc/f/01/00/01/68/36/cbf6cf36263b5a6c4f370266f2479556cd665d7c/epson-inkjet-printer-201112j-${version}-1lsb3.2.src.rpm" + ]; + + sha256 = "sha256-+n5QQDMgEjKYFlH62bVAZRtr0GjyG8yDahPquOjIZWA="; + }; + + nativeBuildInputs = [ rpmextract autoreconfHook file ]; + + buildInputs = [ libjpeg cups ]; + + unpackPhase = '' + rpmextract $src + tar -zxf epson-inkjet-printer-201112j-${version}.tar.gz + tar -zxf epson-inkjet-printer-filter-${filterVersion}.tar.gz + for ppd in epson-inkjet-printer-201112j-${version}/ppds/*; do + substituteInPlace $ppd --replace "/opt/epson-inkjet-printer-201112j" "$out" + substituteInPlace $ppd --replace "/cups/lib" "/lib/cups" + done + cd epson-inkjet-printer-filter-${filterVersion} + ''; + + preConfigure = '' + chmod +x configure + export LDFLAGS="$LDFLAGS -Wl,--no-as-needed" + ''; + + postInstall = '' + cd ../epson-inkjet-printer-201112j-${version} + cp -a lib64 resource watermark $out + mkdir -p $out/share/cups/model/epson-inkjet-printer-201112j + cp -a ppds $out/share/cups/model/epson-inkjet-printer-201112j/ + cp -a Manual.txt $out/doc/ + cp -a README $out/doc/README.driver + ''; + + meta = with lib; { + homepage = "https://www.openprinting.org/driver/epson-201112j"; + description = "Epson printer driver (BX535WD, BX630FW, BX635FWD, ME940FW, NX530, NX635, NX635, SX535WD, WorkForce 545, WorkForce 645"; + longDescription = '' + This software is a filter program used with the Common UNIX Printing + System (CUPS) under Linux. It supplies high quality printing with + Seiko Epson Color Ink Jet Printers. + List of printers supported by this package: + Epson BX535WD Series + Epson BX630FW Series + Epson BX635FWD Series + Epson ME940FW Series + Epson NX530 Series + Epson SX535WD Series + Epson WorkForce 545 Series + Epson WorkForce 645 Series + To use the driver adjust your configuration.nix file: + services.printing = { + enable = true; + drivers = [ pkgs.epson-201112j ]; + }; + ''; + license = with licenses; [ lgpl21 epson ]; + platforms = platforms.linux; + maintainers = []; + }; + }