> Op 24 okt. 2014, om 07:58 heeft Chen Qi <qi.c...@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.c...@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@lists.openembedded.org
> http://lists.openembedded.org/mailman/listinfo/openembedded-core
> 

-- 
_______________________________________________
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-core

Reply via email to