3 %bcond_without mpm # Module Peripheral Manager (run on embedded devices)
4 %bcond_with dpdk # DPDK support
5 %bcond_with tests # build tests
7 Summary: Universal Hardware Driver for Ettus Research products
8 Summary(pl.UTF-8): Uniwersalny sterownik sprzętowy do produktów Ettus Research
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
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
25 BuildRequires: dpdk-devel >= 18.11
26 BuildRequires: dpdk-devel < 21.12
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-build >= 4.6
38 BuildRequires: rpm-pythonprov
39 BuildRequires: rpmbuild(macros) >= 1.742
41 BuildRequires: udev-devel
43 Requires: %{name}-libs = %{version}-%{release}
44 Requires: python3-uhd = %{version}-%{release}
45 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
47 # per_lcore__lcore_id, per_lcore__rte_errno non-function symbols from dpdk
48 %define skip_post_check_so libuhd.so.*
51 The UHD is the universal hardware driver for Ettus Research products.
52 The goal of the UHD is to provide a host driver and API for current
53 and future Ettus Research products. It can be used standalone without
56 %description -l pl.UTF-8
57 UHD to uniwersalny sterownik sprzętowy do produktów Ettus Research.
58 Celem UHD jest zapewnienie sterownika gospodarza oraz API do obecnych
59 i przyszłych produków Ettus Research. Może być używany samodzielnie
63 Summary: USRP Hardware Driver library
64 Summary(pl.UTF-8): Biblioteka USRP Hardware Driver
68 USRP Hardware Driver library.
70 %description libs -l pl.UTF-8
71 Biblioteka USRP Hardware Driver.
74 Summary: Development files for USRP Hardware Driver library
75 Summary(pl.UTF-8): Pliki programistyczne biblioteki USRP Hardware Driver
76 Group: Development/Libraries
77 Requires: %{name}-libs = %{version}-%{release}
78 Requires: boost-devel >= 1.66
81 Header files for USRP Hardware Driver for Ettus Research products.
83 %description devel -l pl.UTF-8
84 Pliki nagłówkowe biblioteki USRP Hardware Driver (sterownika dla
85 sprzętu USRP) do produktów Ettus Research.
88 Summary: Examples for UHD
89 Summary(pl.UTF-8): Przykłady do UHD
90 Group: Applications/System
91 Requires: %{name}-libs = %{version}-%{release}
94 Example programs for USRP Hardware Driver for Ettus Research products.
96 %description examples -l pl.UTF-8
97 Programy przykładowe do biblioteki USRP Hardware Driver (sterownika
98 dla sprzętu USRP) do produktów Ettus Research.
101 Summary: Documentation for UHD
102 Summary(pl.UTF-8): Dokumentacja do UHD
107 Documentation for USRP Hardware Driver for Ettus Research products.
109 %description doc -l pl.UTF-8
110 Dokumentacja do biblioteki USRP Hardware Driver (sterownika dla
111 sprzętu USRP) do produktów Ettus Research.
113 %package -n python3-uhd
114 Summary: Python interface for USRP Hardware Driver library
115 Summary(pl.UTF-8): Interfejs Pythona do biblioteki USRP Hardware Driver
116 Group: Libraries/Python
118 %description -n python3-uhd
119 Python interface for USRP Hardware Driver library.
121 %description -n python3-uhd -l pl.UTF-8
122 Interfejs Pythona do biblioteki USRP Hardware Driver.
125 Summary: USRP Module Peripheral Manager
126 Summary(pl.UTF-8): USRP Module Peripheral Manager - zarządca urządzeń peryferyjnych
127 Group: Applications/System
128 Requires: %{name}-mpm-libs = %{version}-%{release}
131 USRP Module Peripheral Manager.
133 %description mpm -l pl.UTF-8
134 USRP Module Peripheral Manager - zarządca urządzeń peryferyjnych.
137 Summary: USRP Module Peripheral Manager library
138 Summary(pl.UTF-8): Biblioteka USRP Module Peripheral Manager
141 %description mpm-libs
142 USRP Module Peripheral Manager library.
144 %description mpm-libs -l pl.UTF-8
145 Biblioteka USRP Module Peripheral Manager.
148 Summary: USRP Module Peripheral Manager library
149 Summary(pl.UTF-8): Biblioteka USRP Module Peripheral Manager
150 Group: Development/Libraries
151 Requires: %{name}-mpm-libs = %{version}-%{release}
153 %description mpm-devel
154 USRP Module Peripheral Manager library.
156 %description mpm-devel -l pl.UTF-8
157 Biblioteka USRP Module Peripheral Manager.
159 %package -n python3-usrp_mpm
160 Summary: Python USRP Module Peripheral Manager library
161 Summary(pl.UTF-8): Biblioteka USRP Module Peripheral Manager dla Pythona
162 Group: Libraries/Python
163 Requires: %{name}-mpm-libs = %{version}-%{release}
165 %description -n python3-usrp_mpm
166 Python USRP Module Peripheral Manager library.
168 %description -n python3-usrp_mpm -l pl.UTF-8
169 Biblioteka USRP Module Peripheral Manager dla Pythona.
177 %{__sed} -i -e '1s,/usr/bin/env python$,%{__python},' host/examples/python/*.py
178 %{__sed} -i -e '1s,/usr/bin/env python$,%{__python},' host/utils/{converter_benchmark.py,usrp2_{card_burner,card_burner_gui,recovery}.py}
179 %{__sed} -i -e '1s,/usr/bin/env python$,%{__python},' host/utils/latency/graph.py
180 grep -rl '/usr/bin/env python3' . | xargs %{__sed} -i -e '1s,/usr/bin/env python3,%{__python3},'
183 install -d build-{host,mpm}
186 -DUHD_VERSION="%{version}" \
187 %{!?with_dpdk:-DENABLE_DPDK=OFF} \
188 %{cmake_on_off tests ENABLE_TESTS} \
197 # -DMPM_DEVICE= n3xx (Mykonos+Magnesium), e320, e31x
203 rm -rf $RPM_BUILD_ROOT
205 %{__make} -C build-host install \
206 DESTDIR=$RPM_BUILD_ROOT
208 # outdated (binaries removed)
209 %{__rm} $RPM_BUILD_ROOT%{_mandir}/man1/usrp_n2xx_simple_net_burner.1*
210 # not packaging tests
211 %{__rm} $RPM_BUILD_ROOT%{_libdir}/%{name}/utils/latency/run_tests.py
213 %{__rm} -r $RPM_BUILD_ROOT%{_libdir}/%{name}/tests
216 %{__rm} $RPM_BUILD_ROOT%{_docdir}/uhd/{LICENSE,README.md}
219 %{__make} -C build-mpm install \
220 DESTDIR=$RPM_BUILD_ROOT
222 %{__rm} $RPM_BUILD_ROOT%{_bindir}/aurora_bist_test.py
225 LC_ALL=C sort -u mpm/systemd/udev/????/70-sfp-net.rules >$RPM_BUILD_ROOT/lib/udev/rules.d/70-sfp-net.rules
227 # configuration examples
228 %{__rm} $RPM_BUILD_ROOT/lib/systemd/network/{eth0,int0,sfp*}.network
231 %py3_comp $RPM_BUILD_ROOT%{py3_sitedir}
232 %py3_ocomp $RPM_BUILD_ROOT%{py3_sitedir}
235 rm -rf $RPM_BUILD_ROOT
237 %post libs -p /sbin/ldconfig
238 %postun libs -p /sbin/ldconfig
240 %post mpm-libs -p /sbin/ldconfig
241 %postun mpm-libs -p /sbin/ldconfig
244 %defattr(644,root,root,755)
245 %doc CHANGELOG host/{LICENSE,README.md}
246 %attr(755,root,root) %{_bindir}/check-filesystem
247 %attr(755,root,root) %{_bindir}/rfnoc_image_builder
248 %attr(755,root,root) %{_bindir}/uhd_adc_self_cal
249 %attr(755,root,root) %{_bindir}/uhd_cal_rx_iq_balance
250 %attr(755,root,root) %{_bindir}/uhd_cal_tx_dc_offset
251 %attr(755,root,root) %{_bindir}/uhd_cal_tx_iq_balance
252 %attr(755,root,root) %{_bindir}/uhd_config_info
253 %attr(755,root,root) %{_bindir}/uhd_find_devices
254 %attr(755,root,root) %{_bindir}/uhd_image_loader
255 %attr(755,root,root) %{_bindir}/uhd_images_downloader
256 %attr(755,root,root) %{_bindir}/uhd_usrp_probe
257 %attr(755,root,root) %{_bindir}/usrp2_card_burner
258 %attr(755,root,root) %{_bindir}/usrpctl
259 %{_mandir}/man1/uhd_cal_rx_iq_balance.1*
260 %{_mandir}/man1/uhd_cal_tx_dc_offset.1*
261 %{_mandir}/man1/uhd_cal_tx_iq_balance.1*
262 %{_mandir}/man1/uhd_config_info.1*
263 %{_mandir}/man1/uhd_find_devices.1*
264 %{_mandir}/man1/uhd_image_loader.1*
265 %{_mandir}/man1/uhd_images_downloader.1*
266 %{_mandir}/man1/uhd_usrp_probe.1*
267 %{_mandir}/man1/usrp2_card_burner.1*
268 %{_mandir}/man1/usrpctl.1*
269 %dir %{_libdir}/%{name}/utils
270 %attr(755,root,root) %{_libdir}/%{name}/utils/b2xx_fx3_utils
271 %attr(755,root,root) %{_libdir}/%{name}/utils/convert_cal_data.py
272 %attr(755,root,root) %{_libdir}/%{name}/utils/converter_benchmark
273 %attr(755,root,root) %{_libdir}/%{name}/utils/converter_benchmark.py
274 %attr(755,root,root) %{_libdir}/%{name}/utils/fx2_init_eeprom
275 %attr(755,root,root) %{_libdir}/%{name}/utils/octoclock_burn_eeprom
276 %attr(755,root,root) %{_libdir}/%{name}/utils/query_gpsdo_sensors
277 %attr(755,root,root) %{_libdir}/%{name}/utils/uhd_images_downloader.py
278 %attr(755,root,root) %{_libdir}/%{name}/utils/uhd_power_cal.py
279 %attr(755,root,root) %{_libdir}/%{name}/utils/usrp2_card_burner.py
280 %attr(755,root,root) %{_libdir}/%{name}/utils/usrp2_recovery.py
281 %attr(755,root,root) %{_libdir}/%{name}/utils/usrp_burn_db_eeprom
282 %attr(755,root,root) %{_libdir}/%{name}/utils/usrp_burn_mb_eeprom
283 %{_libdir}/%{name}/utils/uhd-usrp.rules
284 %dir %{_libdir}/%{name}/utils/latency
285 %attr(755,root,root) %{_libdir}/%{name}/utils/latency/graph.py
286 %attr(755,root,root) %{_libdir}/%{name}/utils/latency/responder
290 %defattr(644,root,root,755)
291 %attr(755,root,root) %{_libdir}/libuhd.so.4.4.0
292 %dir %{_libdir}/%{name}
295 %defattr(644,root,root,755)
296 %attr(755,root,root) %{_libdir}/libuhd.so
300 %{_pkgconfigdir}/uhd.pc
303 %defattr(644,root,root,755)
304 %dir %{_libdir}/%{name}/examples
305 %attr(755,root,root) %{_libdir}/%{name}/examples/*
308 %defattr(644,root,root,755)
311 %files -n python3-uhd
312 %defattr(644,root,root,755)
313 %dir %{py3_sitedir}/uhd
314 %attr(755,root,root) %{py3_sitedir}/uhd/libpyuhd.cpython-*.so
315 %{py3_sitedir}/uhd/*.py
316 %{py3_sitedir}/uhd/__pycache__
317 %{py3_sitedir}/uhd/dsp
318 %{py3_sitedir}/uhd/imgbuilder
319 %{py3_sitedir}/uhd/usrp
320 %{py3_sitedir}/uhd/usrpctl
321 %{py3_sitedir}/uhd/utils
325 %defattr(644,root,root,755)
326 %attr(755,root,root) %{_bindir}/db-dump
327 %attr(755,root,root) %{_bindir}/db-id
328 %attr(755,root,root) %{_bindir}/db-init
329 %attr(755,root,root) %{_bindir}/eeprom-blank
330 %attr(755,root,root) %{_bindir}/eeprom-dump
331 %attr(755,root,root) %{_bindir}/eeprom-id
332 %attr(755,root,root) %{_bindir}/eeprom-init
333 %attr(755,root,root) %{_bindir}/eeprom-set-flags
334 %attr(755,root,root) %{_bindir}/fan-limits
335 %attr(755,root,root) %{_bindir}/mpm_debug.py
336 %attr(755,root,root) %{_bindir}/mpm_shell.py
337 %attr(755,root,root) %{_bindir}/n3xx_bist
338 %attr(755,root,root) %{_bindir}/usrp_hwd.py
339 %attr(755,root,root) %{_bindir}/usrp_update_fs
340 /lib/udev/rules.d/70-sfp-net.rules
341 %{systemdunitdir}/usrp-hwd.service
342 /usr/lib/sysctl.d/usrp-hwd.conf
345 %defattr(644,root,root,755)
346 %attr(755,root,root) %{_libdir}/libusrp-periphs.so.*.*.*
347 %attr(755,root,root) %ghost %{_libdir}/libusrp-periphs.so.4
350 %defattr(644,root,root,755)
351 %attr(755,root,root) %{_libdir}/libusrp-periphs.so
354 %files -n python3-usrp_mpm
355 %defattr(644,root,root,755)
356 %dir %{py3_sitedir}/usrp_mpm
357 %attr(755,root,root) %{py3_sitedir}/usrp_mpm/libpyusrp_periphs.so
358 %{py3_sitedir}/usrp_mpm/*.py
359 %{py3_sitedir}/usrp_mpm/__pycache__
360 %{py3_sitedir}/usrp_mpm/chips
361 %{py3_sitedir}/usrp_mpm/cores
362 %{py3_sitedir}/usrp_mpm/dboard_manager
363 %{py3_sitedir}/usrp_mpm/periph_manager
364 %{py3_sitedir}/usrp_mpm/sys_utils
365 %{py3_sitedir}/usrp_mpm/xports
366 %{py3_sitedir}/usrp_mpm/simulator