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