default.nix (1902B)
1 { lib, stdenv, fetchFromGitHub, fetchpatch, fftwFloat, libsamplerate, libsndfile, libusb1 2 , portaudio, rtl-sdr, qmake, qwt, wrapQtAppsHook 3 }: 4 5 stdenv.mkDerivation rec { 6 pname = "fmreceiver"; 7 version = "2.1"; 8 9 src = fetchFromGitHub { 10 owner = "JvanKatwijk"; 11 repo = "sdr-j-fm"; 12 rev = version; 13 hash = "sha256-U0m9PIB+X+TBoz5FfXMvR/tZjkNIy7B613I7eLT5UIs="; 14 }; 15 16 patches = [ 17 # support qwt-6.2.0 18 (fetchpatch { 19 url = "https://github.com/JvanKatwijk/sdr-j-fm/commit/4ca2f3a28e3e3460dc95be851fcd923e91488573.patch"; 20 hash = "sha256-tjNsg9Rc8kBn+6UzPsf1WLt+ZRYv8neG/CSyZKjObh0="; 21 }) 22 ]; 23 24 postPatch = '' 25 substituteInPlace fmreceiver.pro \ 26 --replace "-lqwt-qt5" "-lqwt" \ 27 --replace "CONFIG" "#CONFIG" 28 '' + lib.optionalString stdenv.isDarwin '' 29 substituteInPlace fmreceiver.pro --replace "-lrt " "" 30 substituteInPlace includes/fm-constants.h --replace "<malloc.h>" "<stdlib.h>" 31 substituteInPlace devices/rtlsdr-handler/rtlsdr-handler.cpp --replace ".so" ".dylib" 32 ''; 33 34 nativeBuildInputs = [ qmake wrapQtAppsHook ]; 35 36 buildInputs = [ fftwFloat libsamplerate libsndfile libusb1 portaudio qwt ]; 37 38 qmakeFlags = [ "CONFIG+=dabstick" ]; 39 40 qtWrapperArgs = [ 41 "--prefix ${lib.optionalString stdenv.isDarwin "DY"}LD_LIBRARY_PATH : ${lib.makeLibraryPath [ rtl-sdr ]}" 42 ]; 43 44 installPhase = if stdenv.isDarwin then '' 45 mkdir -p $out/Applications 46 mv linux-bin/fmreceiver-2.0.app $out/Applications/fmreceiver.app 47 install_name_tool -change {,${qwt}/lib/}libqwt.6.dylib "$out/Applications/fmreceiver.app/Contents/MacOS/fmreceiver-2.0" 48 '' else '' 49 install -Dm755 linux-bin/fmreceiver-2.0 $out/bin/fmreceiver 50 ''; 51 52 meta = with lib; { 53 description = "A simple FM receiver"; 54 inherit (src.meta) homepage; 55 license = licenses.gpl2Plus; 56 maintainers = [ maintainers.sikmir ]; 57 platforms = platforms.unix; 58 }; 59 }