]> git.ipfire.org Git - thirdparty/systemd.git/blobdiff - TODO
man: change noindex="true" to index="false"
[thirdparty/systemd.git] / TODO
diff --git a/TODO b/TODO
index 1cf0318b227e50c586b94486ea5cfd97f018ded1..c3cc999ac4620256d0464bbb24f5e814aa3f526a 100644 (file)
--- a/TODO
+++ b/TODO
@@ -4,11 +4,6 @@ Bugfixes:
   manager or system manager can be always set. It would be better to reject
   them when parsing config.
 
-* busctl --user call org.freedesktop.systemd1 /org/freedesktop/systemd1 org.freedesktop.systemd1.Manager GetUnitProcesses "s" run-rbff1b85427b34ba3adf864281aeda8e7.service
-Failed to set address: No such file or directory
-
-  → improve error message
-
 External:
 
 * Fedora: add an rpmlint check that verifies that all unit files in the RPM are listed in %systemd_post macros.
@@ -22,13 +17,67 @@ Janitorial Clean-ups:
 * 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.
+
 Features:
 
+* socket units: allow creating a udev monitor socket with ListenDevices= or so,
+  with matches, then actviate app thorugh that passing socket oveer
+
+* 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
+
+* teach parse_timestamp() timezones like the calendar spec already knows it
+
+* 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
+  output for them.
+
+* dissector: invoke fsck on the file systems we encounter, after all ext4 is
+  still pretty popular (and we mount the ESP too with it after all, which is
+  fat)
+
+* systemd-firstboot: teach it dissector magic, so that you can point it to some
+  disk image and it will just set everything in it all behind the scenes.
+
+* systemd-firstboot: add --force mode that replaces existing configuration.
+
 * We should probably replace /var/log/README, /etc/rc.d/README with symlinks
   that are linked to these places instead of copied. After all they are
   constant vendor data.
 
-* seed: check if first-boot and then don't do anything
+* maybe add kernel cmdline params: 1) to force first-boot mode + 2) to force
+  random seed crediting
+
+* nspawn: on cgroupsv1 issue cgroup empty handler process based on host events,
+  so that we make cgroup agent logic safe
+
+* nspawn/machined: add API to invoke binary in container, then use that as
+  fallback in "machinectl shell"
 
 * logind: rework pam_logind to also do a bus call in case of invocation from
   user@.service, which returns the XDG_RUNTIME_DIR value, and make this
@@ -52,8 +101,6 @@ Features:
 * 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
@@ -85,9 +132,6 @@ Features:
 
 * 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
@@ -122,9 +166,6 @@ Features:
 * sd-boot: optionally, show boot menu when previous default boot item has
   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
-
 * 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
   it should skip the variant type string though.
@@ -204,9 +245,6 @@ Features:
 
 * 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
@@ -226,9 +264,6 @@ Features:
 
 * 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.
 
@@ -425,9 +460,6 @@ Features:
 * 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
@@ -455,8 +487,6 @@ Features:
 
 * 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
 
@@ -610,8 +640,6 @@ Features:
 * 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
@@ -732,7 +760,6 @@ Features:
 
 * 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.
@@ -918,7 +945,6 @@ Features:
 
 * 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
@@ -1002,7 +1028,6 @@ Features:
    - 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
@@ -1083,6 +1108,9 @@ External:
   - <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: