[FFmpeg-devel] a potential licensing conflict in libavfilter
Stefano Sabatini
stefano.sabatini-lala at poste.it
Sat Jul 2 12:19:44 CEST 2011
On date Saturday 2011-07-02 02:00:40 -0700, D M German encoded:
>
> hi everybody,
>
> I am a researcher who specializes in licensing of software (for example
> we have developed a licensing identification tool called ninka:
> http://ninka.turingmachine.org)
>
> My collaborators and I are currently trying to develop a tool to try to
> understand what sources are used to create a binary. We felt that ffmpeg
> was a good candidate to test our tool due to the fact that its binaries
> can be generated under different licenses (each with different
> contents).
>
> We compiled ffmpeg with the default parameters, and found that one file:
> libavfilter/x86/gradfun.c (GPLv2+) appears to be used to create the LGPL
> libavfilter library.
>
> Looking at the build files. The bottom of libavfilter/Makefile contains:
>
> ----------------------------------------------------------------------
> DIRS = x86 libmpcodecs
> ----------------------------------------------------------------------
>
> The directory libmpcodecs does not contain a Makefile (hence it is
> ignored). But x86 contains a Makefile:
>
> MMX-OBJS-$(CONFIG_YADIF_FILTER) += x86/yadif.o
> MMX-OBJS-$(CONFIG_GRADFUN_FILTER) += x86/gradfun.o
>
> libavfilter/x86/gradfun.c and libavfilter/x86/yadif.c are GPLv2+
>
> We have traced the building of the library;
>
> - libavfilter/x86/yadif.c does not get compiled. But
> - libavfilter/x86/gradfun.c does, and it seems to be incorporated into the
> library.
>
> And the symbol is in the output library:
>
> dmg at i:/tmp/ffmpeg$ nm -a ./libavfilter/libavfilter.a | grep ff_gradfun_filter_line_mmx2
> U ff_gradfun_filter_line_mmx2
> 00000250 T ff_gradfun_filter_line_mmx2
>
>
> Here is the dependency graph for the library (libavfilter.a) we have
> built. The file in question (libavfilter/x86/gradfun.c) is shown in
> red. Files in ffmpeg are in blue, the library in green (far right).
>
> http://turingmachine.org/~dmg/temp/ffmpeg_no_gpl_libavfilter.pdf
>
>
> Did we find a potential bug or are we missing something?
>
> Thanks a lot for any help!
That's because the gradfun C code was relicensed as LGPL, while the
assembly routines are still GPL. Possible solutions:
* relicense as LGPL the assembly code
* compile optimizations only in case GPL is enabled (like in patch)
I'm CC-ing Nolan and Loren, as they are the copyright holders and they
have to decide regarding the eventual relicensing.
Note: the x86/gradfun.c file has no copyright notice.
--
FFmpeg = Fundamentalist and Forgiving Murdering Perennial Elected Guru
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0001-gradfun-disable-compilation-of-x86-optimizations-in-.patch
Type: text/x-diff
Size: 1767 bytes
Desc: not available
URL: <http://ffmpeg.org/pipermail/ffmpeg-devel/attachments/20110702/072ce810/attachment.bin>
More information about the ffmpeg-devel
mailing list