X-Git-Url: http://git.ipfire.org/?a=blobdiff_plain;f=TODO;h=57c07bea7aef04ed410d8d6fdc4fcf9c90b1e246;hb=1a31d050f26834efdd6bfc5bdd233a2ec11cf294;hp=b7038ec7c0c5924a2f1c952e1d31be1cf04a423a;hpb=3bf72311c8a1b92b032285b0f7dff3f49d97ddc6;p=thirdparty%2Fsystemd.git diff --git a/TODO b/TODO index b7038ec7c0c..57c07bea7ae 100644 --- a/TODO +++ b/TODO @@ -1,12 +1,13 @@ Bugfixes: -* copy.c: set the right chattrs before copying files and others after - * Many manager configuration settings that are only applicable to user manager or system manager can be always set. It would be better to reject them when parsing config. -* Clarify what IPAddress* matches (source, destination, both?) +* busctl --user call org.freedesktop.systemd1 /org/freedesktop/systemd1 org.freedesktop.systemd1.Manager GetUnitProcesses "s" run-rbff1b85427b34ba3adf864281aeda8e7.service +Failed to set address: No such file or directory + + → improve error message External: @@ -23,6 +24,26 @@ Janitorial Clean-ups: Features: +* when killing due to service watchdog timeout maybe detect whether target + process is under ptracing and then log loudly and continue instead. + +* introduce a new group to own TPM devices + +* make rfkill uaccess controllable by default, i.e. steal rule from + gnome-bluetooth and friends + +* warn if udev rules files are marked executable (docker?) + +* tweak journald context caching. In addition to caching per-process attributes + keyed by PID, cache per-cgroup attributes (i.e. the various xattrs we read) + keyed by cgroup path, and guarded by ctime changes. This should provide us + with a nice speed-up on services that have many processes running in the same + cgroup. + +* clean up sleep.c: + - Make sure resume= and resume_offset= on the kernel cmdline always take + precedence + * make MAINPID= message reception checks even stricter: if service uses User=, then check sending UID and ignore message if it doesn't match the user or root. @@ -34,8 +55,6 @@ Features: * when importing an fs tree with machined, complain if image is not an OS -* when we fork off generators and such, lower LIMIT_NOFILE soft limit to 1K - * Maybe introduce a helper safe_exec() or so, which is to execve() which safe_fork() is to fork(). And then make revert the RLIMIT_NOFILE soft limit to 1K implicitly, unless explicitly opted-out. @@ -48,36 +67,19 @@ Features: inserting them into the kernel keyring. Maybe SecretsDirectory= similar to ConfigurationDirectory=. -* systemd-gpt-auto: if we find the root dir mounted read-only and the gpt flag - doesn't say so generate job that remounts it writable - * when no locale is configured, default to UEFI's PlatformLang variable * When logind.conf contains HandleLidSwitch=suspend-then-hibernate and we can't hibernate because the swap partition isn't large enough, still suspend -* bootctl: implement Type #2 boot loader entry discovery - * bootctl,sd-boot: actually honour the "architecture" key -* when a socket unit is spawned with an AF_UNIX path in /var/run, complain and - patch it to use /run instead - -* consider splitting out all temporary file creation APIs (we have so many in - fileio.h and elsewhere!) into a new util file of its own. - -* set memory.oom.group in cgroupsv2 for all leaf cgroups (kernel v4.19+) - * add a new syscall group "@esoteric" for more esoteric stuff such as bpf() and usefaultd() and make systemd-analyze check for it. -* drop umask() calls and suchlike from our generators, pid1 should set things up correctly anyway - * paranoia: whenever we process passwords, call mlock() on the memory first. i.e. look for all places we use string_erase()/string_free_erase() and - augment them with mlock() - -* whenever oom_kill memory.event event is triggered print a nice log message + augment them with mlock(). Also use MADV_DONTDUMP * Move RestrictAddressFamily= to the new cgroup create socket @@ -87,8 +89,6 @@ Features: * maybe implicitly attach monotonic+realtime timestamps to outgoing messages in log.c and sd-journal-send -* chown() tty a service is attached to after the service goes down - * optionally: turn on cgroup delegation for per-session scope units * introduce per-unit (i.e. per-slice, per-service) journal log size limits. @@ -100,23 +100,12 @@ Features: show state of these flags, and optionally trigger such a factory reset on next boot by setting the flag. -* sd-boot: search drop-ins in $BOOT, too - -* sd-boot: add "oneshot boot timeout" variable support - * sd-boot: automatically load EFI modules from some drop-in dir, so that people can add in file system drivers and such -* esp generator: also mount $BOOT if found - * sd-boot: optionally, show boot menu when previous default boot item has non-zero "tries done" count -* logind: add "boot into bootmenu" API, and possibly even "boot into windows" - and "boot into macos". - -* bootspec.c: also enumerate EFI unified kernel images. - * maybe set a special xattr on cgroups that have delegate=yes set, to make it easy to mark cut points @@ -160,18 +149,8 @@ Features: * When reloading configuration PID 1 should reset all its properties to the original defaults before calling parse_config() -* Add OnTimezoneChange= and OnTimeChange= stanzas to .timer units in order to - schedule events based on time and timezone changes. - * nspawn: greater control over selinux label? -* cgroups: figure out if we can somehow communicate in a cleaner way whether a - systemd instance not running in the cgroup root shall or shall not manage the - attributes of its top-level cgroup. Currently it assumes it manages all, but - then might get EPERM due to permission porblems/userns, which is OK, but this - should be revisited to make clearer and also work if the payload systemd runs - with full privs and without userns. - * hibernate/s2h: make this robust and safe to enable in Fedora by default. Specifically: @@ -196,7 +175,7 @@ Features: selected user is resolvable in the service even if it ships its own /etc/passwd) * Fix DECIMAL_STR_MAX or DECIMAL_STR_WIDTH. One includes a trailing NUL, the - other doesn't. What a desaster. Probably to exclude it. Also + other doesn't. What a disaster. Probably to exclude it. Also DECIMAL_STR_WIDTH should probably add an extra "-" into account for negative numbers. @@ -225,7 +204,7 @@ Features: specific paths only like this. * add CopyFile= or so as unit file setting that may be used to copy files or - directory trees from the host to te services RootImage= and RootDirectory= + directory trees from the host to the services RootImage= and RootDirectory= environment. Which we can use for /etc/machine-id and in particular /etc/resolv.conf. Should be smart and do something useful on read-only images, for example fallback to read-only bind mounting the file instead. @@ -285,8 +264,6 @@ Features: * support projid-based quota in machinectl for containers -* Add NetworkNamespacePath= to specify a path to a network namespace - * maybe use SOURCE_DATE_EPOCH (i.e. the env var the reproducible builds folks introduced) as the RTC epoch, instead of the mtime of NEWS. @@ -320,11 +297,6 @@ Features: StateDirectory=, LogsDirectory=, CacheDirectory=, as well as RootDirectory= if it is set, plus the whole disk space any image configured with RootImage=. -* Introduce "exit" as an EmergencyAction value, and allow to configure a - per-unit success/failure exit code to configure. This would be useful for - running commands inside of services inside of containers, which could then - propagate their failure state all the way up. - * In DynamicUser= mode: before selecting a UID, use disk quota APIs on relevant disks to see if the UID is already in use. @@ -341,7 +313,7 @@ Features: * show whether a service has out-of-date configuration in "systemctl status" by using mtime data of ConfigurationDirectory=. -* replace all uses of fgets() + LINE_MAX by read_line() +* replace all remaining uses of fgets() + LINE_MAX by read_line() * Add AddUser= setting to unit files, similar to DynamicUser=1 which however creates a static, persistent user rather than a dynamic, transient user. We @@ -471,8 +443,6 @@ Features: * optionally, also require WATCHDOG=1 notifications during service start-up and shutdown -* resolved: when routing queries, make sure only look for the *longest* suffix... - * delay activation of logind until somebody logs in, or when /dev/tty0 pulls it in or lingering is on (so that containers don't bother with it until PAM is used). also exit-on-idle @@ -494,7 +464,7 @@ Features: * PID 1 should send out sd_notify("WATCHDOG=1") messages (for usage in the --user mode, and when run via nspawn) * there's probably something wrong with having user mounts below /sys, - as we have for debugfs. for exmaple, src/core/mount.c handles mounts + as we have for debugfs. for example, src/core/mount.c handles mounts prefixed with /sys generally special. http://lists.freedesktop.org/archives/systemd-devel/2015-June/032962.html @@ -507,9 +477,6 @@ Features: state. http://lists.freedesktop.org/archives/systemd-devel/2015-April/030229.html -* Maybe add support for the equivalent of "ethtool advertise" to .link files? - http://lists.freedesktop.org/archives/systemd-devel/2015-April/030112.html - * The udev blkid built-in should expose a property that reflects whether media was sensed in USB CF/SD card readers. This should then be used to control SYSTEMD_READY=1/0 so that USB card readers aren't @@ -559,7 +526,7 @@ Features: * systemctl: if some operation fails, show log output? -* systemctl edit: use equvalent of cat() to insert existing config as a comment, prepended with #. +* systemctl edit: use equivalent of cat() to insert existing config as a comment, prepended with #. Upon editor exit, lines with one # are removed, lines with two # are left with one #, etc. * exponential backoff in timesyncd when we cannot reach a server @@ -620,12 +587,6 @@ Features: service instances processing the listening socket, and open this up for ReusePort= -* socket units: support creating sockets in different namespace, - opening it up for JoinsNamespaceOf=. This would require to fork off - a tiny process that joins the namespace and creates/binds the socket - and passes this back to PID1 via SCM_RIGHTS. This also could be used - to allow Chown/chgrp on sockets without requiring NSS in PID 1. - * 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 @@ -635,7 +596,6 @@ Features: * cgroups: - implement per-slice CPUFairScheduling=1 switch - - handle jointly mounted controllers correctly - introduce high-level settings for RT budget, swappiness - how to reset dynamically changed unit cgroup attributes sanely? - when reloading configuration, apply new cgroup configuration @@ -667,9 +627,6 @@ Features: * load .d/*.conf dropins for device units -* allow implementation of InaccessibleDirectories=/ plus - ReadOnlyDirectories=... for whitelisting files for a service. - * sd-bus: - EBADSLT handling - GetAllProperties() on a non-existing object does not result in a failure currently @@ -736,6 +693,8 @@ Features: - honor language efi variables for default language selection (if there are any?) - honor timezone efi variables for default timezone selection (if there are any?) - change bootctl to be backed by systemd-bootd to control temporary and persistent default boot goal plus efi variables +* bootctl + - recognize the case when not booted on EFI * maybe do not install getty@tty1.service symlink in /etc but in /usr? @@ -768,8 +727,6 @@ Features: - follow PropertiesChanged state more closely, to deal with quick logouts and relogins -* exec: when deinitializating a tty device fix the perms and group, too, not only when initializing. Set access mode/gid to 0620/tty. - * journal: - consider introducing implicit _TTY= + _PPID= + _EUID= + _EGID= + _FSUID= + _FSGID= fields - import and delete pstore filesystem content at startup @@ -781,7 +738,7 @@ Features: - sd-journal: speed up sd_journal_get_data() with transparent hash table in bg - journald: when dropping msgs due to ratelimit make sure to write "dropped %u messages" not only when we are about to print the next - message that works, but alraedy after a short tiemout + message that works, but already after a short timeout - check if we can make journalctl by default use --follow mode inside of less if called without args? - maybe add API to send pairs of iovecs via sd_journal_send - journal: add a setgid "systemd-journal" utility to invoke from libsystemd-journal, which passes fds via STDOUT and does PK access @@ -851,6 +808,7 @@ Features: - man: document the very specific env the shutdown drop-in tools live in - man: add more examples to man pages - man: maybe sort directives in man pages, and take sections from --help and apply them to man too + - document root=gpt-auto properly * systemctl: - add systemctl switch to dump transaction without executing it @@ -870,9 +828,7 @@ Features: * timer units: - timer units should get the ability to trigger when: - o CLOCK_REALTIME makes jumps (TFD_TIMER_CANCEL_ON_SET) o DST changes - o timezone changes - Modulate timer frequency based on battery state * add libsystemd-password or so to query passwords during boot using the password agent logic @@ -904,8 +860,6 @@ Features: PID 1... - optionally automatically add FORWARD rules to iptables whenever nspawn is running, remove them when shut down. - - maybe make copying of /etc/resolv.conf optional, and skip it if --read-only - is used * dissect - refuse mounting over a mount point @@ -956,8 +910,6 @@ Features: * support crash reporting operation modes (https://live.gnome.org/GnomeOS/Design/Whiteboards/ProblemReporting) -* default to actual 32-bit PIDs, via /proc/sys/kernel/pid_max - * be able to specify a forced restart of service A where service B depends on, in case B needs to be auto-respawned? @@ -1142,3 +1094,5 @@ Regularly: * use secure_getenv() instead of getenv() where appropriate * link up selected blog stories from man pages and unit files Documentation= fields +String is not UTF-8 clean, ignoring assignment + timedatex.service: Consumed 26ms CPU time.