SHA256
1
0
forked from pool/gnuradio

- Update to version 3.10.11.0

- Changed
  * Project
    + Const (keyword) cleanup in a large number of files. QtGUI
      code uses const in many more places.
  * Runtime
    + Add persistent() function to gr paths module. This function
      returns either the value of the XDG_CACHE_HOME environment
      variable, or appdata()/.local/state.
  * GRC
    + Work continues on the Qt version of GRC (gnuradio-companion --qt).
      While the Gtk version is still the default, we're getting
      close to the point where the Qt version can be the default.
    + Generated Python code now includes a startup event
      (flowgraph_started) to the top level class. This was added
      specifically to avoid a race in the Variable Function Probe
      block, and may be useful elsewhere.
    + Struct variables have not been usable since around v3.8. Fixed!
    + Paths are now based on gr paths, where they were previous
      hardcoded to the user's home directory.
    + C++ hier block code paths fixed (so hier blocks work again).
    + Block connection line shape and width are now preferences.
  * gr-blocks
    + New Burst To Stream block transforms a bursty tagged stream
      into a continuous stream by inserting zeros in the output
      between input packets whenever no packets are available at
      the input.
  * gr-digital
    + FLL Band Edge power calculations fixed, along with thread
      safety issues.
  * gr-fec
    + Unused RS code removed - unlikely anyone will notice.
  * gr-filter
    + Numpy float_ changed to float64 for Numpy 2.0 compatibility.
  * gr-fft
    + Vector version of FFT fft_v library function (calls fftw)
      thread safety improved.
  * gr-uhd
    + Do not require PyQt5 for non-graphical configurations.
  * modtool
    + Many bug fixes and cleanups, resulting in more reliable
      operation. That sounds really good, right?
    + Remove dependency on the "click plugins" package.
    + Appending new blocks to CMake files respects closing parens.
  * Build system and packaging
    + CMake minimum versions were out of sync in different places,
      fixed.
    + Incorrect Qwt maximum version removed.
- Last two patches gnuradio-fix-error-message-for-Qwt-version.patch
  and gnuradio-remove-maximum-version-for-Qwt.patch removed as
  appliedn upstream.
- Containd fix for latest spdlog (Tumbleweed).

OBS-URL: https://build.opensuse.org/package/show/hardware:sdr/gnuradio?expand=0&rev=151
This commit is contained in:
Martin Pluskal 2024-07-29 07:54:36 +00:00 committed by Git OBS Bridge
commit 8bbcd9c234
13 changed files with 2772 additions and 0 deletions

23
.gitattributes vendored Normal file
View File

@ -0,0 +1,23 @@
## Default LFS
*.7z filter=lfs diff=lfs merge=lfs -text
*.bsp filter=lfs diff=lfs merge=lfs -text
*.bz2 filter=lfs diff=lfs merge=lfs -text
*.gem filter=lfs diff=lfs merge=lfs -text
*.gz filter=lfs diff=lfs merge=lfs -text
*.jar filter=lfs diff=lfs merge=lfs -text
*.lz filter=lfs diff=lfs merge=lfs -text
*.lzma filter=lfs diff=lfs merge=lfs -text
*.obscpio filter=lfs diff=lfs merge=lfs -text
*.oxt filter=lfs diff=lfs merge=lfs -text
*.pdf filter=lfs diff=lfs merge=lfs -text
*.png filter=lfs diff=lfs merge=lfs -text
*.rpm filter=lfs diff=lfs merge=lfs -text
*.tbz filter=lfs diff=lfs merge=lfs -text
*.tbz2 filter=lfs diff=lfs merge=lfs -text
*.tgz filter=lfs diff=lfs merge=lfs -text
*.ttf filter=lfs diff=lfs merge=lfs -text
*.txz filter=lfs diff=lfs merge=lfs -text
*.whl filter=lfs diff=lfs merge=lfs -text
*.xz filter=lfs diff=lfs merge=lfs -text
*.zip filter=lfs diff=lfs merge=lfs -text
*.zst filter=lfs diff=lfs merge=lfs -text

1
.gitignore vendored Normal file
View File

@ -0,0 +1 @@
.osc

14
_constraints Normal file
View File

@ -0,0 +1,14 @@
<?xml version="1.0" encoding="UTF-8"?>
<constraints>
<hardware>
<disk>
<size unit="G">14</size>
</disk>
<memoryperjob>
<size unit="M">1000</size>
</memoryperjob>
<memory>
<size unit="G">4</size>
</memory>
</hardware>
</constraints>

