dbus-python fails to build with Python 3.9.0a2. ERROR: test/test-p2p ==================== /builddir/build/BUILD/dbus-python-1.2.8/python3-build/./test/test-p2p.py:32: DeprecationWarning: Importing dbus.glib to use the GLib main loop with dbus-python is deprecated. Instead, use this sequence: from dbus.mainloop.glib import DBusGMainLoop DBusGMainLoop(set_as_default=True) import dbus.glib Traceback (most recent call last): File "/builddir/build/BUILD/dbus-python-1.2.8/python3-build/./test/test-p2p.py", line 33, in <module> import dbus.service File "/builddir/build/BUILD/dbus-python-1.2.8/python3-build/dbus/service.py", line 33, in <module> from collections import Sequence ImportError: cannot import name 'Sequence' from 'collections' (/usr/lib64/python3.9/collections/__init__.py) ERROR: test/test-p2p.py - missing test plan ERROR: test/test-p2p.py - exited with status 1 ERROR: test/test-signals ======================== /builddir/build/BUILD/dbus-python-1.2.8/python3-build/./test/test-signals.py:34: DeprecationWarning: Importing dbus.glib to use the GLib main loop with dbus-python is deprecated. Instead, use this sequence: from dbus.mainloop.glib import DBusGMainLoop DBusGMainLoop(set_as_default=True) import dbus.glib Traceback (most recent call last): File "/builddir/build/BUILD/dbus-python-1.2.8/python3-build/./test/test-signals.py", line 35, in <module> import dbus.service File "/builddir/build/BUILD/dbus-python-1.2.8/python3-build/dbus/service.py", line 33, in <module> from collections import Sequence ImportError: cannot import name 'Sequence' from 'collections' (/usr/lib64/python3.9/collections/__init__.py) ERROR: test/test-signals.py - missing test plan ERROR: test/test-signals.py - exited with status 1 ERROR: test/run-test ==================== # DBUS_TOP_SRCDIR=/builddir/build/BUILD/dbus-python-1.2.8/python3-build # DBUS_TOP_BUILDDIR=/builddir/build/BUILD/dbus-python-1.2.8/python3-build # PYTHONPATH=/builddir/build/BUILD/dbus-python-1.2.8/python3-build:/builddir/build/BUILD/dbus-python-1.2.8/python3-build/test:/builddir/build/BUILD/dbus-python-1.2.8/python3-build/.libs:/builddir/build/BUILD/dbus-python-1.2.8/python3-build/test/.libs # PYTHON=/usr/bin/python3 dbus-daemon[16464]: [session uid=1001 pid=16464] Connection :1.0 (uid=1001 pid=16469 comm="dbus-monitor " label="unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023") became a monitor. /builddir/build/BUILD/dbus-python-1.2.8/python3-build/test/cross-test-server.py:33: DeprecationWarning: Importing dbus.glib to use the GLib main loop with dbus-python is deprecated. Instead, use this sequence: from dbus.mainloop.glib import DBusGMainLoop DBusGMainLoop(set_as_default=True) import dbus.glib Traceback (most recent call last): File "/builddir/build/BUILD/dbus-python-1.2.8/python3-build/test/cross-test-server.py", line 35, in <module> from dbus.service import BusName File "/builddir/build/BUILD/dbus-python-1.2.8/python3-build/dbus/service.py", line 33, in <module> from collections import Sequence ImportError: cannot import name 'Sequence' from 'collections' (/usr/lib64/python3.9/collections/__init__.py) dbus-daemon[16464]: [session uid=1001 pid=16464] Reloaded configuration timed out # running cross-test (for better diagnostics use mjj29's dbus-test) ERROR: test/run-test.sh - missing test plan ERROR: test/run-test.sh - exited with status 1 Importing abc classes from collections was deprecated since at least Python 3.7 and now it is dropped from 3.9. The easiest way out of this is to drop the Python 2 package (bz1787240) and patch the sources to import Sequence (and possibly others) from collections.abc. Or alternatively, if Python 2 support is still desired (maybe in upstream): -from collections import Sequence from dbus._compat import is_py2 +if is_py2: + from collections import Sequence +else: + from collections.abc import Sequence (That is what we have built in our copr for now.) For the build logs, see: https://copr-be.cloud.fedoraproject.org/results/@python/python3.9/fedora-rawhide-x86_64/01139990-dbus-python/ For all our attempts to build dbus-python with Python 3.9, see: https://copr.fedorainfracloud.org/coprs/g/python/python3.9/package/dbus-python/ Testing and mass rebuild of packages is happening in copr. You can follow these instructions to test locally in mock if your package builds with Python 3.9: https://copr.fedorainfracloud.org/coprs/g/python/python3.9/ Let us know here if you have any questions. Python 3.9 will be included in Fedora 33, but the initial bootstrapping has already started. A build failure this early in the bootstrap sequence blocks us very much.
Could you please have a look?
This bug appears to have been reported against 'rawhide' during the Fedora 32 development cycle. Changing version to 32.