chiark / gitweb /
event: make sure to possibly disarm the timerfds before we reenter epoll_wait
[elogind.git] / TODO
diff --git a/TODO b/TODO
index fb0ff63bb70efc16f6957b635f6a28dbe404ca00..e3874863ad44218f84f0cdb5d54b2d3f1a939680 100644 (file)
--- a/TODO
+++ b/TODO
@@ -1,5 +1,4 @@
 Bugfixes:
 Bugfixes:
-
 * enabling an instance unit creates a pointless link, and
   the unit will be started with getty@getty.service:
     $ systemctl enable getty@.service
 * enabling an instance unit creates a pointless link, and
   the unit will be started with getty@getty.service:
     $ systemctl enable getty@.service
@@ -13,8 +12,6 @@ Bugfixes:
   automount points even when the original .automount file did not exist
   anymore. Only the .mount unit was still around.
 
   automount points even when the original .automount file did not exist
   anymore. Only the .mount unit was still around.
 
-* make polkit checks async
-
 * properly handle .mount unit state tracking when two mount points are stacked one on top of another on the exact same mount point.
 
 * When we detect invalid UTF-8, we cannot use it in an error message:
 * properly handle .mount unit state tracking when two mount points are stacked one on top of another on the exact same mount point.
 
 * When we detect invalid UTF-8, we cannot use it in an error message:
@@ -36,8 +33,6 @@ Fedora 20:
 
 CGroup Rework Completion:
 
 
 CGroup Rework Completion:
 
-* introduce "mainpid" for scopes (or maybe not?)
-
 * implement system-wide DefaultCPUAccounting=1 switch (and similar for blockio, memory?)
 
 * implement per-slice CPUFairScheduling=1 switch
 * implement system-wide DefaultCPUAccounting=1 switch (and similar for blockio, memory?)
 
 * implement per-slice CPUFairScheduling=1 switch
@@ -48,18 +43,86 @@ CGroup Rework Completion:
 
 Features:
 
 
 Features:
 
+* sd-event: allow multiple signal handlers per signal
+
+* timer: expose accuracy as unit setting
+
+* sd-event: do per-minute coalescing of timer events too
+
+* when we detect low battery and no AC on boot, show pretty splash and refuse boot
+
+* move libasyncns into systemd as libsystemd-asyncns
+
+* calendarspec: support value ranges with ".." notation. Example: 2013-4..8-1
+
+* pid1 porting:
+  - restore selinux access control on properties
+
+* sd-bus: when triggering property change events, allow a NULL strv indicate that all properties listed as such are send out as changed
+
+* sd-bus: enforce signatures on response messages
+
+* sd-bus: make message handlers take an sd_bus_error and generate error replies automatically if they are set
+
+* sd-bus: when replying to a bus message we should not need to specify the bus again
+
+* sd-bus: see if we can drop more message validation on the sending side
+
+* sd-bus: introduce sd_bus_creds object and attach it to messages as well as allow querying it for names
+
+* sd-bus: support "const" properties as flag
+
+* sd-bus: add api call to escape bus path components
+
+* sd-event: when a handler returns an error, just turn off its event
+  source, but do not return anything up to the event loop
+  caller. Instead add parameter to sd_event_request_quit() to take
+  retval. This way errors rippling upwards are the option, not the
+  default
+
+* sd-event: child pid handling: first invoke waitid(WNOHANG) and call event handler, only afterwards reap the process
+
+* sd-event: native support for watchdog stuff
+
+* machined, localed: when we try to kill an empty cgroup, generate an ESRCH call over the bus
+
+* sd-bus: SD_BUS_COMMENT() macro for inclusion in vtables, syntax inspired by gdbus
+
+* libsystemd-journal, libsystemd-login, libudev: add calls to easily attach these objects to sd-event event loops
+
+* be more careful what we export on the bus as (usec_t) 0 and (usec_t) -1
+
+* check :no-sender logic after PID 1 conversion
+
+* increase journal files by a few MB each time, instead of piecemeal
+
+* add field to transient units that indicate whether systemd or somebody else saves/restores its settings, for integration with libvirt
+
+* systemctl: rework wait filter to not require match callback
+
+* unify dispatch table in systemctl_main() and friends
+
+* bus: access policy as vtable flag
+
+* journalctl: support -M to read journal of containers and determine journal directory from root directory of container
+
+* tmpfiles: to make sure we don't delete unpacked tarballs with old timestamps right-away never delete stuff that is inside a directory with a new mtime
+
+* "systemctl mask" should find all names by which a unit is accessible
+  (i.e. by scanning for symlinks to it) and link them all to /dev/null
+
+* Automatically configure swap partition to use for hibernation by looking for largest swap partition on the root disk?
+
 * remove NSS usage from PID 1 (notably the specifiers)
 
 * socket-proxyd:
 * remove NSS usage from PID 1 (notably the specifiers)
 
 * socket-proxyd:
