Package: release.debian.org Severity: normal User: release.debian....@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 <lola...@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-maintain...@lists.alioth.debian.org>, Roland Mas <lola...@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....@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