[systemd-devel] ConditionNeedsUpdate date comparison

Umut Tezduyar Lindskog umut at tezduyar.com
Tue Jan 27 02:17:57 PST 2015


Hi,

On Tue, Jan 27, 2015 at 1:35 AM, Lennart Poettering
<lennart at poettering.net> wrote:
> On Mon, 26.01.15 14:00, Umut Tezduyar Lindskog (umut at tezduyar.com) wrote:
>
>> Hi,
>>
>> condition_test_needs_update() wants the timestamp of /usr to be newer
>> than what is being checked.
>>
>> Is there a reason why we don't check for "/usr !=
>> Condition.parameter"?
>
> Well, when I hacked that up, I didn't think of this case.
>
> What are you saying ConditionNeedsUpdate=/usr is supposed to even
> mean?

We are not on the same page. I never meant ConditionNeedsUpdate=/usr.

>
> Not that we explicitly document that /etc and /var are the only valid
> parameters currently (because we only manage those stamp
> files with systemd-update-done.service). Hence,
> ConditionNeedsUpdate=/usr is undefined currently, and it's not clear
> to me what is should mean?
>
>> It makes sense to check for "/usr > Condition.parameter" in a package
>> managed linux but our embedded system is upgrading the entire /usr
>> partition.
>>
>> ConditionNeedsUpdate=/etc is working fine when we upgrade our image
>> but it fails when we downgrade it since the timestamp of /usr is older
>> than /etc/.updated.
>
> Well, this stuf is not intended to support downgrades. I don't think
> that can ever work...
>
> But anyway, I don't really understand what you are trying to say I
> must admit. Could you please elaborate?

Sure.

Pretty much what I am saying is we wan't to use
ConditionNeedsUpdate=/etc for downgrade case. Why do you think it
won't work?

Instead of "IF time(/usr) > time(/etc/.updated)", we can check "IF
time(/usr) != time(/etc/.updated)".

Umut


>
> Lennart
>
> --
> Lennart Poettering, Red Hat


More information about the systemd-devel mailing list