Bug 3910

Summary: [Test Case 278] Sanity check for userspace dependency
Product: [Build System, Metadata & Runtime] OE-Core Reporter: Stoicescu Cornel <corneliux.stoicescu>
Component: coreAssignee: Saul Wold <sgw>
Status: VERIFIED WORKSFORME QA Contact:
Severity: normal    
Priority: Undecided CC: alexandrux.palalau, meta.mr.watcher, meta.watcher
Version: 1.4   
Target Milestone: ---   
Hardware: x86   
OS: Multiple   
Whiteboard:
OS type for building Yocto: --- Type of Regression: ---
Verified: Documentation change: ---

Description Stoicescu Cornel 2013-02-19 16:46:22 UTC
STATUS: FAILED
BUILD: master:3ec4df57540421df2cda6b83c615bfb7cebccefd
ENVIRONMENT: Multiple environments
STEPS TO REPRODUCE: Test if sanity check could report warning if there are packages 
installed under /bin or /sbin, but depends on something under /usr/lib


1. prepare yocto build environment
2. modify or add a recipe, which is installed under /bin or /sbin, but 
depends on something under /usr/lib. For example, we could revert 
following patch against recipe libusb and build udev#####

diff --git a/meta/recipes-support/libusb/libusb-compat_0.1.3.bb b/meta/recipes-support/libusb/libusb-compat_0.1.3.bb
index ef8552b..e070463 100644
--- a/meta/recipes-support/libusb/libusb-compat_0.1.3.bb
+++ b/meta/recipes-support/libusb/libusb-compat_0.1.3.bb
            @@ -15,7 +15,7 @@ DEPENDS = "libusb1"
            PROVIDES = "libusb"
             
            PE = "1"
            -PR = "r0"
            +PR = "r1"
             
            SRC_URI = "${SOURCEFORGE_MIRROR}/libusb/libusb-compat-${PV}.tar.bz2 \
            file://0.1.0-beta1-gcc3.4-fix.patch"
            @@ -24,3 +24,13 @@ SRC_URI[md5sum] = "570ac2ea085b80d1f74ddc7c6a93c0eb"
            SRC_URI[sha256sum] = "a590a03b6188030ee1ca1a0af55685fcde005ca807b963970f839be776031d94"
             
            inherit autotools pkgconfig binconfig
            +
            +EXTRA_OECONF = "--libdir=${base_libdir}"
            +
            +do_install_append() {
            + install -d ${D}${libdir}
            + mv ${D}${base_libdir}/*.la ${D}${libdir}
            + mv ${D}${base_libdir}/pkgconfig ${D}${libdir}+
            +FILES_${PN}-dev += "${base_libdir}/*.so"
#####

3. check if yocto build will report warning for udev


EXPECTED OUTCOME: Sanity check should report warning if there are packages 
installed under /bin or /sbin, but depends on something under /usr/lib

ACTUAL OUTCOME: Even though some are expected, no such warning are shown for the following commands:
"bitbake libusb-compat"
"bitbake core-image-sato"
"bitbake udev"

PS: After a talk with Richard, the fact that the test case asks to build "udev" in order to test this patch is unnecessary. Udev does pull in libusb-compat though so it should be relevant. Also a core-image-sato should give off at least a few warnings like the ones described even without the patch.
Comment 1 Saul Wold 2013-02-22 17:15:10 UTC
I believe that we have disabled those checks by default, is this a new failure?  Has this test been run on past milestones?
Comment 2 Stoicescu Cornel 2013-02-25 08:57:02 UTC
Indeed. I forgot to mention I also added WARN_QA_append = " unsafe-references-in-binaries unsafe-references-in-scripts" in local.conf . This should trigger those warnings. The test case was updated.

I tested this issue for the last month and because I was not getting any warnings I believed I was doing something wrong and that I did not have enough information. I will come back with details about the last working build.
Comment 3 Stoicescu Cornel 2013-02-25 10:43:17 UTC
The last known working build for this feature: 1.3 M4 RC2
Comment 4 Saul Wold 2013-02-26 20:23:22 UTC
This seems to work correctly for the existing packages, it might be your libusb is no longer valid.

WARNING: QA Issue: nfs-utils: Found a reference to /usr/ in /home/sgw/yocto/builds/world/tmp/work/x86_64-poky-linux/nfs-utils/1.2.7-r0/packages-split/nfs-utils/sbin/osd_login
WARNING: QA Issue: Shell scripts in base_bindir and base_sbindir should not reference anything in exec_prefix
WARNING: QA Issue: gzip: Found a reference to /usr/ in /home/sgw/yocto/builds/world/tmp/work/x86_64-poky-linux/gzip/1.5-r0/packages-split/gzip/bin/zcat.gzip
WARNING: QA Issue: Shell scripts in base_bindir and base_sbindir should not reference anything in exec_prefix
WARNING: QA Issue: gzip: Found a reference to /usr/ in /home/sgw/yocto/builds/world/tmp/work/x86_64-poky-linux/gzip/1.5-r0/packages-split/gzip/bin/gunzip.gzip
WARNING: QA Issue: Shell scripts in base_bindir and base_sbindir should not reference anything in exec_prefix

Please try to use an unmodified recipe for this test.
Comment 5 Stoicescu Cornel 2013-02-27 12:28:45 UTC
I am still not able to make this work. I made a core-image-sato and core-image-sato-sdk with WARN_QA_append = " unsafe-references-in-binaries unsafe-references-in-scripts" in local.conf and I got no such warnings.

My setup:
Machine: Ubuntu 12.04 x86-64
branch: master
commit:7d22ef28e64de06b6238d0ef9b664c0bee6efa46
Extra options: download mirror in local.conf

Saul, can you please give us your steps to reproduce and setup? Maybe we are missing something.
Comment 6 Alexandru Palalau 2013-03-12 15:32:00 UTC
Switching to reopened as no qa-warns are available, although WARN_QA_append = " unsafe-references-in-binaries unsafe-references-in-scripts" is mentioned in local.conf.
Waiting for steps from Saul.
Comment 7 Saul Wold 2013-03-12 16:19:37 UTC
1) Clean sstate of gzip and nfs-utils
   bitbake -c cleansstate gzip nfs-utils

2) Add correct warning to local.conf
   WARN_QA_append = " unsafe-references-in-binaries unsafe-references-in-scripts"

3) rebuild gzip and nfs-utils
   bitbake gzip nfs-utils

4) Observe warnings
Comment 8 Saul Wold 2013-03-12 16:21:32 UTC
I suggest using existing recipes and not modifying the udev recipe.  The gzip and nfs-utils are packages that should show this issue as I reported above.
Comment 9 Alexandru Palalau 2013-03-12 17:33:32 UTC
Verified on danny branch, commit ID:955827af15f611189c66850fd077de344e1285c3
Comment 10 Alexandru Palalau 2013-03-12 18:06:33 UTC
Verified on master branch also.
Commit ID:365eb9b5d22208c967dcd91d8ab52faed20f04b5
Comment 11 Alexandru Palalau 2013-03-12 18:06:55 UTC
Switching to verified