Bug 215306 - multimedia/ffmpeg: New RTMP group breaks configuration
Summary: multimedia/ffmpeg: New RTMP group breaks configuration
Status: Closed FIXED
Alias: None
Product: Ports & Packages
Classification: Unclassified
Component: Individual Port(s) (show other bugs)
Version: Latest
Hardware: Any Any
: --- Affects Some People
Assignee: freebsd-multimedia (Nobody)
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2016-12-14 22:12 UTC by Laurence 'GreenReaper' Parry
Modified: 2016-12-14 23:25 UTC (History)
0 users

See Also:
bugzilla: maintainer-feedback? (multimedia)


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Laurence 'GreenReaper' Parry 2016-12-14 22:12:24 UTC
The Makefile has been broken with the latest release 3.2.2_1,1, resulting in:

====> You cannot select multiple options from the RTMP radio
Config is invalid. Re-edit? [Y/n] n

The change in question:
https://svnweb.freebsd.org/ports/head/multimedia/ffmpeg/Makefile?r1=428588&r2=428587&pathrev=428588

The config screen looks like this:

xqqqqqqqqqqqqqqqqqqqqqqqq RTMP(T)E protocol support qqqqqqqqqqqqqqqqqqqqqqqx x
( )GCRYPT            Use GNU crypt library instead of OpenSSL           x x
(*) GMP               GMP (multiple precision arithmetic) support        x x
( )LIBRTMP           RTMP(T)E protocol support via librtmp              x x
( ) OPENSSL           SSL/TLS support via OpenSSL                        x x
x xqqqqqqqqqqqqqqqqqqqqqqqqqqq SSL protocol support qqqqqqqqqqqqqqqqqqqqqqqqqx x
( ) GNUTLS            SSL/TLS support via GnuTLS                         x x
(*) OPENSSL           SSL/TLS support via OpenSSL                        x x
mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq

On my system OpenSSL is selected and GMP is also selected, which it doesn't like. Maybe it was tested by someone using GNUTLS or with GMP turned off?

In any case, this group which includes GCrypt, GMP librtmp and OpenSSL is obviously not at all right:

OPTIONS_RADIO_RTMP=     GCRYPT GMP LIBRTMP OPENSSL

I don't know if that is "right", but to get it to compile, I:
* put GMP back in OPTIONS_DEFINE
* added LIBRTMP to OPTIONS_DEFINE
* removed RTMP from OPTIONS_RADIO
* commented out OPTIONS_RADIO_RTMP entirely
Comment 1 Jan Beich freebsd_committer 2016-12-14 22:50:52 UTC
Putting all into _DEFINE basket would make FFmpeg actually build only librmtp support.

  $ ./configure --help | fgrep rtmp
    --enable-gcrypt          enable gcrypt, needed for rtmp(t)e support
			     if openssl, librtmp or gmp is not used [no]
    --enable-gmp             enable gmp, needed for rtmp(t)e support
			     if openssl or librtmp is not used [no]
    --enable-librtmp         enable RTMP[E] support via librtmp [no]

  $ cat ./configure
  [...]
  ffrtmpcrypt_protocol_deps="!librtmp_protocol"
  ffrtmpcrypt_protocol_deps_any="gcrypt gmp openssl"
  ffrtmpcrypt_protocol_select="tcp_protocol"
  ffrtmphttp_protocol_deps="!librtmp_protocol"
  ffrtmphttp_protocol_select="http_protocol"
  [...]
  librtmp_protocol_deps="librtmp"
  librtmpe_protocol_deps="librtmp"
  librtmps_protocol_deps="librtmp"
  librtmpt_protocol_deps="librtmp"
  librtmpte_protocol_deps="librtmp"
  [...]
  rtmp_protocol_deps="!librtmp_protocol"
  rtmp_protocol_select="tcp_protocol"
  rtmpe_protocol_select="ffrtmpcrypt_protocol"
  rtmps_protocol_deps="!librtmp_protocol"
  rtmps_protocol_select="tls_protocol"
  rtmpt_protocol_select="ffrtmphttp_protocol"
  rtmpte_protocol_select="ffrtmpcrypt_protocol ffrtmphttp_protocol"
  rtmpts_protocol_select="ffrtmphttp_protocol https_protocol"
Comment 2 commit-hook freebsd_committer 2016-12-14 23:17:49 UTC
A commit references this bug:

Author: jbeich
Date: Wed Dec 14 23:17:36 UTC 2016
New revision: 428598
URL: https://svnweb.freebsd.org/changeset/ports/428598

Log:
  multimedia/ffmpeg: limit OPENSSL to one _RADIO group

  Worse is better. To fix properly one would have to replace OPENSSL in
  RTMP with a synthetic option that _IMPLIES=OPENSSL.

  PR:		215306
  Reported by:	Laurence 'GreenReaper' Parry

Changes:
  head/multimedia/ffmpeg/Makefile
Comment 3 Jan Beich freebsd_committer 2016-12-14 23:25:15 UTC
As you're using OPENSSL disabling GMP may save you an extra dependency but otherwise shouldn't hurt. The defaults are adjusted for GNUTLS case. Alas, _IMPLIES and _PREVENTS cannot express option suggestions.