[OE-core] [PATCH 1/1] udev-hwdb: fix postinstall scripts failures when multilib enabled

richard.purdie at linuxfoundation.org richard.purdie at linuxfoundation.org
Tue Oct 23 21:17:52 UTC 2018


On Tue, 2018-10-23 at 14:43 +0800, Kang Kai wrote:
> On 2018/10/22 下午11:11, Kang Kai wrote:
> > On 2018/10/18 下午11:28, kai.kang at windriver.com wrote:
> > > From: Kai Kang <kai.kang at 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 at 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.

I'm now confused, which version of this patch do we need?

Cheers,

Richard




More information about the Openembedded-core mailing list