diff --git a/nixos/packages/default.pkgs.nix b/nixos/packages/default.pkgs.nix index 9abd8f9..744af99 100644 --- a/nixos/packages/default.pkgs.nix +++ b/nixos/packages/default.pkgs.nix @@ -149,6 +149,7 @@ with pkgs; deprekages.rfe-fwupdate deprekages.rfe-touch deprekages.rfe-signal + deprekages.librevna # For editors. fish diff --git a/packages/default.nix b/packages/default.nix index abd4e7c..c04f1dc 100644 --- a/packages/default.nix +++ b/packages/default.nix @@ -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 { }; diff --git a/packages/librevna/default.nix b/packages/librevna/default.nix new file mode 100644 index 0000000..7024378 --- /dev/null +++ b/packages/librevna/default.nix @@ -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