Skip to contentSkip to conversation

package/ffmpeg: Add support for GnuTLS

PATCH New Bernd Kuhls 3 participants 4 messages Oct 17, 2015 – Oct 19, 2015

lore
Share & tools
lore
#0 lore raw

PATCH v4 1/1 package/ffmpeg: Add support for GnuTLS

Besides OpenSSL ffmpeg also supports GnuTLS.

If both GnuTLS and OpenSSL are enabled, the former takes precedence over the latter:
http://git.videolan.org/?p=ffmpeg.git;a=blob;f=configure;h=7f9fed31a491ed0991aee2d354dba82e54e3291e;hb=refs/heads/release/2.8#l2719

---
v4: Removed Kconfig options (Thomas)
v3: rebased
v2: OpenSSL and gpl'ed code from ffmpeg play together when nonfree

 package/ffmpeg/ffmpeg.mk | 6 ++++++
 1 file changed, 6 insertions(+)
package/ffmpeg/ffmpeg.mk +6 -0
index 287338d..d4815ca 100644
@@ -200,6 +200,11 @@ else
 FFMPEG_CONF_OPTS += --disable-libfdk-aac
 endif
 
+ifeq ($(BR2_PACKAGE_GNUTLS),y)
+FFMPEG_CONF_OPTS += --enable-gnutls --disable-openssl
+FFMPEG_DEPENDENCIES += gnutls
+else
+FFMPEG_CONF_OPTS += --disable-gnutls
 ifeq ($(BR2_PACKAGE_OPENSSL),y)
 # openssl isn't license compatible with GPL
 ifeq ($(BR2_PACKAGE_FFMPEG_GPL)x$(BR2_PACKAGE_FFMPEG_NONFREE),yx)
@@ -211,6 +216,7 @@ endif
 else
 FFMPEG_CONF_OPTS += --disable-openssl
 endif
+endif
 
 ifeq ($(BR2_PACKAGE_LIBDCADEC),y)
 FFMPEG_CONF_OPTS += --enable-libdcadec
Signature · 1 line
2.6.1
#1 lore raw

PATCH v4 1/1 package/ffmpeg: Add support for GnuTLS

Bernd, All,

On 2015-10-17 21:38 +0200, Bernd Kuhls spake thusly:

Quoted 7 lines

Besides OpenSSL ffmpeg also supports GnuTLS.

If both GnuTLS and OpenSSL are enabled, the former takes precedence over the latter:
http://git.videolan.org/?p=ffmpeg.git;a=blob;f=configure;h=7f9fed31a491ed0991aee2d354dba82e54e3291e;hb=refs/heads/release/2.8#l2719

Quoted 2 lines

---
v4: Removed Kconfig options (Thomas)

And I agreed with Thomas when we talked about this on IRC yesterday. ;-)

Regards,
Yann E. MORIN.

Quoted 37 lines

v3: rebased
v2: OpenSSL and gpl'ed code from ffmpeg play together when nonfree

 package/ffmpeg/ffmpeg.mk | 6 ++++++
 1 file changed, 6 insertions(+)
package/ffmpeg/ffmpeg.mk +6 -0
index 287338d..d4815ca 100644
@@ -200,6 +200,11 @@ else
 FFMPEG_CONF_OPTS += --disable-libfdk-aac
 endif
 
+ifeq ($(BR2_PACKAGE_GNUTLS),y)
+FFMPEG_CONF_OPTS += --enable-gnutls --disable-openssl
+FFMPEG_DEPENDENCIES += gnutls
+else
+FFMPEG_CONF_OPTS += --disable-gnutls
 ifeq ($(BR2_PACKAGE_OPENSSL),y)
 # openssl isn't license compatible with GPL
 ifeq ($(BR2_PACKAGE_FFMPEG_GPL)x$(BR2_PACKAGE_FFMPEG_NONFREE),yx)
@@ -211,6 +216,7 @@ endif
 else
 FFMPEG_CONF_OPTS += --disable-openssl
 endif
+endif
 
 ifeq ($(BR2_PACKAGE_LIBDCADEC),y)
 FFMPEG_CONF_OPTS += --enable-libdcadec
Signature · 6 lines
2.6.1

