> 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