package/ffmpeg: Disable rtmpdump support when PolarSSL is enabled
PATCH v2 1/1 package/ffmpeg: Disable rtmpdump support when PolarSSL is enabled
Using rtmpdump with PolarSSL breaks ffmpeg configure:/home/test/autobuild/instance-1/output/host/usr/mips64el-buildroot-linux-gnu/sysroot/usr/lib/librtmp.so: undefined reference to havege_random' /home/test/autobuild/instance-1/output/host/usr/mips64el-buildroot-linux-gnu/sysroot/usr/lib/librtmp.so: undefined reference to havege_init'
This problem could be fixed by enabling POLARSSL_HAVEGE_C:
http://freetz.org/browser/trunk/make/libs/polarssl/patches/050-activate-havege-random-generator-needed-by-rtmpdump.polarssl.patch?rev=10797
This option is however accompanied by a warning in include/polarssl/config.h:
* Warning: the HAVEGE random generator is dependent on timing and specific
* processor traits. It is therefore not advised to use HAVEGE as * your applications primary random generator or primary entropy pool * input. As a secondary input to your entropy pool, it IS able add * the (limited) extra entropy it provides.
Since rtmpdump is not a vital part of ffmpeg it is save to disable rtmpdump support when PolarSSL is used.
Fixes
http://autobuild.buildroot.net/results/ae0/ae0c4bab7975ed2ad77a9f9fd6a300d1327d56b9/
http://autobuild.buildroot.net/results/45d/45dd9adbac449ce0ed66af5b4655b4d9b37faa62/
---
v2: fix rtmpdump/PolarSSL detection (Yann)
package/ffmpeg/ffmpeg.mk | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)
package/ffmpeg/ffmpeg.mk +2 -1
@@ -246,7 +246,8 @@ else FFMPEG_CONF_OPTS += --disable-libbluray endif -ifeq ($(BR2_PACKAGE_RTMPDUMP),y) +# rtmpdump is broken with polarssl +ifeq ($(BR2_PACKAGE_RTMPDUMP):$(BR2_PACKAGE_POLARSSL),y:) FFMPEG_CONF_OPTS += --enable-librtmp FFMPEG_DEPENDENCIES += rtmpdump else
Signature · 1 line
2.6.1
PATCH v2 1/1 package/ffmpeg: Disable rtmpdump support when PolarSSL is enabled
Dear Bernd Kuhls,
Quoted 3 lines · Bernd Kuhls
Using rtmpdump with PolarSSL breaks ffmpeg configure:
/home/test/autobuild/instance-1/output/host/usr/mips64el-buildroot-linux-gnu/sysroot/usr/lib/librtmp.so: undefined reference tohavege_random' /home/test/autobuild/instance-1/output/host/usr/mips64el-buildroot-linux-gnu/sysroot/usr/lib/librtmp.so: undefined reference tohavege_init'
This indicates that polarssl doesn't provide all the symbols needed by librtmp.
So the problem should not be fixed at the ffmpeg level, but at the librtmp level: any other package that will try to link with librtmp will have the same issue.
Quoted 5 lines
package/ffmpeg/ffmpeg.mk +0
-0
package/ffmpeg/ffmpeg.mk else · line 253
Quoted 9 lines
package/ffmpeg/ffmpeg.mk +2
-1@@ -246,7 +246,8 @@ else FFMPEG_CONF_OPTS += --disable-libbluray endif -ifeq ($(BR2_PACKAGE_RTMPDUMP),y) +# rtmpdump is broken with polarssl +ifeq ($(BR2_PACKAGE_RTMPDUMP):$(BR2_PACKAGE_POLARSSL),y:) FFMPEG_CONF_OPTS += --enable-librtmp FFMPEG_DEPENDENCIES += rtmpdump else
The fix should be done in rtmpdump.mk, by disabling the possibility of using polarssl as the crypto library. I guess it has to do with the API change of PolarSSL (Gustavo ?).
Thanks,
Thomas
Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons Embedded Linux, Kernel and Android engineering http://free-electrons.com
PATCH v2 1/1 package/ffmpeg: Disable rtmpdump support when PolarSSL is enabled
Quoted 7 lines · Thomas Petazzoni
Dear Bernd Kuhls,
Quoted 3 lines · Bernd Kuhls
Using rtmpdump with PolarSSL breaks ffmpeg configure:
/home/test/autobuild/instance-1/output/host/usr/mips64el-buildroot-linux-gnu/sysroot/usr/lib/librtmp.so: undefined reference tohavege_random' /home/test/autobuild/instance-1/output/host/usr/mips64el-buildroot-linux-gnu/sysroot/usr/lib/librtmp.so: undefined reference tohavege_init'
Quoted 6 lines
This indicates that polarssl doesn't provide all the symbols needed by librtmp.
So the problem should not be fixed at the ffmpeg level, but at the librtmp level: any other package that will try to link with librtmp will have the same issue.
Hi Thomas, definitely...
Quoted 3 lines
The fix should be done in rtmpdump.mk, by disabling the possibility of using polarssl as the crypto library. I guess it has to do with the API change of PolarSSL (Gustavo ?).
Those are part of the 1.2 API so no issues there.
However rtmpdump has severe issues with it's Makefile and the resulting librtmp.pc.
librtmp.pc.in says:
Requires: @CRYPTO_REQ@
The Makefile says (condensed):
CRYPTO=OPENSSL
#CRYPTO=GNUTLS
...
REQ_GNUTLS=gnutls,hogweed,nettle
REQ_OPENSSL=libssl,libcrypto
...
CRYPTO_REQ=$(REQ_$(CRYPTO))
Hence polarssl is never thrown into the pkgconfig fail, hence it will always fail.
So, as it is, rtmpdump is useless with polarssl even if it builds with it, so your fix is the right one unless rtmpdump is fixed.
Regards.