chiark / gitweb /
journal: add inline compression support with XZ
[elogind.git] / TODO
1 Bugfixes:
2
3 * swap units that are activated by one name but shown in the kernel under another are semi-broken
4
5 * NM should pull in network.target (PENDING)
6   https://bugzilla.redhat.com/show_bug.cgi?id=692008
7
8 * make anaconda write timeout=0 for encrypted devices
9
10 * service: pid file reading after reload doesn't work, since we don't reset the pid variable
11
12 * make sure timeouts are applied to Type=oneshot services.
13
14 * Dangling symlinks of .automount unit files in .wants/ directories, set up
15   automount points even when the original .automount file did not exist
16   anymore. Only the .mount unit was still around.
17
18 * make polkit checks async
19
20 * properly handle .mount unit state tracking when two mount points are stacked one on top of another on the exact same mount point.
21
22 Features:
23
24 * logind: sends SessionNew on Lock()?
25
26 * logind: allow showing logout dialog from system
27
28 * document that %% can be used to write % in a string that is specifier extended
29
30 * check utf8 everywhere
31
32 * when an instanced service exits, remove its parent cgroup too if possible.
33
34 * as Tom Gundersen pointed out there's a always a dep loop if people use crypto file systems with random keys
35
36 * unset container= in PID1?
37
38 * automatically escape unit names passed on the service (i.e. think "systemctl start serial-getty.service@serial/by-path/jshdfjsdfhkjh" being automatically escaped as necessary.
39
40 * if we can not get user quota for tmpfs, mount a separate tmpfs instance
41   for every user in /run/user/$USER with a configured maximum size
42
43 * default to actual 32bit PIDs, via /proc/sys/kernel/pid_max
44
45 * add an option to make mounts private/shareable and so on, enable this for root by default
46
47 * internal restart counter for units (focus on auto-respawn)
48
49 * finer-grained auto-respawn settings (rate-limit)
50
51 * be able to specify a forced restart of service A where service B depends on, in case B
52   needs to be auto-respawned?
53
54 * Something is wrong with symlink handling of "autovt@.service" in "systemctl list-unit-files"
55
56 * introduce sd_log_open() to create a connection to the syslog bridge via sd-daemon.h
57
58 * when a bus name of a service disappears from the bus make sure to queue further activation requests
59
60 * something like ConditionExec= or ExecStartPre= without failure state
61
62 * service restart retry configuration
63
64 * tmpfiles: apply "x" on "D" too (see patch from William Douglas)
65 * tmpfiles: support generation of char/block devices, symlinks and one-line files (think sysfs)
66
67 * Introduce ControlGroupPersistant=yes to set +t on the tasks file when creating the cgroup
68
69 * don't set $HOME in services unless requested
70
71 * remove hacks in vala code and require libnotify 0.7
72
73 * hide PAM/TCPWrap options in fragment parser when compile time disabled
74
75 * when we automatically restart a service, ensure we retsart its rdeps, too.
76
77 * allow Type=simple with PIDFile=
78   https://bugzilla.redhat.com/show_bug.cgi?id=723942
79
80 * move PAM code into its own binary
81
82 * warn if the user stops a service but not its associated socket
83
84 * logind: spawn user@..service on login
85
86 * logind: non-local X11 server handling
87
88 * implement Register= switch in .socket units to enable registration
89   in Avahi, RPC and other socket registration services.
90
91 * make sure people don't leave processes around after ExecStartPre=
92
93 * make sure systemd-ask-password-wall does not shutdown systemd-ask-password-console too early
94
95 * readahead: use BTRFS_IOC_DEFRAG_RANGE instead of BTRFS_IOC_DEFRAG ioctl, with START_IO
96
97 * readahead: check whether a btrfs volume includes ssd by checking mount flag "ssd"
98
99 * support sd_notify() style notification when reload begins (RELOADING=1), reload is finished (READY=1)
100
101 * support sd_notify() style notification when shutting down, to make auto-exit bus services work (STOPPING=1)
102
103 * verify that the AF_UNIX sockets of a service in the fs still exist
104   when we start a service in order to avoid confusion when a user
105   assumes starting a service is enough to make it accessible
106
107 * Make it possible to set the keymap independently from the font on
108   the kernel cmdline. Right now setting one resets also the other.
109
110 * move nss-myhostname into systemd
111
112 * and a dbus call to generate target from current state
113
114 * detect LXC with $container=lxc
115
116 * drop /.readahead on bigger upgrades with yum
117
118 * add inode nr check to readahead to suppress preloading changed files
119
120 * add support for /bin/mount -s
121
122 * GC unreferenced jobs (such as .device jobs)
123
124 * cgroup_notify_empty(): recursively check groups up the tree, too
125
126 * when failing to start a service due to ratelimiting, try again later, if restart=always is set
127
128 * write blog stories about:
129   - enabling dbus services
130   - status update
131   - how to make changes to sysctl and sysfs attributes
132   - remote access
133   - cgroup best pratices to avoid stepping on each others toes
134   - how to pass throw-away units to systemd, or dynamically change properties of existing units
135   - how to integrate cgconfig and suchlike with systemd
136   - security properties
137   - xinetd conversion
138   - details of instantiated @.service setups
139
140 * allow port=0 in .socket units
141
142 * move readahead files into /var, look for them with .path units
143
144 * teach dbus to activate all services it finds in /etc/systemd/services/org-*.service
145
146 * support systemd.mask= on the kernel command line.
147
148 * when key file cannot be found, read it from kbd in cryptsetup
149
150 * reuse mkdtemp namespace dirs in /tmp?
151
152 * recreate systemd's D-Bus private socket file on SIGUSR2
153
154 * Support --test based on current system state
155
156 * investigate whether the gnome pty helper should be moved into systemd, to provide cgroup support.
157
158 * maybe introduce ExecRestartPre=
159
160 * configurable jitter for timer events
161
162 * timer events with system resume
163
164 * timer events on calendar time
165
166 * Support ProcessNeededForShutdown=true to allow stuff like mdmon to
167   be killed very late after the rootfs is read only? If implement pass
168   this to shutdown binary via command line argument.
169
170 * dot output for --test showing the 'initial transaction'
171
172 * calendar time support in timer, iCalendar semantics for the timer stuff (RFC2445)
173     http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=99ee5315dac6211e972fa3f23bcc9a0343ff58c4
174
175 * implicitly import "defaults" settings file into all types
176 * exec settings override
177 * writable cgroups dbus properties for live changes
178
179 * read config fragments for all units from /lib/systemd/system/foobar.service.d/ to override/extend specific settings
180
181 * port over to LISTEN_FDS/LISTEN_PID:
182    - rpcbind (/var/run/rpcbind.sock!) HAVEPATCH
183    - cups     HAVEPATCH
184    - postfix, saslauthd
185    - apache/samba
186    - libvirtd (/var/run/libvirt/libvirt-sock-ro)
187    - bluetoothd (/var/run/sdp! @/org/bluez/audio!)
188    - distccd
189
190 * auditd service files
191
192 * fingerprint.target, wireless.target, gps.target, netdevice.target
193
194 * io priority during initialization
195
196 * if a service fails too often, make the service enter failed mode, and the socket, too.
197
198 * new deps "Triggers" and "TriggeredBy"
199
200 * systemctl list-jobs - show dependencies
201
202 * add systemctl switch to dump transaction without executing it
203
204 * suspend, resume support?
205
206 * drop cap bounding set in readahead and other services
207
208 External:
209
210 * dbus:
211    - get process transport into dbus for systemctl -P/-H (PENDING)
212    - dbus --user
213    - natively watch for dbus-*.service symlinks (PENDING)
214    - allow specification of socket mode/umask when allocating DBusServer
215    - allow disabling of fd passing when connecting a AF_UNIX connection
216    - allow disabling of UID passing for AUTH EXTERNAL
217
218 * systemd --user
219     PR_SET_CHILD_REAPER patch: https://lkml.org/lkml/2011/7/28/426
220
221 * fix alsa mixer restore to not print error when no config is stored
222
223 * udisks should not use udisks-part-id, instead use blkid. also not probe /dev/loopxxx
224
225 * snd-seq should go, https://bugzilla.redhat.com/show_bug.cgi?id=676095
226
227 * gnome-shell python script/glxinfo/is-accelerated must die
228
229 * make cryptsetup lower --iter-time
230
231 * patch kernel for xattr support in /dev, /proc/, /sys and /sys/fs/cgroup?
232
233 * patch kernel for cpu feature modalias for autoloading aes/kvm/...
234     http://git.kernel.org/?p=linux/kernel/git/ak/linux-misc-2.6.git;a=shortlog;h=refs/heads/cpuid-match
235   (Rafael J. Wysocki's sysdev rework is on the way. After that CPUs can be exported a proper bus.)
236
237 * kernel: add /proc/sys file exposing CAP_LAST_CAP? sysconf?
238
239 * kernel: add device_type = "fb", "fbcon" to class "graphics"
240
241 Regularly:
242
243 * look for close() vs. close_nointr() vs. close_nointr_nofail()
244
245 * check for strerror(r) instead of strerror(-r)
246
247 * Use PR_SET_PROCTITLE_AREA if it becomes available in the kernel
248
249 * %m in printf() instead of strerror();
250
251 * pahole
252
253 * set_put(), hashmap_put() return values check. i.e. == 0 doesn't free()!