[OE-core] [PATCH] systemd 208: move stray /usr/lib/systemd/* into /lib/systemd

Koen Kooi koen at dominion.thruhere.net
Fri Mar 14 07:59:42 UTC 2014


Op 14 mrt. 2014, om 02:41 heeft Richard Purdie <richard.purdie at linuxfoundation.org> het volgende geschreven:

> On Thu, 2014-03-13 at 10:09 +0100, Koen Kooi wrote:
>> Op 21 jan. 2014, om 14:02 heeft Koen Kooi <koen.kooi at linaro.org> het volgende geschreven:
>> 
>>> On 01/21/2014 02:01 PM, Martin Jansa wrote:
>>>> On Tue, Jan 21, 2014 at 12:01:21PM +0100, Koen Kooi wrote:
>>>>> From: Koen Kooi <koen at dominion.thruhere.net>
>>>>> 
>>>>> Apps testing for systemd config get confused when both /usr/lib/systemd and /lib/systemd exist. This fixes (among other things) dracut systemd detections.
>>>>> 
>>>>> Signed-off-by: Koen Kooi <koen at dominion.thruhere.net>
>>>>> ---
>>>>> meta/recipes-core/systemd/systemd_208.bb | 6 ++++++
>>>>> 1 file changed, 6 insertions(+)
>>>>> 
>>>>> diff --git a/meta/recipes-core/systemd/systemd_208.bb b/meta/recipes-core/systemd/systemd_208.bb
>>>>> index 6590235..710624c 100644
>>>>> --- a/meta/recipes-core/systemd/systemd_208.bb
>>>>> +++ b/meta/recipes-core/systemd/systemd_208.bb
>>>>> @@ -113,6 +113,12 @@ do_install() {
>>>>> 
>>>>>         # Delete journal README, as log can be symlinked inside volatile.
>>>>>         rm -f ${D}/${localstatedir}/log/README
>>>>> +
>>>>> +	# fix up libdir confusion
>>>>> +	if [ -d ${D}${libdir}/systemd ] ; then
>>>>> +		cp -a ${D}${libdir}/systemd/* ${D}${systemd_unitdir}
>>>>> +		rm -rf ${D}${libdir}/systemd
>>>>> +	fi
>>>> 
>>>> It's not your fault, but the indentation looks inconsistent with rest of
>>>> do_install()
>>> 
>>> And I did especially pay attention to use tabs after all the meta-oe patches I did :)
>> 
>> Ping
> 
> This kind of patch sets off all the alarm bells. Why? It becomes
> impossible to know which recipes this is fixing

It's fixing the systemd_208.bb recipe to address runtime issues with systemd itself (ignored files in the wrong dir) and issues with runtime rootlibdir detection by e.g. dracut. I'm working on a patch for dracut to check for systemd binaries instead of 'if [ -d /usr/lib/systemd/systemd ]', but I suspect there are a lot more scripts out there with similar (broken) logic.

> and whether there are
> other underlying issues.

The underlying issue is that upstream doesn't really care for rootlibdir != /usr/lib, which means bugs like this happen :(

> Once added it would be near impossible to
> remove or improve upon.
> 
> I'd much rather we fix recipes to put files into the correct location
> and thrown errors if they put files somewhere incorrect.
> 
> I appreciate its tempting to hack around it but I'm not keen...

Systemd 211 should have a partial fix for this, but you still need patching for the case where rootlibdir != /usr/lib

regards,

Koen


More information about the Openembedded-core mailing list