about summary refs log tree commit diff
path: root/pkgs/misc
diff options
context:
space:
mode:
authorBernardo Meurer <bernardo@meurer.org>2023-05-31 09:53:25 -0400
committerGitHub <noreply@github.com>2023-05-31 09:53:25 -0400
commit9232113fa0f986a1fe70a7a0cd205594ad639313 (patch)
tree3cc9e922a838d9dab0269abeef8f08a7c0457e8b /pkgs/misc
parentefaf517f12d705be51f98566c2969557c9ff2cae (diff)
parent96bd243f4ec478d51f8ebaf1436db56049f63839 (diff)
downloadnixlib-9232113fa0f986a1fe70a7a0cd205594ad639313.tar
nixlib-9232113fa0f986a1fe70a7a0cd205594ad639313.tar.gz
nixlib-9232113fa0f986a1fe70a7a0cd205594ad639313.tar.bz2
nixlib-9232113fa0f986a1fe70a7a0cd205594ad639313.tar.lz
nixlib-9232113fa0f986a1fe70a7a0cd205594ad639313.tar.xz
nixlib-9232113fa0f986a1fe70a7a0cd205594ad639313.tar.zst
nixlib-9232113fa0f986a1fe70a7a0cd205594ad639313.zip
Merge pull request #234509 from lluchs/canon-cups-ufr2-5.70
Diffstat (limited to 'pkgs/misc')
-rw-r--r--pkgs/misc/cups/drivers/canon/default.nix134
1 files changed, 58 insertions, 76 deletions
diff --git a/pkgs/misc/cups/drivers/canon/default.nix b/pkgs/misc/cups/drivers/canon/default.nix
index 12e4f5cac966..40438d333cf9 100644
--- a/pkgs/misc/cups/drivers/canon/default.nix
+++ b/pkgs/misc/cups/drivers/canon/default.nix
@@ -16,35 +16,32 @@
 , coreutils
 , atk
 , pkg-config
-, gnome2
 , libxml2
 , runtimeShell
-, proot
+, libredirect
 , ghostscript
 , pkgs
-, pkgsi686Linux
 , zlib
 }:
 
 let
-  i686_NIX_GCC = pkgsi686Linux.callPackage ({ gcc }: gcc) { };
-  ld32 =
-    if stdenv.hostPlatform.system == "x86_64-linux" then "${stdenv.cc}/nix-support/dynamic-linker-m32"
-    else if stdenv.hostPlatform.system == "i686-linux" then "${stdenv.cc}/nix-support/dynamic-linker"
-    else throw "Unsupported platform for Canon UFR2 Drivers: ${stdenv.hostPlatform.system}";
+  system =
+    if stdenv.targetPlatform.system == "x86_64-linux" then "intel"
+    else if stdenv.targetPlatform.system == "aarch64-linux" then "arm"
+    else throw "Unsupported platform for Canon UFR2 Drivers: ${stdenv.targetPlatform.system}";
   ld64 = "${stdenv.cc}/nix-support/dynamic-linker";
   libs = pkgs: lib.makeLibraryPath buildInputs;
 
-  version = "5.40";
-  dl = "6/0100009236/10";
+  version = "5.70";
+  dl = "8/0100007658/33";
 
   versionNoDots = builtins.replaceStrings [ "." ] [ "" ] version;
   src_canon = fetchurl {
-    url = "http://gdlp01.c-wss.com/gds/${dl}/linux-UFRII-drv-v${versionNoDots}-usen-20.tar.gz";
-    sha256 = "sha256:069z6ijmql62mcdyxnzc9mf0dxa6z1107cd0ab4i1adk8kr3d75k";
+    url = "http://gdlp01.c-wss.com/gds/${dl}/linux-UFRII-drv-v${versionNoDots}-m17n-11.tar.gz";
+    hash = "sha256-d5VHlPpUPAr3RWVdQRdn42YLuVekOw1IaMFLVt1Iu7o=";
   };
 
