From f72889eb00fbb6be645f6c67012c2d81b7a06b64 Mon Sep 17 00:00:00 2001 From: Stefan Herbrechtsmeier Date: Thu, 14 Apr 2022 13:06:35 +0200 Subject: recipetool: Do not use mutable default arguments in Python Remove mutable default arguments in Python because they can lead to all sorts of nasty and horrible bugs. https://florimond.dev/en/posts/2018/08/python-mutable-defaults-are-the-source-of-all-evil/ Revert `recipetool: Change default paramter fallback_licenses of function split_pkg_licenses from None to []` and instead check fallback_licenses before use. (From OE-Core rev: 99dee60b8db557f54783bf0f61098587badc683c) Signed-off-by: Stefan Herbrechtsmeier Signed-off-by: Luca Ceresoli Signed-off-by: Richard Purdie --- scripts/lib/recipetool/create.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'scripts/lib/recipetool/create.py') diff --git a/scripts/lib/recipetool/create.py b/scripts/lib/recipetool/create.py index 220465ed2f..824ac6350d 100644 --- a/scripts/lib/recipetool/create.py +++ b/scripts/lib/recipetool/create.py @@ -1235,7 +1235,7 @@ def guess_license(srctree, d): return licenses -def split_pkg_licenses(licvalues, packages, outlines, fallback_licenses=[], pn='${PN}'): +def split_pkg_licenses(licvalues, packages, outlines, fallback_licenses=None, pn='${PN}'): """ Given a list of (license, path, md5sum) as returned by guess_license(), a dict of package name to path mappings, write out a set of @@ -1258,7 +1258,7 @@ def split_pkg_licenses(licvalues, packages, outlines, fallback_licenses=[], pn=' for pkgname in packages: # Assume AND operator between license files license = ' & '.join(list(set(pkglicenses.get(pkgname, ['Unknown'])))) or 'Unknown' - if license == 'Unknown' and pkgname in fallback_licenses: + if license == 'Unknown' and fallback_licenses and pkgname in fallback_licenses: license = fallback_licenses[pkgname] licenses = tidy_licenses(license) license = ' & '.join(licenses) -- cgit v1.2.3-54-g00ecf