Bug 13612 - meta-skeleton fails yocto-check-layer
Summary: meta-skeleton fails yocto-check-layer
Status: RESOLVED FIXED
Alias: None
Product: OE-Core
Classification: Build System, Metadata & Runtime
Component: core (show other bugs)
Version: 3.0
Hardware: x86 Multiple
: Medium+ normal
Target Milestone: 3.4 M2
Assignee: Scott Weaver
QA Contact:
URL:
Whiteboard: NEWCOMER
Depends on:
Blocks:
 
Reported: 2019-10-29 14:19 UTC by Armin Kuster
Modified: 2021-06-28 00:36 UTC (History)
5 users (show)

See Also:
OS type for building Yocto: ---
Type of Regression: ---
Verified:
Documentation change: Don't know


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Armin Kuster 2019-10-29 14:19:45 UTC
INFO: Detected layers:
INFO: meta-skeleton: LayerType.SOFTWARE, /home/akuster/oss/maint/poky/meta-skeleton
INFO: 
INFO: Setting up for meta-skeleton(LayerType.SOFTWARE), /home/akuster/oss/maint/poky/meta-skeleton
INFO: Getting initial bitbake variables ...
INFO: Getting initial signatures ...
INFO: Adding layer meta-skeleton
INFO: Starting to analyze: meta-skeleton
INFO: ----------------------------------------------------------------------
INFO: skipped "BSPCheckLayer: Layer meta-skeleton isn't BSP one."
INFO: test_layerseries_compat (common.CommonCheckLayer)
INFO:  ... ok
INFO: test_parse (common.CommonCheckLayer)
INFO:  ... ok
INFO: test_readme (common.CommonCheckLayer)
INFO:  ... FAIL
INFO: Traceback (most recent call last):
  File "/home/akuster/oss/maint/poky/scripts/lib/checklayer/cases/common.py", line 17, in test_readme
    msg="Layer doesn't contains README file.")
AssertionError: False is not true : Layer doesn't contains README file.

INFO: test_show_environment (common.CommonCheckLayer)
INFO:  ... ok
INFO: test_signatures (common.CommonCheckLayer)
INFO:  ... FAIL

Stdout:
Loading cache...done.
Loaded 1303 entries from dependency cache.
INFO: Traceback (most recent call last):
  File "/home/akuster/oss/maint/poky/scripts/lib/checklayer/cases/common.py", line 55, in test_signatures
    self.fail('Adding layer %s changed signatures.\n%s' % (self.tc.layer['name'], msg))
AssertionError: Adding layer meta-skeleton changed signatures.
41 signatures changed, initial differences (first hash before, second after):
   busybox:do_fetch: be88f59ada8e67e2136390928338f9843618f4f29d7af5468d1b8a812983d8f8 -> 4fdb5e02282e9b6079382b4a9c0418f750feeb69fac744577b6373cb955d3710
      bitbake-diffsigs --task busybox do_fetch --signature be88f59ada8e67e2136390928338f9843618f4f29d7af5468d1b8a812983d8f8 4fdb5e02282e9b6079382b4a9c0418f750feeb69fac744577b6373cb955d3710
      NOTE: Starting bitbake server...
      basehash changed from d55a26ea0f2bfb2dbbc3cc151208d41ba07872c7a3467af917cedbe703250579 to 668cb50fa6b8186eea92d214bad4c9393872018d55e4f891072b8774cf0a557e
      Variable SRC_URI value changed:
      "http://www.busybox.net/downloads/busybox-${PV}.tar.bz2;name=tarball            file://busybox-udhcpc-no_deconfig.patch            file://find-touchscreen.sh            file://busybox-cron            file://busybox-httpd            file://busybox-udhcpd            file://default.script            file://simple.script            file://hwclock.sh            file://syslog            file://syslog-startup.conf            file://syslog.conf            file://busybox-syslog.default            file://mdev            file://mdev.conf            file://mdev-mount.sh            file://defconfig            file://busybox-syslog.service.in            file://busybox-klogd.service.in            file://fail_on_no_media.patch            file://run-ptest            file://inetd.conf            file://inetd            file://login-utilities.cfg            file://recognize_connmand.patch            file://busybox-cross-menuconfig.patch            file://0001-Use-CC-when-linking-instead-of-LD-and-use-CFLAGS-and.patch            file://mount-via-label.cfg            file://sha1sum.cfg            file://sha256sum.cfg            file://getopts.cfg            file://resize.cfg            ${@["", "file://init.cfg"][(d.getVar('VIRTUAL-RUNTIME_init_manager') == 'busybox')]}            ${@["", "file://mdev.cfg"][(d.getVar('VIRTUAL-RUNTIME_dev_manager') == 'busybox-mdev')]}            file://syslog.cfg            file://unicode.cfg            file://rcS            file://rcK            file://makefile-libbb-race.patch            file://0001-testsuite-check-uudecode-before-using-it.patch            file://0001-testsuite-use-www.example.org-for-wget-test-cases.patch            file://0001-du-l-works-fix-to-use-145-instead-of-144.patch  {+ 	    file://no_rfkill.cfg            +}"
      Dependency on checksum of file no_rfkill.cfg was added


