Openembedded Core Discussions
 help / color / mirror / Atom feed
From: Kang Kai <Kai.Kang@windriver.com>
To: <openembedded-core@lists.openembedded.org>,
	Richard Purdie <richard.purdie@linuxfoundation.org>
Subject: Re: [PATCH 1/1] udev-hwdb: fix postinstall scripts failures when multilib enabled
Date: Tue, 23 Oct 2018 14:43:37 +0800	[thread overview]
Message-ID: <5ca5c33e-42e1-9a14-2b60-ff84d6f5774e@windriver.com> (raw)
In-Reply-To: <e7a1a326-ce51-2b1b-eadb-c1c650f3fcbe@windriver.com>

On 2018/10/22 下午11:11, Kang Kai wrote:
> On 2018/10/18 下午11:28, kai.kang@windriver.com wrote:
>> From: Kai Kang <kai.kang@windriver.com>
>>
>> When multilib is enabled and both udev-hwdb and ${MLPREFIX}udev-hwdb are
>> installed to image, it fails to run one of their postinstall scripts
>> that they both call ${base_bindir}/udevadm with same user mode qemu.
>>
>> Duplicate udevadm and add postinst-intercept update_udev_hwdb to fix the
>> failures.
>>
>> Signed-off-by: Kai Kang <kai.kang@windriver.com>
>> ---
>>   meta/recipes-core/systemd/systemd_239.bb     | 13 ++++++-------
>>   meta/recipes-core/udev/eudev_3.2.5.bb        | 11 +++++------
>>   scripts/postinst-intercepts/update_udev_hwdb |  6 ++++++
>>   3 files changed, 17 insertions(+), 13 deletions(-)
>>   create mode 100644 scripts/postinst-intercepts/update_udev_hwdb
>>
>> diff --git a/meta/recipes-core/systemd/systemd_239.bb 
>> b/meta/recipes-core/systemd/systemd_239.bb
>> index 7ed932141d..44e972ebce 100644
>> --- a/meta/recipes-core/systemd/systemd_239.bb
>> +++ b/meta/recipes-core/systemd/systemd_239.bb
>> @@ -284,6 +284,10 @@ do_install() {
>>               chown polkitd:root ${D}${datadir}/polkit-1/rules.d
>>           fi
>>       fi
>> +
>> +    # duplicate udevadm for postinst script
>> +    install -d ${D}${libexecdir}
>> +    ln ${D}${base_bindir}/udevadm ${D}${libexecdir}/${MLPREFIX}udevadm
>>   }
>>     @@ -542,6 +546,7 @@ FILES_udev += "${base_sbindir}/udevd \
>>                  ${systemd_unitdir}/system/*udev* \
>>                  ${systemd_unitdir}/system/*.wants/*udev* \
>>                  ${base_bindir}/udevadm \
>> +               ${libexecdir}/${MLPREFIX}udevadm \
>>                  ${datadir}/bash-completion/completions/udevadm \
>>                 "
>>   @@ -580,13 +585,7 @@ pkg_prerm_${PN} () {
>>   PACKAGE_WRITE_DEPS += "qemu-native"
>>   pkg_postinst_udev-hwdb () {
>>       if test -n "$D"; then
>> -        if ${@bb.utils.contains('MACHINE_FEATURES', 'qemu-usermode', 
>> 'true','false', d)}; then
>> -            ${@qemu_run_binary(d, '$D', '${base_bindir}/udevadm')} 
>> hwdb --update \
>> -                --root $D
>> -            chown root:root $D${sysconfdir}/udev/hwdb.bin
>> -        else
>> -            $INTERCEPT_DIR/postinst_intercept delay_to_first_boot 
>> ${PKG} mlprefix=${MLPREFIX}
>> -        fi
>> +        $INTERCEPT_DIR/postinst_intercept update_udev_hwdb ${PKG} 
>> mlprefix=${MLPREFIX} binprefix=${MLPREFIX}
>>       else
>>           udevadm hwdb --update
>>       fi
>> diff --git a/meta/recipes-core/udev/eudev_3.2.5.bb 
>> b/meta/recipes-core/udev/eudev_3.2.5.bb
>> index efd62c6495..592dd8f22a 100644
>> --- a/meta/recipes-core/udev/eudev_3.2.5.bb
>> +++ b/meta/recipes-core/udev/eudev_3.2.5.bb
>> @@ -50,6 +50,10 @@ do_install_append() {
>>         # hid2hci has moved to bluez4. removed in udev as of version 169
>>       rm -f ${D}${base_libdir}/udev/hid2hci
>> +
>> +    # duplicate udevadm for postinst script
>> +    install -d ${D}${libexecdir}
>> +    ln ${D}${bindir}/udevadm ${D}${libexecdir}/${MLPREFIX}udevadm
>>   }
>>     do_install_prepend_class-target () {
>> @@ -81,12 +85,7 @@ RPROVIDES_eudev-hwdb += "udev-hwdb"
>>   PACKAGE_WRITE_DEPS += "qemu-native"
>>   pkg_postinst_eudev-hwdb () {
>>       if test -n "$D"; then
>> -        if ${@bb.utils.contains('MACHINE_FEATURES', 'qemu-usermode', 
>> 'true','false', d)}; then
>
> Hi Richard,
>
> It seems check for 'qemu-usermode' should not be removed. And it also 
> need to check for other intercept scripts.

I just realize that intercept scripts have been handled well in 
lib/oe/package_manager.py. So please ignore my last reply.

Sorry for the inconvenience.

--Kai


>
> So please ignore this patch and I'll send V2.
>
> Regards,
> Kai
>
>
>> -            ${@qemu_run_binary(d, '$D', '${bindir}/udevadm')} hwdb 
>> --update --root $D
>> -            chown root:root $D${sysconfdir}/udev/hwdb.bin
>> -        else
>> -            $INTERCEPT_DIR/postinst_intercept delay_to_first_boot 
>> ${PKG} mlprefix=${MLPREFIX}
>> -        fi
>> +        $INTERCEPT_DIR/postinst_intercept update_udev_hwdb ${PKG} 
>> mlprefix=${MLPREFIX} binprefix=${MLPREFIX}
>>       else
>>           udevadm hwdb --update
>>       fi
>> diff --git a/scripts/postinst-intercepts/update_udev_hwdb 
>> b/scripts/postinst-intercepts/update_udev_hwdb
>> new file mode 100644
>> index 0000000000..b5cce0a09d
>> --- /dev/null
>> +++ b/scripts/postinst-intercepts/update_udev_hwdb
>> @@ -0,0 +1,6 @@
>> +#!/bin/sh
>> +
>> +set -e
>> +
>> +PSEUDO_UNLOAD=1 ${binprefix}qemuwrapper -L $D 
>> $D${libexecdir}/${binprefix}udevadm hwdb --update --root $D
>> +chown root:root $D${sysconfdir}/udev/hwdb.bin
>
>

-- 
Regards,
Neil | Kai Kang



  reply	other threads:[~2018-10-23  6:45 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-10-18 15:28 [PATCH 0/1] udev-hwdb: fix postinstall scripts failures when multilib enabled kai.kang
2018-10-18 15:28 ` [PATCH 1/1] " kai.kang
2018-10-22 15:11   ` Kang Kai
2018-10-23  6:43     ` Kang Kai [this message]
2018-10-23 21:17       ` richard.purdie
2018-10-26  7:52         ` Kang Kai
2018-10-22  2:29 ` [PATCH 0/1] " Kang Kai

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=5ca5c33e-42e1-9a14-2b60-ff84d6f5774e@windriver.com \
    --to=kai.kang@windriver.com \
    --cc=openembedded-core@lists.openembedded.org \
    --cc=richard.purdie@linuxfoundation.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox