# TODO: # - fix uhd build (create uhd.spec first) # - GUIs split/subpackages? %bcond_with uhd Summary: Software defined radio framework Name: gnuradio Version: 3.7.9.2 Release: 3 License: GPL v3 Group: Applications/Engineering Source0: http://gnuradio.org/releases/gnuradio/%{name}-%{version}.tar.gz # Source0-md5: ec5532a438ae3169069a9909499fa19b Patch0: link.patch Patch1: gsl.patch Patch2: libexec.patch URL: http://www.gnuradio.org/ BuildRequires: Qt3Support >= 4.8 BuildRequires: QtCLucene-devel >= 4.8 BuildRequires: QtCore-devel >= 4.8 BuildRequires: QtDBus-devel >= 4.8 BuildRequires: QtDeclarative-devel >= 4.8 BuildRequires: QtDesigner-devel >= 4.8 BuildRequires: QtGui-devel >= 4.8 BuildRequires: QtHelp-devel >= 4.8 BuildRequires: QtNetwork-devel >= 4.8 BuildRequires: QtOpenGL-devel >= 4.8 BuildRequires: QtScript-devel >= 4.8 BuildRequires: QtScriptTools-devel >= 4.8 BuildRequires: QtSql-devel >= 4.8 BuildRequires: QtSvg-devel >= 4.8 BuildRequires: QtTest-devel >= 4.8 BuildRequires: QtUiTools-devel >= 4.8 BuildRequires: QtWebKit-devel >= 4.8 BuildRequires: QtXml-devel >= 4.8 BuildRequires: QtXmlPatterns-devel >= 4.8 BuildRequires: SDL-devel >= 1.2.0 BuildRequires: alsa-lib-devel >= 0.9 BuildRequires: boost-devel >= 1.53 BuildRequires: cmake >= 2.6 BuildRequires: cppunit-devel >= 1.9.14 BuildRequires: doxygen >= 1.5 BuildRequires: fftw3-devel >= 3.0 BuildRequires: fftw3-single-devel >= 3.0 BuildRequires: gsl-devel >= 1.10 BuildRequires: ice-devel BuildRequires: jack-audio-connection-kit-devel >= 0.8 BuildRequires: libusb-devel BuildRequires: log4cpp-devel BuildRequires: orc-devel >= 0.4.11 BuildRequires: pkgconfig BuildRequires: portaudio-devel >= 19 # R/S instead? BuildRequires: python-PyOpenGL BuildRequires: sip-PyQt4 >= 4.4 # R/S instead? BuildRequires: python-PyQwt-devel >= 5.2 BuildRequires: python-cheetah >= 2.0.0 BuildRequires: python-devel >= 2.5 BuildRequires: python-devel-tools BuildRequires: python-ice BuildRequires: python-lxml >= 1.3.6 BuildRequires: python-numpy >= 1.1.0 BuildRequires: python-pygtk-devel >= 2.10.0 # R/S instead? BuildRequires: python-wxPython-devel >= 2.8 BuildRequires: qt4-qmake >= 4.2.0 BuildRequires: qwt-devel >= 5.2 BuildRequires: sphinx-pdg BuildRequires: swig-python >= 1.3.31 BuildRequires: texlive-latex %{?with_uhd:BuildRequires: uhd-devel >= 3.0.0} BuildRequires: xdg-utils BuildRequires: xmlto Requires: portaudio Requires: python-PyQt4 Requires: python-cheetah Requires: python-lxml Requires: python-numpy Requires: python-pygtk-gtk Requires: python-scipy Requires: python-wxPython Obsoletes: grc < 0.80-1 Obsoletes: usrp < 3.3.0-1 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n) %define filterout_cpp -pipe %description GNU Radio is a collection of software that when combined with minimal hardware, allows the construction of radios where the actual waveforms transmitted and received are defined by software. What this means is that it turns the digital modulation schemes used in today's high performance wireless devices into software problems. %package devel Summary: GNU Radio development files Group: Applications/Engineering Requires: %{name} = %{version}-%{release} Requires: boost-devel Obsoletes: usrp-devel < 3.3.0-1 %description devel GNU Radio Headers. %package doc Summary: GNU Radio Group: Documentation Requires: %{name} = %{version}-%{release} %if "%{_rpmversion}" >= "5" BuildArch: noarch %endif %description doc GNU Radio Documentation. %package examples Summary: GNU Radio examples Group: Documentation Requires: %{name} = %{version}-%{release} %if "%{_rpmversion}" >= "5" BuildArch: noarch %endif %description examples GNU Radio examples. %prep %setup -q %patch0 -p1 %patch1 -p1 %patch2 -p1 %build %{__mkdir_p} build cd build %cmake -Wno-dev \ -DCMAKE_BUILD_TYPE=None \ -DENABLE_DOXYGEN=FORCE \ -DENABLE_GR_ATSC=FORCE \ -DENABLE_GR_AUDIO=FORCE \ -DENABLE_GRC=FORCE \ -DENABLE-GR_COMEDI=FORCE \ -DENABLE_GR_CORE=FORCE \ -DENABLE_GR_FCD=FORCE \ -DENABLE_GR_NOAA=FORCE \ -DENABLE_GR_PAGER=FORCE \ -DENABLE_GR_TRELLIS=FORCE \ -DENABLE_GRUEL=FORCE \ %{?with_uhd:-DENABLE_GR_UHD=FORCE} \ -DENABLE_GR_UTILS=FORCE \ -DENABLE_GR_VIDEO_SDL=FORCE \ -DENABLE_GR_VOCODER=FORCE \ -DENABLE_GR_WXGUI=FORCE \ -DENABLE_PYTHON=FORCE \ -DENABLE_VOLK=FORCE \ -DSYSCONFDIR=%{_sysconfdir} \ .. %{__make} %install rm -rf $RPM_BUILD_ROOT %{__make} -C build install \ DESTDIR=$RPM_BUILD_ROOT rm -rf inst-doc install -d inst-doc mv $RPM_BUILD_ROOT%{_docdir}/gnuradio-*/* inst-doc # filter bundled cmake files for other libraries cd $RPM_BUILD_ROOT%{_libdir}/cmake/gnuradio for f in *.cmake; do case $f in FindUHD.cmake|Gr*.cmake|Gnu*.cmake) ;; *) rm "$f" ;; esac done # remove binary from noarch examples %{__rm} $RPM_BUILD_ROOT%{_datadir}/gnuradio/examples/{audio/dial_tone,fcd/fcd_nfm_rx} %clean rm -rf $RPM_BUILD_ROOT %post -p /sbin/ldconfig %postun -p /sbin/ldconfig %files %defattr(644,root,root,755) %doc README.hacking %attr(755,root,root) %{_bindir}/gnuradio-* %attr(755,root,root) %{_bindir}/gr-* %attr(755,root,root) %{_bindir}/gr_* %attr(755,root,root) %{_bindir}/grcc %attr(755,root,root) %{_bindir}/polar_channel_construction %attr(755,root,root) %{_bindir}/usrp_flex %attr(755,root,root) %{_bindir}/usrp_flex_all %attr(755,root,root) %{_bindir}/usrp_flex_band %attr(755,root,root) %{_bindir}/volk-config-info %attr(755,root,root) %{_bindir}/volk_modtool %attr(755,root,root) %{_bindir}/volk_profile %attr(755,root,root) %{_libdir}/libgnuradio-*.so.*.* %attr(755,root,root) %ghost %{_libdir}/libgnuradio-*.so.0 %attr(755,root,root) %{_libdir}/libvolk.so.*.* %dir %{_sysconfdir}/gnuradio %dir %{_sysconfdir}/gnuradio/conf.d %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/gnuradio/conf.d/*.conf %dir %{py_sitedir}/gnuradio %{py_sitedir}/gnuradio/*.py* %dir %{py_sitedir}/gnuradio/analog %attr(755,root,root) %{py_sitedir}/gnuradio/analog/*.so %{py_sitedir}/gnuradio/analog/*.py* %dir %{py_sitedir}/gnuradio/atsc %attr(755,root,root) %{py_sitedir}/gnuradio/atsc/*.so %{py_sitedir}/gnuradio/atsc/*.py* %dir %{py_sitedir}/gnuradio/audio %attr(755,root,root) %{py_sitedir}/gnuradio/audio/*.so %{py_sitedir}/gnuradio/audio/*.py* %dir %{py_sitedir}/gnuradio/blocks %attr(755,root,root) %{py_sitedir}/gnuradio/blocks/*.so %{py_sitedir}/gnuradio/blocks/*.py* %dir %{py_sitedir}/gnuradio/channels %attr(755,root,root) %{py_sitedir}/gnuradio/channels/*.so %{py_sitedir}/gnuradio/channels/*.py* %{py_sitedir}/gnuradio/ctrlport %dir %{py_sitedir}/gnuradio/digital %attr(755,root,root) %{py_sitedir}/gnuradio/digital/*.so %{py_sitedir}/gnuradio/digital/*.py* %{py_sitedir}/gnuradio/digital/utils %dir %{py_sitedir}/gnuradio/dtv %{py_sitedir}/gnuradio/dtv/*.py* %attr(755,root,root) %{py_sitedir}/gnuradio/dtv/_dtv_swig.so %dir %{py_sitedir}/gnuradio/fcd %attr(755,root,root) %{py_sitedir}/gnuradio/fcd/*.so %{py_sitedir}/gnuradio/fcd/*.py* %dir %{py_sitedir}/gnuradio/fec %attr(755,root,root) %{py_sitedir}/gnuradio/fec/*.so %{py_sitedir}/gnuradio/fec/*.py* %dir %{py_sitedir}/gnuradio/fec/LDPC %{py_sitedir}/gnuradio/fec/LDPC/*.py* %dir %{py_sitedir}/gnuradio/fec/polar %{py_sitedir}/gnuradio/fec/polar/*.py* %dir %{py_sitedir}/gnuradio/fft %attr(755,root,root) %{py_sitedir}/gnuradio/fft/*.so %{py_sitedir}/gnuradio/fft/*.py* %dir %{py_sitedir}/gnuradio/filter %attr(755,root,root) %{py_sitedir}/gnuradio/filter/*.so %{py_sitedir}/gnuradio/filter/*.py* %dir %{py_sitedir}/gnuradio/gr %attr(755,root,root) %{py_sitedir}/gnuradio/gr/*.so %{py_sitedir}/gnuradio/gr/*.py* %{py_sitedir}/gnuradio/grc %{py_sitedir}/gnuradio/gru %{py_sitedir}/gnuradio/modtool %dir %{py_sitedir}/gnuradio/noaa %attr(755,root,root) %{py_sitedir}/gnuradio/noaa/*.so %{py_sitedir}/gnuradio/noaa/*.py* %dir %{py_sitedir}/gnuradio/pager %attr(755,root,root) %{py_sitedir}/gnuradio/pager/*.so %{py_sitedir}/gnuradio/pager/*.py* %dir %{py_sitedir}/gnuradio/qtgui %attr(755,root,root) %{py_sitedir}/gnuradio/qtgui/*.so %{py_sitedir}/gnuradio/qtgui/*.py* %dir %{py_sitedir}/gnuradio/trellis %attr(755,root,root) %{py_sitedir}/gnuradio/trellis/*.so %{py_sitedir}/gnuradio/trellis/*.py* %dir %{py_sitedir}/gnuradio/video_sdl %attr(755,root,root) %{py_sitedir}/gnuradio/video_sdl/*.so %{py_sitedir}/gnuradio/video_sdl/*.py* %dir %{py_sitedir}/gnuradio/vocoder %attr(755,root,root) %{py_sitedir}/gnuradio/vocoder/*.so %{py_sitedir}/gnuradio/vocoder/*.py* %dir %{py_sitedir}/gnuradio/wavelet %attr(755,root,root) %{py_sitedir}/gnuradio/wavelet/*.so %{py_sitedir}/gnuradio/wavelet/*.py* %dir %{py_sitedir}/gnuradio/wxgui %attr(755,root,root) %{py_sitedir}/gnuradio/wxgui/*.so %{py_sitedir}/gnuradio/wxgui/*.py* %{py_sitedir}/gnuradio/wxgui/forms %{py_sitedir}/gnuradio/wxgui/plotter %{py_sitedir}/grc_gnuradio %dir %{py_sitedir}/pmt %attr(755,root,root) %{py_sitedir}/pmt/_pmt_swig.so %{py_sitedir}/pmt/*.py* %{py_sitedir}/volk_modtool %{_datadir}/gnuradio %exclude %{_datadir}/gnuradio/examples %dir %{_libdir}/gnuradio %attr(755,root,root) %{_libdir}/gnuradio/grc_setup_freedesktop %files devel %defattr(644,root,root,755) %{_includedir}/gnuradio %{_includedir}/pmt %{_includedir}/volk %attr(755,root,root) %{_libdir}/libgnuradio-*.so %attr(755,root,root) %{_libdir}/libvolk.so %{_pkgconfigdir}/gnuradio-*.pc %{_pkgconfigdir}/gr-wxgui.pc %{_pkgconfigdir}/volk.pc %dir %{_libdir}/cmake/gnuradio %{_libdir}/cmake/gnuradio/Gnu*.cmake %{_libdir}/cmake/gnuradio/Gr*.cmake %{?with_uhd:%{_libdir}/cmake/gnuradio/FindUHD.cmake} %{_libdir}/cmake/volk %files doc %defattr(644,root,root,755) %doc inst-doc/* %files examples %defattr(644,root,root,755) %{_datadir}/gnuradio/examples