Stdout:
Loading cache...done.
Loaded 1303 entries from dependency cache.

INFO: test_world (common.CommonCheckLayer)
INFO:  ... ok
INFO: skipped "DistroCheckLayer: Layer meta-skeleton isn't Distro one."
INFO: ======================================================================
INFO: FAIL: test_readme (common.CommonCheckLayer)
INFO: ----------------------------------------------------------------------
INFO: Traceback (most recent call last):
  File "/home/akuster/oss/maint/poky/scripts/lib/checklayer/cases/common.py", line 17, in test_readme
    msg="Layer doesn't contains README file.")
AssertionError: False is not true : Layer doesn't contains README file.

INFO: ======================================================================
INFO: FAIL: test_signatures (common.CommonCheckLayer)
INFO: ----------------------------------------------------------------------
INFO: Traceback (most recent call last):
  File "/home/akuster/oss/maint/poky/scripts/lib/checklayer/cases/common.py", line 55, in test_signatures
    self.fail('Adding layer %s changed signatures.\n%s' % (self.tc.layer['name'], msg))
AssertionError: Adding layer meta-skeleton changed signatures.
41 signatures changed, initial differences (first hash before, second after):
   busybox:do_fetch: be88f59ada8e67e2136390928338f9843618f4f29d7af5468d1b8a812983d8f8 -> 4fdb5e02282e9b6079382b4a9c0418f750feeb69fac744577b6373cb955d3710
      bitbake-diffsigs --task busybox do_fetch --signature be88f59ada8e67e2136390928338f9843618f4f29d7af5468d1b8a812983d8f8 4fdb5e02282e9b6079382b4a9c0418f750feeb69fac744577b6373cb955d3710
      NOTE: Starting bitbake server...
      basehash changed from d55a26ea0f2bfb2dbbc3cc151208d41ba07872c7a3467af917cedbe703250579 to 668cb50fa6b8186eea92d214bad4c9393872018d55e4f891072b8774cf0a557e
      Variable SRC_URI value changed:
      "http://www.busybox.net/downloads/busybox-${PV}.tar.bz2;name=tarball            file://busybox-udhcpc-no_deconfig.patch            file://find-touchscreen.sh            file://busybox-cron            file://busybox-httpd            file://busybox-udhcpd            file://default.script            file://simple.script            file://hwclock.sh            file://syslog            file://syslog-startup.conf            file://syslog.conf            file://busybox-syslog.default            file://mdev            file://mdev.conf            file://mdev-mount.sh            file://defconfig            file://busybox-syslog.service.in            file://busybox-klogd.service.in            file://fail_on_no_media.patch            file://run-ptest            file://inetd.conf            file://inetd            file://login-utilities.cfg            file://recognize_connmand.patch            file://busybox-cross-menuconfig.patch            file://0001-Use-CC-when-linking-instead-of-LD-and-use-CFLAGS-and.patch            file://mount-via-label.cfg            file://sha1sum.cfg            file://sha256sum.cfg            file://getopts.cfg            file://resize.cfg            ${@["", "file://init.cfg"][(d.getVar('VIRTUAL-RUNTIME_init_manager') == 'busybox')]}            ${@["", "file://mdev.cfg"][(d.getVar('VIRTUAL-RUNTIME_dev_manager') == 'busybox-mdev')]}            file://syslog.cfg            file://unicode.cfg            file://rcS            file://rcK            file://makefile-libbb-race.patch            file://0001-testsuite-check-uudecode-before-using-it.patch            file://0001-testsuite-use-www.example.org-for-wget-test-cases.patch            file://0001-du-l-works-fix-to-use-145-instead-of-144.patch  {+ 	    file://no_rfkill.cfg            +}"
      Dependency on checksum of file no_rfkill.cfg was added


