[FFmpeg-devel] [PATCH] configure: request explicitly enabled components

Hendrik Leppkes h.leppkes at gmail.com
Tue Feb 5 02:13:18 EET 2019


On Tue, Feb 5, 2019 at 1:01 AM Carl Eugen Hoyos <ceffmpeg at gmail.com> wrote:
>
> 2019-02-05 0:53 GMT+01:00, Marton Balint <cus at passwd.hu>:
> >
> >
> > On Tue, 5 Feb 2019, Carl Eugen Hoyos wrote:
> >
> >> 2019-02-03 16:24 GMT+01:00, Marton Balint <cus at passwd.hu>:
> >>>
> >>>
> >>> On Sun, 3 Feb 2019, Carl Eugen Hoyos wrote:
> >>>
> >>>> 2019-01-28 2:00 GMT+01:00, Marton Balint <cus at passwd.hu>:
> >>>>> If we enable a component but a dependant library is disabled, then the
> >>>>> enabled
> >>>>> component get silently disabled. Requesting all explicitly enabled
> >>>>> components
> >>>>> allows configure to fail and show the missing dependencies instead of
> >>>>> ignoring
> >>>>> our request.
> >>>>>
> >>>>> For example if libdav1d is not availble ./configure
> >>>>> --enable-decoder=libdav1d
> >>>>> succeeds but the libdav1d decoder will not be enabled. After the patch
> >>>>> the
> >>>>> configure line will fail with the following message:
> >>>>> ERROR: libdav1d_decoder requested, but not all dependencies are
> >>>>> satisfied:
> >>>>> libdav1d
> >>>>>
> >>>>> Signed-off-by: Marton Balint <cus at passwd.hu>
> >>>>> ---
> >>>>>  configure | 1 +
> >>>>>  1 file changed, 1 insertion(+)
> >>>>>
> >>>>> diff --git a/configure b/configure
> >>>>> index e1412352fa..1f6c6a7311 100755
> >>>>> --- a/configure
> >>>>> +++ b/configure
> >>>>> @@ -3881,6 +3881,7 @@ for opt do
> >>>>>              list=$(filter "$name" $list)
> >>>>>              [ "$list" = "" ] && warn "Option $opt did not match
> >>>>> anything"
> >>>>>              $action $list
> >>>>
> >>>>> +            test $action = enable && request $list
> >>>>
> >>>> I strongly suspect that this will break regression tests.
> >>>
> >>> You mean fate with different configure options?
> >>
> >> No, I believe this would break regression tests with
> >> --disable-everything (and an enable for a feature that
> >> was added in the meantime and is needed to reproduce
> >> the issue).
> >
> > Could you give a more concrete example? I am not sure I
> > understand what you mean.
>
> $ ./configure --disable-everything --enable-bsf=prores_metadata
> currently does not fail for current FFmpeg and 936d18fb, this
> would change for future new features with your patch.
>

What sort of testing would involve trying to enable a certain
component, and then *succeeding* when the component does not exist? If
anything, you would make it fail sooner, before any actual testing
that would presumably actually fail later (otherwise, what would be
the point exactly?)

Please elaborate more then one random command line that without
explanation does not really make sense. If I request a certain
component, I would expect one of two things: I get an error, or I get
a build that includes that component. Anything else would be
unexpected, and therefor bad.
We have this wanted behavior with other options already, just not this
one, so its  not even consistent at all.

- Hendrik


More information about the ffmpeg-devel mailing list