From 3aed3ad930de095162f24704cfb0aecbc8570f81 Mon Sep 17 00:00:00 2001 From: Hood Chatham Date: Sat, 25 Jul 2026 09:44:06 +0200 Subject: [PATCH 1/3] Explicitly disable openmp in healpy recipe Emscripten 6.0.0 added openmp support but it requires pthreads which fails to link. Explicitly turn it off. --- packages/healpy/meta.yaml | 1 + packages/healpy/patches/0004-disable-openmp.patch | 15 +++++++++++++++ 2 files changed, 16 insertions(+) create mode 100644 packages/healpy/patches/0004-disable-openmp.patch diff --git a/packages/healpy/meta.yaml b/packages/healpy/meta.yaml index af1816a1..16bdc565 100644 --- a/packages/healpy/meta.yaml +++ b/packages/healpy/meta.yaml @@ -10,6 +10,7 @@ source: - patches/0001-build-no-binaries.patch - patches/0002-without-zlib-check-fortran.patch - patches/0003-install-path.patch + - patches/0004-disable-openmp.patch requirements: host: - libzlib diff --git a/packages/healpy/patches/0004-disable-openmp.patch b/packages/healpy/patches/0004-disable-openmp.patch new file mode 100644 index 00000000..b9f7e3d5 --- /dev/null +++ b/packages/healpy/patches/0004-disable-openmp.patch @@ -0,0 +1,15 @@ +Emscripten 6 added OpenMP support, so autoconf's AC_OPENMP check now succeeds +and healpix_cxx's configure appends -fopenmp to CFLAGS/CXXFLAGS. On Emscripten +`-fopenmp` implies pthreads which is causes a link error. + +diff --git a/setup.py b/setup.py +--- a/setup.py ++++ b/setup.py +@@ -173,6 +173,7 @@ + "--disable-maintainer-mode", + "--without-zlib-check", + "--without-fortran", ++ "--disable-openmp", + ] + + log.info("%s", " ".join(cmd)) From 2484bb5e4bb30944b119cfa70c6df9d3af170d47 Mon Sep 17 00:00:00 2001 From: Hood Chatham Date: Thu, 23 Jul 2026 22:39:28 +0200 Subject: [PATCH 2/3] Use Emscripten 6.0.1 xbuildenv --- .github/workflows/build.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 48906cfb..464ad790 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -32,6 +32,7 @@ env: CCACHE_DIR: /tmp/.ccache CCACHE_CACHE_NUMBER: 0 FORCE_COLOR: 3 + DEFAULT_CROSS_BUILD_ENV_URL: https://github.com/pyodide/pyodide-build-environment-nightly/releases/download/20260722-abi_2026_5/xbuildenv.tar.bz2 jobs: check-scipy-test-trigger: From 3f20a70de9a1a8f8e4ceca45da1b4ca8fff71690 Mon Sep 17 00:00:00 2001 From: Hood Chatham Date: Fri, 24 Jul 2026 17:02:59 +0200 Subject: [PATCH 3/3] Drop matplotlib freetype patch --- packages/matplotlib/meta.yaml | 1 - .../patches/0005-Use-system-freetype.patch | 30 ------------------- 2 files changed, 31 deletions(-) delete mode 100644 packages/matplotlib/patches/0005-Use-system-freetype.patch diff --git a/packages/matplotlib/meta.yaml b/packages/matplotlib/meta.yaml index c9890a8a..1b20be2e 100644 --- a/packages/matplotlib/meta.yaml +++ b/packages/matplotlib/meta.yaml @@ -15,7 +15,6 @@ source: - patches/0002-Hardcode-font-cache-path.patch - patches/0003-Pyodide-webagg-backend.patch - patches/0004-Fix-32bit-casting.patch - - patches/0005-Use-system-freetype.patch build: backend-flags: | diff --git a/packages/matplotlib/patches/0005-Use-system-freetype.patch b/packages/matplotlib/patches/0005-Use-system-freetype.patch deleted file mode 100644 index a608bb43..00000000 --- a/packages/matplotlib/patches/0005-Use-system-freetype.patch +++ /dev/null @@ -1,30 +0,0 @@ -From 5434b5e99645f6b166a66986f6aeefd0902ace99 Mon Sep 17 00:00:00 2001 -From: ryanking13 -Date: Tue, 31 Mar 2026 20:00:13 +0900 -Subject: [PATCH 1/1] Use system freetype - -By default, matplotlib uses its own bundled version of freetype, but it has function signature mismatch -issue. So we switch to using Emscripten-provided system freetype. - -TODO: Use matplotlib's bundled freetype when the issue is fixed. - ---- - extern/meson.build | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/extern/meson.build b/extern/meson.build -index 5463183a90..0b7de4224b 100644 ---- a/extern/meson.build -+++ b/extern/meson.build -@@ -7,7 +7,7 @@ subdir('agg24-svn') - # For FreeType>=2.4, there is a conversion table in docs/VERSIONS.txt in the - # FreeType source tree. - if get_option('system-freetype') -- freetype_dep = dependency('freetype2', version: '>=9.11.3') -+ freetype_dep = dependency('freetype') - else - # This is the version of FreeType to use when building a local version. It - # must match the value in `lib/matplotlib.__init__.py`. Also update the docs --- -2.43.0 -