chiark / gitweb /
core: add new ConditionNeedsUpdate= unit condition
authorLennart Poettering <lennart@poettering.net>
Fri, 13 Jun 2014 10:52:31 +0000 (12:52 +0200)
committerLennart Poettering <lennart@poettering.net>
Fri, 13 Jun 2014 11:26:32 +0000 (13:26 +0200)
commita55654d598c78f8e084aa6a18fec6eff900c9aed
tree12e119c56dae72ebdb9c62b74fb21163330ee5d9
parent8ea48dfcd33e8db0c01bf8c57c3bbcfdc3c86d4b
core: add new ConditionNeedsUpdate= unit condition

This new condition allows checking whether /etc or /var are out-of-date
relative to /usr. This is the counterpart for the update flag managed by
systemd-update-done.service. Services that want to be started once after
/usr got updated should use:

        [Unit]
        ConditionNeedsUpdate=/etc
        Before=systemd-update-done.service

This makes sure that they are only run if /etc is out-of-date relative
to /usr. And that it will be executed after systemd-update-done.service
which is responsible for marking /etc up-to-date relative to the current
/usr.

ConditionNeedsUpdate= will also checks whether /etc is actually
writable, and not trigger if it isn't, since no update is possible then.
src/core/condition.c
src/core/load-fragment-gperf.gperf.m4
src/shared/condition-util.c
src/shared/condition-util.h
units/systemd-update-done.service.in