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

Alexander Kanavin alex.kanavin at gmail.com
Wed May 22 10:28:08 UTC 2019


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


Alex


More information about the Openembedded-core mailing list