From 205038b1f7a1025f66b319b8fb7605a9bd0ac71a Mon Sep 17 00:00:00 2001 From: Henner Zeller Date: Sat, 20 Jan 2024 16:14:45 -0800 Subject: sdrpp: 1.0.4 -> 1.1.0-unstable-2024-01-22 sdrpp switched to a rolling release, so take a git hash from head. --- pkgs/applications/radio/sdrpp/default.nix | 107 ++++++++++++++++++------------ 1 file changed, 66 insertions(+), 41 deletions(-) (limited to 'pkgs/applications') diff --git a/pkgs/applications/radio/sdrpp/default.nix b/pkgs/applications/radio/sdrpp/default.nix index 9926fab1a7469..76fa70984c20d 100644 --- a/pkgs/applications/radio/sdrpp/default.nix +++ b/pkgs/applications/radio/sdrpp/default.nix @@ -1,45 +1,57 @@ { stdenv, lib, fetchFromGitHub, cmake, pkg-config -, libX11, glfw, glew, fftwFloat, volk, AppKit +, libX11, glfw, glew, fftwFloat, volk, zstd, AppKit # Sources , airspy_source ? true, airspy , airspyhf_source ? true, airspyhf -, bladerf_source ? false, libbladeRF +, bladerf_source ? true, libbladeRF , file_source ? true , hackrf_source ? true, hackrf -, limesdr_source ? false, limesuite -, sddc_source ? false -, rtl_sdr_source ? true, rtl-sdr, libusb1 +, limesdr_source ? true, limesuite +, perseus_source ? false # needs libperseus-sdr, not yet available in nixpks +, plutosdr_source ? stdenv.isLinux, libiio, libad9361 +, rfspace_source ? true +, rtl_sdr_source ? true, rtl-sdr-osmocom, libusb1 # osmocom better w/ rtlsdr v4 , rtl_tcp_source ? true , sdrplay_source ? false, sdrplay , soapy_source ? true, soapysdr , spyserver_source ? true -, plutosdr_source ? stdenv.isLinux, libiio, libad9361 +, usrp_source ? false, uhd, boost + # Sinks , audio_sink ? true, rtaudio -, portaudio_sink ? false, portaudio , network_sink ? true +, portaudio_sink ? false, portaudio + # Decoders , falcon9_decoder ? false , m17_decoder ? false, codec2 , meteor_demodulator ? true , radio ? true -, weather_sat_decoder ? true +, weather_sat_decoder ? false # is missing some dsp/pll.h + # Misc , discord_presence ? true , frequency_manager ? true , recorder ? true , rigctl_server ? true +, scanner ? true }: stdenv.mkDerivation rec { pname = "sdrpp"; - version = "1.0.4"; + + # SDR++ uses a rolling release model. + # Choose a git hash from head and use the date from that commit as + # version qualifier + git_hash = "27ab5bf3c194169ddf60ca312723fce96149cc8e"; + git_date = "2024-01-22"; + version = "1.1.0-unstable-" + git_date; src = fetchFromGitHub { owner = "AlexandreRouma"; repo = "SDRPlusPlus"; - rev = version; - hash = "sha256-g9tpWvVRMXRhPfgvOeJhX6IMouF9+tLUr9wo5r35i/c="; + rev = git_hash; + hash = "sha256-R4xWeqdHEAaje37VQaGlg+L2iYIOH4tXMHvZkZq4SDU="; }; patches = [ ./runtime-prefix.patch ]; @@ -50,11 +62,14 @@ stdenv.mkDerivation rec { --replace "set(CMAKE_INSTALL_PREFIX" "#set(CMAKE_INSTALL_PREFIX" substituteInPlace decoder_modules/m17_decoder/src/m17dsp.h \ --replace "codec2.h" "codec2/codec2.h" + # Since the __TIME_ and __DATE__ is canonicalized in the build, + # use our qualified version shown in the programs window title. + substituteInPlace core/src/version.h --replace "1.1.0" "$version" ''; nativeBuildInputs = [ cmake pkg-config ]; - buildInputs = [ glfw glew fftwFloat volk ] + buildInputs = [ glfw glew fftwFloat volk zstd ] ++ lib.optional stdenv.isDarwin AppKit ++ lib.optional stdenv.isLinux libX11 ++ lib.optional airspy_source airspy @@ -62,42 +77,52 @@ stdenv.mkDerivation rec { ++ lib.optional bladerf_source libbladeRF ++ lib.optional hackrf_source hackrf ++ lib.optional limesdr_source limesuite - ++ lib.optionals rtl_sdr_source [ rtl-sdr libusb1 ] + ++ lib.optionals rtl_sdr_source [ rtl-sdr-osmocom libusb1 ] ++ lib.optional sdrplay_source sdrplay ++ lib.optional soapy_source soapysdr ++ lib.optionals plutosdr_source [ libiio libad9361 ] + ++ lib.optionals usrp_source [ uhd boost ] ++ lib.optional audio_sink rtaudio ++ lib.optional portaudio_sink portaudio ++ lib.optional m17_decoder codec2; - cmakeFlags = lib.mapAttrsToList (k: v: "-D${k}=${if v then "ON" else "OFF"}") { - OPT_BUILD_AIRSPY_SOURCE = airspy_source; - OPT_BUILD_AIRSPYHF_SOURCE = airspyhf_source; - OPT_BUILD_BLADERF_SOURCE = bladerf_source; - OPT_BUILD_FILE_SOURCE = file_source; - OPT_BUILD_HACKRF_SOURCE = hackrf_source; - OPT_BUILD_LIMESDR_SOURCE = limesdr_source; - OPT_BUILD_SDDC_SOURCE = sddc_source; - OPT_BUILD_RTL_SDR_SOURCE = rtl_sdr_source; - OPT_BUILD_RTL_TCP_SOURCE = rtl_tcp_source; - OPT_BUILD_SDRPLAY_SOURCE = sdrplay_source; - OPT_BUILD_SOAPY_SOURCE = soapy_source; - OPT_BUILD_SPYSERVER_SOURCE = spyserver_source; - OPT_BUILD_PLUTOSDR_SOURCE = plutosdr_source; - OPT_BUILD_AUDIO_SINK = audio_sink; - OPT_BUILD_PORTAUDIO_SINK = portaudio_sink; - OPT_BUILD_NETWORK_SINK = network_sink; - OPT_BUILD_NEW_PORTAUDIO_SINK = portaudio_sink; - OPT_BUILD_FALCON9_DECODER = falcon9_decoder; - OPT_BUILD_M17_DECODER = m17_decoder; - OPT_BUILD_METEOR_DEMODULATOR = meteor_demodulator; - OPT_BUILD_RADIO = radio; - OPT_BUILD_WEATHER_SAT_DECODER = weather_sat_decoder; - OPT_BUILD_DISCORD_PRESENCE = discord_presence; - OPT_BUILD_FREQUENCY_MANAGER = frequency_manager; - OPT_BUILD_RECORDER = recorder; - OPT_BUILD_RIGCTL_SERVER = rigctl_server; - }; + cmakeFlags = [ + # Sources + (lib.cmakeBool "OPT_BUILD_AIRSPYHF_SOURCE" airspyhf_source) + (lib.cmakeBool "OPT_BUILD_AIRSPY_SOURCE" airspy_source) + (lib.cmakeBool "OPT_BUILD_BLADERF_SOURCE" bladerf_source) + (lib.cmakeBool "OPT_BUILD_FILE_SOURCE" file_source) + (lib.cmakeBool "OPT_BUILD_HACKRF_SOURCE" hackrf_source) + (lib.cmakeBool "OPT_BUILD_LIMESDR_SOURCE" limesdr_source) + (lib.cmakeBool "OPT_BUILD_PERSEUS_SOURCE" perseus_source) + (lib.cmakeBool "OPT_BUILD_PLUTOSDR_SOURCE" plutosdr_source) + (lib.cmakeBool "OPT_BUILD_RFSPACE_SOURCE" rfspace_source) + (lib.cmakeBool "OPT_BUILD_RTL_SDR_SOURCE" rtl_sdr_source) + (lib.cmakeBool "OPT_BUILD_RTL_TCP_SOURCE" rtl_tcp_source) + (lib.cmakeBool "OPT_BUILD_SDRPLAY_SOURCE" sdrplay_source) + (lib.cmakeBool "OPT_BUILD_SOAPY_SOURCE" soapy_source) + (lib.cmakeBool "OPT_BUILD_SPYSERVER_SOURCE" spyserver_source) + (lib.cmakeBool "OPT_BUILD_USRP_SOURCE" usrp_source) + + # Sinks + (lib.cmakeBool "OPT_BUILD_AUDIO_SINK" audio_sink) + (lib.cmakeBool "OPT_BUILD_NETWORK_SINK" network_sink) + (lib.cmakeBool "OPT_BUILD_NEW_PORTAUDIO_SINK" portaudio_sink) + + # Decoders + (lib.cmakeBool "OPT_BUILD_FALCON9_DECODER" falcon9_decoder) + (lib.cmakeBool "OPT_BUILD_M17_DECODER" m17_decoder) + (lib.cmakeBool "OPT_BUILD_METEOR_DEMODULATOR" meteor_demodulator) + (lib.cmakeBool "OPT_BUILD_RADIO" radio) + (lib.cmakeBool "OPT_BUILD_WEATHER_SAT_DECODER" weather_sat_decoder) + + # Misc + (lib.cmakeBool "OPT_BUILD_DISCORD_PRESENCE" discord_presence) + (lib.cmakeBool "OPT_BUILD_FREQUENCY_MANAGER" frequency_manager) + (lib.cmakeBool "OPT_BUILD_RECORDER" recorder) + (lib.cmakeBool "OPT_BUILD_RIGCTL_SERVER" rigctl_server) + (lib.cmakeBool "OPT_BUILD_SCANNER" scanner) + ]; env.NIX_CFLAGS_COMPILE = "-fpermissive"; -- cgit 1.4.1