mpd: add commercial LICENSE_FLAGS when ffmpeg or aac PACKAGECONFIG is enabled

* resolves bitbake world error:
  ERROR: Nothing PROVIDES 'ffmpeg' (but meta-multimedia/recipes-multimedia/musicpd/mpd_0.20.22.bb DEPENDS on or otherwise requires it)
  ffmpeg was skipped: because it has a restricted license 'commercial'. Which is not whitelisted in LICENSE_FLAGS_WHITELIST
  ERROR: Required build target 'meta-world-pkgdata' has no buildable providers.
  Missing or unbuildable dependency chain was: ['meta-world-pkgdata', 'mpd', 'ffmpeg']

* aac is conditionally included in PACKAGECONFIG based on LICENSE_FLAGS
  since:

  commit f5d271fd54
  Author: Armin Kuster <akuster808@gmail.com>
  Date:   Mon Oct 1 08:05:28 2018 -0700

    mpd: enable aac PACKAGECONFIG only with commercial LICENSE_FLAGS

  maybe we could use the same for ffmpeg, but the conditional should
  be a bit more complicated, because the aac support is whitelisted by
  either commercial, commercial_faad2 or faad2 in LICENSE_FLAGS_WHITELIST
  not just currently checked 'commercial'.

  and we cannot use LICENSE_FLAGS conditional in both, because that leads to
  bb.data_smart.ExpansionError: Failure expanding variable LICENSE_FLAGS, expression was
  ${@bb.utils.contains('PACKAGECONFIG', 'ffmpeg', 'commercial', '', d)}
  which triggered exception RecursionError: maximum recursion depth exceeded

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
This commit is contained in:
Martin Jansa
2020-10-19 13:50:40 +02:00
committed by Khem Raj
parent dfd5685ca7
commit 8c80754a52
@@ -1,6 +1,9 @@
SUMMARY = "Music Player Daemon" SUMMARY = "Music Player Daemon"
LICENSE = "GPLv2" LICENSE = "GPLv2"
LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe" LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe"
LICENSE_FLAGS = "${@bb.utils.contains_any('PACKAGECONFIG', ['ffmpeg', 'aac'], 'commercial', '', d)}"
HOMEPAGE ="http://www.musicpd.org" HOMEPAGE ="http://www.musicpd.org"
inherit autotools useradd systemd pkgconfig inherit autotools useradd systemd pkgconfig
@@ -27,8 +30,7 @@ S = "${WORKDIR}/git"
EXTRA_OECONF += "${@bb.utils.contains('DISTRO_FEATURES', 'systemd', '--with-systemdsystemunitdir=${systemd_unitdir}/system/', '--without-systemdsystemunitdir', d)}" EXTRA_OECONF += "${@bb.utils.contains('DISTRO_FEATURES', 'systemd', '--with-systemdsystemunitdir=${systemd_unitdir}/system/', '--without-systemdsystemunitdir', d)}"
PACKAGECONFIG ??= "alsa ao bzip2 daemon ffmpeg fifo flac fluidsynth iso9660 jack libsamplerate libwrap httpd mms mpg123 modplug sndfile upnp openal opus oss recorder vorbis wavpack zlib" PACKAGECONFIG ??= "aac alsa ao bzip2 daemon ffmpeg fifo flac fluidsynth iso9660 jack libsamplerate libwrap httpd mms mpg123 modplug sndfile upnp openal opus oss recorder vorbis wavpack zlib"
PACKAGECONFIG_append = " ${@bb.utils.contains('LICENSE_FLAGS', 'commercial', 'aac', '', d)}"
PACKAGECONFIG[aac] = "--enable-aac,--disable-aac,faad2" PACKAGECONFIG[aac] = "--enable-aac,--disable-aac,faad2"
PACKAGECONFIG[alsa] = "--enable-alsa,--disable-alsa,alsa-lib" PACKAGECONFIG[alsa] = "--enable-alsa,--disable-alsa,alsa-lib"