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

Thilo Fromm fromm at dresearch-fe.de
Tue May 15 09:59:34 UTC 2012


Hello Koen,

thanks for helping out with this.

>>>>> 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.

Ahm - I would argue it therefore *is* kmod's fault. It is just not
intentional. But I think it needs to be fixed in kmod's recipe.

>>  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

Yupp. Since it was Khem I suggest he fixes the issue :)

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

I seem to lack of some background knowledge here. I don't quite
understand the implications of this sentence.

Regards,
Thilo

-- 
Dipl.-Ing (FH) Thilo Fromm, MSc., Embedded Systems Architect
DResearch Fahrzeugelektronik GmbH
Otto-Schmirgal-Str. 3, D-10319 Berlin, Germany
Tel: +49 (30) 515 932 228   mailto:fromm at dresearch-fe.de
Fax: +49 (30) 515 932 77    http://www.dresearch.de
Amtsgericht: Berlin Charlottenburg, HRB 130120 B
Ust.-IDNr. DE273952058
Geschäftsführer: Dr. M. Weber, W. Mögle




More information about the Openembedded-devel mailing list