Openembedded Core Discussions
 help / color / mirror / Atom feed
* [PATCH 0/1] udev-hwdb: fix postinstall scripts failures when multilib enabled
@ 2018-10-18 15:28 kai.kang
  2018-10-18 15:28 ` [PATCH 1/1] " kai.kang
  2018-10-22  2:29 ` [PATCH 0/1] " Kang Kai
  0 siblings, 2 replies; 7+ messages in thread
From: kai.kang @ 2018-10-18 15:28 UTC (permalink / raw)
  To: openembedded-core

From: Kai Kang <kai.kang@windriver.com>

The following changes since commit 4ef016683d986cc5291e494789ff5a49b28030eb:

  bitbake: test/data: Add new tests for task checksum changing/not changing (2018-10-18 10:59:27 +0100)

are available in the Git repository at:

  git://git.pokylinux.org/poky-contrib kangkai/udev
  http://git.pokylinux.org/cgit.cgi/poky-contrib/log/?h=kangkai/udev

Kai Kang (1):
  udev-hwdb: fix postinstall scripts failures when multilib enabled

 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

-- 
2.18.0



^ permalink raw reply	[flat|nested] 7+ messages in thread

* [PATCH 1/1] udev-hwdb: fix postinstall scripts failures when multilib enabled
  2018-10-18 15:28 [PATCH 0/1] udev-hwdb: fix postinstall scripts failures when multilib enabled kai.kang
@ 2018-10-18 15:28 ` kai.kang
  2018-10-22 15:11   ` Kang Kai
  2018-10-22  2:29 ` [PATCH 0/1] " Kang Kai
  1 sibling, 1 reply; 7+ messages in thread
From: kai.kang @ 2018-10-18 15:28 UTC (permalink / raw)
  To: openembedded-core

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
-            ${@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
-- 
2.18.0



^ permalink raw reply related	[flat|nested] 7+ messages in thread

* Re: [PATCH 0/1] udev-hwdb: fix postinstall scripts failures when multilib enabled
  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  2:29 ` Kang Kai
  1 sibling, 0 replies; 7+ messages in thread
From: Kang Kai @ 2018-10-22  2:29 UTC (permalink / raw)
  To: openembedded-core

On 2018/10/18 下午11:28, kai.kang@windriver.com wrote:
> From: Kai Kang <kai.kang@windriver.com>
>
> The following changes since commit 4ef016683d986cc5291e494789ff5a49b28030eb:
>
>    bitbake: test/data: Add new tests for task checksum changing/not changing (2018-10-18 10:59:27 +0100)
>
> are available in the Git repository at:
>
>    git://git.pokylinux.org/poky-contrib kangkai/udev
>    http://git.pokylinux.org/cgit.cgi/poky-contrib/log/?h=kangkai/udev


Rebased on origin/master and updated contrib branch kangkai/udev.

Regards,
Kai


>
> Kai Kang (1):
>    udev-hwdb: fix postinstall scripts failures when multilib enabled
>
>   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
>

-- 
Regards,
Neil | Kai Kang



^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH 1/1] udev-hwdb: fix postinstall scripts failures when multilib enabled
  2018-10-18 15:28 ` [PATCH 1/1] " kai.kang
@ 2018-10-22 15:11   ` Kang Kai
  2018-10-23  6:43     ` Kang Kai
  0 siblings, 1 reply; 7+ messages in thread
From: Kang Kai @ 2018-10-22 15:11 UTC (permalink / raw)
  To: openembedded-core, Richard Purdie

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



^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH 1/1] udev-hwdb: fix postinstall scripts failures when multilib enabled
  2018-10-22 15:11   ` Kang Kai
@ 2018-10-23  6:43     ` Kang Kai
  2018-10-23 21:17       ` richard.purdie
  0 siblings, 1 reply; 7+ messages in thread
From: Kang Kai @ 2018-10-23  6:43 UTC (permalink / raw)
  To: openembedded-core, Richard Purdie

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



^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH 1/1] udev-hwdb: fix postinstall scripts failures when multilib enabled
  2018-10-23  6:43     ` Kang Kai
@ 2018-10-23 21:17       ` richard.purdie
  2018-10-26  7:52         ` Kang Kai
  0 siblings, 1 reply; 7+ messages in thread
From: richard.purdie @ 2018-10-23 21:17 UTC (permalink / raw)
  To: Kang Kai, openembedded-core

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@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.

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

Cheers,

Richard



^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH 1/1] udev-hwdb: fix postinstall scripts failures when multilib enabled
  2018-10-23 21:17       ` richard.purdie
@ 2018-10-26  7:52         ` Kang Kai
  0 siblings, 0 replies; 7+ messages in thread
From: Kang Kai @ 2018-10-26  7:52 UTC (permalink / raw)
  To: richard.purdie, openembedded-core

On 2018/10/24 上午5:17, richard.purdie@linuxfoundation.org wrote:
> 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@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.
> I'm now confused, which version of this patch do we need?

Sorry for missing your comment and made you inconvenient.

I received some inner comments that remove check 'qemu-usermode' may 
cause problem. I was convinced and it has been merged to master-next 
already,
so I sent a reply that 'will send V2'. But after build without machine 
feature  'qemu-usermode', it turns out that the guardian of 
'qemu-usermode' has been
handled well by package_manager.py. Then I sent the last reply and not 
V2 patch sent.

Regards,
Kai


>
> Cheers,
>
> Richard
>
>

-- 
Regards,
Neil | Kai Kang



^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2018-10-26  7:53 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
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
2018-10-23 21:17       ` richard.purdie
2018-10-26  7:52         ` Kang Kai
2018-10-22  2:29 ` [PATCH 0/1] " Kang Kai

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox