As per your suggestion I did some progress.
Issue 1:
========
Configuration for this issue:
=============================
MACHINE = "edgerouter"
DISTRO = "poky"
SDKMACHINE = "i686"
PACKAGE_CLASSES = "package_rpm package_deb package_ipk"
INHERIT += 'image-buildinfo'
IMAGE_BUILDINFO_VARS_append = ' IMAGE_BASENAME IMAGE_NAME'
QEMU_USE_KVM = 'True'
INHERIT += 'report-error'
PREMIRRORS = ''
BB_GENERATE_MIRROR_TARBALLS = '1'
BB_NUMBER_THREADS = '16'
PARALLEL_MAKE = '-j 16'
BB_TASK_NICE_LEVEL = '5'
BB_TASK_NICE_LEVEL_task-testimage = '0'
BB_TASK_IONICE_LEVEL = '2.7'
BB_TASK_IONICE_LEVEL_task-testimage = '2.1'
INHERIT += 'testimage'
TEST_QEMUBOOT_TIMEOUT = '1500'
SANITY_TESTED_DISTROS = ''
SDK_EXT_TYPE = 'minimal'
SDK_INCLUDE_TOOLCHAIN = '1'
Command:
========
bitbake core-image-sato core-image-sato-dev core-image-sato-sdk core-image-minimal core-image-minimal-dev core-image-sato-ptest core-image-sato:do_populate_sdk -k
but could not reproduce the issue.
work-around to reproduce this issue.
====================================
I am observing since bzip2-tests is a git repo and fsmonitor-watchman.sample (.git/hooks/fsmonitor-watchman.sample) is perl script.
that's why I got this error.
so manually I copied fsmonitor-watchman.sample file into the bzip2-tests/.git/hooks and able to reproduce the issue.
Error:
https://autobuilder.yoctoproject.org/typhoon/#/builders/62/builds/1816step1b: ERROR: bzip2-1.0.8-r0 do_package_qa: QA Issue: /usr/lib/bzip2/ptest/bzip2-tests/.git/hooks/fsmonitor-watchman.sample contained in package bzip2-ptest requires /usr/bin/perl, but no providers found in RDEPENDS_bzip2-ptest? [file-rdeps]
step1b: ERROR: bzip2-1.0.8-r0 do_package_qa: QA run found fatal errors. Please consider fixing them.
I find out the solution by appending RDEPENDS_${PN}-ptest with perl.
RDEPENDS_${PN}-ptest += "make bash perl"
so this issue got resolved.
Issue2:
=======
Configuration for this issue
============================
MACHINE = "qemux86"
DISTRO = "poky"
SDKMACHINE = "i686"
PACKAGE_CLASSES = "package_rpm package_deb package_ipk"
INCOMPATIBLE_LICENSE = '*GPLv3'
WARN_QA_remove = 'incompatible-license'
QEMU_USE_KVM = 'True'
INHERIT += 'report-error'
PREMIRRORS = ''
BB_GENERATE_MIRROR_TARBALLS = '1'
BB_NUMBER_THREADS = '16'
PARALLEL_MAKE = '-j 16'
BB_TASK_NICE_LEVEL = '5'
BB_TASK_NICE_LEVEL_task-testimage = '0'
BB_TASK_IONICE_LEVEL = '2.7'
BB_TASK_IONICE_LEVEL_task-testimage = '2.1'
INHERIT += 'testimage'
TEST_QEMUBOOT_TIMEOUT = '1500'
SANITY_TESTED_DISTROS = ''
SDK_EXT_TYPE = 'minimal'
SDK_INCLUDE_TOOLCHAIN = '1'
Command
=======
bitbake core-image-minimal core-image-full-cmdline -k
INCOMPATIBLE_LICENSE = '*GPLv3'
WARN_QA_remove = 'incompatible-license'
My doubt is since above configuration is using during build and we are using GPLv3+ license then definetly it will report error.
It looks like you are packaging the test code/data with the main package
not in bzip2-ptest. Have a look at:
meta/recipes-support/libpcre/
libpcre_8.44.bbfor an example. There are many more.
Also, if you look at oe-core.git:
$ rgrep LICENSE_ * | grep PN
you can see many examples of sub-packages with different licenses
than the main package. One example is:
meta/recipes-support/gnutls/
gnutls_3.6.13.bbI hope that can address the buildbot problem but I haven't tried it
myself yet.
Explanation:
I checked, Here is packaging the test code/data in bzip2-ptest.
/opt/opensource/build/tmp/work/mips64-poky-linux/bzip2/1.0.8-r0/packages-split/bzip2-ptest
I tried with the changes below in the
bzip2_1.0.8.bb file.
LICENSE = "bzip2"
LICENSE_${PN}-ptest = "GPLv3+"
WARNING: LICENSE_bzip2-ptest includes licenses (GPLv3+) that are not listed in LICENSE
To resolve this warning i did below changes.
LICENSE = "bzip2 & GPLv3+"
LICENSE_${PN}-ptest = "GPLv3+"
But I am getting below error in both case
ERROR: Nothing RPROVIDES 'bzip2' (but /opt/opensource/poky/meta/recipes-extended/packagegroups/
packagegroup-core-full-cmdline.bb, /opt/opensource/poky/meta/recipes-devtools/python/
python3_3.8.2.bb RDEPENDS on or otherwise requires it)
bzip2 was skipped: it has incompatible license(s): GPL-3.0+
NOTE: Runtime target 'bzip2' is unbuildable, removing...
Missing or unbuildable dependency chain was: ['bzip2']
So as per my understanding, if we are splitting the package and assigning Licence to it.
example:
LICENSE = "bzip2"
LICENSE_${PN}-ptest = "GPLv3+"
In this case I have to set LICENSE_PATH where your license file is located.
or if I am using standard license, I have to set LICENSE first then we can set LICENSE_${PN}-ptest.
Example:
LICENSE = "bzip2 & GPLv3+"
LICENSE_${PN}-ptest = "GPLv3+"
Kindly comment on it and feel free to point out if i am wrong at any point.