[OE-core] [PATCH] libmodulemd: fix erroneous linking against v2 library when v1 was requested

Richard Purdie richard.purdie at linuxfoundation.org
Wed May 22 11:08:21 UTC 2019


On Wed, 2019-05-22 at 12:28 +0200, Alexander Kanavin wrote:
> On Wed, 22 May 2019 at 04:04, Khem Raj <raj.khem at gmail.com> wrote:
> > > +
> > > + pkg.generate(
> > > +-    libraries : modulemd_v1_lib,
> > > ++    libraries : '-l:libmodulemd.so.1',
> > 
> > shouldn't it be generating a separate package for v1 ?
> > hardcoding linker paths seems a bit hackish here, is it going
> > to generate a .pc file with .so.1 version ?
> 
> The problem is that both v2 and v1 are installed into the sysroot; we
> don't have a mechanism to choose one or the other via DEPENDS (unlike
> desktop distros where you can install -v1-dev or -v2-dev package for
> your build).
> Then both v2 and v1 .pc files (without this patch) refer to
> '-lmodulemd' which in our case always resolves to v2 library.
> 
> Wth the patch the generated v1 .pc will look like this, while v2
> continues to use the original '-lmodlulemd' in Libs:
> 
> prefix=${pcfiledir}/../../../usr
> libdir=${prefix}/lib
> includedir=${prefix}/include
> 
> Name: modulemd
> Description: Module metadata manipulation library
> Version: 1.8.10
> Requires: glib-2.0, gobject-2.0
> Libs: -l:libmodulemd.so.1
> Cflags: -I${includedir}/modulemd

FWIW I think if there were two different recipes we could select which
was in the sysroot through DEPENDS?

Cheers,

Richard



More information about the Openembedded-core mailing list