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