Skip to content

Can't build '_ssl' extension with Python 3.11.2 and OpenSSL 3.1 #103242

Closed
@jan-busa

Description

@jan-busa

Bug report

I have tried to build latest tagged release of Python v3.11.2 on a CentOS7 system with locally built OpenSSL library v3.1.0. During configuration step ssl library and headers are properly found. When I build Python I encounter error:

building '_ssl' extension
gcc -pthread .... /Modules/_ssl.o
_ssl.c: In function '_ssl__SSLContext_set_ecdh_curve':
/.../Python/Modules/_ssl.c:4344:11: error: implicit declaration of function 'EC_KEY_new_by_curve_name' [-Werror=implicit-function-declaration]
 4344 |     key = EC_KEY_new_by_curve_name(nid);
      |           ^~~~~~~~~~~~~~~~~~~~~~~~
/.../Python/Modules/_ssl.c:4344:9: warning: assignment to 'EC_KEY *' {aka 'struct ec_key_st *'} from 'int' makes pointer from integer without a cast [-Wint-conversion]
 4344 |     key = EC_KEY_new_by_curve_name(nid);
      |         ^
/.../Python/Modules/_ssl.c:4350:5: error: implicit declaration of function 'EC_KEY_free'; did you mean 'EVP_KEM_free'? [-Werror=implicit-function-declaration]
 4350 |     EC_KEY_free(key);
      |     ^~~~~~~~~~~
      |     EVP_KEM_free
cc1: some warnings being treated as errors

Looking inside OpenSSL sources for mentioned functions EC_KEY_new_by_curve_name and EC_KEY_free I can see in the file include/openssl/ec.h that they have been deprecated. I suppose that these functions need to be removed from Python's file Python/Modules/_ssl.c but I don't know anything about the details of OpenSSL so I would appreciate any help what to do in this case.

Your environment

  • virtual computer running CentOS7
  • GCC 12.2
  • Python 3.12.2
  • OpenSSL 3.1
  • configure called with:
./configure --prefix="$INSTALLROOT"
            ${OPENSSL_ROOT:+--with-openssl=$OPENSSL_ROOT}
            ${OPENSSL_ROOT:+--with-openssl-rpath=no}
            --enable-shared --with-system-expat --with-ensurepip=install

Linked PRs

Metadata

Metadata

Assignees

No one assigned

    Labels

    3.11only security fixesbuildThe build process and cross-buildtopic-SSLtype-bugAn unexpected behavior, bug, or error

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions