]> git.pld-linux.org Git - packages/gnuradio.git/blobdiff - gnuradio.spec
- remove binaries from noarch examples
[packages/gnuradio.git] / gnuradio.spec
index 6ba7d21f9585dd5e738222f65259e3b783f57079..400ff6e99c742504d142725441cd0c5876fc13ec 100644 (file)
@@ -1,84 +1,86 @@
 # TODO:
-# - fix volk, drop bcond and enable by default
-# - fix uhd build
+# - fix uhd build (create uhd.spec first)
+# - GUIs split/subpackages?
 %bcond_with    uhd
-%bcond_with    volk
-#
+
 Summary:       Software defined radio framework
 Name:          gnuradio
-Version:       3.7.2.1
-Release:       0.1
+Version:       3.8.0.0
+Release:       2
 License:       GPL v3
 Group:         Applications/Engineering
-Source0:       http://gnuradio.org/files/builds/%{name}-%{version}.tar.gz
-# Source0-md5: f2ea23a30cb02802870fe8cb9bf272c9
-Patch0:                %{name}-build.patch
+Source0:       http://gnuradio.org/releases/gnuradio/%{name}-%{version}.tar.gz
+# Source0-md5: 85e1ed4b18c46227731d83f8c3fbe45a
+Patch0:                link.patch
+Patch1:                python-libdir.patch
 URL:           http://www.gnuradio.org/
+BuildRequires: Qt5Core-devel
+BuildRequires: Qt5DBus-devel
+BuildRequires: Qt5Declarative-devel
+BuildRequires: Qt5Designer-devel
+BuildRequires: Qt5Gui-devel
+BuildRequires: Qt5Help-devel
+BuildRequires: Qt5Network-devel
+BuildRequires: Qt5OpenGL-devel
+BuildRequires: Qt5Script-devel
+BuildRequires: Qt5ScriptTools-devel
+BuildRequires: Qt5Sql-devel
+BuildRequires: Qt5Svg-devel
+BuildRequires: Qt5Test-devel
+BuildRequires: Qt5UiTools-devel
+BuildRequires: Qt5WebKit-devel
+BuildRequires: Qt5Xml-devel
+BuildRequires: Qt5XmlPatterns-devel
 BuildRequires: SDL-devel >= 1.2.0
-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: alsa-lib-devel >= 0.9
-BuildRequires: boost-devel >= 1.35
+BuildRequires: boost-devel >= 1.53
 BuildRequires: cmake >= 2.6
 BuildRequires: cppunit-devel >= 1.9.14
+BuildRequires: cppzmq-devel
 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
-BuildRequires: python-PyOpenGL
-BuildRequires: python-PyQt4-devel >= 4.4
-BuildRequires: python-PyQwt-devel >= 5.2
-BuildRequires: python-cheetah >= 2.0.0
-BuildRequires: python-devel >= 2.5
-BuildRequires: python-lxml >= 1.3.6
-BuildRequires: python-numpy >= 1.1.0
-BuildRequires: python-pygtk-devel >= 2.10.0
-BuildRequires: python-wxPython-devel >= 2.8
-BuildRequires: qwt-devel >= 5.2
-BuildRequires: sphinx
+# R/S instead?
+BuildRequires: python3-PyOpenGL
+BuildRequires: sip-PyQt5
+# R/S instead?
+BuildRequires: python3-PyYAML
+BuildRequires: python3-click
+BuildRequires: python3-devel >= 2.5
+BuildRequires: python3-devel-tools
+BuildRequires: python3-lxml >= 1.3.6
+BuildRequires: python3-numpy >= 1.1.0
+BuildRequires: qt5-build
+BuildRequires: qt5-qmake
+BuildRequires: qwt5-devel
+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
-BuildConflicts:        boost-devel = 1.46.0
-BuildConflicts:        boost-devel = 1.46.1
-BuildConflicts:        boost-devel = 1.47.0
-BuildConflicts:        boost-devel = 1.52.0
+BuildConflicts:        python-thrift
 Requires:      portaudio
