@@ -642,6 +642,10 @@ MODULE__TESTINTERNALCAPI_FALSE
642
642
MODULE__TESTINTERNALCAPI_TRUE
643
643
MODULE__TESTCAPI_FALSE
644
644
MODULE__TESTCAPI_TRUE
645
+ MODULE__HASHLIB_FALSE
646
+ MODULE__HASHLIB_TRUE
647
+ MODULE__SSL_FALSE
648
+ MODULE__SSL_TRUE
645
649
MODULE__LZMA_FALSE
646
650
MODULE__LZMA_TRUE
647
651
MODULE__BZ2_FALSE
@@ -20134,6 +20138,16 @@ rm -f core conftest.err conftest.$ac_objext \
20134
20138
20135
20139
20136
20140
# rpath to libssl and libcrypto
20141
+ if test "x$GNULD" = xyes; then :
20142
+
20143
+ rpath_arg="-Wl,--enable-new-dtags,-rpath="
20144
+
20145
+ else
20146
+
20147
+ rpath_arg="-Wl,-rpath="
20148
+
20149
+ fi
20150
+
20137
20151
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for --with-openssl-rpath" >&5
20138
20152
$as_echo_n "checking for --with-openssl-rpath... " >&6; }
20139
20153
@@ -20147,12 +20161,26 @@ fi
20147
20161
20148
20162
case $with_openssl_rpath in #(
20149
20163
auto|yes) :
20150
- OPENSSL_RPATH=auto ;; #(
20164
+
20165
+ OPENSSL_RPATH=auto
20166
+ for arg in "$OPENSSL_LDFLAGS"; do
20167
+ case $arg in #(
20168
+ -L*) :
20169
+ OPENSSL_LDFLAGS_RPATH="$OPENSSL_LDFLAGS_RPATH ${rpath_arg}$(echo $arg | cut -c3-)"
20170
+ ;; #(
20171
+ *) :
20172
+ ;;
20173
+ esac
20174
+ done
20175
+ ;; #(
20151
20176
no) :
20152
20177
OPENSSL_RPATH= ;; #(
20153
20178
*) :
20154
20179
if test -d "$with_openssl_rpath"; then :
20155
- OPENSSL_RPATH="$with_openssl_rpath"
20180
+
20181
+ OPENSSL_RPATH="$with_openssl_rpath"
20182
+ OPENSSL_LDFLAGS_RPATH="${rpath_arg}$with_openssl_rpath"
20183
+
20156
20184
else
20157
20185
as_fn_error $? "--with-openssl-rpath \"$with_openssl_rpath\" is not a directory" "$LINENO" 5
20158
20186
fi
@@ -20163,71 +20191,163 @@ esac
20163
20191
$as_echo "$OPENSSL_RPATH" >&6; }
20164
20192
20165
20193
20194
+ # This static linking is NOT OFFICIALLY SUPPORTED and not advertised.
20195
+ # Requires static OpenSSL build with position-independent code. Some features
20196
+ # like DSO engines or external OSSL providers don't work. Only tested with GCC
20197
+ # and clang on X86_64.
20198
+ if test "x$PY_UNSUPPORTED_OPENSSL_BUILD" = xstatic; then :
20199
+
20200
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for unsupported static openssl build" >&5
20201
+ $as_echo_n "checking for unsupported static openssl build... " >&6; }
20202
+ new_OPENSSL_LIBS=
20203
+ for arg in $OPENSSL_LIBS; do
20204
+ case $arg in #(
20205
+ -l*) :
20206
+
20207
+ libname=$(echo $arg | cut -c3-)
20208
+ new_OPENSSL_LIBS="$new_OPENSSL_LIBS -l:lib${libname}.a -Wl,--exclude-libs,lib${libname}.a"
20209
+ ;; #(
20210
+ *) :
20211
+ new_OPENSSL_LIBS="$new_OPENSSL_LIBS $arg"
20212
+ ;;
20213
+ esac
20214
+ done
20215
+ OPENSSL_LIBS="$new_OPENSSL_LIBS $ZLIB_LIBS"
20216
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OPENSSL_LIBS" >&5
20217
+ $as_echo "$OPENSSL_LIBS" >&6; }
20218
+
20219
+ fi
20220
+
20221
+ LIBCRYPTO_LIBS=
20222
+ for arg in $OPENSSL_LIBS; do
20223
+ case $arg in #(
20224
+ -l*ssl*|-Wl*ssl*) :
20225
+ ;; #(
20226
+ *) :
20227
+ LIBCRYPTO_LIBS="$LIBCRYPTO_LIBS $arg"
20228
+ ;;
20229
+ esac
20230
+ done
20231
+
20166
20232
# check if OpenSSL libraries work as expected
20167
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether OpenSSL provides required APIs" >&5
20168
- $as_echo_n "checking whether OpenSSL provides required APIs... " >&6; }
20169
- if ${ac_cv_working_openssl+:} false; then :
20233
+ save_CFLAGS=$CFLAGS
20234
+ save_CPPFLAGS=$CPPFLAGS
20235
+ save_LDFLAGS=$LDFLAGS
20236
+ save_LIBS=$LIBS
20237
+
20238
+
20239
+ LIBS="$LIBS $OPENSSL_LIBS"
20240
+ CFLAGS="$CFLAGS $OPENSSL_INCLUDES"
20241
+ LDFLAGS="$LDFLAGS $OPENSSL_LDFLAGS $OPENSSL_LDFLAGS_RPATH"
20242
+
20243
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether OpenSSL provides required ssl module APIs" >&5
20244
+ $as_echo_n "checking whether OpenSSL provides required ssl module APIs... " >&6; }
20245
+ if ${ac_cv_working_openssl_ssl+:} false; then :
20170
20246
$as_echo_n "(cached) " >&6
20171
20247
else
20172
20248
20173
- save_LIBS="$LIBS"
20174
- save_CFLAGS="$CFLAGS"
20175
- save_LDFLAGS="$LDFLAGS"
20176
- LIBS="$LIBS $OPENSSL_LIBS"
20177
- CFLAGS="$CFLAGS_NODIST $OPENSSL_INCLUDES"
20178
- LDFLAGS="$LDFLAGS $OPENSSL_LDFLAGS"
20179
-
20180
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
20249
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
20181
20250
/* end confdefs.h. */
20182
20251
20183
- #include <openssl/opensslv.h>
20184
- #include <openssl/evp.h>
20185
- #include <openssl/ssl.h>
20252
+ #include <openssl/opensslv.h>
20253
+ #include <openssl/ssl.h>
20254
+ #if OPENSSL_VERSION_NUMBER < 0x10101000L
20255
+ #error "OpenSSL >= 1.1.1 is required"
20256
+ #endif
20257
+ static void keylog_cb(const SSL *ssl, const char *line) {}
20186
20258
20187
- #if OPENSSL_VERSION_NUMBER < 0x10101000L
20188
- #error "OpenSSL >= 1.1.1 is required"
20189
- #endif
20259
+ int
20260
+ main ()
20261
+ {
20262
+
20263
+ SSL_CTX *ctx = SSL_CTX_new(TLS_client_method());
20264
+ SSL_CTX_set_keylog_callback(ctx, keylog_cb);
20265
+ SSL *ssl = SSL_new(ctx);
20266
+ X509_VERIFY_PARAM *param = SSL_get0_param(ssl);
20267
+ X509_VERIFY_PARAM_set1_host(param, "python.org", 0);
20268
+ SSL_free(ssl);
20269
+ SSL_CTX_free(ctx);
20270
+
20271
+ ;
20272
+ return 0;
20273
+ }
20274
+ _ACEOF
20275
+ if ac_fn_c_try_link "$LINENO"; then :
20276
+ ac_cv_working_openssl_ssl=yes
20277
+ else
20278
+ ac_cv_working_openssl_ssl=no
20279
+ fi
20280
+ rm -f core conftest.err conftest.$ac_objext \
20281
+ conftest$ac_exeext conftest.$ac_ext
20282
+
20283
+ fi
20284
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_working_openssl_ssl" >&5
20285
+ $as_echo "$ac_cv_working_openssl_ssl" >&6; }
20286
+
20287
+ CFLAGS=$save_CFLAGS
20288
+ CPPFLAGS=$save_CPPFLAGS
20289
+ LDFLAGS=$save_LDFLAGS
20290
+ LIBS=$save_LIBS
20291
+
20292
+
20293
+
20294
+ save_CFLAGS=$CFLAGS
20295
+ save_CPPFLAGS=$CPPFLAGS
20296
+ save_LDFLAGS=$LDFLAGS
20297
+ save_LIBS=$LIBS
20298
+
20299
+
20300
+ LIBS="$LIBS $LIBCRYPTO_LIBS"
20301
+ CFLAGS="$CFLAGS $OPENSSL_INCLUDES"
20302
+ LDFLAGS="$LDFLAGS $OPENSSL_LDFLAGS $OPENSSL_LDFLAGS_RPATH"
20303
+
20304
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether OpenSSL provides required hashlib module APIs" >&5
20305
+ $as_echo_n "checking whether OpenSSL provides required hashlib module APIs... " >&6; }
20306
+ if ${ac_cv_working_openssl_hashlib+:} false; then :
20307
+ $as_echo_n "(cached) " >&6
20308
+ else
20309
+
20310
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
20311
+ /* end confdefs.h. */
20190
20312
20191
- static void keylog_cb(const SSL *ssl, const char *line) {}
20313
+ #include <openssl/opensslv.h>
20314
+ #include <openssl/evp.h>
20315
+ #if OPENSSL_VERSION_NUMBER < 0x10101000L
20316
+ #error "OpenSSL >= 1.1.1 is required"
20317
+ #endif
20192
20318
20193
20319
int
20194
20320
main ()
20195
20321
{
20196
20322
20197
- /* SSL APIs */
20198
- SSL_CTX *ctx = SSL_CTX_new(TLS_client_method());
20199
- SSL_CTX_set_keylog_callback(ctx, keylog_cb);
20200
- SSL *ssl = SSL_new(ctx);
20201
- X509_VERIFY_PARAM *param = SSL_get0_param(ssl);
20202
- X509_VERIFY_PARAM_set1_host(param, "python.org", 0);
20203
- SSL_free(ssl);
20204
- SSL_CTX_free(ctx);
20205
-
20206
- /* hashlib APIs */
20207
- OBJ_nid2sn(NID_md5);
20208
- OBJ_nid2sn(NID_sha1);
20209
- OBJ_nid2sn(NID_sha3_512);
20210
- OBJ_nid2sn(NID_blake2b512);
20211
- EVP_PBE_scrypt(NULL, 0, NULL, 0, 2, 8, 1, 0, NULL, 0);
20323
+ OBJ_nid2sn(NID_md5);
20324
+ OBJ_nid2sn(NID_sha1);
20325
+ OBJ_nid2sn(NID_sha3_512);
20326
+ OBJ_nid2sn(NID_blake2b512);
20327
+ EVP_PBE_scrypt(NULL, 0, NULL, 0, 2, 8, 1, 0, NULL, 0);
20212
20328
20213
20329
;
20214
20330
return 0;
20215
20331
}
20216
20332
_ACEOF
20217
20333
if ac_fn_c_try_link "$LINENO"; then :
20218
- ac_cv_working_openssl =yes
20334
+ ac_cv_working_openssl_hashlib =yes
20219
20335
else
20220
- ac_cv_working_openssl =no
20336
+ ac_cv_working_openssl_hashlib =no
20221
20337
fi
20222
20338
rm -f core conftest.err conftest.$ac_objext \
20223
20339
conftest$ac_exeext conftest.$ac_ext
20224
- LIBS="$save_LIBS"
20225
- CFLAGS="$save_CFLAGS"
20226
- LDFLAGS="$save_LDFLAGS"
20227
20340
20228
20341
fi
20229
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_working_openssl" >&5
20230
- $as_echo "$ac_cv_working_openssl" >&6; }
20342
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_working_openssl_hashlib" >&5
20343
+ $as_echo "$ac_cv_working_openssl_hashlib" >&6; }
20344
+
20345
+ CFLAGS=$save_CFLAGS
20346
+ CPPFLAGS=$save_CPPFLAGS
20347
+ LDFLAGS=$save_LDFLAGS
20348
+ LIBS=$save_LIBS
20349
+
20350
+
20231
20351
20232
20352
# ssl module default cipher suite string
20233
20353
@@ -21601,6 +21721,79 @@ $as_echo "$py_cv_module__lzma" >&6; }
21601
21721
21602
21722
21603
21723
21724
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for stdlib extension module _ssl" >&5
21725
+ $as_echo_n "checking for stdlib extension module _ssl... " >&6; }
21726
+ case $py_stdlib_not_available in #(
21727
+ *_ssl*) :
21728
+ py_cv_module__ssl=n/a ;; #(
21729
+ *) :
21730
+ if true; then :
21731
+ if test "$ac_cv_working_openssl_ssl" = yes; then :
21732
+ py_cv_module__ssl=yes
21733
+ else
21734
+ py_cv_module__ssl=missing
21735
+ fi
21736
+ else
21737
+ py_cv_module__ssl=disabled
21738
+ fi
21739
+ ;;
21740
+ esac
21741
+ as_fn_append MODULE_BLOCK "MODULE__SSL=$py_cv_module__ssl$as_nl"
21742
+ if test "x$py_cv_module__ssl" = xyes; then :
21743
+
21744
+ as_fn_append MODULE_BLOCK "MODULE__SSL_CFLAGS=$OPENSSL_INCLUDES$as_nl"
21745
+ as_fn_append MODULE_BLOCK "MODULE__SSL_LDFLAGS=$OPENSSL_LDFLAGS $OPENSSL_LDFLAGS_RPATH $OPENSSL_LIBS$as_nl"
21746
+
21747
+ fi
21748
+ if test "$py_cv_module__ssl" = yes; then
21749
+ MODULE__SSL_TRUE=
21750
+ MODULE__SSL_FALSE='#'
21751
+ else
21752
+ MODULE__SSL_TRUE='#'
21753
+ MODULE__SSL_FALSE=
21754
+ fi
21755
+
21756
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $py_cv_module__ssl" >&5
21757
+ $as_echo "$py_cv_module__ssl" >&6; }
21758
+
21759
+
21760
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for stdlib extension module _hashlib" >&5
21761
+ $as_echo_n "checking for stdlib extension module _hashlib... " >&6; }
21762
+ case $py_stdlib_not_available in #(
21763
+ *_hashlib*) :
21764
+ py_cv_module__hashlib=n/a ;; #(
21765
+ *) :
21766
+ if true; then :
21767
+ if test "$ac_cv_working_openssl_hashlib" = yes; then :
21768
+ py_cv_module__hashlib=yes
21769
+ else
21770
+ py_cv_module__hashlib=missing
21771
+ fi
21772
+ else
21773
+ py_cv_module__hashlib=disabled
21774
+ fi
21775
+ ;;
21776
+ esac
21777
+ as_fn_append MODULE_BLOCK "MODULE__HASHLIB=$py_cv_module__hashlib$as_nl"
21778
+ if test "x$py_cv_module__hashlib" = xyes; then :
21779
+
21780
+ as_fn_append MODULE_BLOCK "MODULE__HASHLIB_CFLAGS=$OPENSSL_INCLUDES$as_nl"
21781
+ as_fn_append MODULE_BLOCK "MODULE__HASHLIB_LDFLAGS=$OPENSSL_LDFLAGS $OPENSSL_LDFLAGS_RPATH $LIBCRYPTO_LIBS$as_nl"
21782
+
21783
+ fi
21784
+ if test "$py_cv_module__hashlib" = yes; then
21785
+ MODULE__HASHLIB_TRUE=
21786
+ MODULE__HASHLIB_FALSE='#'
21787
+ else
21788
+ MODULE__HASHLIB_TRUE='#'
21789
+ MODULE__HASHLIB_FALSE=
21790
+ fi
21791
+
21792
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $py_cv_module__hashlib" >&5
21793
+ $as_echo "$py_cv_module__hashlib" >&6; }
21794
+
21795
+
21796
+
21604
21797
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for stdlib extension module _testcapi" >&5
21605
21798
$as_echo_n "checking for stdlib extension module _testcapi... " >&6; }
21606
21799
case $py_stdlib_not_available in #(
@@ -22278,6 +22471,14 @@ if test -z "${MODULE__LZMA_TRUE}" && test -z "${MODULE__LZMA_FALSE}"; then
22278
22471
as_fn_error $? "conditional \"MODULE__LZMA\" was never defined.
22279
22472
Usually this means the macro was only invoked conditionally." "$LINENO" 5
22280
22473
fi
22474
+ if test -z "${MODULE__SSL_TRUE}" && test -z "${MODULE__SSL_FALSE}"; then
22475
+ as_fn_error $? "conditional \"MODULE__SSL\" was never defined.
22476
+ Usually this means the macro was only invoked conditionally." "$LINENO" 5
22477
+ fi
22478
+ if test -z "${MODULE__HASHLIB_TRUE}" && test -z "${MODULE__HASHLIB_FALSE}"; then
22479
+ as_fn_error $? "conditional \"MODULE__HASHLIB\" was never defined.
22480
+ Usually this means the macro was only invoked conditionally." "$LINENO" 5
22481
+ fi
22281
22482
if test -z "${MODULE__TESTCAPI_TRUE}" && test -z "${MODULE__TESTCAPI_FALSE}"; then
22282
22483
as_fn_error $? "conditional \"MODULE__TESTCAPI\" was never defined.
22283
22484
Usually this means the macro was only invoked conditionally." "$LINENO" 5
0 commit comments