You don't need to inherit debian in a recipe, that is meant to be a
distro-level inherit (and is inherited out of the box).

Deleting the .so breaks non-static linking as that is the file which is
used to link against, so don't delete it.  It should be in the -dev package.

The QA error is probably because your library is built wrong in the
makefile.  Another indication of this is the lack of renaming.  Look at the
makefile, specifically the specified soname.

Ross

On 21 November 2017 at 13:00, Guy Morand <g...@guy-morand.ch> wrote:

> Hallo Yocto developpers!
>
> I'm trying to build a Makefile based library. The recipe looks like this:
> ---[recipe mesages.bb]---
> # SNIP recipe header
>
> do_compile() {
>   oe_runmake LDFLAGS="${LDFLAGS}" shared-lib
>   oe_runmake LDFLAGS="${LDFLAGS}" static-lib
> }
>
> do_install() {
>   oe_runmake install DESTDIR=${D}${prefix}
>
>   # Fix pkg-config
>   sed -i 's,${D},,g' ${D}/usr/lib/pkgconfig/messages.pc
>
>   # FIXME: Try to make a debian package libmessages instead
>   # This avoids errors when installing an app linking with this library!
>   rm ${D}/${libdir}/lib${PN}.so
> }
> ---[/recipe mesages.bb]---
>
> The resulted image in WORKDIR looks like this:
> ---[WORKDIR/image]---
> image/usr/lib/libmessages.so.0.3.0
> image/usr/lib/libmessages.so.0
> image/usr/lib/libmessages.a
> image/usr/lib/pkgconfig/messages.pc
> image/usr/include/messages/<all my headers>
> ---[/WORKDIR/image]---
>
> The generated ipk packages are:
> ---[ipks]---
> messages-dev_git.ipk
> messages_git.ipk
> messages-staticdev_git.ipk
> messages-dbg_git.ipk
> ---[/ipks]---
>
> The problem is that an application compiled with this library links
> against the static library. If I don't remove the .so file from the recipe,
> my application fails installing:
> ---[bitbake error]---
> ERROR: myApp do_package_qa: QA Issue: /usr/bin/myApp contained in package
> myApp requires libmessages.so, but no providers found in RDEPENDS_myApp?
> [file-rdeps]
> ---[/bitbake error]---
>
> Probably because the .so gets packed in the messages-dev.ipk ...
>
> The strange thing is that I would expect a generated ipk with debian
> naming such as:
> libmessages_git.ipk
> libmessages-dbg_git.ipk
> libmessages-dev_git.ipk
> libmessages-staticdev_git.ipk
>
>
> I  have other libraries based on cmake and everything works as expected!
>
> Despite the recipe already inherits "debian", explicitly inheriting this
> class doesn't help.
>
> What am I doing wrong?
>
> Guy Morand
> --
> _______________________________________________
> yocto mailing list
> yocto@yoctoproject.org
> https://lists.yoctoproject.org/listinfo/yocto
>
-- 
_______________________________________________
yocto mailing list
yocto@yoctoproject.org
https://lists.yoctoproject.org/listinfo/yocto

Reply via email to