_______________________________________________
buildroot mailing list
buildroot at busybox.net
http://lists.busybox.net/mailman/listinfo/buildroot
Signature · 6 lines
.-----------------.--------------------.------------------.--------------------.
|  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___               |
| +33 223 225 172 `------------.-------:  X  AGAINST      |  \e/  There is no  |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |
'------------------------------^-------^------------------^--------------------'
#2 lore raw

PATCH v4 1/1 package/ffmpeg: Add support for GnuTLS

In reply to Bernd Kuhls

Bernd, Yann,

Quoted 11 lines · Bernd Kuhls

Besides OpenSSL ffmpeg also supports GnuTLS.

If both GnuTLS and OpenSSL are enabled, the former takes precedence over the latter:
http://git.videolan.org/?p=ffmpeg.git;a=blob;f=configure;h=7f9fed31a491ed0991aee2d354dba82e54e3291e;hb=refs/heads/release/2.8#l2719

---
v4: Removed Kconfig options (Thomas)
v3: rebased
v2: OpenSSL and gpl'ed code from ffmpeg play together when nonfree

I've applied. However, I find the code to not be very pretty. What about something like this instead:

ifeq ($(BR2_PACKAGE_GNUTLS),y)
FFMPEG_CONF_OPTS += --enable-gnutls --disable-openssl
FFMPEG_DEPENDENCIES += gnutls
# OpenSSL license is not compatible with the LGPL license of ffmpeg.
else ifeq ($(BR2_PACKAGE_OPENSSL):$(BR2_PACKAGE_FFMPEG_GPL):$(BR2_PACKAGE_FFMPEG_NONFREE),y::y) FFMPEG_CONF_OPTS += --enable-openssl
FFMPEG_DEPENDENCIES += openssl
else
FFMPEG_CONF_OPTS += --disable-gnutls --disable-openssl
endif

I think it is functionally equivalent, but much nicer to read. If you agree (and the above works), can you send a patch doing this?

Thanks a lot!

Thomas

Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com
#3 lore raw

PATCH v4 1/1 package/ffmpeg: Add support for GnuTLS

Hi Thomas,

Am Sun, 18 Oct 2015 15:45:30 +0200 schrieb Thomas Petazzoni:

Quoted 2 lines

# OpenSSL license is not compatible with the LGPL license of ffmpeg. else ifeq ($(BR2_PACKAGE_OPENSSL):$(BR2_PACKAGE_FFMPEG_GPL)

$(BR2_PACKAGE_FFMPEG_NONFREE),y::y)

Quoted 8 lines

FFMPEG_CONF_OPTS += --enable-openssl FFMPEG_DEPENDENCIES += openssl
else
FFMPEG_CONF_OPTS += --disable-gnutls --disable-openssl endif

I think it is functionally equivalent, but much nicer to read. If you agree (and the above works), can you send a patch doing this?

your code does not duplicate the logic of ffmpeg configure. In your proposal the following settings are required for OpenSSL support:

BR2_PACKAGE_FFMPEG_GPL disabled
BR2_PACKAGE_FFMPEG_NONFREE enabled

This is one of three valid combinations, ffmpeg configure also accepts these combinations for OpenSSL support:

BR2_PACKAGE_FFMPEG_GPL disabled
BR2_PACKAGE_FFMPEG_NONFREE disabled
and
BR2_PACKAGE_FFMPEG_GPL enabled
BR2_PACKAGE_FFMPEG_NONFREE enabled

because in

http://git.videolan.org/?
p=ffmpeg.git;a=blob;f=configure;h=7f9fed31a491ed0991aee2d354dba82e54e3291e;hb=refs/ heads/release/2.8#l4664

the following code line

enabled gpl && die_license_disabled_gpl nonfree openssl

checks whether --enable-gpl was issued and breaks only if --enable- nonfree is not used at the same time like in the third example.

If --enable-gpl is not used, like in the first and second example, there will be no OpenSSL-related license checks during ffmpeg configure.

In other words: You can enable gpl-only code in ffmpeg along with OpenSSL support if you do not re-distribute the resulting binaries. If you do not enable gpl-only code you can do what you want regarding OpenSSL ;)

I am a bit lost atm trying to mirror this logic in an optimized form in package/ffmpeg/ffmpeg.mk as requested, sorry.

Regards, Bernd