chiark / gitweb /
journalctl: Add support for showing messages from a previous boot
[elogind.git] / TODO
diff --git a/TODO b/TODO
index c34f1dab0f7c58400570a0b676744dcf4a01c0e8..f5da81f527adf78d60aa9452ebc2941fa4a02939 100644 (file)
--- a/TODO
+++ b/TODO
@@ -11,6 +11,14 @@ Bugfixes:
 
 * properly handle .mount unit state tracking when two mount points are stacked one on top of another on the exact same mount point.
 
+* stop importing kernel exported env variables. The utterly broken logic in
+  the kernel exports every kernel command line option which is not recognized
+  as a built-in module option as an env variable. Systemd should not pass-on
+  that nonsense, a kernel command line option is a command line option not an
+  env variable:
+    $ cat /proc/252/environ
+    initrd=\6a9857a393724b7a981ebb5b8495b9ea\3.10.0-2.fc20.x86_64\initrd
+
 Fedora 19:
 
 * external: maybe it is time to patch procps so that "ps" links to
@@ -26,38 +34,78 @@ Fedora 19:
 
 * when installing fedora with yum --installroot /var/run is a directory, not a symlink
 
+CGroup Rework Completion:
+
+* introduce "mainpid" for scopes
+
+* implement system-wide DefaultCPUAccounting=1 switch (and similar for blockio, memory?)
+
+* implement per-slice CPUFairScheduling=1 switch
+
+* handle jointly mounted controllers correctly
+
+* logind: implement session kill exceptions
+
+* make BlockIODeviceWeight=, BlockIODeviceBandwidth= runtime settable
+
+* introduce high-level settings for RT budget, swappiness
+
+* man: document new bus apis
+
+* Send SIGHUP and SIGTERM in session scopes
+
 Features:
 
-* split up BlockIOWeight= and BlockIODeviceWeight=
+* add rpm macros for applying tmpfiles --create after package installation
 
-* how to reset dynamically changed attributes sanely?
+* when parsing calendar timestamps support the UTC timezone (even if we won't support arbitrary timezone specs, support UTC itself certainly makes sense), also support syntaxes such as +0200
 
-* when reloading configuration, apply new cgroup configuration
+* journalctl: add an output mode that looks like classic /var/log/messages, but also outputs the cursor of the last entry so that people can write scripts that can run iteratively and always process data that has been added since the last time.
 
-* implement system-wide DefaultCPUAccounting=1 switch (and similar for blockio, memory, fair scheduling?)
+* when a kernel driver logs in a tight loop we should ratelimit that too.
 
-* handle jointly mounted controllers correctly
+* journald: optionally, when messages with a high log prioerity are logged, sync() immeidately.
 
-* split out CreateMachine into systemd-machined
+* introduce %v resolving to the string returned by "uname -r"
 
-* "transient" units, i.e units that are not sourced from disk but
-  created only transiently via bus calls
+* systemctl list-unit-files should list generated files (and probably with a new state "generated" for them, or so)
 
-* introduce new Scope unit type then make logind's session and machine
-  registration use this to set up cgroups
+* Get rid of systemd-sysv:
+  https://fedoraproject.org/wiki/User:Toshio/Systemd_Convert_draft
 
-* should Slice= be part of [Unit] or of [Service]?
+* do we really need both hasprefix() and startswith()?
 
-* journald: make sure ratelimit is actually really per-service with the new cgroup changes
+* when a kernel driver logs in a tight loop we should ratelimit that too.
+
+* journald: when we drop syslog messages because the syslog socket is
+  full, make sure to write how many messages are lost as first thing
+  to syslog when it works again.
 
-* move systemctl dump to systemd-analyze
+* prohibit Restart= set with Type=oneshot
+
+* man: the documentation of Restart= currently is very misleading and suggests the tools from ExecStartPre= might get restarted.
+
+* load .d/*.conf dropins for device units
+
+* move systemctl set-log-level to systemd-analyze?
+
+* move "systemctl dump" to systemd-analyze
+
+* add a fixed dbus path for "my own unit", "my own session", ... to PID1, logind, ...
+
+* service_coldplug() appears to reinstall the wrong stop timeout watch?
+
+* transient units: allow creating auxiliary units with the same call
+
+* how to reset dynamically changed attributes sanely?
+
+* when reloading configuration, apply new cgroup configuration
+
+* journald: make sure ratelimit is actually really per-service with the new cgroup changes
 
 * libsystemd-logind: sd_session_is_active() and friends: verify
   validity of session name before appending it to a path
 
-* logind: when a PAM client calls ReleaseSession() start a timeout and
-  kill the session entirely after that is reached.
-
 * gparted needs to disable auto-activation of mount units somehow, or
   maybe we should stop doing auto-activiation of this after boot
   entirely. https://bugzilla.gnome.org/show_bug.cgi?id=701676
@@ -158,10 +206,6 @@ Features:
   so that the coredump is properly written to the user's own journal
   file.
 
-* move /usr/lib/modules/$(uname -r)/modules.devname parsing from udevd to
-   kmod static-nodes
-  call kmod as an early service, and drop CAP_MKNOD from udevd.service
-
 * seems that when we follow symlinks to units we prefer the symlink
   destination path over /etc and /usr. We shouldn't do that. Instead
   /etc should always override /run+/usr and also any symlink
@@ -180,8 +224,6 @@ Features:
 
 * teach ConditionKernelCommandLine= globs or regexes (in order to match foobar={no,0,off})
 
-* we should log capabilities too
-
 * Support SO_REUSEPORT with socket activation:
   - Let systemd maintain a pool of servers.
   - Use for seamless upgrades, by running the new server before stopping the
@@ -314,14 +356,13 @@ Features:
   - journal-send.c, log.c: when the log socket is clogged, and we drop, count this and write a message about this when it gets unclogged again.
   - journal: find a way to allow dropping history early, based on priority, other rules
   - journal: When used on NFS, check payload hashes
-  - Introduce journalctl -b <nr> to show journal messages of a previous boot
   - journald: check whether it is OK if the client can still modify delivered journal entries
   - journal live copy, based on libneon (client) and libmicrohttpd (server)
   - journald: add kernel cmdline option to disable ratelimiting for debug purposes
   - refuse taking lower-case variable names in sd_journal_send() and friends.
   - journald: we currently rotate only after MaxUse+MaxFilesize has been reached.
   - journal: deal nicely with byte-by-byte copied files, especially regards header
-  - journalctl: show multiline log messages sanely, expand tabs, and show all valid utf8 messages
+  - journalctl: expand tabs
   - journal: store euid in journal if it differs from uid
   - journal: sanely deal with entries which are larger than the individual file size, but where the components would fit
   - Replace utmp, wtmp, btmp, and lastlog completely with journal