# By default include binary_firmware, otherwise try to rebuild # the firmware from sources. If you want to rebuild all firmware # images you need to install appropriate tools (e.g. Xilinx ISE). %bcond_without binary_firmware # NEON support is by default disabled on ARMs # building with --with=neon will enable auto detection %bcond_with neon %global ver_1 3 %global ver_2 10 %global ver_3 3 %global ver_4 0 %global ver %(printf "%03d.%03d.%03d.%03d" %{ver_1} %{ver_2} %{ver_3} %{ver_4}) %global ver_ %(printf "%03d_%03d_%03d_%03d" %{ver_1} %{ver_2} %{ver_3} %{ver_4}) %global wireshark_ver %((%{__awk} '/^#define VERSION[ \t]+/ { print $NF }' /usr/include/wireshark/config.h 2>/dev/null||echo none)|/usr/bin/tr -d '"') %ifarch %{arm} aarch64 %if ! %{with neon} %global have_neon -DHAVE_ARM_NEON_H=0 %endif %endif Name: uhd URL: http://code.ettus.com/redmine/ettus/projects/uhd/wiki Version: %{ver_1}.%{ver_2}.%{ver_3}.%{ver_4} Release: 2%{?dist} License: GPLv3+ BuildRequires: cmake BuildRequires: boost-devel, libusb1-devel, python-cheetah, ncurses-devel BuildRequires: docutils, doxygen, pkgconfig, libpcap-devel, wireshark-devel BuildRequires: python-mako %if ! %{with binary_firmware} BuildRequires: sdcc sed %endif Requires(pre): shadow-utils Requires: tkinter Group: Applications/Engineering Summary: Universal Hardware Driver for Ettus Research products Source0: http://github.com/EttusResearch/uhd/archive/release_%{ver_}.tar.gz#/uhd-release_%{ver_}.tar.gz Source1: %{name}-limits.conf Source2: http://files.ettus.com/binaries/images/uhd-images_%{ver}-release.tar.xz # Fix firmware build with sdcc-3 Patch0: uhd-3.4.2-sdcc-3-fix.patch # Workaround for building with gcc-8 (rhbz#1542187) Patch1: uhd-3.1.3.0-boost-gcc8-compile-fix.patch %description The UHD is the universal hardware driver for Ettus Research products. The goal of the UHD is to provide a host driver and API for current and future Ettus Research products. It can be used standalone without GNU Radio. %package firmware Summary: Firmware files for UHD Requires: %{name} = %{version}-%{release} BuildArch: noarch %description firmware Firmware files for the Universal Hardware driver (UHD). %package devel Summary: Development files for UHD Requires: %{name} = %{version}-%{release} %description devel Development files for the Universal Hardware Driver (UHD). %package doc Summary: Documentation files for UHD BuildArch: noarch %description doc Documentation for the Universal Hardware Driver (UHD). %package tools Summary: Tools for working with / debugging USRP device Requires: %{name} = %{version}-%{release} #Requires: wireshark = %{wireshark_ver} %description tools Tools that are useful for working with and/or debugging USRP device. %prep %setup -q -n uhd-release_%{ver_} %patch0 -p1 -b .sdcc-3-fix %patch1 -p1 -b .boost-gcc8-compile-fix # firmware %if %{with binary_firmware} # extract binary firmware mkdir -p images/images tar -xJf %{SOURCE2} -C images/images --strip-components=4 rm -f images/images/{LICENSE.txt,*.tag} %endif %build # firmware %if ! %{with binary_firmware} # rebuilt from sources export PATH=$PATH:%{_libexecdir}/sdcc pushd images sed -i '/-name "\*\.twr" | xargs grep constraint | grep met/ s/^/#/' Makefile make %{?_smp_mflags} images popd %endif mkdir -p host/build pushd host/build %cmake %{?have_neon} ../ make %{?_smp_mflags} popd # tools pushd tools/uhd_dump make %{?_smp_mflags} CFLAGS="%{optflags}" LDFLAGS="%{?__global_ldflags}" popd # tools wireshark plugin # currenty disabled due to rhbz#1129419 #pushd tools/chdr-dissector #mkdir build #cd build #%%cmake ../ #make %{?_smp_mflags} #popd %check cd host/build make test %install pushd host/build make install DESTDIR=%{buildroot} # Fix udev rules and use dynamic ACL management for device sed -i 's/BUS==/SUBSYSTEM==/;s/SYSFS{/ATTRS{/;s/MODE:="0666"/MODE:="0660", ENV{ID_SOFTWARE_RADIO}="1"/' %{buildroot}%{_libdir}/uhd/utils/uhd-usrp.rules mkdir -p %{buildroot}%{_prefix}/lib/udev/rules.d mv %{buildroot}%{_libdir}/uhd/utils/uhd-usrp.rules %{buildroot}%{_prefix}/lib/udev/rules.d/10-usrp-uhd.rules # Remove tests, examples binaries rm -rf %{buildroot}%{_libdir}/uhd/{tests,examples} # Move the utils stuff to libexec dir mkdir -p %{buildroot}%{_libexecdir}/uhd mv %{buildroot}%{_libdir}/uhd/utils/* %{buildroot}%{_libexecdir}/uhd popd # Package base docs to base package mkdir _tmpdoc mv %{buildroot}%{_docdir}/%{name}/{LICENSE,README.md} _tmpdoc install -m 644 -D %{SOURCE1} %{buildroot}%{_sysconfdir}/security/limits.d/99-usrp.conf # firmware mkdir -p %{buildroot}%{_datadir}/uhd/images cp -r images/images/* %{buildroot}%{_datadir}/uhd/images # remove win stuff rm -rf %{buildroot}%{_datadir}/uhd/images/winusb_driver # convert hardlinks to symlinks (to not package the file twice) pushd %{buildroot}%{_bindir} for f in usrp_n2xx_simple_net_burner usrp_x3xx_fpga_burner; do unlink $f ln -s ../..%{_libexecdir}/uhd/$f done popd # tools install -Dpm 0755 tools/usrp_x3xx_fpga_jtag_programmer.sh %{buildroot}%{_bindir}/usrp_x3xx_fpga_jtag_programmer.sh install -Dpm 0755 tools/uhd_dump/chdr_log %{buildroot}%{_bindir}/chdr_log %post -p /sbin/ldconfig %postun -p /sbin/ldconfig %files %exclude %{_docdir}/%{name}/doxygen %exclude %{_datadir}/uhd/images %doc _tmpdoc/* %{_bindir}/uhd_* %{_bindir}/usrp2* %{_bindir}/usrp_n2xx_simple_net_burner %{_bindir}/usrp_x3xx_fpga_burner %{_bindir}/octoclock_firmware_burner %{_prefix}/lib/udev/rules.d/10-usrp-uhd.rules %config(noreplace) %{_sysconfdir}/security/limits.d/*.conf %{_libdir}/lib*.so.* %{_libexecdir}/uhd %{_mandir}/man1/*.1* %{_datadir}/uhd %files firmware %dir %{_datadir}/uhd/images %{_datadir}/uhd/images/* %files devel %{_includedir}/* %{_libdir}/lib*.so %{_libdir}/cmake/uhd/*.cmake %{_libdir}/pkgconfig/*.pc %files doc %doc %{_docdir}/%{name}/doxygen %files tools %doc tools/README.md %{_bindir}/usrp_x3xx_fpga_jtag_programmer.sh %{_bindir}/chdr_log %changelog * Fri Feb 09 2018 Igor Gnatenko - 3.10.3.0-2 - Escape macros in %%changelog * Fri Feb 2 2018 Jaroslav Škarvada - 3.10.3.0-1 - New version * Fri Feb 2 2018 Jaroslav Škarvada - 3.10.1.0-10 - Rebuilt for new boost * Tue Jan 23 2018 Jonathan Wakely - 3.10.1.0-9 - Rebuilt for Boost 1.66 * Thu Aug 03 2017 Fedora Release Engineering - 3.10.1.0-8 - Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild * Thu Jul 27 2017 Fedora Release Engineering - 3.10.1.0-7 - Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild * Wed Jul 19 2017 Jonathan Wakely - 3.10.1.0-6 - Rebuilt for s390x binutils bug * Tue Jul 04 2017 Jonathan Wakely - 3.10.1.0-5 - Rebuilt for Boost 1.64 * Mon May 15 2017 Fedora Release Engineering - 3.10.1.0-4 - Rebuilt for https://fedoraproject.org/wiki/Fedora_26_27_Mass_Rebuild * Sat Feb 11 2017 Fedora Release Engineering - 3.10.1.0-3 - Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild * Mon Jan 30 2017 Jonathan Wakely - 3.10.1.0-2 - Rebuilt for Boost 1.63 * Tue Nov 22 2016 Jaroslav Škarvada - 3.10.1.0-1 - New version - Dropped base64-decode-fix-off-by-one patch (upstreamed) - Switched to new version numbering - Switched image archive to xz * Wed May 25 2016 Jaroslav Škarvada - 3.9.4-2 - Fixed off by one in base64_decode by base64-decode-fix-off-by-one patch Related: rhbz#1308204 * Tue May 10 2016 Jaroslav Škarvada - 3.9.4-1 - New version - Dropped 0001-fix-build patch (upstreamed) * Mon May 9 2016 Jaroslav Škarvada - 3.8.2-12 - Rebuilt to fix Boost ABI problem * Fri Feb 05 2016 Fedora Release Engineering - 3.8.2-11 - Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild * Sat Jan 16 2016 Jonathan Wakely - 3.8.2-10 - Rebuilt for Boost 1.60 * Thu Aug 27 2015 Jonathan Wakely - 3.8.2-9 - Rebuilt for Boost 1.59 * Thu Aug 06 2015 Jonathan Wakely 3.8.2-8 - Bump %%release to match f23 branch * Wed Jul 29 2015 Fedora Release Engineering - 3.8.2-7 - Rebuilt for https://fedoraproject.org/wiki/Changes/F23Boost159 * Wed Jul 22 2015 David Tardon - 3.8.2-6 - rebuild for Boost 1.58 * Fri Jun 19 2015 Fedora Release Engineering - 3.8.2-5 - Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild * Sat May 02 2015 Kalev Lember - 3.8.2-4 - Rebuilt for GCC 5 C++11 ABI change * Thu Mar 12 2015 Jaroslav Škarvada - 3.8.2-3 - Enabled build on ppc64 on RHEL * Wed Mar 11 2015 Jaroslav Škarvada - 3.8.2-2 - Fixed building without NEON, especially on aarch64 Resolves: rhbz#1200836 * Fri Mar 6 2015 Jaroslav Škarvada - 3.8.2-1 - New version - Dropped uhd-dump-libs and wireshark-1.12-fix patches (both upstreamed) * Tue Jan 27 2015 Petr Machata - 3.7.2-2 - Rebuild for boost 1.57.0 * Mon Sep 1 2014 Jaroslav Škarvada - 3.7.2-1 - New version - Added tools subpackage (wireshark plugin disabled due to rhbz#1129419) - Minor packaging fixes * Fri Aug 29 2014 Jaroslav Škarvada - 3.6.2-6 - Migrated udev rule to dynamic ACL management - Fixed udev rule location - Group usrp is no more used / created * Mon Aug 18 2014 Fedora Release Engineering - 3.6.2-5 - Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild * Fri Aug 8 2014 Jaroslav Škarvada - 3.6.2-4 - Added workaround for build failure on RHEL-7 * Sun Jun 08 2014 Fedora Release Engineering - 3.6.2-3 - Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild * Thu May 22 2014 Petr Machata - 3.6.2-2 - Rebuild for boost 1.55.0 * Tue Feb 11 2014 Jaroslav Škarvada - 3.6.2-1 - New version Resolves: rhbz#1063587 * Sun Aug 04 2013 Fedora Release Engineering - 3.5.3-3 - Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild * Sat Jul 27 2013 pmachata@redhat.com - 3.5.3-2 - Rebuild for boost 1.54.0 * Wed Jun 05 2013 Jaroslav Škarvada - 3.5.3-1 - New version - Defuzzified no-neon patch * Sun Feb 10 2013 Denis Arnaud - 3.4.3-3 - Rebuild for Boost-1.53.0 * Sat Feb 09 2013 Denis Arnaud - 3.4.3-2 - Rebuild for Boost-1.53.0 * Wed Aug 22 2012 Jaroslav Škarvada - 3.4.3-1 - New version * Fri Aug 10 2012 Jaroslav Škarvada - 3.4.2-4 - Rebuilt for new boost * Sun Jul 22 2012 Fedora Release Engineering - 3.4.2-3 - Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild * Wed Jun 6 2012 Jaroslav Škarvada - 3.4.2-2 - Added firmware subpackage Resolves: rhbz#769684 * Wed May 23 2012 Jaroslav Škarvada - 3.4.2-1 - New version - Removed usrp1-r45-dbsrx-i2c-fix patch (upstreamed) - Fixed convert_test failure on ARM by no-neon patch Resolves: rhbz#813393 * Tue Mar 27 2012 Jaroslav Škarvada - 3.4.0-1 - New version - Fixed lockup on USRP1 r4.5 + DBSRX + another i2c board combo (usrp1-r45-dbsrx-i2c-fix patch) Resolves: rhbz#804440 * Mon Mar 19 2012 Jaroslav Škarvada - 3.3.2-1 - New version * Tue Feb 28 2012 Fedora Release Engineering - 3.3.1-4 - Rebuilt for c++ ABI breakage * Fri Feb 10 2012 Jaroslav Škarvada - 3.3.1-3 - Allowed UHD to boost the thread's scheduling priority Resolves: rhbz#781540 * Wed Jan 11 2012 Jaroslav Škarvada - 3.3.1-2 - Minor tweaks to %%pre scriptlet - Fixed udev rules - Added tkinter requires Resolves: rhbz#769678 * Fri Dec 2 2011 Jaroslav Škarvada - 3.3.1-1 - New version * Thu Dec 1 2011 Jaroslav Škarvada - 3.3.0-3 - Updated summary to be more descriptive * Wed Nov 30 2011 Jaroslav Škarvada - 3.3.0-2 - Fixed according to reviewer comments * Tue Nov 01 2011 Jaroslav Škarvada - 3.3.0-1 - Initial version