[oe] New kmod {libdir} breaks udev 182 build

Koen Kooi koen at dominion.thruhere.net
Tue May 15 09:33:16 UTC 2012


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Op 15-05-12 10:41, Martin Ertsås schreef:
> On 05/15/12 10:39, Thilo Fromm wrote:
>> Hello Khem,
>> 
>>>> I've got an issue with 
>>>> openembedded-core/meta/recipes-kernel/kmod/kmod_git.bb, with the
>>>> way {libdir} is set in line 19:
>>>> 
>>>> libdir = "${base_libdir}"
>>>> 
>>>> "git blame" claims this was added by Khem Raj on 2012-05-08. This
>>>> line causes libkmod to put its pkgconfig ".pc" file in the staging
>>>> area at "/lib/pkgconfig/libkmod.pc". This is sad because other
>>>> recipes would only look at /usr/lib/pkgconfig/ and
>>>> /usr/share/pkgconfig.
>>>> 
>>>> Take meta-openembedded/meta-oe/recipes-core/udev/udev_182.bb, for 
>>>> example. The build predictably fails with
>>>> 
>>>> checking for KMOD... no configure: error: Package requirements
>>>> (libkmod >= 5) were not met:
>>>> 
>>>> No package 'libkmod' found
>>>> 
>>>> 
>>>> So what's the right thing do do here? Use a different package
>>>> install path for libkmod, or point udev to /lib/pkgconfig by
>>>> extending its PKG_CONFIG_PATH correspondingly?
>>> One solution is to fix kmod to install pc files in /usr/lib with
>>> right paths to access libkmod
>>> 
>>> second solution is to look for pc files in ${base_libdir} while
>>> building udev can you try this option.
>> Yes, I was trying to state these two possible resolutions in my first 
>> mail. I already tried adding
>> 
>> PKG_CONFIG_PATH = 
>> "${PKG_CONFIG_DIR}:${STAGING_DATADIR}/pkgconfig:${PKG_CONFIG_SYSROOT_DIR}/${base_libdir}/pkgconfig/"
>>
>>
>> 
to udev-182 and systemd (which is also affected) recipes. It works
>> around the bug. Still, I think kmod is publishing its .pc files in the 
>> wrong directory.
>> 
>> Regards, Thilo
>> 
> We are also having this issue, and have just added this hack in a 
> bbappend for udev and systemd. Not a pretty solution, but found it to be 
> a lot of work to make only the .pc files be put in /usr/lib/pkgconfig 
> instead of /lib/pkgconfig. I totally agree that kmod publishes it's .pc 
> files in the wrong directory,

It's not kmods fault. The recipe changes $libdir to /lib. It tries to take a
shortcut that backfires.

 as every distro I have tried uses
> /usr/lib/pkgconfig as the pkgconfig directory. Guess we will keep this 
> hack until kmod is fixed upstream though.

The bug is in the recipe:
http://cgit.openembedded.org/openembedded-core/commit/?id=6b74f2461735272bd950a4f060dab6e778a36f92

I spoke to upstream and they confirmed we get what we ask for in OE:
pkgconfig in the wrong location.


-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.11 (Darwin)
Comment: GPGTools - http://gpgtools.org

iQIcBAEBAgAGBQJPsiLcAAoJEHZqAkdh1vT6V0QQAIXqt8azrJ29/P4n6quYFTg8
hOCDbNw/0CdKpqmAD7rEpBQPIAJ+oTKhWBQe6lFe9U6XgJzpMLvzV25ECzwlLxvo
g2PC832IeFO+joUSNx5quAJraHep+yVxf+NSYf725L8pYBqqZKgPPPpw4f9ShH9b
/kdcrmGd8cSCYehC70AsnDjKTgEh5955TZyovN6mp5xxuPPBNKfZFu/mtoomhGUG
87rfv8CaMVEzWCooBAaQGj1zsWl/4B94LJylyLj33dfFezUvwAtzkiHujsAlgQNi
vqWpqIhHpWClvMA7kzp4hWJ9rMS63+MbrMF1nCRJf2H3Hx+KVjZ4s1lQKbVJ1c7t
YaoQLyEadtyLYz4gC+S7+jwahyYrG70LSbOGav2UloYyDL/CLgBc5ziifKwsNypr
Yc6I/mCZq1nNkGGUKIuzk4Jx5HJ/vYd45UjJVDmWq7FowL791bxzrG8oV6Q2P/XU
FGP7VTnyIOdChqWKDI5Z89/sjk9VtQMWzO2Kz1gDdVs4HZFlO7XDs2dG5CHImdec
ItFqErawHZ9V/aaFhXZqAGXQEQ/Bi6FWBRe6jcOtdEjkK3BvCIPmj5B/RRdlUc+/
kp9TmAkg+qG6P0bousZ8F/NIK5pRVQ5UmxlZosvwB9f5I7rtCovcn3mPthkt1+CL
STheUSNwZ8RLFWYN9IV2
=clGb
-----END PGP SIGNATURE-----





More information about the Openembedded-devel mailing list