chiark / gitweb /
hashmap: hashmap_move_one() should return -ENOENT when 'other' is NULL
[elogind.git] / TODO
diff --git a/TODO b/TODO
index d58da71b6e4de28368525005b3c1cba184c51ba5..42f20cf3c1895b925005337b444dfa83c299f48d 100644 (file)
--- a/TODO
+++ b/TODO
@@ -1,4 +1,5 @@
 Bugfixes:
+
 * Re-enable "fsck -l" when it is ready:
    https://bugs.freedesktop.org/show_bug.cgi?id=79576#c5
 
@@ -10,10 +11,21 @@ Bugfixes:
 
 * properly handle .mount unit state tracking when two mount points are stacked one on top of another on the exact same mount point.
 
-External:
-* Fedora: when installing fedora with yum --installroot /var/run is a directory, not a symlink
-   https://bugzilla.redhat.com/show_bug.cgi?id=975864
+After killing 'systemd --user', systemctl restart user@... fails.
+/run/user/1000/systemd/notify has to be removed manually.
+
+ExecStart with unicode characters fails in strv_split_quoted:
+
+          [Service]
+          Environment=ONE='one' "TWO='two two' too" THREE=
+          ExecStart=/bin/python3 -c 'import sys;print(sys.argv)' $ONE $TWO $THREE
 
+MEMORY return code is overloaded for syntax errors in the commandline.
+str_split_quoted() should return a real return code, so spawn_child can
+report the failure properly.
+
+
+External:
 * Fedora: add an rpmlint check that verifies that all unit files in the RPM are listed in %systemd_post macros.
 
 * Fedora: post FPC ticket to move add %tmpfiles_create to the packaging guidelines
@@ -22,37 +34,108 @@ External:
 
 * Fedora: remove /etc/resolv.conf tmpfiles hack
 
+* wiki: update journal format documentation for lz4 additions
+
+* When lz4 gets an API for lz4 command output, make use of it to
+  compress coredumps in a way compatible with /usr/bin/lz4.
+
 Features:
 