-  - Support multiple inherited sockets mapped using different proxies
+  - Support multiple inherited sockets mapped to different remote hosts
   - Use a nonblocking alternative to getaddrinfo
   - Until we can start daemons directly, find a less ugly, less racy alternative than shell scripts for the second man page example.
   - Support starting daemons directly without requiring a shell script; update man pages
 
 * optimize the cgroup propagation bits, especially unit_get_members_mask(), cgroup_context_get_mask()
 
   - Use a nonblocking alternative to getaddrinfo
   - Until we can start daemons directly, find a less ugly, less racy alternative than shell scripts for the second man page example.
   - Support starting daemons directly without requiring a shell script; update man pages
 
 * optimize the cgroup propagation bits, especially unit_get_members_mask(), cgroup_context_get_mask()
 
-* sd_bus_message_enter_container() should optionally allow 0 as type and/or NULL as content signature in case the caller wants to enter unknown containers
-
 * "systemctl cat" or "systemctl view" command or or so, that cats the backing unit file of a service, plus its drop-ins and shows them in a pager
 
 * rfkill,backlight: we probably should run the load tools inside of the udev rules so that the state is properly initialized by the time other software sees it
 * "systemctl cat" or "systemctl view" command or or so, that cats the backing unit file of a service, plus its drop-ins and shows them in a pager
 
 * rfkill,backlight: we probably should run the load tools inside of the udev rules so that the state is properly initialized by the time other software sees it
@@ -133,8 +196,6 @@ Features:
 
 * load .d/*.conf dropins for device units
 
 
 * load .d/*.conf dropins for device units
 
-* 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
 * service_coldplug() appears to reinstall the wrong stop timeout watch.
 
 * transient units: allow creating auxiliary units with the same call
@@ -156,8 +217,6 @@ Features:
 
 * document logic of auto/noauto and fail/nofail in fstab in systemd.mount or systemd-fstab-generator man page
 
 
 * document logic of auto/noauto and fail/nofail in fstab in systemd.mount or systemd-fstab-generator man page
 
-* we should properly escape ssh hostnames we add into dbus server strings
-
 * something pulls in pcre as shared object dependency into our daemons such as hostnamed.
 
 * document systemd-journal-flush.service properly
 * something pulls in pcre as shared object dependency into our daemons such as hostnamed.
 
 * document systemd-journal-flush.service properly
@@ -226,7 +285,7 @@ Features:
 * test/:
   - add 'set -e' to scripts in test/
   - make stuff in test/ work with separate output dir
 * test/:
   - add 'set -e' to scripts in test/
   - make stuff in test/ work with separate output dir
-  - remove all the duplicated code in test/
+  - qemu wrapper script: http://www.spinics.net/lists/kvm/msg72389.html
 
 * systemctl delete x.snapshot leaves no trace in logs (at least at default level).
 
 
 * systemctl delete x.snapshot leaves no trace in logs (at least at default level).
 
@@ -338,7 +397,6 @@ Features:
   - logind: non-local X11 server handling
   - logind: add equivalent to sd_pid_get_owner_uid() to the D-Bus API
   - pam: when leaving a session explicitly exclude the ReleaseSession() caller process from the killing spree
   - logind: non-local X11 server handling
   - logind: add equivalent to sd_pid_get_owner_uid() to the D-Bus API
   - pam: when leaving a session explicitly exclude the ReleaseSession() caller process from the killing spree
-  - logind: GetSessionByPID() should accept 0 as PID value
   - we should probably handle SIGTERM/SIGINT to not leave dot files around, just in case
 
 * exec: when deinitializating a tty device fix the perms and group, too, not only when initializing. Set access mode/gid to 0620/tty.
   - we should probably handle SIGTERM/SIGINT to not leave dot files around, just in case
 
 * exec: when deinitializating a tty device fix the perms and group, too, not only when initializing. Set access mode/gid to 0620/tty.
@@ -493,6 +551,7 @@ Features:
   - nspawn: maybe add a way to drop additional caps, in addition to add additional caps
   - nspawn: maybe explicitly reset loginuid?
   - nspawn: make it work for dwalsh and shared /usr containers -- tmpfs mounts as command line parameters, selinux exec context
   - nspawn: maybe add a way to drop additional caps, in addition to add additional caps
   - nspawn: maybe explicitly reset loginuid?
   - nspawn: make it work for dwalsh and shared /usr containers -- tmpfs mounts as command line parameters, selinux exec context
+  - refuses to boot containers without /etc/machine-id (OK?), and with empty /etc/machine-id (not OK).
 
 * cryptsetup:
   - cryptsetup-generator: allow specification of passwords in crypttab itself
 
 * cryptsetup:
   - cryptsetup-generator: allow specification of passwords in crypttab itself