Bugfixes:
-* Should systemctl status \* work on all unit types, not just .service?
-
-* Dangling symlinks of .automount unit files in .wants/ directories, set up
- automount points even when the original .automount file did not exist
- anymore. Only the .mount unit was still around.
-
-* ExecStart with unicode characters fails in strv_split_extract:
-
- [Service]
- Environment=ONE='one' "TWO='two two' too" THREE=
- ExecStart=/bin/python3 -c 'import sys;print(sys.argv)' $ONE $TWO $THREE
+* copy.c: set the right chattrs before copying files and others after
External:
* Rearrange tests so that the various test-xyz.c match a specific src/basic/xyz.c again
-Features:
-
* rework mount.c and swap.c to follow proper state enumeration/deserialization
semantics, like we do for device.c now
+Features:
+
+* 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
+
+* whenever oom_kill memory.event event is triggered print a nice log message
+
+* Move RestrictAddressFamily= to the new cgroup create socket
+
+* support the bind/connect/sendmsg cgroup stuff for sandboxing, and possibly
+ patching around
+
+* chown() tty a service is attached to after the service goes down
+
+* optionally, if a per-partition GPT flag is set for the root/home/… partitions
+ format the partition on next boot and unset the flag, in order to implement
+ factory reset. also, add a second flag that simply indicates whether such a
+ scheme is supported. then, add a tool (or maybe beef up systemd-dissect) to
+ show state of these flags, and optionally trigger such a factory reset on
+ next boot by setting the flag.
+
+* logind: maybe watch utmp asynchronously using inotify, and populate our own
+ tracked session metadata from the fields available therein. Why bother? Right
+ now, all "ssh" sessions will be tracked without their TTY by logind (which is
+ not just unfriendly to users as this means "loginctl session-status" shows
+ less information than "who" in many cases, but also breaks the IdleAction
+ logic, as we never can detect such sessions as idle, as we have no TTY to
+ watch). ssh sets the PAM_TTY field on its PAM sessions to "ssh" rather than
+ the actual pty, because the PAM session is opened early on for new
+ connections, but the PTY only registered much later (if at all). ssh writes
+ the utmp record only after a TTY is actually registered, hence we could use
+ this data then, and use it if it is available. Using utmp for this is ugly of
+ course, and watching things asynchronously even more so, but it should be
+ good enough for the idle detection logic at least.
+
+* maybe extend .path units to expose fanotify() per-mount change events
+
+* Add a "systemctl list-units --by-slice" mode or so, which rearranges the
+ output of "systemctl list-units" slightly by showing the tree structure of
+ the slices, and the units attached to them.
+
+* the a-posteriori stopping of units bound to units that disappeared logic
+ should be reworked: there should be a queue of units, and we should only
+ enqeue stop jobs from a defer event that processes queue instead of
+ right-away when we find a unit that is bound to one that doesn't exist
+ anymore. (similar to how the stop-unneeded queue has been reworked the same
+ way)
+
+* nspawn: make nspawn suitable for shell pipelines: instead of triggering a
+ hangup when input is finished, send ^D, which synthesizes an EOF. Then wait
+ for hangup or ^D before passing on the EOF.
+
* 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.
-* add O_TMPFILE support to copy_file_atomic()
-
* nspawn: greater control over selinux label?
-* the error paths in usbffs_dispatch_ep() leak memory
-
* 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
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:
+
+ 1. add resume_offset support to the resume code (i.e. support swap files
+ properly)
+ 2. check of swap is on weird storage and refuse if so
+ 3. add env-var based option to disable hibernation
+ 4. figure out what to do with swap-on-luks
+ 5. add autodetection of hibernation images, and add "noresume" to disable
+ this
+
+* portables: introduce a new unit file directory /etc/systemd/system.attached/
+ or so, where we attach portable services to
+
* cgroups: use inotify to get notified when somebody else modifies cgroups
owned by us, then log a friendly warning.
that our log messages could contain clickable links for example for unit
files and suchlike we operate on.
-* introduce a new SystemCallFilters= group called "@system-service" with a
- sensible default set for system services, then make use of them in portable
- profiles
-
* add support for "portablectl attach http://foobar.com/waaa.raw (i.e. importd integration)
* add attach --enable and attach --now (for attach+enable+start)
zero and is not open anymore, while the latter happens when a file is
unlinked from any dir.
-* port systemctl, systemd-inhibit, busctl, … over to format-table.[ch]'s table formatters
+* port systemctl, busctl, … over to format-table.[ch]'s table formatters
* pid1: lock image configured with RootDirectory=/RootImage= using the usual nspawn semantics while the unit is up
for all units. It should be both a way to pin units into memory as well as a
wait to retrieve their exit data.
-* maybe set a new set of env vars for services, based on RuntimeDirectory=,
- StateDirectory=, LogsDirectory=, CacheDirectory= and ConfigurationDirectory=
- automatically. For example, there could be $RUNTIME_DIRECTORY,
- $STATE_DIRECTORY, $LOGS_DIRECTORY=, $CACHE_DIRECTORY and
- $CONFIGURATION_DIRECTORY or so. This could be useful to write services that
- can adapt to varying directories for these purposes. Special care has to be
- taken if multiple dirs are configured. Maybe avoid setting the env vars in
- that case?
-
* expose IO accounting data on the bus, show it in systemd-run --wait and log
about it in the resource log message
* hostnamectl: show root image uuid
-* sysfs set api in libudev is not const
-
* Find a solution for SMACK capabilities stuff:
http://lists.freedesktop.org/archives/systemd-devel/2014-December/026188.html