Bug 2383227

Summary: python-matplotlib: FTBFS with pybind11 3.0
Product: [Fedora] Fedora Reporter: Cristian Le <fedora>
Component: python-matplotlibAssignee: Elliott Sales de Andrade <quantum.analyst>
Status: CLOSED RAWHIDE QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: rawhideCC: epel-packagers-sig, gwync, paulo.cesar.pereira.de.andrade, python-packagers-sig, quantum.analyst
Target Milestone: ---   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: python-matplotlib-3.10.5-1.fc43 Doc Type: ---
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2025-08-08 19:32:28 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On:    
Bug Blocks: 2367888, 2383226    

Description Cristian Le 2025-07-24 12:42:24 UTC
Dear package maintainer,

This is an automated bug created due to a FTBFS when rebuilding this package with pybind11 3.0.

The rebuild is being tracked in https://copr.fedorainfracloud.org/coprs/lecris/pybind11-3.0/package/python-matplotlib.

If upstream supports both pybind11 3.x and 2.x with the same codebase, feel free to update the package ahead of the
pybind11 update and close this bug as desired. Otherwise please let us know about the incompatibility so that we can
coordinate a side-tag update together.

Let me know if you encounter any issues, or need any other help.

Comment 1 Elliott Sales de Andrade 2025-07-24 18:52:20 UTC
This doesn't have anything to do with pybind11; the failure is due to Pillow 13, but should be fixed in the next release soon.

Comment 2 Cristian Le 2025-08-07 08:28:59 UTC
I saw that you've pushed an update so I've retrigerred the build and it still has one test failure, but probably unrelated?
```
=================================== FAILURES ===================================
_____________________________ test_rasterized[svg] _____________________________
[gw2] linux -- Python 3.14.0 /usr/bin/python3

ext = 'svg', request = <FixtureRequest for <Function test_rasterized[svg]>>
args = (), kwargs = {}, file_name = 'test_rasterized[svg]'
fig_test = <Figure size 640x480 with 1 Axes>
fig_ref = <Figure size 640x480 with 1 Axes>, figs = []
test_image_path = PosixPath('/builddir/build/BUILD/python-matplotlib-3.10.5-build/matplotlib-3.10.5/result_images/test_backend_svg/test_rasterized[svg].svg')
ref_image_path = PosixPath('/builddir/build/BUILD/python-matplotlib-3.10.5-build/matplotlib-3.10.5/result_images/test_backend_svg/test_rasterized[svg]-expected.svg')

    @pytest.mark.parametrize("ext", extensions)
    def wrapper(*args, ext, request, **kwargs):
        if 'ext' in old_sig.parameters:
            kwargs['ext'] = ext
        if 'request' in old_sig.parameters:
            kwargs['request'] = request
    
        file_name = "".join(c for c in request.node.name
                            if c in ALLOWED_CHARS)
        try:
            fig_test = plt.figure("test")
            fig_ref = plt.figure("reference")
            with _collect_new_figures() as figs:
                func(*args, fig_test=fig_test, fig_ref=fig_ref, **kwargs)
            if figs:
                raise RuntimeError('Number of open figures changed during '
                                   'test. Make sure you are plotting to '
                                   'fig_test or fig_ref, or if this is '
                                   'deliberate explicitly close the '
                                   'new figure(s) inside the test.')
            test_image_path = result_dir / (file_name + "." + ext)
            ref_image_path = result_dir / (file_name + "-expected." + ext)
            fig_test.savefig(test_image_path)
            fig_ref.savefig(ref_image_path)
>           _raise_on_image_difference(
                ref_image_path, test_image_path, tol=tol
            )
E           matplotlib.testing.exceptions.ImageComparisonFailure: images not close (RMS 147.627):
E           	result_images/test_backend_svg/test_rasterized[svg]_svg.png
E           	result_images/test_backend_svg/test_rasterized[svg]-expected_svg.png
E           	result_images/test_backend_svg/test_rasterized[svg]_svg-failed-diff.png

../BUILDROOT/usr/lib64/python3.14/site-packages/matplotlib/testing/decorators.py:422: ImageComparisonFailure
```

Comment 3 Elliott Sales de Andrade 2025-08-08 19:32:28 UTC
Yea, that should be unrelated. I see it on koschei, so should be something recent.