As of release 3.0.0, the OpenSSL versioning scheme is changing to a more contemporary format: MAJOR.MINOR.PATCH
With this format, API/ABI compatibility will be guaranteed for the same MAJOR version number. Previously we guaranteed API/ABI >compatibility across the same MAJOR.MINOR combination."
See https://github.com/noxxi/p5-io-socket-ssl/blob/master/Makefile.PL#L66.
If
Net::SSLeay
is built against OpenSSL 3.0 but we're buildingIO::Socket::SSL
against OpenSSL 3.1, we get:This isn't a problem - OpenSSL 3.0 and OpenSSL 3.1 are ABI compatible.
OpenSSH had a similar bug and had to relax their logic: https://bugzilla.mindrot.org/show_bug.cgi?id=3548.
See also https://www.openssl.org/policies/releasestrat.html: