@@ -11,11 +11,12 @@ FORMULA_DEPENDS=("openssl" "zlib" "brotli")
1111
1212# Android to implementation 'com.android.ndk.thirdparty:curl:7.79.1-beta-1'
1313
14- VER=8.11 .0
15- VER_D=8_11_0
16- SHA1=9648c31756362343f1a0daba881e189d6fe8b4f4
14+ VER=8.15 .0
15+ VER_D=8_15_0
16+ SHA1=" 5b4e79489e2d24da13d2fa75897f69ca5fff741e "
1717BUILD_ID=1
1818DEFINES=" "
19+ USE_OPENSSL=ON
1920
2021# tools for git use
2122GIT_URL=https://github.com/curl/curl
@@ -38,6 +39,9 @@ function download() {
3839 fi
3940 rm curl* .tar.gz
4041
42+ curl -LO https://curl.se/ca/cacert.pem
43+ mv cacert.pem curl/cacert.pem
44+
4145}
4246
4347# prepare the build environment, executed inside the lib src dir
@@ -71,6 +75,9 @@ function prepare() {
7175 fi
7276 echo " prepared"
7377
78+
79+
80+
7481}
7582
7683# executed inside the lib src dir
@@ -84,6 +91,8 @@ function build() {
8491 export OPENSSL_PATH=$OF_LIBS_OPENSSL_ABS_PATH
8592 fi
8693
94+ local CACERT_PATH=$( realpath ./cacert.pem)
95+
8796 if [ " $TYPE " == " vs" ]; then
8897 export OPENSSL_LIBRARIES=$OF_LIBS_OPENSSL_ABS_PATH /lib/$TYPE /$PLATFORM
8998 export OPENSSL_WINDOWS_PATH=$( cygpath -w ${OF_LIBS_OPENSSL_ABS_PATH} | sed " s/\\ \/\\\\\\\\ /g" )
@@ -114,14 +123,26 @@ function build() {
114123 LIBBROTLI_ENC_LIB=" $LIBBROTLI_LIBRARY /brotlienc.lib"
115124 LIBBROTLI_DEC_LIB=" $LIBBROTLI_LIBRARY /brotlidec.lib"
116125
126+ if [ " $USE_OPENSSL " == " ON" ]; then
127+ OPENSSL_DEFS=" -DCURL_USE_OPENSSL=ON \
128+ -DUSE_OPENSSL=ON \
129+ -DCURL_CA_FALLBACK=ON \
130+ -DCURL_CA_BUNDLE=$CACERT_PATH \
131+ -DCURL_CA_EMBED=$CACERT_PATH "
132+ CACERT_PATH=$( realpath " ${CACERT_PATH} " )
133+ OPENSSL_DEFS=" ${OPENSSL_DEFS} -DCURL_CA_BUNDLE=${CACERT_PATH} -DCURL_CA_EMBED=${CACERT_PATH} "
134+ else
135+ OPENSSL_DEFS=" -DCURL_USE_OPENSSL=OFF -DUSE_OPENSSL=OFF -DCURL_USE_SCHANNEL=ON"
136+ fi
137+
117138 export PKG_CONFIG_PATH=" /usr/local/lib/pkgconfig;${PKG_CONFIG_PATH} ;${OF_LIBS_OPENSSL} /lib/$TYPE /$PLATFORM ;${ZLIB_ROOT} /lib/$TYPE /$PLATFORM ;${LIBBROTLI_ROOT} /lib/$TYPE /$PLATFORM "
118139
119140 DEFS=" -DLIBRARY_SUFFIX=${ARCH} \
120141 -DCMAKE_BUILD_TYPE=Release \
121142 -DCMAKE_C_STANDARD=${C_STANDARD} \
122143 -DCMAKE_CXX_STANDARD=${CPP_STANDARD} \
123144 -DCMAKE_CXX_STANDARD_REQUIRED=ON \
124- -DCMAKE_CXX_EXTENSIONS=OFF
145+ -DCMAKE_CXX_EXTENSIONS=OFF \
125146 -DBUILD_SHARED_LIBS=OFF \
126147 -DCMAKE_INSTALL_PREFIX=Release \
127148 -DCMAKE_INCLUDE_OUTPUT_DIRECTORY=include \
@@ -140,11 +161,13 @@ function build() {
140161 -DBUILD_STATIC_LIBS=ON \
141162 -DBUILD_STATIC_CURL=ON \
142163 -DCURL_STATICLIB=ON \
164+ -DCURL_USE_LIBPSL=OFF \
143165 -DBUILD_STATIC_LIBS=ON \
144166 -DUSE_LIBIDN2=OFF \
145167 -DENABLE_UNICODE=ON \
146- -DCURL_USE_OPENSSL=ON \
168+ ${OPENSSL_DEFS} \
147169 -DUSE_SSLEAY=ON \
170+ -DUSE_NGHTTP2=ON \
148171 -DUSE_OPENSSL=ON \
149172 -DCURL_USE_OPENSSL=ON \
150173 -DCMAKE_INSTALL_LIBDIR=" lib" \
@@ -193,6 +216,7 @@ function build() {
193216 -DOPENSSL_INCLUDE_DIR=${OF_LIBS_OPENSSL_ABS_PATH} /include \
194217 -DOPENSSL_CRYPTO_LIBRARY=${OPENSSL_LIBRARY_CRYPT} \
195218 -DOPENSSL_SSL_LIBRARY=${OPENSSL_LIBRARY} \
219+ -DCURL_CA_BUNDLE=$CACERT_PATH \
196220 -DOPENSSL_LIBRARIES=${OF_LIBS_OPENSSL_ABS_PATH} /lib/${TYPE} /${PLATFORM} /libssl.a;${OF_LIBS_OPENSSL_ABS_PATH} /lib/${TYPE} /${PLATFORM} /libcrypto.a"
197221
198222 ZLIB_ROOT=" $LIBS_ROOT /zlib/"
@@ -205,7 +229,6 @@ function build() {
205229 LIBBROTLI_LIBRARY=" $LIBS_ROOT /brotli/lib/$TYPE /$PLATFORM /libbrotlicommon.a"
206230 LIBBROTLI_ENC_LIB=" $LIBS_ROOT /brotli/lib/$TYPE /$PLATFORM /libbrotlienc.a"
207231 LIBBROTLI_DEC_LIB=" $LIBS_ROOT /brotli/lib/$TYPE /$PLATFORM /libbrotlidec.a"
208-
209232 export PKG_CONFIG_PATH=" /usr/local/lib/pkgconfig:${PKG_CONFIG_PATH} :${OPENSSL_ROOT} /lib/$TYPE /$PLATFORM :${ZLIB_ROOT} /lib/$TYPE /$PLATFORM :${LIBBROTLI_ROOT} /lib/$TYPE /$PLATFORM "
210233
211234 echo " building curl $TYPE | $PLATFORM "
@@ -237,6 +260,7 @@ function build() {
237260 -DCMAKE_FIND_PACKAGE_NO_PACKAGE_REGISTRY=ON \
238261 -DCURL_STATICLIB=ON \
239262 -DBUILD_STATIC_LIBS=ON \
263+ -DCURL_CA_FALLBACK=ON \
240264 -DENABLE_UNICODE=ON \
241265 -DCMAKE_BUILD_TYPE=Release \
242266 -DCMAKE_INSTALL_PREFIX=Release \
@@ -263,9 +287,8 @@ function build() {
263287 -DCURL_ENABLE_SSL=${CURL_ENABLE_SSL} \
264288 -DUSE_SECURE_TRANSPORT=${USE_SECURE_TRANSPORT} \
265289 -DCURL_USE_SECTRANSP=${USE_SECURE_TRANSPORT} \
266- -DUSE_NGHTTP2=OFF \
290+ -DUSE_NGHTTP2=ON \
267291 -DCURL_DISABLE_POP3=ON \
268- -DCURL_CA_FALLBACK=ON \
269292 -DCURL_DISABLE_IMAP=ON \
270293 -DENABLE_WEBSOCKETS=ON \
271294 -DENABLE_UNIX_SOCKETS=ON \
@@ -307,18 +330,18 @@ function build() {
307330
308331 elif [[ " $TYPE " =~ ^(osx| ios| tvos| xros| catos| watchos)$ ]]; then
309332
310- if [[ ! " $TYPE " =~ ^(tvos| catos| watchos)$ ]]; then
311- export OPENSSL_LIBRARIES=$OF_LIBS_OPENSSL_ABS_PATH /lib/$TYPE /$PLATFORM
312- OPENSSL_ROOT=" $LIBS_ROOT /openssl/"
313- OPENSSL_INCLUDE_DIR=" $LIBS_ROOT /openssl/include"
314- OPENSSL_LIBRARY=" $LIBS_ROOT /openssl/lib/$TYPE /$PLATFORM /libssl.a"
315- OPENSSL_LIBRARY_CRYPT=" $LIBS_ROOT /openssl/lib/$TYPE /$PLATFORM /libcrypto.a"
316- USE_SECURE_TRANSPORT=OFF
317- CURL_ENABLE_SSL=ON
318- SSL_DEFS=" -DOPENSSL_ROOT_DIR=${OF_LIBS_OPENSSL_ABS_PATH} \
319- -DOPENSSL_INCLUDE_DIR=${OF_LIBS_OPENSSL_ABS_PATH} /include \
320- -DOPENSSL_LIBRARIES=${OF_LIBS_OPENSSL_ABS_PATH} /lib/${TYPE} /${PLATFORM} /libssl.a:${OF_LIBS_OPENSSL_ABS_PATH} /lib/${TYPE} /${PLATFORM} /libcrypto.a"
321- else
333+ # if [[ ! "$TYPE" =~ ^(tvos|catos|watchos)$ ]]; then
334+ # export OPENSSL_LIBRARIES=$OF_LIBS_OPENSSL_ABS_PATH/lib/$TYPE/$PLATFORM
335+ # OPENSSL_ROOT="$LIBS_ROOT/openssl/"
336+ # OPENSSL_INCLUDE_DIR="$LIBS_ROOT/openssl/include"
337+ # OPENSSL_LIBRARY="$LIBS_ROOT/openssl/lib/$TYPE/$PLATFORM/libssl.a"
338+ # OPENSSL_LIBRARY_CRYPT="$LIBS_ROOT/openssl/lib/$TYPE/$PLATFORM/libcrypto.a"
339+ # USE_SECURE_TRANSPORT=OFF
340+ # CURL_ENABLE_SSL=ON
341+ # SSL_DEFS="-DOPENSSL_ROOT_DIR=${OF_LIBS_OPENSSL_ABS_PATH} \
342+ # -DOPENSSL_INCLUDE_DIR=${OF_LIBS_OPENSSL_ABS_PATH}/include \
343+ # -DOPENSSL_LIBRARIES=${OF_LIBS_OPENSSL_ABS_PATH}/lib/${TYPE}/${PLATFORM}/libssl.a:${OF_LIBS_OPENSSL_ABS_PATH}/lib/${TYPE}/${PLATFORM}/libcrypto.a"
344+ # else
322345 # disabled for tvOS SSL
323346 OPENSSL_ROOT=" $LIBS_ROOT "
324347 OPENSSL_INCLUDE_DIR=" "
@@ -330,7 +353,7 @@ function build() {
330353 CURL_ENABLE_SSL=OFF
331354 SSL_DEFS=" "
332355
333- fi
356+ # fi
334357
335358 ZLIB_ROOT=" $LIBS_ROOT /zlib/"
336359 ZLIB_INCLUDE_DIR=" $LIBS_ROOT /zlib/include"
@@ -350,10 +373,12 @@ function build() {
350373 mkdir -p " build_${TYPE} _${PLATFORM} "
351374 cd " build_${TYPE} _${PLATFORM} "
352375 rm -f CMakeCache.txt * .a * .o * .lib
376+
353377 cmake .. \
354378 -DCMAKE_C_STANDARD=${C_STANDARD} \
355379 -DCMAKE_CXX_STANDARD=${CPP_STANDARD} \
356380 -DCMAKE_CXX_STANDARD_REQUIRED=ON \
381+ -DCURL_CA_BUNDLE=" $CACERT_PATH " \
357382 -DCMAKE_CXX_FLAGS=" -DUSE_PTHREADS=1 ${FLAG_RELEASE} -Wno-error=implicit-function-declaration" \
358383 -DCMAKE_C_FLAGS=" -DUSE_PTHREADS=1 ${FLAG_RELEASE} -Wno-error=implicit-function-declaration" \
359384 -DENABLE_STRICT_TRY_COMPILE=ON \
@@ -382,6 +407,8 @@ function build() {
382407 -DCMAKE_MINIMUM_REQUIRED_VERSION=3.22 \
383408 -DCURL_DISABLE_LDAP=ON \
384409 -DENABLE_VISIBILITY=OFF \
410+ -DCURL_DISABLE_ZSTD=ON \
411+ -DCURL_ZSTD=OFF \
385412 ${SSL_DEFS} \
386413 -DCMAKE_PREFIX_PATH=" ${LIBS_ROOT} " \
387414 -DZLIB_ROOT=${ZLIB_ROOT} \
@@ -398,12 +425,16 @@ function build() {
398425 -DUSE_SECURE_TRANSPORT=${USE_SECURE_TRANSPORT} \
399426 -DCURL_USE_SECTRANSP=${USE_SECURE_TRANSPORT} \
400427 -DUSE_NGHTTP2=OFF \
428+ -DUSE_NGTCP2=OFF \
429+ -DCURL_CA_FALLBACK=ON \
401430 -DCURL_DISABLE_POP3=ON \
402431 -DCURL_CA_FALLBACK=ON \
403432 -DCURL_DISABLE_IMAP=ON \
404433 -DENABLE_WEBSOCKETS=ON \
405434 -DENABLE_UNIX_SOCKETS=ON \
406435 -DCURL_BROTLI=ON \
436+ -DCMAKE_PREFIX_PATH=" ${LIBS_ROOT} " \
437+ -DCMAKE_FIND_ROOT_PATH=" ${LIBS_ROOT} " \
407438 -DBROTLI_INCLUDE_DIRS=${LIBBROTLI_INCLUDE_DIR} \
408439 -DBROTLIDEC_LIBRARY=${LIBBROTLI_DEC_LIB} \
409440 -DBROTLICOMMON_LIBRARY=${LIBBROTLI_LIBRARY} \
0 commit comments