Package: pyfai Version: 0.20.0+dfsg1-4 Severity: serious Tags: patch ftbfs Justification: fails to build from source (but built successfully in the past) User: ubuntu-de...@lists.ubuntu.com Usertags: origin-ubuntu jammy ubuntu-patch X-Debbugs-Cc: sl...@ubuntu.com
Dear Maintainer, collections.MutableSet was deprecated a long time ago and removed with python3.10. https://docs.python.org/3/whatsnew/3.10.html#removed https://bugs.python.org/issue37324 Using the old class name leads to autopkgtest failures such as this one: ``` ====================================================================== ERROR: test_import_all_modules (pyFAI.test.test_bug_regression.TestBugRegression) Try to import every single module in the package ---------------------------------------------------------------------- Traceback (most recent call last): File "/<<BUILDDIR>>/pyfai-0.20.0+dfsg1/.pybuild/cpython3_3.10_pyfai/build/pyFAI/test/test_bug_regression.py", line 286, in test_import_all_modules raise err File "/<<BUILDDIR>>/pyfai-0.20.0+dfsg1/.pybuild/cpython3_3.10_pyfai/build/pyFAI/test/test_bug_regression.py", line 271, in test_import_all_modules load_source(fqn, path) File "/<<BUILDDIR>>/pyfai-0.20.0+dfsg1/.pybuild/cpython3_3.10_pyfai/build/pyFAI/test/test_bug_regression.py", line 78, in load_source spec.loader.exec_module(module) File "<frozen importlib._bootstrap_external>", line 883, in exec_module File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed File "/<<BUILDDIR>>/pyfai-0.20.0+dfsg1/.pybuild/cpython3_3.10_pyfai/build/pyFAI/utils/orderedset.py", line 30, in <module> class OrderedSet(collections.MutableSet): AttributeError: module 'collections' has no attribute 'MutableSet' ``` In Ubuntu, the attached patch was applied to achieve the following: * Fix FTBFS with python3.10, due to deprecated collections.MutableSets Forwarded upstream: https://github.com/silx-kit/pyFAI/pull/1588 Thanks for considering the patch. Cheers, Lukas -- System Information: Debian Release: 11.0 APT prefers impish-updates APT policy: (500, 'impish-updates'), (500, 'impish-security'), (500, 'impish'), (100, 'impish-backports') Architecture: amd64 (x86_64) Foreign Architectures: i386 Kernel: Linux 5.13.0-20-generic (SMP w/4 CPU threads) Kernel taint flags: TAINT_PROPRIETARY_MODULE, TAINT_WARN, TAINT_OOT_MODULE Locale: LANG=de_DE.UTF-8, LC_CTYPE=de_DE.UTF-8 (charmap=UTF-8), LANGUAGE=de_DE:en_GB:en Shell: /bin/sh linked to /usr/bin/dash Init: systemd (via /run/systemd/system) LSM: AppArmor: enabled
diff -Nru pyfai-0.20.0+dfsg1/debian/patches/python3.10-compat.patch pyfai-0.20.0+dfsg1/debian/patches/python3.10-compat.patch --- pyfai-0.20.0+dfsg1/debian/patches/python3.10-compat.patch 1970-01-01 01:00:00.000000000 +0100 +++ pyfai-0.20.0+dfsg1/debian/patches/python3.10-compat.patch 2021-11-19 16:51:28.000000000 +0100 @@ -0,0 +1,40 @@ +Description: Fix collections.MutableSets compat with python3.10 + collections.MutableSet was deprecated a long time ago and removed with python3.10. + https://docs.python.org/3/whatsnew/3.10.html#removed + https://bugs.python.org/issue37324 + + Using the old class name leads to test failures such as this one: + ====================================================================== + ERROR: test_import_all_modules (pyFAI.test.test_bug_regression.TestBugRegression) + Try to import every single module in the package + ---------------------------------------------------------------------- + Traceback (most recent call last): + File "/<<BUILDDIR>>/pyfai-0.20.0+dfsg1/.pybuild/cpython3_3.10_pyfai/build/pyFAI/test/test_bug_regression.py", line 286, in test_import_all_modules + raise err + File "/<<BUILDDIR>>/pyfai-0.20.0+dfsg1/.pybuild/cpython3_3.10_pyfai/build/pyFAI/test/test_bug_regression.py", line 271, in test_import_all_modules + load_source(fqn, path) + File "/<<BUILDDIR>>/pyfai-0.20.0+dfsg1/.pybuild/cpython3_3.10_pyfai/build/pyFAI/test/test_bug_regression.py", line 78, in load_source + spec.loader.exec_module(module) + File "<frozen importlib._bootstrap_external>", line 883, in exec_module + File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed + File "/<<BUILDDIR>>/pyfai-0.20.0+dfsg1/.pybuild/cpython3_3.10_pyfai/build/pyFAI/utils/orderedset.py", line 30, in <module> + class OrderedSet(collections.MutableSet): + AttributeError: module 'collections' has no attribute 'MutableSet' +Author: Lukas Märdian <sl...@ubuntu.com> +Origin: vendor, Ubuntu +Bug: https://github.com/silx-kit/pyFAI/pull/1588 +Forwarded: https://github.com/silx-kit/pyFAI/pull/1588 +Last-Update: 2021-11-19 +--- +This patch header follows DEP-3: http://dep.debian.net/deps/dep3/ +--- pyfai-0.20.0+dfsg1.orig/pyFAI/utils/orderedset.py ++++ pyfai-0.20.0+dfsg1/pyFAI/utils/orderedset.py +@@ -27,7 +27,7 @@ + import collections + + +-class OrderedSet(collections.MutableSet): ++class OrderedSet(collections.abc.MutableSet): + + def __init__(self, iterable=None): + self.end = end = [] diff -Nru pyfai-0.20.0+dfsg1/debian/patches/series pyfai-0.20.0+dfsg1/debian/patches/series --- pyfai-0.20.0+dfsg1/debian/patches/series 2021-09-19 13:57:57.000000000 +0200 +++ pyfai-0.20.0+dfsg1/debian/patches/series 2021-11-19 16:51:28.000000000 +0100 @@ -6,3 +6,4 @@ 0006-fix-a-couple-of-test-failing-with-i386.patch 0007-cleaner-test.patch 0008-tunning.patch +python3.10-compat.patch