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