+* journald: allow per-priority and per-service retention times when rotating/vacuuming
+
+* introduce systemd-timesync-wait.service or so to sync on an NTP fix?
+
+* systemd --user should issue sd_notify() upon reaching basic.target, not on becoming idle
+
+* configure.ac pretends dbus was optional but actually hardcodes use of dbus' pkg-config file to determine various dbus dirs such as policy and activation dirs
+
+* consider showing the unit names during boot up in the status output, not just the unit descriptions
+
+* send SIGABRT when a service watchdog is triggered, by default, so that we acquire a backtrace of the hang.
+
+* shouldn't RouteMetric= in networkd's [DHCP] section move to [Network]?
+
+* dhcp: do we allow configuring dhcp routes on interfaces that are not the one we got the dhcp info from?
+
+* maybe allow timer units with an empty Units= setting, so that they
+  can be used for resuming the system but nothing else.
+
+* what to do about udev db binary stability for apps?
+
+* add a system-wide shutdown timeout, similar to the startup timeout we already have (see fdo bz #84110)
+
+* maybe provide an API to allow migration of foreign PIDs into existing scopes.
+
+* kdbus: maybe rename "connection name" concept to something that doesn't reuse the word "name"?
+
+* PID 1 doesn't apply nspawns devices cgroup policy
+
+* rework journal-send.c to use memfds for large blobs if they are available instead of unlinked files in /tmp. Also, if we detect that the kernel knows memfds, refuse anything but sealed memfds.
+
+* maybe support a new very "soft" reboot mode, that simply kills all processes, disassembles everything, flushes /run and sysvipc, and then reexecs systemd again
+
+* man: document that corrupted journal files is nothing to act on
+
+* bus-proxy: when passing messages from kdbus, make sure we properly
+  handle the case where a large number of fds is appended that we
+  cannot pass into sendmsg() of the AF_UNIX sokcet (which only accepts
+  253 messages)
+
+* busctl: add a pcap writer, using LINKTYPE_DBUS/231
+
+* man: maybe use the word "inspect" rather than "introspect"?
+
+* introduce machines.target to order after all nspawn instances
+
+* systemd-nspawn@.service should fail if some nspawn arg is invalid, with Type=notify
+
+* "machinectl list" should probably show columns for OS version and IP addresses
+
+* systemctl: if it fails, show log output?
+
+* maybe add "systemctl edit" that copies unit files from /usr/lib/systemd/system to /etc/systemd/system and invokes vim on them
+
+* dbus: add new message hdr field for allowing interactive auth, write spec for it. update dbus spec to mandate that unknown flags *must* be ignored...
+
+* maybe introduce AssertXYZ= similar to ConditionXYZ= that causes a unit to fail (instead of skipping it) if some condition is not true...
+
+* remove multi-seat-x now
+
+* refcounting in sd-resolve is borked
+
+* exponential backoff in timesyncd and resolved when we cannot reach a server
+
+* apply start timeout during the "initializing" manager state only,
+  instead of both "initializing" and "starting". maybe rename the
+  timeout to "initialization-timeout" then or so?
+
+* journald: make use of uid-range.h to managed uid ranges to split
+  journals in.
+
+* tmpfiles: port to unquote_many_words(), similar to sysusers
+
+* unquote_many_words() should probably be used by a lot of code that
+  currently uses FOREACH_WORD and friends. For example, most conf
+  parsing callbacks should use it.
+
+* logind: make the Suspend()/Hibernate() bus calls wait for the for
+  the job to be completed. before returning, so that clients can wait
+  for "systemctl suspend" to finish to know when the suspending is
+  complete.
+
+* merge ~/.local/share and ~/.local/lib into one similar /usr/lib and /usr/share....
+
 * journald: allows specification of UID range for splitting up journal files
 
 * systemd.show_status= should probably have a mode where only failed
   units are shown.
 
-* sd-event: - make it possible to embedd our event loop into foreign
-  event loops by passing out the epoll fd and providing three functions
-  that fit into GSource nicely.
-
 * networkd:
-  - add LLDP support
-  - ipv4ll with multiple interfaces doesn't work when both dhcp and
-    ipv4ll is used. for some reasons the kernel will currently pick an
-    ipv4ll source address to reach non-ipv4ll gateways.
-  - dhcp and ipv4ll should probably be skipped for "lo" devices, even
-    if the user has a catchall .network file installed, that might
-    theoretically match it.
-  - we probably should introduce a new operational state that
-    indicates that we are trying to acquire some configuration for a
-    link but haven't acquired any yet. Just to inform the admin that
-    networkd cares about an interface, but is still in progress..
+  - add LLDP client side support
   - the DHCP lease data (such as NTP/DNS) is still made available when
     a carrier is lost on a link. It should be removed instantly.
   - .network setting that allows overriding of the hostname to send to the dhcp server
     http://lists.freedesktop.org/archives/systemd-devel/2014-July/021550.html
-  - add per-network Domains= settings, with a special syntax Domains=*
-    for routing all non-otherwise routed traffic to this link
-  - add UseDomains= setting to [DHCP] to add dhcp supplied domains to
-    per-interface Domains= list.
   - expose in the API the following bits:
         - option 15, domain name and/or option 119, search list
         - option 12, host name and/or option 81, fqdn
@@ -62,8 +145,12 @@ Features:
   - networkd's dhcp server should transparently pass on the DNS and
     NTP server list it got from user configuration and its dhcp client
     to clients. It should also pass on its own timezone information.
+  - provide a way to define a per-network interface default metric value
+    for all routes to it. possibly a second default for DHCP routes.
 
 * resolved:
+  - put networkd events and rtnl events at a higher priority, so that
+    we always process them before we process client requests
   - DNSSEC
         - use base64 for key presentation?
         - add display of private key types (http://tools.ietf.org/html/rfc4034#appendix-A.1.1)?
@@ -83,18 +170,8 @@ Features:
 
 * Allow multiple ExecStart= for all Type= settings, so that we can cover rescue.service nicely
 
-* the resolv.conf tmpfiles line should be covered by ENABLE_NETWORKD...
-
-* sysusers:
-  - also create entries in /etc/shadow, /etc/gshadow
-  - allow setting the home directory of system users
-  - allow configuration of ranges to allocate items in
-  - add mode where we read sysusers data from stdin, so that we can run this from rpm scriptlets
-
 * Add a new verb "systemctl top"
 
-* refuse mounting on symlinks
-
 * logind: allow users to kill or lock their own sessions
 
 * add new gpt type for btrfs volumes
@@ -108,9 +185,6 @@ Features:
 
 * support setting empty environment variables with Environment= and EnvironmentFile=
 
-* machined/machinectl: sort IP addresses we return by scope and protocol
-* machined: write NSS module for looking up IP addresses for machines
-
 * timer units: actually add extra delays to timer units with high AccuracySec values, don't start them already when we are awake...
 
 * a way for container managers to turn off getty starting via $container_headless= or so...
@@ -119,15 +193,11 @@ Features:
 
 * journalctl: add the ability to look for the most recent process of a binary. journalctl /usr/bin/X11 --pid=-1 or so...
 
-* set NOTIFY_SOCKET also for control processes
-
 * mount_cgroup_controllers(): symlinks need to get the label applied
 
 * For timer units: add some mechanisms so that timer units that trigger immediately on boot do not have the services
   they run added to the initial transaction and thus confuse Type=idle.
 
-* Add timeout to early-boot, and shut down the system if it is hit. Solves the laptop-in-bag problem and is useful for embedded cases
-
 * Run most system services with cgroupfs read-only and procfs with a more secure mode (doesn't work, since the hidepid= option is per-pid-namespace, not per-mount)
 
 * sd-event: generate a failure of a default event loop is executed out-of-thread
@@ -207,8 +277,6 @@ Features:
 
 * unify dispatch table in systemctl_main() and friends
 
-* Automatically configure swap partition to use for hibernation by looking for largest swap partition on the root disk?
-
 * 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
 
 * After coming back from hibernation reset hibernation swap partition using the /dev/snapshot ioctl APIs
@@ -257,6 +325,7 @@ Features:
 
 * sd-event
   - allow multiple signal handlers per signal?
+  - document chaining of signal handler for SIGCHLD and child handlers
 
 * in the final killing spree, detect processes from the root directory, and
   complain loudly if they have argv[0][0] == '@' set.
@@ -273,8 +342,6 @@ Features:
 
 * maybe add a generator that looks for "systemd.run=" on the kernel cmdline for container usercases...
 
-* timedatctl, localectl: possibly make some commands work without the daemon, for chroot situations...
-
 * timedatectl: print a nicer message when enabling ntp fails because ntpd/chrony are not installed
 
 * cgtop: make cgtop useful in a container
@@ -437,7 +504,6 @@ Features:
   - "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
   - systemctl list-unit-files should list generated files (and probably with a new state "generated" for them, or so)
-  - systemctl: maybe add "systemctl add-wants" or so...
 
 * timer units:
   - timer units should get the ability to trigger when:
@@ -513,10 +579,6 @@ Features:
 
 * properly handle loop back mounts via fstab, especially regards to fsck/passno
 
-* allow services with no ExecStart= but with an ExecStop=
-
-* dracut-shutdown needs to be ordered before unmounting /boot
-
 * initialize the hostname from the fs label of /, if /etc/hostname does not exist?
 
 * rename "userspace" to "core-os"
@@ -544,7 +606,6 @@ Features:
 * ExecOnFailure=/usr/bin/foo
 
 * udev:
-  - remove src/udev/udev-builtin-firmware.c (CONFIG_FW_LOADER_USER_HELPER=n)
   - move to LGPL
   - kill scsi_id
   - add trigger --subsystem-match=usb/usb_device device
@@ -590,9 +651,7 @@ Features:
 
 * make sure systemd-ask-password-wall does not shutdown systemd-ask-password-console too early
 
-* support sd_notify() style notification when reload begins (RELOADING=1), reload is finished (READY=1), and add ReloadSignal= then to use in combination
-
-* support sd_notify() style notification when shutting down, to make auto-exit bus services work (STOPPING=1)
+* add ReloadSignal= for configuring a reload signal to use
 
 * verify that the AF_UNIX sockets of a service in the fs still exist
   when we start a service in order to avoid confusion when a user
@@ -697,7 +756,6 @@ Features:
    - implement reconfigure support, see 5.3., 15.11. and 22.20.
    - implement information request, see 1.2. and 18.1.5.
    - implement support for temporary adressess (IA_TA)
-   - implement elapsed time option
    - implement dhcpv6 authentication
    - investigate the usefulness of Confirm messages; i.e. are there any
      situations where the link changes without any loss in carrier detection