Join GitHub today
GitHub is home to over 40 million developers working together to host and review code, manage projects, and build software together.Sign up
Expose SSL/TLS backend that libcurl is built against (in curl-config) #2128
PycURL (http://pycurl.io/), operating in a multi-threaded environment that is Python, must include thread locking callbacks that depend on the SSL/TLS backend that is being used by libcurl.
In order to include the right callbacks PycURL attempts to detect said SSL/TLS backend during build time. This detection used to look at which libraries listed in
By now there is an extensive collection of code in PycURL attempting this SSL/TLS backend detection and it is far from working in all cases. In fact my recommendation to PycURL packagers would be to explicitly specify the backend given their knowledge of how libcurl is built on their system.
I would like libcurl to expose the SSL/TLS backend it is built against in an easy to use fashion. I imagine that exposing it in some fashion in
Note: using libcurl does not require
Note 2: some kind of a Windows solution to this issue will probably be good to have too, although the Windows build process for PycURL builds libcurl and all of its dependencies from source every time and therefore knows which SSL backend libcurl uses, and this is unlikely to ever change.
% curl --version curl 7.56.1 (x86_64-pc-linux-gnu) libcurl/7.56.1 OpenSSL/1.0.2l zlib/1.2.8 libidn2/2.0.2 libpsl/0.18.0 (+libidn2/2.0.2) libssh2/1.8.0 nghttp2/1.26.0 librtmp/2.3 Release-Date: 2017-10-23 Protocols: dict file ftp ftps gopher http https imap imaps ldap ldaps pop3 pop3s rtmp rtsp scp sftp smb smbs smtp smtps telnet tftp Features: AsynchDNS IDN IPv6 Largefile GSS-API Kerberos SPNEGO NTLM NTLM_WB SSL libz TLS-SRP HTTP2 UnixSockets HTTPS-proxy PSL
Linux, Windows, Mac
Drop everything that uses automatic libcurl SSL backend detection. The automatic detection does not work all the time (curl/curl#2128) and now that there are configurations for all SSL backends using the default one is less necessary. Do not test against libcurl that ships with ubuntu, as it does not appear to support HTTP 2. Test all SSL backends with 2.7 and 3.6. Drop Python 3.1.
Yes, the windows environment completely lacks a