View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:4202a486bee49ae97672acae559c133b1337e0e89f2d192332e4381d7c6682da
size 4648970

View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:9ca658e6c4af9cfe144770757b34ab0edd23f6dcfaa6c5c46a7546233e5ecd29
size 4659646

View File

@ -0,0 +1,23 @@
From 9d6c8f166a4834bab33ea8619c71895e66fc757d Mon Sep 17 00:00:00 2001
From: Jeff Long <willcode4@gmail.com>
Date: Fri, 10 May 2024 17:21:24 -0400
Subject: [PATCH] cmake: fix error message for Qwt version
Signed-off-by: Jeff Long <willcode4@gmail.com>
---
cmake/Modules/FindQwt.cmake | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/cmake/Modules/FindQwt.cmake b/cmake/Modules/FindQwt.cmake
index e87c6a20a9..241b255e58 100644
--- a/cmake/Modules/FindQwt.cmake
+++ b/cmake/Modules/FindQwt.cmake
@@ -37,7 +37,7 @@ if(QWT_INCLUDE_DIRS)
if(NOT QWT_WRONG_VERSION)
set(QWT_FOUND TRUE)
else(NOT QWT_WRONG_VERSION)
- message(STATUS "QWT Version must be >= 6.1 and < 6.3, Found ${QWT_VERSION}")
+ message(STATUS "QWT Version must be >= 6.1, Found ${QWT_VERSION}")
endif(NOT QWT_WRONG_VERSION)
endif(QWT_INCLUDE_DIRS)

View File

