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: Mon, 22 Oct 2018 23:11:34 +0800 [thread overview]
Message-ID: <e7a1a326-ce51-2b1b-eadb-c1c650f3fcbe@windriver.com> (raw)
In-Reply-To: <8de5585c10d806d15ba4550d05c3c8fbcab26990.1539876421.git.kai.kang@windriver.com>
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.
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
next prev parent reply other threads:[~2018-10-22 15:12 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 [this message]
2018-10-23 6:43 ` Kang Kai
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=e7a1a326-ce51-2b1b-eadb-c1c650f3fcbe@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