[OE-core] [PATCH 6/6] base.bbclass: improve the incompatible license logic a bit

Saul Wold sgw at linux.intel.com
Sat Jan 19 05:02:05 UTC 2013


On 01/15/2013 12:22 PM, Christopher Larson wrote:
> From: Christopher Larson <chris_larson at mentor.com>
>
> Handle the potential case where the recipe level LICENSE contains an
> incompatible license, but all of its emitted packages are in fact compatible.
> Without this adjustment, it would skip such a recipe.
>

This changed seems to have caused a failure in the non-gplv3 build for 
util-linux, which is the only package I know that sets a package LICENSE 
field:
> NOTE: recipe e2fsprogs-1.42.1-r4: task do_compile: Started
> WARNING: util-linux-lscpu has an incompatible license. Excluding from packaging.
> ERROR: Error executing a python function in /srv/home/pokybuild/yocto-autobuilder/yocto-slave/nightly-non-gpl3/build/meta/recipes-core/util-linux/util-linux_2.22.1.bb:
> AttributeError: 'str' object has no attribute 'remove'
>
> ERROR: The stack trace of python calls that resulted in this exception/failure was:
> ERROR:   File "populate_packages", line 227, in <module>
> ERROR:
> ERROR:   File "populate_packages", line 71, in populate_packages
> ERROR:
> ERROR: The code that was being executed was:
> ERROR:      0223:                bb.note("%s contains dangling symlink to %s" % (pkg, l))
> ERROR:      0224:        d.setVar('RDEPENDS_' + pkg, bb.utils.join_deps(rdepends, commasep=False))
> ERROR:      0225:
> ERROR:      0226:
> ERROR:  *** 0227:populate_packages(d)
> ERROR:      0228:
> ERROR: [From file: 'populate_packages', lineno: 227, function: <module>]
> ERROR:      0067:
> ERROR:      0068:    for pkg in packages.split():
> ERROR:      0069:        if d.getVar('LICENSE_EXCLUSION-' + pkg, True):
> ERROR:      0070:            bb.warn("%s has an incompatible license. Excluding from packaging." % pkg)
> ERROR:  *** 0071:            packages.remove(pkg)
> ERROR:      0072:        else:
> ERROR:      0073:            if pkg in package_list:
> ERROR:      0074:                bb.error("%s is listed in PACKAGES multiple times, this leads to packaging errors." % pkg)
> ERROR:      0075:            else:
> ERROR: [From file: 'populate_packages', lineno: 71, function: populate_packages]
> ERROR: Function failed: populate_packages
> ERROR: Logfile of failure stored in: /srv/home/pokybuild/yocto-autobuilder/yocto-slave/nightly-non-gpl3/build/build/tmp/work/i586-poky-linux/util-linux/2.22.1-r3/temp/log.do_package.28036
> NOTE: recipe util-linux-2.22.1-r3: task do_package: Failed


Can you please review this as we are closing m3 on Sunday Midnight.

Thanks
	Sau!


> Signed-off-by: Christopher Larson <chris_larson at mentor.com>
> ---
>   meta/classes/base.bbclass | 3 +--
>   1 file changed, 1 insertion(+), 2 deletions(-)
>
> diff --git a/meta/classes/base.bbclass b/meta/classes/base.bbclass
> index 627b943..b427a5e 100644
> --- a/meta/classes/base.bbclass
> +++ b/meta/classes/base.bbclass
> @@ -552,9 +552,8 @@ python () {
>                           skipped_pkgs.append(pkg)
>                       else:
>                           unskipped_pkgs.append(pkg)
> -                some_skipped = skipped_pkgs and unskipped_pkgs
>                   all_skipped = skipped_pkgs and not unskipped_pkgs
> -                if some_skipped:
> +                if unskipped_pkgs:
>                       for pkg in skipped_pkgs:
>                           bb.debug(1, "SKIPPING the package " + pkg + " at do_rootfs because it's " + recipe_license)
>                           d.setVar('LICENSE_EXCLUSION-' + pkg, 1)
>




More information about the Openembedded-core mailing list