Package: systemd
Version: 246.1-1
Severity: normal

Systemd 246 introduces ConditionEnviornment=/AssertEnvironment [1] in the [Unit]
configuration (see systemd.unit(5)).  This feature does not appear to work.

The first evidence of this is neither ConditionEnvironment or AssertEnvironment
get parsed by `systemd-analyze` which other conditions are parsed (even when
empty):

    $ systemd-analyze condition \
        'ConditionKernelVersion='  \
        'ConditionKernelVersion='  \
        'ConditionACPower=' \
        'ConditionArchitecture=' \
        'AssertPathExists=' \
        'AssertEnvironment='
    Cannot parse "AssertEnvironment=".

The second evidence is that targets can be reached when conditions are not met: 

    $ systemctl --user cat i3-session-pre.target
    # /home/stew/.config/systemd/user/i3-session-pre.target
    [Unit]
    Description=i3 session
    BindsTo=graphical-session-pre.target
    ConditionEnvironment=THIS_ENV_DOESNT_EXIST=1
    $ systemctl --user start i3-session-pre.target
    $ systemctl --user status i3-session-pre.target
    ● i3-session-pre.target -
i3 session
         Loaded: loaded (/home/stew/.config/systemd/user/i3-session-
pre.target;
                        static)
         Active: active since Tue
2020-08-18 17:29:36 CEST; 6s ago

    Aug 18 17:29:36 stewbian systemd[1717]: Reached target i3 session.

The same behaviour was observed for 
 (1) non-existent environment variables
 (2) environment variables with incorrect data
 (3) matching environment variables.

I can confirm that the pull request related to this [2] appears to be
integrated.  I confirmed that with `apt source systemd` and inspecting the
sources.

I suspect the problem lies upstream.

[1]: https://raw.githubusercontent.com/systemd/systemd/master/NEWS
[2]: https://github.com/systemd/systemd/pull/15817




Attachment: signature.asc
Description: This is a digitally signed message part

Reply via email to