[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#1109539: unblock: orange-canvas-core/0.2.5-2



Package: release.debian.org
Severity: normal
User: release.debian.org@packages.debian.org
Usertags: unblock

Please unblock package orange-canvas-core

[ Reason ]
Fix FTBFS detected by reproducible builds.

[ Impact ]
Base package for all the orange3 stack.

[ Tests ]
The changes only affect the way the testsuite is run, and they turn an
FTBFS+autopkgtest failure in a success on both counts.

[ Risks ]
Not a leaf package; a few reverse-depends, all part of the orange3 suite.

[ Checklist ]
  [x] all changes are documented in the d/changelog
  [x] I reviewed all changes and I approve them
  [x] attach debdiff against the package in testing

[ Other info ]
Fix for #1098586. The changes are twofold: run the testsuite with a window
manager (because it depends on focus changes and that requires a window
manager), and disable an explicit trigger of the garbage collector in the
testsuite which causes a segmentation fault.

unblock orange-canvas-core/0.2.5-2
diff -Nru orange-canvas-core-0.2.5/debian/changelog orange-canvas-core-0.2.5/debian/changelog
--- orange-canvas-core-0.2.5/debian/changelog	2025-01-26 19:37:32.000000000 +0100
+++ orange-canvas-core-0.2.5/debian/changelog	2025-07-19 16:01:22.000000000 +0200
@@ -1,3 +1,12 @@
+orange-canvas-core (0.2.5-2) unstable; urgency=medium
+
+  * Run testsuite with a window manager.
+  * Also, disable explicit garbage collection in testsuite.
+  * These two changes, combined, fix "FTBFS: Segmentation fault", thanks
+    to Santiago Vila (Closes: #1098586).
+
+ -- Roland Mas <lolando@debian.org>  Sat, 19 Jul 2025 16:01:22 +0200
+
 orange-canvas-core (0.2.5-1) unstable; urgency=medium
 
   * New upstream release.
diff -Nru orange-canvas-core-0.2.5/debian/control orange-canvas-core-0.2.5/debian/control
--- orange-canvas-core-0.2.5/debian/control	2025-01-26 19:37:32.000000000 +0100
+++ orange-canvas-core-0.2.5/debian/control	2025-07-19 15:36:06.000000000 +0200
@@ -6,9 +6,11 @@
  Debian Science Maintainers <debian-science-maintainers@lists.alioth.debian.org>,
  Roland Mas <lolando@debian.org>,
 Build-Depends:
+ dbus <!nocheck>,
  debhelper-compat (= 13),
  dh-sequence-numpy3,
  dh-sequence-python3,
+ herbstluftwm,
  pybuild-plugin-pyproject,
  python3-all,
  python3-anyqt (>= 0.2.0),
@@ -19,11 +21,12 @@
  python3-pyqt5,
  python3-pyqt5.qtsvg,
  python3-pytest <!nocheck>,
- python3-pytest-xvfb <!nocheck>,
+ python3-pytestqt <!nocheck>,
  python3-qasync,
  python3-requests-cache,
  python3-setuptools,
  python3-trubar,
+ xvfb,
 Standards-Version: 4.6.2.0
 Homepage: https://orange.biolab.si/
 Vcs-Git: https://salsa.debian.org/science-team/orange-canvas-core.git
diff -Nru orange-canvas-core-0.2.5/debian/patches/0001-Disable-explicit-garbage-collection-in-testsuite.patch orange-canvas-core-0.2.5/debian/patches/0001-Disable-explicit-garbage-collection-in-testsuite.patch
--- orange-canvas-core-0.2.5/debian/patches/0001-Disable-explicit-garbage-collection-in-testsuite.patch	1970-01-01 01:00:00.000000000 +0100
+++ orange-canvas-core-0.2.5/debian/patches/0001-Disable-explicit-garbage-collection-in-testsuite.patch	2025-07-19 15:58:15.000000000 +0200
@@ -0,0 +1,20 @@
+From: Roland Mas <roland.mas@entierement.net>
+Date: Sat, 19 Jul 2025 15:23:44 +0200
+Subject: Disable explicit garbage collection in testsuite
+
+---
+ orangecanvas/gui/test.py | 1 -
+ 1 file changed, 1 deletion(-)
+
+diff --git a/orangecanvas/gui/test.py b/orangecanvas/gui/test.py
+index 8382f30..1529a34 100644
+--- a/orangecanvas/gui/test.py
++++ b/orangecanvas/gui/test.py
+@@ -48,7 +48,6 @@ class QCoreAppTestCase(unittest.TestCase):
+ 
+     @classmethod
+     def tearDownClass(cls):
+-        gc.collect()
+         cls.app.setApplicationName(cls.__appname)
+         cls.app.setOrganizationDomain(cls.__appdomain)
+         cls.app.sendPostedEvents(None, 0)
diff -Nru orange-canvas-core-0.2.5/debian/patches/series orange-canvas-core-0.2.5/debian/patches/series
--- orange-canvas-core-0.2.5/debian/patches/series	1970-01-01 01:00:00.000000000 +0100
+++ orange-canvas-core-0.2.5/debian/patches/series	2025-07-19 15:59:32.000000000 +0200
@@ -0,0 +1 @@
+0001-Disable-explicit-garbage-collection-in-testsuite.patch
diff -Nru orange-canvas-core-0.2.5/debian/rules orange-canvas-core-0.2.5/debian/rules
--- orange-canvas-core-0.2.5/debian/rules	2025-01-26 19:37:32.000000000 +0100
+++ orange-canvas-core-0.2.5/debian/rules	2025-07-19 15:35:27.000000000 +0200
@@ -1,7 +1,17 @@
 #! /usr/bin/make -f
 
 export PYBUILD_NAME=orange-canvas-core
-export PYBUILD_TEST_ARGS=-k "not test_iconengine"
+export PYBUILD_TEST_ARGS=-k "not test_iconengine" --capture=no
 
 %:
 	dh $@ --buildsystem=pybuild
+
+export DISPLAY=:99.0
+
+execute_before_dh_auto_test:
+	/sbin/start-stop-daemon --start --quiet --pidfile $(CURDIR)/custom_xvfb.pid --make-pidfile --background --exec /usr/bin/Xvfb -- :99
+	/sbin/start-stop-daemon --start --quiet --pidfile $(CURDIR)/custom_herbstluftwm.pid --make-pidfile --background --exec /usr/bin/herbstluftwm -- --replace
+
+execute_after_dh_auto_test:
+	/sbin/start-stop-daemon --stop --quiet --pidfile $(CURDIR)/custom_herbstluftwm.pid --remove-pidfile || true
+	/sbin/start-stop-daemon --stop --quiet --pidfile $(CURDIR)/custom_xvfb.pid --remove-pidfile || true
diff -Nru orange-canvas-core-0.2.5/debian/tests/control orange-canvas-core-0.2.5/debian/tests/control
--- orange-canvas-core-0.2.5/debian/tests/control	2025-01-26 19:37:32.000000000 +0100
+++ orange-canvas-core-0.2.5/debian/tests/control	2025-07-19 15:58:15.000000000 +0200
@@ -1,9 +1,11 @@
 Tests: python
 Depends:
+ dbus,
+ herbstluftwm,
  python3-all,
  python3-orange-canvas-core,
  python3-pyqt5,
  python3-pyqt5.qtsvg,
  python3-pytest,
- python3-pytest-xvfb,
+ xvfb,
 Restrictions: allow-stderr, skip-not-installable, flaky
diff -Nru orange-canvas-core-0.2.5/debian/tests/python orange-canvas-core-0.2.5/debian/tests/python
--- orange-canvas-core-0.2.5/debian/tests/python	2025-01-26 19:37:32.000000000 +0100
+++ orange-canvas-core-0.2.5/debian/tests/python	2025-07-19 15:58:15.000000000 +0200
@@ -1,6 +1,16 @@
 #!/bin/sh -ex
 
-for py in $(py3versions --supported 2>/dev/null); do
-    echo "Testing with $py: ";
-    $py -m pytest --pyargs orangecanvas -k "not test_iconengine"
+export DISPLAY=:99.0
+
+for py in $(py3versions --supported 2> /dev/null); do
+    tmphome=$(mktemp -d)
+    /sbin/start-stop-daemon --start --quiet --pidfile $tmphome/custom_xvfb.pid --make-pidfile --background --exec /usr/bin/Xvfb -- :99
+    /sbin/start-stop-daemon --start --quiet --pidfile $tmphome/custom_herbstluftwm.pid --make-pidfile --background --exec /usr/bin/herbstluftwm -- --replace
+
+    echo "Testing with $py: "
+    HOME=$tmphome $py -m pytest --pyargs orangecanvas -k "not test_iconengine" --capture=no
+
+    /sbin/start-stop-daemon --stop --quiet --pidfile $tmphome/custom_herbstluftwm.pid --remove-pidfile || true
+    /sbin/start-stop-daemon --stop --quiet --pidfile $tmphome/custom_xvfb.pid --remove-pidfile || true
+    rm -rf $tmphome
 done

Reply to: