about summary refs log tree commit diff
path: root/pkgs/applications/misc/gnuradio
diff options
context:
space:
mode:
authorBjørn Forsman <bjorn.forsman@gmail.com>2013-05-02 12:44:36 +0200
committerBjørn Forsman <bjorn.forsman@gmail.com>2013-11-09 22:16:55 +0100
commit25b822db3786ad3f59e27db679c521ce6cd29b81 (patch)
tree34d732cafadaf176440b18eda9d85c545f40174b /pkgs/applications/misc/gnuradio
parent57071b221307168b4e823c1967dedbf3138e7de2 (diff)
downloadnixlib-25b822db3786ad3f59e27db679c521ce6cd29b81.tar
nixlib-25b822db3786ad3f59e27db679c521ce6cd29b81.tar.gz
nixlib-25b822db3786ad3f59e27db679c521ce6cd29b81.tar.bz2
nixlib-25b822db3786ad3f59e27db679c521ce6cd29b81.tar.lz
nixlib-25b822db3786ad3f59e27db679c521ce6cd29b81.tar.xz
nixlib-25b822db3786ad3f59e27db679c521ce6cd29b81.tar.zst
nixlib-25b822db3786ad3f59e27db679c521ce6cd29b81.zip
gnuradio: new package
Add GNU Radio, the free & open-source software development toolkit that
provides signal processing blocks to implement software radios.
Diffstat (limited to 'pkgs/applications/misc/gnuradio')
-rw-r--r--pkgs/applications/misc/gnuradio/default.nix76
1 files changed, 76 insertions, 0 deletions
diff --git a/pkgs/applications/misc/gnuradio/default.nix b/pkgs/applications/misc/gnuradio/default.nix
new file mode 100644
index 000000000000..3c47e3bf8a82
--- /dev/null
+++ b/pkgs/applications/misc/gnuradio/default.nix
@@ -0,0 +1,76 @@
+{ stdenv, fetchurl
+# core dependencies
+, cmake, pkgconfig, git, boost, cppunit, fftw
+# python wrappers
+, python, swig2, numpy, scipy, matplotlib
+# grc - the gnu radio companion
+, cheetahTemplate, pygtk
+# gr-wavelet: collection of wavelet blocks
+, gsl
+# gr-qtgui: the Qt-based GUI
+, qt4, qwt, pyqt4 #, pyqwt
+# gr-wxgui: the Wx-based GUI
+, wxPython, lxml
+# gr-audio: audio subsystems (system/OS dependent)
+, alsaLib
+# uhd: the Ettus USRP Hardware Driver Interface
+, uhd
+# gr-video-sdl: PAL and NTSC display
+, SDL
+, libusb1, orc, pyopengl
+, makeWrapper }:
+
+stdenv.mkDerivation rec {
+  name = "gnuradio-${version}";
+  version = "3.7.1";
+
+  src = fetchurl {
+    url = "http://gnuradio.org/releases/gnuradio/${name}.tar.gz";
+    sha256 = "1kfni8vpgr6v9rdiz3zsmwc07qj6zka9x22z2y0y4rak2xnzdxz9";
+  };
+
+  buildInputs = [
+    cmake pkgconfig git boost cppunit fftw python swig2 orc lxml qt4 qwt
+    alsaLib SDL libusb1 uhd gsl makeWrapper
+  ];
+
+  propagatedBuildInputs = [
+    cheetahTemplate numpy scipy matplotlib pyqt4 pygtk wxPython pyopengl
+  ];
+
+  preConfigure = ''
+    export NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE -Wno-unused-variable"
+  '';
+
+  # - Ensure we get an interactive backend for matplotlib. If not the gr_plot_*
+  #   programs will not display anything. Yes, $MATPLOTLIBRC must point to the
+  #   *dirname* where matplotlibrc is located, not the file itself.
+  # - GNU Radio core is C++ but the user interface (GUI and API) is Python, so
+  #   we must wrap the stuff in bin/.
+  postInstall = ''
+    printf "backend : Qt4Agg\n" > "$out/share/gnuradio/matplotlibrc"
+
+    for file in "$out"/bin/*; do
+        wrapProgram "$file" \
+            --set PYTHONPATH $PYTHONPATH:$(toPythonPath "$out") \
+            --set MATPLOTLIBRC "$out/share/gnuradio"
+    done
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Software Defined Radio (SDR) software";
+    longDescription = ''
+      GNU Radio is a free & open-source software development toolkit that
+      provides signal processing blocks to implement software radios. It can be
+      used with readily-available low-cost external RF hardware to create
+      software-defined radios, or without hardware in a simulation-like
+      environment. It is widely used in hobbyist, academic and commercial
+      environments to support both wireless communications research and
+      real-world radio systems.
+    '';
+    homepage = http://www.gnuradio.org;
+    license = licenses.gpl3;
+    platforms = platforms.linux;
+    maintainers = [ maintainers.bjornfor ];
+  };
+}