125 lines
2.6 KiB
Nix
125 lines
2.6 KiB
Nix
{
|
|
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";
|
|
}
|