[OE-core] [jethro][PATCH v3] license.bbclass: fix host contamination warnings for license files

Jagadeesh Krishnanjanappa jkrishnanjanappa at mvista.com
Fri Dec 4 15:27:04 UTC 2015


Ping.
Any updates regarding this patch?

Regards,
Jagadeesh


On Sat, Nov 28, 2015 at 1:39 PM, Jagadeesh Krishnanjanappa <
jkrishnanjanappa at mvista.com> wrote:

> We get below host contamination warnings of license files for
> each recipe, when we try to create a separate ${PN}-lic package (which
> contains license files), by setting LICENSE_CREATE_PACKAGE equal to "1"
> in local.conf.
>
> -- snip --
> WARNING: QA Issue: libcgroup:
> /libcgroup-lic/usr/share/licenses/libcgroup/generic_LGPLv2.1 is owned by
> uid 5001, which is the same as the user running bitbake. This may be due to
> host contamination [host-user-contaminated]
> WARNING: QA Issue: attr: /attr-lic/usr/share/licenses/attr/libattr.c is
> owned by uid 5001, which is the same as the user running bitbake. This may
> be due to host contamination [host-user-contaminated]
> WARNING: QA Issue: bash: /bash-lic/usr/share/licenses/bash/COPYING is
> owned by uid 5001, which is the same as the user running bitbake. This may
> be due to host contamination [host-user-contaminated]
> -- CUT --
>
> Since the license files from source and OE-core, are populated in a normal
> shell environment rather in pseudo environment (fakeroot); the ownership of
> these files will be same as host user running bitbake. During the
> do_package
> task (which runs in pseudo environment (fakeroot)), os.link preserves the
> ownership of these license files as host user instead of root user.
> This causes license files to have UID same as host user id and resulting in
> above warnings during do_package_qa task.
>
> Changing ownership of license files to root user (which has UID and GID as
> 0)
> under pseudo environment will solve above warnings, and on exiting pseudo
> environment the license files will continue to be owned by host user.
> Perform
> this manipulation within try/except statements, as tasks which are not
> exected
> under pseudo (such as do_populate_lic) result in OSError when trying to
> change ownership of license files.
>
> Signed-off-by: Jagadeesh Krishnanjanappa <jkrishnanjanappa at mvista.com>
> ---
>  meta/classes/license.bbclass | 9 +++++++++
>  1 file changed, 9 insertions(+)
>
> diff --git a/meta/classes/license.bbclass b/meta/classes/license.bbclass
> index c616a20..8fff156 100644
> --- a/meta/classes/license.bbclass
> +++ b/meta/classes/license.bbclass
> @@ -185,6 +185,15 @@ def copy_license_files(lic_files_paths, destdir):
>                  os.remove(dst)
>              if os.access(src, os.W_OK) and (os.stat(src).st_dev ==
> os.stat(destdir).st_dev):
>                  os.link(src, dst)
> +                try:
> +                    os.chown(dst,0,0)
> +                except OSError as err:
> +                    if err.errno == 1:
> +                        # suppress "Operation not permitted" error, as
> +                        # sometimes this function is not executed under
> pseudo
> +                        pass
> +                    else:
> +                        raise
>              else:
>                  shutil.copyfile(src, dst)
>          except Exception as e:
> --
> 1.9.1
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openembedded.org/pipermail/openembedded-core/attachments/20151204/f18fd148/attachment-0002.html>


More information about the Openembedded-core mailing list