1
0
mirror of https://git.yoctoproject.org/poky synced 2026-05-30 12:29:55 +00:00

meta: Further LICENSE_FLAGS variable updates

Add further tweaks to comments and variable names for license variable change.

(From OE-Core rev: 4125d86f1d3adc53230c02bce4bab46b8c21116f)

Signed-off-by: Saul Wold <saul.wold@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Saul Wold
2022-02-21 15:39:03 -08:00
committed by Richard Purdie
parent 0b78f36432
commit cc07ffe8f7
2 changed files with 20 additions and 19 deletions
+2 -2
View File
@@ -542,9 +542,9 @@ python () {
unmatched_license_flags = check_license_flags(d) unmatched_license_flags = check_license_flags(d)
if unmatched_license_flags: if unmatched_license_flags:
if len(unmatched_license_flags) == 1: if len(unmatched_license_flags) == 1:
message = "because it has a restricted license '{0}'. Which is not whitelisted in LICENSE_FLAGS_ACCEPTED".format(unmatched_license_flags[0]) message = "because it has a restricted license '{0}'. Which is not listed in LICENSE_FLAGS_ACCEPTED".format(unmatched_license_flags[0])
else: else:
message = "because it has restricted licenses {0}. Which are not whitelisted in LICENSE_FLAGS_ACCEPTED".format( message = "because it has restricted licenses {0}. Which are not listed in LICENSE_FLAGS_ACCEPTED".format(
", ".join("'{0}'".format(f) for f in unmatched_license_flags)) ", ".join("'{0}'".format(f) for f in unmatched_license_flags))
bb.debug(1, "Skipping %s %s" % (pn, message)) bb.debug(1, "Skipping %s %s" % (pn, message))
raise bb.parse.SkipRecipe(message) raise bb.parse.SkipRecipe(message)
+18 -17
View File
@@ -341,30 +341,31 @@ def incompatible_license(d, dont_want_licenses, package=None):
def check_license_flags(d): def check_license_flags(d):
""" """
This function checks if a recipe has any LICENSE_FLAGS that This function checks if a recipe has any LICENSE_FLAGS that
aren't whitelisted. aren't acceptable.
If it does, it returns the all LICENSE_FLAGS missing from the whitelist, or If it does, it returns the all LICENSE_FLAGS missing from the list
all of the LICENSE_FLAGS if there is no whitelist. of acceptable license flags, or all of the LICENSE_FLAGS if there
is no list of acceptable flags.
If everything is is properly whitelisted, it returns None. If everything is is acceptable, it returns None.
""" """
def license_flag_matches(flag, whitelist, pn): def license_flag_matches(flag, acceptlist, pn):
""" """
Return True if flag matches something in whitelist, None if not. Return True if flag matches something in acceptlist, None if not.
Before we test a flag against the whitelist, we append _${PN} Before we test a flag against the acceptlist, we append _${PN}
to it. We then try to match that string against the to it. We then try to match that string against the
whitelist. This covers the normal case, where we expect acceptlist. This covers the normal case, where we expect
LICENSE_FLAGS to be a simple string like 'commercial', which LICENSE_FLAGS to be a simple string like 'commercial', which
the user typically matches exactly in the whitelist by the user typically matches exactly in the acceptlist by
explicitly appending the package name e.g 'commercial_foo'. explicitly appending the package name e.g 'commercial_foo'.
If we fail the match however, we then split the flag across If we fail the match however, we then split the flag across
'_' and append each fragment and test until we either match or '_' and append each fragment and test until we either match or
run out of fragments. run out of fragments.
""" """
flag_pn = ("%s_%s" % (flag, pn)) flag_pn = ("%s_%s" % (flag, pn))
for candidate in whitelist: for candidate in acceptlist:
if flag_pn == candidate: if flag_pn == candidate:
return True return True
@@ -375,27 +376,27 @@ def check_license_flags(d):
if flag_cur: if flag_cur:
flag_cur += "_" flag_cur += "_"
flag_cur += flagment flag_cur += flagment
for candidate in whitelist: for candidate in acceptlist:
if flag_cur == candidate: if flag_cur == candidate:
return True return True
return False return False
def all_license_flags_match(license_flags, whitelist): def all_license_flags_match(license_flags, acceptlist):
""" Return all unmatched flags, None if all flags match """ """ Return all unmatched flags, None if all flags match """
pn = d.getVar('PN') pn = d.getVar('PN')
split_whitelist = whitelist.split() split_acceptlist = acceptlist.split()
flags = [] flags = []
for flag in license_flags.split(): for flag in license_flags.split():
if not license_flag_matches(flag, split_whitelist, pn): if not license_flag_matches(flag, split_acceptlist, pn):
flags.append(flag) flags.append(flag)
return flags if flags else None return flags if flags else None
license_flags = d.getVar('LICENSE_FLAGS') license_flags = d.getVar('LICENSE_FLAGS')
if license_flags: if license_flags:
whitelist = d.getVar('LICENSE_FLAGS_ACCEPTED') acceptlist = d.getVar('LICENSE_FLAGS_ACCEPTED')
if not whitelist: if not acceptlist:
return license_flags.split() return license_flags.split()
unmatched_flags = all_license_flags_match(license_flags, whitelist) unmatched_flags = all_license_flags_match(license_flags, acceptlist)
if unmatched_flags: if unmatched_flags:
return unmatched_flags return unmatched_flags
return None return None