Change:
}; buildInputs = [ cups zlib jbigkit glib gtk3 pkg-config gnome2.libglade libxml2 gdk-pixbuf pango cairo atk ]; in stdenv.mkDerivation rec { pname = "canon-cups-ufr2"; inherit version; src = src_canon; postUnpack = '' <del> (cd $sourceRoot; tar -xzf Sources/cnrdrvcups-lb-${version}-1.tar.gz) (cd $sourceRoot; sed -ie "s@_prefix=/usr@_prefix=$out@" cnrdrvcups-common-${version}/allgen.sh) (cd $sourceRoot; sed -ie "s@_libdir=/usr/lib@_libdir=$out/lib@" cnrdrvcups-common-${version}/allgen.sh) (cd $sourceRoot; sed -ie "s@_bindir=/usr/bin@_libdir=$out/bin@" cnrdrvcups-common-${version}/allgen.sh) (cd $sourceRoot; sed -ie "s@etc/cngplp@$out/etc/cngplp@" cnrdrvcups-common-${version}/cngplp/Makefile.am) (cd $sourceRoot; sed -ie "s@usr/share/cngplp@$out/usr/share/cngplp@" cnrdrvcups-common-${version}/cngplp/src/Makefile.am) (cd $sourceRoot; patchShebangs cnrdrvcups-common-${version}) (cd $sourceRoot; sed -ie "s@_prefix=/usr@_prefix=$out@" cnrdrvcups-lb-${version}/allgen.sh) (cd $sourceRoot; sed -ie "s@_libdir=/usr/lib@_libdir=$out/lib@" cnrdrvcups-lb-${version}/allgen.sh) (cd $sourceRoot; sed -ie "s@_bindir=/usr/bin@_libdir=$out/bin@" cnrdrvcups-lb-${version}/allgen.sh) (cd $sourceRoot; sed -ie '/^cd ../cngplp/,/^cd files/{/^cd files/!{d}}' cnrdrvcups-lb-${version}/allgen.sh) (cd $sourceRoot; sed -ie "s@cd ../pdftocpca@cd pdftocpca@" cnrdrvcups-lb-${version}/allgen.sh) (cd $sourceRoot; sed -i "/CNGPLPDIR/d" cnrdrvcups-lb-${version}/Makefile) (cd $sourceRoot; patchShebangs cnrdrvcups-lb-${version}) </del> <ins> ( cd $sourceRoot tar -xzf Sources/cnrdrvcups-lb-${version}-1.tar.gz sed -ie "s@_prefix=/usr@_prefix=$out@" cnrdrvcups-common-${version}/allgen.sh sed -ie "s@_libdir=/usr/lib@_libdir=$out/lib@" cnrdrvcups-common-${version}/allgen.sh sed -ie "s@_bindir=/usr/bin@_bindir=$out/bin@" cnrdrvcups-common-${version}/allgen.sh sed -ie "s@etc/cngplp@$out/etc/cngplp@" cnrdrvcups-common-${version}/cngplp/Makefile.am sed -ie "s@usr/share/cngplp@$out/usr/share/cngplp@" cnrdrvcups-common-${version}/cngplp/src/Makefile.am patchShebangs cnrdrvcups-common-${version} sed -ie "s@_prefix=/usr@_prefix=$out@" cnrdrvcups-lb-${version}/allgen.sh sed -ie "s@_libdir=/usr/lib@_libdir=$out/lib@" cnrdrvcups-lb-${version}/allgen.sh sed -ie "s@_bindir=/usr/bin@_bindir=$out/bin@" cnrdrvcups-lb-${version}/allgen.sh sed -ie '/^cd ../cngplp/,/^cd files/{/^cd files/!{d}}' cnrdrvcups-lb-${version}/allgen.sh sed -ie "s@cd ../pdftocpca@cd pdftocpca@" cnrdrvcups-lb-${version}/allgen.sh sed -i "/CNGPLPDIR/d" cnrdrvcups-lb-${version}/Makefile patchShebangs cnrdrvcups-lb-${version} ) </ins> ''; nativeBuildInputs = [ makeWrapper unzip autoconf automake libtool_1_5 ];

Discussion:
Installation of my Canon Color imageCLASS MF644Cdw results in the following error message within the cups interface, as well as a complete inability to print: Steps to reproduce the behavior: the following in on either unstable or staging-22.05 (the version of canon-cups-ufr2 in 21.05 is way too old to have support for my printer) to install printer through cups using either autodiscovery or manually specifying the ip address, specifying for the make and for the model to print something or visit the cups printer status page Cups is able to find the required filter is indeed not a part of , from what I was able to figure out, it looks like its supposed to be provided by but the required binary is either not installed properly, the drivers need a patch/workaround to find it on nixos, or both
I have essentially the identical issue with as described by (my portion of is the same): finds and adds the printer (an ) and its driver successfully, but then fails with status, Idle - "File "/nix/store/bj5s6j8bs4q692syp8cxi5y49yjj70hc-cups-progs/lib/cups/filter/rastertoufr2" not available: No such file or directory" And the filter is indeed MIA: $ find /nix/store/bj5s6j8bs4q692syp8cxi5y49yjj70hc-cups-progs | grep rasterto /nix/store/bj5s6j8bs4q692syp8cxi5y49yjj70hc-cups-progs/lib/cups/filter/.rastertopclx-wrapped /nix/store/bj5s6j8bs4q692syp8cxi5y49yjj70hc-cups-progs/lib/cups/filter/.

rastertops-wrapped /nix/store/bj5s6j8bs4q692syp8cxi5y49yjj70hc-cups-progs/lib/cups/filter/rastertopwg /nix/store/bj5s6j8bs4q692syp8cxi5y49yjj70hc-cups-progs/lib/cups/filter/rastertohp /nix/store/bj5s6j8bs4q692syp8cxi5y49yjj70hc-cups-progs/lib/cups/filter/rastertopclx /nix/store/bj5s6j8bs4q692syp8cxi5y49yjj70hc-cups-progs/lib/cups/filter/.rastertopdf-wrapped /nix/store/bj5s6j8bs4q692syp8cxi5y49yjj70hc-cups-progs/lib/cups/filter/rastertops /nix/store/bj5s6j8bs4q692syp8cxi5y49yjj70hc-cups-progs/lib/cups/filter/.rastertoescpx-wrapped /nix/store/bj5s6j8bs4q692syp8cxi5y49yjj70hc-cups-progs/lib/cups/filter/.

rastertopclm-wrapped /nix/store/bj5s6j8bs4q692syp8cxi5y49yjj70hc-cups-progs/lib/cups/filter/rastertoescpx /nix/store/bj5s6j8bs4q692syp8cxi5y49yjj70hc-cups-progs/lib/cups/filter/rastertopdf /nix/store/bj5s6j8bs4q692syp8cxi5y49yjj70hc-cups-progs/lib/cups/filter/rastertopclm /nix/store/bj5s6j8bs4q692syp8cxi5y49yjj70hc-cups-progs/lib/cups/filter/rastertolabel /nix/store/bj5s6j8bs4q692syp8cxi5y49yjj70hc-cups-progs/lib/cups/filter/rastertoepson But I downloaded the latest driver from CANON () and the filter is indeed there: $ tar --strip-components=3 -xf linux-UFRII-drv-v550-us- linux-UFRII-drv-v550-us/x64/RPM/cnrdrvcups-ufr2-us-5.50- $ rpm2targz cnrdrvcups-ufr2-us-5.50- $ tar -tf ./cnrdrvcups-ufr2-us-5.50- | grep rastertoufr2 ./usr/lib/cups/filter/rastertoufr2 My system: $ sudo nix-info -m system: host os: multi-user?: sandbox: version: nixpkgs: Thanks to all --
I have a fix on my disk. I only need to commit it and create a PR.
awesome, thank you :-)
Sorry for my ignorance, but could you point me to something explaining how to install your patch? or what file I should edit on an existing cups install? I'm a little lost when it comes to using the source code.

I've searched through cups source and everywhere I can think of trying to understand what file needs edited with your changes without asking like an idiot LOL I think maybe my real issue is that I'm trying to get it working on a Pi-Zero (ARM not x86)
The easiest would be to use nixos-unstable.
canon-cups-ufr2 needs also the gutenprintBin driver. When both are installed it just works services.printing.drivers = [ pkgs.gutenprintBin ];