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