[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