[yocto] [Chicken and Egg problem] Defining RDEPENDS of the package itself!

Zoran Stojsavljevic zoran.stojsavljevic at gmail.com
Thu Jul 19 00:46:12 PDT 2018


This does work:

S = "${WORKDIR}/git"

inherit pkgconfig cmake
inherit systemd

EXTRA_OECMAKE += "-DCMAKE_BUILD_TYPE=Release"

INSANE_SKIP_${PN} = "ldflags"
INHIBIT_PACKAGE_STRIP = "1"
INHIBIT_SYSROOT_STRIP = "1"
SOLIBS = ".so"
FILES_SOLIBSDEV = ""

do_install_*append* () {
    install -d ${D}${libdir}
    install -m 0755 ${WORKDIR}/*build/*libcannelloni-common.so ${D}${libdir}
}

Thank you all for help!
Zoran Stojsavljevic

On Thu, Jul 19, 2018 at 9:22 AM, Zoran Stojsavljevic <
zoran.stojsavljevic at gmail.com> wrote:

> Hello Andre,
>
> Thank you for the tips.
>
> Tried what you have suggested. I had some errors, again in
> do_install(), then I read .log, and fixed the paths.
>
> This is my recipe, important part of it, as of now:
> _______
>
> S = "${WORKDIR}/git"
>
> inherit pkgconfig cmake
> inherit systemd
>
> EXTRA_OECMAKE += "-DCMAKE_BUILD_TYPE=Release"
>
> INSANE_SKIP_${PN} = "ldflags"
> INHIBIT_PACKAGE_STRIP = "1"
> INHIBIT_SYSROOT_STRIP = "1"
> SOLIBS = ".so"
> FILES_SOLIBSDEV = ""
>
> do_install () {
>     install -d ${D}${libdir}
>     install -m 0755 cannelloni ${D}${bindir}
>     install -m 0755 ${WORKDIR}/build/libcannelloni-common.so ${D}${libdir}
> }
> _______
>
> Where I modified install directories. ${libdir} is /usr/lib (instead
> /usr/local/lib), all cool with this one as well.
>
> (I guess, I could use LOCAL_LIB =  "/usr/local/lib", and then change
> ${libdir} with ${LOCAL_LIB})
>
> I went further with bitbake. Now I am failing in do_package()
> (inherited from default), with the following ERRORs:
>
> ERROR: cannelloni-1.0-r0 do_package: QA Issue: cannelloni:
> Files/directories were installed but not shipped in any package:
>   /usr/bin
> Please set FILES such that these items are packaged. Alternatively if
> they are unneeded, avoid installing them or delete them within
> do_install.
> cannelloni: 1 installed and not shipped files. [installed-vs-shipped]
> ERROR: cannelloni-1.0-r0 do_package: Fatal QA errors found, failing task.
> ERROR: cannelloni-1.0-r0 do_package: Function failed: do_package
> ERROR: Logfile of failure stored in:
> /home/netmodule.intranet/stojsavljevic/projects/
> beaglebone-black/yocto-rocko/poky/build/tmp/work/
> cortexa8hf-neon-poky-linux-gnueabi/cannelloni/1.0-r0/
> temp/log.do_package.3501
> ERROR: Task (/home/netmodule.intranet/stojsavljevic/projects/
> beaglebone-black/yocto-rocko/poky/meta-test-layer/recipes-
> canapp/cannelloni/cannelloni.bb:do_package)
> failed with exit code '1'
> NOTE: Tasks Summary: Attempted 535 tasks of which 524 didn't need to
> be rerun and 1 failed.
>
> Any take on that?
> _______
>
> Mirza,
>
> Actually, the recipe I am showing here is the GENIVI (the same you
> pointed to), but heavily modified. :-)
>
> And, yes, I am using latest sumo.
>
> Thank you all,
> Zoran
> _______
>
> On Wed, Jul 18, 2018 at 7:06 PM, Andre McCurdy <armccurdy at gmail.com>
> wrote:
> > On Wed, Jul 18, 2018 at 7:04 AM, Zoran Stojsavljevic
> > <zoran.stojsavljevic at gmail.com> wrote:
> >> Yep. Did it. Some symlink is missing (I guess, symlink to
> >> /usr/local/lib/libcannelloni-common.so???
> >>
> >> Initialising tasks: 100%
> >> |###########################################################
> ############################################################
> ######################################|
> >> Time: 0:00:00
> >> NOTE: Executing SetScene Tasks
> >> NOTE: Executing RunQueue Tasks
> >> ERROR: cannelloni-1.0-r0 do_package_qa: QA Issue: cannelloni rdepends on
> >> cannelloni-dev [dev-deps]
> >> ERROR: cannelloni-1.0-r0 do_package_qa: QA Issue: -dev package contains
> >> non-symlink .so: cannelloni-dev path
> >> '/work/cortexa8hf-neon-poky-linux-gnueabi/cannelloni/1.0-
> r0/packages-split/cannelloni-dev/usr/lib/libcannelloni-common.so'
> >> [dev-elf]
> >> ERROR: cannelloni-1.0-r0 do_package_qa: QA run found fatal errors.
> Please
> >> consider fixing them.
> >> ERROR: cannelloni-1.0-r0 do_package_qa: Function failed: do_package_qa
> >> ERROR: Logfile of failure stored in:
> >> /home/netmodule.intranet/stojsavljevic/projects/
> beaglebone-black/yocto-rocko/poky/build/tmp/work/
> cortexa8hf-neon-poky-linux-gnueabi/cannelloni/1.0-r0/
> temp/log.do_package_qa.7896
> >> ERROR: Task
> >> (/home/netmodule.intranet/stojsavljevic/projects/
> beaglebone-black/yocto-rocko/poky/meta-test-layer/recipes-
> canapp/cannelloni/cannelloni.bb:do_package_qa)
> >> failed with exit code '1'
> >> NOTE: Tasks Summary: Attempted 539 tasks of which 532 didn't need to be
> >> rerun and 1 failed.
> >>
> >> Summary: 1 task failed:
> >>
> >> /home/netmodule.intranet/stojsavljevic/projects/
> beaglebone-black/yocto-rocko/poky/meta-test-layer/recipes-
> canapp/cannelloni/cannelloni.bb:do_package_qa
> >> Summary: There were 2 WARNING messages shown.
> >> Summary: There were 4 ERROR messages shown, returning a non-zero exit
> code.
> >>
> >> How I can add this symlink (!) to this recipe?
> >
> > The error says "-dev package contains non-symlink .so".
> >
> > Simply adding a symlink somewhere will not help. The fix is to ensure
> > that libcannelloni-common.so gets packaged in the main run-time
> > package (and not in the -dev package).
> >
> > Reading the section about non-versioned shared libraries here might help:
> >
> >   https://wiki.yoctoproject.org/wiki/TipsAndTricks/Packaging_
> Prebuilt_Libraries
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.yoctoproject.org/pipermail/yocto/attachments/20180719/e68c88f6/attachment-0001.html>


More information about the yocto mailing list