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