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 <c...@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 <c...@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? 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
discrepancy:
--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
configure script.
Also, configure's console output shows what was
enabled.
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.
Regards,
Marton
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-devel
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-devel