Skip to content

fix specifying meson options to pass via --config-settings in pip install for matplotlib 3.9+#23872

Merged
Crivella merged 1 commit intoeasybuilders:developfrom
Flamefire:20250915171551_new_pr_matplotlib392
Sep 16, 2025
Merged

fix specifying meson options to pass via --config-settings in pip install for matplotlib 3.9+#23872
Crivella merged 1 commit intoeasybuilders:developfrom
Flamefire:20250915171551_new_pr_matplotlib392

Conversation

@Flamefire
Copy link
Copy Markdown
Contributor

@Flamefire Flamefire commented Sep 15, 2025

(created using eb --new-pr)

It needs to use installopts to pass those arguments to pip install

Also remove faulty && in options and the unnecessary env variable setting

This issue was accidentally introduced in #21299 but got unnoticed because configopts is not used and matplotlib just builds a custom version of the dependencies in absence of those.

@Thyre Thyre added 2024a issues & PRs related to 2024a common toolchains 2025a issues & PRs related to 2025a common toolchains 2025b issues & PRs related to 2025b common toolchains labels Sep 15, 2025
@Crivella
Copy link
Copy Markdown
Contributor

Crivella commented Sep 16, 2025

Can confirm the behavior

Without fix

  Run-time dependency python found: YES 3.13
  Run-time dependency pybind11 found: YES 2.13.6
  Downloading freetype-2.6.1 source from https://download.savannah.gnu.org/releases/freetype/freetype-old/freetype-2.6.1.tar.gz

  Executing subproject freetype-2.6.1

  freetype-2.6.1| Project name: freetype2
  freetype-2.6.1| Project version: 2.6.1
  freetype-2.6.1| C compiler for the host machine: gcc (gcc 14.2.0 "gcc (GCC) 14.2.0")
  freetype-2.6.1| C linker for the host machine: gcc ld.bfd 2.42
  freetype-2.6.1| Has header "unistd.h" : YES
  freetype-2.6.1| Has header "fcntl.h" : YES
  freetype-2.6.1| Has header "stdint.h" : YES
  freetype-2.6.1| Configuring ftconfig.h using configuration
  freetype-2.6.1| Configuring ftoption.h using configuration
  freetype-2.6.1| Build targets in project: 2
  freetype-2.6.1| Subproject freetype-2.6.1 finished.

  Downloading qhull source from https://github.com/qhull/qhull/archive/v8.0.2/qhull-8.0.2.tar.gz

  Executing subproject qhull

  qhull| Project name: qhull
  qhull| Project version: 8.0.2
  qhull| C compiler for the host machine: gcc (gcc 14.2.0 "gcc (GCC) 14.2.0")
  qhull| C linker for the host machine: gcc ld.bfd 2.42
  qhull| Build targets in project: 3
  qhull| Subproject qhull finished.

  Run-time dependency dl found: YES
  Configuring _version.py using configuration
  Program /home/crivella/.local/easybuild/build/matplotlib/3.10.3/gfbf-2025a/matplotlib/matplotlib-3.10.3/tools/generate_matplotlibrc.py found: YES (/home/crivella/.local/easybuild/build/matplotlib/3.10.3/gfbf-2025a/matplotlib/matplotlib-3.10.3/tools/generate_matplotlibrc.py)
  Build targets in project: 12

  matplotlib 3.10.3

    Subprojects
      freetype-2.6.1: YES
      qhull         : YES

    User defined options
      Native files  : /home/crivella/.local/easybuild/build/matplotlib/3.10.3/gfbf-2025a/matplotlib/matplotlib-3.10.3/.mesonpy-tb4mzuei/meson-python-native-file.ini
      b_ndebug      : if-release
      b_vscrt       : md
      buildtype     : release

