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