Search code examples
linuxyoctozbaropenembedded

New Yocto Recipe Builds but Work Directory is Deleted after Compilation


I am trying to update the recipe for zbar from 0.10.0 to 0.20.1. Here is the original recipe:

https://github.com/openembedded/meta-openembedded/blob/master/meta-oe/recipes-support/zbar/zbar_0.10.bb

My modified recipe is at the bottom of this question. The package does compile, but the problem is that something happens during the "packaging" step and the "work" directory is wiped out except for the "temp" directory inside the "work" directory. During compilation, if I list the files in the work directory, everything I expect is present, but after compilation succeeds, something cleans the files up. What am I doing wrong?

During compilation:

user@ubuntu:~/rpi/build/tmp/work/cortexa7hf-neon-vfpv4-poky-linux-gnueabi/zbar/0.20.1-r0$ cd ../0.20.1-r0/ ; ls
build              image            pkgdata                sysroot-destdir
configure.sstate   license-destdir  pseudo                 temp
debugsources.list  package          recipe-sysroot
git                packages-split   recipe-sysroot-native

After Compilation:

user@ubuntu:~/rpi/build/tmp/work/cortexa7hf-neon-vfpv4-poky-linux-gnueabi/zbar/0.20.1-r0$ cd ../0.20.1-r0/ ; ls
temp

Yocto Recipe:

DESRIPTION = "2D barcode scanner toolkit."
SECTION = "graphics"
LICENSE = "LGPL-2.1"

DEPENDS = "pkgconfig intltool-native libpng jpeg"

LIC_FILES_CHKSUM = "file://LICENSE;md5=243b725d71bb5df4a1e5920b344b86ad"

S = "${WORKDIR}/git"

SRCREV = "edcf08b49e0a5fe71c18fa9d4b8ed83ed8fc9082"
SRC_URI = "git://github.com/mchehab/zbar.git"

inherit autotools pkgconfig

EXTRA_OECONF = " --without-x --without-imagemagick --without-qt --without-python2 --disable-video --without-gtk"

FILES_${PN} += "${bindir}"
FILES_${PN} += "${libdir}"

do_install_append() {
    echo "done..."
}

Solution

  • This is because of the rm_work class. You can remove,

    INHERIT += "rm_work"
    

    this from local.conf or in according image recipe file. Or you can disable the rm_work only for your recipe using,

    RM_WORK_EXCLUDE += "zbar"
    

    in conf/local.conf.