[OE-core] [RFC][PATCH v4] libav: set LICENSE according to PACKAGECONFIG options

2014-07-17 Thread Matthieu Crapet
Experienced users can change license with 'gpl' and 'lic3' PACKAGECONFIG 
switches.

fix: drop unwanted --enable-libtheora & --enable-libvorbis in EXTRA_OECONF

Reported-by: Andreas Oberritter 
Signed-off-by: Matthieu Crapet 
---
 meta/recipes-multimedia/libav/libav.inc | 35 +
 1 file changed, 27 insertions(+), 8 deletions(-)

diff --git a/meta/recipes-multimedia/libav/libav.inc 
b/meta/recipes-multimedia/libav/libav.inc
index 1d617a2..de9770b 100644
--- a/meta/recipes-multimedia/libav/libav.inc
+++ b/meta/recipes-multimedia/libav/libav.inc
@@ -7,7 +7,7 @@ DESCRIPTION = "Libav is a friendly and community-driven effort 
to provide its us
 HOMEPAGE = "http://libav.org/";
 SECTION = "libs"
 
-LICENSE = "GPLv2+"
+LICENSE = "LGPLv2.1+"
 LICENSE_FLAGS = "commercial"
 
 # Provides ffmpeg compat, see http://libav.org/about.html
@@ -29,7 +29,7 @@ BUILD_OPTIMIZATION = "${FULL_OPTIMIZATION}"
 EXTRA_FFCONF_armv7a = "--cpu=cortex-a8"
 EXTRA_FFCONF ?= ""
 
-PACKAGECONFIG ??= "bzip2 x264 theora ${@bb.utils.contains('DISTRO_FEATURES', 
'x11', 'x11', '', d)}"
+PACKAGECONFIG ??= "bzip2 gpl x264 theora 
${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'x11', '', d)}"
 PACKAGECONFIG[bzip2] = "--enable-bzlib,--disable-bzlib,bzip2"
 PACKAGECONFIG[faac] = "--enable-libfaac,--disable-libfaac,faac"
 PACKAGECONFIG[gsm] = "--enable-libgsm,--disable-libgsm,libgsm"
@@ -44,14 +44,35 @@ 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)}"
+# Licenses flags: allow to switch licence LGPL/GPL and v2/v3
+PACKAGECONFIG[gpl] = "--enable-gpl,--disable-gpl"
+PACKAGECONFIG[lic3] = "--enable-version3,--disable-version3"
+
+# Check codecs and license coherency
+python () {
+   pkgconfig = (d.getVar('PACKAGECONFIG', True) or "").split()
+   nonfree = [ 'faac', 'openssl' ]
+   gpl = [ 'x11', 'x264' ]
+   
+   if 'gpl' in pkgconfig:
+   if 'lic3' in pkgconfig:
+   d.setVar('LICENSE', 'GPLv3+')
+   else:
+   d.setVar('LICENSE', 'GPLv2+')
+   elif set(pkgconfig) & set(gpl):
+   raise bb.parse.SkipPackage("incompatible license, please add 
'gpl' in PACKAGECONFIG")
+   elif 'lic3' in pkgconfig:
+   d.setVar('LICENSE', 'LGPLv3+')
+   
+   if set(pkgconfig) & set(nonfree):
+   d.setVar('LICENSE', 'Proprietary')
+   bb.note("Change LICENSE to 'Proprietary'")
+}
 
 EXTRA_OECONF = " \
 --enable-shared \
 --enable-pthreads \
---enable-gpl \
-${@bb.utils.contains('USE_NONFREE', 'yes', '--enable-nonfree', '', d)} \
+${@bb.utils.contains('LICENSE', 'Proprietary', '--enable-nonfree', '', d)} 
\
 --enable-avfilter \
 \
 --cross-prefix=${TARGET_PREFIX} \
@@ -60,8 +81,6 @@ EXTRA_OECONF = " \
 --enable-avserver \
 --enable-avplay \
 --ld="${CCLD}" \
---enable-libtheora  \
---enable-libvorbis \
 --arch=${TARGET_ARCH} \
 --target-os="linux" \
 --enable-cross-compile \
-- 
2.0.0

-- 
___
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-core


Re: [OE-core] [RFC][PATCH v4] libav: set LICENSE according to PACKAGECONFIG options

2014-07-17 Thread Matthieu CRAPET
Hi,

One more note. I've tested with 0.8.11 & 9.13 on OE-Core current git (master).
The only weak point is the use of python anonymous function which is called 
twice each time, is there a better solution ?

Regards,
Matt
-- 
___
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-core