From 3b548dacf4a9ad1969881593f47ddf6c9417e4bc Mon Sep 17 00:00:00 2001 From: Yochai Date: Sat, 17 Sep 2016 18:20:25 +0300 Subject: [PATCH] mfcj470dw: split into mfcj470dwlpr and mfcj470dwcupswrapper --- lib/maintainers.nix | 1 + pkgs/misc/cups/drivers/mfcj470dw/default.nix | 61 ------------------- .../drivers/mfcj470dwcupswrapper/default.nix | 56 +++++++++++++++++ .../cups/drivers/mfcj470dwlpr/default.nix | 45 ++++++++++++++ pkgs/top-level/all-packages.nix | 3 +- 5 files changed, 104 insertions(+), 62 deletions(-) delete mode 100644 pkgs/misc/cups/drivers/mfcj470dw/default.nix create mode 100644 pkgs/misc/cups/drivers/mfcj470dwcupswrapper/default.nix create mode 100644 pkgs/misc/cups/drivers/mfcj470dwlpr/default.nix diff --git a/lib/maintainers.nix b/lib/maintainers.nix index 93d96c04a9a9..0d30903871d0 100644 --- a/lib/maintainers.nix +++ b/lib/maintainers.nix @@ -452,4 +452,5 @@ zohl = "Al Zohali "; zoomulator = "Kim Simmons "; amiloradovsky = "Andrew Miloradovsky "; + yochai = "Yochai "; } diff --git a/pkgs/misc/cups/drivers/mfcj470dw/default.nix b/pkgs/misc/cups/drivers/mfcj470dw/default.nix deleted file mode 100644 index b8458ae0af32..000000000000 --- a/pkgs/misc/cups/drivers/mfcj470dw/default.nix +++ /dev/null @@ -1,61 +0,0 @@ -{ stdenv, fetchurl, cups, dpkg, ghostscript, patchelf, a2ps, coreutils, gnused, gawk, file }: - -stdenv.mkDerivation rec { - name = "mfcj470dw-cupswrapper-${version}"; - version = "3.0.0-1"; - - srcs = - [ (fetchurl { - url = "http://download.brother.com/welcome/dlf006843/mfcj470dwlpr-${version}.i386.deb"; - sha256 = "7202dd895d38d50bb767080f2995ed350eed99bc2b7871452c3c915c8eefc30a"; - }) - (fetchurl { - url = "http://download.brother.com/welcome/dlf006845/mfcj470dwcupswrapper-${version}.i386.deb"; - sha256 = "92af9024e821159eccd78a8925fc77fb92b4f247f2d2c824ca303004077076a7"; - }) - ]; - - buildInputs = [ cups ghostscript dpkg a2ps ]; - - unpackPhase = "true"; - - installPhase = '' - for s in $srcs; do dpkg-deb -x $s $out; done - - substituteInPlace $out/opt/brother/Printers/mfcj470dw/cupswrapper/cupswrappermfcj470dw \ - --replace /opt "$out/opt" \ - --replace /usr "$out/usr" \ - --replace /etc "$out/etc" - - substituteInPlace $out/opt/brother/Printers/mfcj470dw/lpd/filtermfcj470dw \ - --replace /opt "$out/opt" \ - --replace file "${file}/bin/file" \ - --replace sed "${gnused}/bin/sed" \ - --replace mktemp "${coreutils}/bin/mktemp" \ - --replace cat "${coreutils}/bin/cat" \ - --replace rm "${coreutils}/bin/rm" - - sed -i '/GHOST_SCRIPT=/c\GHOST_SCRIPT=gs' $out/opt/brother/Printers/mfcj470dw/lpd/psconvertij2 - substituteInPlace $out/opt/brother/Printers/mfcj470dw/lpd/psconvertij2 \ - --replace awk "${gawk}/bin/awk" \ - --replace cat "${coreutils}/bin/cat" \ - --replace mktemp "${coreutils}/bin/mktemp" \ - --replace sed "${gnused}/bin/sed" \ - --replace expr "${coreutils}/bin/expr" \ - --replace rm "${coreutils}/bin/rm" - - patchelf --set-interpreter ${stdenv.glibc.out}/lib/ld-linux.so.2 $out/opt/brother/Printers/mfcj470dw/lpd/brmfcj470dwfilter - patchelf --set-interpreter ${stdenv.glibc.out}/lib/ld-linux.so.2 $out/opt/brother/Printers/mfcj470dw/cupswrapper/brcupsconfpt1 - - mkdir -p $out/lib/cups/filter/ - ln -s $out/opt/brother/Printers/mfcj470dw/lpd/filtermfcj470dw $out/lib/cups/filter/brother_lpdwrapper_mfcj470dw - ''; - - meta = { - homepage = http://www.brother.com/; - description = "A driver for brother mfcj470dw printers to print over WiFi and USB"; - license = stdenv.lib.licenses.unfree; - platforms = stdenv.lib.platforms.linux; - downloadPage = http://support.brother.com/g/b/downloadlist.aspx?c=us&lang=en&prod=mfcj470dw_us_eu_as&os=128; - }; -} diff --git a/pkgs/misc/cups/drivers/mfcj470dwcupswrapper/default.nix b/pkgs/misc/cups/drivers/mfcj470dwcupswrapper/default.nix new file mode 100644 index 000000000000..5a828c265b55 --- /dev/null +++ b/pkgs/misc/cups/drivers/mfcj470dwcupswrapper/default.nix @@ -0,0 +1,56 @@ +{ stdenv, fetchurl, mfcj470dwlpr, makeWrapper}: + +stdenv.mkDerivation rec { + name = "mfcj470dw-cupswrapper-${version}"; + version = "3.0.0-1"; + + src = fetchurl { + url = "http://download.brother.com/welcome/dlf006866/mfcj470dw_cupswrapper_GPL_source_${version}.tar.gz"; + sha256 = "b88f9b592723a00c024129560367f40a560ca3cba06fd99512ab368dd6855853"; + }; + + nativeBuildInputs = [ makeWrapper ]; + buildInputs = [ mfcj470dwlpr ]; + + patchPhase = '' + WRAPPER=cupswrapper/cupswrappermfcj470dw + + substituteInPlace $WRAPPER \ + --replace /opt "${mfcj470dwlpr}/opt" \ + --replace /usr "${mfcj470dwlpr}/usr" \ + --replace /etc "$out/etc" + + substituteInPlace $WRAPPER \ + --replace "\`cp " "\`cp -p " \ + --replace "\`mv " "\`cp -p " + ''; + + buildPhase = '' + cd brcupsconfpt1 + make all + cd .. + ''; + + installPhase = '' + TARGETFOLDER=$out/opt/brother/Printers/mfcj470dw/cupswrapper/ + mkdir -p $out/opt/brother/Printers/mfcj470dw/cupswrapper/ + + cp brcupsconfpt1/brcupsconfpt1 $TARGETFOLDER + cp cupswrapper/cupswrappermfcj470dw $TARGETFOLDER/ + cp PPD/brother_mfcj470dw_printer_en.ppd $TARGETFOLDER/ + ''; + + cleanPhase = '' + cd brcupsconfpt1 + make clean + ''; + + meta = { + homepage = http://www.brother.com/; + description = "Brother MFC-J470DW CUPS wrapper driver"; + license = stdenv.lib.licenses.gpl2; + platforms = stdenv.lib.platforms.linux; + downloadPage = http://support.brother.com/g/b/downloadlist.aspx?c=us&lang=en&prod=mfcj470dw_us_eu_as&os=128; + maintainers = [ stdenv.lib.maintainers.yochai ]; + }; +} diff --git a/pkgs/misc/cups/drivers/mfcj470dwlpr/default.nix b/pkgs/misc/cups/drivers/mfcj470dwlpr/default.nix new file mode 100644 index 000000000000..c80009bd8444 --- /dev/null +++ b/pkgs/misc/cups/drivers/mfcj470dwlpr/default.nix @@ -0,0 +1,45 @@ +{ stdenv, fetchurl, cups, dpkg, ghostscript, patchelf, a2ps, coreutils, gnused, gawk, file, makeWrapper }: + +stdenv.mkDerivation rec { + name = "mfcj470dw-cupswrapper-${version}"; + version = "3.0.0-1"; + + src = fetchurl { + url = "http://download.brother.com/welcome/dlf006843/mfcj470dwlpr-${version}.i386.deb"; + sha256 = "7202dd895d38d50bb767080f2995ed350eed99bc2b7871452c3c915c8eefc30a"; + }; + + nativeBuildInputs = [ makeWrapper ]; + buildInputs = [ cups ghostscript dpkg a2ps ]; + + unpackPhase = "true"; + + installPhase = '' + dpkg-deb -x $src $out + + substituteInPlace $out/opt/brother/Printers/mfcj470dw/lpd/filtermfcj470dw \ + --replace /opt "$out/opt" \ + + sed -i '/GHOST_SCRIPT=/c\GHOST_SCRIPT=gs' $out/opt/brother/Printers/mfcj470dw/lpd/psconvertij2 + + patchelf --set-interpreter ${stdenv.glibc.out}/lib/ld-linux.so.2 $out/opt/brother/Printers/mfcj470dw/lpd/brmfcj470dwfilter + + mkdir -p $out/lib/cups/filter/ + ln -s $out/opt/brother/Printers/mfcj470dw/lpd/filtermfcj470dw $out/lib/cups/filter/brother_lpdwrapper_mfcj470dw + + wrapProgram $out/opt/brother/Printers/mfcj470dw/lpd/psconvertij2 \ + --prefix PATH ":" ${ stdenv.lib.makeBinPath [ gnused coreutils gawk ] } + + wrapProgram $out/opt/brother/Printers/mfcj470dw/lpd/filtermfcj470dw \ + --prefix PATH ":" ${ stdenv.lib.makeBinPath [ ghostscript a2ps file gnused coreutils ] } + ''; + + meta = { + homepage = http://www.brother.com/; + description = "Brother MFC-J470DW LPR driver"; + license = stdenv.lib.licenses.unfree; + platforms = stdenv.lib.platforms.linux; + downloadPage = http://support.brother.com/g/b/downloadlist.aspx?c=us&lang=en&prod=mfcj470dw_us_eu_as&os=128; + maintainers = [ stdenv.lib.maintainers.yochai ]; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 2a2ba2c563a0..c2e1d63120ef 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -17448,7 +17448,8 @@ in canon-cups-ufr2 = callPackage ../misc/cups/drivers/canon { }; - mfcj470dw = callPackage_i686 ../misc/cups/drivers/mfcj470dw { }; + mfcj470dw-cupswrapper = callPackage ../misc/cups/drivers/mfcj470dwcupswrapper { }; + mfcj470dwlpr = callPackage_i686 ../misc/cups/drivers/mfcj470dwlpr { }; samsung-unified-linux-driver_1_00_37 = callPackage ../misc/cups/drivers/samsung { }; samsung-unified-linux-driver = callPackage ../misc/cups/drivers/samsung/4.00.39 { };