diff --git a/pkgs/by-name/nx/nxwitness-client/package.nix b/pkgs/by-name/nx/nxwitness-client/package.nix new file mode 100644 index 000000000000..e8fbdf169cab --- /dev/null +++ b/pkgs/by-name/nx/nxwitness-client/package.nix @@ -0,0 +1,124 @@ +{ + stdenv, + lib, + autoPatchelfHook, + buildFHSEnv, + dpkg, + fetchurl, + glib, + gst_all_1, + libGL, + libgudev, + libudev-zero, + libxcb, + libxkbfile, + libxml2, + libxslt, + openal, + qt6Packages, + wayland, + xcbutilimage, + xcbutilkeysyms, + xcbutilrenderutil, + xcbutilwm, +}: +let + version = "6.0.3"; + build = "40736"; + + libxml2_13 = libxml2.overrideAttrs (oldAttrs: rec { + version = "2.13.8"; + src = fetchurl { + url = "mirror://gnome/sources/libxml2/${lib.versions.majorMinor version}/libxml2-${version}.tar.xz"; + hash = "sha256-J3KUyzMRmrcbK8gfL0Rem8lDW4k60VuyzSsOhZoO6Eo="; + }; + meta = oldAttrs.meta // { + knownVulnerabilities = oldAttrs.meta.knownVulnerabilities or [ ] ++ [ + "CVE-2025-6021" + ]; + }; + }); + + buildInputs = [ + glib + gst_all_1.gst-plugins-base + gst_all_1.gstreamer + libGL + libgudev + libudev-zero + libxcb + libxkbfile + libxml2_13 + libxslt + openal + qt6Packages.qtbase + qt6Packages.qtquicktimeline + qt6Packages.qtwayland + qt6Packages.qtwebengine + qt6Packages.qtwebsockets + qt6Packages.qtwebview + wayland + xcbutilimage + xcbutilkeysyms + xcbutilrenderutil + xcbutilwm + ]; + + meta = { + description = "Desktop Client for Nx Witness Video Systems"; + homepage = "https://nxvms.com/"; + sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ]; + license = lib.licenses.unfree; + maintainers = with lib.maintainers; [ netali ]; + platforms = [ "x86_64-linux" ]; + }; + + nxwitness_client = stdenv.mkDerivation (finalAttrs: { + inherit buildInputs meta; + pname = "nxwitness-client"; + version = "${version}.${build}"; + + src = fetchurl { + url = "https://updates.networkoptix.com/default/${build}/linux/nxwitness-client-${finalAttrs.version}-linux_x64.deb"; + hash = "sha256-flOTNKklovpvtFDWE64clL3Jk1cmT4SVgs1NQZZaXpc="; + }; + + nativeBuildInputs = [ + autoPatchelfHook + dpkg + ]; + + dontUnpack = true; + dontWrapQtApps = true; + + installPhase = '' + dpkg -x $src $out + rm -r $out/usr + mv $out/opt/networkoptix/client/${finalAttrs.version}/* $out/ + rm -r $out/opt + + # remove as many vendored libs as we can + rm $out/lib/libgst* + rm $out/lib/libxkb* + rm $out/lib/libxcb* + rm $out/lib/libhidapi* + rm $out/lib/libopenal* + rm $out/lib/libXss* + rm -r $out/lib/stdcpp + rm -r $out/lib/opengl + rm -r $out/lib/libva-drivers + ''; + }); +in +# only runs in an FHS env for some reason +buildFHSEnv { + inherit (nxwitness_client) pname version meta; + targetPkgs = ( + pkgs: + [ + nxwitness_client + ] + ++ buildInputs + ); + runScript = "nxwitness_client"; +}