chiark / gitweb /
1577565e0336cf12980da13285c807589e681030
[elogind.git] / TODO
1 * udev-kernel.socket + udev.control.socket seems not
2   to work, udevd is started but no fd is passed
3
4 F15:
5
6 * swap units that are activated by one name but shown in the kernel under another are semi-broken
7
8 F15 External:
9
10 * NFS, networkmanager ordering issue (PENDING)
11
12 * NM should pull in network.target (PENDING)
13   https://bugzilla.redhat.com/show_bug.cgi?id=692008
14
15 * bluetooth should be possible to disable (PENDING)
16
17 * make anaconda write timeout=0 for encrypted devices
18
19 * fix broken Sockets=syslog-ng.socket packaging
20
21 Features:
22
23 * logind: ensure ACLs are updated on login and logout
24
25 * warn if the user stops a service but not its associated socket
26
27 * ensure we always set the facility when logging to kmsg
28
29 * service: pid file reading after reload doesn't work, since we don't reset the pid variable
30
31 * logind: spawn user@..service on login
32
33 * logind: implement shutdown service
34
35 * logind: non-local X11 server handling
36
37 * logind: use sysfs path in device hash table instead of syname, as soon as fb driver is fixed
38
39 * logind: add direct client API
40
41 * possibly apply systemd-sysctl per network device subtrees on hotplug
42
43 * implement Register= switch in .socket units to enable registration
44   in Avahi, RPC and other socket registration services.
45
46 * make sure people don't leave processes around after ExecStartPre=
47
48 * make sure systemd-ask-password-wall does not shutdown systemd-ask-password-console too early
49
50 * support presets
51
52 * kernel: add /proc/sys file exposing CAP_LAST_CAP?
53
54 * kernel: add device_type = "fb", "fbcon" to class "graphics"
55
56 * understand https://bugzilla.redhat.com/show_bug.cgi?id=672194
57
58 * readahead: use BTRFS_IOC_DEFRAG_RANGE instead of BTRFS_IOC_DEFRAG ioctl, with START_IO
59
60 * readahead: check whether a btrfs volume includes ssd by checking mount flag "ssd"
61
62 * support sd_notify() style notificatio when reload is finished (RELOADED=1)
63
64 * verify that the AF_UNIX sockets of a service in the fs still exist
65   when we start a service in order to avoid confusion when a user
66   assumes starting a service is enough to make it accessible
67
68 * Make it possible to set the keymap independently from the font on
69   the kernel cmdline. Right now setting one resets also the other.
70
71 * add dbus call to convert snapshot into target
72
73 * move nss-myhostname into systemd
74
75 * figure out a standard place to configure timezone name, inform myllynen@redhat.com
76
77 * add dbus call to convert snapshot into target, and a dbus call to generate target from current state
78
79 * detect LXC with $container=lxc
80
81 * drop /.readahead on bigger upgrades with yum
82
83 * add inode stat() check to readahead to suppress preloading changed files
84
85 * allow list of paths in config_parse_condition_path()
86
87 * introduce dbus calls for enabling/disabling a service
88
89 * support notifications for services being enabled/disabled
90
91 * show enablement status in systemctl status
92
93 * consider services with any kind of link in /etc/systemd/system enabled
94
95 * teach systemctl to enable unit files in arbitrary directories
96
97 * In systemctl make sure both is-enabled and is-active print a string, or neither.
98
99 * Implement:
100     systemctl mask <unit>
101     systemctl unmask <unit>
102   Also support --temp to make this temporary by placing mask links in /run.
103
104 * add support for /bin/mount -s
105
106 * GC unreferenced jobs (such as .device jobs)
107
108 * add JoinControllers= to system.conf to mount certain cgroup
109   controllers together in order to guarantee atomic creation/addition
110   of cgroups
111
112 * avoid DefaultStandardOutput=syslog to have any effect on StandardInput=socket services
113
114 * cgroup_notify_empty(): recursively check groups up the tree, too
115
116 * fix alsa mixer restore to not print error when no config is stored
117
118 * fix upstart reboot compat call
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   - /etc/sysconfig and /etc/default
126   - how to make changes to sysctl and sysfs attributes
127
128 * allow port=0 in .socket units
129
130 * rename systemd-logger to systemd-stdio-syslog-bridge
131
132 * take BSD file lock on tty devices when using them?
133
134 * avoid any flag files, or readahead files in /, we need to support r/o /
135   or / on tmpfs like Android setups.
136
137 * move readahead files into /var, look for them with .path units
138
139 * teach dbus to activate all services it finds in /etc/systemd/services/org-*.service
140
141 * get process transport into dbus for systemctl -P/-H
142
143 * document default dependencies
144
145 * support systemd.whitelist=/systemd.blacklist= on the kernel command
146   line.
147
148 * Find a way to replace /var/run, /var/lock directories with
149   symlinks during an RPM package upgrade (filesystem.rpm or systemd.rpm).
150   (lua code to create symlinks right away for new installations is in filesytem.rpm now)
151   We soon want to get rid of var-run.mount var-lock.mount units:
152     if mountpoint /run ; then
153           umount /var/run || :
154     else
155           mount --move /var/run /run || mount --bind /var/run /run
156     fi
157     mv /var/run /var/.run.save
158     ln -s /run /var/run
159     echo "R /var/.run.save" > /etc/tmpfiles.d/remove-run-save.conf
160
161 * when key file cannot be found, read it from kbd in cryptsetup
162
163 * add switch to systemctl to show enabled but not running services. Or
164   another switch that shows service that have been running since
165   booting but aren't running anymore.
166
167 * reuse mkdtemp namespace dirs in /tmp?
168
169 * recreate systemd's D-Bus private socket file on SIGUSR2
170
171 * be more specific what failed:
172     ...
173     Unmounting file systems.
174     Not all file systems unmounted, 1 left.
175     Disabling swaps.
176     Detaching loop devices.
177     Detaching DM devices.
178     Cannot finalize remaining file systems and devices, trying to kill remaining processes.
179     Unmounting file systems.
180     Not all file systems unmounted, 1 left.
181     Cannot finalize remaining file systems and devices, giving up.
182     ...
183
184 * check for compiled-in, but not active selinux, and don't print any warnings
185   about policy loading. Probably check for available selinux in /proc/filesystems,
186   and check for active selinux with getcon_raw() == "kernel"
187
188 * Support --test based on current system state
189
190 * show failure error string in "systemctl status"
191
192 * make sure timeouts are applied to Type=oneshot services.
193
194 * detect LXC environment
195
196 * investigate whether the gnome pty helper should be moved into systemd, to provide cgroup support.
197
198 * perhaps add "systemctl reenable" as combination of "systemctl disable" and "systemctl enable"
199
200 * need a way to apply mount options of api vfs from systemd unit files
201   (or some other modern source?) instead of fstab?
202
203 * maybe introduce ExecRestartPre=
204
205 * figure out what happened to bluez patch
206
207 * Patch systemd-fsck to use -C and pass console fd to it
208
209 * configurable jitter for timer events
210
211 * Support ProcessNeededForShutdown=true to allow stuff like mdmon to
212   be killed very late after the rootfs is read only? If implement pass
213   this to shutdown binary via command line argument.
214
215 * dot output for --test showing the 'initial transaction'
216
217 * calendar time support in timer, iCalendar semantics for the timer stuff (RFC2445)
218     http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=99ee5315dac6211e972fa3f23bcc9a0343ff58c4
219
220 * systemd --user
221   - get PR_SET_ANCHOR merged: http://lkml.org/lkml/2010/2/2/165
222
223 * add VT tracking:
224   - provide CK functionality
225   - start getty only when actual vt switch happens (same model as
226     socket on-demand activation). allocate the next free tty and
227     start a getty there. this way, pressing alt-f[1-12] will switch
228     through running X and getty sessions, and any unallocated
229     activated tty will start a new getty. the hardcoding of
230     getty[1-6] will entirely go away.
231   - http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=fbc92a3455577ab17615cbcb91826399061bd789
232
233 * implicitly import "defaults" settings file into all types
234
235 * port over to LISTEN_FDS/LISTEN_PID:
236    - uuidd    HAVEPATCH
237    - rpcbind (/var/run/rpcbind.sock!) HAVEPATCH
238    - cups     HAVEPATCH
239    - postfix, saslauthd
240    - apache/samba
241    - libvirtd (/var/run/libvirt/libvirt-sock-ro)
242    - bluetoothd (/var/run/sdp! @/org/bluez/audio!)
243    - distccd
244
245 * fingerprint.target, wireless.target, gps.target, netdevice.target
246
247 * set_put(), hashmap_put() return values check. i.e. == 0 doesn't free()!
248
249 * io priority during initialization
250
251 * if a service fails too often, make the service enter failed mode, and the socket, too.
252
253 * systemctl list-jobs - show dependencies
254
255 * auditd service files
256
257 * add systemctl switch to dump transaction without executing it
258
259 * suspend, resume support?
260
261 * readahead: btrfs/LVM SSD detection
262
263 * add separate man page for [Install] settings
264
265 * allow runtime changing of log level and target
266
267 * drop cap bounding set in readahead and other services
268
269 External:
270
271 * udisks should not use udisks-part-id, instead use blkid. also not probe /dev/loopxxx
272
273 * snd-seq should go, https://bugzilla.redhat.com/show_bug.cgi?id=676095
274
275 * gnome-shell python script/glxinfo/is-accelerated must die
276
277 * make cryptsetup lower --iter-time
278
279 * patch kernel for xattr support in /dev, /proc/, /sys and /sys/fs/cgroup?
280
281 * patch kernel for cpu feature modalias for autoloading aes/kvm/...
282     http://git.kernel.org/?p=linux/kernel/git/ak/linux-misc-2.6.git;a=shortlog;h=refs/heads/cpuid-match
283   (Rafael J. Wysocki's sysdev rework is on the way. After that CPUs can be exported a proper bus.)
284
285 * procps, psmisc, sysvinit-tools, hostname → util-linux-ng
286
287 https://bugzilla.redhat.com/show_bug.cgi?id=614245 -- plymouth
288 https://bugzilla.redhat.com/show_bug.cgi?id=612789 -- umount /cgroup on halt
289 https://bugzilla.redhat.com/show_bug.cgi?id=612728 -- /etc/rc.d/init.d/functions
290 https://bugzilla.redhat.com/show_bug.cgi?id=612712 -- pam_systemd
291 https://bugs.freedesktop.org/show_bug.cgi?id=29193 -- accountsservice
292 https://bugs.freedesktop.org/show_bug.cgi?id=29194 -- ConsoleKit
293 https://bugs.freedesktop.org/show_bug.cgi?id=29205 -- udisks
294 http://article.gmane.org/gmane.linux.bluez.kernel/6479 -- bluez
295 http://www.spinics.net/lists/linux-nfs/msg14371.html -- rpcbind
296 https://bugzilla.redhat.com/show_bug.cgi?id=617328 -- ntp
297 https://bugzilla.redhat.com/show_bug.cgi?id=617320 -- at
298 https://bugzilla.redhat.com/show_bug.cgi?id=617326 -- fprintd
299 https://bugzilla.redhat.com/show_bug.cgi?id=617333 -- yum
300 https://bugzilla.redhat.com/show_bug.cgi?id=617317 -- acpid
301 https://bugzilla.redhat.com/show_bug.cgi?id=617327 -- gpm
302 https://bugzilla.redhat.com/show_bug.cgi?id=617330 -- pcsc-lite
303 https://bugzilla.redhat.com/show_bug.cgi?id=617321 -- audit
304 https://bugzilla.redhat.com/show_bug.cgi?id=617316 -- abrt
305
306 Regularly:
307
308 * look for close() vs. close_nointr() vs. close_nointr_nofail()
309
310 * check for strerror(r) instead of strerror(-r)
311
312 * Use PR_SET_PROCTITLE_AREA if it becomes available in the kernel
313
314 * %m in printf() instead of strerror();
315
316 * pahole
317
318 * CFLAGS="-Wl,--gc-sections -Wl,--print-gc-sections -ffunction-sections -fdata-sections"