Hi, I’m trying to run net-logger so I can run my local ham-radio nets. I’m 90% of the way there but it uses a custom environment variable (NETLOGGER_QT_PLUGINS_PATH) to load qt 5 plugins (which I think is just the location of libqgif.so and libqjpeg.so) and core-dumps if it’s set to an empty string.
I want to use wrapQtArgs to set the variable but first how do I find where the plugins are? is there some build variable like ${qtbase}/plugins that I can use?
the default.nix is
let
nixpkgs = fetchTarball "https://github.com/NixOS/nixpkgs/tarball/nixos-26.05";
pkgs = import nixpkgs { config = {}; overlays = []; };
in
{
netlogger = pkgs.qt5.callPackage ./netlogger.nix { };
}
and netlogger.nix is
{
mkDerivation,
qtbase,
fetchzip,
autoPatchelfHook,
pkgs,
}:
mkDerivation {
pname = "NetLogger";
version = "3.1.7";
buildInputs = [
pkgs.gnutls
qtbase
];
# this is a script we will need in the `postFixup` phase witch patches
# the library paths in the (pre-built) executable
nativeBuildInputs = [
pkgs.qt5.wrapQtAppsHook # this provides the dependencies for qt5 apps
autoPatchelfHook # but you still need this to rewrite other paths
];
src = fetchzip {
url = "https://www.netlogger.org/downloads/NetLogger_3.1.7_Linux_x64.tgz";
stripRoot=false; # this zip file contains a readme, install script, and a
# nested tar file
hash="sha256-+B1dVx7we+BTuhvFzC38HIS8N2Vb8HdsqLMO4IPgzvQ=";
};
dontBuild = true;
installPhase = ''
tar -xz -f $src/netlogger_$version.tgz ./netlogger
chmod u+x ./netlogger
mkdir -p $out
mv ./netlogger $out
'';
}