3
0
Fork 0
forked from mirrors/nixpkgs

Merge pull request #14758 from jraygauthier/jrg/brother_printer_fixes_nixos1603_rebased

brgenml1cupswrapper: fix regression and improvements
This commit is contained in:
joachifm 2016-04-16 18:20:52 +02:00
commit 3c11a4c2f7
2 changed files with 38 additions and 18 deletions

View file

@ -1,4 +1,5 @@
{ stdenv, fetchurl, cups, perl, brgenml1lpr, debugLvl ? "0"}: { stdenv, fetchurl, makeWrapper, cups, perl, coreutils, gnused, gnugrep
, brgenml1lpr, debugLvl ? "0"}:
/* /*
[Setup instructions](http://support.brother.com/g/s/id/linux/en/instruction_prn1a.html). [Setup instructions](http://support.brother.com/g/s/id/linux/en/instruction_prn1a.html).
@ -21,14 +22,11 @@
1. > Error: /tmp/brBrGenML1rc_15642 :cannot open file !! 1. > Error: /tmp/brBrGenML1rc_15642 :cannot open file !!
This is a non fatal issue. The job will still be printed. However, not sure Fixed.
what kind of information could be lost.
There should be a more elegant way to patch this.
2. > touch: cannot touch '/tmp/BrGenML1_latest_print_info': Permission denied 2. > touch: cannot touch '/tmp/BrGenML1_latest_print_info': Permission denied
TODO: Address. Fixed.
3. > perl: warning: Falling back to the standard locale ("C"). 3. > perl: warning: Falling back to the standard locale ("C").
@ -40,6 +38,17 @@
perl: warning: Setting locale failed. perl: warning: Setting locale failed.
TODO: Address. TODO: Address.
4. Since nixos 16.03 release, in `brother_lpdwrapper_BrGenML1`:
> sh: grep: command not found
sh: chmod: command not found
sh: cp: command not found
Error: /tmp/brBrGenML1rc_1850 :cannot open file !!
sh: sed: command not found
Fixed by use of a wrapper that brings `coreutils`, `gnused`, `gnugrep`
in `PATH`.
*/ */
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
@ -55,7 +64,10 @@ stdenv.mkDerivation rec {
tar xfvz data.tar.gz tar xfvz data.tar.gz
''; '';
buildInputs = [ cups perl brgenml1lpr ]; nativeBuildInputs = [ makeWrapper ];
buildInputs = [ cups perl coreutils gnused gnugrep brgenml1lpr ];
configurePhase = ":";
buildPhase = ":"; buildPhase = ":";
patchPhase = '' patchPhase = ''
@ -67,7 +79,7 @@ stdenv.mkDerivation rec {
--replace "PRINTER =~" "PRINTER = \"BrGenML1\"; #" \ --replace "PRINTER =~" "PRINTER = \"BrGenML1\"; #" \
--replace "\$DEBUG=0;" "\$DEBUG=${debugLvl};" --replace "\$DEBUG=0;" "\$DEBUG=${debugLvl};"
# Fixing issue #2. # Fixing issue #1 and #2.
substituteInPlace $WRAPPER \ substituteInPlace $WRAPPER \
--replace "\`cp " "\`cp -p " \ --replace "\`cp " "\`cp -p " \
--replace "\$TEMPRC\`" "\$TEMPRC; chmod a+rw \$TEMPRC\`" \ --replace "\$TEMPRC\`" "\$TEMPRC; chmod a+rw \$TEMPRC\`" \
@ -78,22 +90,30 @@ stdenv.mkDerivation rec {
--replace "/etc/cups/ppd" "$out/share/cups/model" --replace "/etc/cups/ppd" "$out/share/cups/model"
''; '';
installPhase = '' installPhase = ''
CUPSFILTER=$out/lib/cups/filter CUPSFILTER_DIR=$out/lib/cups/filter
CUPSPPD=$out/share/cups/model CUPSPPD_DIR=$out/share/cups/model
CUPSWRAPPER_DIR=opt/brother/Printers/BrGenML1/cupswrapper
CUPSWRAPPER=opt/brother/Printers/BrGenML1/cupswrapper mkdir -p $out/$CUPSWRAPPER_DIR
mkdir -p $out/$CUPSWRAPPER cp -rp $CUPSWRAPPER_DIR/* $out/$CUPSWRAPPER_DIR
cp -rp $CUPSWRAPPER/* $out/$CUPSWRAPPER
mkdir -p $CUPSFILTER mkdir -p $CUPSFILTER_DIR
ln -s $out/$CUPSWRAPPER/brother_lpdwrapper_BrGenML1 $CUPSFILTER # Fixing issue #4.
makeWrapper \
$out/$CUPSWRAPPER_DIR/brother_lpdwrapper_BrGenML1 \
$CUPSFILTER_DIR/brother_lpdwrapper_BrGenML1 \
--prefix PATH : ${coreutils}/bin \
--prefix PATH : ${gnused}/bin \
--prefix PATH : ${gnugrep}/bin
mkdir -p $CUPSPPD mkdir -p $CUPSPPD_DIR
ln -s $out/$CUPSWRAPPER/brother-BrGenML1-cups-en.ppd $CUPSPPD ln -s $out/$CUPSWRAPPER_DIR/brother-BrGenML1-cups-en.ppd $CUPSPPD_DIR
''; '';
dontPatchELF = true; dontPatchELF = true;
dontStrip = true;
meta = { meta = {
description = "Brother BrGenML1 CUPS wrapper driver"; description = "Brother BrGenML1 CUPS wrapper driver";

View file

@ -16035,7 +16035,7 @@ in
beep = callPackage ../misc/beep { }; beep = callPackage ../misc/beep { };
brgenml1lpr = callPackage ../misc/cups/drivers/brgenml1lpr {}; brgenml1lpr = callPackage_i686 ../misc/cups/drivers/brgenml1lpr {};
brgenml1cupswrapper = callPackage ../misc/cups/drivers/brgenml1cupswrapper {}; brgenml1cupswrapper = callPackage ../misc/cups/drivers/brgenml1cupswrapper {};