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