Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package gnuradio for openSUSE:Factory 
checked in at 2026-08-20 16:14:47
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/gnuradio (Old)
 and      /work/SRC/openSUSE:Factory/.gnuradio.new.1258 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "gnuradio"

Thu Aug 20 16:14:47 2026 rev:76 rq:1372037 version:3.10.12.0

Changes:
--------
--- /work/SRC/openSUSE:Factory/gnuradio/gnuradio.changes        2025-10-06 
18:07:27.065569304 +0200
+++ /work/SRC/openSUSE:Factory/.gnuradio.new.1258/gnuradio.changes      
2026-08-20 16:15:08.848935226 +0200
@@ -1,0 +2,18 @@
+Tue Aug 18 13:52:38 UTC 2026 - Mikhail Paulyshka <[email protected]>
+
+- Enable all GNU Radio components explicitly at CMake configure time so 
missing dependencies cause the build to fail.
+- Enable the test suite and run it during %check.
+  * Skip three ZeroMQ message source tests that segfault during teardown on 
ppc64le
+- Add BuildRequires for libboost_regex-devel, libboost_test-devel, 
python3-pyzmq and xvfb-run.
+- Add upstream patches:
+  * gnuradio-fix-fastnoise-unit-test.patch (gh#gnuradio/gnuradio#8145)
+  * gnuradio-run-qtgui-tests-with-xvfb.patch (gh#gnuradio/gnuradio#8170)
+- Remove obsolete patches:
+  * missing_library.patch,
+  * gnuradio-not-install-freedesktop-files.patch 
+  * grc_to_37.sh
+- Install desktop integration files directly during %install.
+- Remove deprecated %suse_update_desktop_file usage
+- Clean up rpmlint findings
+
+-------------------------------------------------------------------

Old:
----
  gnuradio-not-install-freedesktop-files.patch
  grc_to_37.sh
  missing_library.patch

New:
----
  gnuradio-fix-fastnoise-unit-test.patch
  gnuradio-run-qtgui-tests-with-xvfb.patch

----------(Old B)----------
  Old:  * missing_library.patch,
  * gnuradio-not-install-freedesktop-files.patch 
  * grc_to_37.sh
  Old:- Remove obsolete patches:
  * missing_library.patch,
  * gnuradio-not-install-freedesktop-files.patch 
----------(Old E)----------

----------(New B)----------
  New:- Add upstream patches:
  * gnuradio-fix-fastnoise-unit-test.patch (gh#gnuradio/gnuradio#8145)
  * gnuradio-run-qtgui-tests-with-xvfb.patch (gh#gnuradio/gnuradio#8170)
  New:  * gnuradio-fix-fastnoise-unit-test.patch (gh#gnuradio/gnuradio#8145)
  * gnuradio-run-qtgui-tests-with-xvfb.patch (gh#gnuradio/gnuradio#8170)
- Remove obsolete patches:
----------(New E)----------

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ gnuradio.spec ++++++
--- /var/tmp/diff_new_pack.pI6JGo/_old  2026-08-20 16:15:10.183982458 +0200
+++ /var/tmp/diff_new_pack.pI6JGo/_new  2026-08-20 16:15:10.187982599 +0200
@@ -1,7 +1,7 @@
 #
 # spec file for package gnuradio
 #
-# Copyright (c) 2025 SUSE LLC and contributors
+# Copyright (c) 2026 SUSE LLC and contributors
 #
 # All modifications and additions to the file contributed by third parties
 # remain the property of their copyright owners, unless otherwise agreed
@@ -25,12 +25,12 @@
 License:        GPL-3.0-or-later
 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
-Patch2:         boost.patch
+Patch0:         boost.patch
+# PATCH-FIX-UPSTREAM gnuradio-fix-fastnoise-unit-test.patch 
gh#gnuradio/gnuradio#8145
+Patch1:         gnuradio-fix-fastnoise-unit-test.patch
+# PATCH-FIX-UPSTREAM gnuradio-run-qtgui-tests-with-xvfb.patch 
gh#gnuradio/gnuradio#8170
+Patch2:         gnuradio-run-qtgui-tests-with-xvfb.patch
 BuildRequires:  alsa-devel
 BuildRequires:  cmake >= 3.16.3
 BuildRequires:  codec2-devel
@@ -47,6 +47,8 @@
 BuildRequires:  libad9361-iio-devel
 BuildRequires:  libboost_atomic-devel >= 1.69
 BuildRequires:  libboost_filesystem-devel >= 1.69
+BuildRequires:  libboost_regex-devel >= 1.69
+BuildRequires:  libboost_test-devel >= 1.69
 %if 0%{?suse_version} <= 1600
 BuildRequires:  libboost_system-devel
 %endif
@@ -75,6 +77,7 @@
 BuildRequires:  python3-pyaml >= 3.11
 BuildRequires:  python3-pybind11-devel >= 2.4.3
 BuildRequires:  python3-pycairo
+BuildRequires:  python3-pyzmq
 BuildRequires:  python3-qt5-devel
 BuildRequires:  python3-thrift
 BuildRequires:  qwt6-qt5-devel
@@ -82,8 +85,8 @@
 BuildRequires:  spdlog-devel
 BuildRequires:  thrift
 BuildRequires:  uhd-devel
-BuildRequires:  update-desktop-files
 BuildRequires:  volk-devel >= 2.4.1
+BuildRequires:  xvfb-run
 BuildRequires:  typelib(Gtk) = 3.0
 BuildRequires:  typelib(PangoCairo) = 1.0
 BuildRequires:  typelib(cairo) = 1.0
@@ -205,11 +208,11 @@
 
 %prep
 %setup -q
-%patch -P 0 -p1
-%patch -P 1 -p1 -R
 %if 0%{?suse_version} > 1600
-%patch -P 2 -p1
+%patch -P 0 -p1
 %endif
+%patch -P 1 -p1
+%patch -P 2 -p1
 
 # protect the template files from %%cmake macro magic / mangling
 find  gr-utils/modtool/templates/gr-newmod -name CMakeLists.txt -ls -exec mv 
'{}' '{}.tmpl' \;
@@ -219,7 +222,51 @@
 
 %define __builder ninja
 %cmake \
-  -DENABLE_GRC=ON \
+  -DBUILD_SHARED_LIBS:BOOL=ON \
+  -DENABLE_DEFAULT:BOOL=OFF \
+  -DENABLE_TESTING:BOOL=ON \
+  -DENABLE_PYTHON:BOOL=ON \
+  -DENABLE_GRC:BOOL=ON \
+  -DENABLE_JSONYAML_BLOCKS:BOOL=ON \
+  -DENABLE_GNURADIO_RUNTIME:BOOL=ON \
+  -DENABLE_COMMON_PCH:BOOL=ON \
+  -DENABLE_GR_CTRLPORT:BOOL=ON \
+  -DENABLE_CTRLPORT_THRIFT:BOOL=ON \
+  -DENABLE_GR_BLOCKS:BOOL=ON \
+  -DENABLE_GR_FEC:BOOL=ON \
+  -DENABLE_GR_FFT:BOOL=ON \
+  -DENABLE_GR_FILTER:BOOL=ON \
+  -DENABLE_GR_ANALOG:BOOL=ON \
+  -DENABLE_GR_DIGITAL:BOOL=ON \
+  -DENABLE_GR_DTV:BOOL=ON \
+  -DENABLE_GR_AUDIO:BOOL=ON \
+  -DENABLE_GR_CHANNELS:BOOL=ON \
+  -DENABLE_GR_PDU:BOOL=ON \
+  -DENABLE_GR_IIO:BOOL=ON \
+  -DENABLE_GR_QTGUI:BOOL=ON \
+  -DENABLE_GR_TRELLIS:BOOL=ON \
+  -DENABLE_GR_UHD:BOOL=ON \
+  -DENABLE_UHD_RFNOC:BOOL=ON \
+  -DENABLE_GR_UTILS:BOOL=ON \
+  -DENABLE_GR_MODTOOL:BOOL=ON \
+  -DENABLE_GR_BLOCKTOOL:BOOL=ON \
+  -DENABLE_GR_VIDEO_SDL:BOOL=ON \
+  -DENABLE_GR_VOCODER:BOOL=ON \
+  -DENABLE_GR_WAVELET:BOOL=ON \
+  -DENABLE_GR_ZEROMQ:BOOL=ON \
+  -DENABLE_GR_NETWORK:BOOL=ON \
+  -DENABLE_GR_SOAPY:BOOL=ON \
+  -DENABLE_DOXYGEN:BOOL=%{with docs} \
+  -DENABLE_MANPAGES:BOOL=ON \
+  -DENABLE_EXAMPLES:BOOL=ON \
+  -DENABLE_PERFORMANCE_COUNTERS:BOOL=ON \
+  -DENABLE_BASH_COMPLETIONS:BOOL=ON \
+  -DENABLE_FISH_COMPLETIONS:BOOL=ON \
+  -DENABLE_ZSH_COMPLETIONS:BOOL=ON \
+  -DTRY_SHM_VMCIRCBUF:BOOL=ON \
+  -DENABLE_POSTINSTALL:BOOL=OFF \
+  -DENABLE_NATIVE:BOOL=OFF \
+  -DENABLE_BAD_BOOST:BOOL=OFF \
 %ifarch armv6l armv6hl
   -Dhave_mfpu_neon=0 \
 %endif
@@ -227,27 +274,40 @@
   -DENABLE_INTERNAL_VOLK:BOOL=OFF
 %cmake_build
 
+%check
+%ifarch ppc64le
+# The ZeroMQ message source tests segfault during teardown on ppc64le.
+%ctest --exclude-regex '^qa_zeromq_(pull|req|sub)_msg_source$'
+%else
+%ctest
+%endif
+
 %install
 # move the template files back
 find  gr-utils/modtool/templates/gr-newmod -name CMakeLists.txt.tmpl -execdir 
mv '{}' 'CMakeLists.txt' \;
 
 %cmake_install
 
+# Python modules are imported, not executed directly.
+find %{buildroot}%{python3_sitearch}/gnuradio \
+  %{buildroot}%{_datadir}/gnuradio/modtool/templates \
+  -type f ! -perm /111 -exec sed -i '1{/^#!.*\(python\|bash\)/d}' '{}' +
+rm 
%{buildroot}%{_datadir}/gnuradio/modtool/templates/gr-newmod/python/howto/bindings/README.md
+
+install -Dpm 0644 grc/scripts/freedesktop/gnuradio-grc.desktop 
%{buildroot}%{_datadir}/applications/gnuradio-grc.desktop
+install -Dpm 0644 grc/scripts/freedesktop/gnuradio-grc.xml 
%{buildroot}%{_datadir}/mime/packages/gnuradio-grc.xml
+install -Dpm 0644 grc/scripts/freedesktop/org.gnuradio.grc.metainfo.xml 
%{buildroot}%{_datadir}/metainfo/org.gnuradio.grc.metainfo.xml
+for size in 16 24 32 48 64 128 256; do
+  install -Dpm 0644 grc/scripts/freedesktop/grc-icon-${size}.png 
%{buildroot}%{_datadir}/icons/hicolor/${size}x${size}/apps/gnuradio-grc.png
+done
+
 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}
@@ -257,7 +317,26 @@
 
 %files
 %license COPYING
-%{_bindir}/*
+%{_bindir}/gnuradio-companion
+%{_bindir}/gnuradio-config-info
+%{_bindir}/gr-ctrlport-monitor
+%{_bindir}/gr-perf-monitorx
+%{_bindir}/gr_filter_design
+%{_bindir}/gr_modtool
+%{_bindir}/gr_plot
+%{_bindir}/gr_plot_const
+%{_bindir}/gr_plot_fft
+%{_bindir}/gr_plot_iq
+%{_bindir}/gr_plot_psd
+%{_bindir}/gr_plot_qt
+%{_bindir}/gr_read_file_metadata
+%{_bindir}/grcc
+%{_bindir}/polar_channel_construction
+%{_bindir}/uhd_fft
+%{_bindir}/uhd_rx_cfile
+%{_bindir}/uhd_rx_nogui
+%{_bindir}/uhd_siggen
+%{_bindir}/uhd_siggen_gui
 %dir %{_datadir}/gnuradio
 %{_datadir}/gnuradio/grc/
 %{_datadir}/gnuradio/modtool/

++++++ gnuradio-fix-fastnoise-unit-test.patch ++++++
>From da522afee4a84c1b7b03503ad38983c7b0cdcd82 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Marcus=20M=C3=BCller?= <[email protected]>
Date: Tue, 2 Jun 2026 12:20:43 +0200
Subject: [PATCH] analog/fastnoise+gr::random: simplify, fix unit test
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Signed-off-by: Marcus Müller <[email protected]>
---
 gnuradio-runtime/lib/math/random.cc     | 65 +++++++++++++++++++++++--
 gr-analog/python/analog/qa_fastnoise.py |  3 +-
 2 files changed, 62 insertions(+), 6 deletions(-)

diff --git a/gnuradio-runtime/lib/math/random.cc 
b/gnuradio-runtime/lib/math/random.cc
index 6423a39f6c4..c2191314457 100644
--- a/gnuradio-runtime/lib/math/random.cc
+++ b/gnuradio-runtime/lib/math/random.cc
@@ -23,6 +23,8 @@
  *
  */
 
+#include <cstdint>
+#include <limits>
 #ifdef HAVE_CONFIG_H
 #include <config.h>
 #endif
@@ -106,11 +108,64 @@ float random::gasdev()
 
 float random::laplacian()
 {
-    float z = ran1();
-    if (z > 0.5f) {
-        return -logf(2.0f * (1.0f - z));
-    }
-    return logf(2 * z);
+    /* Original code, for reference:
+     *
+     * float z = ran1();
+     * if (z > 0.5f) {
+     *     return -logf(2.0f * (1.0f - z));
+     * }
+     * return logf(2 * z);
+     *
+     * So: Z ~ U[0;1], which means the (1.0f - z)
+     * is utterly senseless, and then so is the "2*";
+     * we transform the if-clause
+     * float y = 2*ran1(); // =2*(1-z)
+     * if (y <= 1.0f) {
+     *      return -logf(y);
+     * }
+     * return logf(y);
+     *
+     * or, really, just
+     *
+     * return absf(logf(2*ran1()));
+     * that's it. That should have been the function.
+     *
+     * BUT.
+     *
+     * Let's talk about Laplace(µ,2b) generation!
+     *
+     * Classically, let V ~ U[-0.5;+0.5];
+     *
+     * X = µ - b · sgn(V) ln(1 - 2·|V|)
+     *
+     * We're generating mean = 0, var = 2, so
+     * µ = 0, b = 1
+     *
+     * therefore
+     *
+     * X = 0 - 1 · sgn(V) ln(1-2·|V|)
+     *   = -sgn(V) ln(1-2·|V|)
+     *
+     * that ln argument is stupid – instead,
+     * let W ~ U[0;1], S~U{-1,+1}
+     * X = S · ln(W)
+     *
+     * That is a tiny bit less work, isn't it?
+     * We need to form W from a 63 bit uniform integer P (we're using the
+     * highest bit as S), so technically W = P / (2⁶³ - 1) but logarithm says
+     * X = S · (ln(P) - ln(2⁶³-1))
+     */
+    // make sure we're on the right range
+    static_assert(decltype(d_rng)::min() == 0 &&
+                  decltype(d_rng)::max() == 
std::numeric_limits<uint64_t>::max());
+    constexpr auto lower_bitmask = ((uint64_t)(1) << 63) - 1;
+    // ln(2⁶³-1):
+    constexpr float log_scaling = 0x1.5d589f2fe5107p+5;
+    const uint64_t v = d_rng();
+    const bool signbit = (v >> 63);
+    const float w = (v & lower_bitmask);
+    const float value = std::log(w) - log_scaling;
+    return signbit ? -value : value;
 }
 /*
  * Copied from The KC7WW / OH2BNS Channel Simulator
diff --git a/gr-analog/python/analog/qa_fastnoise.py 
b/gr-analog/python/analog/qa_fastnoise.py
index 91f3f0bba15..016042049b9 100644
--- a/gr-analog/python/analog/qa_fastnoise.py
+++ b/gr-analog/python/analog/qa_fastnoise.py
@@ -17,7 +17,7 @@ class test_fastnoise_source(gr_unittest.TestCase):
     def setUp(self):
 
         self.num = 2**22
-        self.num_items = 10**6
+        self.num_items = 2**22
         self.default_args = {"samples": self.num, "seed": 43, "ampl": 1}
 
     def tearDown(self):
@@ -92,6 +92,7 @@ def test_001_real_gaussian_moments(self):
         self.assertAlmostEqual(data.var(), 1, places=2)
 
     def test_001_real_laplacian_moments(self):
+        self.num_items = 10**7
         data = self.run_test_real(analog.GR_LAPLACIAN)
 
         # mean, variance

++++++ gnuradio-rpmlintrc ++++++
--- /var/tmp/diff_new_pack.pI6JGo/_old  2026-08-20 16:15:10.313987057 +0200
+++ /var/tmp/diff_new_pack.pI6JGo/_new  2026-08-20 16:15:10.321987340 +0200
@@ -1,3 +1,16 @@
-# Template file for gr_newmod
-addFilter("devel-file-in-non-devel-package.*/usr/share/gnuradio/modtool/templates/gr-newmod/include/howto/api.h")
+# Empty compatibility module imported by grc.gui_qt.helpers.
+addFilter("zero-length.*/gnuradio/grc/gui_qt/helpers/qt.py")
+
+# These development files are input for gr_modtool's module template.
+addFilter("devel-file-in-non-devel-package.*/usr/share/gnuradio/modtool/templates/gr-newmod/include/gnuradio/howto/api.h")
+addFilter("devel-file-in-non-devel-package.*/usr/share/gnuradio/modtool/templates/gr-newmod/docs/doxygen/pydoc_macros.h")
+
+# Hidden files are intentionally shipped as part of gr_modtool templates.
+addFilter("version-control-internal-file.*/usr/share/gnuradio/modtool/templates/gr-newmod/python/howto/.gitignore")
+addFilter("hidden-file-or-dir.*/usr/share/gnuradio/modtool/templates/gr-newmod/python/howto/.gitignore")
+addFilter("hidden-file-or-dir.*/usr/share/gnuradio/modtool/templates/gr-newmod/.conda")
+addFilter("hidden-file-or-dir.*/usr/share/gnuradio/.cmake-format.py")
+
+# Qt loads this resource from its private Python module path.
+addFilter("file-not-in-%lang.*/gnuradio/grc/gui_qt/resources/language/en_US/LC_MESSAGES/grc.mo")
 

++++++ gnuradio-run-qtgui-tests-with-xvfb.patch ++++++
>From e9a4a7f3bd4d5cf3bee15ea1cdbd9d9fc9ff0f5b Mon Sep 17 00:00:00 2001
From: Mikhail Paulyshka <[email protected]>
Date: Tue, 18 Aug 2026 17:03:45 +0300
Subject: [PATCH 1/1] gr-qtgui: actually run tests through xvfb-run

Restore the intended behavior from pull request #3545. The
QA_DISPLAY_SERVER variable is set when xvfb-run is found, but accidentally was 
dropped from the gr_add_test invocation, causing qa_qtgui to run without a 
display.

Signed-off-by: Mikhail Paulyshka <[email protected]>
---
 gr-qtgui/python/qtgui/CMakeLists.txt | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/gr-qtgui/python/qtgui/CMakeLists.txt 
b/gr-qtgui/python/qtgui/CMakeLists.txt
index 2d4c7f12e..177135a7e 100644
--- a/gr-qtgui/python/qtgui/CMakeLists.txt
+++ b/gr-qtgui/python/qtgui/CMakeLists.txt
@@ -61,7 +61,7 @@ if(ENABLE_TESTING)
         if(CMAKE_CROSSCOMPILING)
             get_filename_component(py_qa_test_file ${py_qa_test_file} NAME)
         endif(CMAKE_CROSSCOMPILING)
-        gr_add_test(${py_qa_test_name} ${QA_PYTHON_EXECUTABLE} -B 
${py_qa_test_file})
+        gr_add_test(${py_qa_test_name} ${QA_DISPLAY_SERVER} 
${QA_PYTHON_EXECUTABLE} -B ${py_qa_test_file})
     endforeach(py_qa_test_file)
 endif(ENABLE_TESTING)
 
-- 
2.55.0

Reply via email to