]> git.pld-linux.org Git - packages/uhd.git/blob - uhd.spec
fix build with gcc >= 13
[packages/uhd.git] / uhd.spec
1 #
2 # Conditional build
3 %bcond_without  mpm     # Module Peripheral Manager (run on embedded devices)
4 %bcond_with     dpdk    # DPDK support
5 %bcond_with     tests   # build tests
6
7 Summary:        Universal Hardware Driver for Ettus Research products
8 Summary(pl.UTF-8):      Uniwersalny sterownik sprzętowy do produktów Ettus Research
9 Name:           uhd
10 Version:        4.4.0.0
11 Release:        1
12 License:        GPL v3+
13 Group:          Applications/System
14 #Source0Download: https://github.com/EttusResearch/uhd/releases
15 Source0:        https://github.com/EttusResearch/uhd/archive/v%{version}/%{name}-%{version}.tar.gz
16 # Source0-md5:  d91249b0114b2ac2fc36457f294ee55b
17 Patch0:         gcc13.patch
18 Patch1:         %{name}-libdir.patch
19 Patch3:         %{name}-mpm-build.patch
20 URL:            https://www.ettus.com/sdr-software/uhd-usrp-hardware-driver/
21 BuildRequires:  boost-devel >= 1.66
22 BuildRequires:  cmake >= 3.8
23 BuildRequires:  doxygen
24 %if %{with dpdk}
25 BuildRequires:  dpdk-devel >= 18.11
26 BuildRequires:  dpdk-devel < 21.12
27 %endif
28 BuildRequires:  libstdc++-devel >= 6:6.3
29 BuildRequires:  libusb-devel >= 1.0
30 BuildRequires:  ncurses-devel
31 BuildRequires:  pkgconfig
32 BuildRequires:  python3 >= 1:3.6
33 BuildRequires:  python3-Mako >= 0.4.2
34 BuildRequires:  python3-devel >= 1:3.5
35 BuildRequires:  python3-numpy-devel >= 1.11
36 BuildRequires:  python3-requests >= 2.0
37 BuildRequires:  rpm-pythonprov
38 BuildRequires:  rpmbuild(macros) >= 1.742
39 %if %{with mpm}
40 BuildRequires:  udev-devel
41 %endif
42 Requires:       %{name}-libs = %{version}-%{release}
43 Requires:       python3-uhd = %{version}-%{release}
44 BuildRoot:      %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
45
46 # per_lcore__lcore_id, per_lcore__rte_errno non-function symbols from dpdk
47 %define         skip_post_check_so      libuhd.so.*
48
49 %description
50 The UHD is the universal hardware driver for Ettus Research products.
51 The goal of the UHD is to provide a host driver and API for current
52 and future Ettus Research products. It can be used standalone without
53 GNU Radio.
54
55 %description -l pl.UTF-8
56 UHD to uniwersalny sterownik sprzętowy do produktów Ettus Research.
57 Celem UHD jest zapewnienie sterownika gospodarza oraz API do obecnych
58 i przyszłych produków Ettus Research. Może być używany samodzielnie
59 bez GNU Radio.
60
61 %package libs
62 Summary:        USRP Hardware Driver library
63 Summary(pl.UTF-8):      Biblioteka USRP Hardware Driver
64 Group:          Libraries
65
66 %description libs
67 USRP Hardware Driver library.
68
69 %description libs -l pl.UTF-8
70 Biblioteka USRP Hardware Driver.
71
72 %package devel
73 Summary:        Development files for USRP Hardware Driver library
74 Summary(pl.UTF-8):      Pliki programistyczne biblioteki USRP Hardware Driver
75 Group:          Development/Libraries
76 Requires:       %{name}-libs = %{version}-%{release}
77 Requires:       boost-devel >= 1.66
78
79 %description devel
80 Header files for USRP Hardware Driver for Ettus Research products.
81
82 %description devel -l pl.UTF-8
83 Pliki nagłówkowe biblioteki USRP Hardware Driver (sterownika dla
84 sprzętu USRP) do produktów Ettus Research.
85
86 %package examples
87 Summary:        Examples for UHD
88 Summary(pl.UTF-8):      Przykłady do UHD
89 Group:          Applications/System
90 Requires:       %{name}-libs = %{version}-%{release}
91
92 %description examples
93 Example programs for USRP Hardware Driver for Ettus Research products.
94
95 %description examples -l pl.UTF-8
96 Programy przykładowe do biblioteki USRP Hardware Driver (sterownika
97 dla sprzętu USRP) do produktów Ettus Research.
98
99 %package doc
100 Summary:        Documentation for UHD
101 Summary(pl.UTF-8):      Dokumentacja do UHD
102 Group:          Documentation
103 BuildArch:      noarch
104
105 %description doc
106 Documentation for USRP Hardware Driver for Ettus Research products.
107
108 %description doc -l pl.UTF-8
109 Dokumentacja do biblioteki USRP Hardware Driver (sterownika dla
110 sprzętu USRP) do produktów Ettus Research.
111
112 %package -n python3-uhd
113 Summary:        Python interface for USRP Hardware Driver library
114 Summary(pl.UTF-8):      Interfejs Pythona do biblioteki USRP Hardware Driver
115 Group:          Libraries/Python
116
117 %description -n python3-uhd
118 Python interface for USRP Hardware Driver library.
119
120 %description -n python3-uhd -l pl.UTF-8
121 Interfejs Pythona do biblioteki USRP Hardware Driver.
122
123 %package mpm
124 Summary:        USRP Module Peripheral Manager
125 Summary(pl.UTF-8):      USRP Module Peripheral Manager - zarządca urządzeń peryferyjnych
126 Group:          Applications/System
127 Requires:       %{name}-mpm-libs = %{version}-%{release}
128
129 %description mpm
130 USRP Module Peripheral Manager.
131
132 %description mpm -l pl.UTF-8
133 USRP Module Peripheral Manager - zarządca urządzeń peryferyjnych.
134
135 %package mpm-libs
136 Summary:        USRP Module Peripheral Manager library
137 Summary(pl.UTF-8):      Biblioteka USRP Module Peripheral Manager
138 Group:          Libraries
139
140 %description mpm-libs
141 USRP Module Peripheral Manager library.
142
143 %description mpm-libs -l pl.UTF-8
144 Biblioteka USRP Module Peripheral Manager.
145
146 %package mpm-devel
147 Summary:        USRP Module Peripheral Manager library
148 Summary(pl.UTF-8):      Biblioteka USRP Module Peripheral Manager
149 Group:          Development/Libraries
150 Requires:       %{name}-mpm-libs = %{version}-%{release}
151
152 %description mpm-devel
153 USRP Module Peripheral Manager library.
154
155 %description mpm-devel -l pl.UTF-8
156 Biblioteka USRP Module Peripheral Manager.
157
158 %package -n python3-usrp_mpm
159 Summary:        Python USRP Module Peripheral Manager library
160 Summary(pl.UTF-8):      Biblioteka USRP Module Peripheral Manager dla Pythona
161 Group:          Libraries/Python
162 Requires:       %{name}-mpm-libs = %{version}-%{release}
163
164 %description -n python3-usrp_mpm
165 Python USRP Module Peripheral Manager library.
166
167 %description -n python3-usrp_mpm -l pl.UTF-8
168 Biblioteka USRP Module Peripheral Manager dla Pythona.
169
170 %prep
171 %setup -q
172 %patch0 -p1
173 %patch1 -p1
174 %patch3 -p1
175
176 %{__sed} -i -e '1s,/usr/bin/env python$,%{__python},' host/examples/python/*.py
177 %{__sed} -i -e '1s,/usr/bin/env python$,%{__python},' host/utils/{converter_benchmark.py,usrp2_{card_burner,card_burner_gui,recovery}.py}
178 %{__sed} -i -e '1s,/usr/bin/env python$,%{__python},' host/utils/latency/graph.py
179 grep -rl '/usr/bin/env python3' . | xargs %{__sed} -i -e '1s,/usr/bin/env python3,%{__python3},'
180
181 %build
182 install -d build-{host,mpm}
183 cd build-host
184 %cmake ../host \
185         -DUHD_VERSION="%{version}" \
186         %{!?with_dpdk:-DENABLE_DPDK=OFF} \
187         %{cmake_on_off tests ENABLE_TESTS} \
188         -DENABLE_USB=ON
189
190 %{__make}
191
192 %if %{with mpm}
193 cd ../build-mpm
194 %cmake ../mpm
195
196 # -DMPM_DEVICE= n3xx (Mykonos+Magnesium), e320, e31x
197 %endif
198
199 %{__make}
200
201 %install
202 rm -rf $RPM_BUILD_ROOT
203
204 %{__make} -C build-host install \
205         DESTDIR=$RPM_BUILD_ROOT
206
207 # outdated (binaries removed)
208 %{__rm} $RPM_BUILD_ROOT%{_mandir}/man1/usrp_n2xx_simple_net_burner.1*
209 # not packaging tests
210 %{__rm} $RPM_BUILD_ROOT%{_libdir}/%{name}/utils/latency/run_tests.py
211 %if %{with tests}
212 %{__rm} -r $RPM_BUILD_ROOT%{_libdir}/%{name}/tests
213 %endif
214 # packaged as %doc
215 %{__rm} $RPM_BUILD_ROOT%{_docdir}/uhd/{LICENSE,README.md}
216
217 %if %{with mpm}
218 %{__make} -C build-mpm install \
219         DESTDIR=$RPM_BUILD_ROOT
220
221 %{__rm} $RPM_BUILD_ROOT%{_bindir}/aurora_bist_test.py
222
223 # combine all rules
224 LC_ALL=C sort -u mpm/systemd/udev/????/70-sfp-net.rules >$RPM_BUILD_ROOT/lib/udev/rules.d/70-sfp-net.rules
225
226 # configuration examples
227 %{__rm} $RPM_BUILD_ROOT/lib/systemd/network/{eth0,int0,sfp*}.network
228 %endif
229
230 %py3_comp $RPM_BUILD_ROOT%{py3_sitedir}
231 %py3_ocomp $RPM_BUILD_ROOT%{py3_sitedir}
232
233 %clean
234 rm -rf $RPM_BUILD_ROOT
235
236 %post   libs -p /sbin/ldconfig
237 %postun libs -p /sbin/ldconfig
238
239 %post   mpm-libs -p /sbin/ldconfig
240 %postun mpm-libs -p /sbin/ldconfig
241
242 %files
243 %defattr(644,root,root,755)
244 %doc CHANGELOG host/{LICENSE,README.md}
245 %attr(755,root,root) %{_bindir}/check-filesystem
246 %attr(755,root,root) %{_bindir}/rfnoc_image_builder
247 %attr(755,root,root) %{_bindir}/uhd_adc_self_cal
248 %attr(755,root,root) %{_bindir}/uhd_cal_rx_iq_balance
249 %attr(755,root,root) %{_bindir}/uhd_cal_tx_dc_offset
250 %attr(755,root,root) %{_bindir}/uhd_cal_tx_iq_balance
251 %attr(755,root,root) %{_bindir}/uhd_config_info
252 %attr(755,root,root) %{_bindir}/uhd_find_devices
253 %attr(755,root,root) %{_bindir}/uhd_image_loader
254 %attr(755,root,root) %{_bindir}/uhd_images_downloader
255 %attr(755,root,root) %{_bindir}/uhd_usrp_probe
256 %attr(755,root,root) %{_bindir}/usrp2_card_burner
257 %attr(755,root,root) %{_bindir}/usrpctl
258 %{_mandir}/man1/uhd_cal_rx_iq_balance.1*
259 %{_mandir}/man1/uhd_cal_tx_dc_offset.1*
260 %{_mandir}/man1/uhd_cal_tx_iq_balance.1*
261 %{_mandir}/man1/uhd_config_info.1*
262 %{_mandir}/man1/uhd_find_devices.1*
263 %{_mandir}/man1/uhd_image_loader.1*
264 %{_mandir}/man1/uhd_images_downloader.1*
265 %{_mandir}/man1/uhd_usrp_probe.1*
266 %{_mandir}/man1/usrp2_card_burner.1*
267 %{_mandir}/man1/usrpctl.1*
268 %dir %{_libdir}/%{name}/utils
269 %attr(755,root,root) %{_libdir}/%{name}/utils/b2xx_fx3_utils
270 %attr(755,root,root) %{_libdir}/%{name}/utils/convert_cal_data.py
271 %attr(755,root,root) %{_libdir}/%{name}/utils/converter_benchmark
272 %attr(755,root,root) %{_libdir}/%{name}/utils/converter_benchmark.py
273 %attr(755,root,root) %{_libdir}/%{name}/utils/fx2_init_eeprom
274 %attr(755,root,root) %{_libdir}/%{name}/utils/octoclock_burn_eeprom
275 %attr(755,root,root) %{_libdir}/%{name}/utils/query_gpsdo_sensors
276 %attr(755,root,root) %{_libdir}/%{name}/utils/uhd_images_downloader.py
277 %attr(755,root,root) %{_libdir}/%{name}/utils/uhd_power_cal.py
278 %attr(755,root,root) %{_libdir}/%{name}/utils/usrp2_card_burner.py
279 %attr(755,root,root) %{_libdir}/%{name}/utils/usrp2_recovery.py
280 %attr(755,root,root) %{_libdir}/%{name}/utils/usrp_burn_db_eeprom
281 %attr(755,root,root) %{_libdir}/%{name}/utils/usrp_burn_mb_eeprom
282 %{_libdir}/%{name}/utils/uhd-usrp.rules
283 %dir %{_libdir}/%{name}/utils/latency
284 %attr(755,root,root) %{_libdir}/%{name}/utils/latency/graph.py
285 %attr(755,root,root) %{_libdir}/%{name}/utils/latency/responder
286 %{_datadir}/%{name}
287
288 %files libs
289 %defattr(644,root,root,755)
290 %attr(755,root,root) %{_libdir}/libuhd.so.4.4.0
291 %dir %{_libdir}/%{name}
292
293 %files devel
294 %defattr(644,root,root,755)
295 %attr(755,root,root) %{_libdir}/libuhd.so
296 %{_includedir}/uhd
297 %{_includedir}/uhd.h
298 %{_libdir}/cmake/uhd
299 %{_pkgconfigdir}/uhd.pc
300
301 %files examples
302 %defattr(644,root,root,755)
303 %dir %{_libdir}/%{name}/examples
304 %attr(755,root,root) %{_libdir}/%{name}/examples/*
305
306 %files doc
307 %defattr(644,root,root,755)
308 %{_docdir}/%{name}
309
310 %files -n python3-uhd
311 %defattr(644,root,root,755)
312 %dir %{py3_sitedir}/uhd
313 %attr(755,root,root) %{py3_sitedir}/uhd/libpyuhd.cpython-*.so
314 %{py3_sitedir}/uhd/*.py
315 %{py3_sitedir}/uhd/__pycache__
316 %{py3_sitedir}/uhd/dsp
317 %{py3_sitedir}/uhd/imgbuilder
318 %{py3_sitedir}/uhd/usrp
319 %{py3_sitedir}/uhd/usrpctl
320 %{py3_sitedir}/uhd/utils
321
322 %if %{with mpm}
323 %files mpm
324 %defattr(644,root,root,755)
325 %attr(755,root,root) %{_bindir}/db-dump
326 %attr(755,root,root) %{_bindir}/db-id
327 %attr(755,root,root) %{_bindir}/db-init
328 %attr(755,root,root) %{_bindir}/eeprom-blank
329 %attr(755,root,root) %{_bindir}/eeprom-dump
330 %attr(755,root,root) %{_bindir}/eeprom-id
331 %attr(755,root,root) %{_bindir}/eeprom-init
332 %attr(755,root,root) %{_bindir}/eeprom-set-flags
333 %attr(755,root,root) %{_bindir}/fan-limits
334 %attr(755,root,root) %{_bindir}/mpm_debug.py
335 %attr(755,root,root) %{_bindir}/mpm_shell.py
336 %attr(755,root,root) %{_bindir}/n3xx_bist
337 %attr(755,root,root) %{_bindir}/usrp_hwd.py
338 %attr(755,root,root) %{_bindir}/usrp_update_fs
339 /lib/udev/rules.d/70-sfp-net.rules
340 %{systemdunitdir}/usrp-hwd.service
341 /usr/lib/sysctl.d/usrp-hwd.conf
342
343 %files mpm-libs
344 %defattr(644,root,root,755)
345 %attr(755,root,root) %{_libdir}/libusrp-periphs.so.*.*.*
346 %attr(755,root,root) %ghost %{_libdir}/libusrp-periphs.so.4
347
348 %files mpm-devel
349 %defattr(644,root,root,755)
350 %attr(755,root,root) %{_libdir}/libusrp-periphs.so
351 %{_includedir}/mpm
352
353 %files -n python3-usrp_mpm
354 %defattr(644,root,root,755)
355 %dir %{py3_sitedir}/usrp_mpm
356 %attr(755,root,root) %{py3_sitedir}/usrp_mpm/libpyusrp_periphs.so
357 %{py3_sitedir}/usrp_mpm/*.py
358 %{py3_sitedir}/usrp_mpm/__pycache__
359 %{py3_sitedir}/usrp_mpm/chips
360 %{py3_sitedir}/usrp_mpm/cores
361 %{py3_sitedir}/usrp_mpm/dboard_manager
362 %{py3_sitedir}/usrp_mpm/periph_manager
363 %{py3_sitedir}/usrp_mpm/sys_utils
364 %{py3_sitedir}/usrp_mpm/xports
365 %{py3_sitedir}/usrp_mpm/simulator
366 %endif
This page took 0.105762 seconds and 3 git commands to generate.