chiark / gitweb /
udev: declare some symbols static
[elogind.git] / TODO
diff --git a/TODO b/TODO
index 425f6736c00cd10058a16a931ead300dd029a522..efc7e2a1eb7d1859cdb9c31302f6962f26ccbf16 100644 (file)
--- a/TODO
+++ b/TODO
@@ -1,6 +1,5 @@
 Bugfixes:
 Bugfixes:
-
-* enabling an instance unit creates pointless link, and
+* enabling an instance unit creates a pointless link, and
   the unit will be started with getty@getty.service:
     $ systemctl enable getty@.service
     ln -s '/usr/lib/systemd/system/getty@.service' '/etc/systemd/system/getty.target.wants/getty@.service'
   the unit will be started with getty@getty.service:
     $ systemctl enable getty@.service
     ln -s '/usr/lib/systemd/system/getty@.service' '/etc/systemd/system/getty.target.wants/getty@.service'
@@ -13,15 +12,9 @@ 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.
 
 * properly handle .mount unit state tracking when two mount points are stacked one on top of another on the exact same mount point.
 
-* ellipsize_mem must take into account multi-byte unicode characters, and
-  - make the resulting line the requested number of *characters*, not *bytes*,
-  - avoid truncuating multi-byte sequences in the middle.
-
-* When we detect invalid UTF-8, we cant't use it in an error message:
+* When we detect invalid UTF-8, we cannot use it in an error message:
   log...("Path is not UTF-8 clean, ignoring assignment: %s", rvalue);
 
 * shorten the message to sane length:
   log...("Path is not UTF-8 clean, ignoring assignment: %s", rvalue);
 
 * shorten the message to sane length:
@@ -40,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
@@ -50,43 +41,69 @@ CGroup Rework Completion:
 
 * introduce high-level settings for RT budget, swappiness
 
 
 * introduce high-level settings for RT budget, swappiness
 
-* wiki: guidelines how to make use of new cgroup apis
-
 Features:
 
 Features:
 
+* 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:
+  - 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()
+
+* "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
+
+* Add a new Distribute=$NUMBER key to socket units that makes use of SO_REUSEPORT to distribute network traffic on $NUMBER instances
+
+* tmpfiles: when applying ownership to /run/log/journal, also do this for the journal fails contained in it
+
 * we probably should replace the left-over uses of strv_append() and replace them by strv_push() or strv_extend()
 
 * move config_parse_path_strv() out of conf-parser.c
 
 * libdsystemd-bus should expose utf8 validation calls
 
 * we probably should replace the left-over uses of strv_append() and replace them by strv_push() or strv_extend()
 
 * move config_parse_path_strv() out of conf-parser.c
 
 * libdsystemd-bus should expose utf8 validation calls
 
-* After coming back from hibernation reset hibernation swap partition
+* After coming back from hibernation reset hibernation swap partition using the /dev/snapshot ioctl APIs
 
 
-* If we try to find a unit via a dangling symlink generate a clean
-  error. Currently we just ignore it and read the unit from the search
+* If we try to find a unit via a dangling symlink, generate a clean
+  error. Currently, we just ignore it and read the unit from the search
   path anyway.
 
   path anyway.
 
-* When a Type=forking service fails and needed another service that
+* When a Type=forking service fails and needed another service, that
   service is not cleaned up again when it has StopWhenUnneeded=yes
   http://lists.freedesktop.org/archives/systemd-devel/2013-July/012141.html
 
   service is not cleaned up again when it has StopWhenUnneeded=yes
   http://lists.freedesktop.org/archives/systemd-devel/2013-July/012141.html
 
-* backlight: properly handle multiple backlight devices for the same
-  hardware: at shutdown we should only save the backlight setting for
-  the "best" way to access the backlight. Strategy should be: at
-  shutdown, ignore all backlights that are connected to a non-eDP or
-  non-LVDS port, and then prefer the firmware device over platform
-  device over raw device per-PCI card. Delete all old data. At boot
-  simply apply whatever data we find. Also see
-  http://cgit.freedesktop.org/libbacklight/tree/libbacklight.c#n194
-
-* rfkill: save/restore soft rfkill status across reboots
-
 * refuse boot if /etc/os-release is missing or /etc/machine-id cannot be set up
 
 * ensure scope units may be started only a single time
 
 * refuse boot if /etc/os-release is missing or /etc/machine-id cannot be set up
 
 * ensure scope units may be started only a single time
 
-* document that in instead of FsckPassNo= people should just add a manual dep to systemd-fsck@.service to their mount units.
-
 * better error message if you run systemctl without systemd running
 
 * systemctl status output should should include list of triggering units and their status
 * better error message if you run systemctl without systemd running
 
 * systemctl status output should should include list of triggering units and their status
@@ -101,7 +118,7 @@ Features:
 
 * journalctl: instead --after-cursor= maybe have a --cursor=XYZ+1 syntax?
 
 
 * journalctl: instead --after-cursor= maybe have a --cursor=XYZ+1 syntax?
 
