Opened 3 weeks ago

Last modified 11 days ago

#6801 reopened defect

libavformat/tls_openssl.c: implicit declaration of function 'BIO_meth_*'

Reported by: LigH Owned by:
Priority: normal Component: avformat
Version: git-master Keywords: libopenssl
Cc: Blocked By:
Blocking: Reproduced by developer: yes
Analyzed by developer: no

Description

Compilation fails, trying to build ffmpeg (static 32-bit) in media-autobuild_suite; see attached build log. It's related to their issue #622.

Attachments (4)

ab-suite.make.log (108.4 KB) - added by LigH 3 weeks ago.
explicit build log
ab-suite.configure.log (17.3 KB) - added by LigH 3 weeks ago.
ffmpeg configure log
logs.zip (134.4 KB) - added by LigH 3 weeks ago.
logs archive
ffmpeg_options.txt (1.2 KB) - added by LigH 3 weeks ago.
ffmpeg options set

Download all attachments as: .zip

Change History (24)

Changed 3 weeks ago by LigH

explicit build log

comment:1 Changed 3 weeks ago by LigH

  • Summary changed from implicit declaration of function 'BIO_meth_*' to libavformat/tls_openssl.c: implicit declaration of function 'BIO_meth_*'

comment:2 Changed 3 weeks ago by heleppkes

  • Summary changed from libavformat/tls_openssl.c: implicit declaration of function 'BIO_meth_*' to implicit declaration of function 'BIO_meth_*'

We cannot debug build issues with third party build systems.

To give this any chance, we need the full configure line as well as ffmpegs config.log.

comment:3 Changed 3 weeks ago by heleppkes

(also,Trac is dumb and for some reason reverts any edits that were in progress when you write a comment, wtf)

Changed 3 weeks ago by LigH

ffmpeg configure log

Changed 3 weeks ago by LigH

logs archive

comment:4 Changed 3 weeks ago by LigH

Attached the configure log and the full archive of MABS logs. I hope it may contain everything that might be helpful to you.

comment:5 Changed 3 weeks ago by LigH

  • Summary changed from implicit declaration of function 'BIO_meth_*' to libavformat/tls_openssl.c: implicit declaration of function 'BIO_meth_*'

comment:6 Changed 3 weeks ago by heleppkes

Which version of OpenSSl is this trying to use?

comment:7 Changed 3 weeks ago by LigH

Unfortunately I have only little experience using a Linux like shell...

MABS updates itself and the underlying MSYS2 environment before building software. According to the directories in the pacman package registry (msys64/var/lib/pacman/local), I assume it's libopenssl-1.0.2.l-2; to be certain, I would need to know which command to type into an MSYS2/MinGW shell...

comment:8 Changed 3 weeks ago by heleppkes

Check H:/development/media-autobuild_suite-master/local32/include/openssl/opensslv.h
It should list the version somewhere.

Browsing around in the script, it appears to use LibreSSL, and not OpenSSL. LibreSSL is not currently supported by FFmpeg. We only support OpenSSL or any of its forks that are actually version and binary compatible. LibreSSL typically claims to be OpenSSL in a very recent version, but not actually offer its full API.

comment:9 Changed 3 weeks ago by LigH

You are right: "LibreSSL 2.6.2"

I will mention this detail to the MABS developers; does it mean that ffmpeg or libavformat suddenly use OpenSSL features they did not use before, and which LibreSSL may not yet implement?

comment:10 Changed 3 weeks ago by heleppkes

These functions are in use since 10/2016 when support for OpenSSL 1.1 was added. LibreSSL breaks the version checks of OpenSSL by pretending to be OpenSSL in a very new version, but only offering the OpenSSL 1.0 API.

I don't know why the LibreSSL people didn't bother to do this properly, but alas.

comment:11 Changed 3 weeks ago by LigH

Surprising for me: The ffmpeg options set refers to gnutls instead of libressl. See next attachment.

Changed 3 weeks ago by LigH

ffmpeg options set

comment:12 Changed 3 weeks ago by heleppkes

I don't know how it does things, but I see --enable-openssl in there.

comment:13 Changed 3 weeks ago by jamrial

gnutls and openssl can't go together, so just remove the --enable-openssl line, since it's obviously not working with your libressl install.

comment:14 Changed 3 weeks ago by LigH

I guess from here on, we will better wait for the MABS developers to check what happened. I believe they have some own experience with SSL/TLS libraries and their interdependencies... I won't be able to support much more.

comment:15 Changed 3 weeks ago by cehoyos

  • Keywords libopenssl added

comment:16 Changed 3 weeks ago by LigH

  • Resolution set to invalid
  • Status changed from new to closed

Reading the development in MABS, I believe this ticket can be closed; they seem to agree that including both GnuTLS and OpenSSL is a mistake in the generation of the build options file.

comment:17 Changed 3 weeks ago by cehoyos

  • Reproduced by developer set
  • Resolution invalid deleted
  • Status changed from closed to reopened

I have sent a patch that fixes the issue described in the ticket title (unrelated to MABS).

comment:18 Changed 3 weeks ago by cehoyos

  • Component changed from build system to avformat

comment:19 Changed 11 days ago by LigH

I wonder if your commit got lost; I don't see any updates related to "tls" or "ssl" in the github repo since this one (which I suspect to have caused it, but I have no clue, just spotted changes around a "BIO_*" function name mask):

avformat/tls_openssl: move some functions up in the file

Can you link your submitted patch, please? (mere curiosity)

comment:20 Changed 11 days ago by heleppkes

The patch is still on the mailing list, being discussed.

Note: See TracTickets for help on using tickets.