about summary refs log tree commit diff
path: root/nixpkgs/pkgs/by-name/le/lexmark-aex/package.nix
diff options
context:
space:
mode:
Diffstat (limited to 'nixpkgs/pkgs/by-name/le/lexmark-aex/package.nix')
-rw-r--r--nixpkgs/pkgs/by-name/le/lexmark-aex/package.nix78
1 files changed, 78 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/by-name/le/lexmark-aex/package.nix b/nixpkgs/pkgs/by-name/le/lexmark-aex/package.nix
new file mode 100644
index 000000000000..cfb02f70d6f3
--- /dev/null
+++ b/nixpkgs/pkgs/by-name/le/lexmark-aex/package.nix
@@ -0,0 +1,78 @@
+{ lib
+, stdenv
+, cups
+, fetchurl
+, patchPpdFilesHook
+, autoPatchelfHook
+, dpkg
+, perl
+, avahi
+}:
+
+stdenv.mkDerivation {
+  pname = "lexmark-aex";
+  version = "1.0";
+
+  dontPatchELF = true;
+  dontStrip = true;
+
+  src = fetchurl {
+    url = "https://downloads.lexmark.com/downloads/drivers/Lexmark-AEX-PPD-Files-1.0-01242019.amd64.deb";
+    hash = "sha256-igrJEeFLArGbncOwk/WttnWfPjOokD0/IzpJ4VSOtHk=";
+  };
+
+  strictDeps = true;
+
+  nativeBuildInputs = [
+    autoPatchelfHook
+    patchPpdFilesHook
+    dpkg
+  ];
+
+  buildInputs = [
+    # Needed for autoPatchelfHook.
+    avahi
+    cups
+    # Needed for patchShebangs.
+    perl
+  ];
+
+  # Needed for autoPatchelfHook.
+  runtimeDependencies = [ (lib.getLib cups) ];
+
+  ppdFileCommands = [ "CommandFileFilterG2" "rerouteprintoption" ];
+
+  installPhase = let
+    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 ''
+    runHook preInstall
+
+    prefix=usr/local/Lexmark/ppd/Lexmark-AEX-PPD-Files/GlobalPPD_1.4
+
+    # Install raster image filter.
+    install -Dm755 "$prefix/rerouteprintoption" "$out/lib/cups/filter/rerouteprintoption"
+    patchShebangs "$out/lib/cups/filter/rerouteprintoption"
+
+    # Install additional binary filters.
+    for i in CommandFileFilterG2 LexHBPFilter; do
+      install -Dm755 "$prefix/${libdir}/$i" "$out/lib/cups/filter/$i"
+    done
+
+    # Install PPD.
+    install -Dm 0644 -t "$out/share/cups/model/Lexmark" "$prefix"/*.ppd
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "CUPS drivers for Lexmark B2200 and MB2200 Series printers";
+    homepage = "https://support.lexmark.com/en_xm/drivers-downloads.html";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
+    license = licenses.unfree;
+    maintainers = [ maintainers.tobim ];
+    platforms = [ "x86_64-linux" "i686-linux" ];
+  };
+}