Repository navigation
iOS testbed clone breaks on some symlinks #130025
Copy link
Copy link
Closed
Labels
3.13only security fixesonly security fixes3.14bugs and security fixesbugs and security fixesOS-iostype-bugAn unexpected behavior, bug, or errorAn unexpected behavior, bug, or error
Description
Activity
- added3.13only security fixesonly security fixes3.14bugs and security fixesbugs and security fixesneeds backport to 3.13only security fixesonly security fixestype-bugAn unexpected behavior, bug, or errorAn unexpected behavior, bug, or error
on Feb 12, 2025 (Note: we use the plain X.Y labels on issues and the "needs backport to X.Y" labels on PRs)
- addedbuildThe build process and cross-buildThe build process and cross-buildand removedbuildThe build process and cross-buildThe build process and cross-build
on Feb 12, 2025 - added a commit that references this issue
on Feb 13, 2025 - added 3 commits that reference this issue
on Feb 13, 2025 - added 3 commits that reference this issue
on Mar 16, 2025
Metadata
Metadata
Assignees
Labels
3.13only security fixesonly security fixes3.14bugs and security fixesbugs and security fixesOS-iostype-bugAn unexpected behavior, bug, or errorAn unexpected behavior, bug, or error
Bug report
Bug description:
The iOS testbed project is able to use symlinks when referring to the XCframework (or simulator Framework slice of an XCframework). This saves significant disk space and startup time as the need to copy the full framework is eliminated.
The
clonesubcommand of the testbed will duplicate this symlink; or, if a path to an XCframework (or simulator slice) is provided, that framework will be used instead.However:
To replicate, generate an arm64 simulator build, then:
python iOS/testbed clone testbed-1 --framework cross-build/arm64-apple-ios-simulator/iOS/Frameworks/arm64-iphonesimulator(substitute path to simulator framework as appropriate)python testbed-1 clone tmp/testbed-2tmp/testbed-2/Python.xcframework/ios-arm64_x86_64-simulator- it will be an invalid symlink.python tmp/testbed-2 clone tmp/testbed-3- this will fail because testbed-2 doesn't contain a simulator framework.python tmp/testbed-2 clone tmp/testbed-3 --framework cross-build/arm64-apple-ios-simulator/iOS/Frameworks/arm64-iphonesimulator- this will fail with a FileNotFoundError looking for.../cpython/tmp/cross-build/arm64-apple-ios-simulator/iOS/Frameworks/arm64-iphonesimulator, which is what the testbed-2 framework symlink would resolve to (but doesn't exist).CPython versions tested on:
3.14
Operating systems tested on:
Other
Linked PRs