File ghpsdr3-alex.spec of Package ghpsdr3-alex
#
# spec file for package ghpsdr3-alex
#
# Copyright (c) 2017 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
# Please submit bugfixes or comments via http://bugs.opensuse.org/
#
%define build_with_uhd 1
%if 0%{?suse_version} > 1320
%define build_with_uhd 0
%endif
Name: ghpsdr3-alex
Version: 0.0.0+git.20170125
Release: 0
Summary: Software Defined Radio (SDR)
License: GPL-3.0+
Group: Productivity/Hamradio/Other
Url: http://napan.ca/ghpsdr3/index.php/Main_Page
#Git-Clone: https://github.com/alexlee188/ghpsdr3-alex
Source0: %{name}-%{version}.tar.xz
# The configure script cannot find qmake-qt5
Patch0: ghpsdr3-alex-qmake-qt5.diff
# The desktop files contain invalid entries
Patch1: ghpsdr3-alex-fix-desktop-files.diff
Patch2: ghpsdr3-alex-ortp-hack.diff
# sdr1000 server does not compile for aarch64 due to missing sys/io.h
# in the glibc-devel package
Patch3: ghpsdr3-alex-disable-sdr1000.diff
BuildRequires: autoconf
BuildRequires: automake
BuildRequires: gcc-c++
BuildRequires: libtool
BuildRequires: pkgconfig
BuildRequires: xdg-utils
BuildRequires: pkgconfig(Qt5Multimedia)
BuildRequires: pkgconfig(Qt5OpenGL)
BuildRequires: pkgconfig(codec2)
BuildRequires: pkgconfig(fftw3)
BuildRequires: pkgconfig(jack)
BuildRequires: pkgconfig(libconfig)
BuildRequires: pkgconfig(libcrypto)
BuildRequires: pkgconfig(libevent)
BuildRequires: pkgconfig(libpulse)
BuildRequires: pkgconfig(librtlsdr)
BuildRequires: pkgconfig(libusb)
%if 0%{?suse_version} > 1325
BuildRequires: libopenssl-1_0_0-devel
%else
BuildRequires: pkgconfig(openssl)
%endif
BuildRequires: pkgconfig(ortp)
BuildRequires: pkgconfig(portaudio-2.0)
BuildRequires: pkgconfig(samplerate)
Requires: python-qt4
%if 0%{?suse_version} <= 1320
BuildRequires: pkgconfig(uhd)
%endif
%description
The software comprises 3 different components:
A) the servers - there is a CLI based server for each type of hardware.
For example, hpsdr-server, usrp-server, softrock (server), sdriq-server, HiQSDR
B) the dspserver - this is the software in the middle that processes the IQ data
from the server (connected over LAN via UDP) using DttSP. The same dspserver
can connect to any of the servers in A.
C) the client - QtRadio
%package -n QtRadio
Summary: Qt client for ghpsdr3 servers
Group: Productivity/Hamradio/Other
%description -n QtRadio
The client / user interface. The client connects to a dspserver via LAN or Internet.
%prep
%setup -q
%patch0 -p1
%patch1 -p1
### FIXME: quick hack to support recent libortp versions - should be properly fixed upstream!
%if 0%{?suse_version} > 1320 || 0%{?sle_version} >= 120300
%patch2 -p1
%endif
%ifarch aarch64
%patch3 -p1
%endif
%build
autoreconf -i
%configure
make %{?_smp_mflags}
%install
%make_install
mv %{buildroot}%{_datadir}/icons/ %{buildroot}%{_datadir}/pixmaps/
mv %{buildroot}/%{_bindir}/*.png %{buildroot}%{_datadir}/pixmaps/
mkdir -p %{buildroot}%{_udevrulesdir}/
mv %{buildroot}/%{_bindir}/*.rules %{buildroot}%{_udevrulesdir}/
%post
%udev_rules_update
%postun
%udev_rules_update
%files
%defattr(-, root, root)
%doc AUTHORS COPYING ChangeLog README
%{_bindir}/dspserver
%{_bindir}/widget-server
%{_bindir}/sdriq-server
%{_bindir}/sdriq-test
%{_bindir}/rtlsdr-server
%{_bindir}/hpsdr-server
%{_bindir}/hiqsdr-server
%{_bindir}/hiqsdr-test
%if 0%{?build_with_uhd}
%{_bindir}/usrp_server
%endif
%ifnarch aarch64
%{_bindir}/sdr1000
%endif
%{_bindir}/softrock
%{_udevrulesdir}/90-ozy.rules
# these files should not be included in the package
%exclude %{_bindir}/Ozy_Janus.rbf
%exclude %{_bindir}/ozyfw-sdr1k.hex
%ifnarch aarch64
%exclude %{_datadir}/ghpsdr3/firmware.cpp
%endif
# ghpsdr3-mgr is outdated, servers can be started by cli
%exclude %{_bindir}/ghpsdr3-mgr.py
%exclude %{_datadir}/pixmaps/*.png
%exclude %{_datadir}/applications/ghpsdr3launcher.desktop
%exclude %{_datadir}/pixmaps/QtRadio.png
%files -n QtRadio
%defattr(-, root, root)
%doc AUTHORS COPYING ChangeLog README
%{_bindir}/QtRadio
%{_datadir}/applications/QtRadio.desktop
%{_datadir}/pixmaps/QtRadio.png
%changelog