Stdout:
Loading cache...done.
Loaded 1303 entries from dependency cache.
----------------------------------------------------------------------
INFO: Ran 6 tests in 173.501s
INFO: FAILED
INFO:  (failures=2, skipped=2)
INFO: 
INFO: Summary of results:
INFO: 
INFO: meta-skeleton ... FAIL
Comment 1 Ross Burton 2019-10-31 15:42:15 UTC
The README is a good point.  To be honest I'd like to see what the point of meta-skeleton is.

Is the fix to make the busybox bbappend use a distro override, such as _poky?
Comment 2 akuster 2020-08-24 08:59:55 UTC
(In reply to comment #1)
> The README is a good point.  To be honest I'd like to see what the point of
> meta-skeleton is.
> 
> Is the fix to make the busybox bbappend use a distro override, such as _poky?

distro override is not working.. I am very confused ( but that's not unusually)
Comment 3 Randy MacLeod 2021-05-06 15:27:07 UTC
The README is an easy fix. Ask for help if needed.
Comment 4 Scott Weaver 2021-06-05 19:03:05 UTC
The issue here appears to be related to the definition of a SOFTWARE layer (as opposed to a MACHINE or DISTRO layer) and whether it is allowed to modify signatures. The yocto-check-layer tool provides a flag to disable signature checks but it is enabled by default and because this layer contains a bbappend that modifies the fetch task signature, the signature test will fail.

I found this discussion regarding this subject:
https://lists.openembedded.org/g/openembedded-core/topic/72336757#99420

It appears from this post that a “Yocto Compatible” SOFTWARE layer shall not modify signatures. Therefore, the bbappend recipe in meta-skeleton should be removed or the SRC_URI append deleted from the bbappend file. If it’s more valuable as an example to keep this file than having meta-skeleton demonstrate a “Yocto Compatible” layer then the check should be run using the ‘--without-software-layer-signature-check’.

I don’t know the full history or the current requirements for a Yocto compatible layer (other than it pass the yocto-check-layer test) but I suggest fixing the missing readme file which could include a note explaining that this layer is not meant to be a compatible layer and to run the check using the ‘--without-software-layer-signature-check’ flag.
Comment 5 Scott Weaver 2021-06-17 22:37:27 UTC
This patch was submitted to close this issue.
https://lists.openembedded.org/g/openembedded-core/message/152791
Comment 6 Scott Weaver 2021-06-27 18:37:46 UTC
This is v2 of the patch to satisfy the readme and the signature tests which uses a dummy distro append to the busybox bbappend.

https://git.openembedded.org/openembedded-core/commit/?id=b2419bfaf28903d52dd88a3db7985c71e8ed814a
Comment 7 Randy MacLeod 2021-06-28 00:36:29 UTC
Thanks Scott!

If you ever want to help out some more, take a look at the bugzilla, perhaps at 
  https://wiki.yoctoproject.org/wiki/Bug_Triage#Newcomer_Bugs
or
  https://wiki.yoctoproject.org/wiki/Bug_Triage#Medium.2B_3.4_Unassigned_Enhancements.2FBugs

../Randy