{ lib, fetchFromGitHub, libpulseaudio, libconfig, # Needs a gnuradio built with qt gui support gnuradio, log4cpp, thrift, # Not gnuradioPackages' codec2, gmp, gsm, libopus, libjpeg, libsndfile, libftdi, limesuite, soapysdr-with-plugins, protobuf, speex, speexdsp, cppzmq, uhd, }: gnuradio.pkgs.mkDerivation { pname = "qradiolink"; # https://github.com/qradiolink/qradiolink/tree/gr_3.10 version = "0.9.0-1-unstable-2024-08-29"; src = fetchFromGitHub { owner = "qradiolink"; repo = "qradiolink"; rev = "f1006a20e0a642d0ac20aab18b19fa97567f2621"; sha256 = "sha256-9AYFO+mmwLAH8gEpZn6qcENabc/KBMcg/0wCTKsInNY="; }; preBuild = '' cd src/ext protoc --cpp_out=. Mumble.proto protoc --cpp_out=. QRadioLink.proto cd ../.. qmake ''; installPhase = '' install -D qradiolink $out/bin/qradiolink install -Dm644 src/res/icon.png $out/share/pixmaps/qradiolink.png install -Dm644 qradiolink.desktop $out/share/applications/qradiolink.desktop ''; buildInputs = [ gnuradio.unwrapped.boost codec2 gnuradio.unwrapped.logLib # gnuradio uses it's own log library (spdlog), and qradiolink is still # using the old gnuradio log library log4cpp. Perhaps this won't be needed # once the gr_3.10 branch will mature enough to be merged into qradiolink's # master branch. log4cpp gmp libpulseaudio libconfig gsm gnuradio.pkgs.osmosdr libopus libjpeg limesuite soapysdr-with-plugins speex speexdsp gnuradio.qt.qtbase gnuradio.qt.qtmultimedia libftdi libsndfile cppzmq gnuradio.qwt uhd ] ++ lib.optionals (gnuradio.hasFeature "gr-ctrlport") [ thrift gnuradio.unwrapped.python.pkgs.thrift ]; nativeBuildInputs = [ protobuf gnuradio.qt.qmake gnuradio.qt.wrapQtAppsHook ]; meta = with lib; { description = "SDR transceiver application for analog and digital modes"; mainProgram = "qradiolink"; homepage = "http://qradiolink.org/"; license = licenses.agpl3Plus; maintainers = [ maintainers.markuskowa ]; platforms = platforms.linux; }; }