-Requires:      python-PyQt4
-Requires:      python-cheetah
-Requires:      python-lxml
-Requires:      python-numpy
-Requires:      python-pygtk-gtk
-Requires:      python-scipy
-Requires:      python-wxPython
+Requires:      python3-PyQt5
+Requires:      python3-PyYAML
+Requires:      python3-click
+Requires:      python3-lxml
+Requires:      python3-numpy
+Requires:      python3-scipy
 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
@@ -87,78 +89,94 @@ that it turns the digital modulation schemes used in today's high
 performance wireless devices into software problems.
 
 %package devel
-Summary:       GNU Radio
+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 examples
+%package doc
 Summary:       GNU Radio
-Group:         Applications/Engineering
+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 -n %{name}
+%setup -q
 %patch0 -p1
-
-# force regeneration of cached moc output files (for final tarballs)
-find -name "*_moc.cc" | xargs -r rm
+%patch1 -p1
 
 %build
-%{__libtoolize}
-%{__aclocal} -I config
-%{__autoheader}
-%{__automake} -Wno-portability -Wno-override -Wnone
-%{__autoconf}
-%configure \
-       --enable-dependency-tracking \
-       --enable-python \
-       --enable-doxygen \
-       --enable-dot \
-       --%{?with_volk:en}%{!?with_volk:dis}able-volk \
-       --enable-gruel \
-       --enable-gnuradio-core \
-       --enable-gr-msdd6000 \
-       --enable-gr-audio \
-       --enable-gr-atsc \
-       --enable-gr-cvsd-vocoder \
-       --enable-gr-gpio \
-       %{?with_uhd:--enable-gr-uhd} \
-       --enable-gr-gsm-fr-vocoder \
-       --enable-gr-noaa \
-       --enable-gr-pager \
-       --enable-gr-radar-pager \
-       --enable-gr-radar-mono \
-       --enable-gr-radio-astronomy \
-       --enable-gr-trellis \
-       --enable-gr-video-sdl \
-       --enable-gr-wxgui \
-       --enable-gr-sounder \
-       --enable-gr-utils \
-       --enable-gnuradio-examples \
-       --enable-grc \
-       --enable-docs \
-       --with-boost-libdir=%{_libdir}
-
+%{__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} install -j1 \
-       pythondir=%{py_sitedir} \
+%{__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,qt-gui/display_qt}
+
 %clean
 rm -rf $RPM_BUILD_ROOT
 
@@ -167,79 +185,131 @@ rm -rf $RPM_BUILD_ROOT
 
 %files
 %defattr(644,root,root,755)
