[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