@ -0,0 +1,136 @@
From 7c87800f1d7e85589678f01281b45451085c7482 Mon Sep 17 00:00:00 2001
From: Volker Schroer <3470424+dl1ksv@users.noreply.github.com>
Date: Thu, 9 Mar 2023 12:37:46 +0100
Subject: [PATCH] The uninstall script did not remove the previously installed
freedesktop icons and desktop files. Now grc_setup_freedesktop uninstall is
called in cmake_uninstall.cmake
As far as I can see the icon and menu files are only needed in the freedesktop environment.
It's not necessary to put them into gnuradio install path.
So I removed these copies and installed these files directly from the source directory
using xdg-icon-resource and other xdg-utils.
Giving grc_setup_freedesktop execute permissions in the build directory avoids copying it
to the libexec directory. So even if ENABLE_POSTINSTALL=ON no libexec directory will be created.
Signed-off-by: Volker Schroer <3470424+dl1ksv@users.noreply.github.com>
---
cmake/cmake_uninstall.cmake.in | 8 ++++
grc/scripts/freedesktop/CMakeLists.txt | 41 +------------------
.../freedesktop/grc_setup_freedesktop.in | 8 ++--
3 files changed, 15 insertions(+), 42 deletions(-)
diff --git a/cmake/cmake_uninstall.cmake.in b/cmake/cmake_uninstall.cmake.in
index 410b4a8b9d0..186c5c18448 100644
--- a/cmake/cmake_uninstall.cmake.in
+++ b/cmake/cmake_uninstall.cmake.in
@@ -7,6 +7,14 @@ if(NOT EXISTS "@CMAKE_CURRENT_BINARY_DIR@/install_manifest.txt")
)
endif(NOT EXISTS "@CMAKE_CURRENT_BINARY_DIR@/install_manifest.txt")
+if(NOT EXISTS "@CMAKE_CURRENT_BINARY_DIR@/grc/scripts/freedesktop/grc_setup_freedesktop")
+ message(STATUS "Cannot find freedesktop install script")
+else("@CMAKE_CURRENT_BINARY_DIR@/grc/scripts/freedesktop/grc_setup_freedesktop")
+ exec_program(
+ "@CMAKE_CURRENT_BINARY_DIR@/grc/scripts/freedesktop/grc_setup_freedesktop"
+ ARGS "uninstall"
+ )
+endif("@CMAKE_CURRENT_BINARY_DIR@/grc/scripts/freedesktop/grc_setup_freedesktop")
file(READ "@CMAKE_CURRENT_BINARY_DIR@/install_manifest.txt" files)
string(REGEX REPLACE "\n" ";" files "${files}")
foreach(file ${files})
diff --git a/grc/scripts/freedesktop/CMakeLists.txt b/grc/scripts/freedesktop/CMakeLists.txt
index ef42c3e410b..356f07a182f 100644
--- a/grc/scripts/freedesktop/CMakeLists.txt
+++ b/grc/scripts/freedesktop/CMakeLists.txt
@@ -6,54 +6,17 @@
#
########################################################################
-set(grc_freedesktop_path ${GR_PKG_DATA_DIR}/grc/freedesktop)
-
-install(FILES
- grc-icon-256.png
- grc-icon-128.png
- grc-icon-64.png
- grc-icon-48.png
- grc-icon-32.png
- grc-icon-24.png
- grc-icon-16.png
- gnuradio-grc.xml
- gnuradio-grc.desktop
- DESTINATION ${grc_freedesktop_path}
-)
-
-# Install desktop
-install(FILES gnuradio-grc.desktop DESTINATION share/applications)
-
-# Install mime
-install(FILES gnuradio-grc.xml DESTINATION share/mime/packages)
-
-# Install appstream / metainfo file
-install(FILES org.gnuradio.grc.metainfo.xml DESTINATION share/metainfo)
-
-# Install icons
-install(FILES grc-icon-256.png DESTINATION share/icons/hicolor/256x256/apps RENAME gnuradio-grc.png)
-install(FILES grc-icon-128.png DESTINATION share/icons/hicolor/128x128/apps RENAME gnuradio-grc.png)
-install(FILES grc-icon-64.png DESTINATION share/icons/hicolor/64x64/apps RENAME gnuradio-grc.png)
-install(FILES grc-icon-48.png DESTINATION share/icons/hicolor/48x48/apps RENAME gnuradio-grc.png)
-install(FILES grc-icon-32.png DESTINATION share/icons/hicolor/32x32/apps RENAME gnuradio-grc.png)
-install(FILES grc-icon-24.png DESTINATION share/icons/hicolor/24x24/apps RENAME gnuradio-grc.png)
-install(FILES grc-icon-16.png DESTINATION share/icons/hicolor/16x16/apps RENAME gnuradio-grc.png)
find_program(HAVE_XDG_UTILS xdg-desktop-menu)
if(UNIX AND HAVE_XDG_UTILS AND ENABLE_POSTINSTALL)
- set(SRCDIR ${CMAKE_INSTALL_PREFIX}/${grc_freedesktop_path})
configure_file(
${CMAKE_CURRENT_SOURCE_DIR}/grc_setup_freedesktop.in
${CMAKE_CURRENT_BINARY_DIR}/grc_setup_freedesktop
+ FILE_PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE
@ONLY)
- install(
- PROGRAMS ${CMAKE_CURRENT_BINARY_DIR}/grc_setup_freedesktop
- DESTINATION ${GR_PKG_LIBEXEC_DIR}
- PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE
- )
install (
- CODE "execute_process(COMMAND ${CMAKE_INSTALL_PREFIX}/${GR_PKG_LIBEXEC_DIR}/grc_setup_freedesktop install)"
+ CODE "execute_process(COMMAND ${CMAKE_CURRENT_BINARY_DIR}/grc_setup_freedesktop install)"
)
endif(UNIX AND HAVE_XDG_UTILS AND ENABLE_POSTINSTALL)
diff --git a/grc/scripts/freedesktop/grc_setup_freedesktop.in b/grc/scripts/freedesktop/grc_setup_freedesktop.in
index 50e02ee16ac..5aacf5e7c54 100644
--- a/grc/scripts/freedesktop/grc_setup_freedesktop.in
+++ b/grc/scripts/freedesktop/grc_setup_freedesktop.in
@@ -19,7 +19,7 @@ ICON_SIZES="16 24 32 48 64 128 256"
if [ -n "$2" ]; then
SRCDIR="$2"
else
- SRCDIR="@SRCDIR@"
+ SRCDIR="@CMAKE_CURRENT_SOURCE_DIR@"
fi
case "$1" in
@@ -32,7 +32,8 @@ case "$1" in
xdg-icon-resource install --noupdate --context apps --theme gnome --size ${size} ${SRCDIR}/grc-icon-${size}.png gnuradio-grc; \
xdg-icon-resource install --noupdate --context apps --size ${size} ${SRCDIR}/grc-icon-${size}.png gnuradio-grc; \
done
- xdg-icon-resource forceupdate
+ xdg-icon-resource forceupdate #update for system (hicolor) theme
+ xdg-icon-resource forceupdate --theme gnome #update for gnome theme
echo "Install mime type"
xdg-mime install ${SRCDIR}/gnuradio-grc.xml
echo "Install menu items"
@@ -49,7 +50,8 @@ case "$1" in
xdg-icon-resource uninstall --noupdate --context apps --theme gnome --size ${size} gnuradio-grc; \
xdg-icon-resource uninstall --noupdate --context apps --size ${size} gnuradio-grc; \
done
- xdg-icon-resource forceupdate
+ xdg-icon-resource forceupdate #update for system (hicolor) theme
+ xdg-icon-resource forceupdate --theme gnome #update for gnome theme
echo "Uninstall mime type"
xdg-mime uninstall ${SRCDIR}/gnuradio-grc.xml
echo "Uninstall menu items"

View File

@ -0,0 +1,24 @@
From ca344658756dab10a762571c51acf92c00c066c1 Mon Sep 17 00:00:00 2001
From: Jeff Long <willcode4@gmail.com>
Date: Fri, 10 May 2024 06:21:08 -0400
Subject: [PATCH] cmake: remove maximum version for Qwt (was < 6.3)
Signed-off-by: Jeff Long <willcode4@gmail.com>
---
cmake/Modules/FindQwt.cmake | 3 ---
1 file changed, 3 deletions(-)
diff --git a/cmake/Modules/FindQwt.cmake b/cmake/Modules/FindQwt.cmake
index 8718a6f73cc..e87c6a20a91 100644
--- a/cmake/Modules/FindQwt.cmake
+++ b/cmake/Modules/FindQwt.cmake
@@ -32,9 +32,6 @@ if(QWT_INCLUDE_DIRS)
if(QWT_VERSION VERSION_LESS "6.1")
set(QWT_WRONG_VERSION True)
endif()
- if(NOT QWT_VERSION VERSION_LESS "6.3")
- set(QWT_WRONG_VERSION True)
- endif()
message(STATUS "QWT Version: ${QWT_VERSION}")
if(NOT QWT_WRONG_VERSION)

2
gnuradio-rpmlintrc Normal file
View File

@ -0,0 +1,2 @@
# Template file for gr_newmod
addFilter("devel-file-in-non-devel-package.*/usr/share/gnuradio/modtool/templates/gr-newmod/include/howto/api.h")

2097
gnuradio.changes Normal file

File diff suppressed because it is too large Load Diff

276
gnuradio.spec Normal file
View File

@ -0,0 +1,276 @@
#
# spec file for package gnuradio
#
# Copyright (c) 2024 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_11
%bcond_without docs
Name: gnuradio
Version: 3.10.11.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: gobject-introspection
BuildRequires: gsl-devel
BuildRequires: libSDL-devel
BuildRequires: libad9361-iio-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: 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
# gr_soapy dependencies
Requires: python3-SoapySDR
# gnuradio-companion dependencies
Requires: python3-cairo
Requires: python3-QDarkStyle
Requires: python3-QtPy
# 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
%patch -P 0 -p1
%patch -P 1 -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

156
grc_to_37.sh Normal file
View File

