Canon LBP6230DN Driver

I have Canon LBP6230DN printer but it doesn’t have driver on NixOS. Normally on arch, I only have to install cndrvcups-lt package on AUR. I also trying to packagee it myself but failed due to lack of knowledge T-T.

Here is the PKGBUILD:

pkgname=cndrvcups-lt
pkgver=5.00.18
pkgrel=0
pkgdesc='Canon UFR II /LIPSLX Printer Driver. It provides ppd files for LBP112, LBP113, LBP151, LBP6030, LBP6230, LBP7110C, and LBP8100 printers.'

arch=('x86_64')
url='https://www.canon-europe.com/support/consumer_products/products/printers/laser/i-sensys_lbp6030.aspx?type=drivers&language=EN&os=Linux%20(64-bit)'
depends=('libglade' 'gcc-libs' 'libxml2' 'libjpeg-turbo' 'libgcrypt')
source=("http://gdlp01.c-wss.com/gds/0/0100005950/10/linux-UFRIILT-drv-v500-uken-18.tar.gz")
md5sums=('8bc3a4e3c372bb4d1b9af2cc012c720b')

package() {
    # Concerning the 64 bit version only right now
    cd "${srcdir}/linux-UFRIILT-drv-v500-uken/64-bit_Driver/Debian"
    ar x cnrdrvcups-ufr2lt-uk_5.00-1_amd64.deb
    mkdir data
    tar -xzf data.tar.gz -C data
    cd data
    cp -r . "${pkgdir}"
}

Hi,

did you try to add canon-cups-ufr2 to services.printing.drivers ?

Hi,

I have added that driver to the drivers, but unfortunately it doesn’t work.

The canon-cups-ufr2 is packaged from the cnrdrvcups-lb package not cnrdrvcups-lt package which use rastertosfp not rastertourf.

Btw, my printer have the same driver in this reddit post: reddit

This is what I have done so far:

{
  lib,
  stdenv,
  fetchurl,
  dpkg,
  cups,
  gtk2,
  glib,
  gcc,
  libxml2,
  libjpeg,
  libgcrypt,
  gnome2,
  autoPatchelfHook,
  makeWrapper,
}:

let
  # NOTE: Canon driver needs libxml2 2.13.x, mentioned in the AUR
  libxml2_13 = libxml2.overrideAttrs rec {
    version = "2.13.8";
    src = fetchurl {
      url = "mirror://gnome/sources/libxml2/${lib.versions.majorMinor version}/libxml2-${version}.tar.xz";
      hash = "sha256-J3KUyzMRmrcbK8gfL0Rem8lDW4k60VuyzSsOhZoO6Eo=";
    };
  };
in
stdenv.mkDerivation {
  pname = "cndrvcups-ufr2lt";
  version = "5.00-18";

  src = fetchurl {
    url = "http://gdlp01.c-wss.com/gds/0/0100005950/10/linux-UFRIILT-drv-v500-uken-18.tar.gz";
    sha256 = "0ngjj0iwhb9q78vmcdqmp1q3jfddyv9nzzd0jik0khbb05083226";
  };

  nativeBuildInputs = [
    dpkg
    autoPatchelfHook
    makeWrapper
  ];

  buildInputs = [
    cups
    gtk2
    glib
    gcc.cc.lib
    libxml2.out
    libxml2_13
    libjpeg
    libgcrypt
    gnome2.libglade
  ];

  unpackPhase = ''
    tar xzf $src
    cd linux-UFRIILT-drv-v500-uken/64-bit_Driver/Debian
    dpkg-deb -x cnrdrvcups-ufr2lt-uk_5.00-1_amd64.deb extracted
    cd extracted
  '';

  dontBuild = true;

  installPhase = ''

  '';

  meta = with lib; {
    description = "Canon UFR II/LIPSLX Printer Driver for Linux";
    homepage = "https://www.canon-europe.com/";
    license = licenses.unfree;
    platforms = [ "x86_64-linux" ];
    maintainers = [ ];
  };
}

Idk what to put in the installPhase because I dont understand what happen in the canon-cups-ufr2