I'm not sure that Frank's follow-up comment and package assignment corresponds to the original bug report.
If I understand the original bug report correctly, the problem is that systemd reports 'yes' to CanSuspend on systems that only support 'freeze', and that this is seen as incorrect. Therefore the problem is not inconsistency between systemd and pm-utils; the problem is inconsistency between systemd and the consumer of the CanSuspend API (in this case, libvirt). This API is org.freedesktop.login1.Manager.CanSuspend, which is part of logind, which is defined by systemd. So unless this is a behavior change in systemd, it doesn't appear to be a bug that we can do anything about directly in Ubuntu; the semantics of this API are defined by upstream, and any changes to those semantics would need to be negotiated with upstream. For my part, I am not clear why 'freeze' should not be considered a subcategory of suspend-to-mem, so perhaps this bug will be 'wontfix' by systemd upstream. At the very least, this bug report seems to be missing an explanation of why the current behavior of systemd is wrong. In any case, it's clear to me that no change in pm-utils will address the root problem being reported, because a) libvirt prefers logind over pm-utils, we always have logind present in 18.04, and we do not install pm-utils by default, so changing pm-utils will not change the observed behavior; and b) AIUI the bug submitter is asserting that pm-utils' behavior is the correct behavior. ** Changed in: pm-utils (Ubuntu) Assignee: Canonical Foundations Team (canonical-foundations) => (unassigned) -- You received this bug notification because you are a member of Ubuntu Touch seeded packages, which is subscribed to pm-utils in Ubuntu. https://bugs.launchpad.net/bugs/1706948 Title: [Ubuntu 18.04] [Feature] Inconsistent report of pm CanSuspend state by systemd and pm-utils Status in The Ubuntu-power-systems project: Incomplete Status in pm-utils package in Ubuntu: Incomplete Bug description: == Comment: #0 - Balamuruhan S <> - 2017-06-28 03:39:15 == systemd and pm-utils interprets CanSuspend states differently and reports it as supported or not in a conflicting way. # gdbus call --system --dest org.freedesktop.login1 --object-path /org/freedesktop/login1 --method org.freedesktop.login1.Manager.CanSuspend ('yes',) # pm-is-supported --suspend # echo $? 1 Both systemd and pm-is-supported looks into /sys/power/state file to check if suspend is supported. pm-is-supported --suspend returns true if either "standby" or "mem" is present in the file. ( /usr/lib/pm-utils/pm-functions ) systemd(Manager.CanSuspend) returns true if "standby", "freeze" or "mem" is present in the file. ( https://github.com/systemd/systemd/blob/dd8352659c9428b196706d04399eec106a8917ed/src/shared/sleep-config.c ) # cat /sys/power/state freeze So here, pm-is-supported --suspend returns false and gdbus returns true. Both these utilities interpret /sys/power/state differently. Secondly, systemd should split CanSuspend to Cansuspend+CanFreeze Or don't report freeze as CanSuspend. Impact of this inconsistency can be felt from Libvirt supported pm states: To reduce ABI dependency, libvirt queries the available states via dbus, if not falls to pm-utils. Libvirt won't check for strings in sys/power/state and interpret directly. so due to this, libvirt will list that suspend_to_mem is supported from virsh capabilities but ideally it might not. To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu-power-systems/+bug/1706948/+subscriptions -- Mailing list: https://launchpad.net/~touch-packages Post to : touch-packages@lists.launchpad.net Unsubscribe : https://launchpad.net/~touch-packages More help : https://help.launchpad.net/ListHelp