[OE-core] [PATCH v3] libav: set LICENSE and LICENSE_FLAGS according to PACKAGECONFIG options

Andreas Oberritter obi at opendreambox.org
Tue Jul 15 16:39:14 UTC 2014


Hello Matthieu,

On 15.07.2014 16:54, Matthieu Crapet wrote:
> + fix: drop unwanted --enable-libtheora & --enable-libvorbis in EXTRA_OECONF
> 
> Reported-by: Andreas Oberritter <obi at opendreambox.org>
> Signed-off-by: Matthieu Crapet <Matthieu.Crapet at ingenico.com>
> ---
>  meta/recipes-multimedia/libav/libav.inc | 17 ++++++++++-------
>  1 file changed, 10 insertions(+), 7 deletions(-)
> 
> diff --git a/meta/recipes-multimedia/libav/libav.inc b/meta/recipes-multimedia/libav/libav.inc
> index 1d617a2..cd5ac5f 100644
> --- a/meta/recipes-multimedia/libav/libav.inc
> +++ b/meta/recipes-multimedia/libav/libav.inc
> @@ -7,8 +7,7 @@ DESCRIPTION = "Libav is a friendly and community-driven effort to provide its us
>  HOMEPAGE = "http://libav.org/"
>  SECTION = "libs"
>  
> -LICENSE = "GPLv2+"
> -LICENSE_FLAGS = "commercial"
> +LICENSE = "GPLv2+ & LGPLv2.1+"

I think this is wrong (if it means dual licensed). To quote from the
LICENSE file:

"Most files in Libav are under the GNU Lesser General Public License
version 2.1 or later (LGPL v2.1+). Read the file COPYING.LGPLv2.1 for
details. Some other files have MIT/X11/BSD-style licenses. In
combination the LGPL v2.1+ applies to Libav.

Some optional parts of Libav are licensed under the GNU General Public
License version 2 or later (GPL v2+). See the file COPYING.GPLv2 for
details. None of these parts are used by default, you have to explicitly
pass --enable-gpl to configure to activate them. In this case, Libav's
license changes to GPL v2+."

So with --enable-gpl hardcoded in EXTRA_OECONF, GPLv2+ was the right choice.

>  
>  # Provides ffmpeg compat, see http://libav.org/about.html
>  PROVIDES = "ffmpeg"
> @@ -44,14 +43,20 @@ PACKAGECONFIG[vpx] = "--enable-libvpx,--disable-libvpx,libvpx"
>  PACKAGECONFIG[x11] = "--enable-x11grab,--disable-x11grab,virtual/libx11 libxfixes libxext xproto virtual/libsdl"
>  PACKAGECONFIG[x264] = "--enable-libx264,--disable-libx264,x264"
>  
> -# Check codecs that require --enable-nonfree
> -USE_NONFREE = "${@bb.utils.contains_any('PACKAGECONFIG', [ 'faac', 'openssl' ], 'yes', '', d)}"
> +# Check codecs that trigger nonfree license
> +python () {
> +	pkgconfig = (d.getVar('PACKAGECONFIG', True) or "").split()
> +	nonfree = [ 'faac', 'openssl' ]
> +	if set(pkgconfig) & set(nonfree):
> +		d.setVar('LICENSE', 'Proprietary')
> +		d.setVar('LICENSE_FLAGS', 'commercial')
> +}

Do you think it would be feasible to add code which decides whether to
set --enable-gpl or not? Because --enable-gpl forbids linking libav for
programs with incompatible licenses.

While your approach is to set the license according to enabled codecs,
my approach is to choose the license and then enable all possible
codecs, because for me the license is more important than some codecs. I
think libav would abort configuration anyway if it encountered
incompatible flags.

Regards,
Andreas



More information about the Openembedded-core mailing list