[FFmpeg-devel] [PATCH] configure: request explicitly enabled components
epirat07 at gmail.com
Sun Feb 3 17:57:33 EET 2019
On 3 Feb 2019, at 16:24, Marton Balint wrote:
> 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
>>> component get silently disabled. Requesting all explicitly enabled
>>> allows configure to fail and show the missing dependencies instead
>>> our request.
>>> For example if libdav1d is not availble ./configure
>>> 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
>>> 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
>>> $action $list
>>> + test $action = enable && request $list
>> I strongly suspect that this will break regression tests.
> You mean fate with different configure options? I didn't find a fate
> instance explicity enabling a certain component. Even if some
> previously used configure commands error out, that is good IMHO
> because the user will know that a certain component won't be included
> in the build.
>> What exactly does this fix?
>> If you don't "--enable-libdav1d", you cannot get libdav1d.
> That is the point. If I tell configure that I want libdav1d decoder
> (as in --enable-decoder=libdav1d), it should either give it to me or
> error out. It should NOT silently disregard my request. You see the
> --enable-libdav1d error out if libdav1d is not available
> --enable-decoder=libdav1d does not error out if the libdav1d decoder
> is not available
> Also dependencies are often not trivial. Consider that I want the
> blackframe filter:
> ./configure --enable-filter=blackframe
> This succeeds yet it does not enable the filter. Why? Because the
> filter is GPL. How should I know why it got silently disabled if
> configure does not error out?
I agree that when explicitly enabling something, it should be enabled
or cause an error, this is what all build systems I have worked with
do and definitely would be the behavior I would expect from FFmpegs
>> Also, configure's console output shows what was
> That does not tell you why a component got disabled. It is also
> unreasonable to ask the user to always verify that everything stayed
> in which he explicitly enabled.
> ffmpeg-devel mailing list
> ffmpeg-devel at ffmpeg.org
More information about the ffmpeg-devel