cups-brother-dcpt725dw: init at 3.5.0-1

This commit is contained in:
u2x1 2024-09-18 01:03:05 +08:00
parent 067751f9e8
commit df86bea46f

View File

@ -0,0 +1,113 @@
{
stdenv,
lib,
fetchurl,
perl,
ghostscript,
coreutils,
gnugrep,
which,
file,
gnused,
dpkg,
makeWrapper,
libredirect,
debugLvl ? "0",
}:
stdenv.mkDerivation rec {
pname = "cups-brother-dcpt725dw";
version = "3.5.0-1";
src = fetchurl {
url = "https://download.brother.com/welcome/dlf105181/dcpt725dwpdrv-${version}.i386.deb";
hash = "sha256-fK6RHaW/ej1nFgSaTbzWxVgjIW32YTbJbd1xD37ZE7c=";
};
nativeBuildInputs = [
dpkg
makeWrapper
];
buildInputs = [ perl ];
dontUnpack = true;
installPhase = ''
runHook preInstall
mkdir -p $out
dpkg-deb -x $src $out
LPDDIR=$out/opt/brother/Printers/dcpt725dw/lpd
WRAPPER=$out/opt/brother/Printers/dcpt725dw/cupswrapper/brother_lpdwrapper_dcpt725dw
ln -s $LPDDIR/${stdenv.hostPlatform.linuxArch}/* $LPDDIR/
substituteInPlace $WRAPPER \
--replace-fail "PRINTER =~" "PRINTER = \"dcpt725dw\"; #" \
--replace-fail "basedir =~" "basedir = \"$out/opt/brother/Printers/dcpt725dw/\"; #" \
--replace-fail "lpdconf = " "lpdconf = \$lpddir.'/'.\$LPDCONFIGEXE.\$PRINTER; #" \
--replace-fail "\$DEBUG=0;" "\$DEBUG=${debugLvl};"
substituteInPlace $LPDDIR/filter_dcpt725dw \
--replace-fail "BR_PRT_PATH =~" "BR_PRT_PATH = \"$out/opt/brother/Printers/dcpt725dw/\"; #" \
--replace-fail "PRINTER =~" "PRINTER = \"dcpt725dw\"; #"
wrapProgram $WRAPPER \
--prefix PATH : ${
lib.makeBinPath [
coreutils
gnugrep
gnused
]
}
wrapProgram $LPDDIR/filter_dcpt725dw \
--prefix PATH : ${
lib.makeBinPath [
coreutils
ghostscript
gnugrep
gnused
which
file
]
}
patchelf --set-interpreter $(cat $NIX_CC/nix-support/dynamic-linker) \
$LPDDIR/brdcpt725dwfilter
patchelf --set-interpreter $(cat $NIX_CC/nix-support/dynamic-linker) \
$LPDDIR/brprintconf_dcpt725dw
wrapProgram $LPDDIR/brprintconf_dcpt725dw \
--set LD_PRELOAD "${libredirect}/lib/libredirect.so" \
--set NIX_REDIRECTS /opt=$out/opt
wrapProgram $LPDDIR/brdcpt725dwfilter \
--set LD_PRELOAD "${libredirect}/lib/libredirect.so" \
--set NIX_REDIRECTS /opt=$out/opt
mkdir -p "$out/lib/cups/filter" "$out/share/cups/model"
ln -s $out/opt/brother/Printers/dcpt725dw/cupswrapper/brother_lpdwrapper_dcpt725dw \
$out/lib/cups/filter/brother_lpdwrapper_dcpt725dw
ln -s "$out/opt/brother/Printers/dcpt725dw/cupswrapper/brother_dcpt725dw_printer_en.ppd" \
"$out/share/cups/model/"
runHook postInstall
'';
meta = with lib; {
description = "Brother DCP-T725DW printer driver";
license = licenses.unfree;
sourceProvenance = with sourceTypes; [ binaryNativeCode ];
maintainers = with maintainers; [ u2x1 ];
platforms = [
"x86_64-linux"
"i686-linux"
];
downloadPage = "https://support.brother.com/g/b/downloadtop.aspx?c=cn_ot&lang=en&prod=dcpt725dw_cn";
homepage = "http://www.brother.com/";
};
}