chiark / gitweb /
8d03d950c0643096c1481bae2b5b71c66f1361de
[elogind.git] / TODO
1 F15:
2
3 * swap units that are activated by one name but shown in the kernel under another are semi-broken
4
5 * 0595f9a1c182a84581749823ef47c5f292e545f9 is borked, freezes shutdown
6     (path: after installing inotify watches, recheck file again to fix race)
7
8 * move systemadm man page to systemd-gtk
9   https://bugzilla.redhat.com/show_bug.cgi?id=699394
10
11 F15 External:
12
13 * NFS, networkmanager ordering issue (PENDING)
14
15 * NM should pull in network.target (PENDING)
16   https://bugzilla.redhat.com/show_bug.cgi?id=692008
17
18 * bluetooth should be possible to disable (PENDING)
19
20 * get writev() /dev/kmsg support into the F15 kernel
21     https://lkml.org/lkml/2011/4/6/473
22   patched merged into -mm
23
24 * fix sd_is_socket() invocation in dbus
25
26 * New CK release, with sysinit.target dropping and TTY loop
27
28 * New Avahi package, enable it by default
29
30 * make anaconda write timeout=0 for encrypted devices
31
32 Features:
33
34 * drop /.readahead on bigger upgrades with yum
35
36 * add inode stat() check to readahead
37
38 * plymouth.enable=0
39
40 * include /usr/local/lib/tmpfiles.d in tmpfiles tool as search path
41   (and prefix/lib, in case it isn't one of the listed ones)
42
43 * POSIX mqueue support in .socket units
44
45 * introduce dbus calls for enabling/disabling a service
46
47 * support notifications for services being enabled/disabled
48
49 * Maybe merge nss-myhostname into systemd?
50
51 * GC unreferenced jobs (such as .device jobs)
52
53 * support wildcard expansion in ListenStream= and friends
54
55 * support wildcard expansion in EnvironmentFile= and friends
56
57 * avoid DefaultStandardOutput=syslog to have any effect on StandardInput=socket services
58
59 * fix alsa mixer restore to not print error when no config is stored
60
61 * show enablement status in systemctl status
62
63 * write blog stories about:
64   - enabling dbus services
65   - status update
66   - you are a distro: why switch?
67   - /etc/sysconfig and /etc/default
68
69 * maybe add tiny dbus services similar to hostnamed for locale and wallclock/timezone?
70
71 * allow port=0 in .socket units
72
73 * rename systemd-logger to systemd-stdio-syslog-bridge
74
75 * take BSD file lock on tty devices when using them?
76
77 * avoid any flag files, or readahead files in /, we need to support r/o /
78   or / on tmpfs like Android setups.
79
80 * move readahead files into /var, look for them with .path units
81
82 * teach dbus to activate all services it finds in /etc/systemd/services/org-*.service
83
84 * get process transport into dbus for systemctl -P/-H
85
86 * document default dependencies
87
88 * support systemd.whitelist=/systemd.blacklist= on the kernel command
89   line.
90
91 * Find a way to replace /var/run, /var/lock directories with
92   symlinks during an RPM package upgrade (filesystem.rpm or systemd.rpm).
93   (lua code to create symlinks right away for new installations is in filesytem.rpm now)
94   We soon want to get rid of var-run.mount var-lock.mount units:
95     if mountpoint /run ; then
96           umount /var/run || :
97     else
98           mount --move /var/run /run || mount --bind /var/run /run
99     fi
100     mv /var/run /var/.run.save
101     ln -s /run /var/run
102     echo "R /var/.run.save" > /etc/tmpfiles.d/remove-run-save.conf
103
104 * when key file cannot be found, read it from kbd in cryptsetup
105
106 * add switch to systemctl to show enabled but not running services. Or
107   another switch that shows service that have been running since
108   booting but aren't running anymore.
109
110 * reuse mkdtemp namespace dirs in /tmp?
111
112 * recreate systemd's D-Bus private socket file on SIGUSR2
113
114 * be more specific what failed:
115     ...
116     Unmounting file systems.
117     Not all file systems unmounted, 1 left.
118     Disabling swaps.
119     Detaching loop devices.
120     Detaching DM devices.
121     Cannot finalize remaining file systems and devices, trying to kill remaining processes.
122     Unmounting file systems.
123     Not all file systems unmounted, 1 left.
124     Cannot finalize remaining file systems and devices, giving up.
125     ...
126
127 * check for compiled-in, but not active selinux, and don't print any warnings
128   about policy loading. Probably check for available selinux in /proc/filesystems,
129   and check for active selinux with getcon_raw() == "kernel"
130
131 * move /selinux to /sys/fs/selinux
132
133 * Support --test based on current system state
134
135 * systemctl enable as D-Bus call
136
137 * consider services with any kind of link in /etc/systemd/system enabled
138
139 * show failure error string in "systemctl status"
140
141 * make sure timeouts are applied to Type=oneshot services.
142
143 * Implement:
144     systemctl mask <unit>
145     systemctl unmask <unit>
146   Also support --temp to make this temporary by placing mask links in /run.
147
148 * detect LXC environment
149
150 * invoke vhangup() before and after invoking getty
151     http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=3c95c985fa91ecf6a0e29622bbdd13dcfc5ce9f1
152
153 * Maybe store in unit files whether a service should be enabled by default on package installation
154   (belongs into a distro pattern though, not in an upstream package's service file)
155
156 * perhaps add "systemctl reenable" as combination of "systemctl disable" and "systemctl enable"
157
158 * need a way to apply mount options of api vfs from systemd unit files
159   (or some other modern source?) instead of fstab?
160
161 * maybe introduce ExecRestartPre=
162
163 * figure out what happened to bluez patch
164
165 * Patch systemd-fsck to use -C and pass console fd to it
166
167 * configurable jitter for timer events
168
169 * Support ProcessNeededForShutdown=true to allow stuff like mdmon to
170   be killed very late after the rootfs is read only? If implement pass
171   this to shutdown binary via command line argument.
172
173 * use pivot_root on shutdown so that we can unmount the root directory.
174    - copy binaries to, and pivot_root() to the "shutdown tmpfs"
175    - solve "mdadm --wait-clean" problem that way
176
177 * dot output for --test showing the 'initial transaction'
178
179 * calendar time support in timer, iCalendar semantics for the timer stuff (RFC2445)
180   - timerfd() with TFD_TIMER_CANCELON_SET support: https://lkml.org/lkml/2011/4/27/383
181
182 * systemd --user
183   - get PR_SET_ANCHOR merged: http://lkml.org/lkml/2010/2/2/165
184
185 * add VT tracking:
186   - provide CK functionality
187   - start getty only when actual vt switch happens (same model as
188     socket on-demand activation). allocate the next free tty and
189     start a getty there. this way, pressing alt-f[1-12] will switch
190     through running X and getty sessions, and any unallocated
191     activated tty will start a new getty. the hardcoding of
192     getty[1-6] will entirely go away.
193   - http://git.kernel.org/?p=linux/kernel/git/gregkh/tty-2.6.git;a=commitdiff;h=fbc92a3455577ab17615cbcb91826399061bd789
194
195 * implicitly import "defaults" settings file into all types
196
197 * port over to LISTEN_FDS/LISTEN_PID:
198    - uuidd    HAVEPATCH
199    - rpcbind (/var/run/rpcbind.sock!) HAVEPATCH
200    - cups     HAVEPATCH
201    - postfix, saslauthd
202    - apache/samba
203    - libvirtd (/var/run/libvirt/libvirt-sock-ro)
204    - bluetoothd (/var/run/sdp! @/org/bluez/audio!)
205    - distccd
206
207 * fingerprint.target, wireless.target, gps.target, netdevice.target
208
209 * set_put(), hashmap_put() return values check. i.e. == 0 doesn't free()!
210
211 * io priority during initialization
212
213 * if a service fails too often, make the service enter failed mode, and the socket, too.
214
215 * systemctl list-jobs - show dependencies
216
217 * auditd service files
218
219 * add systemctl switch to dump transaction without executing it
220
221 * suspend, resume support?
222
223 * readahead: btrfs/LVM SSD detection
224
225 * add separate man page for [Install] settings
226
227 * allow runtime changing of log level and target
228
229 * drop cap bounding set in readahead and other services
230
231 External:
232
233 * udisks should not use udisks-part-id, instead use blkid. also not probe /dev/loopxxx
234
235 * snd-seq should go, https://bugzilla.redhat.com/show_bug.cgi?id=676095
236
237 * gnome-shell python script/glxinfo/is-accelerated must die
238
239 * make cryptsetup lower --iter-time
240
241 * patch kernel for xattr support in /dev, /proc/, /sys and /sys/fs/cgroup?
242
243 * patch kernel for cpu feature modalias for autoloading aes/kvm/...
244     http://git.kernel.org/?p=linux/kernel/git/ak/linux-misc-2.6.git;a=shortlog;h=refs/heads/cpuid-match
245   (Rafael J. Wysocki's sysdev rework is on the way. After that CPUs can be exported a proper bus.)
246
247 * procps, psmisc, sysvinit-tools, hostname → util-linux-ng
248
249 https://bugzilla.redhat.com/show_bug.cgi?id=614245 -- plymouth
250 https://bugzilla.redhat.com/show_bug.cgi?id=612789 -- umount /cgroup on halt
251 https://bugzilla.redhat.com/show_bug.cgi?id=612728 -- /etc/rc.d/init.d/functions
252 https://bugzilla.redhat.com/show_bug.cgi?id=612712 -- pam_systemd
253 https://bugs.freedesktop.org/show_bug.cgi?id=29193 -- accountsservice
254 https://bugs.freedesktop.org/show_bug.cgi?id=29194 -- ConsoleKit
255 https://bugs.freedesktop.org/show_bug.cgi?id=29205 -- udisks
256 http://article.gmane.org/gmane.linux.bluez.kernel/6479 -- bluez
257 http://www.spinics.net/lists/linux-nfs/msg14371.html -- rpcbind
258 https://bugzilla.redhat.com/show_bug.cgi?id=617328 -- ntp
259 https://bugzilla.redhat.com/show_bug.cgi?id=617320 -- at
260 https://bugzilla.redhat.com/show_bug.cgi?id=617326 -- fprintd
261 https://bugzilla.redhat.com/show_bug.cgi?id=617333 -- yum
262 https://bugzilla.redhat.com/show_bug.cgi?id=617317 -- acpid
263 https://bugzilla.redhat.com/show_bug.cgi?id=617327 -- gpm
264 https://bugzilla.redhat.com/show_bug.cgi?id=617330 -- pcsc-lite
265 https://bugzilla.redhat.com/show_bug.cgi?id=617321 -- audit
266 https://bugzilla.redhat.com/show_bug.cgi?id=617316 -- abrt
267
268 Regularly:
269
270 * look for close() vs. close_nointr() vs. close_nointr_nofail()
271
272 * check for strerror(r) instead of strerror(-r)
273
274 * Use PR_SET_PROCTITLE_AREA if it becomes available in the kernel
275
276 * %m in printf() instead of strerror();
277
278 * pahole
279
280 * CFLAGS="-Wl,--gc-sections -Wl,--print-gc-sections -ffunction-sections -fdata-sections"