-  buildInputs = [ cups zlib jbigkit glib gtk3 gnome2.libglade libxml2 gdk-pixbuf pango cairo atk ];
+  buildInputs = [ cups zlib jbigkit glib gtk3 libxml2 gdk-pixbuf pango cairo atk ];
 in
 stdenv.mkDerivation rec {
   pname = "canon-cups-ufr2";
@@ -54,10 +51,11 @@ stdenv.mkDerivation rec {
   postUnpack = ''
     (
       cd $sourceRoot
-      tar -xzf Sources/cnrdrvcups-lb-${version}-1.tar.gz
+      tar -xf Sources/cnrdrvcups-lb-${version}-1.11.tar.xz
       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@/usr@$out@" cnrdrvcups-common-${version}/{{backend,rasterfilter}/Makefile.am,rasterfilter/cnrasterproc.h}
       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}
@@ -67,6 +65,7 @@ stdenv.mkDerivation rec {
       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 -ie "s@/usr@$out@" cnrdrvcups-lb-${version}/pdftocpca/Makefile.am
       sed -i "/CNGPLPDIR/d" cnrdrvcups-lb-${version}/Makefile
       patchShebangs cnrdrvcups-lb-${version}
     )
@@ -86,8 +85,8 @@ stdenv.mkDerivation rec {
     )
     (
       cd cnrdrvcups-common-${version}/Rule
-      mkdir -p $out/share/usb
-      install -m 644 *.usb-quirks $out/share/usb
+      mkdir -p $out/share/cups/usb
+      install -m 644 *.usb-quirks $out/share/cups/usb
     )
     (
       cd cnrdrvcups-lb-${version}
@@ -97,73 +96,56 @@ stdenv.mkDerivation rec {
       mkdir -p $out/share/cups/model
       install -m 644 ppd/*.ppd $out/share/cups/model/
     )
+
     (
       cd lib
-      mkdir -p $out/lib32
-      install -m 755 libs32/intel/libColorGearCufr2.so.2.0.0 $out/lib32
-      install -m 755 libs32/intel/libcaepcmufr2.so.1.0 $out/lib32
-      install -m 755 libs32/intel/libcaiocnpkbidir.so.1.0.0 $out/lib32
-      install -m 755 libs32/intel/libcaiousb.so.1.0.0 $out/lib32
-      install -m 755 libs32/intel/libcaiowrapufr2.so.1.0.0 $out/lib32
-      install -m 755 libs32/intel/libcanon_slimufr2.so.1.0.0 $out/lib32
-      install -m 755 libs32/intel/libcanonufr2r.so.1.0.0 $out/lib32
-      install -m 755 libs32/intel/libcnaccm.so.1.0 $out/lib32
-      install -m 755 libs32/intel/libcnlbcmr.so.1.0 $out/lib32
-      install -m 755 libs32/intel/libcnncapcmr.so.1.0 $out/lib32
-      install -m 755 libs32/intel/libufr2filterr.so.1.0.0 $out/lib32
-
       mkdir -p $out/lib
-      install -m 755 libs64/intel/libColorGearCufr2.so.2.0.0 $out/lib
-      install -m 755 libs64/intel/libcaepcmufr2.so.1.0 $out/lib
-      install -m 755 libs64/intel/libcaiocnpkbidir.so.1.0.0 $out/lib
-      install -m 755 libs64/intel/libcaiousb.so.1.0.0 $out/lib
-      install -m 755 libs64/intel/libcaiowrapufr2.so.1.0.0 $out/lib
-      install -m 755 libs64/intel/libcanon_slimufr2.so.1.0.0 $out/lib
-      install -m 755 libs64/intel/libcanonufr2r.so.1.0.0 $out/lib
-      install -m 755 libs64/intel/libcnaccm.so.1.0 $out/lib
-      install -m 755 libs64/intel/libcnlbcmr.so.1.0 $out/lib
-      install -m 755 libs64/intel/libcnncapcmr.so.1.0 $out/lib
-      install -m 755 libs64/intel/libufr2filterr.so.1.0.0 $out/lib
-
-      install -m 755 libs64/intel/cnpdfdrv $out/bin
-      install -m 755 libs64/intel/cnpkbidir $out/bin
-      install -m 755 libs64/intel/cnpkmoduleufr2r $out/bin
-      install -m 755 libs64/intel/cnrsdrvufr2 $out/bin
-      install -m 755 libs64/intel/cnsetuputil2 $out/bin/cnsetuputil2
+      install -m 755 libs64/${system}/libColorGearCufr2.so.2.0.0 $out/lib
+      install -m 755 libs64/${system}/libcaepcmufr2.so.1.0 $out/lib
+      install -m 755 libs64/${system}/libcaiocnpkbidir.so.1.0.0 $out/lib
+      install -m 755 libs64/${system}/libcaiousb.so.1.0.0 $out/lib
+      install -m 755 libs64/${system}/libcaiowrapufr2.so.1.0.0 $out/lib
+      install -m 755 libs64/${system}/libcanon_slimufr2.so.1.0.0 $out/lib
+      install -m 755 libs64/${system}/libcanonufr2r.so.1.0.0 $out/lib
+      install -m 755 libs64/${system}/libcnaccm.so.1.0 $out/lib
+      install -m 755 libs64/${system}/libcnlbcmr.so.1.0 $out/lib
+      install -m 755 libs64/${system}/libcnncapcmr.so.1.0 $out/lib
+      install -m 755 libs64/${system}/libufr2filterr.so.1.0.0 $out/lib
+
+      install -m 755 libs64/${system}/cnpdfdrv $out/bin
+      install -m 755 libs64/${system}/cnpkbidir $out/bin
+      install -m 755 libs64/${system}/cnpkmoduleufr2r $out/bin
+      install -m 755 libs64/${system}/cnrsdrvufr2 $out/bin
+      install -m 755 libs64/${system}/cnsetuputil2 $out/bin/cnsetuputil2
 
       mkdir -p $out/share/cnpkbidir
-      install -m 644 libs64/intel/cnpkbidir_info* $out/share/cnpkbidir
+      install -m 644 libs64/${system}/cnpkbidir_info* $out/share/cnpkbidir
 
       mkdir -p $out/share/ufr2filter
-      install -m 644 libs64/intel/ThLB* $out/share/ufr2filter
-    )
-
-    (
-      cd $out/lib32
-      ln -sf libcaepcmufr2.so.1.0 libcaepcmufr2.so
-      ln -sf libcaepcmufr2.so.1.0 libcaepcmufr2.so.1
-      ln -sf libcaiowrapufr2.so.1.0.0 libcaiowrapufr2.so
-      ln -sf libcaiowrapufr2.so.1.0.0 libcaiowrapufr2.so.1
-      ln -sf libcanon_slimufr2.so.1.0.0 libcanon_slimufr2.so
-      ln -sf libcanon_slimufr2.so.1.0.0 libcanon_slimufr2.so.1
-      ln -sf libufr2filterr.so.1.0.0 libufr2filterr.so
-      ln -sf libufr2filterr.so.1.0.0 libufr2filterr.so.1
-
-      patchelf --set-rpath "$(cat ${i686_NIX_GCC}/nix-support/orig-cc)/lib:${libs pkgsi686Linux}:${pkgsi686Linux.stdenv.cc.libc}/lib:${pkgsi686Linux.libxml2.out}/lib:$out/lib32" libcanonufr2r.so.1.0.0
-      patchelf --set-rpath "$(cat ${i686_NIX_GCC}/nix-support/orig-cc)/lib:${libs pkgsi686Linux}:${pkgsi686Linux.stdenv.cc.libc}/lib" libcaepcmufr2.so.1.0
-      patchelf --set-rpath "$(cat ${i686_NIX_GCC}/nix-support/orig-cc)/lib:${libs pkgsi686Linux}:${pkgsi686Linux.stdenv.cc.libc}/lib" libColorGearCufr2.so.2.0.0
+      install -m 644 libs64/${system}/ThLB* $out/share/ufr2filter
     )
 
     (
       cd $out/lib
+
+      ln -sf libColorGearCufr2.so.2.0.0 libColorGearCufr2.so
+      ln -sf libColorGearCufr2.so.2.0.0 libColorGearCufr2.so.2
       ln -sf libcaepcmufr2.so.1.0 libcaepcmufr2.so
       ln -sf libcaepcmufr2.so.1.0 libcaepcmufr2.so.1
+      ln -sf libcaiocnpkbidir.so.1.0.0 libcaiocnpkbidir.so
+      ln -sf libcaiocnpkbidir.so.1.0.0 libcaiocnpkbidir.so.1
       ln -sf libcaiowrapufr2.so.1.0.0 libcaiowrapufr2.so
       ln -sf libcaiowrapufr2.so.1.0.0 libcaiowrapufr2.so.1
       ln -sf libcanon_slimufr2.so.1.0.0 libcanon_slimufr2.so
       ln -sf libcanon_slimufr2.so.1.0.0 libcanon_slimufr2.so.1
+      ln -sf libcanonufr2r.so.1.0.0 libcanonufr2r.so
+      ln -sf libcanonufr2r.so.1.0.0 libcanonufr2r.so.1
+      ln -sf libcnlbcmr.so.1.0 libcnlbcmr.so
+      ln -sf libcnlbcmr.so.1.0 libcnlbcmr.so.1
       ln -sf libufr2filterr.so.1.0.0 libufr2filterr.so
       ln -sf libufr2filterr.so.1.0.0 libufr2filterr.so.1
+      ln -sf libuictlufr2r.so.1.0.0 libuictlufr2r.so
+      ln -sf libuictlufr2r.so.1.0.0 libuictlufr2r.so.1
 
       patchelf --set-rpath "$(cat $NIX_CC/nix-support/orig-cc)/lib:${libs pkgs}:${stdenv.cc.cc.lib}/lib64:${stdenv.cc.libc}/lib64:$out/lib" libcanonufr2r.so.1.0.0
       patchelf --set-rpath "$(cat $NIX_CC/nix-support/orig-cc)/lib:${libs pkgs}:${stdenv.cc.cc.lib}/lib64:${stdenv.cc.libc}/lib64" libcaepcmufr2.so.1.0
@@ -172,15 +154,17 @@ stdenv.mkDerivation rec {
 
     (
       cd $out/bin
-      patchelf --set-interpreter "$(cat ${ld64})" --set-rpath "${lib.makeLibraryPath buildInputs}:${stdenv.cc.cc.lib}/lib64:${stdenv.cc.libc}/lib64" cnsetuputil2
-      patchelf --set-interpreter "$(cat ${ld64})" --set-rpath "${lib.makeLibraryPath buildInputs}:${stdenv.cc.cc.lib}/lib64:${stdenv.cc.libc}/lib64" cnpdfdrv
-      patchelf --set-interpreter "$(cat ${ld64})" --set-rpath "${lib.makeLibraryPath buildInputs}:${stdenv.cc.cc.lib}/lib64:${stdenv.cc.libc}/lib64:$out/lib" cnpkbidir
-      patchelf --set-interpreter "$(cat ${ld64})" --set-rpath "${lib.makeLibraryPath buildInputs}:${stdenv.cc.cc.lib}/lib64:${stdenv.cc.libc}/lib64:$out/lib" cnrsdrvufr2
-
-      mv cnsetuputil2 cnsetuputil2.wrapped
-      echo "#!${runtimeShell} -e" > cnsetuputil2
-      echo "exec ${proot}/bin/proot -b $out/usr/share/cnsetuputil2:/usr/share/cnsetuputil2 -b ${coreutils}/bin/ls:/bin/ls -b ${cups}/share:/usr/share/cups $out/bin/cnsetuputil2.wrapped" > cnsetuputil2
-      chmod +x cnsetuputil2
+      patchelf --set-interpreter "$(cat ${ld64})" --set-rpath "${lib.makeLibraryPath buildInputs}:${stdenv.cc.cc.lib}/lib64:${stdenv.cc.libc}/lib64" cnsetuputil2 cnpdfdrv
+      patchelf --set-interpreter "$(cat ${ld64})" --set-rpath "${lib.makeLibraryPath buildInputs}:${stdenv.cc.cc.lib}/lib64:${stdenv.cc.libc}/lib64:$out/lib" cnpkbidir cnrsdrvufr2 cnpkmoduleufr2r cnjbigufr2
+
+      wrapProgram $out/bin/cnrsdrvufr2 \
+        --prefix LD_LIBRARY_PATH ":" "$out/lib" \
+        --set LD_PRELOAD "${libredirect}/lib/libredirect.so" \
+        --set NIX_REDIRECTS /usr/bin/cnpkmoduleufr2r=$out/bin/cnpkmoduleufr2r:/usr/bin/cnjbigufr2=$out/bin/cnjbigufr2
+
+      wrapProgram $out/bin/cnsetuputil2 \
+        --set LD_PRELOAD "${libredirect}/lib/libredirect.so" \
+        --set NIX_REDIRECTS /usr/share/cnsetuputil2=$out/usr/share/cnsetuputil2
     )
 
     (
@@ -210,8 +194,6 @@ stdenv.mkDerivation rec {
     homepage = "http://www.canon.com/";
     sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.unfree;
-    maintainers = with maintainers; [
-      # please consider maintaining if you are updating this package
-    ];
+    maintainers = with maintainers; [ lluchs ];
   };
 }