From ebeb9707d5030f2838ad3030ee373cbbd6d560bd Mon Sep 17 00:00:00 2001 From: Jake Forster Date: Fri, 4 Jul 2025 17:11:30 +0930 Subject: [PATCH] gnu: python-matplotlib: Patch dlopen so MPLBACKEND is not overridden. Fixes . 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 --- gnu/packages/python-xyz.scm | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm index 64edddcd2b97f2098eb928a996ad367e6c4dc2b9..724efd051bef3fd706177422e9912a05a6d88abd 100644 --- a/gnu/packages/python-xyz.scm +++ b/gnu/packages/python-xyz.scm @@ -11424,6 +11424,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.