From c6668dffc80c0acb0797f24886d8a2eb3d5b37e6 Mon Sep 17 00:00:00 2001 From: "Daniel S. Smetana" Date: Tue, 20 Aug 2024 20:56:49 +0900 Subject: [PATCH 1/2] canon-cups-ufr2: 5.90 -> 6.00 --- pkgs/by-name/ca/canon-cups-ufr2/package.nix | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/pkgs/by-name/ca/canon-cups-ufr2/package.nix b/pkgs/by-name/ca/canon-cups-ufr2/package.nix index e39bcf05e427..fa8bbafa5ac2 100644 --- a/pkgs/by-name/ca/canon-cups-ufr2/package.nix +++ b/pkgs/by-name/ca/canon-cups-ufr2/package.nix @@ -30,15 +30,15 @@ let ld64 = "${stdenv.cc}/nix-support/dynamic-linker"; libs = pkgs: lib.makeLibraryPath buildInputs; - version = "5.90"; - dl = "8/0100007658/40"; + version = "6.00"; + dl = "0/0100009240/34"; suffix1 = "m17n"; - suffix2 = "03"; + suffix2 = "00"; versionNoDots = builtins.replaceStrings [ "." ] [ "" ] version; src_canon = fetchurl { url = "http://gdlp01.c-wss.com/gds/${dl}/linux-UFRII-drv-v${versionNoDots}-${suffix1}-${suffix2}.tar.gz"; - hash = "sha256-HvuRQYqkHRCwfajSJPridDcADq7VkYwBEo4qr9W5mqA="; + hash = "sha256-JQAe/avYG+9TAsH26UGai6u8/upRXwZrGBc/hd4jZe8="; }; buildInputs = [ cups zlib jbigkit glib gtk3 libxml2 gdk-pixbuf pango cairo atk ]; From 3ce3d5b24093459af9ed1e9257e550fef224b6b9 Mon Sep 17 00:00:00 2001 From: "Daniel S. Smetana" Date: Tue, 20 Aug 2024 20:57:50 +0900 Subject: [PATCH 2/2] canon-cups-ufr2: fix color printing issues This commit resolves https://github.com/NixOS/nixpkgs/issues/310013 by adding the required `libjpeg` and `libgcrypt` libraries. It sets `dontPatchELF = true` to prevent `patchelf --shrink-rpath` from removing these libraries from the `RPATH`. This is necessary because the driver binaries use `dlopen` to load the libraries at runtime instead of specifying them in `DT_NEEDED`, which causes `dlopen` to be unable to find them when `patchelf --shrink-rpath` is called. --- pkgs/by-name/ca/canon-cups-ufr2/package.nix | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/pkgs/by-name/ca/canon-cups-ufr2/package.nix b/pkgs/by-name/ca/canon-cups-ufr2/package.nix index fa8bbafa5ac2..9f34deeeff94 100644 --- a/pkgs/by-name/ca/canon-cups-ufr2/package.nix +++ b/pkgs/by-name/ca/canon-cups-ufr2/package.nix @@ -8,6 +8,8 @@ , makeWrapper , cups , jbigkit +, libjpeg +, libgcrypt , glib , gtk3 , gdk-pixbuf @@ -41,13 +43,16 @@ let hash = "sha256-JQAe/avYG+9TAsH26UGai6u8/upRXwZrGBc/hd4jZe8="; }; - buildInputs = [ cups zlib jbigkit glib gtk3 libxml2 gdk-pixbuf pango cairo atk ]; + buildInputs = [ cups zlib jbigkit libjpeg libgcrypt glib gtk3 libxml2 gdk-pixbuf pango cairo atk ]; in stdenv.mkDerivation rec { pname = "canon-cups-ufr2"; inherit version; src = src_canon; + # we can't let patchelf remove unnecessary RPATHs because the driver uses dlopen to load libjpeg and libgcrypt + dontPatchELF = true; + postUnpack = '' ( cd $sourceRoot