@ -0,0 +1,156 @@
#!/bin/bash
# Version 0.2
# run ./grc_to_37 <appname>.grc
# this will create a backup copy and attempt to convert the api calls to 3.7
GRCFILE=$1
cp $GRCFILE $GRCFILE.pre3.7upgrade_backup # I refuse to take responsibility for breaking your flowgraphs
# set up a list of partial regexps to change modules
list_of_block_changes=(
"gr_peak_detector2_fb/blocks_peak_detector2_fb"
"gr_short_to_float/blocks_short_to_float"
"gr_diff_phasor_cc/digital_diff_phasor_cc"
"blks2_logpwrfft_x/logpwrfft_x"
"gr_rms_xx/blocks_rms_xx"
"gr_probe_density_b/digital_probe_density_b"
"gr_mute_xx/blocks_mute_xx"
"gr_agc_xx/analog_agc_xx"
"gr_ctcss_squelch_ff/analog_ctcss_squelch_ff"
"gr_diff_encoder_bb/digital_diff_encoder_bb"
"gr_pll_refout_cc/analog_pll_refout_cc"
"gr_uchar_to_float/blocks_uchar_to_float"
"gr_interp_fir_filter_xxx/interp_fir_filter_xxx"
"gr_udp_sink/blocks_udp_sink"
"gr_and_xx/blocks_and_xx"
"gr_keep_one_in_n/blocks_keep_one_in_n"
"gr_vector_sink_x/blocks_vector_sink_x"
"gr_freq_xlating_fir_filter_xxx/freq_xlating_fir_filter_xxx"
"gr_float_to_int/blocks_float_to_int"
"gr_file_source/blocks_file_source"
"gr_float_to_short/blocks_float_to_short"
"gr_fft_vxx/fft_vxx"
"gr_quadrature_demod_cf/analog_quadrature_demod_cf"
"gr_file_sink/blocks_file_sink"
"gr_pfb_clock_sync_xxx/digital_pfb_clock_sync_xxx"
"gr_multiply_const_vxx/blocks_multiply_const_vxx"
"gr_peak_detector_xb/blocks_peak_detector_xb"
"gr_noise_source_x/analog_noise_source_x"
"gr_simple_framer/digital_simple_framer"
"gr_delay/blocks_delay"
"gr_pfb_synthesizer_ccf/pfb_synthesizer_ccf"
"gr_short_to_char/blocks_short_to_char"
"gr_chunks_to_symbols_xx/digital_chunks_to_symbols_xx"
"gr_interleaved_short_to_complex/blocks_interleaved_short_to_complex"
"gr_frequency_modulator_fc/analog_frequency_modulator_fc"
"gr_xor_xx/blocks_xor_xx"
"gr_dpll_bb/analog_dpll_bb"
"gr_threshold_ff/blocks_threshold_ff"
"gr_nop/blocks_nop"
"gr_unpack_k_bits_bb/blocks_unpack_k_bits_bb"
"gr_max_xx/blocks_max_xx"
"gr_int_to_float/blocks_int_to_float"
"gr_stream_to_streams/blocks_stream_to_streams"
"blks2_wfm_rcv/analog_wfm_rcv"
"gr_fractional_interpolator_xx/fractional_interpolator_xx"
"gr_conjugate_cc/blocks_conjugate_cc"
"blks2_fm_demod_cf/analog_fm_demod_cf"
"gr_fir_filter_xxx/fir_filter_xxx"
"gr_null_source/blocks_null_source"
"gr_complex_to_arg/blocks_complex_to_arg"
"gr_pwr_squelch_xx/analog_pwr_squelch_xx"
"gr_descrambler_bb/digital_descrambler_bb"
"gr_copy/blocks_copy"
"gr_complex_to_mag/blocks_complex_to_mag"
"gr_throttle/blocks_throttle"
"gr_additive_scrambler_bb/digital_additive_scrambler_bb"
"gr_wavfile_sink/blocks_wavfile_sink"
"gr_vector_source_x/blocks_vector_source_x"
"gr_moving_average_xx/blocks_moving_average_xx"
"gr_char_to_short/blocks_char_to_short"
"blks2_fm_deemph/analog_fm_deemph"
"gr_pll_freqdet_cf/analog_pll_freqdet_cf"
"gr_or_xx/blocks_or_xx"
"blks2_fm_preemph/analog_fm_preemph"
"blks2_wfm_tx/analog_wfm_tx"
"gr_stream_to_vector/blocks_stream_to_vector"
"gr_glfsr_source_x/digital_glfsr_source_x"
"gr_map_bb/digital_map_bb"
"gr_sig_source_x/analog_sig_source_x"
"gr_transcendental/blocks_transcendental"
"gr_skiphead/blocks_skiphead"
"gr_hilbert_fc/hilbert_fc"
"blks2_nbfm_rx/analog_nbfm_rx"
"random_source_x/analog_random_source_x"
"gr_complex_to_real/blocks_complex_to_real"
"gr_null_sink/blocks_null_sink"
"gr_float_to_complex/blocks_float_to_complex"
"gr_multiply_xx/blocks_multiply_xx"
"gr_simple_correlator/digital_simple_correlator"
"gr_sample_and_hold_xx/blocks_sample_and_hold_xx"
"blks2_pfb_channelizer_ccf/pfb_channelizer_ccf"
"gr_goertzel_fc/goertzel_fc"
"gr_complex_to_mag_squared/blocks_complex_to_mag_squared"
"gr_packed_to_unpacked_xx/blocks_packed_to_unpacked_xx"
"blks2_standard_squelch/analog_standard_squelch"
"blks2_am_demod_cf/analog_am_demod_cf"
"gr_and_const_xx/blocks_and_const_xx"
"gr_unpacked_to_packed_xx/blocks_unpacked_to_packed_xx"
"gr_probe_avg_mag_sqrd_x/analog_probe_avg_mag_sqrd_x"
"gr_channel_model/channels_channel_model"
"gr_divide_xx/blocks_divide_xx"
"gr_simple_squelch_cc/analog_simple_squelch_cc"
"gr_message_source/blocks_message_source"
"gr_sub_xx/blocks_sub_xx"
"gr_stream_mux/blocks_stream_mux"
"gr_burst_tagger/blocks_burst_tagger"
"gr_float_to_uchar/blocks_float_to_uchar"
"gr_scrambler_bb/digital_scrambler_bb"
"gr_streams_to_vector/blocks_streams_to_vector"
"gr_add_xx/blocks_add_xx"
"gr_feedforward_agc_cc/analog_feedforward_agc_cc"
"gr_iir_filter_ffd/iir_filter_ffd"
"blks2_stream_to_vector_decimator/blocks_stream_to_vector_decimator"
"gr_pn_correlator_cc/digital_pn_correlator_cc"
"gr_streams_to_stream/blocks_streams_to_stream"
"gr_rational_resampler_base_xxx/rational_resampler_base_xxx"
"gr_vector_to_streams/blocks_vector_to_streams"
"gr_interleave/blocks_interleave"
"gr_add_const_vxx/blocks_add_const_vxx"
"gr_message_sink/blocks_message_sink"
"gr_complex_to_imag/blocks_complex_to_imag"
"gr_vco_f/blocks_vco_f"
"gr_deinterleave/blocks_deinterleave"
"gr_argmax_xx/blocks_argmax_xx"
"gr_not_xx/blocks_not_xx"
"gr_udp_source/blocks_udp_source"
"gr_nlog10_ff/blocks_nlog10_ff"
"gr_diff_decoder_bb/digital_diff_decoder_bb"
"gr_phase_modulator_fc/analog_phase_modulator_fc"
"gr_complex_to_interleaved_short/blocks_complex_to_interleaved_short"
"gr_float_to_char/blocks_float_to_char"
"gr_head/blocks_head"
"gr_fft_filter_xxx/fft_filter_xxx"
"gr_cpfsk_bc/analog_cpfsk_bc"
"gr_vector_to_stream/blocks_vector_to_stream"
"gr_agc2_xx/analog_agc2_xx"
"gr_pll_carriertracking_cc/analog_pll_carriertracking_cc"
"gr_repeat/blocks_repeat"
"gr_filter_delay_fc/filter_delay_fc"
"blks2_rational_resampler_xxx/rational_resampler_xxx"
"gr_char_to_float/blocks_char_to_float"
"gr_integrate_xx/blocks_integrate_xx"
"gr_wavfile_source/blocks_wavfile_source"
"gr_complex_to_float/blocks_complex_to_float"
"gr_single_pole_iir_filter_xx/single_pole_iir_filter_xx"
"blks2_nbfm_tx/analog_nbfm_tx"
"blks2_wfm_rcv_pll/analog_wfm_rcv_pll"
"const_source_x/analog_const_source_x"
"blks2_pfb_arb_resampler_ccf/pfb_arb_resampler_xxx"
)
for block in "${list_of_block_changes[@]}"
do
sed --in-place "/<key/s/$block/g" $GRCFILE
# only replace the keys lines because otherwise
# block ids can get clobbered if there are 2 of the same block
# one old, and one new that both use grc generated ids
done

14
missing_library.patch Normal file
View File

@ -0,0 +1,14 @@
Index: gnuradio-3.7.12.0/gr-uhd/gnuradio-uhd.pc.in
===================================================================
--- gnuradio-3.7.12.0.orig/gr-uhd/gnuradio-uhd.pc.in
+++ gnuradio-3.7.12.0/gr-uhd/gnuradio-uhd.pc.in
@@ -7,5 +7,5 @@ Name: gnuradio-uhd
Description: GNU Radio blocks for UHD
Requires: gnuradio-runtime
Version: @LIBVER@
-Libs: -L${libdir} -lgnuradio-uhd
+Libs: -L${libdir} -lgnuradio-uhd -lpthread
Cflags: -I${includedir}
########################################################################
# Build executable
########################################################################