diff options
author | github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> | 2023-10-16 12:01:54 +0000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-10-16 12:01:54 +0000 |
commit | de49fc16bcff09e7c42f4ae9a0f571ffa019ebf4 (patch) | |
tree | 2c2532a9142db7cbc2dda2f6891a55a927334cbc /pkgs/misc | |
parent | ae77d35744934bc6aa3591f39de8b492a0d5502e (diff) | |
parent | cb4734193d340444dcfba7081e23bf4bb56776e5 (diff) | |
download | nixpkgs-de49fc16bcff09e7c42f4ae9a0f571ffa019ebf4.tar nixpkgs-de49fc16bcff09e7c42f4ae9a0f571ffa019ebf4.tar.gz nixpkgs-de49fc16bcff09e7c42f4ae9a0f571ffa019ebf4.tar.bz2 nixpkgs-de49fc16bcff09e7c42f4ae9a0f571ffa019ebf4.tar.lz nixpkgs-de49fc16bcff09e7c42f4ae9a0f571ffa019ebf4.tar.xz nixpkgs-de49fc16bcff09e7c42f4ae9a0f571ffa019ebf4.tar.zst nixpkgs-de49fc16bcff09e7c42f4ae9a0f571ffa019ebf4.zip |
Merge staging-next into staging
Diffstat (limited to 'pkgs/misc')
-rw-r--r-- | pkgs/misc/cups/drivers/hl2260d/default.nix | 89 |
1 files changed, 89 insertions, 0 deletions
diff --git a/pkgs/misc/cups/drivers/hl2260d/default.nix b/pkgs/misc/cups/drivers/hl2260d/default.nix new file mode 100644 index 00000000000..9883bd99a31 --- /dev/null +++ b/pkgs/misc/cups/drivers/hl2260d/default.nix @@ -0,0 +1,89 @@ +{ lib, stdenv, fetchurl, cups, dpkg, gnused, makeWrapper, ghostscript, coreutils, perl, gnugrep, which +, debugLvl ? "0" +}: + +let + version = "3.2.0-1"; + lprdeb = fetchurl { + url = "https://download.brother.com/welcome/dlf102692/hl2260dlpr-${version}.i386.deb"; + hash = "sha256-R+cM2SKc/MP6keo3PUrKXPC6a2dEQQdBunrpNtAHlH0="; + }; + + cupsdeb = fetchurl { + url = "https://download.brother.com/welcome/dlf102693/hl2260dcupswrapper-${version}.i386.deb"; + hash = "sha256-k6+ulZVoFTpEY6WJ9TO9Rzp2c4dwPqL3NY5/XYJpvOc="; + }; +in +stdenv.mkDerivation { + pname = "cups-brother-hl2260d"; + inherit version; + + nativeBuildInputs = [ makeWrapper dpkg ]; + buildInputs = [ cups ghostscript perl ]; + + dontPatchELF = true; + dontBuild = true; + + unpackPhase = '' + mkdir -p $out + dpkg-deb -x ${cupsdeb} $out + dpkg-deb -x ${lprdeb} $out + ''; + + patchPhase = '' + # Patch lpr + INFDIR=$out/opt/brother/Printers/HL2260D/inf + LPDDIR=$out/opt/brother/Printers/HL2260D/lpd + + substituteInPlace $LPDDIR/filter_HL2260D \ + --replace "BR_PRT_PATH =~" "BR_PRT_PATH = \"$out/opt/brother/Printers/HL2260D\"; #" \ + --replace "PRINTER =~" "PRINTER = \"HL2260D\"; #" + + patchelf --set-interpreter $(cat $NIX_CC/nix-support/dynamic-linker) \ + $INFDIR/braddprinter + patchelf --set-interpreter $(cat $NIX_CC/nix-support/dynamic-linker) \ + $LPDDIR/brprintconflsr3 + patchelf --set-interpreter $(cat $NIX_CC/nix-support/dynamic-linker) \ + $LPDDIR/rawtobr3 + + # Patch cupswrapper + WRAPPER=$out/opt/brother/Printers/HL2260D/cupswrapper/brother_lpdwrapper_HL2260D + PAPER_CFG=$out/opt/brother/Printers/HL2260D/cupswrapper/paperconfigml1 + + substituteInPlace $WRAPPER \ + --replace "basedir =~" "basedir = \"$out/opt/brother/Printers/HL2260D\"; #" \ + --replace "PRINTER =~" "PRINTER = \"HL2260D\"; #" \ + --replace "\$DEBUG=0;" "\$DEBUG=${debugLvl};" + substituteInPlace $WRAPPER \ + --replace "\`cp " "\`cp -p " \ + --replace "\$TEMPRC\`" "\$TEMPRC; chmod a+rw \$TEMPRC\`" \ + --replace "\`mv " "\`cp -p " + # This config script make this assumption that the *.ppd are found in a global location `/etc/cups/ppd`. + substituteInPlace $PAPER_CFG \ + --replace "/etc/cups/ppd" "$out/share/cups/model" + ''; + + installPhase = '' + mkdir -p $out/share/cups/model + ln -s $out/opt/brother/Printers/HL2260D/cupswrapper/brother-HL2260D-cups-en.ppd $out/share/cups/model + + mkdir -p $out/lib/cups/filter/ + makeWrapper \ + $out/opt/brother/Printers/HL2260D/cupswrapper/brother_lpdwrapper_HL2260D \ + $out/lib/cups/filter/brother_lpdwrapper_HL2260D \ + --prefix PATH : ${lib.makeBinPath [coreutils gnugrep gnused]} + + wrapProgram $out/opt/brother/Printers/HL2260D/lpd/filter_HL2260D \ + --prefix PATH ":" ${ lib.makeBinPath [ ghostscript which ] } + ''; + + meta = with lib; { + homepage = "http://www.brother.com/"; + description = "Brother HL-2260D printer driver"; + sourceProvenance = with sourceTypes; [ binaryNativeCode ]; + license = licenses.unfree; + platforms = [ "x86_64-linux" "i686-linux" ]; + downloadPage = "https://support.brother.com/g/b/downloadtop.aspx?c=cn_ot&lang=en&prod=hl2260d_cn"; + maintainers = with maintainers; [ u2x1 ]; + }; +} |