add librevna

This commit is contained in:
Kate 2025-06-29 20:47:46 +02:00
parent 2741d485c4
commit f2ced72c9e
3 changed files with 80 additions and 6 deletions

View file

@ -149,6 +149,7 @@ with pkgs;
deprekages.rfe-fwupdate
deprekages.rfe-touch
deprekages.rfe-signal
deprekages.librevna
# For editors.
fish

View file

@ -32,11 +32,6 @@ flake-utils.lib.eachDefaultSystem (
ffts = callPackage ./scopehal-apps/ffts.nix { };
libsigrok4DSL = callPackage ./scopehal-apps/libsigrok4DSL.nix { };
vulkan-sdk = callPackage ./scopehal-apps/vulkan-sdk.nix { };
dsview = pkgs.libsForQt5.callPackage ./dsview { };
scopehal-apps = callPackage ./scopehal-apps { deprekages = deprekages.${system}; };
scopehal-sigrok-bridge = callPackage ./scopehal-apps/sigrok-bridge.nix {
deprekages = deprekages.${system};
};
# apps
navit = callPackage ./navit.nix { };
@ -72,10 +67,16 @@ flake-utils.lib.eachDefaultSystem (
vja = callPackage ./vja.nix { };
gimgtools = callPackage ./gimgtools.nix { };
# rf explorer
# lab tools
librevna = callPackage ./librevna { };
rfe-fwupdate = callPackage ./rfe-fwupdate.nix { };
rfe-touch = callPackage ./rfe-touch.nix { };
rfe-signal = callPackage ./rfe-signal.nix { };
dsview = pkgs.libsForQt5.callPackage ./dsview { };
scopehal-apps = callPackage ./scopehal-apps { deprekages = deprekages.${system}; };
scopehal-sigrok-bridge = callPackage ./scopehal-apps/sigrok-bridge.nix {
deprekages = deprekages.${system};
};
# libraries
libnfc-nci = callPackage ./libnfc-nci { };

View file

@ -0,0 +1,72 @@
# 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