* rework mount.c and swap.c to follow proper state enumeration/deserialization
semantics, like we do for device.c now
+Before v244:
+
+* revisit SystemdOptions EFI variable. Find a better, systematic name and use
+ it for the env var, the bootctl verb and the EFI variable itself, clear up
+ semantics.
+
+* Figure out a better name for the global per-unit-type drop-in dirs, it's
+ confusing when it comes to -.mount.d/ (is it a drop-in-dir for all mount
+ units, or one for the root mount?). Also, OOM handling in
+ service_unit_name_is_valid() is borked.
+
Features:
+* coredump: maybe when coredumping read a new xattr from /proc/$PID/exe that
+ may be used to mark a whole binary as non-coredumpable. Would fix:
+ https://bugs.freedesktop.org/show_bug.cgi?id=69447
+
+* beef up hibernation to optionally do swapon/swapoff immediately before/after
+ the hibernation
+
+* beef up s2h to implement a battery watch loop: instead of entering
+ hibernation unconditionally after coming back from resume make a decision
+ based on the battery load level: if battery level is above a specific
+ threshold, go to suspend again, only hibernate if below it. This means we'd
+ stick to suspend usually, but fall back to hibernation only when battery runs
+ empty (well, subject to our sampling interval). Related to this, check if we
+ can make ACPI _BTP (i.e. /sys/class/power_supply/*/alarm) work for us too,
+ i.e. see if it can wake up machines from suspend, so that we could resume
+ automatically when the system is low on power and move automatically to
+ hibernation mode. (see
+ https://uefi.org/sites/default/files/resources/ACPI%206_2_A_Sept29.pdf
+ section 10.2.2.8 and
+ https://docs.microsoft.com/en-us/windows-hardware/design/device-experiences/modern-standby-wake-sources
+ at the end).
+
* add an explicit "vertical" mode to format-table, so that "systemctl
status"-like outputs (i.e. with a series of field names left and values
right) become genuine first class citizens, and we gain automatic, sane JSON
* make rfkill uaccess controllable by default, i.e. steal rule from
gnome-bluetooth and friends
-* warn if udev rules files are marked executable (docker?)
-
* tweak journald context caching. In addition to caching per-process attributes
keyed by PID, cache per-cgroup attributes (i.e. the various xattrs we read)
keyed by cgroup path, and guarded by ctime changes. This should provide us
* when no locale is configured, default to UEFI's PlatformLang variable
-* When logind.conf contains HandleLidSwitch=suspend-then-hibernate and we can't
- hibernate because the swap partition isn't large enough, still suspend
-
* bootctl,sd-boot: actually honour the "architecture" key
* add a new syscall group "@esoteric" for more esoteric stuff such as bpf() and
non-zero "tries done" count
* maybe set a special xattr on cgroups that have delegate=yes set, to make it
- easy to mark cut points
+ easy to mark cut points, then use this information in "systemd-cgls" to show
+ them (e.g. color delegated subtrees in a different color)
* introduce an option (or replacement) for "systemctl show" that outputs all
properties as JSON, similar to busctl's new JSON output. In contrast to that
* add --vacuum-xyz options to coredumpctl, matching those journalctl already has.
-* SuccessExitStatus= and friends should probably also accept symbolic exit
- codes names, i.e. error codes from the list maintained in exit-codes.[ch]
-
* introduce Ephemeral= unit file switch, that creates an ephemeral copy of all
files and directories that are left writable for a unit, and which are
removed after the unit goes down again. A bit like --ephemeral for
* bypass SIGTERM state in unit files if KillSignal is SIGKILL
-* tree-wide: ensure we always block the signals we hook into with
- sd_event_add_signal() first
-
* add proper dbus APIs for the various sd_notify() commands, such as MAINPID=1
and so on, which would mean we could report errors and such.
* mount: automatically search for "main" partition of an image has multiple
partitions
-* expose the "privileged" flag of ExecCommand on the bus, and open it up to
- transient units
-
* in nss-systemd, if we run inside of RootDirectory= with PrivateUsers= set,
find a way to map the User=/Group= of the service to the right name. This way
a user/group for a service only has to exist on the host for the right
* cache sd_event_now() result from before the first iteration...
-* add systemctl stop --job-mode=triggering that follows TRIGGERED_BY deps and adds them to the same transaction
-
* PID1: find a way how we can reload unit file configuration for
specific units only, without reloading the whole of systemd
* transient units:
- add field to transient units that indicate whether systemd or somebody else saves/restores its settings, for integration with libvirt
-* Automatically configure swap partition to use for hibernation by looking for largest swap partition on the root disk?
-
* when we detect low battery and no AC on boot, show pretty splash and refuse boot
* libsystemd-journal, libsystemd-login, libudev: add calls to easily attach these objects to sd-event event loops
* journal:
- consider introducing implicit _TTY= + _PPID= + _EUID= + _EGID= + _FSUID= + _FSGID= fields
- - import and delete pstore filesystem content at startup
- journald: also get thread ID from client, plus thread name
- journal: when waiting for journal additions in the client always sleep at least 1s or so, in order to minimize wakeups
- add API to close/reopen/get fd for journal client fd in libsystemd-journal.
* tmpfiles:
- apply "x" on "D" too (see patch from William Douglas)
- - replace F with f+.
- instead of ignoring unknown fields, reject them.
- creating new directories/subvolumes/fifos/device nodes
should not follow symlinks. None of the other adjustment or creation
- Make sure ID_PATH is always exported and complete for
network devices where possible, so we can safely rely
on Path= matching
- - check MTUBytes parsing (expecting size_t but we are using unsigned)
* sd-rtnl:
- add support for more attribute types
- <command> <verb> -<TAB> should complete options, but currently does not
- systemctl add-wants,add-requires
+* systemctl status should know about 'systemd-analyze calendar ... --iterations='
+* If timer has just OnInactiveSec=..., it should fire after a specified time
+ after being started.
Regularly: