X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=blobdiff_plain;f=TODO;h=ed628035a71e1c0d91d8744eff9572ebd8568d65;hp=d909ab9d87958c7341b648f56760ef1c9eb789e9;hb=71365a7754db5ff8e07941501063b1da2a4b4bd5;hpb=cde93897cdefdd7c7f66c400a61e42ceee5f6a46 diff --git a/TODO b/TODO index d909ab9d8..ed628035a 100644 --- a/TODO +++ b/TODO @@ -30,6 +30,8 @@ External: Features: +* libsystemd-journal returns the object created as first param in sd_journal_new(), sd_bus_new() and suchlike as last... + * cgroups: - implement system-wide DefaultCPUAccounting=1 switch (and similar for blockio, memory?) - implement per-slice CPUFairScheduling=1 switch @@ -46,11 +48,8 @@ Features: - ensure scope units may be started only a single time * code cleanup - - get rid of readdir_r/dirent_storage stuff, it's unnecessary on Linux - 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? - * when we detect low battery and no AC on boot, show pretty splash and refuse boot * move libasyncns into systemd as libsystemd-asyncns @@ -65,8 +64,6 @@ Features: * 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:Use a nonblocking alternative to getaddrinfo * 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 @@ -87,8 +84,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 @@ -104,8 +102,6 @@ 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 @@ -113,30 +109,29 @@ Features: * libsystemd-bus: - when kdbus doesn't take our message without memfds, try again with memfds - - implement translator service - implement monitor logic - - properly map matches with well-known names against messages with unique names - - when triggering property change events, allow a NULL strv indicate that all properties listed as such are send out as changed - see if we can drop more message validation on the sending side - - support "const" properties as flag - add API to clone sd_bus_message objects - SD_BUS_COMMENT() macro for inclusion in vtables, syntax inspired by gdbus - - make sd_bus_open_system_container() kdbus aware + - 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 - - sort out error codes for sd_bus_release_name(), distuingish: successful removal from foreign name, from non-existing name - - bug in kdbus: nameownerchange is not generated for names, only ids. - - kdbus: matches against source or destination pids for an "strace -p"-like feel. Problem: The PID info needs to be available in userspace too... - - kdbus: we need a way to distuingish messages we got due to monitoring from normal messages, since we want to bind methods only to the latter - - figure out what to do when fields in the kdbus header and in the payload header do not match + - 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" * sd-event - - allow multiple signal handlers per signal - - 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 + - allow multiple signal handlers per signal? * in the final killing spree, detect processes from the root directory, and complain loudly if they have argv[0][0] == '@' set. @@ -160,6 +155,8 @@ Features: * 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 * test/: @@ -298,7 +295,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 @@ -310,14 +306,11 @@ Features: boot, and causes the journal to be moved back to /run on shutdown, so that we don't keep /var busy. This needs to happen synchronously, hence doing this via signals is not going to work. - - port to sd-event, enable watchdog from event loop * 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 @@ -347,7 +340,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 @@ -430,7 +423,6 @@ Features: - nspawn: investigate whether we can support the same as LXC's lxc.network.type=phys mode, and pass through entire network interfaces to the container - - 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). @@ -438,6 +430,7 @@ Features: SOCK_RAW, NETLINK_AUDIT) fail the the appropriate error code that makes the audit userspace to think auditing is not available in the kernel. + - support taking a btrfs snapshot at startup and dropping it afterwards * cryptsetup: - cryptsetup-generator: allow specification of passwords in crypttab itself @@ -525,12 +518,8 @@ 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 -* support container_ttys= - * introduce mix of BindTo and Requisite * add DeleteSocketsOnStop=yes|no option to socket units