uhd/uhd.spec

212 lines
6.1 KiB
RPMSpec

# 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
%global ver_major 3
%global ver_minor 4
%global ver_patch 2
%global ver %(printf "%03d.%03d.%03d" %{ver_major} %{ver_minor} %{ver_patch})
%global ver_ %(printf "%03d_%03d_%03d" %{ver_major} %{ver_minor} %{ver_patch})
# Pull from git
%global git_tag release_%{ver_}
# git clone git://code.ettus.com/ettus/uhd.git
# cd uhd
# git archive --format=tar --prefix=%%{name}-%%{version}/ %%{git_tag} | \
# gzip > ../%%{name}-%%{version}.tar.gz
Name: uhd
URL: http://code.ettus.com/redmine/ettus/projects/uhd/wiki
Version: %{ver_major}.%{ver_minor}.%{ver_patch}
Release: 4%{?dist}
License: GPLv3+
BuildRequires: cmake
BuildRequires: boost-devel libusb1-devel python-cheetah
BuildRequires: docutils doxygen pkgconfig
%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: %{name}-%{version}.tar.gz
Source1: %{name}-limits.conf
Source2: http://files.ettus.com/binaries/uhd_stable/latest_release/uhd-images_%{ver}-release.tar.gz
# ARM convert_test fix (rhbz#813393)
Patch0: uhd-3.4.2-no-neon.patch
# Fix firmware build with sdcc-3
Patch1: uhd-3.4.2-sdcc-3-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.
%prep
%setup -q
%patch0 -p1 -b .no-neon
%patch1 -p1 -b .sdcc-3-fix
# firmware
%if %{with binary_firmware}
# extract binary firmware
mkdir -p images/images
tar -xzf %{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 ../
make %{?_smp_mflags}
popd
%check
cd host/build
make test
%install
pushd host/build
make install DESTDIR=%{buildroot}
# Fix udev rules and allow access only to users in usrp group
sed -i 's/BUS==/SUBSYSTEM==/;s/SYSFS{/ATTRS{/;s/MODE:="0666"/GROUP:="usrp", MODE:="0660"/' %{buildroot}%{_datadir}/uhd/utils/uhd-usrp.rules
mkdir -p %{buildroot}%{_sysconfdir}/udev/rules.d
mv %{buildroot}%{_datadir}/uhd/utils/uhd-usrp.rules %{buildroot}%{_sysconfdir}/udev/rules.d/10-usrp-uhd.rules
# Remove binaries for tests, examples
rm -rf %{buildroot}%{_datadir}/uhd/{tests,examples}
# Move the utils stuff to libexec dir
mkdir -p %{buildroot}%{_libexecdir}/uhd
mv %{buildroot}%{_datadir}/uhd/utils/* %{buildroot}%{_libexecdir}/uhd
popd
# Package base docs to base package
mkdir _tmpdoc
mv %{buildroot}%{_docdir}/%{name}/{AUTHORS.txt,LICENSE.txt,README.txt} _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
%post -p /sbin/ldconfig
%postun -p /sbin/ldconfig
%package firmware
Summary: Firmware files for UHD
Group: Applications/Engineering
Requires: %{name} = %{version}-%{release}
BuildArch: noarch
%description firmware
Firmware files for the Universal Hardware driver (UHD).
%package devel
Summary: Development files for UHD
Group: Applications/Engineering
Requires: %{name} = %{version}-%{release}
%description devel
Development files for the Universal Hardware Driver (UHD).
%package doc
Summary: Documentation files for UHD
Group: Applications/Engineering
BuildArch: noarch
%description doc
Documentation for the Universal Hardware Driver (UHD).
%pre
getent group usrp >/dev/null || groupadd -r usrp >/dev/null
%files
%doc _tmpdoc/*
%{_bindir}/*
%config(noreplace) %{_sysconfdir}/udev/rules.d/10-usrp-uhd.rules
%config(noreplace) %{_sysconfdir}/security/limits.d/*.conf
%{_libdir}/lib*.so.*
%{_libexecdir}/uhd
%files firmware
%dir %{_datadir}/uhd/images
%{_datadir}/uhd/images/*
%files devel
%{_includedir}/*
%{_libdir}/lib*.so
%{_libdir}/pkgconfig/*.pc
%files doc
%doc %{_docdir}/%{name}/*
%changelog
* Fri Aug 10 2012 Jaroslav Škarvada <jskarvad@redhat.com> - 3.4.2-4
- Rebuilt for new boost
* Sun Jul 22 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 3.4.2-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild
* Wed Jun 6 2012 Jaroslav Škarvada <jskarvad@redhat.com> - 3.4.2-2
- Added firmware subpackage
Resolves: rhbz#769684
* Wed May 23 2012 Jaroslav Škarvada <jskarvad@redhat.com> - 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 <jskarvad@redhat.com> - 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 <jskarvad@redhat.com> - 3.3.2-1
- New version
* Tue Feb 28 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 3.3.1-4
- Rebuilt for c++ ABI breakage
* Fri Feb 10 2012 Jaroslav Škarvada <jskarvad@redhat.com> - 3.3.1-3
- Allowed UHD to boost the thread's scheduling priority
Resolves: rhbz#781540
* Wed Jan 11 2012 Jaroslav Škarvada <jskarvad@redhat.com> - 3.3.1-2
- Minor tweaks to %%pre scriptlet
- Fixed udev rules
- Added tkinter requires
Resolves: rhbz#769678
* Fri Dec 2 2011 Jaroslav Škarvada <jskarvad@redhat.com> - 3.3.1-1
- New version
* Thu Dec 1 2011 Jaroslav Škarvada <jskarvad@redhat.com> - 3.3.0-3
- Updated summary to be more descriptive
* Wed Nov 30 2011 Jaroslav Škarvada <jskarvad@redhat.com> - 3.3.0-2
- Fixed according to reviewer comments
* Tue Nov 01 2011 Jaroslav Škarvada <jskarvad@redhat.com> - 3.3.0-1
- Initial version