Bitbake fails on do_package_qa error?

9.4k views Asked by At

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'
2

There are 2 answers

0
Zafrullah Syed On BEST ANSWER

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}
}
0
JHS On

The Apriltags has dependencies which need to be modified according to the machine you are working on.

You need to have the values of the requires, Libs and Cflags accordingly. Also verify whether you need the python pod packages or not.