copyleft_filter.bbclass: restore possiblity to filter on type

Since the changes introduced in ae9102bda3
("copyleft_filter.bbclass: Allow to filter on name"), it is
impossible to filter on the recipe type, all recipes are
treated as though they should be included if the license
matches, irrespective of the COPYLEFT_RECIPE_TYPES
variable.

Fix this.

(From OE-Core rev: 23b520c42e93e47e3a19037877281af673144b31)

Signed-off-by: André Draszik <adraszik@tycoint.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>

(cherry picked from commit e612dfa520c7d7ecf58006e82189be601204f38d)
Signed-off-by: André Draszik <adraszik@tycoint.com>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
André Draszik 2017-10-06 13:12:49 +01:00 committed by Richard Purdie
parent 0c9925f229
commit 5399eb5636
1 changed files with 17 additions and 17 deletions

View File

@ -47,27 +47,27 @@ def copyleft_should_include(d):
import oe.license
from fnmatch import fnmatchcase as fnmatch
included, motive = False, 'recipe did not match anything'
recipe_type = d.getVar('COPYLEFT_RECIPE_TYPE')
if recipe_type not in oe.data.typed_value('COPYLEFT_RECIPE_TYPES', d):
include, motive = False, 'recipe type "%s" is excluded' % recipe_type
include = oe.data.typed_value('COPYLEFT_LICENSE_INCLUDE', d)
exclude = oe.data.typed_value('COPYLEFT_LICENSE_EXCLUDE', d)
try:
is_included, reason = oe.license.is_included(d.getVar('LICENSE'), include, exclude)
except oe.license.LicenseError as exc:
bb.fatal('%s: %s' % (d.getVar('PF'), exc))
included, motive = False, 'recipe type "%s" is excluded' % recipe_type
else:
if is_included:
if reason:
included, motive = True, 'recipe has included licenses: %s' % ', '.join(reason)
else:
included, motive = False, 'recipe does not include a copyleft license'
included, motive = False, 'recipe did not match anything'
include = oe.data.typed_value('COPYLEFT_LICENSE_INCLUDE', d)
exclude = oe.data.typed_value('COPYLEFT_LICENSE_EXCLUDE', d)
try:
is_included, reason = oe.license.is_included(d.getVar('LICENSE'), include, exclude)
except oe.license.LicenseError as exc:
bb.fatal('%s: %s' % (d.getVar('PF'), exc))
else:
included, motive = False, 'recipe has excluded licenses: %s' % ', '.join(reason)
if is_included:
if reason:
included, motive = True, 'recipe has included licenses: %s' % ', '.join(reason)
else:
included, motive = False, 'recipe does not include a copyleft license'
else:
included, motive = False, 'recipe has excluded licenses: %s' % ', '.join(reason)
if any(fnmatch(d.getVar('PN'), name) \
for name in oe.data.typed_value('COPYLEFT_PN_INCLUDE', d)):