Merge pull request #27344 from lukeadams/gnuradio-update
Gnuradio: Enable Darwin Support
This commit is contained in:
commit
1e5bdbb273
|
@ -7,13 +7,14 @@ assert pythonSupport -> python != null && swig != null;
|
|||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "gnuradio-ais-${version}";
|
||||
version = "2016-08-26";
|
||||
version = "2015-12-20";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "bistromath";
|
||||
repo = "gr-ais";
|
||||
rev = "1863d1bf8a7709a8dfedb3ddb8e2b99112e7c872";
|
||||
sha256 = "1vl3kk8xr2mh5lf31zdld7yzmwywqffffah8iblxdzblgsdwxfl6";
|
||||
# Upstream PR: https://github.com/bistromath/gr-ais/commit/8502d0252a2a1a9b8d1a71795eaeb5d820684054
|
||||
"rev" = "8502d0252a2a1a9b8d1a71795eaeb5d820684054";
|
||||
"sha256" = "1b9j0kc74cw12a7jv4lii77dgzqzg2s8ndzp4xmisxksgva1qfvh";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ pkgconfig ];
|
||||
|
@ -27,11 +28,13 @@ stdenv.mkDerivation rec {
|
|||
done
|
||||
'';
|
||||
|
||||
enableParallelBuilding = true;
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
description = "Gnuradio block for ais";
|
||||
homepage = https://github.com/bistromath/gr-ais;
|
||||
license = licenses.gpl3Plus;
|
||||
platforms = platforms.linux;
|
||||
platforms = platforms.linux ++ platforms.darwin;
|
||||
maintainers = with maintainers; [ mog ];
|
||||
};
|
||||
}
|
||||
|
|
|
@ -27,11 +27,13 @@ stdenv.mkDerivation rec {
|
|||
done
|
||||
'';
|
||||
|
||||
enableParallelBuilding = true;
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
description = "Gnuradio block for gsm";
|
||||
homepage = https://github.com/ptrkrysik/gr-gsm;
|
||||
license = licenses.gpl3Plus;
|
||||
platforms = platforms.linux;
|
||||
platforms = platforms.linux ++ platforms.darwin;
|
||||
maintainers = with maintainers; [ mog ];
|
||||
};
|
||||
}
|
||||
|
|
|
@ -27,11 +27,13 @@ stdenv.mkDerivation rec {
|
|||
done
|
||||
'';
|
||||
|
||||
enableParallelBuilding = true;
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
description = "Gnuradio block for encryption";
|
||||
homepage = https://github.com/stwunsch/gr-nacl;
|
||||
license = licenses.gpl3Plus;
|
||||
platforms = platforms.linux;
|
||||
platforms = platforms.linux ++ platforms.darwin;
|
||||
maintainers = with maintainers; [ mog ];
|
||||
};
|
||||
}
|
||||
|
|
|
@ -26,11 +26,13 @@ stdenv.mkDerivation rec {
|
|||
done
|
||||
'';
|
||||
|
||||
enableParallelBuilding = true;
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
description = "Gnuradio block for OsmoSDR and rtl-sdr";
|
||||
homepage = http://sdr.osmocom.org/trac/wiki/GrOsmoSDR;
|
||||
homepage = https://sdr.osmocom.org/trac/wiki/GrOsmoSDR;
|
||||
license = licenses.gpl3Plus;
|
||||
platforms = platforms.linux;
|
||||
platforms = platforms.linux ++ platforms.darwin;
|
||||
maintainers = with maintainers; [ bjornfor the-kenny ];
|
||||
};
|
||||
}
|
||||
|
|
|
@ -26,11 +26,13 @@ stdenv.mkDerivation rec {
|
|||
done
|
||||
'';
|
||||
|
||||
enableParallelBuilding = true;
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
description = "Gnuradio block for radio data system";
|
||||
homepage = https://github.com/bastibl/gr-rds;
|
||||
license = licenses.gpl2Plus;
|
||||
platforms = platforms.linux;
|
||||
platforms = platforms.linux ++ platforms.darwin;
|
||||
maintainers = with maintainers; [ mog ];
|
||||
};
|
||||
}
|
||||
|
|
|
@ -1,41 +1,51 @@
|
|||
{ stdenv, fetchurl
|
||||
# core dependencies
|
||||
{ stdenv, fetchFromGitHub, writeText, makeWrapper
|
||||
# Dependencies documented @ https://gnuradio.org/doc/doxygen/build_guide.html
|
||||
# => core dependencies
|
||||
, cmake, pkgconfig, git, boost, cppunit, fftw
|
||||
# python wrappers
|
||||
# => python wrappers
|
||||
# May be able to upgrade to swig3
|
||||
, python, swig2, numpy, scipy, matplotlib
|
||||
# grc - the gnu radio companion
|
||||
# => grc - the gnu radio companion
|
||||
, cheetah, pygtk
|
||||
# gr-wavelet: collection of wavelet blocks
|
||||
# => gr-wavelet: collection of wavelet blocks
|
||||
, gsl
|
||||
# gr-qtgui: the Qt-based GUI
|
||||
, qt4, qwt, pyqt4 #, pyqwt
|
||||
# gr-wxgui: the Wx-based GUI
|
||||
# => gr-qtgui: the Qt-based GUI
|
||||
, qt4, qwt, pyqt4
|
||||
# => gr-wxgui: the Wx-based GUI
|
||||
, wxPython, lxml
|
||||
# gr-audio: audio subsystems (system/OS dependent)
|
||||
, alsaLib
|
||||
# uhd: the Ettus USRP Hardware Driver Interface
|
||||
# => gr-audio: audio subsystems (system/OS dependent)
|
||||
, alsaLib # linux 'audio-alsa'
|
||||
, CoreAudio # darwin 'audio-osx'
|
||||
# => uhd: the Ettus USRP Hardware Driver Interface
|
||||
, uhd
|
||||
# gr-video-sdl: PAL and NTSC display
|
||||
# => gr-video-sdl: PAL and NTSC display
|
||||
, SDL
|
||||
# Other
|
||||
, libusb1, orc, pyopengl
|
||||
, makeWrapper
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "gnuradio-${version}";
|
||||
version = "3.7.11";
|
||||
version = "3.7.11.1";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://gnuradio.org/releases/gnuradio/${name}.tar.gz";
|
||||
sha256 = "1m2jf8lafr6pr2dlm40nbvr6az8gwjfkzpbs4fxzv3l5hcqvmnc7";
|
||||
src = fetchFromGitHub {
|
||||
owner = "gnuradio";
|
||||
repo = "gnuradio";
|
||||
rev = "6d2221196082a4954c249dc6955e33d5832a56f2";
|
||||
sha256 = "1fkrb8cnjbriy2x94lz73q6aqxar1rkvfbafp266ykdpm29b4xgm";
|
||||
fetchSubmodules = true;
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ pkgconfig ];
|
||||
buildInputs = [
|
||||
cmake git boost cppunit fftw python swig2 orc lxml qt4
|
||||
qwt alsaLib SDL libusb1 uhd gsl makeWrapper
|
||||
nativeBuildInputs = [
|
||||
cmake pkgconfig git makeWrapper cppunit orc
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
boost fftw python swig2 lxml qt4
|
||||
qwt SDL libusb1 uhd gsl
|
||||
] ++ stdenv.lib.optionals stdenv.isLinux [ alsaLib ]
|
||||
++ stdenv.lib.optionals stdenv.isDarwin [ CoreAudio ];
|
||||
|
||||
propagatedBuildInputs = [
|
||||
cheetah numpy scipy matplotlib pyqt4 pygtk wxPython pyopengl
|
||||
];
|
||||
|
@ -48,22 +58,46 @@ stdenv.mkDerivation rec {
|
|||
--replace BOOST_CONSTEXPR_OR_CONST const
|
||||
'';
|
||||
|
||||
preConfigure = ''
|
||||
export NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE -Wno-unused-variable -std=c++11"
|
||||
# Enables composition with nix-shell
|
||||
grcSetupHook = writeText "grcSetupHook.sh" ''
|
||||
addGRCBlocksPath() {
|
||||
addToSearchPath GRC_BLOCKS_PATH $1/share/gnuradio/grc/blocks
|
||||
}
|
||||
envHooks+=(addGRCBlocksPath)
|
||||
'';
|
||||
|
||||
setupHook = [ grcSetupHook ];
|
||||
|
||||
# patch wxgui and pygtk check due to python importerror in a headless environment
|
||||
preConfigure = ''
|
||||
export NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE -Wno-unused-variable ${stdenv.lib.optionalString (!stdenv.isDarwin) "-std=c++11"}"
|
||||
sed -i 's/.*wx\.version.*/set(WX_FOUND TRUE)/g' gr-wxgui/CMakeLists.txt
|
||||
sed -i 's/.*pygtk_version.*/set(PYGTK_FOUND TRUE)/g' grc/CMakeLists.txt
|
||||
find . -name "CMakeLists.txt" -exec sed -i '1iadd_compile_options($<$<COMPILE_LANGUAGE:CXX>:-std=c++11>)' "{}" ";"
|
||||
'';
|
||||
|
||||
# Framework path needed for qwt6_qt4 but not qwt5
|
||||
cmakeFlags =
|
||||
stdenv.lib.optionals stdenv.isDarwin [ "-DCMAKE_FRAMEWORK_PATH=${qwt}/lib" ];
|
||||
|
||||
# - 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/.
|
||||
# Notes:
|
||||
# - May want to use makeWrapper instead of wrapProgram
|
||||
# - may want to change interpreter path on Python examples instead of wrapping
|
||||
# - see https://github.com/NixOS/nixpkgs/issues/22688 regarding use of --prefix / python.withPackages
|
||||
# - see https://github.com/NixOS/nixpkgs/issues/24693 regarding use of DYLD_FRAMEWORK_PATH on Darwin
|
||||
postInstall = ''
|
||||
printf "backend : Qt4Agg\n" > "$out/share/gnuradio/matplotlibrc"
|
||||
|
||||
for file in $(find $out/bin $out/share/gnuradio/examples -type f -executable); do
|
||||
wrapProgram "$file" \
|
||||
--prefix PYTHONPATH : $PYTHONPATH:$(toPythonPath "$out") \
|
||||
--set MATPLOTLIBRC "$out/share/gnuradio"
|
||||
--set MATPLOTLIBRC "$out/share/gnuradio" \
|
||||
${stdenv.lib.optionalString stdenv.isDarwin "--set DYLD_FRAMEWORK_PATH /System/Library/Frameworks"}
|
||||
done
|
||||
'';
|
||||
|
||||
|
@ -80,7 +114,7 @@ stdenv.mkDerivation rec {
|
|||
'';
|
||||
homepage = https://www.gnuradio.org;
|
||||
license = licenses.gpl3;
|
||||
platforms = platforms.linux;
|
||||
platforms = platforms.linux ++ platforms.darwin;
|
||||
maintainers = with maintainers; [ bjornfor fpletz ];
|
||||
};
|
||||
}
|
||||
|
|
|
@ -1,31 +1,37 @@
|
|||
{ stdenv, fetchFromGitHub, autoreconfHook, pcsclite, pkgconfig
|
||||
{ stdenv, fetchFromGitHub, autoreconfHook, pkgconfig
|
||||
, pcsclite, talloc, python2
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "libosmocore-${version}";
|
||||
version = "0.9.0";
|
||||
version = "0.9.6";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "osmocom";
|
||||
repo = "libosmocore";
|
||||
rev = "8649d57f507d359c99a89654aac7e19ce22db282";
|
||||
sha256 = "08mcpy9ljwb1i3l4cmlwn024q2psk5gg9f0ylgh99hy1ffx0n7am";
|
||||
rev = "3cc757df1822114bf446dc2d5f6a95da92321a25";
|
||||
sha256 = "0dk7065qcy2kjra0p8q2124p73jcyvvzz3cmhid1kx5scyxmr017";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ autoreconfHook pkgconfig ];
|
||||
buildInputs = [
|
||||
pcsclite
|
||||
propagatedBuildInputs = [
|
||||
talloc
|
||||
];
|
||||
|
||||
preConfigure = ''
|
||||
autoreconf -i -f
|
||||
'';
|
||||
nativeBuildInputs = [
|
||||
autoreconfHook pkgconfig
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
pcsclite python2
|
||||
];
|
||||
|
||||
enableParallelBuilding = true;
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
description = "libosmocore";
|
||||
homepage = https://github.com/osmocom/libosmocore;
|
||||
license = licenses.gpl2Plus;
|
||||
platforms = platforms.linux;
|
||||
platforms = platforms.linux ++ platforms.darwin;
|
||||
maintainers = with maintainers; [ mog ];
|
||||
};
|
||||
}
|
||||
|
|
|
@ -18,7 +18,7 @@ stdenv.mkDerivation rec {
|
|||
# /etc/udev/rules.d/, and there is no option to install elsewhere. So install
|
||||
# rules manually.
|
||||
# * Propagate libusb-1.0 dependency in pkg-config file.
|
||||
postInstall = ''
|
||||
postInstall = stdenv.lib.optionalString stdenv.isLinux ''
|
||||
mkdir -p "$out/etc/udev/rules.d/"
|
||||
cp ../rtl-sdr.rules "$out/etc/udev/rules.d/99-rtl-sdr.rules"
|
||||
|
||||
|
@ -31,7 +31,7 @@ stdenv.mkDerivation rec {
|
|||
description = "Turns your Realtek RTL2832 based DVB dongle into a SDR receiver";
|
||||
homepage = http://sdr.osmocom.org/trac/wiki/rtl-sdr;
|
||||
license = licenses.gpl2Plus;
|
||||
platforms = platforms.linux;
|
||||
platforms = platforms.linux ++ platforms.darwin;
|
||||
maintainers = [ maintainers.bjornfor ];
|
||||
};
|
||||
}
|
||||
|
|
|
@ -22,7 +22,7 @@ python3Packages.buildPythonApplication rec {
|
|||
inherit (src.meta) homepage;
|
||||
description = "Universal Radio Hacker: investigate wireless protocols like a boss";
|
||||
license = licenses.asl20;
|
||||
platforms = platforms.all;
|
||||
platforms = platforms.linux;
|
||||
maintainers = with maintainers; [ fpletz ];
|
||||
};
|
||||
}
|
||||
|
|
|
@ -1,20 +1,32 @@
|
|||
{ stdenv, fetchurl, qt4, qmake4Hook }:
|
||||
{ stdenv, fetchurl, qt4, qmake4Hook, AGL }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "qwt-6.1.2";
|
||||
name = "qwt-6.1.3";
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://sourceforge/qwt/${name}.tar.bz2";
|
||||
sha256 = "031x4hz1jpbirv9k35rqb52bb9mf2w7qav89qv1yfw1r3n6z221b";
|
||||
sha256 = "0cwp63s03dw351xavb3pzbjlqvx7kj88wv7v4a2b18m9f97d7v7k";
|
||||
};
|
||||
|
||||
buildInputs = [ qt4 ];
|
||||
buildInputs = [
|
||||
qt4
|
||||
] ++ stdenv.lib.optionals stdenv.isDarwin [ AGL ];
|
||||
|
||||
nativeBuildInputs = [ qmake4Hook ];
|
||||
|
||||
enableParallelBuilding = true;
|
||||
|
||||
postPatch = ''
|
||||
sed -e "s|QWT_INSTALL_PREFIX.*=.*|QWT_INSTALL_PREFIX = $out|g" -i qwtconfig.pri
|
||||
'';
|
||||
|
||||
# qwt.framework output includes a relative reference to itself, which breaks dependents
|
||||
preFixup =
|
||||
stdenv.lib.optionalString stdenv.isDarwin ''
|
||||
echo "Attempting to repair qwt"
|
||||
install_name_tool -id "$out/lib/qwt.framework/Versions/6/qwt" "$out/lib/qwt.framework/Versions/6/qwt"
|
||||
'';
|
||||
|
||||
qmakeFlags = [ "-after doc.path=$out/share/doc/${name}" ];
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
|
|
|
@ -55,7 +55,7 @@ stdenv.mkDerivation rec {
|
|||
'';
|
||||
homepage = https://uhd.ettus.com/;
|
||||
license = licenses.gpl3Plus;
|
||||
platforms = platforms.linux;
|
||||
platforms = platforms.linux ++ platforms.darwin;
|
||||
maintainers = with maintainers; [ bjornfor fpletz ];
|
||||
};
|
||||
}
|
||||
|
|
|
@ -10513,7 +10513,9 @@ with pkgs;
|
|||
|
||||
qwt = callPackage ../development/libraries/qwt {};
|
||||
|
||||
qwt6_qt4 = callPackage ../development/libraries/qwt/6_qt4.nix { };
|
||||
qwt6_qt4 = callPackage ../development/libraries/qwt/6_qt4.nix {
|
||||
inherit (darwin.apple_sdk.frameworks) AGL;
|
||||
};
|
||||
|
||||
qxt = callPackage ../development/libraries/qxt {};
|
||||
|
||||
|
@ -14656,7 +14658,9 @@ with pkgs;
|
|||
|
||||
gnuradio = callPackage ../applications/misc/gnuradio {
|
||||
inherit (python2Packages) cheetah lxml matplotlib numpy python pyopengl pyqt4 scipy wxPython pygtk;
|
||||
inherit (darwin.apple_sdk.frameworks) CoreAudio;
|
||||
fftw = fftwFloat;
|
||||
qwt = qwt6_qt4;
|
||||
};
|
||||
|
||||
gnuradio-with-packages = callPackage ../applications/misc/gnuradio/wrapper.nix {
|
||||
|
|
Loading…
Reference in New Issue