%global git_commit ac96d055091c29e2c6b08762b3b3d9da8db5b855 %global git_date 20190401 %global git_short_commit %(echo %{git_commit} | cut -c -8) %global git_suffix %{git_date}git%{git_short_commit} # 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 # By default do not build with wireshark support, it's currently # broken (upstream ticket #268) %bcond_with wireshark # NEON support is by default disabled on ARMs # building with --with=neon will enable auto detection %bcond_with neon %global wireshark_dissectors chdr zpu octoclock %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://github.com/EttusResearch/uhd Version: 3.14.0.0 Release: 1.%{git_suffix}%{?dist} License: GPLv3+ BuildRequires: gcc-c++ BuildRequires: cmake BuildRequires: boost-devel, libusb1-devel, python2-cheetah, ncurses-devel BuildRequires: python2-docutils, doxygen, pkgconfig, libpcap-devel %if %{with wireshark} BuildRequires: wireshark-devel %endif BuildRequires: python2-mako, python2-requests, python2-devel, tar %if ! %{with binary_firmware} BuildRequires: sdcc sed %endif Requires(pre): shadow-utils, glibc-common Requires: python2-tkinter Summary: Universal Hardware Driver for Ettus Research products #Source0: %%{url}/archive/v%%{version}/uhd-%%{version}.tar.gz Source0: %{url}/archive/%{git_commit}/uhd-%{version}-%{git_short_commit}.tar.gz Source1: %{name}-limits.conf Source2: %{url}/releases/download/v%{version}/uhd-images_%{version}.tar.xz %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} %description tools Tools that are useful for working with and/or debugging USRP device. %if %{with wireshark} %package wireshark Summary: Wireshark dissector plugins Requires: %{name} = %{version}-%{release} Requires: wireshark = %{wireshark_ver} %description wireshark Wireshark dissector plugins. %endif %prep %setup -q -n %{name}-%{git_commit} # firmware %if %{with binary_firmware} # extract binary firmware mkdir -p images/images tar -xJf %{SOURCE2} -C images/images --strip-components=1 rm -f images/images/{LICENSE.txt,*.tag} # remove Windows drivers rm -rf images/winusb_driver %endif # fix python shebangs find . -type f -name "*.py" -exec sed -i '/^#!/ s|.*|#!%{__python2}|' {} \; %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} -DPYTHON_EXECUTABLE="%{__python2}" \ -DUHD_VERSION="%{version}" -DENABLE_TESTS=off ../ make %{?_smp_mflags} popd # tools pushd tools/uhd_dump make %{?_smp_mflags} CFLAGS="%{optflags}" LDFLAGS="%{?__global_ldflags}" popd %if %{with wireshark} # wireshark dissectors pushd tools/dissectors for d in %{wireshark_dissectors} do mkdir "build_$d" pushd "build_$d" %cmake -DETTUS_DISSECTOR_NAME="$d" ../ make %{?_smp_mflags} popd done popd %endif #%%check #cd host/build #make test %install # fix python shebangs (run again for generated scripts) find . -type f -name "*.py" -exec sed -i '/^#!/ s|.*|#!%{__python2}|' {} \; 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"/GROUP:="usrp" 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 uhd_images_downloader usrp2_card_burner do unlink $f ln -s ../..%{_libexecdir}/uhd/${f}.py $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 %if %{with wireshark} # wireshark dissectors pushd tools/dissectors for d in %{wireshark_dissectors} do pushd "build_$d" %make_install popd done popd mv %{buildroot}${HOME}/.wireshark %{buildroot}%{_libdir}/wireshark %endif %ldconfig_scriptlets %pre getent group usrp >/dev/null || \ %{_sbindir}/groupadd -r usrp >/dev/null 2>&1 exit 0 %files %exclude %{_docdir}/%{name}/doxygen %exclude %{_datadir}/uhd/images %doc _tmpdoc/* %{_bindir}/uhd_* %{_bindir}/usrp2_* %{_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 %if %{with wireshark} %files wireshark %{_libdir}/wireshark/plugins/* %endif %changelog * Mon Apr 15 2019 Jaroslav Škarvada - 3.14.0.0-1.20190401gitac96d055 - New version, switched to git snapshot - Conditionalized wireshark support - Disabled wireshark support, it's currently broken (upstream ticket #268) - Disabled tests, it's currently broken (upstream ticket #267) - Dropped boost169 patch (not needed) * Mon Apr 1 2019 Jaroslav Škarvada - 3.12.0.0-5 - Re-introduced usrp group Resolves: rhbz#1694665 * Sun Feb 03 2019 Fedora Release Engineering - 3.12.0.0-4 - Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild * Tue Jan 29 2019 Jonathan Wakely - 3.12.0.0-3 - Add upstream patches for Boost 1.69.0 header changes * Fri Jan 25 2019 Jonathan Wakely - 3.12.0.0-3 - Rebuilt for Boost 1.69 * Mon Dec 10 2018 Jaroslav Škarvada - 3.12.0.0-2 - Rebuilt for new gnuradio Resolves: rhbz#1625012 - Fixed python shebangs * Fri Jul 20 2018 Jaroslav Škarvada - 3.12.0.0-1 - New version Resolves: rhbz#1606606 - Dropped sdcc-3-fix patch (upstreamed) - Dropped boost-gcc8-compile-fix patch (not needed) - Packaged wireshark dissectors * Sat Jul 14 2018 Fedora Release Engineering - 3.10.3.0-4 - Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild * Wed Feb 28 2018 Iryna Shcherbina - 3.10.3.0-3 - Update Python 2 dependency declarations to new packaging standards (See https://fedoraproject.org/wiki/FinalizingFedoraSwitchtoPython3) * 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