forked from pool/gnuradio
- Update to version 3.10.9.1 - Changed * Project + Python minimum version is now 3.7.2, vs 3.6.5, to support type hints. + Add tox.ini, so that editors use the same formatting as github CI. + Use pointers to pass s32fc arguments to VOLK in gr-blocks, gr-digital, and gr-dtv to avoid undefined behavior. The fix is conditional on VOLK 3.1.0, which add a new supporting function. * Runtime + Disallow None for pmt_t arguments in Python. + Support spdlog installations with internal or external libfmt. * GRC + Use text labels to specify types for block parameters, instead of background colors which were difficult to read/remember. + Enable setting of documentation URLs, relative or absolute in yaml. This allows OOTs to use the documentation link in the block parameter dialog. + Disallow use of block ids that are Python keywords and "gnuradio". + Add type annotations in some places (required bump to Python 3.7.2). + Use C version of YAML loader (yaml.CSafeLoader) for better performance. + Connections may have properties for supported connection domains. This feature was added for RFNoC connections. Standard stream and message connections do not support this feature, but they may in future versions. + Check grc file version. The above feature required a version bump to "2". Where no connection properties are used, version "1" is still emitted. Note that previous versions of GRC do not check for file version. RFNoC flowgraphs with connection properties will fail to load in previous versions as a result. + Fix bug where an impressive number of backslashes were added to some filenames. * gr-dtv + Read expected data as little-endian * gr-fec + Add FEC_API to CCSDS Reed-Solomon functions so they can be used by OOTs. * gr-qtgui + QT GUI Msg Push Button: add a callback for Message Value to allow it to change at runtime. * gr-uhd + RFNoC Rx-Streamer: Add start stream options + Add back-edge property to RFNoC connections * Build system and packaging + Use utf-8 encoding when writing files in gr_python_install. OBS-URL: https://build.opensuse.org/request/show/1135984 OBS-URL: https://build.opensuse.org/package/show/hardware:sdr/gnuradio?expand=0&rev=140
274 lines
8.8 KiB
RPMSpec
274 lines
8.8 KiB
RPMSpec
#
|
|
# spec file for package gnuradio
|
|
#
|
|
# Copyright (c) 2023 SUSE LLC
|
|
#
|
|
# 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 https://bugs.opensuse.org/
|
|
#
|
|
|
|
|
|
%define sover 3_10_9
|
|
%bcond_without docs
|
|
Name: gnuradio
|
|
Version: 3.10.9.1
|
|
Release: 0
|
|
Summary: GNU software radio
|
|
License: GPL-3.0-or-later
|
|
Group: Productivity/Hamradio/Other
|
|
URL: https://gnuradio.org
|
|
Source0: https://github.com/gnuradio/gnuradio/archive/refs/tags/v%{version}.tar.gz#/%{name}-%{version}.tar.gz
|
|
# http://www.nathanwest.us/grc_to_37.sh
|
|
Source4: grc_to_37.sh
|
|
Source99: %{name}-rpmlintrc
|
|
Patch0: missing_library.patch
|
|
Patch1: gnuradio-not-install-freedesktop-files.patch
|
|
BuildRequires: alsa-devel
|
|
BuildRequires: cmake >= 3.16.3
|
|
BuildRequires: codec2-devel
|
|
BuildRequires: cppunit-devel
|
|
BuildRequires: cppzmq-devel
|
|
BuildRequires: fdupes
|
|
BuildRequires: fftw3-threads-devel
|
|
BuildRequires: gcc-c++ >= 9.3.0
|
|
BuildRequires: gmp-devel
|
|
BuildRequires: gobject-introspection
|
|
BuildRequires: gsl-devel
|
|
BuildRequires: libSDL-devel
|
|
BuildRequires: libboost_atomic-devel >= 1.69
|
|
BuildRequires: libboost_filesystem-devel >= 1.69
|
|
BuildRequires: libboost_system-devel >= 1.69
|
|
BuildRequires: libgsm-devel
|
|
BuildRequires: libiio-devel
|
|
BuildRequires: libjack-devel
|
|
BuildRequires: libsndfile-devel
|
|
BuildRequires: libthrift-devel
|
|
BuildRequires: libusb-1_0-devel
|
|
BuildRequires: libxml2-devel
|
|
BuildRequires: memory-constraints
|
|
BuildRequires: ninja
|
|
BuildRequires: orc
|
|
BuildRequires: pkgconfig
|
|
BuildRequires: portaudio-devel
|
|
BuildRequires: python-rpm-macros
|
|
BuildRequires: python3-Sphinx
|
|
BuildRequires: python3-click
|
|
BuildRequires: python3-click-plugins
|
|
BuildRequires: python3-devel >= 3.6.5
|
|
BuildRequires: python3-gobject
|
|
BuildRequires: python3-gobject-cairo
|
|
BuildRequires: python3-jsonschema
|
|
BuildRequires: python3-mako >= 1.0.7
|
|
BuildRequires: python3-numpy-devel >= 1.17.4
|
|
BuildRequires: python3-pyaml >= 3.11
|
|
BuildRequires: python3-pybind11-devel >= 2.4.3
|
|
BuildRequires: python3-pycairo
|
|
BuildRequires: python3-qt5-devel
|
|
BuildRequires: python3-thrift
|
|
BuildRequires: qwt6-qt5-devel
|
|
BuildRequires: soapy-sdr-devel
|
|
BuildRequires: spdlog-devel
|
|
BuildRequires: thrift
|
|
BuildRequires: typelib(Gtk) = 3.0
|
|
BuildRequires: typelib(PangoCairo) = 1.0
|
|
BuildRequires: typelib(cairo) = 1.0
|
|
BuildRequires: uhd-devel
|
|
BuildRequires: update-desktop-files
|
|
BuildRequires: volk-devel >= 2.4.1
|
|
# gr_soapy dependencies
|
|
Requires: python3-SoapySDR
|
|
# gnuradio-companion dependencies
|
|
Requires: python3-cairo
|
|
# gr_modtool dependencies
|
|
Requires: python3-click
|
|
Requires: python3-click-plugins
|
|
Requires: python3-gobject-Gdk
|
|
Requires: python3-jsonschema
|
|
Requires: python3-mako >= 1.1.0
|
|
Requires: python3-numpy >= 1.17.4
|
|
Requires: python3-pyaml >= 3.11
|
|
Requires: python3-pyqtgraph
|
|
# gr_network dependencies
|
|
Requires: python3-pyzmq
|
|
Requires: python3-qt5
|
|
# gr_filter dependencies
|
|
Requires: python3-scipy
|
|
Requires: typelib(Gtk) = 3.0
|
|
%if %{with docs}
|
|
BuildRequires: doxygen
|
|
BuildRequires: mathjax
|
|
%endif
|
|
|
|
%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 -n libgnuradio-%{sover}
|
|
Summary: Libraries for GNU Radio
|
|
Group: System/Libraries
|
|
|
|
%description -n libgnuradio-%{sover}
|
|
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.
|
|
|
|
This package contains the libraries for GNU Radio.
|
|
|
|
%package devel
|
|
Summary: Deveopment files for GNU Radio
|
|
Group: Development/Libraries/C and C++
|
|
Requires: %{name} = %{version}
|
|
Requires: gmp-devel
|
|
Requires: spdlog-devel
|
|
|
|
%description devel
|
|
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.
|
|
|
|
This package contains libraries and header files for developing
|
|
applications that use GNU Radio.
|
|
|
|
%package doc
|
|
Summary: GNU Radio documentation
|
|
Group: Documentation/HTML
|
|
Requires: %{name} = %{version}
|
|
BuildArch: noarch
|
|
|
|
%description doc
|
|
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.
|
|
|
|
This package contains documentation for GNU Radio.
|
|
|
|
%package examples
|
|
Summary: GNU Radio examples
|
|
Group: Productivity/Hamradio/Other
|
|
Requires: %{name} = %{version}
|
|
|
|
%description examples
|
|
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.
|
|
|
|
This package contains some examples of using GNU Radio.
|
|
|
|
%prep
|
|
%setup -q
|
|
%patch0 -p1
|
|
%patch1 -p1 -R
|
|
|
|
# protect the template files from %%cmake macro magic / mangling
|
|
find gr-utils/modtool/templates/gr-newmod -name CMakeLists.txt -ls -exec mv '{}' '{}.tmpl' \;
|
|
|
|
%build
|
|
%limit_build -m 1500
|
|
|
|
%define __builder ninja
|
|
%cmake \
|
|
-DENABLE_GRC=ON \
|
|
%ifarch armv6l armv6hl
|
|
-Dhave_mfpu_neon=0 \
|
|
%endif
|
|
-DGR_PYTHON_DIR=%{python3_sitearch} \
|
|
-DENABLE_INTERNAL_VOLK:BOOL=OFF
|
|
%cmake_build
|
|
|
|
%install
|
|
# move the template files back
|
|
find gr-utils/modtool/templates/gr-newmod -name CMakeLists.txt.tmpl -execdir mv '{}' 'CMakeLists.txt' \;
|
|
|
|
%cmake_install
|
|
|
|
install -d %{buildroot}%{_docdir}/%{name}
|
|
mv %{buildroot}/%{_datadir}/doc/%{name}-*/* %{buildroot}%{_docdir}/%{name}/
|
|
|
|
%suse_update_desktop_file -r %{buildroot}%{_datadir}/applications/gnuradio-grc.desktop Network HamRadio
|
|
|
|
install -Dpm 0755 %{SOURCE4} %{buildroot}/%{_bindir}
|
|
|
|
# Compiled examples are installed as "data", but are arch dependent
|
|
install -dm 0755 %{buildroot}%{_libdir}/gnuradio
|
|
mv %{buildroot}%{_datadir}/gnuradio/examples %{buildroot}%{_libdir}/gnuradio/
|
|
|
|
# remove duplicate icons (just keep hicolor)
|
|
rm -rf %{buildroot}%{_datadir}/%{name}/grc/freedesktop
|
|
rm -rf %{buildroot}%{_datadir}/icons/gnome
|
|
|
|
%fdupes %{buildroot}%{_docdir}
|
|
%fdupes %{buildroot}%{_includedir}
|
|
%fdupes %{buildroot}%{_libdir}
|
|
|
|
%post -n libgnuradio-%{sover} -p /sbin/ldconfig
|
|
%postun -n libgnuradio-%{sover} -p /sbin/ldconfig
|
|
|
|
%files
|
|
%license COPYING
|
|
%{_bindir}/*
|
|
%dir %{_datadir}/gnuradio
|
|
%{_datadir}/gnuradio/grc/
|
|
%{_datadir}/gnuradio/modtool/
|
|
%{_datadir}/gnuradio/themes/
|
|
%{_datadir}/gnuradio/fec/
|
|
%{_datadir}/gnuradio/clang-format.conf
|
|
%{_datadir}/gnuradio/.cmake-format.py
|
|
%{_datadir}/icons/hicolor/*/apps/gnuradio-grc.png
|
|
%{_datadir}/applications/gnuradio-grc.desktop
|
|
%{_datadir}/mime/packages/gnuradio-grc.xml
|
|
%{_datadir}/metainfo/org.gnuradio.grc.metainfo.xml
|
|
%{python3_sitearch}/*
|
|
%dir %{_sysconfdir}/gnuradio
|
|
%dir %{_sysconfdir}/gnuradio/conf.d
|
|
%config(noreplace) %{_sysconfdir}/gnuradio/conf.d/*.conf
|
|
%{_mandir}/man1/*.1%{?ext_man}
|
|
%dir %{_docdir}/%{name}/
|
|
%{_docdir}/%{name}/README*
|
|
%{_docdir}/%{name}/CHANGELOG*
|
|
%{_docdir}/%{name}/CONTRIBUTING.md
|
|
%dir %{_docdir}/%{name}/config/
|
|
%{_docdir}/%{name}/config/*
|
|
# doc package
|
|
%exclude %{_docdir}/%{name}/html/
|
|
%exclude %{_docdir}/%{name}/xml/
|
|
|
|
%files -n libgnuradio-%{sover}
|
|
%{_libdir}/libgnuradio*.so.*
|
|
|
|
%files devel
|
|
%{_includedir}/%{name}/
|
|
%{_includedir}/pmt/
|
|
%{_libdir}/lib*.so
|
|
%{_libdir}/pkgconfig/*.pc
|
|
%{_libdir}/cmake/gnuradio/
|
|
|
|
%files doc
|
|
%dir %{_docdir}/%{name}
|
|
%{_docdir}/%{name}/html/
|
|
%{_docdir}/%{name}/xml/
|
|
|
|
%files examples
|
|
%dir %{_libdir}/gnuradio
|
|
%{_libdir}/gnuradio/examples/
|
|
|
|
%changelog
|