From bc4d73b809d67eed105d1847e92905b134cfbf76 Mon Sep 17 00:00:00 2001 From: Joel Holdsworth Date: Thu, 2 Apr 2026 14:49:42 -0700 Subject: [PATCH] nice-dcv-client: update to 2025.0.8846-1 --- pkgs/by-name/ne/netron/package.nix | 4 - .../ni/nice-dcv-client/fix-paths.patch | 31 ++++ pkgs/by-name/ni/nice-dcv-client/package.nix | 144 +++++++++++------- 3 files changed, 118 insertions(+), 61 deletions(-) create mode 100644 pkgs/by-name/ni/nice-dcv-client/fix-paths.patch diff --git a/pkgs/by-name/ne/netron/package.nix b/pkgs/by-name/ne/netron/package.nix index aee1242678be..2b4ae77e6b9f 100644 --- a/pkgs/by-name/ne/netron/package.nix +++ b/pkgs/by-name/ne/netron/package.nix @@ -97,9 +97,5 @@ buildNpmPackage (finalAttrs: { maintainers = with lib.maintainers; [ flokli ]; mainProgram = "netron"; platforms = electron.meta.platforms; - badPlatforms = [ - # Fails on darwin - lib.systems.inspect.patterns.isDarwin - ]; }; }) diff --git a/pkgs/by-name/ni/nice-dcv-client/fix-paths.patch b/pkgs/by-name/ni/nice-dcv-client/fix-paths.patch new file mode 100644 index 000000000000..430274c370fc --- /dev/null +++ b/pkgs/by-name/ni/nice-dcv-client/fix-paths.patch @@ -0,0 +1,31 @@ +--- a/usr/bin/dcvviewer ++++ b/usr/bin/dcvviewer +@@ -13,7 +13,7 @@ + + basedir="${_dir}/usr" + else +- basedir=/usr ++ basedir=@basedir@ + fi + + bindir=${basedir}/bin +@@ -33,15 +33,15 @@ + + export LD_LIBRARY_PATH="${libdir}/${variant}:${libdir}:/usr/share/${variant}/cef:${LD_LIBRARY_PATH}" + export XDG_DATA_DIRS="${datadir}:${XDG_DATA_DIRS}:/usr/share:/usr/local/share" +-export GIO_EXTRA_MODULES="${libdir}/${variant}/gio/modules" +-export GST_PLUGIN_SCANNER="${libexecdir}/${variant}/gst-plugin-scanner" +-export GST_PLUGIN_SYSTEM_PATH="${libdir}/${variant}/gstreamer-1.0" ++export GIO_EXTRA_MODULES=@gio_extra_modules@ ++export GST_PLUGIN_SCANNER=@gst_plugin_scanner@ ++export GST_PLUGIN_SYSTEM_PATH=@gst_plugin_system_path@ + export GTK_PATH="${libdir}/${variant}" + export PANGO_LIBDIR="${libdir}/${variant}" + export GDK_PIXBUF_MODULE_FILE="${libdir}/${variant}/gdk-pixbuf-2.0/2.10.0/loaders.cache" + export GSETTINGS_SCHEMA_DIR="${datadir}/${variant}/schemas" + export FONTCONFIG_PATH="${sysconfdir}/fonts" +-export DCV_SASL_PLUGIN_DIR="${libdir}/dcvviewer/sasl2" ++export DCV_SASL_PLUGIN_DIR=@dcv_sasl_plugin_dir@ + + case "$1" in + --gdb) diff --git a/pkgs/by-name/ni/nice-dcv-client/package.nix b/pkgs/by-name/ni/nice-dcv-client/package.nix index f27c4c5b6fb9..49ad07072120 100644 --- a/pkgs/by-name/ni/nice-dcv-client/package.nix +++ b/pkgs/by-name/ni/nice-dcv-client/package.nix @@ -2,89 +2,119 @@ lib, stdenv, fetchurl, - glib, - libx11, - gst_all_1, - libepoxy, - pango, - cairo, - gdk-pixbuf, - e2fsprogs, - libkrb5, - libva, - openssl, - pcsclite, - gtk3, - libselinux, - libxml2, - libffi, + autoPatchelfHook, + replaceVars, + wrapGAppsHook4, python3Packages, cpio, - autoPatchelfHook, - wrapGAppsHook3, + cups, + cyrus_sasl, + gdk-pixbuf, + glib, + glib-networking, + gst_all_1, + gtk4, + libfido2, + libva, + lz4, + pcsclite, + protobufc, }: - -stdenv.mkDerivation rec { +let pname = "nice-dcv-client"; - version = "2021.2.3797-1"; + version = "2025.0.8846-1"; +in +stdenv.mkDerivation { + inherit version pname; + src = fetchurl { - url = "https://d1uj6qtbmh3dt5.cloudfront.net/2021.2/Clients/nice-dcv-viewer-${version}.el8.x86_64.rpm"; - sha256 = "sha256-iLz25SB5v7ghkAZOMGPmpNaPihd8ikzCQS//r1xBNRU="; + url = "https://d1uj6qtbmh3dt5.cloudfront.net/${lib.versions.majorMinor version}/Clients/nice-dcv-viewer-${version}.el9.x86_64.rpm"; + sha256 = "sha256-JYvOxwSQQKjTLvpfpAQe1tqHS4QsshYJyzC5kIFEZLc="; }; nativeBuildInputs = [ autoPatchelfHook - wrapGAppsHook3 + wrapGAppsHook4 python3Packages.rpm ]; + unpackPhase = '' rpm2cpio $src | ${cpio}/bin/cpio -idm ''; buildInputs = [ - libselinux - libkrb5 - libxml2 - libva - e2fsprogs - libx11 - openssl - pcsclite - gtk3 - cairo - libepoxy - pango + cups + cyrus_sasl gdk-pixbuf + gtk4 + libfido2 + libva + lz4 + pcsclite + protobufc gst_all_1.gstreamer gst_all_1.gst-plugins-base ]; - installPhase = '' - mkdir -p $out/bin/ - mkdir -p $out/lib64/ - mv usr/bin/dcvviewer $out/bin/dcvviewer - mv usr/lib64/* $out/lib64/ - mkdir -p $out/libexec/dcvviewer - mv usr/libexec/dcvviewer/dcvviewer $out/libexec/dcvviewer/dcvviewer - patchelf \ - --set-interpreter $(cat $NIX_CC/nix-support/dynamic-linker) \ - $out/libexec/dcvviewer/dcvviewer - # Fix the wrapper script to have the right basedir. - sed -i "s#basedir=/usr#basedir=$out#" $out/bin/dcvviewer - mv usr/share $out/ + installPhase = + let + gst_plugin_system_path = lib.makeSearchPath "lib/gstreamer-1.0/" ( + with gst_all_1; + [ + gstreamer + gst-plugins-base + gst-plugins-good + ] + ); + fixPathsPatch = replaceVars ./fix-paths.patch { + basedir = null; + gio_extra_modules = "${glib-networking}/lib/gio/modules"; + gst_plugin_scanner = "${gst_all_1.gstreamer.out}/libexec/gstreamer-1.0/gst-plugin-scanner"; + gst_plugin_system_path = gst_plugin_system_path; + dcv_sasl_plugin_dir = "${cyrus_sasl.out}/lib/sasl2"; + }; + in + '' + # Fix the wrapper script paths. + patch -p1 < ${fixPathsPatch} + substituteInPlace usr/bin/dcvviewer \ + --replace-fail '@basedir@' "$out" - ${glib.dev}/bin/glib-compile-schemas $out/share/glib-2.0/schemas + mkdir -p $out/bin/ + mv usr/bin/dcvviewer $out/bin/dcvviewer - # we already ship libffi.so.7 - ln -s ${lib.getLib libffi}/lib/libffi.so $out/lib64/libffi.so.6 - ''; + mkdir -p $out/libexec/dcvviewer + mv \ + usr/libexec/dcvviewer/dcvextensionswatchdog \ + usr/libexec/dcvviewer/dcvviewer \ + $out/libexec/dcvviewer + patchelf \ + --set-interpreter $(cat $NIX_CC/nix-support/dynamic-linker) \ + $out/libexec/dcvviewer/dcvviewer - meta = { + mkdir -p $out/lib64/dcvviewer + mv \ + ./usr/lib64/dcvviewer/libavcodec.so.61 \ + ./usr/lib64/dcvviewer/libavutil.so.59 \ + ./usr/lib64/dcvviewer/libdcv.so \ + ./usr/lib64/dcvviewer/libsoup-3.0.so.0 \ + $out/lib64/dcvviewer + + mv usr/share $out/ + rm -rf $out/usr/share/doc + + ${glib.dev}/bin/glib-compile-schemas $out/share/glib-2.0/schemas + ''; + + meta = with lib; { description = "High-performance remote display protocol"; homepage = "https://aws.amazon.com/hpc/dcv/"; - sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ]; - license = lib.licenses.unfree; + sourceProvenance = with sourceTypes; [ binaryNativeCode ]; + license = licenses.unfree; platforms = [ "x86_64-linux" ]; - maintainers = with lib.maintainers; [ rmcgibbo ]; + maintainers = with maintainers; [ + rmcgibbo + jhol + ]; }; }