You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
PEP 739 / build-details.json: c_api.headers does not include the pythonX.Y directory #134632
FWIU this means that build-details.json was broken on these platforms in the first place. Could you give me more details, i.e. what build-details.json contains, where Python.h is installed, and how to get that path?
@encukou The headers aren't installed into a running app on iOS or Android, so I think this test may need to be a skip (at least in the short term).
The headers will exist for a development environment though. However, as I flagged during the recent Core Team summit, the location isn't fixed - it essentially can't be "baked in" at time of compilation, because the install location could be wherever the user has downloaded/installed the distribution.
So - the short term fix will be a test skip; longer term, we need to determine what build-details.json should contain in a relocatable environment. I guess what we need here is the equivalent of $RPATH handling, but for the location of a relocatable Python install.
we need to determine what build-details.json should contain in a relocatable environment
iiuc, PEP-739 already allows relative paths to base_prefix, and base_prefix itself can be relative to the location of the file, so supposedly this should already be relocatable-friendly, no?
If that's the case, then it sounds like an update is required for build-details.json on iOS and Android; but at runtime, the test will always fail, so a skip is called for. Patch incoming shortly.
Activity
pythongh-134632: Fix `build-details.json` to use `INCLUDEPY` path
gh-134632: Fix `build-details.json` to use `INCLUDEPY` path (#134633)
pythongh-134632: Fix `build-details.json` to use `INCLUDEPY` path (py…
pythongh-134632: Fix `build-details.json` to use `INCLUDEPY` path (py…
[3.14] gh-134632: Fix `build-details.json` to use `INCLUDEPY` path (G…
encukou commentedon Jun 17, 2025
This broke Android & iOS, see e.g. here:
mgorny commentedon Jun 17, 2025
FWIU this means that
build-details.jsonwas broken on these platforms in the first place. Could you give me more details, i.e. whatbuild-details.jsoncontains, wherePython.his installed, and how to get that path?encukou commentedon Jun 17, 2025
@freakboy3742, do you have that info?
encukou commentedon Jun 17, 2025
I doubt the headers get installed after cross-compilation, but, let's wait for the experts :)
freakboy3742 commentedon Jun 17, 2025
@encukou The headers aren't installed into a running app on iOS or Android, so I think this test may need to be a skip (at least in the short term).
The headers will exist for a development environment though. However, as I flagged during the recent Core Team summit, the location isn't fixed - it essentially can't be "baked in" at time of compilation, because the install location could be wherever the user has downloaded/installed the distribution.
So - the short term fix will be a test skip; longer term, we need to determine what
build-details.jsonshould contain in a relocatable environment. I guess what we need here is the equivalent of $RPATH handling, but for the location of a relocatable Python install.itamaro commentedon Jun 18, 2025
iiuc, PEP-739 already allows relative paths to base_prefix, and base_prefix itself can be relative to the location of the file, so supposedly this should already be relocatable-friendly, no?
freakboy3742 commentedon Jun 18, 2025
If that's the case, then it sounds like an update is required for
build-details.jsonon iOS and Android; but at runtime, the test will always fail, so a skip is called for. Patch incoming shortly.gh-134632: Add iOS/Android test skip for C API check for headers. (#1…
pythongh-134632: Add iOS/Android test skip for C API check for header…
[3.14] gh-134632: Add iOS/Android test skip for C API check for heade…
mhsmith commentedon Jun 18, 2025
Actually the Android testbed does include the header files at runtime, for the benefit of the tests:
cpython/Android/testbed/app/build.gradle.kts
Lines 188 to 192 in 1c7efaf
But the runtime path will still be different to the build environment, so this will only work if relative paths are used.
pythongh-134632: Fix `build-details.json` to use `INCLUDEPY` path (py…
pythongh-134632: Add iOS/Android test skip for C API check for header…
itamaro commentedon Jun 21, 2025
Anything left to do here?
pythongh-134632: Fix `build-details.json` to use `INCLUDEPY` path (py…
pythongh-134632: Add iOS/Android test skip for C API check for header…
pythongh-134632: Fix `build-details.json` to use `INCLUDEPY` path (py…
pythongh-134632: Add iOS/Android test skip for C API check for header…
hugovk commentedon Aug 8, 2025
Assuming not, thanks all!
pythongh-134632: Fix `build-details.json` to use `INCLUDEPY` path (py…
pythongh-134632: Add iOS/Android test skip for C API check for header…