nur-packages

My NUR packages
git clone git://git.sikmir.ru/nur-packages
Log | Files | Refs | README | LICENSE

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 }