summary refs log tree commit diff
path: root/pkgs/misc/cups
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/misc/cups')
-rw-r--r--pkgs/misc/cups/drivers/brother/dcp9020cdw/default.nix99
-rw-r--r--pkgs/misc/cups/filters.nix11
2 files changed, 105 insertions, 5 deletions
diff --git a/pkgs/misc/cups/drivers/brother/dcp9020cdw/default.nix b/pkgs/misc/cups/drivers/brother/dcp9020cdw/default.nix
new file mode 100644
index 00000000000..0ecbbd8b55e
--- /dev/null
+++ b/pkgs/misc/cups/drivers/brother/dcp9020cdw/default.nix
@@ -0,0 +1,99 @@
+{ lib
+, stdenv
+, fetchurl
+, cups
+, dpkg
+, gnused
+, makeWrapper
+, ghostscript
+, file
+, a2ps
+, coreutils
+, gnugrep
+, which
+, gawk
+}:
+
+let
+  version = "1.1.2";
+  model = "dcp9020cdw";
+in
+rec {
+  driver = stdenv.mkDerivation {
+    pname = "${model}-lpr";
+    inherit version;
+
+    src = fetchurl {
+      url = "https://download.brother.com/welcome/dlf100441/dcp9020cdwlpr-${version}-1.i386.deb";
+      sha256 = "1z6nma489s0a0b0a8wyg38yxanz4k99dg29fyjs4jlprsvmwk56y";
+    };
+
+    nativeBuildInputs = [ dpkg makeWrapper ];
+    buildInputs = [ cups ghostscript a2ps gawk ];
+    unpackPhase = "dpkg-deb -x $src $out";
+
+    installPhase = ''
+      substituteInPlace $out/opt/brother/Printers/${model}/lpd/filter${model} \
+      --replace /opt "$out/opt"
+
+      patchelf --set-interpreter $(cat $NIX_CC/nix-support/dynamic-linker) \
+      $out/opt/brother/Printers/${model}/lpd/br${model}filter
+
+      mkdir -p $out/lib/cups/filter/
+      ln -s $out/opt/brother/Printers/${model}/lpd/filter${model} $out/lib/cups/filter/brother_lpdwrapper_${model}
+
+      wrapProgram $out/opt/brother/Printers/${model}/lpd/filter${model} \
+        --prefix PATH ":" ${lib.makeBinPath [
+          gawk
+          ghostscript
+          a2ps
+          file
+          gnused
+          gnugrep
+          coreutils
+          which
+        ]}
+    '';
+
+    meta = with lib; {
+      homepage = "http://www.brother.com/";
+      description = "Brother ${model} printer driver";
+      license = licenses.unfree;
+      platforms = platforms.linux;
+      downloadPage = "https://support.brother.com/g/b/downloadlist.aspx?c=gb&lang=en&prod=${model}_eu&os=128";
+      maintainers = with maintainers; [ pshirshov ];
+    };
+  };
+
+  cupswrapper = stdenv.mkDerivation {
+    pname = "${model}-cupswrapper";
+    inherit version;
+
+    src = fetchurl {
+      url = "https://download.brother.com/welcome/dlf100443/dcp9020cdwcupswrapper-${version}-1.i386.deb";
+      sha256 = "04yqm1qv9p4hgp1p6mqq4siygl4056s6flv6kqln8mvmcr8zaq1s";
+    };
+
+    nativeBuildInputs = [ dpkg makeWrapper ];
+    buildInputs = [ cups ghostscript a2ps gawk ];
+    unpackPhase = "dpkg-deb -x $src $out";
+
+    installPhase = ''
+      for f in $out/opt/brother/Printers/${model}/cupswrapper/cupswrapper${model}; do
+        wrapProgram $f --prefix PATH : ${lib.makeBinPath [ coreutils ghostscript gnugrep gnused ]}
+      done
+
+      mkdir -p $out/share/cups/model
+      ln -s $out/opt/brother/Printers/${model}/cupswrapper/brother_${model}_printer_en.ppd $out/share/cups/model/
+    '';
+
+    meta = with lib; {
+      homepage = "http://www.brother.com/";
+      description = "Brother ${model} printer CUPS wrapper driver";
+      license = licenses.unfree;
+      platforms = platforms.linux;
+      downloadPage = "https://support.brother.com/g/b/downloadlist.aspx?c=gb&lang=en&prod=${model}_eu&os=128";
+      maintainers = with maintainers; [ pshirshov ];
+    };
+  };
+}
diff --git a/pkgs/misc/cups/filters.nix b/pkgs/misc/cups/filters.nix
index 8b1e7fe8fc7..911892cb728 100644
--- a/pkgs/misc/cups/filters.nix
+++ b/pkgs/misc/cups/filters.nix
@@ -1,7 +1,7 @@
 { lib, stdenv, fetchurl, pkg-config, cups, poppler, poppler_utils, fontconfig
 , libjpeg, libpng, perl, ijs, qpdf, dbus, avahi
 , makeWrapper, coreutils, gnused, bc, gawk, gnugrep, which, ghostscript
-, mupdf
+, mupdf, dejavu_fonts, liblouis
 }:
 
 let
@@ -9,11 +9,11 @@ let
 
 in stdenv.mkDerivation rec {
   pname = "cups-filters";
-  version = "1.25.12";
+  version = "1.28.10";
 
   src = fetchurl {
     url = "https://openprinting.org/download/cups-filters/${pname}-${version}.tar.xz";
-    sha256 = "1kv25011iyzvd33n5zmmn1z2p6pzk26hmmw6qvjjnx8p3sp7raqn";
+    sha256 = "sha256-z4yQRpTETPaJtXJORtI9qa5RJdVDdLNAxkIHfMKcqDc=";
   };
 
   nativeBuildInputs = [ pkg-config makeWrapper ];
@@ -21,6 +21,7 @@ in stdenv.mkDerivation rec {
   buildInputs = [
     cups poppler poppler_utils fontconfig libjpeg libpng perl
     ijs qpdf dbus avahi ghostscript mupdf
+    liblouis # braille embosser support
   ];
 
   configureFlags = [
@@ -33,7 +34,7 @@ in stdenv.mkDerivation rec {
     "--enable-imagefilters"
     "--with-rcdir=no"
     "--with-shell=${stdenv.shell}"
-    "--with-test-font-path=/path-does-not-exist"
+    "--with-test-font-path=${dejavu_fonts}/share/fonts/truetype/DejaVuSans.ttf"
   ];
 
   makeFlags = [ "CUPS_SERVERBIN=$(out)/lib/cups" "CUPS_DATADIR=$(out)/share/cups" "CUPS_SERVERROOT=$(out)/etc/cups" ];
@@ -60,7 +61,7 @@ in stdenv.mkDerivation rec {
     '';
 
   enableParallelBuilding = true;
-  doCheck = false; # fails 4 out of 6 tests
+  doCheck = true;
 
   meta = {
     homepage = "http://www.linuxfoundation.org/collaborate/workgroups/openprinting/cups-filters";