nur-packages

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

package.nix (2141B)


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