[FFmpeg-devel] [PATCH] lavf/tls_openssl: Support building with LibreSSL

Mark Thompson sw at jkqxz.net
Fri Jan 27 21:53:50 EET 2017


On 27/01/17 19:15, Marek Behun wrote:
> On Fri, 27 Jan 2017 18:41:09 +0000
> Mark Thompson <sw at jkqxz.net> wrote:
> 
>> On 27/01/17 17:31, Marek BehĂșn wrote:
>>> Use the LIBRESSL_VERSION_NUMBER macro to determine if building with
>>> LibreSSL instead of OpenSSL. This is pretty straightforward, since
>>> it is enough to add this check to existing #if macros.
>>>
>>> Signed-off-by: Marek Behun <kabel at blackhole.sk>
>>> ---
>>>  libavformat/tls_openssl.c | 12 ++++++------
>>>  1 file changed, 6 insertions(+), 6 deletions(-)
>>>
>>> diff --git a/libavformat/tls_openssl.c b/libavformat/tls_openssl.c
>>> index 3d9768a..cf1a62e 100644
>>> --- a/libavformat/tls_openssl.c
>>> +++ b/libavformat/tls_openssl.c
>>> @@ -43,7 +43,7 @@ typedef struct TLSContext {
>>>      TLSShared tls_shared;
>>>      SSL_CTX *ctx;
>>>      SSL *ssl;
>>> -#if OPENSSL_VERSION_NUMBER >= 0x1010000fL
>>> +#if OPENSSL_VERSION_NUMBER >= 0x1010000fL
>>> && !defined(LIBRESSL_VERSION_NUMBER)  
>>
>> I don't understand what this is trying to do.
>>
>> Does LibreSSL support the OpenSSL 1.1.0 API:
>>
>> If yes, why would the additional check be needed?
>>
>> If no, isn't this doing nothing because the first check would be
>> false?
> 
> LibreSSL defines OPENSSL_VERSION_NUMBER to >=0x2000000, thus
> OPENSSL_VERSION_NUMBER is always greater than 0x1010000, but LibreSSL
> does not support 1.1.0 API.

Er, right, so it just lies and leaves it to user programs to sort it out.  How nice.

Looking back, I can see this has been discussed before:
<https://lists.ffmpeg.org/pipermail/ffmpeg-devel/2016-October/201960.html>
<https://lists.ffmpeg.org/pipermail/ffmpeg-devel/2016-December/203998.html>

That (beyond the disapprobation towards libressl for being naughty) looks like people would prefer the test to be in configure rather than copying the nontrivial #if condition everywhere?

- Mark


More information about the ffmpeg-devel mailing list