SHA256
1
0
forked from pool/gnuradio
gnuradio/gnuradio.spec
Martin Pluskal 4c8009cec1 Accepting request 1077397 from home:wkazubski:test:science
- Update to version 3.10.6.0
  * Runtime
    + Add Python loggers to top_block and hier_block2
    + Change the default log level (in the config file) to INFO
      instead of DEBUG
    + Logging improvements in the scheduler
    + Correctly determine native page size for Windows
  * GRC
    + Fixed: opening the source of a hierachical block using the
      toolbar button produced an error
    + Use the logger, instead of print statements, in generated
      top blocks
    + Remove libX11 load from generated Python code - this was
      unncessary and produced warnings
    + Choose Editor dialog stays above parent
  * gr-analog
    + Signal Source: option to hide the message port
  * gr-blocks
    + Throttle: supports max time or number of samples per work
      iteration, useful for reducing latency at low sample rates
    + Delay block: option to hide the message port
    + File Meta Sink: fix missing Python import in template code
  * gr-channels
    + Default taps should be 1.0, not 1.0 + j1.0
  * gr-digital
    + Async Decoder: several changes to improve performance
      robustness (see the commit log for more details)
  * gr-fec
    + Tagged Decoder: correctly calculate the frame size for
      terminated CC decoder
  * gr-filter
    + Fixed reverse parameters in fir_filter_with_buffer and
      pfb_arb_resampler, which could cause crashes
    + Fixed PFB Arbitrary Resampler was ignoring attenuation
      parameter
  * gr-iio
    + Set gain mode as specified (was always manual)
    + Use the specified gain parameter for second channel (was
      same as first channel)
  * gr-qtgui
    + Histogram Sink: calculate range of bins correctly to
      avoid strange distributions
    + Save (to image) dialogs add file extensions and have a Save
      button (i.e., they work now)
  * gr-soapy
    + Sources: add tags when the frequency changes
  * gr-uhd
    + Support for more RFNoC blocks
      - Fosphor, which produces data to drive an on-screen OpenGL-
        based renderer which is expected to be in the next release
      - Moving Average
      - Switchboard
      - Split Stream
    + FFT: add properties for direction, magnitude and scaling
    + RX Stream: flush after timeout
    + Fully support multi-channel TX/RX (params were available
      for one one channel)
  * gr-vocoder
    + Add a number of new codec modes for Codec2 and FreeDV
  * gr-zmq
    + Selectable bind/connect to support more flexible ZMQ patterns
      and NAT'd networks
    + Stream sources produce when available, instead of waiting for
      a buffer to fill, helping with latency
  * Modtool
    + Use interp and decim keywords correctly when generating blocks
- Added a patch gnuradio-not-install-freedesktop-files.patch to
  revert commit 7c87800f1d7e85589678f01281b45451085c7482

OBS-URL: https://build.opensuse.org/request/show/1077397
OBS-URL: https://build.opensuse.org/package/show/hardware:sdr/gnuradio?expand=0&rev=128
2023-04-05 07:03:58 +00:00

277 lines
8.8 KiB
RPMSpec

#
# spec file for package gnuradio
#
# Copyright (c) 2022 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_6
%ifarch %{arm}
# boo#1182440
%define _lto_cflags %{nil}
%endif
%bcond_without docs
Name: gnuradio
Version: 3.10.6.0
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: 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: libmpir-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: uhd-devel
BuildRequires: update-desktop-files
BuildRequires: volk-devel >= 2.4.1
BuildRequires: typelib(Gtk) = 3.0
BuildRequires: typelib(PangoCairo) = 1.0
BuildRequires: typelib(cairo) = 1.0
# gnuradio-companion dependencies
Requires: python3-cairo
Requires: python3-gobject-Gdk
Requires: python3-jsonschema
Requires: typelib(Gtk) = 3.0
# gr_modtool dependencies
Requires: python3-click
Requires: python3-click-plugins
Requires: python3-mako >= 1.1.0
Requires: python3-numpy >= 1.17.4
Requires: python3-pyaml >= 3.11
Requires: python3-qt5
# gr_filter dependencies
Requires: python3-scipy
Requires: python3-pyqtgraph
# gr_network dependencies
Requires: python3-pyzmq
# gr_soapy dependencies
Requires: python3-SoapySDR
%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}/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