From 8e0c43ecfd2592e0143d23e0e1aa6d3e20a6675b Mon Sep 17 00:00:00 2001 From: Doron Behar Date: Sun, 16 Apr 2023 18:48:57 +0300 Subject: [PATCH] sdr-j-fm: init at 3.16-unstable-2023-12-07 --- pkgs/applications/radio/sdr-j-fm/default.nix | 77 ++++++++++++++++++++ pkgs/top-level/all-packages.nix | 2 + 2 files changed, 79 insertions(+) create mode 100644 pkgs/applications/radio/sdr-j-fm/default.nix diff --git a/pkgs/applications/radio/sdr-j-fm/default.nix b/pkgs/applications/radio/sdr-j-fm/default.nix new file mode 100644 index 000000000000..6c1dd5f4a0a1 --- /dev/null +++ b/pkgs/applications/radio/sdr-j-fm/default.nix @@ -0,0 +1,77 @@ +{ + lib, + stdenv, + fetchFromGitHub, + cmake, + wrapQtAppsHook, + pkg-config, + qtbase, + qwt, + fftwFloat, + libsamplerate, + portaudio, + libusb1, + libsndfile, + featuresOverride ? { }, +}: + +stdenv.mkDerivation (finalAttrs: { + pname = "sdr-j-fm"; + # The stable release doen't include the commit the came after 3.16 which + # added support for cmake options instead of using cmake set() commands. See + # also: https://github.com/JvanKatwijk/sdr-j-fm/pull/25 + version = "3.16-unstable-2023-12-07"; + + src = fetchFromGitHub { + owner = "JvanKatwijk"; + repo = "sdr-j-fm"; + rev = "8e3a67f8fbf72dd6968cbeb2e3d7d513fd107c71"; + hash = "sha256-l9WqfhDp2V01lhleYZqRpmyL1Ww+tJj10bjkMMlvyA0="; + }; + + nativeBuildInputs = [ + cmake + wrapQtAppsHook + pkg-config + ]; + + buildInputs = [ + qtbase + qwt + fftwFloat + libsamplerate + portaudio + libusb1 + libsndfile + ]; + cmakeFlags = lib.mapAttrsToList lib.cmakeBool finalAttrs.passthru.features; + + passthru = { + features = { + # All of these features don't require an external depencies, althought it + # may be implied - upstraem bundles everything they need in their repo. + AIRSPY = true; + SDRPLAY = true; + SDRPLAY_V3 = true; + HACKRF = true; + PLUTO = true; + # Some more cmake flags are mentioned in upstream's CMakeLists.txt file + # but they don't actually make a difference. + } // featuresOverride; + }; + + postInstall = '' + # Weird default of upstream + mv $out/linux-bin $out/bin + ''; + + meta = with lib; { + description = "SDR based FM radio receiver software"; + homepage = "https://github.com/JvanKatwijk/sdr-j-fm"; + license = licenses.gpl2Only; + maintainers = with maintainers; [ doronbehar ]; + # Upstream doesn't find libusb1 on Darwin. Upstream probably doesn't + # support it officially. + platforms = platforms.linux; + }; +}) diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index d89c5a2f8840..37883bb61f71 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -24258,6 +24258,8 @@ with pkgs; sdrplay = callPackage ../applications/radio/sdrplay { }; + sdr-j-fm = libsForQt5.callPackage ../applications/radio/sdr-j-fm { }; + sdrpp = callPackage ../applications/radio/sdrpp { inherit (darwin.apple_sdk.frameworks) AppKit; };