Description of problem: Package python-cairocffi fails to build from source in Fedora 43 but not rawhide. Version-Release number of selected component (if applicable): 1.7.1-3.fc43 Steps to Reproduce: fedpkg build Additional info: This package is tracked by Koschei. See: https://koschei.fedoraproject.org/package/python-cairocffi =================================== FAILURES =================================== ___________________________________ test_api ___________________________________ def test_api(): with pytest.raises(pixbuf.ImageLoadingError): pixbuf.decode_to_image_surface(b'') with pytest.raises(pixbuf.ImageLoadingError): pixbuf.decode_to_image_surface(b'Not a valid image.') with pytest.raises(pixbuf.ImageLoadingError): pixbuf.decode_to_image_surface(PNG_BYTES[:10]) > surface, format_name = pixbuf.decode_to_image_surface(PNG_BYTES) ../BUILDROOT/usr/lib/python3.14/site-packages/cairocffi/test_pixbuf.py:36: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ../BUILDROOT/usr/lib/python3.14/site-packages/cairocffi/pixbuf.py:129: in decode_to_image_surface pixbuf, format_name = decode_to_pixbuf(image_data, width, height) ../BUILDROOT/usr/lib/python3.14/site-packages/cairocffi/pixbuf.py:100: in decode_to_pixbuf handle_g_error(error, gdk_pixbuf.gdk_pixbuf_loader_close(loader, error)) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ error = <cdata 'GError *' 0x7ffee4002450>, return_value = 0 def handle_g_error(error, return_value): """Convert a ``GError**`` to a Python :exception:`ImageLoadingError`, and raise it. """ error = error[0] assert bool(return_value) == (error == ffi.NULL) if error != ffi.NULL: if error.message != ffi.NULL: message = ('Pixbuf error: ' + ffi.string(error.message).decode('utf8', 'replace')) else: # pragma: no cover message = 'Pixbuf error' glib.g_error_free(error) > raise ImageLoadingError(message) E cairocffi.pixbuf.ImageLoadingError: Pixbuf error: Remote error: org.freedesktop.zbus.Error: no description ../BUILDROOT/usr/lib/python3.14/site-packages/cairocffi/pixbuf.py:64: ImageLoadingError ___________________________________ test_gdk ___________________________________ def test_gdk(): if pixbuf.gdk is None: pytest.xfail() > pixbuf_obj, format_name = pixbuf.decode_to_pixbuf(PNG_BYTES) ../BUILDROOT/usr/lib/python3.14/site-packages/cairocffi/test_pixbuf.py:44: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ../BUILDROOT/usr/lib/python3.14/site-packages/cairocffi/pixbuf.py:100: in decode_to_pixbuf handle_g_error(error, gdk_pixbuf.gdk_pixbuf_loader_close(loader, error)) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ error = <cdata 'GError *' 0x7ffee0000ef0>, return_value = 0 def handle_g_error(error, return_value): """Convert a ``GError**`` to a Python :exception:`ImageLoadingError`, and raise it. """ error = error[0] assert bool(return_value) == (error == ffi.NULL) if error != ffi.NULL: if error.message != ffi.NULL: message = ('Pixbuf error: ' + ffi.string(error.message).decode('utf8', 'replace')) else: # pragma: no cover message = 'Pixbuf error' glib.g_error_free(error) > raise ImageLoadingError(message) E cairocffi.pixbuf.ImageLoadingError: Pixbuf error: Remote error: org.freedesktop.zbus.Error: no description ../BUILDROOT/usr/lib/python3.14/site-packages/cairocffi/pixbuf.py:64: ImageLoadingError _________________________________ test_slices __________________________________ def test_slices(): > pixbuf_obj, format_name = pixbuf.decode_to_pixbuf(PNG_BYTES) ../BUILDROOT/usr/lib/python3.14/site-packages/cairocffi/test_pixbuf.py:50: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ../BUILDROOT/usr/lib/python3.14/site-packages/cairocffi/pixbuf.py:100: in decode_to_pixbuf handle_g_error(error, gdk_pixbuf.gdk_pixbuf_loader_close(loader, error)) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ error = <cdata 'GError *' 0x7ffee4001040>, return_value = 0 def handle_g_error(error, return_value): """Convert a ``GError**`` to a Python :exception:`ImageLoadingError`, and raise it. """ error = error[0] assert bool(return_value) == (error == ffi.NULL) if error != ffi.NULL: if error.message != ffi.NULL: message = ('Pixbuf error: ' + ffi.string(error.message).decode('utf8', 'replace')) else: # pragma: no cover message = 'Pixbuf error' glib.g_error_free(error) > raise ImageLoadingError(message) E cairocffi.pixbuf.ImageLoadingError: Pixbuf error: Remote error: org.freedesktop.zbus.Error: no description ../BUILDROOT/usr/lib/python3.14/site-packages/cairocffi/pixbuf.py:64: ImageLoadingError __________________________________ test_size ___________________________________ def test_size(): > pixbuf_obj, format_name = pixbuf.decode_to_pixbuf(PNG_BYTES, 10, 10) ../BUILDROOT/usr/lib/python3.14/site-packages/cairocffi/test_pixbuf.py:56: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ../BUILDROOT/usr/lib/python3.14/site-packages/cairocffi/pixbuf.py:100: in decode_to_pixbuf handle_g_error(error, gdk_pixbuf.gdk_pixbuf_loader_close(loader, error)) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ error = <cdata 'GError *' 0x7ffee0001960>, return_value = 0 def handle_g_error(error, return_value): """Convert a ``GError**`` to a Python :exception:`ImageLoadingError`, and raise it. """ error = error[0] assert bool(return_value) == (error == ffi.NULL) if error != ffi.NULL: if error.message != ffi.NULL: message = ('Pixbuf error: ' + ffi.string(error.message).decode('utf8', 'replace')) else: # pragma: no cover message = 'Pixbuf error' glib.g_error_free(error) > raise ImageLoadingError(message) E cairocffi.pixbuf.ImageLoadingError: Pixbuf error: Remote error: org.freedesktop.zbus.Error: no description ../BUILDROOT/usr/lib/python3.14/site-packages/cairocffi/pixbuf.py:64: ImageLoadingError ___________________________________ test_png ___________________________________ def test_png(): > pixbuf_obj, format_name = pixbuf.decode_to_pixbuf(JPEG_BYTES) ../BUILDROOT/usr/lib/python3.14/site-packages/cairocffi/test_pixbuf.py:65: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ../BUILDROOT/usr/lib/python3.14/site-packages/cairocffi/pixbuf.py:100: in decode_to_pixbuf handle_g_error(error, gdk_pixbuf.gdk_pixbuf_loader_close(loader, error)) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ error = <cdata 'GError *' 0x7ffee4002de0>, return_value = 0 def handle_g_error(error, return_value): """Convert a ``GError**`` to a Python :exception:`ImageLoadingError`, and raise it. """ error = error[0] assert bool(return_value) == (error == ffi.NULL) if error != ffi.NULL: if error.message != ffi.NULL: message = ('Pixbuf error: ' + ffi.string(error.message).decode('utf8', 'replace')) else: # pragma: no cover message = 'Pixbuf error' glib.g_error_free(error) > raise ImageLoadingError(message) E cairocffi.pixbuf.ImageLoadingError: Pixbuf error: Remote error: org.freedesktop.zbus.Error: no description ../BUILDROOT/usr/lib/python3.14/site-packages/cairocffi/pixbuf.py:64: ImageLoadingError =========================== short test summary info ============================ FAILED test_pixbuf.py::test_api - cairocffi.pixbuf.ImageLoadingError: Pixbuf ... FAILED test_pixbuf.py::test_gdk - cairocffi.pixbuf.ImageLoadingError: Pixbuf ... FAILED test_pixbuf.py::test_slices - cairocffi.pixbuf.ImageLoadingError: Pixb... FAILED test_pixbuf.py::test_size - cairocffi.pixbuf.ImageLoadingError: Pixbuf... FAILED test_pixbuf.py::test_png - cairocffi.pixbuf.ImageLoadingError: Pixbuf ... ========================= 5 failed, 50 passed in 3.86s ========================= Reproducible: Always
Seems like this was a problem on rawhide as well, but something has fixed it since: https://koschei.fedoraproject.org/package/python-cairocffi?collection=f44
Hello. This is a bulk comment. This package still needs to be rebuilt and/or shipped with Python 3.14.0rc2+ bytecode in Fedora 43. The Beta Freeze of Fedora 43 is scheduled to start today. Please prioritize this bugzilla accordingly. Thanks.
https://gitlab.gnome.org/GNOME/gdk-pixbuf/-/merge_requests/219
OK, I tried backporting that MR to gdk-pixbuf2. However, with just that, python-cairocffi %check crashes. So perhaps this needs more commits, and I'll wait it out. (This can rebuild for rc2 bytecode after the freeze with almost no risk.)
FEDORA-2025-93cb3198d8 (python-cairocffi-1.7.1-4.fc43) has been submitted as an update to Fedora 43. https://bodhi.fedoraproject.org/updates/FEDORA-2025-93cb3198d8
Built in a side tag with older gdk-pixbuf2. Requesting a freeze exception to get it over with.
FEDORA-2025-93cb3198d8 has been pushed to the Fedora 43 testing repository. Soon you'll be able to install the update with the following command: `sudo dnf upgrade --enablerepo=updates-testing --refresh --advisory=FEDORA-2025-93cb3198d8` You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2025-93cb3198d8 See also https://fedoraproject.org/wiki/QA:Updates_Testing for more information on how to test updates.
FEDORA-2025-93cb3198d8 (python-cairocffi-1.7.1-4.fc43) has been pushed to the Fedora 43 stable repository. If problem still persists, please make note of it in this bug report.