aboutsummaryrefslogtreecommitdiffhomepage
path: root/example/ios
diff options
context:
space:
mode:
authorVincent Neo <23420208+vincentneo@users.noreply.github.com>2023-06-30 15:10:39 +0800
committerAliaksei Levin <22669599+levlam@users.noreply.github.com>2023-07-31 00:57:28 +0300
commit6a6cd8af7642f396cb508213330ba1a08228e95d (patch)
treec8d984260c4534edf744083dccc7b576ec0f9c78 /example/ios
parent5b06e003fdb9ffe3de31003d437d9adb9fe002fd (diff)
update example to build openssl 3.1.1
Diffstat (limited to 'example/ios')
-rw-r--r--example/ios/Python-Apple-support.patch139
-rwxr-xr-xexample/ios/build-openssl.sh9
-rw-r--r--example/ios/openssl-1.0.2n-darwin-arm64.patch12
3 files changed, 70 insertions, 90 deletions
diff --git a/example/ios/Python-Apple-support.patch b/example/ios/Python-Apple-support.patch
index 3650d008b..8ee2a8e31 100644
--- a/example/ios/Python-Apple-support.patch
+++ b/example/ios/Python-Apple-support.patch
@@ -1,9 +1,9 @@
diff --git a/Makefile b/Makefile
-index 695be54..eda7b0d 100644
+index a1d13e9..a0841cf 100644
--- a/Makefile
+++ b/Makefile
-@@ -7,8 +7,11 @@
- # - watchOS - build everything for watchOS
+@@ -18,8 +18,11 @@
+ # - OpenSSL - build OpenSSL for all platforms
# - OpenSSL-macOS - build OpenSSL for macOS
# - OpenSSL-iOS - build OpenSSL for iOS
+# - OpenSSL-iOS-simulator - build OpenSSL for iOS-simulator
@@ -11,95 +11,88 @@ index 695be54..eda7b0d 100644
+# - OpenSSL-tvOS-simulator - build OpenSSL for tvOS-simulator
# - OpenSSL-watchOS - build OpenSSL for watchOS
+# - OpenSSL-watchOS-simulator - build OpenSSL for watchOS-simulator
- # - BZip2-macOS - build BZip2 for macOS
- # - BZip2-iOS - build BZip2 for iOS
- # - BZip2-tvOS - build BZip2 for tvOS
-@@ -30,37 +33,52 @@ PYTHON_VERSION=2.7.14
- PYTHON_VER=$(basename $(PYTHON_VERSION))
+ # - libFFI - build libFFI for all platforms (except macOS)
+ # - libFFI-iOS - build libFFI for iOS
+ # - libFFI-tvOS - build libFFI for tvOS
+@@ -50,7 +53,7 @@ XZ_VERSION=5.4.2
+ # Preference is to use OpenSSL 3; however, Cryptography 3.4.8 (and
+ # probably some other packages as well) only works with 1.1.1, so
+ # we need to preserve the ability to build the older OpenSSL (for now...)
+-OPENSSL_VERSION=3.1.0
++OPENSSL_VERSION=3.1.1
+ # OPENSSL_VERSION_NUMBER=1.1.1
+ # OPENSSL_REVISION=q
+ # OPENSSL_VERSION=$(OPENSSL_VERSION_NUMBER)$(OPENSSL_REVISION)
+@@ -59,7 +62,7 @@ LIBFFI_VERSION=3.4.2
- OPENSSL_VERSION_NUMBER=1.0.2
--OPENSSL_REVISION=n
-+OPENSSL_REVISION=u
- OPENSSL_VERSION=$(OPENSSL_VERSION_NUMBER)$(OPENSSL_REVISION)
+ # Supported OS and dependencies
+ DEPENDENCIES=BZip2 XZ OpenSSL libFFI
+-OS_LIST=macOS iOS tvOS watchOS
++OS_LIST=macOS iOS iOS-simulator tvOS tvOS-simulator watchOS watchOS-simulator
- BZIP2_VERSION=1.0.6
+ CURL_FLAGS=--disable --fail --location --create-dirs --progress-bar
- # Supported OS
--OS=macOS iOS tvOS watchOS
-+OS=macOS iOS iOS-simulator tvOS tvOS-simulator watchOS watchOS-simulator
-
- # macOS targets
--TARGETS-macOS=macosx.x86_64
-+TARGETS-macOS=macosx.arm64 macosx.x86_64
-+PYTHON_TARGETS-macOS=macOS
- CFLAGS-macOS=-mmacosx-version-min=$(MACOSX_DEPLOYMENT_TARGET)
+@@ -69,22 +72,34 @@ VERSION_MIN-macOS=10.15
+ CFLAGS-macOS=-mmacosx-version-min=$(VERSION_MIN-macOS)
# iOS targets
--TARGETS-iOS=iphonesimulator.x86_64 iphonesimulator.i386 iphoneos.armv7 iphoneos.armv7s iphoneos.arm64
-+TARGETS-iOS=iphoneos.armv7 iphoneos.armv7s iphoneos.arm64
- CFLAGS-iOS=-mios-version-min=7.0
--CFLAGS-iphoneos.armv7=-fembed-bitcode
--CFLAGS-iphoneos.armv7s=-fembed-bitcode
--CFLAGS-iphoneos.arm64=-fembed-bitcode
-+CFLAGS-iphoneos.armv7=
-+CFLAGS-iphoneos.armv7s=
-+CFLAGS-iphoneos.arm64=
-+
-+# iOS-simulator targets
-+TARGETS-iOS-simulator=iphonesimulator.x86_64 iphonesimulator.i386 iphonesimulator.arm64
-+CFLAGS-iOS-simulator=-mios-simulator-version-min=7.0
+-TARGETS-iOS=iphonesimulator.x86_64 iphonesimulator.arm64 iphoneos.arm64
++TARGETS-iOS=iphoneos.arm64
+ VERSION_MIN-iOS=12.0
+ CFLAGS-iOS=-mios-version-min=$(VERSION_MIN-iOS)
++# iOS-simulator targets
++TARGETS-iOS-simulator=iphonesimulator.x86_64 iphonesimulator.arm64
++CFLAGS-iOS-simulator=-mios-simulator-version-min=$(VERSION_MIN-iOS)
++
# tvOS targets
--TARGETS-tvOS=appletvsimulator.x86_64 appletvos.arm64
+-TARGETS-tvOS=appletvsimulator.x86_64 appletvsimulator.arm64 appletvos.arm64
+TARGETS-tvOS=appletvos.arm64
- CFLAGS-tvOS=-mtvos-version-min=9.0
--CFLAGS-appletvos.arm64=-fembed-bitcode
-+CFLAGS-appletvos.arm64=
+ VERSION_MIN-tvOS=9.0
+ CFLAGS-tvOS=-mtvos-version-min=$(VERSION_MIN-tvOS)
PYTHON_CONFIGURE-tvOS=ac_cv_func_sigaltstack=no
+# tvOS-simulator targets
+TARGETS-tvOS-simulator=appletvsimulator.x86_64 appletvsimulator.arm64
-+CFLAGS-tvOS-simulator=-mtvos-simulator-version-min=9.0
++CFLAGS-tvOS-simulator=-mtvos-simulator-version-min=$(VERSION_MIN-tvOS)
+
# watchOS targets
--TARGETS-watchOS=watchsimulator.i386 watchos.armv7k
+-TARGETS-watchOS=watchsimulator.x86_64 watchsimulator.arm64 watchos.arm64_32
+TARGETS-watchOS=watchos.armv7k watchos.arm64_32 watchos.arm64
- CFLAGS-watchOS=-mwatchos-version-min=4.0
--CFLAGS-watchos.armv7k=-fembed-bitcode
-+CFLAGS-watchos.armv7k=
-+CFLAGS-watchos.arm64_32=
-+CFLAGS-watchos.arm64=
+ VERSION_MIN-watchOS=4.0
+ CFLAGS-watchOS=-mwatchos-version-min=$(VERSION_MIN-watchOS)
PYTHON_CONFIGURE-watchOS=ac_cv_func_sigaltstack=no
+# watchOS-simulator targets
+TARGETS-watchOS-simulator=watchsimulator.i386 watchsimulator.x86_64 watchsimulator.arm64
-+CFLAGS-watchOS-simulator=-mwatchos-simulator-version-min=4.0
++CFLAGS-watchOS-simulator=-mwatchos-simulator-version-min=$(VERSION_MIN-watchOS)
+
- # override machine types for arm64
- MACHINE_DETAILED-arm64=aarch64
- MACHINE_SIMPLE-arm64=arm
-@@ -194,9 +212,11 @@ endif
+ # The architecture of the machine doing the build
+ HOST_ARCH=$(shell uname -m)
+ HOST_PYTHON=install/macOS/macosx/python-$(PYTHON_VERSION)
+@@ -662,7 +677,7 @@ BZIP2_FATLIB-$(sdk)=$$(BZIP2_MERGE-$(sdk))/lib/libbz2.a
+ XZ_MERGE-$(sdk)=$(PROJECT_DIR)/merge/$(os)/$(sdk)/xz-$(XZ_VERSION)
+ XZ_FATLIB-$(sdk)=$$(XZ_MERGE-$(sdk))/lib/liblzma.a
+
+-OPENSSL_MERGE-$(sdk)=$(PROJECT_DIR)/merge/$(os)/$(sdk)/openssl-$(OPENSSL_VERSION)
++OPENSSL_MERGE-$(sdk)=$(PROJECT_DIR)/merge/$(os)/openssl
+ OPENSSL_FATINCLUDE-$(sdk)=$$(OPENSSL_MERGE-$(sdk))/include
+ OPENSSL_SSL_FATLIB-$(sdk)=$$(OPENSSL_MERGE-$(sdk))/lib/libssl.a
+ OPENSSL_CRYPTO_FATLIB-$(sdk)=$$(OPENSSL_MERGE-$(sdk))/lib/libcrypto.a
+@@ -716,14 +731,14 @@ $$(OPENSSL_SSL_FATLIB-$(sdk)): $$(foreach target,$$(SDK_TARGETS-$(sdk)),$$(OPENS
+ mkdir -p $$(OPENSSL_MERGE-$(sdk))/lib
+ lipo -create -output $$@ \
+ $$(foreach target,$$(SDK_TARGETS-$(sdk)),$$(OPENSSL_SSL_LIB-$$(target))) \
+- 2>&1 | tee -a merge/$(os)/$(sdk)/openssl-$(OPENSSL_VERSION).ssl.lipo.log
++ 2>&1 | tee -a merge/$(os)/openssl-$(OPENSSL_VERSION).ssl.lipo.log
- # Configure the build
- ifeq ($2,macOS)
-+ # Patch openssl-darwin-arm64
-+ cd $$(OPENSSL_DIR-$1) && git apply ../../../../openssl-1.0.2n-darwin-arm64.patch
- cd $$(OPENSSL_DIR-$1) && \
- CC="$$(CC-$1)" MACOSX_DEPLOYMENT_TARGET=$$(MACOSX_DEPLOYMENT_TARGET) \
-- ./Configure darwin64-x86_64-cc --openssldir=$(PROJECT_DIR)/build/$2/openssl
-+ ./Configure darwin64-$$(ARCH-$1)-cc --openssldir=$(PROJECT_DIR)/build/$2/openssl
- else
- cd $$(OPENSSL_DIR-$1) && \
- CC="$$(CC-$1)" \
-@@ -216,7 +235,10 @@ $$(OPENSSL_DIR-$1)/libssl.a $$(OPENSSL_DIR-$1)/libcrypto.a: $$(OPENSSL_DIR-$1)/M
- CC="$$(CC-$1)" \
- CROSS_TOP="$$(dir $$(SDK_ROOT-$1)).." \
- CROSS_SDK="$$(notdir $$(SDK_ROOT-$1))" \
-- make all && make install
-+ make build_libs && \
-+ mkdir -p "$(PROJECT_DIR)/build/$2/openssl/lib" && \
-+ cp libcrypto.a libssl.a "$(PROJECT_DIR)/build/$2/openssl/lib"
-+ -cd $$(OPENSSL_DIR-$1) && make install_sw 2> /dev/null
+ $$(OPENSSL_CRYPTO_FATLIB-$(sdk)): $$(foreach target,$$(SDK_TARGETS-$(sdk)),$$(OPENSSL_CRYPTO_LIB-$$(target)))
+ @echo ">>> Build OpenSSL crypto fat library for $(sdk)"
+ mkdir -p $$(OPENSSL_MERGE-$(sdk))/lib
+ lipo -create -output $$@ \
+ $$(foreach target,$$(SDK_TARGETS-$(sdk)),$$(OPENSSL_CRYPTO_LIB-$$(target))) \
+- 2>&1 | tee -a merge/$(os)/$(sdk)/openssl-$(OPENSSL_VERSION).crypto.lipo.log
++ 2>&1 | tee -a merge/$(os)/openssl-$(OPENSSL_VERSION).crypto.lipo.log
- # Unpack BZip2
- $$(BZIP2_DIR-$1)/Makefile: downloads/bzip2-$(BZIP2_VERSION).tgz
+ ###########################################################################
+ # SDK: libFFI
diff --git a/example/ios/build-openssl.sh b/example/ios/build-openssl.sh
index e31f56569..7c3c6cd97 100755
--- a/example/ios/build-openssl.sh
+++ b/example/ios/build-openssl.sh
@@ -3,12 +3,11 @@ cd $(dirname $0)
git clone https://github.com/beeware/Python-Apple-support
cd Python-Apple-support
-git checkout 60b990128d5f1f04c336ff66594574515ab56604 || exit 1
+git checkout 6f43aba0ddd5a9f52f39775d0141bd4363614020 || exit 1
git reset --hard || exit 1
git apply ../Python-Apple-support.patch || exit 1
cd ..
-#TODO: change openssl version
platforms="macOS iOS watchOS tvOS"
for platform in $platforms;
@@ -31,8 +30,8 @@ do
cd ..
rm -rf third_party/openssl/$platform || exit 1
mkdir -p third_party/openssl/$platform/lib || exit 1
- cp ./Python-Apple-support/build/$platform/libcrypto.a third_party/openssl/$platform/lib/ || exit 1
- cp ./Python-Apple-support/build/$platform/libssl.a third_party/openssl/$platform/lib/ || exit 1
- cp -r ./Python-Apple-support/build/$platform/openssl/include/ third_party/openssl/$platform/include || exit 1
+ cp ./Python-Apple-support/merge/$platform/openssl/lib/libcrypto.a third_party/openssl/$platform/lib/ || exit 1
+ cp ./Python-Apple-support/merge/$platform/openssl/lib/libssl.a third_party/openssl/$platform/lib/ || exit 1
+ cp -r ./Python-Apple-support/merge/$platform/openssl/include/ third_party/openssl/$platform/include || exit 1
done
done
diff --git a/example/ios/openssl-1.0.2n-darwin-arm64.patch b/example/ios/openssl-1.0.2n-darwin-arm64.patch
deleted file mode 100644
index 5239d94c3..000000000
--- a/example/ios/openssl-1.0.2n-darwin-arm64.patch
+++ /dev/null
@@ -1,12 +0,0 @@
---- Configure 2019-12-20 14:02:41.000000000 +0100
-+++ Configure 2020-11-22 16:23:13.000000000 +0100
-@@ -650,7 +650,9 @@
- "darwin-i386-cc","cc:-arch i386 -O3 -fomit-frame-pointer -DL_ENDIAN::-D_REENTRANT:MACOSX:-Wl,-search_paths_first%:BN_LLONG RC4_INT RC4_CHUNK DES_UNROLL BF_PTR:".eval{my $asm=$x86_asm;$asm=~s/cast\-586\.o//;$asm}.":macosx:dlfcn:darwin-shared:-fPIC -fno-common:-arch i386 -dynamiclib:.\$(SHLIB_MAJOR).\$(SHLIB_MINOR).dylib",
- "debug-darwin-i386-cc","cc:-arch i386 -g3 -DL_ENDIAN::-D_REENTRANT:MACOSX:-Wl,-search_paths_first%:BN_LLONG RC4_INT RC4_CHUNK DES_UNROLL BF_PTR:${x86_asm}:macosx:dlfcn:darwin-shared:-fPIC -fno-common:-arch i386 -dynamiclib:.\$(SHLIB_MAJOR).\$(SHLIB_MINOR).dylib",
- "darwin64-x86_64-cc","cc:-arch x86_64 -O3 -DL_ENDIAN -Wall::-D_REENTRANT:MACOSX:-Wl,-search_paths_first%:SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_INT DES_UNROLL:".eval{my $asm=$x86_64_asm;$asm=~s/rc4\-[^:]+//;$asm}.":macosx:dlfcn:darwin-shared:-fPIC -fno-common:-arch x86_64 -dynamiclib:.\$(SHLIB_MAJOR).\$(SHLIB_MINOR).dylib",
-+"darwin64-arm64-cc","cc:-arch arm64 -O3 -DL_ENDIAN -Wall::-D_REENTRANT:MACOSX:-Wl,-search_paths_first%:SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_INT DES_UNROLL:${no_asm}:dlfcn:darwin-shared:-fPIC -fno-common:-arch arm64 -dynamiclib:.\$(SHLIB_MAJOR).\$(SHLIB_MINOR).dylib",
- "debug-darwin64-x86_64-cc","cc:-arch x86_64 -ggdb -g2 -O0 -DL_ENDIAN -Wall::-D_REENTRANT:MACOSX:-Wl,-search_paths_first%:SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_INT DES_UNROLL:".eval{my $asm=$x86_64_asm;$asm=~s/rc4\-[^:]+//;$asm}.":macosx:dlfcn:darwin-shared:-fPIC -fno-common:-arch x86_64 -dynamiclib:.\$(SHLIB_MAJOR).\$(SHLIB_MINOR).dylib",
-+"debug-darwin64-arm64-cc","cc:-arch arm64 -ggdb -g2 -O0 -DL_ENDIAN -Wall::-D_REENTRANT:MACOSX:-Wl,-search_paths_first%:SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_INT DES_UNROLL:${no_asm}:dlfcn:darwin-shared:-fPIC -fno-common:-arch arm64 -dynamiclib:.\$(SHLIB_MAJOR).\$(SHLIB_MINOR).dylib",
- "debug-darwin-ppc-cc","cc:-DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DCRYPTO_MDEBUG -DB_ENDIAN -g -Wall -O::-D_REENTRANT:MACOSX::BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR:${ppc32_asm}:osx32:dlfcn:darwin-shared:-fPIC:-dynamiclib:.\$(SHLIB_MAJOR).\$(SHLIB_MINOR).dylib",
- # iPhoneOS/iOS
- "iphoneos-cross","llvm-gcc:-O3 -isysroot \$(CROSS_TOP)/SDKs/\$(CROSS_SDK) -fomit-frame-pointer -fno-common::-D_REENTRANT:macOS:-Wl,-search_paths_first%:BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR:${no_asm}:dlfcn:darwin-shared:-fPIC -fno-common:-dynamiclib:.\$(SHLIB_MAJOR).\$(SHLIB_MINOR).dylib",