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