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