mirror of
https://github.com/python/cpython.git
synced 2025-08-03 08:34:29 +00:00
[3.13] gh-120522: Add a --with-app-store-compliance
configure option to patch out problematic code (GH-120984) (#121173)
gh-120522: Add a `--with-app-store-compliance` configure option to patch out problematic code (GH-120984)
* Add --app-store-compliance configuration option.
* Added blurb.
* Correct tab-vs-spaces formatting issue.
* Correct source file name in docs.
* Correct source code reference in Mac docs
* Only apply the patch forward, and ensure the working directory is correct.
* Make patching reslient to multiple builds.
* Documentation fixes found during review
* Documentation and configure.ac syntax improvements
* Regenerate configure script.
* Silence the patch echo output.
---------
(cherry picked from commit 48cd104b0c
)
Co-authored-by: Russell Keith-Magee <russell@keith-magee.com>
Co-authored-by: Nice Zombies <nineteendo19d0@gmail.com>
Co-authored-by: Alyssa Coghlan <ncoghlan@gmail.com>
Co-authored-by: Erlend E. Aasland <erlend.aasland@protonmail.com>
This commit is contained in:
parent
00b071137b
commit
0dfb437a32
9 changed files with 238 additions and 2 deletions
58
configure.ac
58
configure.ac
|
@ -695,6 +695,64 @@ AC_SUBST([INSTALLTARGETS])
|
|||
AC_DEFINE_UNQUOTED([_PYTHONFRAMEWORK], ["${PYTHONFRAMEWORK}"],
|
||||
[framework name])
|
||||
|
||||
dnl quadrigraphs "@<:@" and "@:>@" produce "[" and "]" in the output
|
||||
AC_MSG_CHECKING([for --with-app-store-compliance])
|
||||
AC_ARG_WITH(
|
||||
[app_store_compliance],
|
||||
[AS_HELP_STRING(
|
||||
[--with-app-store-compliance=@<:@PATCH-FILE@:>@],
|
||||
[Enable any patches required for compiliance with app stores.
|
||||
Optional PATCH-FILE specifies the custom patch to apply.]
|
||||
)],[
|
||||
case "$withval" in
|
||||
yes)
|
||||
case $ac_sys_system in
|
||||
Darwin|iOS)
|
||||
# iOS is able to share the macOS patch
|
||||
APP_STORE_COMPLIANCE_PATCH="Mac/Resources/app-store-compliance.patch"
|
||||
APP_STORE_COMPLIANCE_PATCH_TARGET="build/app-store-compliant"
|
||||
APP_STORE_COMPLIANCE_PATCH_FLAGS=
|
||||
;;
|
||||
*) AC_MSG_ERROR([no default app store compliance patch available for $ac_sys_system]) ;;
|
||||
esac
|
||||
AC_MSG_RESULT([applying default app store compliance patch])
|
||||
;;
|
||||
*)
|
||||
APP_STORE_COMPLIANCE_PATCH="${withval}"
|
||||
APP_STORE_COMPLIANCE_PATCH_TARGET="build/app-store-compliant"
|
||||
APP_STORE_COMPLIANCE_PATCH_FLAGS=
|
||||
AC_MSG_RESULT([applying custom app store compliance patch])
|
||||
;;
|
||||
esac
|
||||
],[
|
||||
case $ac_sys_system in
|
||||
iOS)
|
||||
# Always apply the compliance patch on iOS; we can use the macOS patch
|
||||
APP_STORE_COMPLIANCE_PATCH="Mac/Resources/app-store-compliance.patch"
|
||||
APP_STORE_COMPLIANCE_PATCH_TARGET="build/app-store-compliant"
|
||||
APP_STORE_COMPLIANCE_PATCH_FLAGS=
|
||||
AC_MSG_RESULT([applying default app store compliance patch])
|
||||
;;
|
||||
Darwin)
|
||||
# Always *check* the compliance patch on macOS
|
||||
APP_STORE_COMPLIANCE_PATCH="Mac/Resources/app-store-compliance.patch"
|
||||
APP_STORE_COMPLIANCE_PATCH_TARGET="build/app-store-compliant"
|
||||
APP_STORE_COMPLIANCE_PATCH_FLAGS="--dry-run"
|
||||
AC_MSG_RESULT([checking (not applying) default app store compliance patch])
|
||||
;;
|
||||
*)
|
||||
# No app compliance patching on any other platform
|
||||
APP_STORE_COMPLIANCE_PATCH=
|
||||
APP_STORE_COMPLIANCE_PATCH_TARGET=
|
||||
APP_STORE_COMPLIANCE_PATCH_FLAGS=
|
||||
AC_MSG_RESULT([not patching for app store compliance])
|
||||
;;
|
||||
esac
|
||||
])
|
||||
AC_SUBST([APP_STORE_COMPLIANCE_PATCH])
|
||||
AC_SUBST([APP_STORE_COMPLIANCE_PATCH_TARGET])
|
||||
AC_SUBST([APP_STORE_COMPLIANCE_PATCH_FLAGS])
|
||||
|
||||
AC_SUBST([_PYTHON_HOST_PLATFORM])
|
||||
if test "$cross_compiling" = yes; then
|
||||
case "$host" in
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue