[OE-core] [PATCH 1/1] systemd: fix systemd-udev-hwdb-update service

Koen Kooi koen at dominion.thruhere.net
Fri Oct 24 06:09:45 UTC 2014


> Op 24 okt. 2014, om 07:58 heeft Chen Qi <Qi.Chen at windriver.com> het volgende geschreven:
> 
> The new version of systemd has implemented the following feature.
> Opointer.de/blog/projects/stateless.html
> 
> As a result, the systemd-udev-hwdb-update.service would always run
> at first boot. This will cause failure if the target device doesn't
> have enough storage space. Besides, as we run `udevadm hwdb --update' as
> a postinst of udev-hwdb at rootfs time, there's no need to run this
> again at system start-up.
> 
> The purpose of this patch is as follows.
> If `udev hwdb --update' fails at rootfs time, systemd-udev-hwdb-update.service
> is executed at first boot; otherwise, the service is not executed.
> 
> This patch achieves the above goal by setting CondistonNeedsUpdate to
> "/etc/udev" in the service file, and creating /etc/udev/.updated file if the
> postinst succeeds.

Ehm, /etc/udev can be created by other packages, why not test for the file you create?

regards,

Koen


> 
> Signed-off-by: Chen Qi <Qi.Chen at windriver.com>
> ---
> meta/recipes-core/systemd/systemd_216.bb | 18 +++++++++++++++---
> 1 file changed, 15 insertions(+), 3 deletions(-)
> 
> diff --git a/meta/recipes-core/systemd/systemd_216.bb b/meta/recipes-core/systemd/systemd_216.bb
> index ebf9395..cd81818 100644
> --- a/meta/recipes-core/systemd/systemd_216.bb
> +++ b/meta/recipes-core/systemd/systemd_216.bb
> @@ -149,6 +149,10 @@ do_install() {
> 
> 	# Enable journal to forward message to syslog daemon
> 	sed -i -e 's/.*ForwardToSyslog.*/ForwardToSyslog=yes/' ${D}${sysconfdir}/systemd/journald.conf
> +
> +	# Make systemd-udev-hwdb-update to check /etc/udev
> +	cp ${D}${systemd_unitdir}/system/systemd-udev-hwdb-update.service ${D}${sysconfdir}/systemd/system
> +	sed -i -e 's#ConditionNeedsUpdate=/etc#ConditionNeedsUpdate=/etc/udev#g' ${D}${sysconfdir}/systemd/system/systemd-udev-hwdb-update.service
> }
> 
> do_install_ptest () {
> @@ -355,10 +359,18 @@ ALTERNATIVE_PRIORITY[runlevel] ?= "300"
> 
> pkg_postinst_udev-hwdb () {
> 	if test -n "$D"; then
> -		${@qemu_run_binary(d, '$D', '${base_bindir}/udevadm')} hwdb --update \
> -			--root $D
> +		if ${@qemu_run_binary(d, '$D', '${base_bindir}/udevadm')} hwdb --update \
> +			--root $D; then
> +			touch $D/etc/udev/.updated
> +		else
> +			exit 1
> +		fi
> 	else
> -		udevadm hwdb --update
> +		if udevadm hwdb --update; then
> +			touch $D/etc/udev/.updated
> +		else
> +			exit 1
> +		fi
> 	fi
> }
> 
> -- 
> 1.9.1
> 
> -- 
> _______________________________________________
> Openembedded-core mailing list
> Openembedded-core at lists.openembedded.org
> http://lists.openembedded.org/mailman/listinfo/openembedded-core
> 




More information about the Openembedded-core mailing list