X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=blobdiff_plain;f=TODO;h=a8421585da237e7609267f0eded0cda683dedc13;hp=3704445aec7f14ac2fc0f9217172b6c6e6288fdf;hb=cb67f7184e61fafc984c4cd1e921d71a7e67c2ae;hpb=bee7e928990fd8a0c5909c2022a2b9eede557c81 diff --git a/TODO b/TODO index 3704445ae..a8421585d 100644 --- a/TODO +++ b/TODO @@ -17,6 +17,8 @@ Bugfixes: Cannot add dependency job for unit display-manager.service, ignoring: Unit display-manager.service failed to load: No such file or directory. See system logs and 'systemctl status display-manager.service' for details. +* systemctl --root=container/ set-default ... is totally borked. + External: * ps should gain colums for slice @@ -30,6 +32,27 @@ External: Features: +* sd-resolve: + - make sure event loop integration works similar to event loop integration in other libs + - maybe drop _free() call, introduce _unref() instead + - maybe simplify function calls that take a sd_resolve_query object, to not also require the matching sd_resolve? + - maybe drop the "n_proc" parameter to sd_resolve_new()? + - change all functions to return "int" and negative errno errors + +* New service property: maximum CPU and wallclock runtime for a service + +* introduce bus call FreezeUnit(s, b), as well as "systemctl freeze + $UNIT" and "systemctl thaw $UNIT" as wrappers around this. The calls + should SIGSTOP all unit processes in a loop until all processes of + it are fully stopped. This can later be used for app management by + desktop UIs such as gnome-shell to freeze apps that are not visible + on screen, not unlike how job control works on the shell + +* machinectl bash completion is missing +* busctl bash and zsh completions are outdated + +* Introduce PrivateDevices=yes/no which works like PrivateTmp= but for /dev setting up a tmpfs for it that only includes /dev/null, /dev/zero, /dev/random, /dev/urandom, but nothing else. + * libsystemd-journal returns the object created as first param in sd_journal_new(), sd_bus_new() and suchlike as last... * cgroups: @@ -50,7 +73,7 @@ Features: * code cleanup - we probably should replace the left-over uses of strv_append() and replace them by strv_push() or strv_extend() -* switch to SipHash for hashmaps/sets? +* 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 @@ -86,8 +109,9 @@ Features: * refuse boot if /etc/os-release is missing or /etc/machine-id cannot be set up -* given that logind/machined now let PID 1 do all nasty work, we can - probably reduce the capability set they retain substantially. +* given that logind now lets PID 1 do all nasty work, we can + probably reduce the capability set it retains substantially. + (we need CAP_SYS_ADMIN for drmSetMaster(), so maybe not worth it) * btrfs raid assembly: some .device jobs stay stuck in the queue @@ -103,32 +127,35 @@ Features: Maybe take a BSD lock at the disk device node and teach udev to check for that and suppress event handling. -* document logic of auto/noauto and fail/nofail in fstab in systemd.mount or systemd-fstab-generator man page - * something pulls in pcre as shared object dependency into our daemons such as hostnamed. * allow implementation of InaccessibleDirectories=/ plus ReadOnlyDirectories=... for whitelisting files for a service. -* libsystemd-bus: +* sd-bus: + - let the activator peek the peer connection with KDBUS_CMD_MSG_SRC and log it - when kdbus doesn't take our message without memfds, try again with memfds - implement monitor logic - see if we can drop more message validation on the sending side - add API to clone sd_bus_message objects - SD_BUS_COMMENT() macro for inclusion in vtables, syntax inspired by gdbus - - systemd-bus-proxyd needs to synthesize NameLost/NameAcquired - systemd-bus-proxyd needs to enforce good old XML policy - upload minimal kdbus policy into the kernel at boot - kdbus: matches against source or destination pids for an "strace -p"-like feel. Problem: The PID info needs to be available in userspace too... - longer term: * priority queues * priority inheritance - - move to siphash for bloom filter + - check sender of response messages - dbus spec updates: - kdbus mapping - NameLost/NameAcquired obsolete - GVariant - "const" properties (posted) + - port exit-on-idle logic to byebye ioctl + - make use of "drop" ioctl in pid 1 bus activation + - bus proxy: override unique id sender for messages from driver to match the well-known name + - bus driver: GetNameOwner() for "org.freedesktop.DBus" should return "org.freedesktop.DBus" + - update systemd.special(7) to mention that dbus.socket is only about the compatibility socket now * sd-event - allow multiple signal handlers per signal? @@ -295,7 +322,6 @@ Features: - 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 - journalctl: instead --after-cursor= maybe have a --cursor=XYZ+1 syntax? - - journalctl: support -M to read journal of containers and determine journal directory from root directory of container - tmpfiles: when applying ownership to /run/log/journal, also do this for the journal fails contained in it - when a kernel driver logs in a tight loop, we should ratelimit that too. - journald: optionally, log debug messages to /run but everything else to /var @@ -309,11 +335,9 @@ Features: hence doing this via signals is not going to work. * document: - - document that deps in [Unit] sections ignore Alias= fileds in + - document that deps in [Unit] sections ignore Alias= fields in [Install] units of other units, unless those units are disabled - man: clarify that time-sync.target is not only sysv compat but also useful otherwise. Same for similar targets - - Document word splitting syntax for ExecStart= and friends - - document that units from /etc override those from /usr and /run - document the exit codes when services fail before they are exec()ed - document that service reload may be implemented as service reexec - document in wiki how to map ical recurrence events to systemd timer unit calendar specifications @@ -343,7 +367,7 @@ Features: - rework wait filter to not require match callback - better error message if you run systemctl without systemd running - systemctl status output should should include list of triggering units and their status - - in systemctl list-timers show time trggering units ran last + - in systemctl list-timers show time triggering units ran last * unit install: - "systemctl mask" should find all names by which a unit is accessible @@ -521,8 +545,6 @@ Features: - kill scsi_id - add trigger --subsystem-match=usb/usb_device device -* cleanup syslog 'priority' vs. 'level' wording - * when a service has the same env var set twice we actually store it twice and return that in systemctl show -p... We should only show the last setting * introduce mix of BindTo and Requisite @@ -658,15 +680,13 @@ Features: - Check if Driver= is broken, or just my driver (bcma) * sd-rtnl: - - replace sd_rtnl_message_append() by type-safe versions - improve container support, and add support for entering containers when reading - add support for more attribute types * networkd: - - unify and clarify logging, also use proper structured log messages - - add [Route] sections - - add more keys to [Address] sections - - add DHCPv4 support (and, longer term, other kinds of dynamic config) + - add more keys to [Route] and [Address] sections + - add support for more DHCPv4 options (and, longer term, other kinds of dynamic config) + - allow opting out of receiving DNS servers over DHCPv4 - add proper initrd support (in particular generate .network/.link files based on /proc/cmdline) External: