udev-hwdb: fix postinstall scripts failures when multilib enabled
cover udev-hwdb: fix postinstall scripts failures when multilib enabled
From: Kai Kang <[email protected]>
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
Signature · 1 line
2.18.0
PATCH 1/1 udev-hwdb: fix postinstall scripts failures when multilib enabled
From: Kai Kang <[email protected]>
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.
--- 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
meta/recipes-core/systemd/systemd_239.bb +6 -7
@@ -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
meta/recipes-core/udev/eudev_3.2.5.bb +5 -6
@@ -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
scripts/postinst-intercepts/update_udev_hwdb new file +6 -0
@@ -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
Signature · 1 line
2.18.0
Quoted 10 lines · On 2018/10/18 下午11:28, [email protected] wrote:
From: Kai Kang <[email protected]>
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-contribkangkai/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
Quoted 10 lines
Kai Kang (1):
udev-hwdb: fix postinstall scripts failures when multilib enabledmeta/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
Signature · 2 lines
Regards, Neil | Kai Kang
Quoted 71 lines · On 2018/10/18 下午11:28, [email protected] wrote:
From: Kai Kang <[email protected]>
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_hwdbto fix the failures.Signed-off-by Kai Kang <[email protected]>--- 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_hwdbmeta/recipes-core/systemd/systemd_239.bb +6
-7@@ -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 fimeta/recipes-core/udev/eudev_3.2.5.bb +4
-0@@ -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 () {
meta/recipes-core/udev/eudev_3.2.5.bb RPROVIDES_eudev-hwdb += "udev-hwdb" · line 84
Quoted 4 lines
meta/recipes-core/udev/eudev_3.2.5.bb +0
-1@@ -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
Quoted 21 lines
meta/recipes-core/udev/eudev_3.2.5.bb +1
-5- ${@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 fiscripts/postinst-intercepts/update_udev_hwdb new file +6
-0@@ -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
Signature · 2 lines
Regards, Neil | Kai Kang
Quoted 79 lines · Kang Kai
Quoted 70 lines · On 2018/10/18 下午11:28, [email protected] wrote:
From: Kai Kang <[email protected]>
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_hwdbto fix the failures.Signed-off-by Kai Kang <[email protected]>---
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_hwdbmeta/recipes-core/systemd/systemd_239.bb +0
-0@@ -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_interceptdelay_to_first_boot${PKG} mlprefix=${MLPREFIX}
- fi
+ $INTERCEPT_DIR/postinst_interceptupdate_udev_hwdb${PKG} mlprefix=${MLPREFIX} binprefix=${MLPREFIX}
else
udevadm hwdb --update
fimeta/recipes-core/udev/eudev_3.2.5.bb +0
-0@@ -50,6 +50,10 @@ do_install_append() { # hid2hci has moved to bluez4. removed in udev as of version 169rm -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 () {meta/recipes-core/udev/eudev_3.2.5.bb +0
-0@@ -81,12 +85,7 @@ RPROVIDES_eudev-hwdb += "udev-hwdb"Quoted 5 lines
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)}; thenHi Richard,
Quoted 1 line
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
Quoted 34 lines
So please ignore this patch and I'll send V2.
Regards,
KaiQuoted 25 lines
- ${@qemu_run_binary(d, '$D', '${bindir}/udevadm')} hwdb --update --root $D
- chown root:root $D${sysconfdir}/udev/hwdb.bin - else
- $INTERCEPT_DIR/postinst_interceptdelay_to_first_boot${PKG} mlprefix=${MLPREFIX}
- fi
+ $INTERCEPT_DIR/postinst_interceptupdate_udev_hwdb${PKG} mlprefix=${MLPREFIX} binprefix=${MLPREFIX}
else
udevadm hwdb --update
fiscripts/postinst-intercepts/update_udev_hwdb new file +5
-0@@ -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
Signature · 2 lines
Regards, Neil | Kai Kang
Quoted 94 lines · Kang Kai
Quoted 93 lines · Kang Kai
Quoted 88 lines · On 2018/10/18 下午11:28, [email protected] wrote:
From: Kai Kang <[email protected]>
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_hwdbto fix the
failures.Signed-off-by Kai Kang <[email protected]>--- 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_hwdbmeta/recipes-core/systemd/systemd_239.bb +4
-0@@ -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 \meta/recipes-core/systemd/systemd_239.bb +1
-1+ ${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 \meta/recipes-core/systemd/systemd_239.bb +0
-4- --root $D - chown root:root $D${sysconfdir}/udev/hwdb.bin - else - $INTERCEPT_DIR/postinst_intercept
delay_to_first_boot
${PKG} mlprefix=${MLPREFIX}meta/recipes-core/systemd/systemd_239.bb +1
-1- fi + $INTERCEPT_DIR/postinst_intercept update_udev_hwdb${PKG}
mlprefix=${MLPREFIX} binprefix=${MLPREFIX}else udevadm hwdb --update fimeta/recipes-core/udev/eudev_3.2.5.bb +0
-0@@ -50,6 +50,10 @@ do_install_append() { # hid2hci has moved to bluez4. removed in udev as ofversion 169
rm -f ${D}${base_libdir}/udev/hid2hcimeta/recipes-core/udev/eudev_3.2.5.bb +4
-0+ + # duplicate udevadm for postinst script + install -d ${D}${libexecdir} + ln ${D}${bindir}/udevadm${D}${libexecdir}/${MLPREFIX}udevadm
}do_install_prepend_class-target () {meta/recipes-core/udev/eudev_3.2.5.bb +0
-1@@ -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',Quoted 1 line
'true','false', d)}; then
Hi Richard,
Quoted 6 lines
Quoted 3 lines
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
Quoted 94 lines · On 2018/10/24 上午5:17, [email protected] wrote:
Quoted 93 lines · Kang Kai
Quoted 92 lines · Kang Kai
Quoted 88 lines · On 2018/10/18 下午11:28, [email protected] wrote:
From: Kai Kang <[email protected]>
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_hwdbto fix the
failures.Signed-off-by Kai Kang <[email protected]>--- 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_hwdbmeta/recipes-core/systemd/systemd_239.bb +4
-0@@ -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 \meta/recipes-core/systemd/systemd_239.bb +1
-1+ ${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 \meta/recipes-core/systemd/systemd_239.bb +0
-4- --root $D - chown root:root $D${sysconfdir}/udev/hwdb.bin - else - $INTERCEPT_DIR/postinst_intercept
delay_to_first_boot
${PKG} mlprefix=${MLPREFIX}meta/recipes-core/systemd/systemd_239.bb +1
-1- fi + $INTERCEPT_DIR/postinst_intercept update_udev_hwdb${PKG}
mlprefix=${MLPREFIX} binprefix=${MLPREFIX}else udevadm hwdb --update fimeta/recipes-core/udev/eudev_3.2.5.bb +0
-0@@ -50,6 +50,10 @@ do_install_append() { # hid2hci has moved to bluez4. removed in udev as ofversion 169
rm -f ${D}${base_libdir}/udev/hid2hcimeta/recipes-core/udev/eudev_3.2.5.bb +4
-0+ + # duplicate udevadm for postinst script + install -d ${D}${libexecdir} + ln ${D}${bindir}/udevadm${D}${libexecdir}/${MLPREFIX}udevadm
}do_install_prepend_class-target () {meta/recipes-core/udev/eudev_3.2.5.bb +0
-1@@ -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',Quoted 1 line
'true','false', d)}; then
Hi Richard,
Quoted 6 lines
Quoted 5 lines
Quoted 3 lines
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
Quoted 6 lines
Cheers,
Richard
Signature · 2 lines
Regards, Neil | Kai Kang