dotfiles/packages/librevna/default.nix
2025-06-29 20:47:46 +02:00

72 lines
1.8 KiB
Nix

# vim: et:ts=2:sw=2:
{
lib,
stdenv,
autoPatchelfHook,
makeWrapper,
xkeyboard_config,
libusb1,
fetchzip,
writeText,
unzip,
qt6,
}:
let
desktopFile = writeText "librevna.desktop" ''
[Desktop Entry]
Type=Application
Name=LibreVNA
Exec=/run/current-system/sw/bin/librevna
Categories=Development;
'';
librevna = stdenv.mkDerivation {
pname = "librevna";
version = "1.6.4";
nativeBuildInputs = [
autoPatchelfHook
qt6.wrapQtAppsHook
makeWrapper
unzip
];
buildInputs = [
qt6.qtbase
libusb1
];
src =
if stdenv.isDarwin then
fetchzip {
url = "https://github.com/jankae/LibreVNA/releases/download/v1.6.4/LibreVNA-GUI-OSX-latest-v${librevna.version}.zip";
hash = "";
}
else if stdenv.isAarch64 then
fetchzip {
url = "https://github.com/jankae/LibreVNA/releases/download/v1.6.4/LibreVNA-GUI-RPi5-v${librevna.version}.zip";
hash = "";
}
else
fetchzip {
url = "https://github.com/jankae/LibreVNA/releases/download/v1.6.4/LibreVNA-GUI-Ubuntu-v${librevna.version}.zip";
hash = "sha256-s8LjsmBEpJeXrWHPkKTSPV/ux4VMG7hXC9ySotE9nAE=";
};
installPhase = ''
mkdir -p $out/bin
cp -r LibreVNA-GUI $out/bin/.librevna-gui
chmod +x $out/bin/.librevna-gui
mkdir -p $out/share/applications
cp ${desktopFile} $out/share/applications/librevna.desktop
mkdir -p $out/bin
makeWrapper $out/bin/.librevna-gui \
$out/bin/librevna \
--prefix "QT_XKB_CONFIG_ROOT" ":" "${xkeyboard_config}/share/X11/xkb" \
--prefix "LD_LIBRARY_PATH" ":" "${lib.makeLibraryPath librevna.buildInputs}"
'';
};
in
librevna