-* given that logind/machined now let PID 1 do all nasty work we can
+* given that logind/machined now let PID 1 do all nasty work, we can
   probably reduce the capability set they retain substantially.
 
 * btrfs raid assembly: some .device jobs stay stuck in the queue
   probably reduce the capability set they retain substantially.
 
 * btrfs raid assembly: some .device jobs stay stuck in the queue
@@ -114,9 +131,9 @@ Features:
 
 * 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 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 a kernel driver logs in a tight loop we should ratelimit that too.
+* when a kernel driver logs in a tight loop, we should ratelimit that too.
 
 
-* "systemctl disable" of a unit instance removes all symlinks, should
+* "systemctl disable" of a unit instance removes all symlinks, but should
   only remove the instance symlink (systemctl disable of a template
   unit however should remove them all).
 
   only remove the instance symlink (systemctl disable of a template
   unit however should remove them all).
 
@@ -132,9 +149,7 @@ 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?
+* service_coldplug() appears to reinstall the wrong stop timeout watch.
 
 * transient units: allow creating auxiliary units with the same call
 
 
 * transient units: allow creating auxiliary units with the same call
 
@@ -155,9 +170,7 @@ 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 so dep into our daemons such as hostnamed.
+* something pulls in pcre as shared object dependency into our daemons such as hostnamed.
 
 * document systemd-journal-flush.service properly
 
 
 * document systemd-journal-flush.service properly
 
@@ -180,9 +193,8 @@ Features:
   - merge busctl into systemctl or so?
   - synthesize sd_bus_message objects from kernel messages
   - properly implement name registry ioctls for kdbus
   - merge busctl into systemctl or so?
   - synthesize sd_bus_message objects from kernel messages
   - properly implement name registry ioctls for kdbus
-  - get rid of object hash table, use decision tree everyhwere instead?
   - implement monitor logic
   - implement monitor logic
-  - object vtable logic
+  - properly map matches with well-known names against messages with unique names
   - longer term:
     * priority queues
     * priority inheritance
   - longer term:
     * priority queues
     * priority inheritance
@@ -226,7 +238,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).
 
@@ -313,7 +325,6 @@ Features:
 * introduce ExecCondition= in services
 
 * EFI:
 * introduce ExecCondition= in services
 
 * EFI:
-  - fsck hookup for the ESP mount is missing
   - write man page for efi boot generator
   - honor language efi variables for default language selection (if there are any?)
   - honor timezone efi variables for default timezone selection (if there are any?)
   - write man page for efi boot generator
   - honor language efi variables for default language selection (if there are any?)
   - honor timezone efi variables for default timezone selection (if there are any?)
@@ -339,7 +350,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.
@@ -416,11 +426,14 @@ Features:
 
 * timer units:
   - configurable jitter for timer events
 
 * timer units:
   - configurable jitter for timer events
+  - Adjust timers to be triggered at the same time as sd-event timers
   - timer events with system resume
   - timer units should get the ability to trigger when:
     o CLOCK_REALTIME makes jumps (TFD_TIMER_CANCEL_ON_SET)
     o DST changes
   - Support 2012-02~4 as syntax for specifying the fourth to last day of the month.
   - timer events with system resume
   - timer units should get the ability to trigger when:
     o CLOCK_REALTIME makes jumps (TFD_TIMER_CANCEL_ON_SET)
     o DST changes
   - Support 2012-02~4 as syntax for specifying the fourth to last day of the month.
+  - Modulate timer frequency based on battery state
+  - anacron-like feature
 
 * update the kernel's TZ (sys_tz) when DST changes
 
 
 * update the kernel's TZ (sys_tz) when DST changes
 
@@ -491,6 +504,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
@@ -565,8 +579,6 @@ Features:
 
 * when breaking cycles drop sysv services first, then services from /run, then from /etc, then from /usr
 
 
 * when breaking cycles drop sysv services first, then services from /run, then from /etc, then from /usr
 
-* move passno parsing to fstab generator
-
 * automount: implement expire:
    - set superblock timeout AUTOFS_DEV_IOCTL_TIMEOUT_CMD
    - periodically run AUTOFS_DEV_IOCTL_EXPIRE_CMD
 * automount: implement expire:
    - set superblock timeout AUTOFS_DEV_IOCTL_TIMEOUT_CMD
    - periodically run AUTOFS_DEV_IOCTL_EXPIRE_CMD
@@ -720,7 +732,13 @@ Features:
    - document initcall_debug
    - kernel cmdline "bootchart" option for simplicity?
 
    - document initcall_debug
    - kernel cmdline "bootchart" option for simplicity?
 
-* systemd-run is missing zsh completion scripts
+* udev-link-config:
+   - Make sure ID_PATH is always exported and complete for
+     network devices where possible, so we can safely rely
+     on Path= matching
+   - NamePolicy= replace the current naming rules
+   - MACPolicy= support 'firmware', 'synthetic' and 'random'
+   - Check if Driver= is broken, or just my driver (bcma)
 
 External:
 
 
 External: