gnu: python-matplotlib: Patch dlopen so MPLBACKEND is not overridden.

Fixes <https://issues.guix.gnu.org/70687>.

In Python, importing 'matplotlib.pyplot' sets the backend used by Matplotlib
to Agg unless it was set to WebAgg or nbAgg.  This is because it incorrectly
determines that no event loop can be started due to a failed dlopen call for
'libX11.so.6'.  This is fixed by patching the dlopen path.

* gnu/packages/python-xyz.scm (python-matplotlib) [arguments]
<#:phases>: Add 'patch-dlopen.

Change-Id: I3e45c9a2921374e3b16cfcbd8e3e1e91780da306
Signed-off-by: Sharlatan Hellseher <sharlatanus@gmail.com>
This commit is contained in:
Jake Forster 2025-07-04 17:11:30 +09:30 committed by Sharlatan Hellseher
parent a8e2ff0634
commit 649ef28d14
No known key found for this signature in database
GPG key ID: 76D727BFF62CD2B5

View file

@ -11448,6 +11448,11 @@ reason=\"unknown minor image differences\")\n" match)))
;; non-deterministically when run in parallel (see:
;; https://github.com/matplotlib/matplotlib/issues/22992).
"lib/matplotlib/tests/test_compare_images.py"))))
(add-after 'unpack 'patch-dlopen
(lambda* (#:key inputs #:allow-other-keys)
(substitute* "src/_c_internal_utils.c"
(("libX11.so.6")
(search-input-file inputs "lib/libX11.so.6")))))
(add-before 'build 'configure-environment
(lambda* (#:key inputs #:allow-other-keys)
;; Fix rounding errors when using the x87 FPU.