> -----Original Message-----
> From: [email protected] 
> <[email protected]> On Behalf Of Joshua Watt
> Sent: den 23 oktober 2024 23:15
> To: [email protected]
> Cc: Joshua Watt <[email protected]>
> Subject: [OE-core][PATCH v2 3/4] lib: package: Check incompatible licenses at 
> packaging time
> 
> Instead of checking for incompatible licenses in the anonymous python
> and setting '_exclude_incompatible-', (re)check all the packages in
> populate_packages(). This ensures that all packages are processed, even
> dynamically generated ones.
> 
> The use of the '_exclude-incompatible-' variable set in base.bbclass has
> been the mechanism used for per-packages licenses since its it was added

Typo: its it -> it

> as a feature (although with different names for the variable throughout
> history). However, since this misses dynamic packages, calling
> oe.license.skip_incompatible_package_licenses() a second time on the
> actual final package set is a better solution.
> 
> Signed-off-by: Joshua Watt <[email protected]>
> ---
>  meta/classes-global/base.bbclass | 1 -
>  meta/lib/oe/package.py           | 6 +++---
>  2 files changed, 3 insertions(+), 4 deletions(-)
> 
> diff --git a/meta/classes-global/base.bbclass 
> b/meta/classes-global/base.bbclass
> index 5b8663f454d..b81e61fdb72 100644
> --- a/meta/classes-global/base.bbclass
> +++ b/meta/classes-global/base.bbclass
> @@ -581,7 +581,6 @@ python () {
>              if unskipped_pkgs:
>                  for pkg in skipped_pkgs:
>                      bb.debug(1, "Skipping the package %s at do_rootfs 
> because of incompatible license(s): %s" % (pkg, ' '.join(skipped_pkgs[pkg])))
> -                    d.setVar('_exclude_incompatible-' + pkg, ' 
> '.join(skipped_pkgs[pkg]))
>                  for pkg in unskipped_pkgs:
>                      bb.debug(1, "Including the package %s" % pkg)
>              else:
> diff --git a/meta/lib/oe/package.py b/meta/lib/oe/package.py
> index c213a9a3ca6..480408e41e3 100644
> --- a/meta/lib/oe/package.py
> +++ b/meta/lib/oe/package.py
> @@ -1447,10 +1447,10 @@ def populate_packages(d):
> 
>      # Handle excluding packages with incompatible licenses
>      package_list = []
> +    skipped_pkgs = oe.license.skip_incompatible_package_licenses(d, pkgs):
>      for pkg in packages:
> -        licenses = d.getVar('_exclude_incompatible-' + pkg)
> -        if licenses:
> -            msg = "Excluding %s from packaging as it has incompatible 
> license(s): %s" % (pkg, licenses)
> +        if pkg in skipped_pkgs:
> +            msg = "Excluding %s from packaging as it has incompatible 
> license(s): %s" % (pkg, skipped_pkgs[pkg])
>              oe.qa.handle_error("incompatible-license", msg, d)
>          else:
>              package_list.append(pkg)
> --
> 2.46.2

There is still a reference to _exclude_incompatible in package.bbclass. 
Not sure what to do about it (it has to do with variable dependencies 
to trigger do_package to re-run for recipes that are affected by changes 
to INCOMPATIBLE_LICENSE). 

//Peter

-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#206275): 
https://lists.openembedded.org/g/openembedded-core/message/206275
Mute This Topic: https://lists.openembedded.org/mt/109179697/21656
Group Owner: [email protected]
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub 
[[email protected]]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to