Opened 7 years ago

Closed 4 years ago

Last modified 4 years ago

#6580 closed defect (worksforme)

ffmpeg doesn't compile with libressl

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

Description

ffmpeg doesn't compile with libressl:

libavformat/tls_openssl.c: In function 'url_bio_create':
libavformat/tls_openssl.c:72:5: error: implicit declaration of function 'BIO_set_init' [-Werror=implicit-function-declaration]
     BIO_set_init(b, 1);
     ^~~~~~~~~~~~
libavformat/tls_openssl.c:73:5: error: implicit declaration of function 'BIO_set_data' [-Werror=implicit-function-declaration]
     BIO_set_data(b, NULL);
     ^~~~~~~~~~~~
libavformat/tls_openssl.c: In function 'url_bio_bread':
libavformat/tls_openssl.c:89:25: error: implicit declaration of function 'BIO_get_data' [-Werror=implicit-function-declaration]
 #define GET_BIO_DATA(x) BIO_get_data(x)
                         ^
libavformat/tls_openssl.c:96:21: note: in expansion of macro 'GET_BIO_DATA'
     URLContext *h = GET_BIO_DATA(b);
                     ^~~~~~~~~~~~
libavformat/tls_openssl.c:89:25: warning: initialization makes pointer from integer without a cast [-Wint-conversion]
 #define GET_BIO_DATA(x) BIO_get_data(x)
                         ^
libavformat/tls_openssl.c:96:21: note: in expansion of macro 'GET_BIO_DATA'
     URLContext *h = GET_BIO_DATA(b);
                     ^~~~~~~~~~~~
libavformat/tls_openssl.c: In function 'url_bio_bwrite':
libavformat/tls_openssl.c:89:25: warning: initialization makes pointer from integer without a cast [-Wint-conversion]
 #define GET_BIO_DATA(x) BIO_get_data(x)
                         ^
libavformat/tls_openssl.c:108:21: note: in expansion of macro 'GET_BIO_DATA'
     URLContext *h = GET_BIO_DATA(b);
                     ^~~~~~~~~~~~
libavformat/tls_openssl.c: In function 'tls_close':
libavformat/tls_openssl.c:213:9: error: implicit declaration of function 'BIO_meth_free' [-Werror=implicit-function-declaration]
         BIO_meth_free(c->url_bio_method);
         ^~~~~~~~~~~~~
libavformat/tls_openssl.c: In function 'tls_open':
libavformat/tls_openssl.c:270:25: error: implicit declaration of function 'BIO_meth_new' [-Werror=implicit-function-declaration]
     p->url_bio_method = BIO_meth_new(BIO_TYPE_SOURCE_SINK, "urlprotocol bio");
                         ^~~~~~~~~~~~
libavformat/tls_openssl.c:270:23: warning: assignment makes pointer from integer without a cast [-Wint-conversion]
     p->url_bio_method = BIO_meth_new(BIO_TYPE_SOURCE_SINK, "urlprotocol bio");
                       ^
libavformat/tls_openssl.c:271:5: error: implicit declaration of function 'BIO_meth_set_write' [-Werror=implicit-function-declaration]
     BIO_meth_set_write(p->url_bio_method, url_bio_bwrite);
     ^~~~~~~~~~~~~~~~~~
libavformat/tls_openssl.c:272:5: error: implicit declaration of function 'BIO_meth_set_read' [-Werror=implicit-function-declaration]
     BIO_meth_set_read(p->url_bio_method, url_bio_bread);
     ^~~~~~~~~~~~~~~~~
libavformat/tls_openssl.c:273:5: error: implicit declaration of function 'BIO_meth_set_puts' [-Werror=implicit-function-declaration]
     BIO_meth_set_puts(p->url_bio_method, url_bio_bputs);
     ^~~~~~~~~~~~~~~~~
libavformat/tls_openssl.c:274:5: error: implicit declaration of function 'BIO_meth_set_ctrl' [-Werror=implicit-function-declaration]
     BIO_meth_set_ctrl(p->url_bio_method, url_bio_ctrl);
     ^~~~~~~~~~~~~~~~~
libavformat/tls_openssl.c:275:5: error: implicit declaration of function 'BIO_meth_set_create' [-Werror=implicit-function-declaration]
     BIO_meth_set_create(p->url_bio_method, url_bio_create);
     ^~~~~~~~~~~~~~~~~~~
