chiark / gitweb /
selinux: mount /sys, /proc, /dev before we load the SELinux policy
[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 * make anaconda write timeout=0 for encrypted devices
18
19 * fix broken Sockets=syslog-ng.socket packaging
20
21 Features:
22
23 * add profiling to unit loading code
24
25 * add gperf support for unit file parsing table
26
27 * fix CUPS .path unit for globbing
28
29 * move PAM code into its own binary
30
31 * logind: ensure ACLs are updated on login and logout
32
33 * warn if the user stops a service but not its associated socket
34
35 * ensure we always set the facility when logging to kmsg
36
37 * service: pid file reading after reload doesn't work, since we don't reset the pid variable
38
39 * logind: spawn user@..service on login
40
41 * logind: non-local X11 server handling
42
43 * logind: use sysfs path in device hash table instead of sysname, as soon as fb driver is fixed
44
45 * implement Register= switch in .socket units to enable registration
46   in Avahi, RPC and other socket registration services.
47
48 * make sure people don't leave processes around after ExecStartPre=
49
50 * make sure systemd-ask-password-wall does not shutdown systemd-ask-password-console too early
51
52 * kernel: add /proc/sys file exposing CAP_LAST_CAP?
53
54 * kernel: add device_type = "fb", "fbcon" to class "graphics"
55
56 * understand https://bugzilla.redhat.com/show_bug.cgi?id=672194
57
58 * readahead: use BTRFS_IOC_DEFRAG_RANGE instead of BTRFS_IOC_DEFRAG ioctl, with START_IO
59
60 * readahead: check whether a btrfs volume includes ssd by checking mount flag "ssd"
61
62 * support sd_notify() style notification when reload is finished (RELOADED=1)
63
64 * support sf_notify() style notification when shutting down, to make auto-exit bus services work
65
66 * verify that the AF_UNIX sockets of a service in the fs still exist
67   when we start a service in order to avoid confusion when a user
68   assumes starting a service is enough to make it accessible
69
70 * Make it possible to set the keymap independently from the font on
71   the kernel cmdline. Right now setting one resets also the other.
72
73 * move nss-myhostname into systemd
74
75 * figure out a standard place to configure timezone name, inform myllynen@redhat.com
76
77 * add dbus call to convert snapshot into target, and a dbus call to generate target from current state
78
79 * detect LXC with $container=lxc
80
81 * drop /.readahead on bigger upgrades with yum
82
83 * add inode stat() check to readahead to suppress preloading changed files
84
85 * allow list of paths in config_parse_condition_path()
86
87 * show enablement status in systemctl status
88
89 * add support for /bin/mount -s
90
91 * GC unreferenced jobs (such as .device jobs)
92
93 * add JoinControllers= to system.conf to mount certain cgroup
94   controllers together in order to guarantee atomic creation/addition
95   of cgroups
96
97 * avoid DefaultStandardOutput=syslog to have any effect on StandardInput=socket services
98
99 * cgroup_notify_empty(): recursively check groups up the tree, too
100
101 * fix alsa mixer restore to not print error when no config is stored
102
103 * when failing to start a service due to ratelimiting, try again later, if restart=always is set
104
105 * write blog stories about:
106   - enabling dbus services
107   - status update
108   - how to make changes to sysctl and sysfs attributes
109   - remote access
110   - cgroup best pratices to avoid stepping on each others toes
111   - how to pass throw-away units to systemd, or dynamically change properties of existing units
112   - how to integrate cgconfig and suchlike with systemd
113
114 * allow port=0 in .socket units
115
116 * rename systemd-logger to systemd-stdio-syslog-bridge
117
118 * take BSD file lock on tty devices when using them?
119
120 * avoid any flag files, or readahead files in /, we need to support r/o /
121   or / on tmpfs like Android setups.
122
123 * move readahead files into /var, look for them with .path units
124
125 * teach dbus to activate all services it finds in /etc/systemd/services/org-*.service
126
127 * get process transport into dbus for systemctl -P/-H
128
129 * document default dependencies
130
131 * support systemd.whitelist=/systemd.blacklist= on the kernel command
132   line.
133
134 * Find a way to replace /var/run, /var/lock directories with
135   symlinks during an RPM package upgrade (filesystem.rpm or systemd.rpm).
136   (lua code to create symlinks right away for new installations is in filesytem.rpm now)
137   We soon want to get rid of var-run.mount var-lock.mount units:
138     if mountpoint /run ; then
139           umount /var/run || :
140     else
141           mount --move /var/run /run || mount --bind /var/run /run
142     fi
143     mv /var/run /var/.run.save
144     ln -s /run /var/run
145     echo "R /var/.run.save" > /etc/tmpfiles.d/remove-run-save.conf
146
147 * when key file cannot be found, read it from kbd in cryptsetup
148
149 * add switch to systemctl to show enabled but not running services. Or
150   another switch that shows service that have been running since
151   booting but aren't running anymore.
152
153 * reuse mkdtemp namespace dirs in /tmp?
154
155 * recreate systemd's D-Bus private socket file on SIGUSR2
156
157 * be more specific what failed:
158     ...
159     Unmounting file systems.
160     Not all file systems unmounted, 1 left.
161     Disabling swaps.
162     Detaching loop devices.
163     Detaching DM devices.
164     Cannot finalize remaining file systems and devices, trying to kill remaining processes.
165     Unmounting file systems.
166     Not all file systems unmounted, 1 left.
167     Cannot finalize remaining file systems and devices, giving up.
168     ...
169
170 * check for compiled-in, but not active selinux, and don't print any warnings
171   about policy loading. Probably check for available selinux in /proc/filesystems,
172   and check for active selinux with getcon_raw() == "kernel"
173
174 * Support --test based on current system state
175
176 * show failure error string in "systemctl status"
177
178 * make sure timeouts are applied to Type=oneshot services.
179
180 * investigate whether the gnome pty helper should be moved into systemd, to provide cgroup support.
181
182 * need a way to apply mount options of api vfs from systemd unit files
183   (or some other modern source?) instead of fstab?
184
185 * maybe introduce ExecRestartPre=
186
187 * figure out what happened to bluez patch
188
189 * Patch systemd-fsck to use -C and pass console fd to it
190
191 * configurable jitter for timer events
192
193 * Support ProcessNeededForShutdown=true to allow stuff like mdmon to
194   be killed very late after the rootfs is read only? If implement pass
195   this to shutdown binary via command line argument.
196
197 * dot output for --test showing the 'initial transaction'
198
199 * calendar time support in timer, iCalendar semantics for the timer stuff (RFC2445)
200     http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=99ee5315dac6211e972fa3f23bcc9a0343ff58c4
201
202 * systemd --user
203   - get PR_SET_ANCHOR merged: http://lkml.org/lkml/2010/2/2/165
204
205 * implicitly import "defaults" settings file into all types
206
207 * port over to LISTEN_FDS/LISTEN_PID:
208    - uuidd    HAVEPATCH
209    - rpcbind (/var/run/rpcbind.sock!) HAVEPATCH
210    - cups     HAVEPATCH
211    - postfix, saslauthd
212    - apache/samba
213    - libvirtd (/var/run/libvirt/libvirt-sock-ro)
214    - bluetoothd (/var/run/sdp! @/org/bluez/audio!)
215    - distccd
216
217 * fingerprint.target, wireless.target, gps.target, netdevice.target
218
219 * set_put(), hashmap_put() return values check. i.e. == 0 doesn't free()!
220
221 * io priority during initialization
222
223 * if a service fails too often, make the service enter failed mode, and the socket, too.
224
225 * systemctl list-jobs - show dependencies
226
227 * auditd service files
228
229 * add systemctl switch to dump transaction without executing it
230
231 * suspend, resume support?
232
233 * readahead: btrfs/LVM SSD detection
234
235 * allow runtime changing of log level and target
236
237 * drop cap bounding set in readahead and other services
238
239 External:
240
241 * udisks should not use udisks-part-id, instead use blkid. also not probe /dev/loopxxx
242
243 * snd-seq should go, https://bugzilla.redhat.com/show_bug.cgi?id=676095
244
245 * gnome-shell python script/glxinfo/is-accelerated must die
246
247 * make cryptsetup lower --iter-time
248
249 * patch kernel for xattr support in /dev, /proc/, /sys and /sys/fs/cgroup?
250
251 * patch kernel for cpu feature modalias for autoloading aes/kvm/...
252     http://git.kernel.org/?p=linux/kernel/git/ak/linux-misc-2.6.git;a=shortlog;h=refs/heads/cpuid-match
253   (Rafael J. Wysocki's sysdev rework is on the way. After that CPUs can be exported a proper bus.)
254
255 * procps, psmisc, sysvinit-tools, hostname → util-linux-ng
256
257 https://bugzilla.redhat.com/show_bug.cgi?id=614245 -- plymouth
258 https://bugzilla.redhat.com/show_bug.cgi?id=612789 -- umount /cgroup on halt
259 https://bugzilla.redhat.com/show_bug.cgi?id=612728 -- /etc/rc.d/init.d/functions
260 https://bugzilla.redhat.com/show_bug.cgi?id=612712 -- pam_systemd
261 https://bugs.freedesktop.org/show_bug.cgi?id=29193 -- accountsservice
262 https://bugs.freedesktop.org/show_bug.cgi?id=29194 -- ConsoleKit
263 https://bugs.freedesktop.org/show_bug.cgi?id=29205 -- udisks
264 http://article.gmane.org/gmane.linux.bluez.kernel/6479 -- bluez
265 http://www.spinics.net/lists/linux-nfs/msg14371.html -- rpcbind
266 https://bugzilla.redhat.com/show_bug.cgi?id=617328 -- ntp
267 https://bugzilla.redhat.com/show_bug.cgi?id=617320 -- at
268 https://bugzilla.redhat.com/show_bug.cgi?id=617326 -- fprintd
269 https://bugzilla.redhat.com/show_bug.cgi?id=617333 -- yum
270 https://bugzilla.redhat.com/show_bug.cgi?id=617317 -- acpid
271 https://bugzilla.redhat.com/show_bug.cgi?id=617327 -- gpm
272 https://bugzilla.redhat.com/show_bug.cgi?id=617330 -- pcsc-lite
273 https://bugzilla.redhat.com/show_bug.cgi?id=617321 -- audit
274 https://bugzilla.redhat.com/show_bug.cgi?id=617316 -- abrt
275
276 Regularly:
277
278 * look for close() vs. close_nointr() vs. close_nointr_nofail()
279
280 * check for strerror(r) instead of strerror(-r)
281
282 * Use PR_SET_PROCTITLE_AREA if it becomes available in the kernel
283
284 * %m in printf() instead of strerror();
285
286 * pahole
287
288 * CFLAGS="-Wl,--gc-sections -Wl,--print-gc-sections -ffunction-sections -fdata-sections"