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