From b530c1e704b40cc3981cd2cfa1a7d2d16a1c6203 Mon Sep 17 00:00:00 2001 From: MilesCranmerBot Date: Tue, 13 Oct 2026 16:21:18 +0100 Subject: [PATCH 1/2] [3.13] libpython: drop the unused C++ compiler Backport of #950. The shared library links no C++ runtime (libpython3.13.so.1.0 needs only libc, libm, libpthread, libdl and libutil), but the compiler's run-exports made every libpython build require libstdcxx >=15 on Linux and libcxx on macOS. Because python pins libpython exactly, environments capped below libstdcxx 15 (e.g. Julia 1.10 and 1.12 via CondaPkg) cannot install current python 3.13 builds. Co-authored-by: Miles Cranmer --- recipe/meta.yaml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/recipe/meta.yaml b/recipe/meta.yaml index 3f49c6ea7..d0c6fc3ba 100644 --- a/recipe/meta.yaml +++ b/recipe/meta.yaml @@ -4,7 +4,7 @@ {% set ver2 = '.'.join(version.split('.')[0:2]) %} {% set ver2nd = ''.join(version.split('.')[0:2]) %} {% set ver3nd = ''.join(version.split('.')[0:3]) %} -{% set build_number = 1 %} +{% set build_number = 2 %} # this makes the linter happy {% set channel_targets = channel_targets or 'conda-forge main' %} @@ -340,7 +340,6 @@ outputs: build: - {{ stdlib('c') }} - {{ compiler('c') }} - - {{ compiler('cxx') }} test: commands: - VER=${PKG_VERSION%.*} # [not win] From 0adfb9afbe585ab70b44912260ff39c215cd6ab0 Mon Sep 17 00:00:00 2001 From: MilesCranmerBot Date: Tue, 13 Oct 2026 16:21:18 +0100 Subject: [PATCH 2/2] [3.13] libpython: create $PREFIX/lib before copying the library libpython has no host requirements on this branch, so on macOS the host prefix was only populated through the C++ compiler's libcxx run-export. Without it, lib/ does not exist and cp fails (as seen on #950). Co-authored-by: Miles Cranmer --- recipe/install_shared.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/recipe/install_shared.sh b/recipe/install_shared.sh index 5dafbd13f..3a3323fa3 100644 --- a/recipe/install_shared.sh +++ b/recipe/install_shared.sh @@ -22,6 +22,7 @@ VERABI_NO_DBG=${VER}${THREAD} # Install the shared library (for people who embed Python only, e.g. GDB). # Linking module extensions to this on Linux is redundant (but harmless). # Linking module extensions to this on Darwin is harmful (multiply defined symbols). +mkdir -p ${PREFIX}/lib shopt -s extglob cp -pf ${_buildd_shared}/libpython*${SHLIB_EXT}!(.lto) ${PREFIX}/lib/ shopt -u extglob