]>
Commit | Line | Data |
---|---|---|
1 | # TODO: | |
2 | # - fix uhd build (create uhd.spec first) | |
3 | # - GUIs split/subpackages? | |
4 | %bcond_with uhd | |
5 | ||
6 | Summary: Software defined radio framework | |
7 | Name: gnuradio | |
8 | Version: 3.7.13.4 | |
9 | Release: 1 | |
10 | License: GPL v3 | |
11 | Group: Applications/Engineering | |
12 | Source0: http://gnuradio.org/releases/gnuradio/%{name}-%{version}.tar.gz | |
13 | # Source0-md5: b38d9cfa7cb4dcb97f5d19ebcabe8dcb | |
14 | Patch0: link.patch | |
15 | Patch1: gsl.patch | |
16 | Patch2: libexec.patch | |
17 | Patch3: qwt-includes.patch | |
18 | URL: http://www.gnuradio.org/ | |
19 | BuildRequires: Qt3Support >= 4.8 | |
20 | BuildRequires: QtCLucene-devel >= 4.8 | |
21 | BuildRequires: QtCore-devel >= 4.8 | |
22 | BuildRequires: QtDBus-devel >= 4.8 | |
23 | BuildRequires: QtDeclarative-devel >= 4.8 | |
24 | BuildRequires: QtDesigner-devel >= 4.8 | |
25 | BuildRequires: QtGui-devel >= 4.8 | |
26 | BuildRequires: QtHelp-devel >= 4.8 | |
27 | BuildRequires: QtNetwork-devel >= 4.8 | |
28 | BuildRequires: QtOpenGL-devel >= 4.8 | |
29 | BuildRequires: QtScript-devel >= 4.8 | |
30 | BuildRequires: QtScriptTools-devel >= 4.8 | |
31 | BuildRequires: QtSql-devel >= 4.8 | |
32 | BuildRequires: QtSvg-devel >= 4.8 | |
33 | BuildRequires: QtTest-devel >= 4.8 | |
34 | BuildRequires: QtUiTools-devel >= 4.8 | |
35 | BuildRequires: QtWebKit-devel >= 4.8 | |
36 | BuildRequires: QtXml-devel >= 4.8 | |
37 | BuildRequires: QtXmlPatterns-devel >= 4.8 | |
38 | BuildRequires: SDL-devel >= 1.2.0 | |
39 | BuildRequires: alsa-lib-devel >= 0.9 | |
40 | BuildRequires: boost-devel >= 1.53 | |
41 | BuildRequires: cmake >= 2.6 | |
42 | BuildRequires: cppunit-devel >= 1.9.14 | |
43 | BuildRequires: doxygen >= 1.5 | |
44 | BuildRequires: fftw3-devel >= 3.0 | |
45 | BuildRequires: fftw3-single-devel >= 3.0 | |
46 | BuildRequires: gsl-devel >= 1.10 | |
47 | BuildRequires: ice-devel | |
48 | BuildRequires: jack-audio-connection-kit-devel >= 0.8 | |
49 | BuildRequires: libusb-devel | |
50 | BuildRequires: log4cpp-devel | |
51 | BuildRequires: orc-devel >= 0.4.11 | |
52 | BuildRequires: pkgconfig | |
53 | BuildRequires: portaudio-devel >= 19 | |
54 | # R/S instead? | |
55 | BuildRequires: python-PyOpenGL | |
56 | BuildRequires: sip-PyQt4 >= 4.4 | |
57 | # R/S instead? | |
58 | BuildRequires: python-PyQwt-devel >= 5.2 | |
59 | BuildRequires: python-cheetah >= 2.0.0 | |
60 | BuildRequires: python-devel >= 2.5 | |
61 | BuildRequires: python-devel-tools | |
62 | BuildRequires: python-ice | |
63 | BuildRequires: python-lxml >= 1.3.6 | |
64 | BuildRequires: python-numpy >= 1.1.0 | |
65 | BuildRequires: python-pygtk-devel >= 2.10.0 | |
66 | # R/S instead? | |
67 | BuildRequires: python-wxPython-devel >= 2.8 | |
68 | BuildRequires: qt4-qmake >= 4.2.0 | |
69 | BuildRequires: qwt-devel >= 5.2 | |
70 | BuildRequires: sphinx-pdg | |
71 | BuildRequires: swig-python >= 1.3.31 | |
72 | BuildRequires: texlive-latex | |
73 | %{?with_uhd:BuildRequires: uhd-devel >= 3.0.0} | |
74 | BuildRequires: xdg-utils | |
75 | BuildRequires: xmlto | |
76 | Requires: portaudio | |
77 | Requires: python-PyQt4 | |
78 | Requires: python-cheetah | |
79 | Requires: python-lxml | |
80 | Requires: python-numpy | |
81 | Requires: python-pygtk-gtk | |
82 | Requires: python-scipy | |
83 | Requires: python-wxPython | |
84 | Obsoletes: grc < 0.80-1 | |
85 | Obsoletes: usrp < 3.3.0-1 | |
86 | BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n) | |
87 | ||
88 | %define filterout_cpp -pipe | |
89 | ||
90 | %description | |
91 | GNU Radio is a collection of software that when combined with minimal | |
92 | hardware, allows the construction of radios where the actual waveforms | |
93 | transmitted and received are defined by software. What this means is | |
94 | that it turns the digital modulation schemes used in today's high | |
95 | performance wireless devices into software problems. | |
96 | ||
97 | %package devel | |
98 | Summary: GNU Radio development files | |
99 | Group: Applications/Engineering | |
100 | Requires: %{name} = %{version}-%{release} | |
101 | Requires: boost-devel | |
102 | Obsoletes: usrp-devel < 3.3.0-1 | |
103 | ||
104 | %description devel | |
105 | GNU Radio Headers. | |
106 | ||
107 | %package doc | |
108 | Summary: GNU Radio | |
109 | Group: Documentation | |
110 | Requires: %{name} = %{version}-%{release} | |
111 | %if "%{_rpmversion}" >= "5" | |
112 | BuildArch: noarch | |
113 | %endif | |
114 | ||
115 | %description doc | |
116 | GNU Radio Documentation. | |
117 | ||
118 | %package examples | |
119 | Summary: GNU Radio examples | |
120 | Group: Documentation | |
121 | Requires: %{name} = %{version}-%{release} | |
122 | %if "%{_rpmversion}" >= "5" | |
123 | BuildArch: noarch | |
124 | %endif | |
125 | ||
126 | %description examples | |
127 | GNU Radio examples. | |
128 | ||
129 | %prep | |
130 | %setup -q | |
131 | %patch0 -p1 | |
132 | %patch1 -p1 | |
133 | %patch2 -p1 | |
134 | %patch3 -p1 | |
135 | ||
136 | %build | |
137 | %{__mkdir_p} build | |
138 | cd build | |
139 | %cmake -Wno-dev \ | |
140 | -DCMAKE_BUILD_TYPE=None \ | |
141 | -DENABLE_DOXYGEN=FORCE \ | |
142 | -DENABLE_GR_ATSC=FORCE \ | |
143 | -DENABLE_GR_AUDIO=FORCE \ | |
144 | -DENABLE_GRC=FORCE \ | |
145 | -DENABLE-GR_COMEDI=FORCE \ | |
146 | -DENABLE_GR_CORE=FORCE \ | |
147 | -DENABLE_GR_FCD=FORCE \ | |
148 | -DENABLE_GR_NOAA=FORCE \ | |
149 | -DENABLE_GR_PAGER=FORCE \ | |
150 | -DENABLE_GR_TRELLIS=FORCE \ | |
151 | -DENABLE_GRUEL=FORCE \ | |
152 | %{?with_uhd:-DENABLE_GR_UHD=FORCE} \ | |
153 | -DENABLE_GR_UTILS=FORCE \ | |
154 | -DENABLE_GR_VIDEO_SDL=FORCE \ | |
155 | -DENABLE_GR_VOCODER=FORCE \ | |
156 | -DENABLE_GR_WXGUI=FORCE \ | |
157 | -DENABLE_PYTHON=FORCE \ | |
158 | -DENABLE_VOLK=FORCE \ | |
159 | -DSYSCONFDIR=%{_sysconfdir} \ | |
160 | .. | |
161 | %{__make} | |
162 | ||
163 | %install | |
164 | rm -rf $RPM_BUILD_ROOT | |
165 | ||
166 | %{__make} -C build install \ | |
167 | DESTDIR=$RPM_BUILD_ROOT | |
168 | ||
169 | rm -rf inst-doc | |
170 | install -d inst-doc | |
171 | mv $RPM_BUILD_ROOT%{_docdir}/gnuradio-*/* inst-doc | |
172 | ||
173 | # filter bundled cmake files for other libraries | |
174 | cd $RPM_BUILD_ROOT%{_libdir}/cmake/gnuradio | |
175 | for f in *.cmake; do | |
176 | case $f in | |
177 | FindUHD.cmake|Gr*.cmake|Gnu*.cmake) | |
178 | ;; | |
179 | *) | |
180 | rm "$f" | |
181 | ;; | |
182 | esac | |
183 | done | |
184 | ||
185 | # remove binary from noarch examples | |
186 | %{__rm} $RPM_BUILD_ROOT%{_datadir}/gnuradio/examples/{audio/dial_tone,fcd/fcd_nfm_rx} | |
187 | ||
188 | %clean | |
189 | rm -rf $RPM_BUILD_ROOT | |
190 | ||
191 | %post -p /sbin/ldconfig | |
192 | %postun -p /sbin/ldconfig | |
193 | ||
194 | %files | |
195 | %defattr(644,root,root,755) | |
196 | %doc README.hacking | |
197 | %attr(755,root,root) %{_bindir}/gnuradio-* | |
198 | %attr(755,root,root) %{_bindir}/gr-* | |
199 | %attr(755,root,root) %{_bindir}/gr_* | |
200 | %attr(755,root,root) %{_bindir}/grcc | |
201 | %attr(755,root,root) %{_bindir}/polar_channel_construction | |
202 | %attr(755,root,root) %{_bindir}/usrp_flex | |
203 | %attr(755,root,root) %{_bindir}/usrp_flex_all | |
204 | %attr(755,root,root) %{_bindir}/usrp_flex_band | |
205 | %attr(755,root,root) %{_bindir}/volk-config-info | |
206 | %attr(755,root,root) %{_bindir}/volk_modtool | |
207 | %attr(755,root,root) %{_bindir}/volk_profile | |
208 | %attr(755,root,root) %{_libdir}/libgnuradio-*.so.*.* | |
209 | %attr(755,root,root) %ghost %{_libdir}/libgnuradio-*.so.0 | |
210 | %attr(755,root,root) %{_libdir}/libvolk.so.*.* | |
211 | %dir %{_sysconfdir}/gnuradio | |
212 | %dir %{_sysconfdir}/gnuradio/conf.d | |
213 | %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/gnuradio/conf.d/*.conf | |
214 | ||
215 | %dir %{py_sitedir}/gnuradio | |
216 | %{py_sitedir}/gnuradio/*.py* | |
217 | %dir %{py_sitedir}/gnuradio/analog | |
218 | %attr(755,root,root) %{py_sitedir}/gnuradio/analog/*.so | |
219 | %{py_sitedir}/gnuradio/analog/*.py* | |
220 | ||
221 | %dir %{py_sitedir}/gnuradio/atsc | |
222 | %attr(755,root,root) %{py_sitedir}/gnuradio/atsc/*.so | |
223 | %{py_sitedir}/gnuradio/atsc/*.py* | |
224 | ||
225 | %dir %{py_sitedir}/gnuradio/audio | |
226 | %attr(755,root,root) %{py_sitedir}/gnuradio/audio/*.so | |
227 | %{py_sitedir}/gnuradio/audio/*.py* | |
228 | ||
229 | %dir %{py_sitedir}/gnuradio/blocks | |
230 | %attr(755,root,root) %{py_sitedir}/gnuradio/blocks/*.so | |
231 | %{py_sitedir}/gnuradio/blocks/*.py* | |
232 | ||
233 | %dir %{py_sitedir}/gnuradio/channels | |
234 | %attr(755,root,root) %{py_sitedir}/gnuradio/channels/*.so | |
235 | %{py_sitedir}/gnuradio/channels/*.py* | |
236 | ||
237 | %{py_sitedir}/gnuradio/ctrlport | |
238 | ||
239 | %dir %{py_sitedir}/gnuradio/digital | |
240 | %attr(755,root,root) %{py_sitedir}/gnuradio/digital/*.so | |
241 | %{py_sitedir}/gnuradio/digital/*.py* | |
242 | %{py_sitedir}/gnuradio/digital/utils | |
243 | ||
244 | %dir %{py_sitedir}/gnuradio/dtv | |
245 | %{py_sitedir}/gnuradio/dtv/*.py* | |
246 | %attr(755,root,root) %{py_sitedir}/gnuradio/dtv/_dtv_swig.so | |
247 | ||
248 | %dir %{py_sitedir}/gnuradio/fcd | |
249 | %attr(755,root,root) %{py_sitedir}/gnuradio/fcd/*.so | |
250 | %{py_sitedir}/gnuradio/fcd/*.py* | |
251 | ||
252 | %dir %{py_sitedir}/gnuradio/fec | |
253 | %attr(755,root,root) %{py_sitedir}/gnuradio/fec/*.so | |
254 | %{py_sitedir}/gnuradio/fec/*.py* | |
255 | %dir %{py_sitedir}/gnuradio/fec/LDPC | |
256 | %{py_sitedir}/gnuradio/fec/LDPC/*.py* | |
257 | %dir %{py_sitedir}/gnuradio/fec/polar | |
258 | %{py_sitedir}/gnuradio/fec/polar/*.py* | |
259 | ||
260 | %dir %{py_sitedir}/gnuradio/fft | |
261 | %attr(755,root,root) %{py_sitedir}/gnuradio/fft/*.so | |
262 | %{py_sitedir}/gnuradio/fft/*.py* | |
263 | ||
264 | %dir %{py_sitedir}/gnuradio/filter | |
265 | %attr(755,root,root) %{py_sitedir}/gnuradio/filter/*.so | |
266 | %{py_sitedir}/gnuradio/filter/*.py* | |
267 | ||
268 | %dir %{py_sitedir}/gnuradio/gr | |
269 | %attr(755,root,root) %{py_sitedir}/gnuradio/gr/*.so | |
270 | %{py_sitedir}/gnuradio/gr/*.py* | |
271 | ||
272 | %{py_sitedir}/gnuradio/grc | |
273 | %{py_sitedir}/gnuradio/gru | |
274 | %{py_sitedir}/gnuradio/modtool | |
275 | ||
276 | %dir %{py_sitedir}/gnuradio/noaa | |
277 | %attr(755,root,root) %{py_sitedir}/gnuradio/noaa/*.so | |
278 | %{py_sitedir}/gnuradio/noaa/*.py* | |
279 | ||
280 | %dir %{py_sitedir}/gnuradio/pager | |
281 | %attr(755,root,root) %{py_sitedir}/gnuradio/pager/*.so | |
282 | %{py_sitedir}/gnuradio/pager/*.py* | |
283 | ||
284 | %dir %{py_sitedir}/gnuradio/qtgui | |
285 | %attr(755,root,root) %{py_sitedir}/gnuradio/qtgui/*.so | |
286 | %{py_sitedir}/gnuradio/qtgui/*.py* | |
287 | ||
288 | %dir %{py_sitedir}/gnuradio/trellis | |
289 | %attr(755,root,root) %{py_sitedir}/gnuradio/trellis/*.so | |
290 | %{py_sitedir}/gnuradio/trellis/*.py* | |
291 | ||
292 | %dir %{py_sitedir}/gnuradio/video_sdl | |
293 | %attr(755,root,root) %{py_sitedir}/gnuradio/video_sdl/*.so | |
294 | %{py_sitedir}/gnuradio/video_sdl/*.py* | |
295 | ||
296 | %dir %{py_sitedir}/gnuradio/vocoder | |
297 | %attr(755,root,root) %{py_sitedir}/gnuradio/vocoder/*.so | |
298 | %{py_sitedir}/gnuradio/vocoder/*.py* | |
299 | ||
300 | %dir %{py_sitedir}/gnuradio/wavelet | |
301 | %attr(755,root,root) %{py_sitedir}/gnuradio/wavelet/*.so | |
302 | %{py_sitedir}/gnuradio/wavelet/*.py* | |
303 | ||
304 | %dir %{py_sitedir}/gnuradio/wxgui | |
305 | %attr(755,root,root) %{py_sitedir}/gnuradio/wxgui/*.so | |
306 | %{py_sitedir}/gnuradio/wxgui/*.py* | |
307 | %{py_sitedir}/gnuradio/wxgui/forms | |
308 | %{py_sitedir}/gnuradio/wxgui/plotter | |
309 | ||
310 | %dir %{py_sitedir}/gnuradio/zeromq | |
311 | %attr(755,root,root) %{py_sitedir}/gnuradio/zeromq/*.so | |
312 | %{py_sitedir}/gnuradio/zeromq/*.py* | |
313 | ||
314 | %{py_sitedir}/grc_gnuradio | |
315 | %dir %{py_sitedir}/pmt | |
316 | %attr(755,root,root) %{py_sitedir}/pmt/_pmt_swig.so | |
317 | %{py_sitedir}/pmt/*.py* | |
318 | %{py_sitedir}/volk_modtool | |
319 | ||
320 | %{_datadir}/gnuradio | |
321 | %exclude %{_datadir}/gnuradio/examples | |
322 | ||
323 | %dir %{_libdir}/gnuradio | |
324 | %attr(755,root,root) %{_libdir}/gnuradio/grc_setup_freedesktop | |
325 | ||
326 | %files devel | |
327 | %defattr(644,root,root,755) | |
328 | %{_includedir}/gnuradio | |
329 | %{_includedir}/pmt | |
330 | %{_includedir}/volk | |
331 | %attr(755,root,root) %{_libdir}/libgnuradio-*.so | |
332 | %attr(755,root,root) %{_libdir}/libvolk.so | |
333 | %{_pkgconfigdir}/gnuradio-*.pc | |
334 | %{_pkgconfigdir}/gr-wxgui.pc | |
335 | %{_pkgconfigdir}/volk.pc | |
336 | %dir %{_libdir}/cmake/gnuradio | |
337 | %{_libdir}/cmake/gnuradio/Gnu*.cmake | |
338 | %{_libdir}/cmake/gnuradio/Gr*.cmake | |
339 | %{?with_uhd:%{_libdir}/cmake/gnuradio/FindUHD.cmake} | |
340 | %{_libdir}/cmake/volk | |
341 | ||
342 | %files doc | |
343 | %defattr(644,root,root,755) | |
344 | %doc inst-doc/* | |
345 | ||
346 | %files examples | |
347 | %defattr(644,root,root,755) | |
348 | %{_datadir}/gnuradio/examples |