-%doc ChangeLog NEWS INSTALL COPYING AUTHORS
-%doc inst-doc/*
-%attr(755,root,root) %{_bindir}/create-gnuradio-out-of-tree-project
-%attr(755,root,root) %{_bindir}/file_rx_*.py
+%doc README.hacking
 %attr(755,root,root) %{_bindir}/gnuradio-*
-%attr(755,root,root) %{_bindir}/gr_*.py
-%attr(755,root,root) %{_bindir}/hrpt_*.py
-%attr(755,root,root) %{_bindir}/qt_digital_window.ui
-%attr(755,root,root) %{_bindir}/usrp_display_qtgui.ui
-%attr(755,root,root) %{_bindir}/usrp_*.py
-%attr(755,root,root) %{_libdir}/libgnuradio-*.so.*.*
-%attr(755,root,root) %ghost %{_libdir}/libgnuradio-*.so.0
-%attr(755,root,root) %{_libdir}/libgruel-*.so.*.*
-%attr(755,root,root) %ghost %{_libdir}/libgruel-*.so.0
-%dir %{_libdir}/gnuradio
-%attr(755,root,root) %{_libdir}/gnuradio/grc_setup_freedesktop
-%{_datadir}/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}/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.3.8.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}/gruel
-%{py_sitedir}/gruel/*.py*
-%dir %{py_sitedir}/gruel/pmt
-%{py_sitedir}/gruel/pmt/*.py*
-%attr(755,root,root) %{py_sitedir}/gruel/pmt/*.so
-%dir %{py_sitedir}/gnuradio
-%{py_sitedir}/gnuradio/*.py*
-%attr(755,root,root) %{py_sitedir}/gnuradio/*.so
-%dir %{py_sitedir}/gnuradio/gr
-%{py_sitedir}/gnuradio/gr/*.py*
-%attr(755,root,root) %{py_sitedir}/gnuradio/gr/*.so
-%dir %{py_sitedir}/gnuradio/digital
-%{py_sitedir}/gnuradio/digital/*.py*
-%attr(755,root,root) %{py_sitedir}/gnuradio/digital/*.so
-%dir %{py_sitedir}/gnuradio/digital/utils
-%{py_sitedir}/gnuradio/digital/utils/*.py*
-%dir %{py_sitedir}/gnuradio/audio
-%{py_sitedir}/gnuradio/audio/*.py*
-%attr(755,root,root) %{py_sitedir}/gnuradio/audio/*.so
-%dir %{py_sitedir}/gnuradio/vocoder
-%{py_sitedir}/gnuradio/vocoder/*.py*
-%attr(755,root,root) %{py_sitedir}/gnuradio/vocoder/*.so
-%dir %{py_sitedir}/gnuradio/noaa
-%{py_sitedir}/gnuradio/noaa/*.py*
-%attr(755,root,root) %{py_sitedir}/gnuradio/noaa/*.so
-%dir %{py_sitedir}/gnuradio/pager
-%{py_sitedir}/gnuradio/pager/*.py*
-%attr(755,root,root) %{py_sitedir}/gnuradio/pager/*.so
-%dir %{py_sitedir}/gnuradio/qtgui
-%{py_sitedir}/gnuradio/qtgui/*.py*
-%attr(755,root,root) %{py_sitedir}/gnuradio/qtgui/*.so
-%{py_sitedir}/gnuradio/blks2
-%{py_sitedir}/gnuradio/blks2impl
-%{py_sitedir}/gnuradio/grc
-%{py_sitedir}/gnuradio/gru
-%{py_sitedir}/gnuradio/gruimpl
-%{py_sitedir}/gnuradio/wxgui
-%{py_sitedir}/grc_gnuradio
+
+%dir %{py3_sitedir}/gnuradio
+%{py3_sitedir}/gnuradio/*.py*
+%dir %{py3_sitedir}/gnuradio/analog
+%attr(755,root,root) %{py3_sitedir}/gnuradio/analog/*.so
+%{py3_sitedir}/gnuradio/analog/*.py*
+
+%dir %{py3_sitedir}/gnuradio/audio
+%attr(755,root,root) %{py3_sitedir}/gnuradio/audio/*.so
+%{py3_sitedir}/gnuradio/audio/*.py*
+
+%dir %{py3_sitedir}/gnuradio/blocks
+%attr(755,root,root) %{py3_sitedir}/gnuradio/blocks/*.so
+%{py3_sitedir}/gnuradio/blocks/*.py*
+
+%dir %{py3_sitedir}/gnuradio/channels
+%attr(755,root,root) %{py3_sitedir}/gnuradio/channels/*.so
+%{py3_sitedir}/gnuradio/channels/*.py*
+
+%{py3_sitedir}/gnuradio/ctrlport
+
+%dir %{py3_sitedir}/gnuradio/digital
+%attr(755,root,root) %{py3_sitedir}/gnuradio/digital/*.so
+%{py3_sitedir}/gnuradio/digital/*.py*
+%{py3_sitedir}/gnuradio/digital/utils
+
+%dir %{py3_sitedir}/gnuradio/dtv
+%{py3_sitedir}/gnuradio/dtv/*.py*
+%attr(755,root,root) %{py3_sitedir}/gnuradio/dtv/_dtv_swig.so
+
+%dir %{py3_sitedir}/gnuradio/fec
+%attr(755,root,root) %{py3_sitedir}/gnuradio/fec/*.so
+%{py3_sitedir}/gnuradio/fec/*.py*
+%dir %{py3_sitedir}/gnuradio/fec/LDPC
+%{py3_sitedir}/gnuradio/fec/LDPC/*.py*
+%dir %{py3_sitedir}/gnuradio/fec/polar
+%{py3_sitedir}/gnuradio/fec/polar/*.py*
+
+%dir %{py3_sitedir}/gnuradio/fft
+%attr(755,root,root) %{py3_sitedir}/gnuradio/fft/*.so
+%{py3_sitedir}/gnuradio/fft/*.py*
+
+%dir %{py3_sitedir}/gnuradio/filter
+%attr(755,root,root) %{py3_sitedir}/gnuradio/filter/*.so
+%{py3_sitedir}/gnuradio/filter/*.py*
+
+%dir %{py3_sitedir}/gnuradio/gr
+%attr(755,root,root) %{py3_sitedir}/gnuradio/gr/*.so
+%{py3_sitedir}/gnuradio/gr/*.py*
+
+%{py3_sitedir}/gnuradio/grc
+%{py3_sitedir}/gnuradio/gru
+
+%dir %{py3_sitedir}/gnuradio/qtgui
+%attr(755,root,root) %{py3_sitedir}/gnuradio/qtgui/*.so
+%{py3_sitedir}/gnuradio/qtgui/*.py*
+
+%dir %{py3_sitedir}/gnuradio/trellis
+%attr(755,root,root) %{py3_sitedir}/gnuradio/trellis/*.so
+%{py3_sitedir}/gnuradio/trellis/*.py*
+
+%dir %{py3_sitedir}/gnuradio/video_sdl
+%attr(755,root,root) %{py3_sitedir}/gnuradio/video_sdl/*.so
+%{py3_sitedir}/gnuradio/video_sdl/*.py*
+
+%dir %{py3_sitedir}/gnuradio/vocoder
+%attr(755,root,root) %{py3_sitedir}/gnuradio/vocoder/*.so
+%{py3_sitedir}/gnuradio/vocoder/*.py*
+
+%dir %{py3_sitedir}/gnuradio/wavelet
+%attr(755,root,root) %{py3_sitedir}/gnuradio/wavelet/*.so
+%{py3_sitedir}/gnuradio/wavelet/*.py*
+
+%dir %{py3_sitedir}/gnuradio/zeromq
+%attr(755,root,root) %{py3_sitedir}/gnuradio/zeromq/*.so
+%{py3_sitedir}/gnuradio/zeromq/*.py*
+
+%dir %{py3_sitedir}/pmt
+%attr(755,root,root) %{py3_sitedir}/pmt/_pmt_swig.so
+%{py3_sitedir}/pmt/*.py*
+%{py3_sitedir}/volk_modtool
+
+%{_datadir}/gnuradio
 %exclude %{_datadir}/gnuradio/examples
-%exclude %{py_sitedir}/gruel/*/*.la
-%exclude %{py_sitedir}/gnuradio/*.la
-%exclude %{py_sitedir}/gnuradio/*/*.la
+
+%dir %{_libexecdir}/gnuradio
+%attr(755,root,root) %{_libexecdir}/gnuradio/grc_setup_freedesktop
+
+%{_desktopdir}/gnuradio-grc.desktop
+%{_iconsdir}/hicolor/*x*/apps/gnuradio-grc.png
+%{_datadir}/mime/packages/gnuradio-grc.xml
 
 %files devel
 %defattr(644,root,root,755)
 %{_includedir}/gnuradio
-%{_includedir}/gruel
+%{_includedir}/pmt
+%{_includedir}/volk
 %attr(755,root,root) %{_libdir}/libgnuradio-*.so
-%attr(755,root,root) %{_libdir}/libgruel.so
+%attr(755,root,root) %{_libdir}/libvolk.so
 %{_pkgconfigdir}/gnuradio-*.pc
-%{_pkgconfigdir}/gr-wxgui.pc
-%{_pkgconfigdir}/gruel.pc
-%exclude %{_libdir}/*.la
+%{_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)
This page took 0.10976 seconds and 4 git commands to generate.