[WIP: FIX] python 3.15.0rc2 (host/run + PREFIX/lib) - #261
skupr-anaconda wants to merge 11 commits into
Conversation
PKG-15601 C16+C17: move unix shared libs into libpython (install_shared.sh) and static into install_static.sh so python no longer ships .so/.dylib/.a. SYSCONFIG from the shared tree.
Keep CF conda-forge#565 SYSCONFIG note and CF "empty on windows". Drop Install-only CXX comments that CF does not have on those lines.
This reverts commit ae8fbf7.
The build-time interpreter links to libpython at PREFIX/lib, but the dylib has not been installed there when PGO runs checksharedmods. Temporarily link it from build-shared and remove the link afterward.
Keep python pin on libpython build so the shared install can copy from the python output without a host/run cycle. mkdir PREFIX/lib before cp. Metapackages use explicit run: keys.
Win empty-package check rejected python in build with host/run empty. Unix libpython tests need Python.h and python3-config at test time only. Keep host/run empty so libpython stays an independent output.
install_shared.sh needs python's build-shared/ in SRC_DIR. Pin python on unix build only so conda-build orders that output first. Keep host/run empty. Skip the empty Windows libpython output.
Reviewer notes: purpose + staging artifact layoutInspected graph What this PR is forSplit the Unix shared library out of
The interpreter does not Dest: Graph (this SHA)50 completed / 3 failed. Two linux-64 tests ( Staging matrix (
|
| subdir | python |
libpython |
libpython-static |
notes |
|---|---|---|---|---|
| linux-64, linux-aarch64, osx-arm64 | GIL + FT | GIL + FT | GIL + FT | |
| win-64 | GIL + FT | — skipped | empty (0 files) | DLLs inside python |
| osx-64, win-arm64 | — | — | — | empty indexes |
| noarch | — | — | — | python-gil, python-freethreading, python-jit (__unix / __win) |
libpython (new)
linux-64 GIL (hb63ce8a_101_cp315, ~12 MB .conda):
lib/libpython3.15.so.1.0 ~40 MB SONAME libpython3.15.so.1.0 RPATH $ORIGIN/.
lib/libpython3.15.so → libpython3.15.so.1.0
lib/libpython3.so ~15 KB stub, NEEDED libpython3.15.so.1.0
linux-64 FT: libpython3.15t.so{,.1.0} + libpython3.so.
osx-arm64 GIL: lib/libpython3.15.dylib + lib/libpython3.dylib only (no .1.0).
python
Does not contain libpython*. Does not depend on libpython.
run_exports: python_abi 3.15.* *_cp315 (FT: *_cp315t + track_features: free-threading). Frozen AR: tk 9.0.4, openssl 3.5.8, glibc 2.28, PSF-2.0.
linux-64 GIL (h67b78d7_101_cp315, 2814 files):
bin/{python,python3,python3.15,python3.15-config,python3-config,idle3,idle3.15,pydoc,pydoc3,pydoc3.15}include/(296),lib/python3.15/(791.py+ 1555.pyc+ 76lib-dynload/*.so)compiler_compat/{ld,README}, manpages- Interpreter: PIE ELF, NEEDED pthread/dl/util/m/gcc_s/libc only, RPATH
$ORIGIN/../lib, not stripped (debug_info)
linux-64 FT: same under lib/python3.15t/, extra bin/python3.15t{,-config}.
win-64 GIL (2013 files): python.exe / pythonw.exe / python3.dll / python315.dll (+ pdbs), libs/python3.lib + python315.lib, 37 .pyd in lib/python/lib-dynload/ (no DLLs/).
libpython-static
linux-64 GIL: lib/libpython3.15.a, lib/libpython3.15.nolto.a, lib/python3.15/config-3.15-x86_64-linux-gnu/libpython3.15.a (~387 MB payload).
win-64: 0 files (unix-only install_static.sh; empty artifact still published).
Noarch
| package | files | role |
|---|---|---|
python-gil |
0 | metapackage: python 3.15.0rc2.* + python_abi * *_cp315 |
python-freethreading |
0 | same + *_cp315t |
python-jit unix |
2 | activate/deactivate → PYTHON_JIT=1 |
python-jit win |
4 | same + .bat |
Bottom line for review
Layout matches the intended CF-style split. Shared lib is out of python and into libpython on Unix. Empty win libpython (skipped) / empty win libpython-static / empty ABI metapackages are by recipe. Remaining CI red is the 429 on two tests, not missing files in libpython.
Destination channel: ad-testing/label/py315
Links
Explanation of changes:
pipefail, stricter prefix-replacement NEEDED check, osx PGO dylib link,anaconda.yamllibpython).mkdir -p ${PREFIX}/libbefore copying shared libs ininstall_shared.sh.pin_subpackage('python')stays on build;host: []andrun: [](no host/run cycle).python-freethreading/python-gil/python-jituse explicitrun:keys.Notes:
07ffe00cwas HTTP 403 on pkgs/main (infra), not this delta.