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