sharkcz / rpms / gnuradio

Forked from rpms/gnuradio 3 years ago
Clone
Blob Blame History Raw
%{!?python_sitearch: %global python_sitearch %(%{__python} -c "from distutils.sysconfig import get_python_lib; print(get_python_lib(1))")}

Name:		gnuradio
Version:	3.2.2
Release:	5%{?dist}
Summary:	Software defined radio framework

Group:		Applications/Engineering
License:	GPLv3
URL:		http://www.gnuradio.org
Source0:	ftp://ftp.gnu.org/gnu/gnuradio/gnuradio-%{version}.tar.gz
BuildRoot:	%{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
Source1:	10-usrp.rules
Patch0:		gnuradio-3.2-libtool.patch
Patch1:		gnuradio-3.2-configure.patch

Requires(pre):	shadow-utils
BuildRequires:	sdcc
BuildRequires:	fftw-devel
BuildRequires:	cppunit-devel
BuildRequires:	wxPython-devel
BuildRequires:	xmlto
BuildRequires:	graphviz
BuildRequires:	boost-devel
BuildRequires:	python-devel
BuildRequires:	swig
BuildRequires:	doxygen
BuildRequires:	libusb-devel
BuildRequires:	alsa-lib-devel
BuildRequires:	SDL-devel
BuildRequires:	guile-devel
BuildRequires:	portaudio-devel
BuildRequires:	libtool
# Gnuradio deprecated gr-comedi
# http://gnuradio.org/redmine/issues/show/395
# BuildRequires: comedilib-devel
BuildRequires:	gsl-devel
BuildRequires:	tex(latex)
BuildRequires:	numpy
BuildRequires:	PyQt4-devel
BuildRequires:	PyQwt-devel
BuildRequires:	qwtplot3d-qt4-devel
Requires:	numpy
Requires:	wxPython
Requires:	scipy
Requires:	portaudio


%description
GNU Radio is a collection of software that when combined with minimal 
hardware, allows the construction of radios where the actual waveforms 
transmitted and received are defined by software. What this means is 
that it turns the digital modulation schemes used in today's high 
performance wireless devices into software problems.

%package devel
Summary:	GNU Radio
Group:		Applications/Engineering
Requires:	%{name} = %{version}-%{release}

%description devel
GNU Radio Headers

%package doc
Summary:	GNU Radio
Group:		Applications/Engineering
Requires:	%{name} = %{version}-%{release}

%description doc
GNU Radio Documentation

%package examples
Summary:	GNU Radio
Group:		Applications/Engineering
Requires:	%{name} = %{version}-%{release}

%description examples
GNU Radio examples

%package -n usrp
Summary:	Universal Software Radio Peripheral
Group:		Applications/Engineering
Requires:	%{name} = %{version}-%{release}

%description -n usrp
Gnu Radio Universal Software Radio Peripheral software

%package -n usrp-devel
Summary:	Universal Software Radio Peripheral
Group:		Applications/Engineering
Requires:	usrp = %{version}-%{release}

%description -n usrp-devel
GNU Radio USRP headers

%prep
%setup -q
%patch0 -p1 -b .libtool
%patch1 -p1 -b .configure
#force regeneration of cached moc output files
find . -name "*_moc.cc" -exec rm {} \;

%build
export PATH=%{_libexecdir}/sdcc:$PATH
autoreconf -i
%configure --enable-doxygen --enable-latex-doc --disable-gr-audio-oss --enable-usrp --enable-gnuradio-core --enable-gnuradio-examples
sed -i 's|^hardcode_libdir_flag_spec=.*|hardcode_libdir_flag_spec=""|g' libtool
sed -i 's|^runpath_var=LD_RUN_PATH|runpath_var=DIE_RPATH_DIE|g' libtool
mkdir -p gnuradio-core/src/lib/swig/.deps usrp/host/swig/.deps \
         gr-usrp/src/.deps gr-usrp2/src/.deps gr-audio-alsa/src/.deps \
         gr-audio-jack/src/.deps gr-audio-portaudio/src/.deps \
         gr-cvsd-vocoder/src/lib/.deps gr-gsm-fr-vocoder/src/lib/.deps \
         gr-pager/src/.deps gr-radio-astronomy/src/lib/.deps gr-trellis/src/lib/.deps \
         gr-video-sdl/src/.deps gr-qtgui/src/lib/.deps
touch gnuradio-core/src/lib/swig/.deps/gnuradio_swig_py_runtime.d \
      gnuradio-core/src/lib/swig/.deps/gnuradio_swig_py_general.d \
      gnuradio-core/src/lib/swig/.deps/gnuradio_swig_py_gengen.d \
      gnuradio-core/src/lib/swig/.deps/gnuradio_swig_py_filter.d \
      gnuradio-core/src/lib/swig/.deps/gnuradio_swig_py_io.d \
      gnuradio-core/src/lib/swig/.deps/gnuradio_swig_py_hier.d \
      usrp/host/swig/.deps/usrp_prims.d \
      gr-usrp/src/.deps/usrp_swig.d \
      gr-usrp2/src/.deps/usrp2.d \
      gr-audio-alsa/src/.deps/audio_alsa.d \
      gr-audio-jack/src/.deps/audio_jack.d \
      gr-audio-portaudio/src/.deps/audio_portaudio.d \
      gr-cvsd-vocoder/src/lib/.deps/cvsd_vocoder.d \
      gr-gsm-fr-vocoder/src/lib/.deps/gsm_full_rate.d \
      gr-pager/src/.deps/pager_swig.d \
      gr-radio-astronomy/src/lib/.deps/ra.d \
      gr-trellis/src/lib/.deps/trellis.d \
      gr-video-sdl/src/.deps/video_sdl.d \
      gr-qtgui/src/lib/.deps/qtgui.d
make %{?_smp_mflags}

%install
rm -rf $RPM_BUILD_ROOT
export PATH=%{_libexecdir}/sdcc:$PATH
make install DESTDIR=$RPM_BUILD_ROOT
install -D -m0644 %{SOURCE1} $RPM_BUILD_ROOT%{_sysconfdir}/udev/rules.d/10-usrp.rules

%clean
rm -rf $RPM_BUILD_ROOT

%post -n gnuradio -p /sbin/ldconfig
%postun -n gnuradio -p /sbin/ldconfig

%post -n gnuradio-devel -p /sbin/ldconfig
%postun -n gnuradio-devel -p /sbin/ldconfig

%post -n usrp -p /sbin/ldconfig
%postun -n usrp -p /sbin/ldconfig
%pre -n usrp
getent group usrp >/dev/null || groupadd -r usrp

%files
%defattr(-,root,root,-)
%{python_sitearch}/gnuradio
%exclude %{python_sitearch}/gnuradio/_usrp2.so
%exclude %{python_sitearch}/gnuradio/usrp*  
%{_sysconfdir}/gnuradio
%{_bindir}/gr_*
%{_bindir}/find_usrps
%{_bindir}/lsusrp
%{_libdir}/lib*.so.*
%config(noreplace)%{_sysconfdir}/gnuradio/conf.d/*.conf
%exclude %{python_sitearch}/gnuradio/*.la

%files devel
%defattr(-,root,root,-)
%{_includedir}/*
%{_libdir}/lib*.so
%{_libdir}/pkgconfig/*.pc
%exclude %{_libdir}/*.la

%files doc
%defattr(-,root,root,-)
%doc ChangeLog README README.hacking NEWS INSTALL COPYING AUTHORS
%{_docdir}/usrp*
%{_docdir}/gnuradio*

%files examples
%defattr(-,root,root,-)
%{_datadir}/%{name}

%files -n usrp
%defattr(-,root,root,-)
%{_bindir}/usrp*
%{_bindir}/gpio*
%{_datadir}/usrp
%{_libdir}/libusrp.so.*
%{python_sitearch}/usrpm
%{python_sitearch}/gnuradio/_usrp2.so
%{python_sitearch}/gnuradio/usrp*
%config(noreplace) %{_sysconfdir}/udev/rules.d/10-usrp.rules
%exclude %{_libdir}/*.la
%exclude %{python_sitearch}/usrpm/*.la

%files -n usrp-devel
%defattr(-,root,root,-)
%{_libdir}/libusrp.so
%{_includedir}/usrp_*

%changelog
* Fri May 21 2010 Tom "spot" Callaway <tcallawa@redhat.com> - 3.2.2-5
- re-export PATH for %%install

* Fri May 21 2010 Tom "spot" Callaway <tcallawa@redhat.com> - 3.2.2-4
- don't BuildRequires: comedilib-devel, code doesn't use it

* Tue Feb 09 2010 Caolán McNamara <caolanm@redhat.com> - 3.2.2-3
- Resolves: rhbz#539069 FTBFS

* Fri Jan 22 2010 Rahul Sundaram <sundaram@fedoraproject.org> - 3.2.2-2
- Rebuild for Boost soname bump

* Wed Jul 29 2009 Marek Mahut <mmahut@fedoraproject.org> - 3.2.2-1
- Upstream release 3.2.2
- Dropped patch gnuradio-3.2-gcc44.patch

* Sat Jul 25 2009 Marek Mahut <mmahut@fedoraproject.org> - 3.2-1
- Upstream release 3.2

* Thu Mar  4 2009 Lubomir Rintel <lkundrak@v3.sk> - 3.1.3-5
- Fix build with GCC 4.4

* Tue Feb 24 2009 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 3.1.3-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_11_Mass_Rebuild

* Wed Dec 31 2008 Marek Mahut <mmahut@fedoraproject.org> - 3.1.3-3
- Adding udev rule for USRP device
- Adding usrp system group

* Fri Dec 19 2008 Marek Mahut <mmahut@fedoraproject.org> - 3.1.3-2
- Upstream release 3.1.3
- Comedi support
- RHBZ#473928 Unowned directories  

* Sat Nov 29 2008 Ignacio Vazquez-Abrams <ivazqueznet+rpm@gmail.com> - 3.1.2-3
- Rebuild for Python 2.6

* Tue Jun 10 2008 Marek Mahut <mmahut@fedoraproject.org> - 3.1.2-2
- Moving usrp header files to usrp-devel (reported by Philip Balister)

* Fri Apr  4 2008 Marek Mahut <mmahut@fedoraproject.org> - 3.1.2-1
- Upstream release
- Modification of gnuradio-3.1.2-gcc34.patch to the new release

* Thu Mar 27 2008 Marek Mahut <mmahut@fedoraproject.org> - 3.1.1-4
- Moving libusrp to gnuradio package

* Wed Feb 20 2008 Marek Mahut <mmahut@fedoraproject.org> - 3.1.1-2
- Upstream release
- Spec file rewrite

* Mon Mar 12 2007 Trond Danielsen <trond.danielsen@gmail.com> - 3.0.3-1
- Initial version.