libavformat/tls_openssl.c:276:5: error: implicit declaration of function 'BIO_meth_set_destroy' [-Werror=implicit-function-declaration]
     BIO_meth_set_destroy(p->url_bio_method, url_bio_destroy);
     ^~~~~~~~~~~~~~~~~~~~
CC	libavformat/udp.o
CC	libavformat/uncodedframecrcenc.o
CC	libavformat/unix.o
CC	libavformat/url.o
cc1: some warnings being treated as errors
make: *** [ffbuild/common.mak:60: libavformat/tls_openssl.o] Error 1
make: *** Waiting for unfinished jobs....
The command '/bin/sh -c DIR=$(mktemp -d) && cd ${DIR} &&         git clone --depth 1 https://github.com/FFmpeg/FFmpeg.git . &&         ./configure         --bindir="${SRC}/bin"         --disable-debug         --disable-doc         --disable-ffplay         --disable-static         --enable-avresample         --enable-gpl         --enable-libass         --enable-libopencore-amrnb         --enable-libopencore-amrwb         --enable-libfdk_aac         --enable-libfreetype         --enable-libvidstab         --enable-libmp3lame         --enable-libopus         --enable-libvorbis         --enable-libvpx         --enable-libx264         --enable-libx265         --enable-nonfree         --enable-openssl         --enable-postproc         --enable-shared         --enable-small         --enable-version3         --extra-cflags="-I${SRC}/include"         --extra-ldflags="-L${SRC}/lib"         --extra-libs=-ldl         --prefix="${SRC}" &&         make &&         make install &&         make distclean &&         hash -r &&         cd tools &&         make qt-faststart &&         cp qt-faststart ${SRC}/bin &&         rm -rf ${DIR}' returned a non-zero code: 2
Romans-Mac-Pro.local ➜  video  docker build . -f alpine.Dockerfile
Sending build context to Docker daemon  26.62kB
Step 1/29 : FROM ruby:alpine3.6
 ---> bf9e0ff527d0
Step 2/29 : MAINTAINER Roman Gaufman <roman@xanview.com>
 ---> Using cache
 ---> ff49205b17b0
Step 3/29 : CMD "/bin/bash"
 ---> Using cache
 ---> 9ef16fce29df
Step 4/29 : WORKDIR /tmp/workdir
 ---> Using cache
 ---> 2444d14c3f72
Step 5/29 : ENV NASM_VERSION 2.14rc0 LAME_VERSION 3.99.5 LIBASS_VERSION 0.13.7 OGG_VERSION 1.3.2 OPENCOREAMR_VERSION 0.1.4 OPUS_VERSION 1.2 VORBIS_VERSION 1.3.5 VPX_VERSION 1.6.1 X265_VERSION 2.5 FREETYPE_VERSION 2.5.5 FRIBIDI_VERSION 0.19.7 FONTCONFIG_VERSION 2.12.4 LIBVIDSTAB_VERSION 1.1.0 PKG_CONFIG_PATH /usr/local/lib/pkgconfig SRC /usr/local buildDeps "coreutils                     tar                     file                     autoconf                     automake                     cmake                     curl                     bzip2                     g++                     gcc                     git                     gperf                     libtool                     make                     perl                     python                     yasm                     libsndfile-dev                     python3-dev                     libva-dev" MAKEFLAGS "-j5"
 ---> Using cache

This patch fixes the problem: https://raw.githubusercontent.com/gentoo/libressl/master/media-video/ffmpeg/files/ffmpeg-3.3-libressl.patch

Change History (4)

comment:1 by Carl Eugen Hoyos, 7 years ago

Please remember to send the patch to the development mailing list if you want to see this fixed.

comment:2 by Balling, 4 years ago

Status: newopen

comment:3 by Carl Eugen Hoyos, 4 years ago

Component: undeterminedavformat
Keywords: openssl added
Resolution: worksforme
Status: openclosed

Compilation against libressl works fine on Alpine 3.10.3.

comment:4 by Carl Eugen Hoyos, 4 years ago

Keywords: libopenssl added; openssl removed
Note: See TracTickets for help on using tickets.