WITH fix

  Found pkg-config: YES (/home/crivella/.local/easybuild/software/pkgconf/2.3.0-GCCcore-14.2.0/bin/pkgconf) 2.3.0
  Run-time dependency python found: YES 3.13
  Run-time dependency pybind11 found: YES 2.13.6
  Run-time dependency freetype2 found: YES 26.2.20
  Run-time dependency qhull_r found: YES 8.0.2
  Run-time dependency dl found: YES
  Configuring _version.py using configuration
  Program /home/crivella/.local/easybuild/build/matplotlib/3.10.3/gfbf-2025a/matplotlib/matplotlib-3.10.3/tools/generate_matplotlibrc.py found: YES (/home/crivella/.local/easybuild/build/matplotlib/3.10.3/gfbf-2025a/matplotlib/matplotlib-3.10.3/tools/generate_matplotlibrc.py)
  Build targets in project: 10

  matplotlib 3.10.3

    User defined options
      Native files   : /home/crivella/.local/easybuild/build/matplotlib/3.10.3/gfbf-2025a/matplotlib/matplotlib-3.10.3/.mesonpy-7i82vlvo/meson-python-native-file.ini
      b_ndebug       : if-release
      b_vscrt        : md
      buildtype      : release
      system-freetype: true
      system-qhull   : true

EDIT: Similar for the other versions

@Crivella Crivella added bug fix and removed change labels Sep 16, 2025
@Crivella
Copy link
Copy Markdown
Contributor

@boegelbot please test @ jsc-zen3
EB_ARGS="--installpath /tmp/$USER/pr-23872"

@boegelbot
Copy link
Copy Markdown
Collaborator

@Crivella: Request for testing this PR well received on jsczen3l1.int.jsc-zen3.fz-juelich.de

PR test command 'if [[ develop != 'develop' ]]; then EB_BRANCH=develop ./easybuild_develop.sh 2> /dev/null 1>&2; EB_PREFIX=/home/boegelbot/easybuild/develop source init_env_easybuild_develop.sh; fi; EB_PR=23872 EB_ARGS="--installpath /tmp/$USER/pr-23872" EB_CONTAINER= EB_REPO=easybuild-easyconfigs EB_BRANCH=develop /opt/software/slurm/bin/sbatch --job-name test_PR_23872 --ntasks=8 ~/boegelbot/eb_from_pr_upload_jsc-zen3.sh' executed!

  • exit code: 0
  • output:
Submitted batch job 7962

Test results coming soon (I hope)...

Details

- notification for comment with ID 3296640085 processed

Message to humans: this is just bookkeeping information for me,
it is of no use to you (unless you think I have a bug, which I don't).

@Crivella
Copy link
Copy Markdown
Contributor

Test report by @Crivella
SUCCESS
Build succeeded for 3 out of 3 (3 easyconfigs in total)
crivella-desktop - Linux Ubuntu 22.04.5 LTS (Jammy Jellyfish), x86_64, 13th Gen Intel(R) Core(TM) i9-13900K (skylake), Python 3.11.13
See https://gist.github.com/Crivella/89ae226f177e32c47cde8c4fba5b92c8 for a full test report.

@boegelbot
Copy link
Copy Markdown
Collaborator

Test report by @boegelbot
SUCCESS
Build succeeded for 3 out of 3 (3 easyconfigs in total)
jsczen3c2.int.jsc-zen3.fz-juelich.de - Linux Rocky Linux 9.6, x86_64, AMD EPYC-Milan Processor (zen3), Python 3.9.21
See https://gist.github.com/boegelbot/c981380e608ee05fd16e53998d46f3b5 for a full test report.

Copy link
Copy Markdown
Contributor

@Crivella Crivella left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@Crivella Crivella added this to the next release (5.1.2) milestone Sep 16, 2025
@Crivella
Copy link
Copy Markdown
Contributor

Going in, thanks @Flamefire!

@Crivella Crivella merged commit f865a9b into easybuilders:develop Sep 16, 2025
8 checks passed
@Flamefire Flamefire deleted the 20250915171551_new_pr_matplotlib392 branch September 16, 2025 09:25
@boegel boegel changed the title Fix meson options for matplotlib 3.9+ fix specifying meson options to pass via --config-settings in pip install for matplotlib 3.9+ Sep 26, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

2024a issues & PRs related to 2024a common toolchains 2025a issues & PRs related to 2025a common toolchains 2025b issues & PRs related to 2025b common toolchains bug fix

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants