Search code examples
embedded-linuxbitbakegumstix

Bitbake fails on do_package_qa error?


I am trying to write my own custom recipe. I am using Yocto Project with Bitbake.

The following package when given bitbake apriltags commands does the following and throws error at do_package

It successfully does the following tasks:

do_fetch
unpack
do_compile

and then fails at do_package

In my /yocto/build/tmp/work/armv7a-vfp-neon-poky-linux-gnueabi/apriltags/0.1-r4/git/build/lib there is a pkgconfig.pc and libapriltags.a which is causing the error.

My package recipe:

DESCRIPTION = "Apriltags application" 
SECTION = "examples" 
LICENSE = "CLOSED" 
PR = "r3" 

DEPENDS = "opencv"

SRC_URI = "git://github.com/zafrullahsyed/apriltags.git;protocol=https;tag=v0.1"

S = "${WORKDIR}/git"

inherit pkgconfig autotools

do_install() {
    install -d ${D}${bindir}
    install -m 0755 ${WORKDIR}/git/build/bin/apriltags_demo ${D}${bindir}
}

My error as follows:

ERROR: QA Issue: package apriltags contains bad RPATH /home/zaif/yocto/build/tmp/work/armv7a-vfp-neon-poky-linux-gnueabi/apriltags/0.1-r3/git/build/lib in file /home/zaif/yocto/build/tmp/work/armv7a-vfp-neon-poky-linux-gnueabi/apriltags/0.1-r3/packages-split/apriltags/usr/bin/apriltags_demo
ERROR: QA run found fatal errors. Please consider fixing them.
ERROR: Function failed: do_package_qa
ERROR: Logfile of failure stored in: /home/zaif/yocto/build/tmp/work/armv7a-vfp-neon-poky-linux-gnueabi/apriltags/0.1-r3/temp/log.do_package.21621
ERROR: Task 10 (/home/zaif/yocto/poky/meta-bebot/recipes-bebot/apriltags/apriltags_0.1.bb, do_package) failed with exit code '1'

Solution

  • My package Apriltags has bad dependencies that are according to PC in AprilTags/cmake/pods.cmake such as Eigen3(default), whereas for OE eigen3 package is libeigen. Hard coded the requires, Libs and Cflags and also removed python pod packages which are not required.


    pods.cmake:

    "Name: ${pc_name}\n"
            "Description: ${pc_description}\n"
            "Requires: ${libeigen}\n"
     #       "Version: ${pc_version}\n"
            "Libs: -L\${bindir} ${pc_libs}\n"
            "Cflags: -I\${bindir} ${pc_cflags}\n")
    

    My recipe is as follows:

    DESCRIPTION = "Apriltags application" 
    SECTION = "examples" 
    LICENSE = "CLOSED" 
    PR = "r5" 
    
    DEPENDS = "opencv"
    
    SRC_URI = "git://github.com/zafrullahsyed/apriltags.git;protocol=https;tag=v0.3"
    
    S = "${WORKDIR}/git"
    
    inherit pkgconfig autotools
    
    do_install() {
        install -d ${D}${bindir}
        install -m 0755 ${WORKDIR}/git/build/bin/apriltags_demo ${D}${bindir}
    }