2 # - fix uhd build (create uhd.spec first)
3 # - GUIs split/subpackages?
6 %bcond_with uhd # UHD driver support
8 Summary: Software defined radio framework
9 Summary(pl.UTF-8): Szkielet radia programowego
14 Group: Applications/Engineering
15 Source0: http://gnuradio.org/releases/gnuradio/%{name}-%{version}.tar.gz
16 # Source0-md5: 85e1ed4b18c46227731d83f8c3fbe45a
18 Patch1: python-libdir.patch
19 Patch2: %{name}-boost.patch
21 URL: http://www.gnuradio.org/
22 BuildRequires: Qt5Core-devel >= 5
23 BuildRequires: Qt5DBus-devel >= 5
24 BuildRequires: Qt5Declarative-devel >= 5
25 BuildRequires: Qt5Designer-devel >= 5
26 BuildRequires: Qt5Gui-devel >= 5
27 BuildRequires: Qt5Help-devel >= 5
28 BuildRequires: Qt5Network-devel >= 5
29 BuildRequires: Qt5OpenGL-devel >= 5
30 BuildRequires: Qt5Script-devel >= 5
31 BuildRequires: Qt5ScriptTools-devel >= 5
32 BuildRequires: Qt5Sql-devel >= 5
33 BuildRequires: Qt5Svg-devel >= 5
34 BuildRequires: Qt5Test-devel >= 5
35 BuildRequires: Qt5UiTools-devel >= 5
36 BuildRequires: Qt5WebKit-devel >= 5
37 BuildRequires: Qt5Xml-devel >= 5
38 BuildRequires: Qt5XmlPatterns-devel >= 5
39 BuildRequires: SDL-devel >= 1.2.0
40 BuildRequires: alsa-lib-devel >= 0.9
41 BuildRequires: boost-devel >= 1.53
43 BuildRequires: cairo-gobject >= 1.0
44 BuildRequires: cmake >= 3.8
45 BuildRequires: cppunit-devel >= 1.9.14
46 BuildRequires: cppzmq-devel
47 BuildRequires: doxygen >= 1.5
48 BuildRequires: fftw3-devel >= 3.0
49 BuildRequires: fftw3-single-devel >= 3.0
50 BuildRequires: gsl-devel >= 1.10
51 BuildRequires: gmp-c++-devel
53 BuildRequires: gtk+3 >= 3.10.8
54 BuildRequires: ice-devel
55 BuildRequires: jack-audio-connection-kit-devel >= 0.8
56 BuildRequires: libstdc++-devel >= 6:4.8.4
57 BuildRequires: libusb-devel
58 BuildRequires: log4cpp-devel
59 BuildRequires: orc-devel >= 0.4.11
61 BuildRequires: pango >= 1:1.26.0
62 BuildRequires: pkgconfig
63 BuildRequires: portaudio-devel >= 19
64 BuildRequires: python3 >= 1:3.6.5
65 BuildRequires: python3-Mako >= 0.9.1
67 BuildRequires: python3-PyOpenGL
69 BuildRequires: python3-PyYAML >= 3.10
70 BuildRequires: python3-click
71 BuildRequires: python3-devel >= 2.5
72 BuildRequires: python3-devel-tools
73 BuildRequires: python3-lxml >= 1.3.6
74 BuildRequires: python3-numpy >= 1.1.0
75 BuildRequires: python3-pygobject3 >= 2.28.6
76 BuildRequires: qt5-build >= 5
77 BuildRequires: qt5-qmake >= 5
78 BuildRequires: qwt5-devel
79 BuildRequires: rpm-build >= 4.6
80 BuildRequires: rpmbuild(macros) >= 1.605
81 BuildRequires: sip-PyQt5
82 BuildRequires: sphinx-pdg
83 BuildRequires: swig-python >= 3.0.8
84 BuildRequires: texlive-latex
85 %{?with_uhd:BuildRequires: uhd-devel >= 3.0.0}
86 BuildRequires: xdg-utils
88 BuildConflicts: python-thrift
90 Requires: python3-PyQt5
91 Requires: python3-PyYAML >= 3.10
92 Requires: python3-click
93 Requires: python3-lxml
94 Requires: python3-numpy
95 Requires: python3-scipy
96 Obsoletes: grc < 0.80-1
97 Obsoletes: usrp < 3.3.0-1
98 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
100 %define filterout_cpp -pipe
103 GNU Radio is a collection of software that when combined with minimal
104 hardware, allows the construction of radios where the actual waveforms
105 transmitted and received are defined by software. What this means is
106 that it turns the digital modulation schemes used in today's high
107 performance wireless devices into software problems.
109 %description -l pl.UTF-8
110 GNU Radio to zbiór oprogramowania, który, w połączeniu z minimum
111 sprzętu, pozwala na tworzenie odbiorników/nadajników radiowych, w
112 których przesyłane fale są definiowane programowo. Oznacza to, że
113 schematy modulacji cyfrowej, używane w obecnych wydajnych urządzeniach
114 bezprzewodowych, stają się problemami programowymi.
117 Summary: GNU Radio development files
118 Summary(pl.UTF-8): Pliki programistyczne GNU Radio
119 Group: Applications/Engineering
120 Requires: %{name} = %{version}-%{release}
121 Requires: boost-devel
122 Obsoletes: usrp-devel < 3.3.0-1
125 GNU Radio header files.
127 %description devel -l pl.UTF-8
128 Pliki nagłówkowe GNU Radio.
131 Summary: GNU Radio documentation
132 Summary(pl.UTF-8): Dokumentacja do GNU Radio
134 Requires: %{name} = %{version}-%{release}
138 GNU Radio documentation.
140 %description doc -l pl.UTF-8
141 Dokumentacja do GNU Radio.
144 Summary: GNU Radio examples
145 Summary(pl.UTF-8): Przykłady do GNU Radio
147 Requires: %{name} = %{version}-%{release}
150 %description examples
153 %description examples -l pl.UTF-8
154 Przykłady do GNU Radio.
166 export CFLAGS="%{rpmcflags} %{rpmcppflags}"
167 export CXXFLAGS="%{rpmcxxflags} %{rpmcppflags}"
168 export LDFLAGS="%{rpmldflags}"
170 -DCMAKE_BUILD_TYPE=None \
171 -DENABLE_DOXYGEN=FORCE \
172 -DENABLE_GR_ATSC=FORCE \
173 -DENABLE_GR_AUDIO=FORCE \
175 -DENABLE-GR_COMEDI=FORCE \
176 -DENABLE_GR_CORE=FORCE \
177 -DENABLE_GR_FCD=FORCE \
178 -DENABLE_GR_NOAA=FORCE \
179 -DENABLE_GR_PAGER=FORCE \
180 -DENABLE_GR_TRELLIS=FORCE \
181 -DENABLE_GRUEL=FORCE \
182 %{?with_uhd:-DENABLE_GR_UHD=FORCE} \
183 -DENABLE_GR_UTILS=FORCE \
184 -DENABLE_GR_VIDEO_SDL=FORCE \
185 -DENABLE_GR_VOCODER=FORCE \
186 -DENABLE_GR_WXGUI=FORCE \
187 -DENABLE_PYTHON=FORCE \
188 -DENABLE_VOLK=FORCE \
189 -DSYSCONFDIR=%{_sysconfdir} \
194 rm -rf $RPM_BUILD_ROOT
196 %{__make} -C build install \
197 DESTDIR=$RPM_BUILD_ROOT
201 %{__mv} $RPM_BUILD_ROOT%{_docdir}/gnuradio-*/* inst-doc
203 # filter bundled cmake files for other libraries
204 cd $RPM_BUILD_ROOT%{_libdir}/cmake/gnuradio
207 FindUHD.cmake|Gr*.cmake|Gnu*.cmake)
216 %{__rm} -r $RPM_BUILD_ROOT%{_iconsdir}/gnome
218 # remove binary from noarch examples
219 %{__rm} $RPM_BUILD_ROOT%{_datadir}/gnuradio/examples/{audio/dial_tone,qt-gui/display_qt}
222 rm -rf $RPM_BUILD_ROOT
224 %post -p /sbin/ldconfig
225 %postun -p /sbin/ldconfig
228 %defattr(644,root,root,755)
230 %attr(755,root,root) %{_bindir}/gnuradio-*
231 %attr(755,root,root) %{_bindir}/gr-*
232 %attr(755,root,root) %{_bindir}/gr_*
233 %attr(755,root,root) %{_bindir}/grcc
234 %attr(755,root,root) %{_bindir}/polar_channel_construction
235 %attr(755,root,root) %{_bindir}/volk-config-info
236 %attr(755,root,root) %{_bindir}/volk_modtool
237 %attr(755,root,root) %{_bindir}/volk_profile
238 %attr(755,root,root) %{_libdir}/libgnuradio-*.so.*.*.*.*
239 %attr(755,root,root) %ghost %{_libdir}/libgnuradio-*.so.3.8.0
240 %attr(755,root,root) %{_libdir}/libvolk.so.*.*
241 %dir %{_sysconfdir}/gnuradio
242 %dir %{_sysconfdir}/gnuradio/conf.d
243 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/gnuradio/conf.d/*.conf
245 %dir %{py3_sitedir}/gnuradio
246 %{py3_sitedir}/gnuradio/*.py*
247 %dir %{py3_sitedir}/gnuradio/analog
248 %attr(755,root,root) %{py3_sitedir}/gnuradio/analog/*.so
249 %{py3_sitedir}/gnuradio/analog/*.py*
251 %dir %{py3_sitedir}/gnuradio/audio
252 %attr(755,root,root) %{py3_sitedir}/gnuradio/audio/*.so
253 %{py3_sitedir}/gnuradio/audio/*.py*
255 %dir %{py3_sitedir}/gnuradio/blocks
256 %attr(755,root,root) %{py3_sitedir}/gnuradio/blocks/*.so
257 %{py3_sitedir}/gnuradio/blocks/*.py*
259 %dir %{py3_sitedir}/gnuradio/channels
260 %attr(755,root,root) %{py3_sitedir}/gnuradio/channels/*.so
261 %{py3_sitedir}/gnuradio/channels/*.py*
263 %{py3_sitedir}/gnuradio/ctrlport
265 %dir %{py3_sitedir}/gnuradio/digital
266 %attr(755,root,root) %{py3_sitedir}/gnuradio/digital/*.so
267 %{py3_sitedir}/gnuradio/digital/*.py*
268 %{py3_sitedir}/gnuradio/digital/utils
270 %dir %{py3_sitedir}/gnuradio/dtv
271 %{py3_sitedir}/gnuradio/dtv/*.py*
272 %attr(755,root,root) %{py3_sitedir}/gnuradio/dtv/_dtv_swig.so
274 %dir %{py3_sitedir}/gnuradio/fec
275 %attr(755,root,root) %{py3_sitedir}/gnuradio/fec/*.so
276 %{py3_sitedir}/gnuradio/fec/*.py*
277 %dir %{py3_sitedir}/gnuradio/fec/LDPC
278 %{py3_sitedir}/gnuradio/fec/LDPC/*.py*
279 %dir %{py3_sitedir}/gnuradio/fec/polar
280 %{py3_sitedir}/gnuradio/fec/polar/*.py*
282 %dir %{py3_sitedir}/gnuradio/fft
283 %attr(755,root,root) %{py3_sitedir}/gnuradio/fft/*.so
284 %{py3_sitedir}/gnuradio/fft/*.py*
286 %dir %{py3_sitedir}/gnuradio/filter
287 %attr(755,root,root) %{py3_sitedir}/gnuradio/filter/*.so
288 %{py3_sitedir}/gnuradio/filter/*.py*
290 %dir %{py3_sitedir}/gnuradio/gr
291 %attr(755,root,root) %{py3_sitedir}/gnuradio/gr/*.so
292 %{py3_sitedir}/gnuradio/gr/*.py*
294 %{py3_sitedir}/gnuradio/grc
295 %{py3_sitedir}/gnuradio/gru
297 %dir %{py3_sitedir}/gnuradio/qtgui
298 %attr(755,root,root) %{py3_sitedir}/gnuradio/qtgui/*.so
299 %{py3_sitedir}/gnuradio/qtgui/*.py*
301 %dir %{py3_sitedir}/gnuradio/trellis
302 %attr(755,root,root) %{py3_sitedir}/gnuradio/trellis/*.so
303 %{py3_sitedir}/gnuradio/trellis/*.py*
305 %dir %{py3_sitedir}/gnuradio/video_sdl
306 %attr(755,root,root) %{py3_sitedir}/gnuradio/video_sdl/*.so
307 %{py3_sitedir}/gnuradio/video_sdl/*.py*
309 %dir %{py3_sitedir}/gnuradio/vocoder
310 %attr(755,root,root) %{py3_sitedir}/gnuradio/vocoder/*.so
311 %{py3_sitedir}/gnuradio/vocoder/*.py*
313 %dir %{py3_sitedir}/gnuradio/wavelet
314 %attr(755,root,root) %{py3_sitedir}/gnuradio/wavelet/*.so
315 %{py3_sitedir}/gnuradio/wavelet/*.py*
317 %dir %{py3_sitedir}/gnuradio/zeromq
318 %attr(755,root,root) %{py3_sitedir}/gnuradio/zeromq/*.so
319 %{py3_sitedir}/gnuradio/zeromq/*.py*
321 %dir %{py3_sitedir}/pmt
322 %attr(755,root,root) %{py3_sitedir}/pmt/_pmt_swig.so
323 %{py3_sitedir}/pmt/*.py*
324 %{py3_sitedir}/volk_modtool
327 %exclude %{_datadir}/gnuradio/examples
329 %dir %{_libexecdir}/gnuradio
330 %attr(755,root,root) %{_libexecdir}/gnuradio/grc_setup_freedesktop
332 %{_desktopdir}/gnuradio-grc.desktop
333 %{_iconsdir}/hicolor/*x*/apps/gnuradio-grc.png
334 %{_datadir}/mime/packages/gnuradio-grc.xml
337 %defattr(644,root,root,755)
338 %{_includedir}/gnuradio
341 %attr(755,root,root) %{_libdir}/libgnuradio-*.so
342 %attr(755,root,root) %{_libdir}/libvolk.so
343 %{_pkgconfigdir}/gnuradio-*.pc
344 %{_pkgconfigdir}/volk.pc
345 %{_libdir}/cmake/gnuradio
346 %{_libdir}/cmake/volk
349 %defattr(644,root,root,755)
353 %defattr(644,root,root,755)
354 %{_datadir}/gnuradio/examples