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